在无线显示系统中的宿设备处的基于应用认知的定制缓存的制作方法

文档序号:7791685阅读:118来源:国知局
在无线显示系统中的宿设备处的基于应用认知的定制缓存的制作方法
【专利摘要】本公开内容描述了用于提高无线显示(WD)系统中的用户体验的技术。WD系统包括:源设备,其向一个或多个宿设备提供媒体数据。所述技术针对于:减少WD系统中的端到端延迟,同时提高宿设备处的视频回放质量。更具体地说,所述技术包括:基于对于媒体数据的应用认知来在宿设备处进行定制的缓存。所述技术包括:了解针对该媒体数据的应用类型,以及调整处理管道中的缓冲区的大小,以便针对该应用类型在平滑度与延迟之间实现适当的平衡。例如,当该媒体数据是用于视频回放应用时,所述技术包括:对缓冲区大小进行增加,以增加视频回放应用中的平滑度。
【专利说明】在无线显示系统中的宿设备处的基于应用认知的定制缓存
[0001]本申请要求享有以下美国临时申请的优先权:于2012年2月28日递交的、美国临时申请N0.61/604,086 ;于2012年2月28日递交的、美国临时申请N0.61/604,087 ;于2012年2月28日递交的、美国临时申请N0.61/604,090 ;于2012年2月28日递交的、美国临时申请N0.61/604,094,故以引用方式将这些临时申请中的每一份临时申请的全部内容并入本文。

【技术领域】
[0002]本发明涉及在无线源设备与无线宿设备之间传输数据。

【背景技术】
[0003]无线显示(WD)系统包括源设备和一个或多个宿设备。源设备和每一个宿设备可以是具有无线通信能力的移动设备或有线设备。作为移动设备,例如,源设备和宿设备中的一个或多个可以包括:移动电话、平板电脑、膝上型计算机、具有无线通信卡的便携式计算机、个人数字助理(PDA)、无线游戏设备、便携式媒体播放器或具有无线通信能力的其它闪存设备。移动设备还可以包括所谓的“智能”电话和“智能”平板或平板电脑、或其它类型的无线通信设备。作为有线设备,例如,源设备和宿设备中的一个或多个可以包括:包含无线通信能力的电视、台式计算机、监视器、投影仪等等。
[0004]源设备向参与特定通信会话的宿设备中的一个或多个宿设备发送媒体数据(例如,音频和/或视频数据)。可以在源设备的本地显示器处以及在宿设备的显示器中的每一个显示器处对该媒体数据进行回放。更具体地说,所参与的宿设备中的每一个宿设备在其显示器和音频设备上渲染(render)所接收的媒体数据。在一些情况下,宿设备的用户可以向该宿设备应用用户输入(例如,触摸输入和远程控制输入)。在WD系统中,从宿设备向源设备发送用户输入。源设备对从宿设备接收的用户输入进行处理,并将这些用户输入的影响应用在向宿设备发送的后续媒体数据上。


【发明内容】

[0005]概括地说,本公开内容描述了用于提高无线显示(WD)系统中的用户体验的技术。WD系统包括:源设备,其向一个或多个宿设备提供媒体数据(例如,音频和/或视频数据)以进行回放。所述技术针对于:减少媒体数据在源设备与宿设备之间的端到端延迟,同时提高宿设备处的视频回放质量(即,平滑度)。
[0006]更具体地说,本公开内容的技术包括:基于对于从源设备接收的媒体数据的应用认知来在WD系统的宿设备处进行定制的缓存。所述技术包括:了解针对该媒体数据的应用类型,以及调整宿设备的处理管道中的缓冲区的大小,以便针对该应用类型在平滑度与延迟之间实现适当的平衡。例如,当该媒体数据是用于视频回放应用时(其中,回放的质量或平滑度在宿设备处是最高优先级,并且上面所描述的低延迟技术可能造成可见的抖动),所述技术包括:对缓冲区大小进行增加,以增加视频回放应用中的媒体数据的平滑度。相比而言,当该媒体数据是用于用户界面(UI)应用或者游戏应用时(其中,低延迟在宿设备处是最高优先级),所述技术包括:对缓冲区大小进行减小,以减少UI或者游戏应用的延迟。在一些情况下,可以在源设备处,检测针对该媒体数据的应用的类型,并且以信号形式将其发送给WD系统中的宿设备。在其它情况下,宿设备可以自己来检测针对该媒体数据的应用类型。
[0007]在一个例子中,本公开内容针对于一种方法,所述方法包括:在宿设备处与WD系统中的源设备建立通信会话;使用所述宿设备从所述源设备接收媒体数据;了解针对所接收的媒体数据的应用类型;基于所述应用类型来调整所述宿设备的处理管道中所包括的缓冲区的大小;以及对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示。
[0008]在另一个例子中,本公开内容针对于一种宿设备,所述宿设备包括:处理管道,其包括一个或多个处理单元,所述一个或多个处理单元被配置为:在所述宿设备处与WD系统中的源设备建立通信会话;从所述源设备接收媒体数据;了解针对所接收的媒体数据的应用类型;基于所述应用类型来调整所述处理管道中所包括的缓冲区的大小;以及对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示;以及管道管理器,其被配置为对所述宿设备的所述处理管道进行管理。
[0009]在另外的例子中,本公开内容针对于一种宿设备,所述宿设备包括:用于在所述宿设备处与WD系统中的源设备建立通信会话的单元;用于从所述源设备接收媒体数据的单元;用于了解针对所接收的媒体数据的应用类型的单元;用于基于所述应用类型来调整所述宿设备的处理管道中所包括的缓冲区的大小的单元;以及用于对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示的单元。
[0010]在另一个例子中,本公开内容针对于一种计算机可读介质,所述计算机可读介质包括指令,当在宿设备中执行所述指令时,所述指令使可编程处理器进行以下操作:在所述宿设备处与WD系统中的源设备建立通信会话;从所述源设备接收媒体数据;了解针对所接收的媒体数据的应用类型;基于所述应用类型来调整所述宿设备的处理管道中所包括的缓冲区的大小;以及对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示。
[0011]另外,在一个例子中,本公开内容针对于一种WD系统,所述WD系统包括:源设备,其被配置为:捕获媒体数据,检测针对所述媒体数据的应用类型,以及发送所述媒体数据与针对所述媒体数据的所述应用类型的指示;以及宿设备,其被配置为:从所述源设备接收所述媒体数据与针对所述媒体数据的所述应用类型的指示,基于所述应用类型来调整所述宿设备的处理管道中所包括的缓冲区的大小,以及对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示。
[0012]在下面的附图和描述中,阐述了本公开内容的一个或多个例子的细节。通过该描述和附图,以及通过权利要求书,其它特征、目标和优点将是显而易见的。

【专利附图】

【附图说明】
[0013]图1是示出了包括源设备和宿设备的无线显示(WD)系统的例子的框图,该源设备和宿设备能够支持本公开内容的技术,以减少源设备与宿设备之间的端到端延迟,同时提高视频回放质量。
[0014]图2是示出了可以实现本公开内容的技术的、WD系统中的源设备的例子的框图。
[0015]图3是示出了可以实现本公开内容的技术的、WD系统中的宿设备的例子的框图。
[0016]图4是不出了可以实现本公开内容的技术的发射机系统和接收机系统的框图。
[0017]图5是示出了一种源设备的例子的框图,该源设备能够支持本公开内容的技术,以减少该源设备的处理管道中的延迟。
[0018]图6是示出了一种宿设备的例子的框图,该宿设备能够支持本公开内容的技术,以减少该宿设备的处理管道中的延迟和提高在该宿设备处的视频回放。
[0019]图7是示出了一种示例性数据分组的概念图,该示例性数据分组可以用于向源设备传送在宿设备处获得的用户输入数据和/或反馈数据。
[0020]图8是示出了源设备的示例性操作的流程图,该源设备能够支持低延迟帧捕获和处理管道中的媒体数据的缓存。
[0021]图9是示出了宿设备的示例性操作的流程图,该宿设备能够支持处理管道中的定制的视频回放。
[0022]图10是示出了宿设备的示例性操作的流程图,该宿设备能够基于处理管道中的媒体数据应用认知来支持定制的缓存。
[0023]图11是示出了能够在WD系统中支持音频数据的优先传输的源设备和宿设备的示例性操作的流程图。

