用于控制媒体流的编码的系统及方法

文档序号:7737972阅读:198来源:国知局
专利名称:用于控制媒体流的编码的系统及方法
技术领域
本发明大体来说涉及用于控制经由数据连接发射的位流(例如媒体流)的编码的技术。
背景技术
最近,消费者已表达出对“地点移位”装置的浓厚兴趣,所述“地点移位”装置允许在除其主要电视机以外的位置处观看电视或其它媒体内容。地点移位装置通常将媒体内容包化,所述媒体内容可经由局域网络或广域网络发射到便携式计算机、移动电话、个人数字助理或能够为观看者回放经包化的媒体流的其它远程装置。因此,地点移位允许消费者从例如其它房间、宾馆、办公室及/或其中便携式媒体播放器装置可获得对无线或其它通信网络的接入的任何其它位置的远程位置观看其媒体内容。尽管地点移位确实大大地改进了提供给观看者的方便性,但在有效地形成并发射经编码媒体流方面可出现挑战。可支持的网络环境的多样性(例如,LAN、WAN、因特网、无线电话等)可导致编码参数随时间的显著变化。此外,数字网络(特别是基于以太网及/或 TCP/IP类型协议的数字网络)固有地为不可预测,此可导致难以选择待用于形成并经由任何特定网络发射媒体流中的特定编码参数。此外,网络条件可非常快地改变,借此导致难以维持既有效又流行的编码参数。因此,需要形成用于控制经由网络或其它数据连接发射的媒体流的编码的系统及方法。结合附图及此背景技术部分阅读后续详细说明及所附权利要求书,这些及其它所要特征以及特性将变得显而易见。

发明内容
根据各种示范性实施例,描述用于提供从编码系统发射到远程定位的媒体播放器的媒体流的系统及方法。在示范性方法中,根据编码参数来编码所述媒体流。采集关于所述编码系统内的发射缓冲器的数据,且处理所述所采集的数据以确定网络容量的估计及所计算的编码器速率。在后续编码期间依据所述网络容量的估计及所述所计算的编码器速率中的至少一者来调整所述编码参数。在其它实施例中,提供一种用于经由网络将媒体流提供到远程播放器的媒体编码系统。所述媒体编码系统包括媒体编码模块,其经配置以接收输入信号并根据编码参数编码所述媒体流;网络接口,其经配置以经由所述网络将所述经编码媒体流发射到所述远程播放器;发射缓冲器,其经配置以由所述媒体编码模块填充并由所述网络接口排空;及控制模块。所述控制模块经配置以采集关于所述发射缓冲器的数据、处理所述所采集的数据以确定网络容量的估计及所计算的编码器速率,且在后续编码期间依据所述网络容量的估计及所述所计算的编码器速率中的至少一者来调整所述编码参数。下文更详细地描述各种实施例、方面及其它特征。


下文将结合以下图式图描述示范性实施例,其中相似的编号表示相似的元件,且图1是示范性媒体编码系统的框图;图2是示范性媒体编码系统的框图;图3是可适用于描述某些缓冲器条件的示范性类别/水印结构的图示;且图4是用于控制媒体流的编码的示范性过程的流程图。
具体实施例方式本发明的以下详细说明实质上仅为示范性且并非打算限制本发明或本发明的应用及用途。此外,并不打算由前述背景技术或以下实施方式中所呈现的任何理论加以约束。根据各种实施例,媒体流编码的效率及有效性可通过考虑当前编码器速率的特定值及位于编码器与网络之间的发射缓冲器的容量来大大地改进,如下文更面地描述。所述缓冲器的占用行为可为实际网络容量及行为的相对良好的指示符。因此,通过关于媒体流正在网络上发射的实际速率来考虑所述流正形成的实际速率,与常规技术相比可显著改进系统行为。特定来说,在编码及发射过程期间可出现至少两个问题。首先,如果数据编码器具有高于及低于数据连接的容量的较宽操作范围,那么在编码器以比网络发射速率快或慢的速率提供数据的情况下可出现系统吞吐量的瓶颈。如果编码器以比网络发射速率快的速率操作,那么编码器与网络之间的缓冲器将填充直到其达到其容量为止。相反地,如果编码器比网络发射速率慢地操作,那么网络的能力变得利用不足。其次,在装置内的编码器模块与网络处理模块之间指派处理资源时可发生可导致次优性能的问题。举例来说,如果编码器消耗过度大量的处理器时间来产生媒体流,那么剩余的处理器时间可不足以用于网络模块发射数据,借此导致数据的丢失及/或降级的用户体验。类似地,如果编码器以低于最优的速率产生数据,那么经编码信号的质量也可低于最优,借此减少施加在网络发射模块上的需求。在此情况下,处理器利用不足,借此同样导致降级的用户体验。因此,在许多实施方案中,需要以允许编码器及网络处理模块两者以提供最佳可能用户体验的容量操作的方式平衡编码器与网络模块之间的处理器分配。通过解决发射缓冲器被填充及排空的实际速率,可实现对编码及发射过程的精确得多的控制,从而导致更佳的资源分配及/或更有效的资源利用。各种实施例可解决这些问题中的任一者或两者,及/或可视需要而提供其它特征。现在转到图式图且首先参考图1,示范性地点移位系统100适合地包含地点移位编码器系统102,其从内容源106接收媒体内容122、将所接收的内容编码成流式格式且接着经由网络110将经编码媒体流120发射到媒体播放器104。媒体播放器104适合地接收经编码流120、解码所述流并在电视或其它显示器108上向观看者呈现经解码内容。在各种实施例中,还可提供服务器112以经由网络110与编码器系统102及/或播放器104通信以辅助这些装置对彼此进行定位,从而维持安全性、提供或接收内容或信息及/或视需要任何其它特征。然而,此特征并非在所有实施例中均为所需的,且本文中所描述的概念可部署在任何数据流式应用或环境中(包含地点移位)且还可部署在任何其它媒体或其它数据流式情形中。地点移位编码器系统102为能够经由网络110发射经包化的媒体内容流的任何组件、硬件、软件逻辑及/或类似器件。在各种实施例中,地点移位装置102并入有适合的编码器及/或变码器(统称为“编码器”)逻辑以将音频/视频或其它媒体数据122转换成可经由网络110发射的经包化格式。媒体数据122可以任何格式接收且可从例如任何种类的广播、有线电视或卫星电视节目编排源、“按需视频”或类似源、数字视频盘(DVD)或其它可装卸媒体、摄像机及/或类似装置的任何内部或外部源106接收。编码器系统102以任何方式编码媒体数据122以形成媒体流120。在各种实施例中,编码器系统102含有发射缓冲器105,其在于网络110上发射之前临时存储经编码数据。在缓冲器105填充或排空时,可鉴于当时的网络性能调整编码的一个或一个以上参数(例如,媒体流120的位速率)以维持所要的图片质量及数据吞吐量。如下文更全面地描述,各种实施例能够计算当前编码速率及当前网络传送速率,且能够随着网络传送速率改变而调整编码速率。可依据(例如) 传出缓冲器105的利用的改变来识别网络传送速率的改变。编码系统102的数个实例可使用可从加利福尼亚州福斯特市的斯灵媒体(Sling Media of Foster City, California)获得的各种SLINGBOX产品中的任一者来实施,但在其它实施例中可使用其它产品。许多不同类型的编码器系统102通常能够从例如任何种类的数码录像机(DVI )、机顶盒(STB)、有线电视或卫星节目编排源、DVD播放器及/或类似装置的外部源106接收媒体内容122。在此些实施例中,编码器系统102可另外将产生所要信号122的命令IM提供给源106。此些命令IM可经由任何种类的有线或无线接口提供,例如仿真可由源106接收的远程控制命令的红外或其它无线发射器。然而,其它实施例(特别是不涉及地点移位的实施例)可修改或整个地省略此特征。在其它实施例中,编码器系统102可集成有通常隶属于源106的任何种类的内容接收或其它能力。编码器系统102可为混合STB或(例如)还提供变码及地点移位特征的其它接收器。此装置可接收对从天线、调制解调器、服务器及/或其它源接收的电视节目编排或其它内容进行编码的卫星、有线电视、广播及/或其它信号。所述接收器可进一步解调或以其它方式解码所接收的信号以提取节目编排,视情况,所述节目编排可在本地观看及/ 或被地点移位到远程播放器104。此类装置102还可包含视情况而存储于硬盘驱动器、存储器或者支持个人或数码录像机(DVR)特征或其它内容库的其它存储媒体上的内容数据库。 因此,在一些实施例中,源106与编码器系统102可在物理上及/或在逻辑上含在共用组件、外壳或机壳内。在又一些实施例中,编码器系统102为在常规计算系统(例如,个人计算机)上执行的软件程序、小应用程序或类似程序。在此些实施例中,编码器系统102可编码(例如) 通常提供给所述计算系统的用户以供地点移位到远程位置的屏幕显示的一些或全部。一种能够提供此功能性的装置为可从加利福尼亚州福斯特市的斯灵媒体获得的在常规个人计算机上执行的SlingProjector产品,但也可使用其它产品。媒体播放器104为能够从一个或一个以上编码器系统102接收媒体流120的任何装置、组件、模块、硬件、软件及/或类似装置。在各种实施例中,远程播放器104为个人计算机(例如,“膝上型”或类似便携式计算机,但还可使用桌上型计算机)、移动电话、个人数字助理、个人媒体播放器(例如可从法国伊尼爱可视公司(Archos company of Igny, France)获得的爱可视产品)或类似装置。在许多实施例中,远程播放器104为通用计算装置,其包含呈能够如下文更全面地描述安全地连接到地点移位编码器系统102且视情况能够接收媒体内容并将其呈现给所述装置的用户的软件或固件的媒体播放器应用程序。然而,在其它实施例中,媒体播放器104为能够经由网络110的任一部分接收媒体流120并解码媒体流120以提供在电视或其它显示器108上呈现的输出信号1 的独立或其它单独硬件装置。独立媒体接收器104的一个实例为可从加利福尼亚州福斯特市的斯灵媒体获得的 SLINGCATCHER产品,但可等效地使用其它产品。网络110为能够在发送器(例如,编码器系统102)与接收器(例如,接收器104) 之间发射消息的任何数字或其它通信网络。在各种实施例中,网络110包含支持任何数目的通信协议的任何数目的公共或专用数据连接、链路或网络。网络110可包含(例如)因特网或者基于TCP/IP或其它常规协议的任何其它网络。在各种实施例中,网络110还并入有无线及/或有线电话网络,例如用于与移动电话、个人数字助理及/或类似装置通信的蜂窝式通信网络。网络110还可并入有任何种类的无线或有线局域网络,例如一个或一个以上 IEEE 802. 3 及 / 或 IEEE 802. 11 网络。编码器系统102及/或播放器104因此能够以任何方式(例如,分别使用任何种类的数据连接1 及/或12 与播放器104通信。举例来说,此通信可经由包含因特网及 /或电话网络的广域链路发生;在其它实施例中,装置102与104之间的通信可经由在概念上并入于网络110内的一个或一个以上有线或无线局域链路发生。在各种等效实施例中, 编码器系统102与接收器104可经由其中提供甚少或不提供其它网络功能性的任何种类的电缆(例如,以太网电缆或类似电缆)直接连接。可基于可用计算及通信资源、消费者需求及/或任何其它因子来系统地阐述许多不同地点移位情形。在各种实施例中,消费者可希望在家、办公室或其它结构内将内容(例如)从地点移位编码器系统102地点移位到位于另一房间中的桌上型或便携式计算机。在此些实施例中,将通常经由在所述结构内操作的有线或无线局域网络提供内容流。在其它实施例中,消费者可希望经由宽带或类似网络连接将内容从原来的位置地点移位到位于第二家、办公室、宾馆或其它远程位置中的计算机或其它远程播放器104。在又一些实施例中, 消费者可希望经由移动链路(例如,GSM/EDGE或CDMA/EVD0连接、任何种类的3G或后续电话链路、IEEE 802.11 “Wi_fi”链路及/或类似链路)将内容地点移位到移动电话、个人数字助理、媒体播放器、视频游戏播放器、汽车或其它车辆媒体播放器及/或其它装置。可用于各种平台的地点移位应用程序的数个实例由加利福尼亚州福斯特市的斯灵媒体提供,但本文中所描述的概念可结合可从任何来源获得的产品及服务使用。接着,编码器系统102通常基于从媒体源106接收的内容122而形成可在网络110 上路由的媒体流120。为此目的且现在参考图2,编码器系统102通常包含编码器模块202、 缓冲器105及网络接口 206连同适当控制逻辑205。在操作中,编码器模块202通常从内部或外部源106接收媒体内容122、将数据编码成媒体流120的所要格式并将经编码数据存储于缓冲器105中。网络接口 206接着从缓冲器105检索经格式化数据以供在网络110上发射。控制模块205适合地监视并控制分别由编码模块202及网络接口 206实施的编码及网络发射过程,且也可执行其它特征。编码器系统102还可具有能够产生命令IM并将其提供给外部媒体源106的模块208或其它特征,如上文所描述。在图2中所示的示范性实施例中,模块202、105、205、206及208可用以源代码、目标代码及/或任何其它格式驻存在编码器系统102内的任何存储器、大容量存储或其它存储媒体中的软件或固件来实施。可在于编码器系统102内执行的任何种类的处理器或微控制器上执行此些特征。在各种实施例中,将编码器系统102实施为具有集成式处理、存储及输入/输出特征的芯片上系统(SoC)型系统。各种SoC硬件实施方案可从德克萨斯仪器公司(Texas Instruments)、科胜讯系统公司(Conexant Systems)、博通公司(Broadcom Inc.)获得及视情况可从其它供应商获得。其它实施例可使用任何数目的离散及/或集成式处理组件、存储器、输入/输出特征及/或视需要其它特征。如上文所提及,形成媒体流120通常涉及将从内部或外部媒体源106接收的输入媒体流122编码及/或变码成可在网络110上发射的适合数字格式。通常,将媒体流120 置成可在网络110上发射的标准或其它已知格式(例如,可从华盛顿雷德蒙德的微软公司 (Microsoft Corporation of Redmond,Washington)获得的WINDOWS MEDIA格式,但在任何其它实施例中可使用例如QUICKTIME格式、REALPLAYER格式、MPEG格式及/或类似格式的其它格式)。视情况,此编码可(例如)在任何种类的编码模块202中发生。编码模块202 可为任何种类的硬件(例如,用于媒体编码的数字信号处理器或其它集成电路)、软件(例如,用于媒体编码的在上文所描述的SoC或其它处理器上执行的软件或固件编程)或类似器件。编码模块202因此为从内部或外部源106接收媒体数据122(例如,经由任何种类的硬件及/或软件接口)并将所接收的数据编码或变码成供在网络110上发射的所要格式的任何特征。虽然图2展示单个编码模块202,但实际上系统102可包含任何数目的编码模块 202。可基于播放器104的偏好、网络条件及/或类似因子而选择不同的编码模块202。在各种实施例中,编码器202还可在变码过程之前或期间对所接收的内容应用其它修改、变换及/或滤波。举例来说,可对视频信号进行重新定大小、剪裁及/或偏斜。类似地,可更改信号的色彩、色调及/或饱和度,及/或可应用噪声降低或其它滤波。可通过调整音量、取样速率、单声道/立体声参数、噪声降低、多通道声音参数及/或类似参数来修改音频信号。在一些实施例中还可应用数字版权管理编码及/或解码,及/或可视需要而应用其它特征。如上文所提及,可在编码过程期间调整编码过程的一个或一个以上参数(例如, 位速率、帧速率、图像分辨率及/或其它参数)以产生经修改或调谐而适应网络110的当时能力的媒体流120。举例来说,可响应于网络110的所测量能力而调整编码位速率。也就是说,可在网络条件能够适应与较高速率相关联的较大带宽消耗时增加位速率;相反地,可在网络条件较不能够适应较大需求时减小位速率。通过响应于网络性能而调整编码过程的位速率,可大大地改进用户体验。网络接口 206是指允许编码系统102在网络11上通信的任何硬件、软件及/或固件。在各种实施例中,网络接口 206视需要而包含适合网络堆栈编程及其它特征及/或常规网络接口(NIC)硬件,例如任何有线或无线接口。在各种实施例中,控制模块205监视并控制分别由编码模块202及网络接口 206 执行的编码及发射过程。为此目的,控制模块205为能够执行此些特征的任何硬件、软件、 固件或其组合。在各种实施例中,控制模块205进一步处理经由网络接口 206从远程播放器接收的命令(例如,通过经由命令模块208或类似模块将命令IM发送到媒体源106)。 控制模块205还可经由网络接口 206将命令发射到远程播放器104及/或可控制或以其它方式实现编码器系统102的任何其它操作。在各种实施例中,控制模块205实施用来监视并调整编码器202及/或网络接口 106的操作以有效地将媒体流提供到远程播放器104的控制特征。一种用于监视网络110的能力的技术涉及监视编码器系统102中的缓冲器105的满度及/或利用以及缓冲器105填充及排空的速率。缓冲器105通常为能够在于网络110 上发射之前临时存储经编码数据的任何种类的硬件及/或软件特征。通常,将缓冲器105 实施于与编码器102相关联的存储器或大容量存储装置的一部分中。如果缓冲器105保持相对空,那么可推断出数据发射速率与数据编码速率相对良好地匹配。也就是说,正在以数据正被编码的约相同速率发射所述数据。然而,如果缓冲器105正在填充,那么此指示编码器正在比网络110可发射数据更快地产生所述数据。图3展示可适用于描述缓冲器105的某些条件的类别/水印结构的一个实例。在图3的示范性实施例中,缓冲器105的顶部表示其中存在甚少或不存在经缓冲数据的空状态,且缓冲器105的底部表示具有相对甚少的或不具有可用于缓冲额外数据的空间的满状态。如图3中所提及,缓冲器105中的可用空间的量可由各种示范性状态302( “加分”)、 304( “绿色”)、306( “黄色”)、308( “红色”)及310( “满”)表示。其它实施例可使用具有不同相对大小、描述符或其它特征的任何数目的状态。在图3的实例中,可将“加分”状态302视为是在可使用相对侵略性参数时具有相对缓冲器空度(例如,小于约15%左右) 的状态。“绿色”状态304可表示缓冲器105中有一些数据(例如,约15%到30%左右), 但其中所述缓冲器的实质部分保持可供使用。“黄色”状态306可表示对缓冲器105的稍多的填充(例如,约30%到70%左右),其中“红色”状态表示具有相对缓冲器满度(例如,约 70%到85%左右)的条件。“满”状态可表示其中仅冲洗所述缓冲器(例如,抛弃数据)以避免溢出的条件。然而,此条件可在呈现给观看者的内容流中形成间隙。如上文所提及,其它实施例可使用任何数目的广泛变化的状态302到310来描述缓冲器105,其中任一状态或状态的组合具有任何大小、上边界或下边界或者视需要其它参数。在常规环境中,各个状态302到310之间的边界可表示指示其中向上及/或向下调整位速率(或其它编码参数)的转变点的“水印”。举例来说,在缓冲器利用从“黄色”状态306移动到“绿色”状态304时,可增加位速率以利用过剩容量。类似地,在缓冲器利用违反从图的顶部朝向底部的水印(如图3中所示)时,可减小位速率。在各种实施例中,可扩展水印的此广泛概念以甚至进一步改进性能。举例来说,并非将参数改变限制于水印违反的发生,而是可基于编码器速率及缓冲器容量的实际所测量 /所观测值而在类别(或其它方面)内做出调整。举例来说,可基于经修整以适应实际缓冲器条件的特定量来调整编码器速率(或其它适当参数),而非仅根据在不同时间从经验或以其它方式确定的预定量进行调整。此外,可在不同的操作水平上采取不同动作。举例来说,与较低水平相比,可在较高水平(例如,“加分”水平302或“绿色”水平304)上执行更具侵略性编码(例如,增加的编码位速率)。因此,即使尚未跨越水印,仍有可能且可需要增加(例如)“绿色”操作期间的位速率。类似地,甚至在水印转变之后,仍可需要在“红色” 或“黄色”操作期间将位速率(或其它参数)维持在较低水平以使缓冲器在做出更具侵略性参数改变稍前排空。那么,并非仅响应于水印转变而向上或向下调整位速率或其它参数, 而是可使用更先进的处理来获得更佳的性能及/或更佳的资产利用。下文阐述示范性实施方案的额外细节。一些实施例可进一步保持水印结构(例如,图3中所示的结构300)的使用以实现方便性、向后兼容性、对测量、计算或其它容差的补偿及/或类似物。在各种实施例中,可视需要而在操作期间向上或向下调整由一个或一个以上水印表示的特定水平以反映编码及发射的当前状态。通常,水印可依据任何已知及可测量参数而变化,例如网络容量、编码器位速率、视频宽度与高度及/或视情况其它因子。现在转到图4,用于控制媒体流120的编码的示范性方法400适合地包含以下广泛步骤采集数据(步骤406)、处理所采集的数据(步骤408)、在适当时间(步骤410、414、 416)调整一个或一个以上编码参数(步骤412、415)及在适当时间调整任何水印(步骤402、404)。一般来说,可借助编码器系统102内的任何种类的硬件、软件及 /或固件逻辑来实施方法400的各个步骤。举例来说,可通过视情况而结合编码器逻辑202、 缓冲器105及网络接口 206操作的控制逻辑205(图幻来实施方法400。在各种实施例中, 响应于存储于与编码器系统102相关联的存储器中或磁盘驱动器及/或其它存储装置上的软件或固件指令而实施方法400的各个步骤。此些指令可由编码器系统102或类似系统内的任何处理器及/或其它处理特征来执行。那么,用来实施图4中所示的各种功能中的每一者的特定构件可为执行呈任何格式的常规软件逻辑的任何种类的处理硬件(例如图2的控制器205)。一般来说,可在任何规则或不规则基础上调整水印(步骤40 。在各种实施例中, 在任何规则时间基础上(例如,每秒左右)、在任何不规则逻辑基础上(例如,每隔方法400 的n-1个反复,例如每隔九个反复左右)或视需要在任何其它基础上重新计算水印(步骤 404)。在示范性实施例中,方法400以约每IOOms左右的频率重复(其它实施例可变化), 其中每隔九个反复左右地重新计算水印,借此导致约每秒便重新计算。视需要,其它实施例可使用其它参数,及/或可考虑其它因子。举例来说,在一些实施例中,可在已知已调整编码参数时重新计算水印;相反地,一些实施例可在已知从上次重新计算以来尚未调整编码参数时省略重新计算。其它实施例可以任何方式补充或修改步骤402。根据任何适合参数、约束或技术来计算水印(步骤404)。一般来说,基于所调整参数(例如,位速率)的当时值而计算所述水印。在各种实施例中,视情况,可使用当前与前面的参数值的平均值(或经加权平均值)来确定新的水印。可以任何方式确定用来形成平均值的历史数据的量,且可视需要给历史数据加权(例如,使得较旧数据被赋予较低权数)。在任何适当基础上采集数据(步骤406)。在各种实施例中,在相对规则的时间基础上(例如,每IOOms左右)采集数据,但其它实施例可在较不规则或其它基础上采集数据。在步骤406中采集的数据为允许计算网络容量、编码器位速率及/或视情况其它因子的任何信息。在各种实施例中,采集关于从步骤406的上次反复以来所传送的网络业务量(例如,字节的数目)、从步骤步骤406的上次反复以来所产生的经编码数据量(例如,以字节为单位)及/或当前缓冲器占用水平(例如,以字节表达或表达为总缓冲器容量的百分比)的数据。在任何数目的替代实施例中,可收集其它因子或参数。接着处理所采集的数据以得出网络容量的估计及所计算的编码器速率(步骤 408)。在各种实施例中,可在任何适当时间周期内(例如,一秒左右)对在步骤406中所采集的值求平均以减少可能发生的相对短期瞬变的效应。举例来说,可基于在某一适当最近时间周期内(例如,一秒左右)所传送的平均网络业务量而计算网络容量。可类似地基于相关时间周期内(例如,一秒左右)的实际及/或平均所保存编码器速率而计算编码器速率。 因此,通过追踪缓冲器105被填充的速率(例如,编码器速率)及被排空的速率(例如,网络发射速率),可容易地识别两者之间的任何差异。类似地,可使用相对最近时间周期内的平均缓冲器占用来估计当前操作区。在各种实施例中,可基于比用于所执行的其它计算的平均时间窗少的取样(例如,表示较短时间周期,例如约0.5秒左右)的平均值而调整所述操作区。视情况,用来计算各种值的平均值可随方法400的每一反复而改变,使得平均值有效地为“滑动”平均值。还可以任何方式来考虑系统处理器负载。在各种实施例中,可以任何方式追踪并补偿处理器利用过度及/或不足。可以任何方式做出编码参数(例如,位速率)的改变(步骤410及412)。在各种实施例中,在方法400的每一反复(例如,大约每IOOms左右)之后即刻根据各种准则来评估编码参数。在图4中所示的示范性实施例中,当缓冲器利用发生改变时(步骤410)调整编码参数。举例来说,在缓冲器利用增加或减小为新状态302到310(图幻时,可调整速率以反映较新状态。注意在各种实施例中,所使用的特定状态边界或水印可由于步骤404中的重新计算而在方法400的不同反复之间变化。此外,在一些实施例中,仅缓冲器利用的某些改变将触发对编码参数的改变。如上文所提及,为了防止对缓冲器105的过填充、为了允许缓冲器105排空及/或出于任何其它原因,当(例如)操作横过分离“红色”与“黄色”(及 /或“黄色”与“绿色”)操作的状态边界时,可不调整编码参数。可视需要而应用其它规则, 使得未必响应于所有状态转变而执行参数调整。此外,可甚至在尚未发生状态转变时执行调整。举例来说,调整可适于“细调”操作状态内的操作,或者可仅仅基于相对缓冲器填充及排空速率及/或总体缓冲器利用值而做出调整,而不管是否已违反特定水印或已发生其它状态转变。如果证明参数调整是适当的,那么可视需要而向上或向下调整特定编码参数(步骤412)。举例来说,可增加或减小(例如)编码位速率以反映增加的或减小的网络能力。 特定改变量将取决于特定实施例及各种其它因子。举例来说,位速率改变可在缓冲器105 相对空时更具侵略性地增加,这是因为缓冲器空间可用于对任何过侵略性进行补偿。相反地,可在缓冲器105相对满时保守得多地应用速率增加。可视情况考虑其它因子。在许多实施例中,可不需要对编码参数做出太频繁的改变。在参数改变之间维持至少某一时间间隔可允许有效的缓冲器利用,且可减少网络容量及/或处理器负载的短暂改变的任何瞬变效应,借此改进用户体验。此时间改变延迟反映在图4中的可视需要调整 (步骤413及41 的“时间间隔”参数上。举例来说,防止在任何改变后的一秒左右内的后续参数改变使得可更仔细地考虑所述改变的效应可为有益的。同样,当缓冲器相对空时,改变之间的延迟量可较少,这是因为存在额外误差容限。类似地,在位速率(或类似参数)减小之后的延迟量可少于在增加之后的延迟。在各种实施例中,可在稍后时刻考虑在步骤415 中设定的时间间隔参数(例如,步骤414)以确定是否允许对位速率(或其它编码参数)的调整。除响应于步骤410中水印的违反而允许编码参数的改变以外,各种实施例还在条件以其它方式证明是适当的时(步骤416)进一步调整编码参数。调整可包含对位速率、帧速率、图像分辨率、音频或视频质量或者视需要任何其它参数或特征的任何改变。举例来说,可调整编码参数以匹配在步骤408中所做出的网络容量计算。举例来说,如果网络速率显著大于或小于编码速率,那么即使缓冲器利用未指示区转变/水印违反也可调整编码速率以匹配网络能力。通过响应于缓冲器105的实际填充及排空速率而调整编码参数(例如,编码位速率),可实质上改进编码系统102的性能。通过测量并操纵缓冲器105的填充及/或排空速率(例如,以彼此尽可能接近地调适填充及排空速率),可显著改进用户体验。此外,通过在调整编码参数时考虑处理器利用,可更有效地利用处理器,借此防止可由不平衡产生的问题。用来调整一个或一个以上编码参数的特定技术可在使用本文中所阐述的一般概念的不同实施例之间显著变化。下文呈现一个详细实施方案,其打算作为可在示范性编码系统或技术中实施的特征种类的一个实例。然而,在此实例中所使用的各种参数及值完全出于说明目的,且不打算为排他性或以其它方式进行限制。再次参考图3,可基于任何适合条件而做出到加分区302中的转变。在一个实施例中,如果所估计的网络速率(“NET”)显著大于(例如,大25%以上)编码器的设定速率 (“SET”)及/或所计算的编码器输出速率(“ASF”),那么从任何其它区进入加分区302。 在许多实施例中,可预期实际的所计算编码器速率在设定值的约10%左右内。当(例如) 网络性能在最近的过去劣化但现在已恢复时,可预期网络速率显著超过设定或实际编码器速率。在此些情况下,侵略性校正将为适合的,因此可将编码器速率设定为网络速率的实质部分(例如,80%左右)。然而,此新的编码器速率可受来自最近的过去的峰值网络值的限制。举例来说,编码器速率可限制于不超过某一适当时间周期(例如,500到1000ms左右) 或者某一数目(例如,五个左右)的所观测的先前值的平均或峰值网络速率。由于此特定调整对非常积极的网络性能做出响应,因此在一些实施例中,即使从先前调整以来已发生甚小或尚未发生延迟仍可执行加分转变。参数转变还可发生在区内。举例来说,在加分区302内,可随着网络性能增加而增加编码速率(例如,到网络速率的80%左右的最大值,其可受在最近的过去网络性能中所观测的平均值或峰值的约束,如上文所描述)。此些调整可限制于适当时间间隔,例如视需要每两秒左右。虽然对于此特定说明80%左右为不打算限制所有实施例的示范性值,但实际上已将所述一般值识别为提供特别有益的结果,在于其允许在“加分”或类似条件期间对可用网络资源的相对高的利用同时仍提供网络性能的后续降级的宽裕容限。如本文中所使用的“约80 % ”通常囊括约70 %到90 %左右的范围,但在其它实施例中可使用75 %到85 % 或甚至78 %到82 %的范围,此取决于特定应用及设定所要的特定精度水平及容差。视需要,还可基于缓冲器105的占用而增加编码参数。举例来说,在“加分”区302 内,编码器设定值可在缓冲器排空的情况下增加5%左右,且在缓冲器保持空达适当时间周期(例如,500ms左右)的情况下更具侵略性地增加(例如,增加10%左右)。可视需要在时间上约束这些调整于在前速率已存在达某一时间周期(例如,五秒左右)之后可仅发生较小调整,而在所述速率已稳定达较短周期(例如,两秒左右)之后可发生较具侵略性调整,这是因为在此实例中在较具侵略性调整之前的时间周期内观测了缓冲器占用。可以任何方式执行编码参数的其它向上调整。然而,在示范性实施例中,仅响应于缓冲器针对保守操作实现“加分”性能水平(例如,网络速率超过所配置的及/或实际编码器速率达显著容限)而向上调整编码参数。然而,视需要,在其它实施例中可允许非加分性能区之间的向上转变。还可以任何方式发生向下调整。举例来说,如果在“加分”操作期间缓冲器105的占用突然增加(例如,触及图3中的“红色”区308,对应于满的约70%到85%左右),那么可需要减小编码速率。将设定编码器速率减小到(例如)网络及/或当前设定的编码器速率的约70% (或者网络及编码器速率的70%以下)可为适当的;即使从在前调整以来已发生甚小或尚未发生延迟仍可发生此转变。可将此向下调整概念化为有点类似于将性能从 “加分”水平减小到“绿色”水平,但实际转变将基于实际编码及网络速率而非仅基于区转变。可视需要在其它性能水平中发生其它向下转变。举例来说,如果系统当前正在“绿色”区304中操作,而缓冲器占用急剧增加(例如,到“红色”区308或满的约70%到85% ), 那么可视需要将编码速率降低到网络及/或设定速率的约80% (左右)(或者网络及设定速率的80%以下)。在一些实施例中,可在从在前调整以来已过去一秒(左右)时间之后发生此转变。其它实施例可另外(或替代地)约束新的编码器速率以防止在缓冲器105变得接近满时大于在前编码速率的适当百分比(例如,50%左右)的改变。也就是说,如果网络速率的显著摇摆强加显著降级,那么可需要在不形成编码速率的突然大的移位的情况下对此些情形做出响应。即使在在前调整之后已发生甚小或尚未发生延迟仍可执行此些调整 (但在编码器速率已相对低时可强加某一延迟(例如,500ms左右)以防止对非常低编码器速率的过多降级)。在一些实施例中,可需要防止轻微转变周期期间的降级。如果实际编码器速率显著大于(例如,大10%左右)设定速率,那么可需要在一时间周期内完全不进行任何操作 (即,维持当前编码器速率),只要缓冲器105不过度满且其它条件以其它方式证明是适当的即可。举例来说,如果系统临时从绿色性能降级到黄色性能,而实际编码器速率仍正在比设定速率更佳地操作,那么可接受保持绿色编码器速率直到条件以其它方式证明调整是适当的为止。还可视需要执行编码器速率的较少动态调整。举例来说,如果网络速率低于设定编码器速率而缓冲器利用正在稳定地上升,那么可需要将设定编码器速率减小10% (左右)以对向下趋势做出响应。然而,此些趋势可由暂时网络拥塞(或其它网络效应)引起, 因此在此些时间期间可不需要使用网络速率来设定新选择的编码器速率。此外,在一些情况下,可需要针对此些转变防止编码器速率的过度大的移位(例如,大于30%左右的移位)。可直到在在前调整之后已发生适当延迟(例如,一秒左右)后才执行此种类的调整。在前述实例中,可基于所观测的及/或基于缓冲器105填充及排空的速率而计算的特定值来调整编码参数(例如,经编码媒体流的位速率或类似参数),借此提供比仅仅依赖于水印转变或类似转变的现有技术显著更大的灵活性及性能。此导致显著提高的用户体验。如上文所提及,前述实例的特定调整、转变、转变参数、定时参数及其它特定特征既定仅仅出于说明的目的且不打算为限制性。其它实施例可提供显著不同于本文中所描述的参数速率调整技术及系统且使用任何数目的替代或额外参数及参数值的参数速率调整技术及系统。术语“示范性”在本文中用来表示可具有任何数目的替代方案的一个实例、示例或说明。在本文中描述为示范性的任一实施方案未必被理解为对于其它实施方案是优选或有利的。尽管已在前述详细说明中呈现了数个示范性实施例,但应了解存在大量的替代但等效的变化形式,且本文中所呈现的实例决不打算限制本发明的范围、适用性或配置。相反, 可在所描述的元件的功能及布置上做出各种改变,此并不背离权利要求书及其法律等效内容的范围。
权利要求
1.一种编码从编码系统提供到远程定位的媒体播放器的媒体流的方法,所述方法包括在所述编码系统处根据至少一个编码参数来编码所述媒体流; 采集关于所述编码系统内的接收所述经编码媒体流的发射缓冲器的数据; 处理关于所述发射缓冲器的所述所采集的数据以确定网络容量的估计及所计算的编码器速率;在后续编码期间依据所述网络容量的估计及所述所计算的编码器速率中的至少一者来调整所述至少一个编码参数;及将所述经编码媒体流发射到所述远程定位的媒体播放器。
2.根据权利要求1所述的方法,其中所述编码参数为所述媒体流的位速率。
3.根据权利要求1所述的方法,其中所述采集包括监视进入及离开所述发射缓冲器的数据的量。
4.根据权利要求1所述的方法,其中所述网络容量的估计是基于离开所述发射缓冲器的数据的速率。
5.根据权利要求1所述的方法,其中所述网络容量的估计是基于进入所述发射缓冲器的数据的经加权平均速率。
6.根据权利要求1所述的方法,其中所述所计算的编码器速率是基于进入所述发射缓冲器的数据的速率。
7.根据权利要求1所述的方法,其中所述所计算的编码器速率是基于进入所述发射缓冲器的数据的经加权平均速率。
8.根据权利要求1所述的方法,其中所述调整包括响应于所述网络容量的估计的改变而调整所述编码参数。
9.根据权利要求1所述的方法,其进一步包括调整水印值。
10.根据权利要求9所述的方法,其中在规则时间基础上自动调整所述水印值。
11.根据权利要求1所述的方法,其进一步包括在对所述至少一个编码参数的先前调整之后的一时间间隔内不允许对所述至少一个编码参数的进一步调整。
12.根据权利要求11所述的方法,其进一步包括基于所述先前调整而调整所述时间间隔。
13.根据权利要求1所述的方法,其中响应于与所述编码系统相关联的处理器的利用而执行所述调整。
14.根据权利要求1所述的方法,其中所述编码参数对应于编码速率,且所述网络容量的估计对应于网络将所述发射缓冲器排空的所估计速率。
15.根据权利要求14所述的方法,其中所述调整包括在所述网络容量的估计显著超过所述所计算的编码器速率时将所述编码速率设定为所述网络将所述发射缓冲器排空的所述所估计速率的预定百分比。
16.根据权利要求15所述的方法,其中所述预定百分比为约80%。
17.一种用于编码提供到远程定位的媒体播放器的媒体流的系统,所述系统包括 发射缓冲器;用于根据至少一个编码参数来编码所述媒体流且用于将所述经编码媒体流提供到所述发射缓冲器的构件;用于控制所述系统的构件,其中所述控制构件经配置以采集关于所述发射缓冲器的利用的数据、处理所述所采集的数据以基于所述发射缓冲器排空的速率确定网络容量的估计并基于所述发射缓冲器填充的速率确定所计算的编码器速率,且在后续编码期间依据所述网络容量的估计及所述所计算的编码器速率中的至少一者来调整所述编码构件中的所述至少一个编码参数;及用于将所述经编码媒体流发射到所述远程定位的媒体播放器的构件。
18.一种用于经由网络将媒体流提供到远程播放器的媒体编码系统,所述媒体编码系统包括媒体编码模块,其经配置以接收输入信号并根据至少一个编码参数来编码所述媒体流;网络接口,其经配置以经由所述网络将所述经编码媒体流发射到所述远程播放器; 发射缓冲器,其经配置以由所述媒体编码模块填充并由所述网络接口排空;及控制模块,其经配置以采集关于所述发射缓冲器的数据、处理所述所采集的数据以确定网络容量的估计及所计算的编码器速率,且在后续编码期间依据所述网络容量的估计及所述所计算的编码器速率中的至少一者来调整所述至少一个编码参数。
19.根据权利要求18所述的媒体编码系统,其中处理器进一步经配置以基于所述发射缓冲器排空的速率确定所述网络容量的估计并基于所述发射缓冲器填充的速率确定所述所计算的编码器速率。
20.根据权利要求18所述的媒体编码系统,其中所述处理器进一步经配置以基于所述所估计的网络容量调整所述编码参数从而实现所述编码器速率的所要值。
全文摘要
本发明描述用于提供从编码系统发射到远程定位的媒体播放器的媒体流的系统及方法。根据编码参数来编码所述媒体流。采集关于所述编码系统内的发射缓冲器的数据,并处理所述所采集的数据以得出网络容量的估计及所计算的编码器速率。在后续编码期间响应于所述网络容量的估计及所述所计算的编码器速率中的至少一者的改变而调整所述编码参数。
文档编号H04N21/64GK102334341SQ200980151308
公开日2012年1月25日 申请日期2009年12月18日 优先权日2008年12月19日
发明者哈里什·奈尔·拉贾戈帕尔, 帕里马尔·巴杰帕伊, 森蒂库马尔·克里希纳多斯, 韦尼特·戈维尔 申请人:斯灵媒体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1