【具体实施方式】
[0024]在本公开内容中描述了用于提高无线显示(WD)系统中的用户体验的技术。WD系统包括:源设备,其向一个或多个宿设备提供媒体数据(例如,音频和/或视频数据)以进行回放。所述技术针对于:减少媒体数据在源设备与宿设备之间的端到端延迟,同时提高宿设备处的视频回放质量(即,平滑度)。
[0025]在一个例子中,所述技术包括:在WD系统的源设备处进行的低延迟屏幕捕获和缓存。例如,当在WD系统中建立通信会话之后,管道管理器可以将源设备的处理管道配置为:在处理步骤之间包括最小大小缓冲区,以减少延迟。随后,源设备将媒体数据中的至少最近的一个帧更新缓存在该最小大小缓冲区中,并且当该最小大小缓冲区满了时,丢弃较旧的帧更新。此外,该处理管道可以被配置为:使用硬件加速从该缓冲区中获取帧更新,以便使用源设备的管道处理进行处理。使用硬件加速可以减少源设备的中央处理单元(CPU)上的处理负载,以增加帧速率和减少时延。源设备还可以重传经编码的帧更新(即,执行重复的推送),以确保宿设备及时地接收,从而进一步减少WD系统中的延迟。
[0026]在另一个例子中,所述技术包括:基于从源设备接收的媒体数据的类型来在WD系统的宿设备处进行定制的回放。如果媒体数据只包括视频数据,而不包括音频数据,则宿设备的处理管道中所包括的渲染器(renderer)被配置为:执行对该视频数据的加速渲染。例如,在检测到媒体数据不包括音频数据时,管道管理器可以在宿设备的处理管道中所包括的渲染器处禁用同步,以使得该渲染器能够在不等待与不存在的音频数据进行同步的情况下对视频数据进行渲染。举另一个例子,在检测到媒体数据包括视频数据和音频数据两者时,管道管理器可以减小音频渲染启动定时器,因此该渲染器可以根据所减小的启动定时器来对同步的音频和视频数据进行渲染。此外,在从源设备接收该媒体数据之前,管道管理器可以基于在通信会话的能力协商时段期间交换的流报头信息来配置宿设备中的处理管道,以便减少由于建立时间而造成的延迟。
[0027]在另外的例子中,所述技术包括:基于对于从源设备接收的媒体数据的应用认知来在WD系统的宿设备处进行定制的缓存。宿设备了解针对该媒体数据的应用类型,并且管道管理器调整宿设备的处理管道中的缓冲区的大小,以便针对该应用类型在平滑度与延迟之间实现适当的平衡。在一些情况下,可以在源设备处检测针对该媒体数据的应用类型,以及宿设备可以基于从源设备接收的指示来了解应用类型。在其它情况下,宿设备可以通过自己检测应用类型来了解针对该媒体数据的应用类型。例如,当该媒体数据是用于视频回放应用时(其中,回放的质量或平滑度在宿设备处是最高优先级,并且上文所描述的低延迟技术可能造成可见的抖动),对缓冲区大小进行增加,以增加视频回放应用中的媒体数据的平滑度。相比而言,当该媒体数据是用于用户界面(UI)应用或者游戏应用时(其中,低延迟在宿设备处是最高优先级),对缓冲区大小进行减小,以减少该UI或者游戏应用的延迟。
[0028]此外,所述技术还包括:在WD系统中的源设备与宿设备之间为音频数据的传输提供比视频数据的传输更高的优先级。将视频数据分组的传输绑定到相关联的音频数据分组的传输,使得确保所有的音频分组都到达宿设备,减少在宿设备处用于等待接收丢失的分组的延迟。管道管理器可以将音频管道路径配置为:比源设备中的视频管道路径包括更多的缓冲。此外,与用于视频管道路径的传输队列相比,源设备处的无线调制解调器套接字可以为音频管道路径提供更高优先级的传输队列。该另外的缓冲确保在源设备处较少的音频分组将被丢弃。该更高优先级传输队列确保在源设备处将音频分组排队在相对应的视频分组之前进行传输,以避免视频管道路径中的时延或者停顿(stall)。此外,宿设备可以向源设备提供用于描述通信信道的传输状况的反馈信息,以及管道管理器可以基于该反馈信息来修改源设备的处理管道。
[0029]图1是示出了包括源设备120和宿设备160的无线显示(WD)系统100的例子的框图,源设备120和宿设备160能够支持本公开内容的技术,以减少源设备120与宿设备160之间的端到端延迟,同时提高视频回放质量。如图1中所示出的,WD系统100包括经由通信信道150与宿设备160进行通信的源设备120。
[0030]源设备120可以包括存储音频和/或视频(A/V)媒体数据121的存储器、显示器122、扬声器123、音频和/或视频(A/V)编码器124(其还被称为编码器124)、音频和/或视频(A/V)控制模块125和发射机/接收机(TX/RX)单元126。宿设备160可以包括显示器162、扬声器163、音频和/或视频(A/V)解码器164(其还被称为解码器164)、发射机/接收机单元166、用户输入(UI)设备167和用户输入处理模块(UIPM) 168。所示出的组件仅构成用于WD系统100的一种示例性配置。其它配置可以包括比所示出的那些组件更少的组件或者可以包括所示出的那些组件之外的另外的组件。
[0031]在图1的例子中,源设备120可以在显示器122上显示A/V媒体数据121的视频部分,并且可以在扬声器123上输出A/V媒体数据121的音频部分。A/V媒体数据121可以本地存储在源设备120上、从外部存储介质(例如,文件服务器、硬驱动器、外部存储器、蓝光光碟、DVD或者其它物理存储介质)中存取、或者可以经由诸如互联网的网络连接流式传输到源设备120。在一些实例中,可以经由源设备120的照相机和麦克风对A/V媒体数据121进行实时捕获。A/V媒体数据121可以包括诸如电影、电视节目或音乐之类的多媒体内容,但还可以包括由源设备120生成的实时内容。这种实时内容可以例如是由在源设备120上运行的应用产生的,或者是捕获到的视频数据(例如,作为视频电话会话的一部分)。在一些实例中,这种实时内容包括可供用户选择的用户输入选项的视频帧。在一些实例中,A/V媒体数据121可以包括不同类型内容的组合的视频帧,诸如具有覆盖在视频帧上的用户输入选项的电影或电视节目的视频帧。
[0032]除了经由显示器122和扬声器123来本地渲染A/V媒体数据121之外,源设备120的A/V编码器124可以对A/V媒体数据121进行编码,并且发射机/接收机单元126可以通过通信信道150向宿设备160发送经编码的数据。宿设备160的发射机/接收机单元166接收该经编码的数据,以及A/V解码器164对该经编码的数据进行解码,并且经由显示器162和扬声器163输出该经解码的数据。以这一方式,由显不器122和扬声器123渲染的音频和视频数据可以同时地由显示器162和扬声器163进行渲染。可以将音频数据和视频数据排列在帧中,并且当渲染时,可以将音频帧与视频帧进行时间同步。
[0033]A/V编码器124和A/V解码器164可以实现任意数量的音频和视频压缩标准,诸如ITU-T H.264标准(或者称为MPEG-4第10部分)、高级视频编码(AVC)或者新涌现的高效视频编码(HEVC)标准。还可以使用很多其它类型的专有或标准化的压缩技术。一般来说,A/V解码器164被配置为执行A/V编码器124的互易编码操作。虽然没有在图1中示出,但在一些方面,A/V编码器124和A/V解码器164均可以与音频编码器和解码器相集成,并且可以包括适当的MUX-DEMUX单元或者其它硬件和软件,以处理对公共数据流或单独数据流中的音频和视频两者的编码。
[0034]除了实现如上文所描述的视频压缩标准之外,A/V编码器124还可以执行其它的编码功能。例如,在将A/V媒体数据121发送给宿设备160之前,A/V编码器124可以向A/V媒体数据121添加各种类型的元数据。在一些实例中,可以以编码的形式将A/V媒体数据121存储在源设备120上或者在源设备120处接收A/V媒体数据121,从而不需要由A/V编码器124进一步压缩。
[0035]虽然图1示出了单独地携带音频有效载荷数据和视频有效载荷数据的通信信道150,但是要理解的是,在某些实例中,视频有效载荷数据和音频有效载荷数据可以是公共数据流的一部分。如果适用的话,MUX-DEMUX单元可以遵循ITU H.223复用器协议或者诸如用户数据报协议(UDP)之类的其它协议。A/V编码器124和A/V解码器164均可以实现为一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑器件、软件、硬件、固件或其任意组合。可以将A/V编码器124和A/V解码器164中的每一个包括在一个或多个编码器或解码器中,可以将其中任何一个集成为组合的编码器/解码器(CODEC)的一部分。因此,源设备120和宿设备160中的每一个可以包括:被配置为执行本公开内容的技术中的一个或多个技术的专用机器。
[0036]显示器122和显示器162可以包括各种视频输出设备中的任何一种,例如阴极射线管(CRT)、液晶显示器(IXD)、等离子显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、或者其它类型的显示设备。在这些或者其它例子中,显示器122和162均可以是发射式显示器或透射式显示器。显示器122和显示器162还可以是触摸显示器,使得它们同时既是输入设备也是显示设备。这种触摸显示器可以是允许用户向各自设备提供用户输入的电容式、电阻式或者其它类型的触摸面板。
[0037]扬声器123可以包括各种音频输出设备中的任何一种,例如头戴式耳机、单扬声器系统、多扬声器系统或者环绕声系统。此外,虽然将显示器122和扬声器123示出为源设备120的一部分并且将显不器162和扬声器163不出为宿设备160的一部分,但是源设备120和宿设备160实际上可以是设备系统。举一个例子,显示器162可以是电视机,扬声器163可以是环绕声系统,以及解码器164可以是有线或无线地连接到显示器162和扬声器163的外箱的一部分。在其它实例中,宿设备160可以是诸如平板电脑或智能电话之类的单个设备。在其它情况下,源设备120和宿设备160是类似的设备,例如,两者都是智能电话、平板电脑等等。在这种情况下,一个设备可以作为源设备来进行操作,而另一个设备可以作为宿设备来进行操作。在后续的通信会话中,这些角色可以甚至颠倒。在其它情况下,源设备可以包括诸如智能电话、膝上型计算机或平板电脑之类的移动设备,以及宿设备可以包括更加静态的设备(例如,具有AC电源线),在这种情况下,源设备可以经由宿设备传送音频和视频数据以便向更大的人群进行呈现。
[0038]发射机/接收机单元126和发射机/接收机单元166均可以包括各种混频器、滤波器、放大器和被设计用于信号调制的其它组件,以及一个或多个天线和被设计用于发送和接收数据的其它组件。通信信道150通常表示用于从源设备120向宿设备160发送视频数据的任何合适的通信介质或者不同通信介质的集合。通信信道150通常是相对短距离的通信信道,类似于W1-F1、蓝牙等等。然而,通信信道150并不必然地受限于此方面,而可以包括任何无线或有线的通信介质(诸如射频(RF)频谱或者一个或多个物理传输线)或者无线介质和有线介质的任意组合。在其它的例子中,通信信道150甚至可以组成基于分组的网络(例如,有线或无线局域网、广域网或者诸如互联网的全球性网络)的一部分。此外,通信信道150可以由源设备120和宿设备160用来创建对等链路。
[0039]源设备120和宿设备160可以根据能力协商使用例如实时流式传输协议(RTSP)控制消息来建立通信会话。随后,源设备120和宿设备160可以使用诸如来自IEEE802.11标准族的标准的通信协议来通过通信信道150进行通信。例如,源设备120和宿设备160可以根据W1-Fi直连(WFD)标准来进行通信,使得源设备120和宿设备160在不使用诸如无线接入点或所谓的热点的中间媒介的情况下直接相互通信。源设备120和宿设备160还可以建立隧道式直接链路建立(TLDS)以避免或减少网络拥塞。WFD和TDLS旨在建立相对短距离的通信会话。在该上下文中,相对短距离可以是指例如小于约70米,但在嘈杂或者阻挡的环境下,设备之间的距离可能甚至更短,例如小于约35米,或者小于约20米。
[0040]虽然有时可以针对WFD来描述本公开内容的技术,但可以预想的是,这些技术的各方面还可以与其它通信协议相兼容。通过举例而非限制性的方式,源设备120和宿设备之间的无线通信可以使用正交频分复用技术(OFDM)技术。也可以使用各种各样的其它无线通信技术,包括但不限于时分多址(TDMA)、频分多址(FDMA)、码分多址(CDMA)或者0FDM、FDMA, TDMA和/或CDMA的任意组合。
[0041]除了对从源设备120接收的数据进行解码和渲染之外,宿设备160还可以从用户输入设备167接收用户输入。例如,用户输入设备167可以是键盘、鼠标、轨迹球或轨迹板、触摸屏、语音命令识别模块或者任何其它这种用户输入设备。UIPM 168将由用户输入设备167接收到的用户输入命令格式化成源设备120能够解释的数据分组结构。由发射机/接收机166通过通信信道150向源设备120发送这些数据分组。发射机/接收机单元126接收这些数据分组,以及A/V控制模块125对这些数据分组进行解析以解释由用户输入设备167接收的用户输入命令。基于在数据分组中接收的命令,A/V控制模块125可以改变进行编码和发送的内容。以这一方式,宿设备160的用户可以远程地对由源设备120发送的音频有效载荷数据和视频有效载荷数据进行控制,而不直接地与源设备120进行交互。
[0042]此外,宿设备160的用户能够启动和控制源设备120上的应用。例如,宿设备160的用户能够启动在源设备120上存储的照片编辑应用,并且使用该应用对本地存储在源设备120上的照片进行编辑。宿设备160可以向用户呈现看起来以及感觉上是在宿设备160上对照片进行本地编辑的用户体验,而实际上是在源设备120上对该照片进行编辑。使用这样的配置,设备用户能够将一个设备的能力用于若干设备。例如,源设备120可以包括具有大量存储器和高端处理能力的智能电话。然而,当观看电影时,用户可能希望在具有较大显示屏幕的设备上观看电影,在这种情况下,宿设备160可以是平板电脑或者甚至是更大的显示设备或电视机。当想要发送或者回复电子邮件时,用户可能希望使用具有物理键盘的设备,在这种情况下,宿设备160可以是膝上型计算机。在上述两种情况下,尽管用户正在与宿设备进行交互,但大多数处理可以仍然由源设备120来执行。源设备和宿设备可以通过在任何给定的会话中对设备的能力进行协商和/或识别来促进双向交互。
[0043]在一些配置中,A/V控制模块125可以包括由源设备120的操作系统执行的操作系统过程。然而,在其它配置中,A/V控制模块125可以包括运行在源设备120上的应用的软件过程。在这种配置中,用户输入命令可以由软件过程进行解释,以使得宿设备160的用户直接与运行在源设备120上的应用而不是与运行在源设备120上的操作系统进行交互。通过直接与应用而不是操作系统进行交互,宿设备160的用户可以有权访问不是源设备120的操作系统本地的命令库。此外,直接与应用进行交互可以使得命令能够被在不同平台上运行的设备更容易地进行发送和处理。
[0044]可以通过通信信道150将在宿设备160处应用的用户输入发送回源设备120。在一个例子中,可以实现反向信道架构(其还被称为用户接口返回信道(UIBC))以使得宿设备160能够向源设备120发送在宿设备160处应用的用户输入。反向信道架构可以包括用于传送用户输入的上层消息和用于对宿设备160和源设备120处的用户接口能力进行协商的下层帧。WBC可以位于宿设备160与源设备120之间的互联网协议(IP)传输层。以这一方式,UIBC可以在开放系统互联(OSI)通信模型中的传输层之上。为了提升可靠的传输以及对包含用户输入数据的数据分组的顺序递送,UIBC可以被配置为在其它基于分组的通信协议(例如,传输控制协议/互联网协议(TCP/IP)或者用户数据报协议(UDP))顶部运行。UDP和TCP可以在OSI层架构中并行操作。TCP/IP可以使宿设备160和源设备120能够在分组丢失的情况下实现重传技术。
[0045]WBC可以被设计为传输各种类型的用户输入数据(其包括跨平台用户输入数据)。例如,源设备120可以运行1S?操作系统,而宿设备160运行诸如Android?或者Windows?之类的另一种操作系统。不管什么平台,ΠΡΜ 168都可以以对于A/V控制模块125可理解的形式来对接收的用户输入进行封装。WBC可以支持多种不同类型的用户输入格式,以便允许多不同类型的源设备和宿设备利用该协议,而不管源设备和宿设备是否在不同的平台上进行操作。可以规定通用的输入格式,并且可以同时支持平台特定的输入格式,从而以可以通过WBC在源设备120与宿设备160之间传送用户输入的方式来提供灵活性。
[0046]本公开内容的技术可以提高WD系统100中的用户体验。针对WD系统100的用户的典型使用情形包括:在具有反向人工接口设备(HID)反馈的宿设备160的较大显示器屏幕上显示在源设备120上运行的用户界面应用;在宿设备160处显示在源设备120上运行的游戏应用;在宿设备160处显示在源设备120上运行的视频回放应用。对于这些使用情形中的每一种,源设备120可以向宿设备160端到端发送完整的帧缓冲区和帧更新的内容,以便向宿设备160的用户进行显示。源设备120的发射机/接收机126可以使用实时传输协议(RTP)/用户数据报协议(UDP)或者传输控制协议(TCP)来向源设备160的发射机/接收机166传输经编码的视频帧。
[0047]为了使WD系统100提供与高清晰度多媒体接口(HDMI)或者其它类型的显示器电缆相类似的用户体验,WD系统100需要实现端到端延迟小于约80毫秒(ms)。但是,在视频回放应用使用情形的情况下,WD系统100还需要在不引入过多额外的延迟的情况下在宿设备160处实现高质量(即,平滑度)的视频回放。本公开内容描述了可以单独地或者结合WD系统100来应用以实现上文针对提高的用户体验所描述的延迟和质量需求的数个技术。
[0048]根据本公开内容的技术,可以在源设备120和宿设备160两者中配置处理管道,以减少在源设备120与宿设备160之间发送的A/V媒体数据121的端到端延迟,同时提高宿设备160处的视频回放质量。在一个例子中,所述技术包括:源设备120处进行的低延迟屏幕捕获和缓存。例如,当在WD系统100中建立通信会话之后,管道管理器可以将源设备120的处理管道配置为:在处理步骤之间包括能够对A/V媒体数据121中的至少最近的一个帧更新进行保存的最小大小缓冲区,以减少时延。此外,源设备120的处理管道可以被配置为:使用硬件加速从该缓冲区中获取帧更新,以便使用该管道处理来进行处理。
[0049]在另一个例子中,所述技术包括:基于从源设备120接收的A/V媒体数据121的类型来在宿设备160处进行定制的回放。如果A/V媒体数据121只包括视频数据,而不包括音频数据,则宿设备160的处理管道中所包括的渲染器可以被配置为:执行对该视频数据的加速渲染。如果A/V媒体数据121包括视频数据和音频数据两者,则管道管理器可以减小音频渲染启动定时器,因此该渲染器可以根据所减小的启动定时器来对同步的音频和视频数据进行渲染。此外,在从源设备120接收A/V媒体数据121之前,管道管理器可以基于在通信会话的能力协商时段期间交换的流报头信息来配置宿设备160中的处理管道,以便减少由于建立时间而造成的延迟。
[0050]在另外的例子中,所述技术包括:基于对于从源设备120接收的A/V媒体数据121的应用认知来在宿设备160处进行定制的缓存。宿设备160 了解用于A/V媒体数据121的应用的类型,并且管道管理器调整宿设备160的处理管道中的缓冲区的大小,以便针对该应用类型,在平滑性和时延之间实现适当的平衡。例如,当A/V媒体数据121是用于视频回放应用时,对缓冲区大小进行增加,以增加用于视频回放应用的平滑度。另一方面,当A/V媒体数据121是用于用户界面(UI)应用或者游戏应用时,对缓冲区大小进行减小,以减少用于该UI或者游戏应用的延迟。
[0051]此外,本公开内容的技术还可以包括:在源设备120与宿设备160之间为音频数据的传输提供比视频数据的传输更高的优先级。将视频数据分组的传输绑定到相关联的音频数据分组的传输,使得确保所有的音频分组都到达宿设备,减少在宿设备处用于等待接收丢失的分组的延迟。管道管理器可以将音频管道路径配置为:比源设备120中的视频管道路径包括更多的缓冲。此外,与用于视频管道路径的传输队列相比,源设备120处的无线调制解调器套接字可以为音频管道路径提供更高优先级的传输队列。此外,宿设备160可以通过WBC向源设备120提供用于描述通信信道150的传输状况的反馈信息,并且管道管理器可以基于该反馈信息来修改源设备120的处理管道。
[0052]在图1的例子中,源设备120可以包括智能电话、平板电脑、膝上型计算机、桌面型计算机、支持W1-Fi的电视机或者能够发送音频和视频数据的任何其它设备。同样,宿设备160可以包括智能电话、平板电脑、膝上型计算机、桌面型计算机、支持W1-Fi的电视机或者能够接收音频和视频数据以及接收用户输入数据的任何其它设备。在一些实例中,宿设备160可以包括设备系统,使得显示器162、扬声器163、Π设备167和A/V编码器164所有部分分离但是是可互操作的设备。同样,源设备120可以是设备系统,而不是单个设备。
[0053]在本公开内容中,术语源设备通常用于指代发送A/V数据的设备,术语宿设备通常用于指代从源设备接收该A/V数据的设备。在许多情况下,源设备120和宿设备160可以是类似的或者相同的设备,其中一个设备作为源进行操作,而另一个设备作为宿进行操作。此外,在不同的通信会话中,这些角色可以颠倒。因此,一个通信会话中的宿设备可以在后续的通信会话中变成源设备,或者反之亦然。
[0054]在一些例子中,WD系统100还可以包括除了宿设备160之外的一个或多个宿设备。类似于宿设备160,另外的宿设备可以从源设备120接收A/V数据,并且通过建立的WBC向源设备120发送用户命令。在一些配置中,所述多个宿设备可以彼此独立地进行操作,并且在源设备120处的A/V数据输出可以同时地在宿设备160和所述另外的宿设备中的一个或多个宿设备处输出。在替代的配置中,宿设备160可以是主宿设备,而所述另外的宿设备中的一个或多个宿设备可以是辅宿设备。在这种示例性配置中,可以耦合宿设备160与所述另外的宿设备中的一个宿设备,并且宿设备160可以显示视频数据,而另外的宿设备输出相对应的音频数据。另外,在一些配置中,仅当另外的宿设备输出发送的音频数据时,宿设备160才可以输出发送的视频数据。
[0055]图2是示出了 WD系统中的源设备220的例子的框图,源设备220可以实现本公开内容的技术。源设备220可以是类似于图1中的源设备120的设备,并且可以以与源设备120相同的方式进行操作。源设备220包括本地显示器222、扬声器223、处理器231、显示处理器235、音频处理器236、存储器232、传输单元233和无线调制解调器234。如图2中所示出的,源设备220可以包括一个或多个处理器(即,处理器231、显示处理器235和音频处理器236),所述一个或多个处理器对A/V媒体数据进行编码和/或解码,以便进行传输、存储和显示。例如,A/V媒体数据可以存储在存储器232处。存储器232可以存储完整的A/V文件,或者可以包括只存储(例如,从另一个设备或者源流式传输的)A/V文件的一部分的较小的缓冲区。
[0056]传输单元233可以对经编码的A/V媒体数据进行处理以便进行网络传输。例如,经编码的A/V媒体数据可以由处理器231进行处理,并且由传输单元233封装到网络接入层(NAL)单元中以便进行跨网络通信。这些NAL单元可以由无线调制解调器234通过网络连接来发送给无线宿设备。无线调制解调器234可以是例如被配置为实现IEEE 802.11标准族中的一种标准的W1-Fi调制解调器。源设备220还可以对A/V媒体数据进行本地处理和显示。具体而言,显示处理器235可以对要在本地显示器222上显示的视频数据进行处理,而音频处理器236可以对音频数据进行处理以便在扬声器223上输出。
[0057]如上文参照图1的源设备120所描述的,源设备220可以从宿设备接收用户输入命令。例如,源设备220的无线调制解调器234可以从宿设备接收封装的用户输入数据分组(例如,NAL单元),并且将封装的数据单元发送给传输单元233以便进行解封装。传输单元233可以从NAL单元中提取用户输入数据分组,并且处理器231可以对该数据分组进行解析以提取用户输入命令。基于该用户输入命令,处理器231修改源设备220对A/V媒体数据的处理。在其它例子中,源设备220可以包括用户输入单元或者驱动(图2中没有示出),该用户输入单元或者驱动从传输单元233接收用户输入数据分组,对该数据分组进行解析以提取用户输入命令,并且基于该用户输入命令来指导处理器231修改源设备220对A/V媒体数据的处理。
[0058]图2的处理器231通常表示各种各样的处理器中的任何一种,包括但不限于:一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、其它等效的集成或者分立逻辑电路、或者其某种组合。图2的存储器232可以包括各种各样的易失性或非易失性存储器中的任何一种,包括但不限于:诸如同步动态随机存取存储器(SDRAM)之类的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦写可编程只读存储器(EEPROM)、闪存等等。存储器232可以包括用于存储音频/视频数据以及其它类型数据的计算机可读存储介质。存储器232可以另外地存储由处理器231作为执行在本公开内容中所描述的各种技术的一部分而执行的指令和程序代码。
[0059]本公开内容的技术包括:对源设备220的处理管道进行配置以减少延迟,以便提高在WD系统中的源设备220处以及一个或多个宿设备处的用户体验。源设备220的处理管道包括由处理器231和/或传输单元233执行的一个或多个处理单元。针对图5中所示出的源设备520的处理管道进一步详细描述了这些技术。
[0060]在一个例子中,可以修改源设备220的处理管道以提供对媒体数据的低延迟屏幕捕获和缓存。更具体地说,源设备220的处理管道可以被配置为:在处理器231中的处理步骤之间包括最小大小缓冲区,以减少延迟。随后,源设备220将媒体数据中的至少最近的一个帧更新缓存在该最小大小缓冲区中,并且当该最小大小缓冲区满了时,丢弃较旧的帧更新。
[0061]源设备220的处理管道还可以被配置为:使用硬件加速从该缓冲区中获取帧更新以进行处理。使用硬件加速可以减少源设备220的中央处理单元(CPU)上的处理负载,这将增加帧速率和减少WD系统中的延迟。源设备220还可以重传经编码的帧更新(即,执行重复的推送),以确保宿设备及时地接收,从而进一步减少WD系统中的延迟。
[0062]举另一个例子,根据本所述技术,源设备220的处理管道可以被配置为:在WD系统中的源设备220与宿设备之间为音频数据的传输提供比视频数据的传输更高的优先级。将视频数据分组的传输绑定到相关联的音频数据分组的传输,使得确保所有的音频分组都到达宿设备,减少在宿设备处用于等待接收丢失的分组的延迟。
[0063]更具体地说,源设备220的音频管道路径可以被配置为:比视频管道路径包括更多的缓冲。该另外的缓冲确保在源设备220处将丢弃较少的音频分组。举另一个例子,源设备220的处理管道可以被配置为:与用于视频管道路径的传输队列相比,在无线调制解调器234处为音频管道路径提供更高优先级的传输队列。该更高优先级传输队列确保在源设备220处将音频分组排队在相对应的视频分组之前进行传输,以避免由视频分组等待相对应的音频分组而造成的视频管道路径中的时延或者停顿。此外,源设备220的无线调制解调器234可以从WD系统中的宿设备接收用于描述通信信道的传输状况的反馈信息。作为响应,源设备220可以基于该反馈信息来修改处理管道。
[0064]将上文所描述的技术中的一种或多种应用于源设备220可以减少WD系统中的端到端延迟,并且提高在该WD系统中的源设备220和宿设备两者处的用户体验。
[0065]图3是不出了 WD系统中的宿设备360的例子的框图,宿设备360可以实现本公开内容的技术。宿设备360可以是类似于图1中的宿设备160的设备,并且可以以与宿设备160相同的方式进行操作。宿设备360包括处理器331、存储器332、传输单元333、无线调制解调器334、显示处理器335、本地显示器362、音频处理器336、扬声器363和用户输入接Π 376。
[0066]宿设备360在无线调制解调器334处接收从源设备发送的封装的数据单元。无线调制解调器334可以例如是被配置为实现IEEE 802.11标准族中的一种或多种标准的W1-Fi调制解调器。传输单元333可以对封装的数据单元进行解封装。例如,传输单元333可以从封装的数据单元中提取经编码的视频数据,并且将经编码的A/V数据发送给处理器331以进行解码和渲染,以便输出。显示处理器335可以对要在本地显示器362上显示的经解码的视频数据进行处理,而音频处理器336可以对经解码的音频数据进行处理以便在扬声器363上输出。
[0067]除了对音频和视频数据进行渲染之外,无线宿设备360还可以通过用户输入接口376接收用户输入数据。用户输入接口 376可以表示多种用户输入设备中的任何一种,包括但不限于:触摸显示接口、键盘、鼠标、语音命令模块、姿势捕获设备(例如,具有基于照相机的输入捕获能力)或者多种用户输入设备中的任何其它设备。通过用户输入接口 376接收的用户输入可以由处理器331进行处理。该处理可以包括:生成包括所接收的用户输入命令的数据分组。一旦生成该数据分组,传输单元333就可以对该数据分组进行处理,以便通过WBC向源设备进行网络传输。
[0068]图3的处理器331可以包括范围广泛的处理器中的一种或多种,例如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、其它等效的集成或者分立逻辑电路、或者其某种组合。图3的存储器332可以包括各种各样的易失性或非易失性存储器中的任何一种,包括但不限于:诸如同步动态随机存取存储器(SDRAM)之类的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦写可编程只读存储器(EEPROM)、闪存等等。存储器232可以包括用于存储音频/视频数据以及其它类型数据的计算机可读存储介质。存储器332可以另外地存储由处理器331作为执行在本公开内容中所描述的各种技术的一部分而执行的指令和程序代码。
[0069]本公开内容的技术包括:对宿设备360的处理管道进行配置以减少延迟和提高视频回放质量(即,平滑度),以便提高宿设备360处的用户体验。宿设备360的处理管道包括由处理器331和/或传输单元333执行的一个或多个处理单元。针对图6中所示出的宿设备660的处理管道进一步详细描述了这些技术。
[0070]在一个例子中,宿设备360的处理管道可以被配置为:基于从WD系统中的源设备接收的媒体数据的类型,在宿设备360处提供对媒体数据的定制回放。更具体地说,如果媒体数据只包括视频数据,而不包括音频数据,则宿设备360的处理管道可以被配置为:执行对该视频数据的加速渲染。例如,在检测到媒体数据不包括音频数据时,宿设备360可以禁用同步,并且在不等待与不存在的音频数据进行同步的情况下对视频数据进行渲染。另一方面,在检测到媒体数据包括视频数据和音频数据两者时,宿设备360可以减小音频渲染启动定时器,并且根据所减小的启动定时器来对同步的音频和视频数据进行渲染。
[0071]此外,在从源设备接收媒体数据之前,可以基于流报头信息来配置宿设备360中的处理管道。宿设备360和源设备可以在WD系统中的通信会话的能力协商时段期间交换流报头信息。以这一方式,宿设备360的处理管道可以立即开始对接收的媒体数据进行处理,并且消除或者减少由于处理管道的建立时间而造成的任何延迟。
[0072]举另一个例子,根据所述技术,宿设备360的处理管道可以被配置为:基于对于从源设备接收的媒体数据的应用认知来提供对该媒体数据的定制缓存。更具体地说,宿设备360可以了解针对所接收的媒体数据的应用类型,并且调整处理管道中的缓冲区的大小,以便针对该应用类型在平滑度与延迟之间实现适当的平衡。在一些情况下,可以在源设备处检测针对该媒体数据的应用类型,并且将其与媒体数据以信号形式发送给宿设备360。在该情况下,宿设备360基于从源设备接收的指示来了解针对该媒体数据的应用类型。在其它情况下,宿设备360可以通过自己检测应用类型来了解针对该媒体数据的应用类型。
[0073]当该媒体数据是用于视频回放应用时(其中,回放的质量和平滑度在宿设备处是最高优先级,并且上文所描述的低延迟技术可能造成可见的抖动),对宿设备360的处理管道中的缓冲区大小进行增加,以增加视频回放应用中的媒体数据的平滑度。相比而言,当该媒体数据是用于用户界面(UI)应用或者游戏应用时(其中,低延迟在宿设备处是最高优先级),对宿设备360的处理管道中的缓冲区大小进行减小,以减少该UI或者游戏应用的延迟。
[0074]举另外的一个例子,根据所述技术,宿设备360的无线调制解调器334可以向WD系统中的源设备发送用于描述通信信道的传输状况的反馈信息。宿设备360可以基于先前接收的媒体数据的错误率和/或分组丢失来确定该通信信道的传输状况。无线调制解调器334可以通过WBC或者其它反向信道向源设备发送该反馈信息。在一些情况下,宿设备360可以使用实时传输控制协议(RTCP)来进行反馈流式传输。作为响应,源设备可以基于该反馈信息来修改其对以宿设备360目的地的媒体数据的处理。
[0075]将上文所描述的技术中的一种或多种应用于宿设备360可以减少WD系统中的端到端延迟,并且提高视频回放质量,以便提高在该WD系统中的宿设备360处的用户体验。
[0076]图4是不出了一种不例性发射机系统410和接收机系统450的框图,发射机系统410和接收机系统450可以由图1的发射机/接收机126和发射机/接收机166用于通过通信信道150进行通信。在发射机系统410处,从数据源412向发送(TX)数据处理器414提供针对多个数据流的业务数据。可以在相应的发射天线上发送每一个数据流。TX数据处理器414基于针对每一个数据流所选择的特定的编码方案来对该数据流的业务数据进行格式化、编码和交织。可以使用正交频分复用(OFDM)技术来将每一个数据流的经编码的数据与导频数据进行复用。此外,还可以使用各种各样的其它无线通信技术,包括但不限于:时分多址(TDMA)、频分多址(FDMA)、码分多址(CDMA)或者OFDM、FDMA、TDMA和/或CDMA的任意组合。
[0077]与图4 一致地,导频数据通常是以已知方式处理的已知数据模式,并且可以在接收机系统450处用于估计信道响应。随后,可以基于针对每一个数据流所选择的特定调制方案(例如,二进制相移键控(BPSK)、正交相移键控(QPSK)、M-PSK或者M-QAM(正交幅度调制),其中M可以是2的幂)来对经复用的导频和数据流的经编码的数据进行调制(即,符号映射)以提供调制符号。可以通过由处理器430执行的指令来确定每一个数据流的数据速率、编码和调制,其中处理器430可以与存储器432相耦合。
[0078]随后,向TX MIMO处理器420提供数据流的调制符号,TX MIMO处理器420可以进一步处理这些调制符号(例如,针对0FDM)。随后,TXMIMO处理器420可以向Nt个发射机(TMTR)422A- 422T( “发射机422”)提供乂个调制符号流。在某些方面,TX MMO处理器420将波束成形权重应用于数据流的符号以及发送该符号的天线。每一个发射机422可以接收并处理相应的符号流以提供一个或多个模拟信号,并且进一步调节(例如,放大、滤波和上变频)该模拟信号以提供适合于在MMO信道上传输的调制信号。随后,分别从Nt个天线424A- 424t( “天线424”)发送来自收发机422的Nt个调制信号。
[0079]在接收机系统450处,通过Nk个天线452A至452R (“天线452 ”)接收所发送的调制信号,并且将来自每一个天线452的接收信号提供给相应的接收机(RCVR)454A- 454R(“接收机454”)。每一个接收机454调节(例如,滤波、放大和下变频)各自的接收信号,对经调节的信号进行数字化以提供采样,并且进一步处理该采样以提供相对应的“接收的”符号流。随后,接收(RX)数据处理器460可以接收并基于特定的接收机处理技术来处理来自Nk个接收机454的乂个接收的符号流,以提供乂个“检测的”符号流。随后,RX数据处理器460对每一个检测的符号流进行解调、解交织和解码,以恢复数据流的业务数据。由RX数据处理器460进行的处理与由发射机系统410处的TX MIMO处理器420和TX数据处理器414执行的处理是互补的。
[0080]可以与存储器472相耦合的处理器470定期地确定使用哪个预编码矩阵。反向链路消息可以包括与通信链路和/或所接收的数据流有关的各种类型的信息。随后,该反向链路消息由TX数据处理器438进行处理,由调制器480进行调制,由发射机454进行调节,并且被发送回发射机系统410,其中TX数据处理器438还从数据源436接收多个数据流的业务数据。
[0081]在发射机系统410处,来自接收机系统450的调制信号由天线424进行接收,由接收机422进行调节,由解调器440进行解调,并且由RX数据处理器442进行处理,以提取由接收机系统450发送的反向链路消息。随后,处理器430确定使用哪个预编码矩阵来确定波束成形权重,并且处理所提取的消息。
[0082]图5是示出了源设备520的例子的框图,源设备520能够支持本公开内容的技术以减少源设备520的处理管道550中的延迟。源设备520可以是与来自图1的源设备120或者来自图2的源设备220相类似的设备,并且可以以与源设备120或者源设备220相同的方式进行操作。
[0083]源设备520包括本地显示器522、显示处理器535、存储器532、无线调制解调器套接字570、无线调制解调器534和处理管道550。处理管道550包括缓冲区以及由处理器531和传输单元533执行的处理单元。具体而言,处理管道550包括:处理器531内的视频处理引擎(VPE) 560和编码器562,以及传输单元533内的打包器564。此外,处理管道550包括位于显示处理器535与VPE 560之间的回写(WB)缓冲区540、VPE 560与编码器562之间的帧缓冲区542、以及编码器562与打包器564之间的编码图像缓冲区(CPB) 544。
[0084]源设备520还包括硬件加速器536和管道管理器538。根据本公开内容的技术,管道管理器538将处理管道550配置为:在源设备520处提供对媒体数据的低延迟屏幕捕获和缓存。具体而言,管道管理器538将处理管道550配置为:包括最小大小缓冲区,并且使用硬件加速器536来从存储器532和最小大小缓冲区中获取媒体数据。
[0085]在一个例子中,当与WD系统中的一个或多个宿设备建立通信会话之后,管道管理器538可以将源设备520的处理管道550配置为:在处理步骤之间包括最小大小缓冲区,以减少延迟。在一种情况下,该最小大小缓冲区可以包括:减少数量的WB缓冲区540,以供媒体数据通过其在显示处理器535与VPE 560之间移动。例如,管道管理器538可以将处理管道550配置为:包括仅两个WB缓冲区540 (例如,乒乓缓冲区),以保存媒体数据的至少最近的一个帧更新。在帧更新由VPE 560进行处理之前,WB缓冲区540可以保存这些帧更新。此外,WB缓冲区540可以被配置为:在将最近的帧更新写回存储器532之前,保存至少该最近的帧更新。例如,两个WB缓冲区540可以被配置为:保存少于32个条目(entry),以及在一些情况下少于16个条目。
[0086]在其它情况下,最小大小缓冲区还可以包括减少数量的帧缓冲区542,以供媒体数据通过其在VPE 560与编码器562之间移动。例如,管道管理器538可以将处理管道550配置为:包括仅四个帧缓冲区542 (例如,两个乒乓缓冲区和两个保持缓冲区),以保存媒体数据的至少最近的一个帧更新。此外,最小大小缓冲区还可以包括:减少数量的CPB 544,以供媒体数据通过其在编码器562与打包器564之间移动。例如,管道管理器538可以将处理管道550配置为:包括仅六个CPB 544(例如,两个乒乓缓冲区和四个保持缓冲区),以保存媒体数据的至少最近的一个帧更新。
[0087]根据所述技术,使用源设备520的处理管道550中的最小大小缓冲区,减少了源设备520处的延迟,因为在进行处理之前和进行处理期间,帧更新移动通过较少和较小的缓冲区。此外,将WB缓冲区540的大小最小化到具有少于32个条目的仅两个乒乓缓冲区,允许帧丢弃在源设备520的处理管道550的早期阶段发生,而不是在下游发生以阻塞处理管道 550。
[0088]当对源设备520的处理管道550进行修改以包括最小大小缓冲区时,管道管理器538还可以修改处理管道550中的帧捕获过程,以确保最近的帧更新被缓存、处理,并且被发送给宿设备。所述技术包括:将从媒体数据中捕获的至少最近的一个帧更新缓存在最小大小缓冲区中,并且当该最小大小缓冲区满了时,丢弃较旧的帧更新。例如,可以在源设备520中的专用于WD系统的WB缓冲区560中对每一个帧更新(例如,无论是部分的帧还是整个帧)进行排队或者累积。如果最小大小WB缓冲区560由于另外的帧更新而用完了空间,则WB缓冲区560可以被配置为丢弃较旧的帧更新,并维持较近的帧更新。最小大小WB缓冲区560也许不能够与接收到新帧更新一样快速地输出帧更新来进行处理。根据所述技术,可以从WB缓冲区560中丢弃较旧的帧更新中的一个或多个,以允许对新的帧更新进行缓存、处理和发送。
[0089]举另一个例子,处理管道550可以被配置为:使用硬件加速来从存储器532、WB缓冲区540、帧缓冲区542和/或CPB 544获取帧更新。例如,处理管道550可以使用硬件加速器536来获取帧更新,以便由处理管道550中的处理单元而不是源设备520的中央处理单元(CPU)进行处理。使用硬件加速器536可以减少源设备520的CPU上的处理负载,这可以增加帧速率和减少源设备520中的延迟。
[0090]用于捕获的媒体数据帧的像素的图像格式通常是RGB888、RGB565、或YUV原始格式中的一种。使用源设备520的CPU来存取捕获的媒体数据帧的标准存储器副本将会花费太多的CPU负载来实现高帧速率更新。当用于WD系统的媒体数据处理在源设备处消耗太多的CPU处理负载时,用户可以注意到在WD系统中的源设备550上以及在宿设备上执行的媒体应用的延迟或者缓慢性。这些技术包括:使用硬件加速器536独立于CPU来执行直接存储器存取(DMA),以获取在存储器532或者缓冲区中的一个缓冲器中保存的帧更新,并且在处理管道550中的处理单元之间移动帧更新。
[0091]源设备520内的编码器562可以是基于硬件和/或软件的。在VPE 560将帧更新渲染到帧缓冲区542中之后,编码器562对这些帧更新进行编码。在由打包器564形成分组并由无线调制解调器534传输给宿设备之前,可以将经编码的帧更新缓存在CPB 544中。在一些情况下,CPB 544可以被配置为:对指向在存储器532中所存储的经编码的帧更新的指针进行缓存,而不是对该经编码的帧更新生成另外的存储器副本以便缓存在CPB 544中。举一个例子,该指针可以指定该经编码的帧更新在存储器532中的源地址,使得在CPB 544对该经编码的帧更新进行引用,但实际的存储器副本保存在存储器532中。以这一方式,源设备520可以避免用于生成和存储该经编码的帧更新的另外的存储器副本的开销。在其它例子中,这些技术可以使用其它方法来节省另外的存储器副本的开销。更具体地说,这些技术可以包括:使用映射的存储器或者针对存储器532的发送/接收请求,以便在不生成经编码的帧更新的额外的存储器副本的情况下对在CPB 544内的经编码的帧更新进行引用。
[0092]在另外的例子中,所述技术还包括:从源设备520重传(即,重复地推送)编码的帧更新,以确保宿设备及时地接收,从而进一步减少WD系统中的延迟。在差的通信信道的情况下(其中,在源设备520与宿设备之间可能丢失很多媒体数据分组),重复的推送可能是特别有用的。在一个例子中,源设备520可以不依赖于来自宿设备的反馈来对丢失的帧进行重传。相反,如果尚未接收到用于向宿设备传输的新的帧更新,则源设备520的无线调制解调器534可以在某个预先确定的时间段之后自动地对帧更新进行重传。例如,如果没有接收到新的帧更新,则无线调制解调器534可以在约13秒之后自动地对最后的帧更新进行重传。在其它情况下,无线调制解调器534可以在约10秒或者更短的时间之后对最后的帧更新进行重传。
[0093]在源设备520处所执行的重复的推送可以使得显示内容能够在宿设备处从损坏的帧(其是由于不可靠的传输所造成的)中得以恢复。例如,当源设备520的无线调制解调器534使用用户数据报协议(UDP)(其与例如传输控制协议(TCP)相比是相对不可靠的传输协议)时,如果在预先确定的时间段之后没有接收到新的帧更新,则无线调制器534可以执行重复的推送来重传最后的帧更新。在一些例子中,可以基于发送的媒体数据的类型来动态地调整重复的推送时间间隔。在媒体数据用于用户界面(UI)或者游戏应用的情况下,丢失的帧是引人注意的,并且将负面地影响WD系统中的Π应用的用户体验。在媒体数据用于视频回放应用的情况下,丢失的帧将不容易引人注意,并且将对视频回放应用的用户体验具有很少的影响或者不具有影响。因此,对于Π和游戏应用来说,无线调制解调器534可以被配置为:与用于视频回放应用相比,更频繁地执行重复的推送。例如,对于Π和游戏应用来说,可以将重复的推送时间间隔减少到约10秒或者更短。
[0094]在一些情况下,可以使用类似的重复推送机制来将帧推出源设备520的编码器562和/或宿设备中的每一个宿设备的解码器。通常,编码器和解码器并不自动地输出各个编码帧,而需要接收后续的帧以便推出先前的编码帧。因此,这些技术可以通过提供另外的推送来输出编码的帧更新而提高源设备520与一个或多个宿设备之间的同步。
[0095]此外,本公开内容的技术还包括:在WD系统中的源设备520与宿设备之间为音频数据的传输提供比视频数据的传输更高的优先级。将视频数据分组的传输绑定到相关联的音频数据分组的传输,使得确保所有的音频分组都到达宿设备,减少在宿设备处用于等待接收丢失的分组的延迟。管道管理器538可以将音频管道路径配置为:比源设备520中的视频管道路径包括更多的缓冲。该另外的缓冲确保在源设备520处较少的音频分组将被丢弃。与用于视频管道路径的传输队列相比,无线调制解调器套接字570可以为音频管道路径提供更高优先级的传输队列。该更高优先级的传输队列确保在源设备520处将音频分组排队在相对应的视频分组之前进行传输,以避免由于视频分组等待相对应的音频分组被排队而造成的视频管道路径中的时延或者停顿。
[0096]传统上,音频和视频处理管道路径两者具有相同或者相似数量的缓存和传输优先级。由于音频数据需要更谨慎的处理和传输,以确保在宿设备处接收到所有媒体数据,因此源设备中的传统视频管道路径延迟或者停顿视频数据的传输,直到相关联的音频数据准备好为止,这向WD系统引入另外的延迟。通过优先处理音频管道路径,视频管道路径中的另外的延迟或者停顿时间是不必要的。
[0097]根据所述技术,可以通过将媒体数据分组中的服务类型(TOS)字段设置为指示分组是否包括音频或视频业务,来实现音频数据的优先传输。例如,如果通信信道支持W1-Fi多媒体(WMM),则TOS字段可以指示WMM针对包括语音、视频、尽力而为和背景的优先级划分目的所规定的接入类别。媒体数据分组中的TOS字段使得源设备550中的无线调制解调器套接字570能够将音频分组和视频分组放置在具有不同的优先级水平的不同队列中。
[0098]此外,源设备520可以从宿设备接收用于描述与该宿设备的通信信道的传输状况的反馈信息。例如,该反馈信息可以包括:在宿设备处确定并传送给源设备520的错误率或者分组丢失。在一些情况下,可以通过在WD系统中的宿设备与源设备520之间建立的WBC从宿设备向源设备520发送该反馈信息。在其它情况下,可以通过不同的套接字链路向源设备520发送该反馈信息。另外,可以使用RTCP或者某种其它定制的信令来传送该反馈信肩、O
[0099]作为响应,源设备520的管道管理器538可以基于该反馈信息来修改源设备520的处理管道550。在一个例子中,响应于接收描述差的通信信道的反馈信息,源设备520可以增加用于重传媒体数据分组的重复推送时间间隔(例如,多于10秒或者多于13秒),或者改变用于处理和发送媒体数据分组的数据速率。在另一个例子中,响应于该反馈信息,源设备520通常可以调整缓冲区大小、编码参数、或者在传输协议的类型之间动态地切换。例如,响应于描述差的通信信道的反馈信息,源设备520可以从实时协议(RTP)/用户数据报协议(UDP)通信信道(其是相对不可靠的传输协议)切换到RTP/传输控制协议(TCP)传输信道。
[0100]图6是不出了宿设备660的例子的框图,宿设备660能够支持本公开内容的技术,以减少宿设备660的处理管道650中的延迟和提高在该宿设备660处的视频回放。宿设备660可以是与来自图1的宿设备160或者来自图3的宿设备260相类似的设备,并且可以以与宿设备160或者宿设备260相同的方式进行操作。
[0101]宿设备660包括本地显示器622、显示处理器635、存储器632、无线调制解调器套接字670、无线调制解调器634和处理管道650。处理管道650包括缓冲区和由处理器631和传输单元633执行的处理单元。具体而言,处理管道650包括传输单元633内的解析器680,以及处理器631内的解码器682和渲染器684。此外,处理管道650包括位于解析器680与解码器682之间的缓冲区692、位于解码器682与渲染器684之间的渲染队列684、以及渲染器684与显示处理器635之间的帧缓冲区696。
[0102]宿设备660还包括管道管理器638。根据本公开内容的技术,管道管理器638将处理管道650配置为:基于从源设备接收的媒体数据的类型来在宿设备660处提供定制的回放。具体而言,管道管理器638将处理管道650配置为:基于媒体数据是否包括音频数据来对渲染进行修改。
[0103]例如,如果媒体数据只包括视频数据,而不包括音频数据,则宿设备660的处理管道650中所包括的渲染器684被配置为:执行对该视频数据的加速渲染。在检测到媒体数据不包括音频数据时,管道管理器638可以在渲染器684处禁用同步。随后,渲染器684可以在不等待与不存在的音频数据进行同步的情况下对视频数据进行渲染。
[0104]传统上,媒体数据处理管道被设计用于视频数据和音频数据两者,或者仅仅用于不具有音频数据的视频数据。在接收到仅仅视频数据时,被设计用于视频和音频数据两者的媒体数据处理管道以处理视频和音频数据两者所需要的相同速度对该视频数据进行处理,包括用于与不存在的音频数据进行同步的等待时间。该另外的处理时间向该处理管道不必要地增加了延迟。本公开内容的技术使得宿设备660的解码器682能够检测到所接收的媒体数据的类型,并且基于媒体数据的类型来动态地调整渲染器684处的回放处理速度。例如,解码器682可以在媒体数据中检测音频时间戳的存在或者缺失,其中,音频时间戳的存在指示:来自源设备的该媒体数据包括音频数据。
[0105]例如,在媒体数据用于Π应用的情况下,不存在与视频数据相伴随的音频数据。对于UI应用数据,管道管理器638可以在宿设备660的渲染器684处禁用同步。以这一方式,渲染器684可以尽可能快速地对用于Π应用的视频数据进行渲染,而不需要用于对不存在的音频数据进行处理和同步的等待时间。在媒体数据用于视频回放应用的情况下,可能存在与视频数据相伴随的音频数据。对于具有音频数据的视频回放应用来说,管道管理器638可以启用同步,并且渲染器684可以以正常的处理速度对同步的视频数据和音频数据进行渲染。
[0106]此外,所述技术还使得管道管理器638能够基于适用于渲染器684的媒体时间来调整渲染器684处的采样时间。以这一方式,当由源设备设置的媒体数据的采样时间不适用于宿设备660处的渲染器684时,管道管理器638可以基于媒体时间来选择用于该媒体数据的适用的采样时间。
[0107]举另一个例子,如果媒体数据包括视频数据和音频数据两者时,管道管理器638可以减小音频渲染启动定时器,并且渲染器684可以根据所减小的启动定时器来对同步的音频和视频数据进行渲染。以这一方式,即使当媒体数据包括音频数据时,所述技术可以减少宿设备660处的延迟。
[0108]在一些回放引擎中,可以在启动时对音频渲染进行延迟以避免遗漏或者丢失传入的音频分组。该延迟时间对于某种通信系统(例如,蓝牙系统)来说是必要的。对于诸如WD系统之类的其它通信系统来说,当启用同步时,该延迟是不必要的并且加入到端到端延迟。例如,为了补偿高级音频分发配置文件(A2DP)初始化时间(例如,I秒或者更多,其对于蓝牙系统来说是必要的),可以将宿设备660的渲染器684处的音频渲染启动定时器设置相对高。音频数据渲染将被延迟该启动时间,在将传入的采样输入到渲染器684之前,将必须对这些采样进行缓存。如果音频数据被延迟,则将必须对相对应的视频数据进行延迟,以保持音频数据和视频数据相同步。
[0109]根据本公开内容所描述的技术,对于W)系统来说,减小渲染器684处的音频渲染启动定时器以便减少时延和避免宿设备660中的音频和视频数据停顿。例如,在WD系统的情况下,管道管理器638可以减小或者清除音频渲染启动定时器,以便在宿设备660处提供较快的渲染和回放。可以将音频渲染启动定时器减小到小于I秒、小于50毫秒(ms),以及在一些情况下小于20ms。在蓝牙系统的情况下,管道管理器638可以将音频渲染启动定时器动态地重置为相对高(例如,I秒或者更多)。
[0110]在另一个例子中,在从源设备接收媒体数据之前,管道管理器638可以基于在通信会话的能力协商时段期间交换的流报头信息来配置宿设备660中的处理管道650,以便减少由于建立时间而造成的延迟。为了预先配置处理管道650,源设备和宿设备660首先交换流报头信息,所述流报头信息包括与要通过通信信道发送的媒体数据有关的信息。可以使用实时流式传输协议(RTSP)或者其它专有消息来交换流报头信息。随后,管道管理器638基于所接收的报头信息来建立处理管道650,其包括配置以下各项:缓冲区大小、渲染启动定时器、同步等待定时器和可编程解码器设置。在配置处理管道650之后,宿设备660通知源设备开始发送媒体数据。
[0111]另外,在对从源设备接收的媒体数据进行处理之前,宿设备660可以从解码器682中清空(flush)所接收的媒体数据的一个或多个采样。该媒体数据的前几个采样可以包括:在通信会话的协商时段期间生成的来自源设备管道的较旧的、停顿的采样。这些技术提供了重复推送,以便从源设备对帧进行重传,从而在宿设备660处将停顿的采样推出解码器682。以这一方式,宿设备660不在媒体数据的较旧的、停顿的采样上浪费任何处理时间。
[0112]在一些情况下,宿设备660处的管道管理器638可以将虚拟帧(dummy frame)插入到解码器682中,以将采样推出解码器682,以便由渲染器684进行渲染。当解码器682不是可编程的并且不支持对传入的媒体数据采样的图像顺序计数(POC)时,这可能是必要的。在其它情况下,其中解码器682是可编程的并且支持P0C,管理管理器638可以将解码器682配置为根据PIC或者解码顺序而不是显示顺序来输出媒体数据采样。将可编程解码器682配置为以解码顺序来输出采样确保了解码一完成就输出进入解码器682的每一个输入采样。以这一方式,可以减少或者消除解码器682处的停顿和延迟。此外,管道管理器638可以使解码器682与渲染器684之间的渲染队列694中所包括的缓冲区的数量最小化,以便进一步减少宿设备660中的延迟。例如,在媒体数据由渲染器684进行渲染之前,渲染队列694可以包括4个或者更少的缓冲区来保存媒体数据。
[0113]此外,根据本公开内容的技术,管道管理器638将处理管道640配置为:基于对于从源设备接收的媒体数据的应用认知来在宿设备660处提供定制的缓存。具体而言,源设备660的解码器682 了解针对所接收的媒体数据的应用类型,并且管道管理器638配置处理管道650以调整处理管道650中的缓冲区的大小。以这一方式,宿设备660可以针对该媒体数据的应用类型在平滑度与延迟之间实现适当的平衡。在针对媒体数据的应用中的显示之前,管道管理器638可以调整以下各项的大小:渲染队列694、帧缓冲区696或者处理管道650中所包括的保存数据的任何其它缓冲区。
[0114]例如,当媒体数据是用于视频回放应用时,回放的质量或者平滑度在宿设备660处是最高优先级,并且所描述的低延迟技术可能造成可见的抖动。在该情况下,管道管理器638可以对处理管道650中的缓冲区的大小进行增加,以增加视频回放应用中的媒体数据的平滑度。相比而言,当该媒体数据是用于用户界面(UI)应用或者游戏应用时,低延迟在宿设备660处是最高优先级。在该情况下,管道管理器638可以对处理管道650中的缓冲区的大小进行减小,以减少UI或者游戏应用的延迟。通过减小缓冲区大小,管道管理器638使得用于UI或者游戏应用的媒体数据能够在没有停顿和延迟的情况下移动通过宿设备660中的处理管道650。
[0115]在一些情况下,可以在源设备处检测针对该媒体数据的应用类型,并且将该应用类型以信号形式发送给WD系统中的宿设备660。例如,宿设备660可以基于从源设备接收的指示来检测针对所接收的媒体数据的应用。源设备可以通过检测音频数据的传入的音频速率和屏幕更新速率来确定该媒体数据是用于视频回放应用。源设备可以向宿设备660发送对用于视频回放引擎的媒体数据的起始的指示,以及发送对用于视频回放应用的媒体数据的结束的另一个指示。宿设备660可以使用媒体播放器协议或者另一种专有协议来接收标志或者其它指示符与媒体数据。
[0116]在其它情况下,可以在宿设备660处检测针对该媒体数据的应用类型。宿设备660处的解码器682可以基于在所接收的媒体数据中包括的在规则的时间间隔处的音频时间戳来确定针对所接收的媒体数据的应用类型。可以假定的是,当媒体数据包括视频数据与在规则的时间间隔处的相对应的音频数据时,该媒体数据是用于视频回放应用。因此,解码器682可以在接收用于视频回放应用的媒体数据时检测在规则的时间间隔处出现的音频时间戳。
[0117]在任一种情况下,当宿设备660的解码器682 了解到所接收的媒体数据是用于视频回放应用时,在该视频回放应用中的显示之前,管道管理器638对用于保存媒体数据的缓冲区的大小(例如,渲染队列694或帧缓冲区696)进行增加。例如,管道管理器638可以将处理管道650配置为:包括渲染队列694中的四个以上的缓冲区,以及包括四个以上的帧缓冲区696 (例如,两个乒乓缓冲区和至少2个保持缓冲区)。当这些缓冲区能够保存较大数量的媒体数据时,丢失帧的风险减小,并且回放中的抖动量也减小。
[0118]另一方面,当宿设备660的解码器682 了解到所接收的媒体数据不是用于视频回放应用而是用于Π或者游戏应用时,在该Π或者游戏应用中的显示之前,管道管理器638对用于保存媒体数据的缓冲区的大小进行减小。例如,管道管理器638可以将处理管道650配置为:包括渲染队列694中的小于四个的缓冲区,以及包括四个或者更少的帧缓冲区696 (例如,两个乒乓缓冲区和至多2个保持缓冲区)。以这一方式,媒体数据更快地移动通过宿设备660的处理管道650以减少延迟。
[0119]在一些情况下,管道管理器638可以在一段时间上暂停渲染器684,以便将另外的媒体数据采样存储在渲染队列694中。例如,管道管理器638可以暂停渲染器684直到将门限数量的采样存储在渲染队列694中为止,并且随后恢复进行渲染以增加视频回放的平滑度。在一些情况下,可以将采样的门限数量设置为8个采样、16个采样,或者在一些情况下多于16个米样。
[0120]此外,宿设备660可以向源设备提供用于描述与该源设备的通信信道的传输状况的反馈信息。源设备可以基于该反馈信息来修改其处理管道,如上文针对图5更详细描述的。例如,该反馈信息可以包括:在宿设备660处确定并传送给源设备的错误率或者分组丢失。在一些情况下,无线调制解调器634可以通过在WD系统中的宿设备660与源设备之间建立的WBC从宿设备660向源设备发送该反馈信息。在其它情况下,无线调制解调器634可以通过不同的套接字链路从宿设备660向源设备发送该反馈信息。另外,无线调制解调器634可以使用RTCP或者某种其它定制的信令来传送该反馈信息。
[0121]图7是示出了一种示例性数据分组700的概念图,示例性数据分组700可以用于向源设备传送在宿设备处所获得的用户输入数据和/或反馈数据。将参照图1来说明数据分组700的各方面,但所讨论的技术也可以适用于其它类型的WD系统。数据分组700可以包括:数据分组报头710,后面跟着有效载荷数据750。可以例如从宿设备160向源设备120发送数据分组700,以便以信号形式发送在宿设备160处接收的用户输入数据,或者以信号形式发送用于描述通信信道150的传输状况的反馈信息。
[0122]可以在数据分组报头710中标识有效载荷750中所包括的数据(例如,用户输入数据或反馈数据)的类型。以这一方式,基于数据分组报头710的内容,源设备120可以对数据分组700的有效载荷数据750进行解析,以识别来自宿设备160的用户输入数据或者反馈数据。如本公开内容中所使用的,术语“解析”和“剖析”通常是指对比特流进行分析以便从该比特流中提取数据的过程。提取数据可以例如包括:识别该比特流中的信息是如何格式化的。如下文将更详细描述的,数据分组报头710可以规定用于有效载荷数据750的多种可能格式中的一种。通过对数据分组报头710进行解析,源设备120可以确定:有效载荷数据750是如何格式化的,以及如何对有效载荷数据750进行解析以提取用户输入命令或者反馈信息。
[0123]在一些例子中,数据分组报头710可以包括如图7中所示进行格式化的一个或多个字段720。与字段720相邻的数字0-15和比特偏移O、16和32旨在标识数据分组报头710内的比特位置,并不旨在实际表示在数据分组报头710内所包含的信息。数据分组报头710包括版本字段、时间戳标志、保留的字段、输入类别字段、长度字段和可选的时间戳字段。在图7的例子中,版本字段是3比特字段,其可以指示由宿设备160实现的具体通信协议的版本。版本字段中的值可以通知源设备120如何对数据分组报头710的剩余部分进行解析,以及如何对有效载荷数据750进行解析。
[0124]在图7的例子中,时间戳标志⑴是I比特字段,其指示在数据分组报头710中是否存在时间戳字段。当存在时间戳字段时,时间戳字段是16比特字段,其包含基于由源设备120生成并发送给宿设备160的多媒体数据的时间戳。该时间戳可以例如是在将视频帧发送给宿设备160之前由源设备120向这些帧分配的序列值。在对数据分组报头710进行解析并确定是否存在时间戳字段之后,源设备120知道其是否需要对时间戳字段中所包括的时间戳进行处理。在图7的例子中,保留的字段是用于版本字段中所标识的具体协议的未来版本而保留的8比特字段。
[0125]在图7的例子中,输入类别字段是4比特字段,以标识针对有效载荷数据750中所包含的数据的输入类别。例如,宿设备160可以对用户输入数据进行分类,以确定输入类另O。可以基于从其接收命令的设备或者基于该命令自身的属性来对用户输入数据进行分类。宿设备160还可以对反馈信息进行分类以确定输入类别。可以基于在宿设备160处确定的反馈信息的类型或者基于在源设备120处基于该反馈信息所请求的操作的类型来对反馈信息进行分类。输入类别字段的值(其可能结合数据分组报头710的其它信息)向源设备120标识有效载荷数据750是如何格式化的。基于这种格式化,源设备120可以对有效载荷数据750进行解析,以提取用户输入命令或者反馈信息。
[0126]长度字段可以包括16比特字段,以指示数据分组700的长度。由于源设备120以16比特的字来解析数据分组700,因此可以将数据分组700填充到16比特的整数数量。基于长度字段中所包含的长度,源设备120可以识别有效载荷数据750的结束(即,数据分组700的结束)和新的后续数据分组的开始。
[0127]在图7的例子中所提供的字段的各种大小仅仅旨在是说明性的,其旨在可以使用与图7中所示出的比特数量不相同的数量来实现这些字段。另外,还预期的是,数据分组报头710可以包括比上文所讨论的所有字段更少的字段,或者可以使用上文没有讨论的其它字段。事实上,就用于这些分组的各种数据字段的实际格式而言,本公开内容的技术可以是灵活的。
[0128]图8是示出了源设备的示例性操作的流程图,该源设备能够支持低延迟帧捕获和处理管道中的媒体数据的缓存。将针对来自图5的源设备520中所包括的处理管道550来描述所示出的操作。在其它例子中,所示出的操作可以由来自图2的源设备220、来自图1的源设备120或者WD系统的另一个源设备来执行。
[0129]首先,源设备520与WD系统中的一个或多个宿设备建立通信会话(800)。源设备520可以根据与宿设备的能力协商来建立该通信会话。根据本公开内容的技术,为了支持低延迟帧捕获和媒体数据的缓存,源设备520的管道管理器538将处理管道550配置为包括最小大小缓冲区(802)。具体而言,管道管理器538可以将处理管道550配置为JfWB缓冲区540的大小减小为仅仅包括两个乒乓缓冲区。减少用于媒体数据沿着处理管道550移动通过的缓冲区的数量将减少源设备520处的延迟。此外,管道管理器538可以将处理管道550配置为:将帧缓冲区542的大小减小到能够保存媒体数据中的至少最近的一个帧更新的最小大小帧缓冲区。
[0130]此外,根据所述技术,管道管理器538可以将处理管道550配置为:使用硬件加速器536来在处理管道550中执行对媒体数据的直接存储器存取(804)。使用标准存储器副本来从存储器532和处理管道550中的缓冲区中获取媒体数据的帧更新耗用太多的CPU负载。为了增加媒体数据的帧速率和减少延迟,处理管道550替代地使用硬件加速器536而独立于CPU来进行存取并且在处理管道550的处理单元之间移动帧更新。
[0131]在源设备520中配置处理管道550之后,源设备520可以开始对媒体数据进行处理,以便传输给WD系统中的宿设备。显示处理器535从媒体源捕获媒体数据的帧更新(806)。该媒体源可以是照相机或者源设备520内所包括的其它媒体捕获设备,或者可以是通过有线或无线连接而连接到源设备520的外部媒体源。帧更新可以包括媒体数据的完整帧、表示这些帧的仅仅更新部分的部分帧、或者两者的某种组合。
[0132]在捕获帧更新之后,显示处理器535向WB缓冲区540发送请求,以确定最小大小WB缓冲区540是否满了(808)。如果最小大小WB缓冲区540满了(808的‘是’分支),则从显示处理器535接收该请求将触发WB缓冲区540丢弃在WB缓冲区540中所保存的较旧的帧更新中的一个或多个(810)。在丢弃较旧的帧更新之后,WB缓冲区540对由显示处理器535捕获的最近的帧更新进行缓存(812)。如果在从显示处理器525接收该请求时最小大小WB缓冲区540没有满(808的‘否’分支),则WB缓冲区540可以立即对由显示处理器535捕获的最近的帧更新进行缓存(812)。类似的过程可以用于将帧更新缓存在沿着处理管道550的其它最小大小缓冲区(例如,帧缓冲区542)中。一旦将最近的帧更新保存在WB缓冲区540中,则可以随后通过硬件加速器536将该帧更新从WB缓冲区540写入到存储器532 中。
[0133]此外,硬件加速器536从WB缓冲区540中获取帧更新,并且在沿着处理管道550的处理单元与缓冲区之间移动这些帧更新(814)。随后,在处理管道550中对所获取的帧更新进行处理,以便传输给WD系统中的宿设备(816)。例如,在处理器531内,视频处理引擎(VPE) 560将这些帧更新渲染到帧缓冲区542中,并且编码器562对来自帧缓冲区542的帧更新进行编码。在使用传输单元533内的打包器564将这些帧更新形成到分组中之前,可以将经编码的帧更新缓存在编码图像缓冲区(CPB)544中。根据这些技术,可以在不创建经编码的帧更新的存储器副本的情况下,将指向在存储器532中所存储的经编码的帧更新的指针缓存在CPB 544中,而不是将经编码的帧更新的存储器副本缓存在CPB 544中。
[0134]随后,无线调制解调器534通过WD系统中的所述通信会话向一个或多个宿设备发送经处理的帧更新(818)。在发送经处理的帧更新之后,无线调制解调器534可以在预先确定的时间段之后,对该经处理的帧更新进行重传,直到接收到要传输的新的帧更新为止。该重复推送可以通过以下方式来减少WD系统中的端到端延迟:确保宿设备接收所发送的帧更新并且不浪费用于等待丢失的分组的处理时间。
[0135]图9是示出了宿设备的示例性操作的流程图,该宿设备能够支持处理管道中的定制的视频回放。针对图6来进行描述。将针对来自图6的宿设备660中所包括的处理管道650来描述所示出的操作。在其它例子中,所示出的操作可以由来自图3的宿设备360、来自图1的宿设备160或者WD系统的另一个宿设备来执行。
[0136]首先,宿设备660与WD系统中的源设备建立通信会话(900)。宿设备660可以根据与源设备的能力协商来建立该通信会话。根据本公开内容的技术,为了在处理管道650中支持定制的视频回放,宿设备660在针对该通信会话的能力协商时段期间与源设备交换用于媒体数据流的流报头信息(902)。随后,管道管理器638基于所接收的流报头信息来配置宿设备660中的处理管道650 (904)。
[0137]例如,基于该流报头信息,在从源设备接收媒体数据之前,管道管理器638可以配置处理管道650内的缓冲区大小、渲染启动定时器、同步等待定时器和可编程解码器设置等等。一旦在宿设备650中针对该媒体数据流对处理管道650进行了配置,无线调制解调器634就可以通知源设备向宿设备660发送该媒体数据流(906)。以这一方式,在从源设备接收到要进行解码和渲染的媒体数据,宿设备660不会浪费任何处理时间来建立处理管道线 650。
[0138]在配置处理管道650之后,宿设备660开始从源设备接收媒体数据(908)。解析器680对经编码的媒体数据进行解包。随后,解码器682对所接收的媒体数据进行解码(910)。所接收的媒体数据包括至少视频数据。在解码之后,解码器682或者处理管道650中的某种其它处理单元检测经解码的媒体数据是否包括音频数据(912)。例如,解码器682可以通过检测所接收的媒体数据中的音频时间戳(其指示该媒体数据包括音频数据)来确定该媒体数据包括音频数据。类似地,解码器682可以基于所接收的媒体数据中音频时间戳的缺失来确定该媒体数据只包括视频数据。
[0139]如果在媒体数据中不包括音频数据(914的‘否’分支),则处理管道650执行对该视频数据的加速渲染。更具体地说,管道管理器638在渲染器684处禁用视频数据与音频数据的同步(916)。随后,渲染器684在不等待与不存在的音频数据进行同步的情况下对视频数据进行渲染(918)。在一些情况下,当媒体数据只包括视频数据时,管道管理器638并不明确地禁用同步,而是将渲染器684配置为:忽略任何音频数据,并且在不等待与不存在的音频数据进行同步的情况下对视频数据进行渲染。此外,管道管理器638还可以基于适用于渲染器684的媒体时间来增加视频数据的采样时间。以这一方式,渲染器684可以根据所增加的采样时间来执行对该视频数据的加速渲染。
[0140]如果在媒体数据中包括音频数据(914的‘是’分支),则管道管理器638可以减小渲染器684处的音频渲染启动定时器(920)。例如,在某些通信系统的情况下,可以将渲染器684处的音频渲染启动定时器保持为高以补偿通信系统的初始化时间。这对于WD系统来说是不必要的。因此,管道管理器638可以减小用于该WD系统的音频渲染启动定时器,以便即使当媒体数据中包括音频数据时,也减少延迟。随后,渲染器638可以将视频数据与音频数据进行同步(922),并且根据所减小的启动定时器来对同步的视频数据和音频数据进行渲染(924)。
[0141]在一些情况下,视频数据的帧可能在解码器682中停顿,并且在宿设备660处造成另外的延迟,其中渲染器684等待从解码器682接收下一个视频帧。根据这些技术,当解码器682是非可编程解码器时,管道管理器638可以将虚拟帧插入宿设备660处的视频数据中,以便将视频数据的经解码的采样推出解码器682来进行渲染。当解码器682是可编程解码器时,管道管理器638可以将可编程解码器682配置为以解码顺序来输出视频数据的经解码的采样,以便解码一完成就进行渲染。通常,解码器在默认情况下以显示顺序来输出采样。在该情况下,管道管理器638可以改变默认设置,以便将经解码的帧较快地移动通过解码器682。
[0142]另外,在从源设备接收媒体数据之后,在对所接收的媒体数据进行渲染之前,管道管理器638可以将所接收的媒体数据中的一个或多个采样清空出解码器682。在一些情况下,从源设备发送的媒体数据的前几个采样可以包括:源设备处的旧媒体数据的停顿的采样。管道管理器638可以从宿设备660清空这些采样,以避免在旧的媒体数据上花费处理时间和资源。
[0143]图10是示出了宿设备的示例性操作的流程图,该宿设备能够基于处理管道中的媒体数据应用认知来支持定制的缓存。将针对来自图6的宿设备660中所包括的处理管道650来描述所示出的操作。在其它例子中,所示出的操作可以由来自图3的宿设备360、来自图1的宿设备160或者WD系统的另一个宿设备来执行。
[0144]首先,宿设备660与WD系统中的源设备建立通信会话(1000)。宿设备660可以根据与源设备的能力协商来建立该通信会话。随后,宿设备660开始从源设备接收媒体数据(1010)。根据本公开内容的技术,为了基于针对处理管道650中的媒体数据的应用类型来支持定制的缓存,宿设备660 了解针对所接收的媒体数据的应用类型,并且管道管理器638基于该应用类型来调整处理管道650中的缓冲区的大小。
[0145]为了了解针对所接收的媒体数据的应用类型,解析器680首先确定是否从具有该媒体数据的源设备接收到对针对该媒体数据的应用类型的指示(1020)。如果从源设备接收指示(1020的‘是’分支),则宿设备660的解码器682基于来自源设备的指示来了解针对该媒体数据的应用类型(1030)。在该情况下,WD系统中的源设备检测针对该媒体数据的应用类型,并且向宿设备660发送媒体数据与对针对该媒体数据的应用类型的指示。在一些情况下,例如,宿设备660可以从源设备接收对用于视频回放应用的媒体数据流的指示,并且宿设备660还可以从源设备接收对用于视频回放应用的该媒体数据流的结束的指示。
[0146]如果没有从源设备接收到指示(1020的‘否’分支),则宿设备660的解码器682基于媒体数据中音频时间戳的存在或者缺失来了解针对该媒体数据的应用类型(1040)。例如,解码器682可以通过在媒体数据中检测在规则的时间间隔处的音频时间戳来确定该媒体数据是用于视频回放应用。举另一个例子,解码器682可以基于在所接收的媒体数据中在规则的时间间隔处音频时间戳的缺失来确定该媒体数据是用于Π或者游戏应用。
[0147]当宿设备660的解码器682 了解到针对所接收的媒体数据的应用类型是UI或者游戏应用而不是视频回放应用时(1050的‘否’分支),在Π或者游戏应用中的显示之前,管道管理器638将处理管道650配置为对在处理管道650中保存媒体数据的缓冲区的大小进行减小(1060)。例如,管道管理器638可以减小渲染队列694的大小和/或帧缓冲区696的大小,以便减少媒体数据移动通过这些缓冲区的延迟。在UI或者游戏应用的情况下,在WD系统中主要的关注是提供低延迟用户体验,其中视频回放质量是次要的关注。
[0148]当宿设备660的解码器682 了解到针对所接收的媒体数据的应用类型是视频回放应用时(1050的‘是’分支),在视频回放应用中的显示之前,管道管理器638可以对保存处理管道650中的媒体数据的缓冲区的大小进行增加(1070)。例如,管道管理器638可以增加渲染队列694的大小和/或帧缓冲区696的大小,以便在视频回放应用中提高视频回放的质量(即,平滑度)。虽然增加缓冲区大小可能增加延迟,但在视频回放应用的情况下,主要的关注是在增加的延迟的某种折衷下提供高质量的视频回放用户体验。
[0149]渲染器684将媒体数据从渲染队列694中渲染到处理管道650中的帧缓冲区696中,以便在针对该媒体数据所指示的应用类型中进行使用(1080)。随后,显示处理器635在宿设备660处操作的、针对该媒体数据的应用中显示来自帧缓冲区696的经渲染的媒体数据(1090)。
[0150]在一些情况下,当媒体数据是用于视频回放应用时,管道管理器638可以指导渲染器684暂停对来自渲染队列694的媒体数据进行渲染,以便宿设备660接收该媒体数据的其它采样。在将门限数量的媒体数据的采样存储在渲染队列694中之后,管道管理器638随后指导渲染器684恢复对来自渲染队列694的媒体数据进行渲染。以这一方式,可以通过使准备好要渲染的媒体数据的多个采样处于渲染队列694之中来进一步提高视频回放的质量或者平滑度。
[0151]图11是示出了能够在WD系统中支持音频数据的优先传输的源设备和宿设备的示例性操作的流程图。将针对来自图5的源设备520中的处理管道550以及针对来自图6的宿设备660中所包括的处理管道650来描述所示出的操作。在其它例子中,所示出的操作可以由来自图2的源设备220、来自图3的宿设备360、来自图1的源设备120和宿设备160、或者WD系统的其它源设备和宿设备来执行。
[0152]首先,源设备520与WD系统中的宿设备660建立通信会话(1100)。源设备520和宿设备660可以根据能力协商来建立该通信会话。根据本公开内容的技术,为了提供音频数据的优先传输,源设备520中的管道管理器538将处理管道550中的音频路径配置为:比处理管道550中的视频路径包括更多的缓存(1110)。此外,与无线调制解调器套接字570中的视频传输队列相比,源设备520中的管道管理器538将无线调制解调器套接字570中的音频传输队列配置为具有更高的优先级(1120)。
[0153]一旦配置用于音频数据的优先传输路径,源设备520就开始在单独的处理管道路径中对音频数据和视频数据进行处理(1130)。在对音频和视频数据进行处理之后,无线调制解调器534将音频数据和相关联的视频数据从套接字570中的不同传输队列传输给宿设备 660(1140)。
[0154]宿设备660通过WD系统中的通信信道从源设备520接收音频数据和相关联的视频数据(1150)。宿设备660的处理器631可以基于所接收的媒体数据来确定通信信道的传输状况(1160)。例如,宿设备660的处理器631可以确定该媒体数据在通过该通信信道进行传输之后的错误率或者分组丢失量。宿设备660的传输单元631可以生成一个分组,以便将用于描述该通信信道的传输状况的反馈信息从宿设备660发送回源设备520(1170)。例如,无线调制解调器634可以使用RTCP来通过WBC或者其它反馈信道从宿设备660向源设备660发送该分组。
[0155]在接收用于描述该通信信道的传输状况的反馈信息之后,源设备520的管道管理器538可以基于来自宿设备660的反馈信息来修改处理管道550(1180)。一旦针对该通信信道对处理管道550进行了配置,源设备520可以在单独的处理管道路径中恢复处理音频数据和视频数据(1130),并且将音频数据和相关联的视频数据从套接字570中的单独传输队列传输给宿设备660(1140)。
[0156]在一个或多个例子中,所描述的功能可以用硬件、软件、固件或其任意组合来实现。当用软件来实现时,可以将这些功能作为一个或多个指令或代码存储在计算机可读介质上或者通过其进行传输。计算机可读介质可以包括计算机数据存储介质或通信介质,通信介质包括有助于将计算机程序从一个地方传送到另一个地方的任何介质。在一些例子中,计算机可读介质可以包括非暂时性计算机可读介质。数据存储介质可以是由一个或多个计算机或者一个或多个处理器为了获取用于实现本公开内容所描述的技术的指令、代码和/或数据结构而可以进行存取的任何可用介质。
[0157]通过举例而非限制性的方式,这种计算机可读存储介质可以包括非暂时性介质,例如,RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储、或其它磁存储设备、闪存、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。此外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线路(DSL)或者无线技术(诸如红外线、无线和微波)从网站、服务器或其它远程源传输软件,则同轴电缆、光纤光缆、双绞线、DSL或者无线技术(诸如红外线、无线和微波)包括在介质的定义中。如本文所使用的,磁盘(disk)和光碟(disc)包括压缩光碟(⑶)、激光光碟、光碟、数字多功能光碟(DVD)、软盘和蓝光光碟,其中,磁盘通常磁性地复制数据,而光碟则用激光来光学地复制数据。上述的组合也应当包括在计算机可读介质的范围之内。
[0158]可以由诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它等效的集成或者分立逻辑电路之类的一个或多个处理器来执行代码。因此,如本文所使用的术语“处理器”可以指代适合用于实现本文所描述的技术的前述结构或者任何其它结构中的任意一种。此外,在一些方面,本文所描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或者可以并入到组合的编解码器中。此外,可以在一个或多个电路或者逻辑单元中完全地实现这些技术。
[0159]本公开内容的技术可以用多种多样的设备或装置来实现,这包括无线手持装置、集成电路(IC)或者一组IC(例如,芯片组)。在本公开内容中描述了各种组件、模块或单元是为了强调被配置为执行所披露的技术的设备的功能方面,而并不是必然地要求由不同的硬件单元来实现。更确切地说,如上文所描述的,可以将各个单元组合在编解码器硬件单元中,或者结合适当的软件和/或固件,由包括如上文所描述的一个或多个处理器的互操作硬件单元的集合来提供各个单元。
[0160]已经描述了本发明的各个实施例。这些和其它实施例落入下面的权利要求书的范围之内。
【权利要求】
1.一种方法,包括: 在宿设备处与无线显示(WD)系统中的源设备建立通信会话; 使用所述宿设备从所述源设备接收媒体数据; 了解针对所接收的媒体数据的应用类型; 基于所述应用类型来调整所述宿设备的处理管道中所包括的缓冲区的大小;以及 对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示。
2.根据权利要求1所述的方法,其中,了解针对所接收的媒体数据的所述应用类型包括:在所接收的媒体数据中检测在规则的时间间隔处音频时间戳的存在或缺失中的一项,其中,在规则的时间间隔处音频时间戳的存在指示:所述媒体数据是用于视频回放应用。
3.根据权利要求1所述的方法,其中,了解针对所接收的媒体数据的所述应用类型包括:当所述媒体数据是用于视频回放应用时,从所述源设备接收指示。
4.根据权利要求3所述的方法,其中,从所述源设备接收所述指示包括:从所述源设备接收对用于所述视频回放应用的所述媒体数据的起始的指示,以及接收对用于所述视频回放应用的所述媒体数据的结束的指示。
5.根据权利要求1所述的方法,其中,当所述媒体数据是用于视频回放应用时,调整缓冲区的大小包括:在所述视频回放应用中显示所述媒体数据之前,增加所述宿设备的所述处理管道中所包括的用于保存所述媒体数据的缓冲区的大小。
6.根据权利要求1所述的方法,其中,当所述媒体数据不是用于视频回放应用时,调整缓冲区的大小包括:在用户界面(UI)应用和游戏应用中的一个中显示所述媒体数据之前,减小所述宿设备的所述处理管道中所包括的用于保存所述媒体数据的缓冲区的大小。
7.根据权利要求1所述的方法,其中,所述缓冲区包括:在所述宿设备的所述处理管道中的、在渲染器与显示处理器之间的用于所述WD系统的帧缓冲区。
8.根据权利要求1所述的方法,其中,所述缓冲区包括:在所述宿设备的所述处理管道中的解码器与渲染器之间的用于所述WD系统的渲染队列缓冲区。
9.根据权利要求1所述的方法,当所述媒体数据是用于视频回放应用时,所述方法还包括: 暂停对来自所述缓冲区的所述媒体数据的渲染;以及 在将门限数量的所述媒体数据的采样存储在所述缓冲区之后,恢复对来自所述缓冲区的所述媒体数据的渲染。
10.根据权利要求1所述的方法,还包括:从所述宿设备向所述源设备发送描述传输信道状况的反馈信息,其中,所述反馈信息用于修改所述源设备的处理管道。
11.根据权利要求1所述的方法,其中,在所述宿设备处建立所述通信会话包括:从所述源设备接收针对所述通信会话的所述媒体数据的公告,以及向所述源设备发送用于加入所述通信会话的请求。
12.—种宿设备,包括: 处理管道,其包括一个或多个处理单元,所述一个或多个处理单元被配置为:在所述宿设备处与无线显示(WD)系统中的源设备建立通信会话;从所述源设备接收媒体数据;了解针对所接收的媒体数据的应用类型;基于所述应用类型来调整所述处理管道中所包括的缓冲区的大小;以及对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示;以及 管道管理器,其被配置为对所述宿设备的所述处理管道进行管理。
13.根据权利要求12所述的宿设备,其中,所述处理管道的所述一个或多个处理单元被配置为:在所接收的媒体数据中检测在规则的时间间隔处音频时间戳的存在或缺失中的一项,其中,在规则的时间间隔处音频时间戳的存在指示:所述媒体数据是用于视频回放应用。
14.根据权利要求12所述的宿设备,其中,所述处理管道的所述一个或多个处理单元被配置为:当所述媒体数据是用于视频回放应用时,从所述源设备接收指示。
15.根据权利要求14所述的宿设备,其中,所述处理管道的所述一个或多个处理单元被配置为:从所述源设备接收对用于所述视频回放应用的所述媒体数据的起始的指示,以及接收对用于所述视频回放应用的所述媒体数据的结束的指示。
16.根据权利要求12所述的宿设备,其中,当所述媒体数据是用于视频回放应用时,在所述视频回放应用中显示所述媒体数据之前,所述管道管理器增加所述宿设备的所述处理管道中所包括的用于保存所述媒体数据的缓冲区的大小。
17.根据权利要求12所述的宿设备,其中,当所述媒体数据不是用于视频回放应用时,在用户界面(UI)应用和游戏应用中的一个中显示所述媒体数据之前,所述管道管理器减小所述宿设备的所述处理管道中所包括的用于保存所述媒体数据的缓冲区的大小。
18.根据权利要求12所述的宿设备,其中,所述缓冲区包括:在所述宿设备的所述处理管道中的、在渲染器与显示处理器之间的用于所述WD系统的帧缓冲区。
19.根据权利要求12所述的宿设备,其中,所述缓冲区包括:在所述宿设备的所述处理管道中的解码器与渲染器之间的用于所述WD系统的渲染队列缓冲区。
20.根据权利要求12所述的宿设备,当所述媒体数据是用于视频回放应用时,所述管道管理器暂停对来自所述缓冲区的所述媒体数据的渲染,以及在将门限数量的所述媒体数据的采样存储在所述缓冲区之后,恢复对来自所述缓冲区的所述媒体数据的渲染。
21.根据权利要求12所述的宿设备,其中,所述处理管道的所述一个或多个处理单元被配置为:从所述宿设备向所述源设备发送描述传输信道状况的反馈信息,其中,所述反馈信息用于修改所述源设备的处理管道。
22.根据权利要求12所述的宿设备,其中,所述处理管道的所述一个或多个处理单元被配置为:从所述源设备接收针对所述通信会话的所述媒体数据的公告,以及向所述源设备发送用于加入所述通信会话的请求,以便在所述宿设备处建立所述通信会话。
23.—种宿设备,包括: 用于在所述宿设备处与无线显示(WD)系统中的源设备建立通信会话的单元; 用于从所述源设备接收媒体数据的单元; 用于了解针对所接收的媒体数据的应用类型的单元; 用于基于所述应用类型来调整所述宿设备的处理管道中所包括的缓冲区的大小的单元;以及 用于对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示的单元。
24.根据权利要求23所述的宿设备,还包括:用于在所接收的媒体数据中检测在规则的时间间隔处音频时间戳的存在或缺失中的一项的单元,其中,在规则的时间间隔处音频时间戳的存在指示:所述媒体数据是用于视频回放应用。
25.根据权利要求23所述的宿设备,还包括:用于当所述媒体数据是用于视频回放应用时,从所述源设备接收指示的单元。
26.根据权利要求25所述的宿设备,还包括:用于从所述源设备接收对用于所述视频回放应用的所述媒体数据的起始的指示的单元,以及用于接收对用于所述视频回放应用的所述媒体数据的结束的指示的单元。
27.根据权利要求23所述的宿设备,还包括:当所述媒体数据是用于视频回放应用时,用于在所述视频回放应用中的显示之前,增加所述宿设备的所述处理管道中所包括的用于保存所述媒体数据的缓冲区的大小的单元。
28.根据权利要求23所述的宿设备,还包括:当所述媒体数据不是用于视频回放应用时,用于在用户界面(UI)应用和游戏应用中的一个中的显示之前,减小所述宿设备的所述处理管道中所包括的用于保存所述媒体数据的缓冲区的大小的单元。
29.根据权利要求23所述的宿设备,当所述媒体数据是用于视频回放应用时,还包括: 用于暂停对来自所述缓冲区的所述媒体数据的渲染的单元;以及 用于在将门限数量的所述媒体数据的采样存储在所述缓冲区之后,恢复对来自所述缓冲区的所述媒体数据的渲染的单元。
30.一种计算机可读介质,包括指令,当在宿设备中执行所述指令时,所述指令使可编程处理器进行以下操作: 在所述宿设备处与无线显示(WD)系统中的源设备建立通信会话; 从所述源设备接收媒体数据; 了解针对所接收的媒体数据的应用类型; 基于所述应用类型来调整所述宿设备的处理管道中所包括的缓冲区的大小;以及 对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示。
31.根据权利要求30所述的计算机可读介质,其中,所述指令使所述可编程处理器进行以下操作:在所接收的媒体数据中检测在规则的时间间隔处音频时间戳的存在或缺失中的一项,其中,在规则的时间间隔处音频时间戳的存在指示:所述媒体数据是用于视频回放应用。
32.根据权利要求30所述的计算机可读介质,其中,所述指令使所述可编程处理器进行以下操作:当所述媒体数据是用于视频回放应用时,从所述源设备接收指示。
33.根据权利要求32所述的计算机可读介质,其中,所述指令使所述可编程处理器进行以下操作:从所述源设备接收对用于所述视频回放应用的所述媒体数据的起始的指示,以及接收对用于所述视频回放应用的所述媒体数据的结束的指示。
34.根据权利要求30所述的计算机可读介质,其中,当所述媒体数据是用于视频回放应用时,所述指令使所述可编程处理器进行以下操作:在所述视频回放应用中的显示,增加所述宿设备的所述处理管道中所包括的用于保存所述媒体数据的缓冲区的大小。
35.根据权利要求30所述的计算机可读介质,其中,当所述媒体数据不是用于视频回放应用时,所述指令使所述可编程处理器进行以下操作:在用户界面(UI)应用和游戏应用中的一个中的显示之前,减小所述宿设备的所述处理管道中所包括的用于保存所述媒体数据的缓冲区的大小。
36.根据权利要求30所述的计算机可读介质,当所述媒体数据是用于视频回放应用时,还包括用于使所述可编程处理器进行以下操作的指令: 暂停对来自所述缓冲区的所述媒体数据的渲染;以及 在将门限数量的所述媒体数据的采样存储在所述缓冲区之后,恢复对来自所述缓冲区的所述媒体数据的渲染。
37.一种无线显示(WD)系统,包括: 源设备,其被配置为:捕获媒体数据,检测针对所述媒体数据的应用类型,以及发送所述媒体数据与针对所述媒体数据的所述应用类型的指示;以及 宿设备,其被配置为:从所述源设备接收所述媒体数据与针对所述媒体数据的所述应用类型的指示,基于所述应用类型来调整所述宿设备的处理管道中所包括的缓冲区的大小,以及对所述媒体数据进行渲染,以便在所述宿设备处操作的、针对所接收的媒体数据的应用中进行显示。
【文档编号】H04N21/44GK104137563SQ201380011003
【公开日】2014年11月5日 申请日期:2013年2月28日 优先权日:2012年2月28日
【发明者】X·王, F·肖卡特, V·R·拉韦恩德朗 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1