组合多比特率与可伸缩视频编码的制作方法

文档序号:6360942阅读:164来源:国知局
专利名称:组合多比特率与可伸缩视频编码的制作方法
组合多比特率与可伸缩视频编码
背景技术
参与视频会议的客户机通常具有不同的处理能力和可用带宽。在某些情况下,一个视频会议客户机可能具有波动的带宽量,而其他客户机具有稳定的带宽量。某些客户机可能无法像其他客户机那样接收相同质量的视频流或对视频流进行编码。例如,某些客户机可能能够以每秒30帧(fps)的帧速率按1080P分辨率(每帧1920x1080个像素)来编码和回放,而其他客户机可能只能以15fps的速率按CIF分辨率(320x240)来编码和接收。

发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式
中进一步描述的一些概念。此“发明内容”并不旨在标识要求保护的主题的关键特征或必要特征。本发明内容也不旨在用于限制所要求保护的主题的范围。·
使用多比特率(MBR)编码与可伸缩视频编码(SVC)的组合来生成视频流。客户机的能力和请求被用于确定要生成的视频流以及向客户机递送什么视频流。基于客户机的分辨率能力将客户机置于各组中。对于每个分辨率分组,MBR用于生成空间流,并且SVC用于生成时间和质量流。前面的概括描述和下面的详细描述只提供了示例,并且只是说明性的。因此,前面的概括描述和下面的详细描述不应该被视为限制性的。此外,除这里阐述那些特征外,还可以提供其他特征或变体。例如,各实施例可以涉及具体实施方式
中所描述的各种特征组合和子组合。附图
简述纳入到本发明中并构成其一部分的附图示出本发明的各实施例。在附图中图I是操作环境的框图;图2是示出在视频会议环境中生成组合了 MBR与SVC的不同流的不同客户机的图示;图3是示出在视频会议期间组合SVC与MBR的图示;图4是示出在视频流中组合MBR与SVC的视频会议系统的流程图;图5是示出组合了 MBR与SVC的流的生成的流程图;以及图6是包括计算设备的系统的框图。详细描述下面的详细描述参考各个附图。只要可能,就在附图和下面的描述中使用相同的附图形标记来指示相同或相似的元件。尽管描述了本发明的各实施例,但是,修改、改编、以及其他实现也是可能的。例如,可以对附图中所示出的元件进行置换、添加、或修改,且可以通过对所公开的方法置换、重新排序、或添加阶段来修改这里所描述的方法。因此,下面的详细描述并不限制本发明。相反,本发明的正确范围由所附权利要求书进行定义。图I是操作环境的框图。操作环境可包括视频会议环境100。视频会议环境100可包括具有各种能力的各种客户机,诸如经由内联网网络连接115连接的内联网客户机110和视频会议服务器120。视频会议环境100还可包括第一因特网客户机130、第二因特网客户机140和第三因特网客户机150。这些因特网客户机中的每一个可经由因特网160连接到视频会议服务器120。视频会议服务器120、内联网客户机110、第一因特网客户机130、第二因特网客户机140和第三因特网客户机150各自可包括参考图6更详细地描述的计算设备600。当多个客户机想要在彼此间共享数据流时,可以使用视频会议环境100。每个客户机可连接到视频会议服务器120。视频会议服务器120可维护哪些客户机被连接以及每个客户机的能力的列表。能力可由参与视频会议的客户机提供和/或由视频会议服务器获得。每个客户机的能力可包括以下全部或部分,但不限于此客户机的处理能力、分辨率能力、帧率、比特率、连接速度、可用带宽、正使用的相机等。能力对于一些/所有客户机可以不同。例如,一些客户端能够以较低分辨率进行编码和回放(例如,速率为每秒15帧(fps)速率的CIF分辨率(352x288));—些客户端能够以中等分辨率进行编码和回放(例如,帧率为30fps的VGA分辨率(每帧640x480像素));而其他客户端能够以较高分辨率进行编码和回放(例如,具有30fps速率的720p和1080p)。此外,一些客户机可以能够编码和回放较大数量的流。 视频会议服务器120可周期性地更新客户机的能力中的任何改变。例如,视频会议服务器120可以或者周期性地自动分析或者手动分析网络连接,并确定客户机具有比先前确定的更多的带宽可用。视频会议服务器120还可从客户端接收指示能力改变的消息并存储该信息以用于促进流的生成和数据共享。视频会议服务器120还可被配置为确定哪些客户机负责生成数据流,并请求将所生成的数据流发送到视频会议服务器120和/或所连接的客户机中的一些/全部。视频会议服务器120被配置为基于客户机的分辨率能力来将客户机能力聚集到不同的组中。每组可包括包含一个或多个不同分辨率的分辨率范围和/或仅包含一个分辨率的范围。例如,可存在用于IOSOp客户机的一个组,用于720p和480p客户机的一个组,以及用于CIF客户机的另一个组。客户机还可向视频会议服务器120提供其对观看和播放视频的所希望的偏好(例如,全屏模式、全尺寸模式、小窗口模式、比特率和帧率)。视频会议服务器120聚集该信息并将其发送到正在生成流的每个客户机。例如,可存在从客户机向视频会议服务器120的CIF、VGA和HD请求,CIF的比特率范围是从100到250Kpbs,帧速率的范围是从10到30fps,VGA的比特率范围是从500到700K,帧速率的范围是从15到30fps,以及HD的比特率范围是从I到I. 5Mpbs,帧速率是30fps。在本示例中,视频会议服务器120向被请求来生成流(例如,活动讲话者和/或订阅的流)的每个客户机发送以下信息(CIF, 150K 到 250K, 10 到 30),(VGA, 500K 到 700K, 15 到 30),以及(720p,IM 到 I. 5M,30)。每个客户机使用该信息及其自身的能力来生成视频流。使用多比特率(MBR)编码与可伸缩视频编码(SVC)的组合来对视频流进行编码。可伸缩视频编码(SVC)是H. 264标准的扩展。SVC允许对部分比特率进行传输和解码,以提供具有较低的时间或空间分辨率或经降低的保真度的视频服务。然而,SVC可具有高编码和解码复杂度。在SVC所描述的各种伸缩性模式中,空间和质量伸缩性是要编码和解码的最复杂的模式。由此,并非视频会议中的全部客户机都被配置为高效地执行这些操作。然而,大多数客户机能够高效地执行不那么复杂的其他SVC编码/解码。此外,当分辨率范围较大时,SVC的空间伸缩性可能不是很高效。然而,MBR编码在空间伸缩性方面在计算上更高效。将SVC的各方面与MBR编码过程的各方面相组合,代替仅使用用于视频编码/解码的SVC,来降低视频编码/解码的复杂度。MBR是指其中以若干分辨率和/或帧速率对同一内容进行编码以优化到一个或多个客户机的内容递送的数据流。一般而言,被分组到较高分辨率组中的客户机能够比被分组到较低分辨率组中的客户机生成更多的流。根据一个实施例,生成流的每个客户机使用MBR来获得空间伸缩性,并且SVC用于时间和质量伸缩性。图2是示出在视频会议环境100中生成不同流的不同的客户机的图示,该流组合7 MBR 与 SVC。每个客户机可生成一个或多个数据流以发送给视频会议服务器120和/或某一其他目的地。每一客户机可具有音频/视频输出,诸如连接到该客户机的摄像头和/或话筒。输入可被用于生成一个或多个视频流(可包括音频)以及在将视频流发送到视频会议服务 器120和/或某个其他目的地之前对其进行编码。例如,客户机130可将视频流编码成包括当前正讲话的人的一系列视频帧。视频流可被编码成一系列视频帧,其中每一帧可包括单个图像。每一帧可由数据比特表示。视频流可被编码成并非每一帧中的每一数据比特都需要被发送才能表示该视频流的源。可使用不同的帧类型来编码和/或压缩视频流。帧类型可包括I帧、P帧以及B帧。I帧代表内帧,并且可包括可自己解码而无需参考视频流中的任何其他帧的帧。P帧代表预测帧并且可通过参考视频流序列中的至少一个前帧来解码。B帧代表双向预测帧并且可通过参考视频流中的至少一个前帧和至少一个后帧来解码。客户机可生成超过一种分辨率的、组合了MBR与SVC的流。例如,客户机130可生成1080p、720p、480p和CIF的单独的流。视频会议服务器120被配置成确定客户机的能力,并且将所生成的流定向到适当的客户机。例如,视频会议服务器120可接收由客户机130以不同分辨率生成的当前讲话者的流,并将它们递送到发出请求的客户机。在当前的示例中,来自客户机130的客户机以CIF分辨率被递送到客户机110,以720p分辨率递送到客户机140,并且以480p分辨率递送到客户机150。可向客户机递送不同的帧速率/比特率。如以上讨论的,客户机的能力和请求可由视频会议服务器120来确定。一般地,请求与查看视频资源的所需方式有关,而能力与显示和编码/解码视频的能力有关。在旨在非限制性的以下示例中,假设客户机Iio是CIF客户机,客户机130是1080P客户机,客户机140是720p客户机,以及客户机150是480p客户机。视频会议服务器120从每个客户机接收请求和能力,并在将该信息发出到被请求来生成流的客户机之前聚集该信息。例如,每个客户机可向视频会议服务器120发送订阅请求,该订阅请求包括客户机的所期望的查看参数以及能力。订阅请求可包括所请求的参数,诸如源客户机、分辨率、比特率、和/或巾贞速率。例如,客户机110可请求订阅来自客户机130的以CIF分辨率、15fps以及150Kbps比特率的视频流(230)。客户机还可能希望查看来自视频会议中所有参与的客户机的视频流。例如,客户机140可参与四客户机视频会议,并请求订阅视频流(210、230、240、250 ),该视频流示出具有帧速率范围从15fps到30fps且比特率范围从IMbps到I. 5Mbps的720p的全部四个参与的客户机。客户机150可请求订阅来自使用15fps和30fps之间的帧速率以及范围从500Kbps到700Kbps的比特率的480p的所示客户机110和客户机130的视频流(210、230)。如图所示,客户机130已请求了订阅来自以30fps以及IOMbps比特率的1080p的所示客户机110、客户机140和客户机150的视频流(210、240和250)。视频会议服务器120聚集请求,并将该信息发送到将要生成视频流的每个客户机。在当前的示例中,可存在从客户机到视频会议服务器120的CIF、VGA和HD请求,CIF的比特率范围是从100到250Kpbs,帧速率范围是从10到30fps,VGA的比特率范围是从500到700K,帧速率范围是从15到30fps,以及HD的比特率范围是从I到I. 5Mpbs,帧速率是30fps。MCU随后将向被请求来生成流(例如,活动讲话者和/或订阅的流)的全部客户机发送(CIF, 150K, 15),(VGA,500K 到 700K, 15 到 30),(720p, IM 到 I. 5M,30)以及(1080p,10M,30)。每个客户机使用该信息及其自身的能力来生成MBR和SVC流。根据一个实施例,每个客户机决定要生成多少MBR “组”。对于每个所生成的MBR组,存在多个SVC层(一个 基础+增强层)。(每个MBR组内的)每个SVC层作为单独的RTP流来发送。例如,可请求CIF客户机110生成CIF MBR流和导致4个RTP流(210)的CIF SVC流。可请求VGA客户机150生成480p流加上任意CIF流(250)。一些VGA客户机可能能够生成全部480p和导致10个RTP流的CIF SVC流,而其他客户机可能仅能生成SVC层的一部分,由此导致所生成的较低数量的流。可以请求客户机140发送720p、480p和CIFSVC流,导致共计16个RTP流(240)。可以请求客户机130发送1080p+、720p+、480p+、CIF SVC流,导致共计22个RTP流(230)。例如,具有6层(3个时间层和2个质量伸缩性层)的1080p 30fps的SVC流,具有6层的720p 30fps的SVC流,具有6层的480p 30fps的SVC流,以及具有4层(2个时间层和2个质量层)的CIF 15fps SVC流。客户机130可将其生成的流230发送到视频会议服务器120。客户机140可将其生成的流240发送到视频会议服务器120。客户机150可将其生成的流250发送到视频会议服务器120,并且客户机110可将其生成的视频流210发送到视频会议服务器120。视频会议服务器120将所接收的流定向到所请求的目的地。或者,客户机可将流的全部或一部分发送到视频会议服务器120,并将流的全部或一部分直接发送到其他目的地。正在生成流的每个客户机基于从视频会议服务器120接收的信息来确定流,该信息包括SVC和MBR伸缩性类型、MBR和SVC层的范围或数量、以及基于客户机的能力的每层的比特率。根据一个实施例,比特率和帧速率范围与每个分辨率相关联,并且所生成的流的数量是基于来自客户机的请求的。所确定的流配置可在视频会议期间改变。视频会议服务器120或客户机可在视频会议期间的任何时候发送已更新的信息,以允许其他客户机适应客户机的条件/配置的改变(诸如带宽、从大屏幕/全屏到子窗口模式的特定流的视频查看模式、或添加/移除客户机)。根据一个实施例,当存在客户机的状态改变时,该客户机通知视频会议服务器120。视频会议服务器120随后聚集该信息,并将已更新的信息发送到正被请求来发出流的当前发送者。图3是示出在视频会议期间组合SBC与MBR的图示。如图所示,视频会议系统300包括视频会议服务器120和各种客户机,诸如客户机301、客户机303和客户机304。
视频会议系统300中具有不同带宽和/或不同的视频编码和/或解码能力的客户机可以连接。视频会议系统300中的每一客户机可向视频会议服务器120注册,并且确定诸如可用带宽、最大编码分辨率、最大解码分辨率以及可用数据编码和/或解码算法等能力。例如,客户机301可向视频会议服务器120注册,并且确定2Mbps的可用带宽,能够以30fps的VGA (640x480)分辨率以及15fps的CIF (320x240)分辨率来对视频流进行编码/解码。客户机303可向视频会议服务器120注册,并且确定150Kbps的可用带宽,能够以 30fps 的 720p (1280x720)分辨率、30fps 的 VGA (640x480)分辨率以及 15fps 的 CIF(320x240)分辨率来对视频流进行编码/解码。客户机304可向视频会议服务器120注册,并且确定200Kbps的可用带宽,能够仅以15fps的CIF (352x288)分辨率来对视频流进行编码/解码。客户机可能能够对它们不能解码的视频流进行编码,且反之亦然。例如,客户机304可能能够接收并且解码VGA分辨率的视频流,但可能只能编码CIF分辨率的视频流。在此情形中,客户机301和客户机303可仅以VGA分辨率来对视频会议服务器120可向客户机304发送的流进行编码。可将来自客户机304以CIF分辨率来编码的流发送给客户机301 和客户机303。在视频会议呼叫被建立且每一客户机的能力都向视频会议服务器120注册之后,视频会议服务器120可将编码请求传递给每一客户机。例如,可请求客户机301和客户机303各自对组合了 MBR和SVC的视频流的两个视频分辨率进行编码,并将它们发送到视频会议服务器120—视频流的第一版本可用30fps的VGA分辨率来编码,以及视频流的第二版本可用15fps的CIF分辨率来编码。可请求客户机304用15fps的CIF分辨率对一组视频流进行编码。根据一个实施例,编码请求被置于一消息内,该消息包括根据请求来创建的经聚集的信息以及每个客户机的能力。视频会议服务器120随后可接收从每个客户机生成的流,并且基于每一客户机的所注册和/或所确定的能力来选择至少一个所接收的流以便发送给其他客户机。例如,视频会议服务器120可确定客户机304仅能够解码CIF分辨率的视频流,而客户机301和客户机303能够解码VGA分辨率和CIF分辨率的视频流。视频会议服务器120随后可将由客户机304生成的CIF分辨率的流发送给客户机301和客户机303。视频会议服务器120可将由客户机301生成的VGA分辨率的流发送给客户机303,并且将由客户机301生成的CIF流发送给客户机304。类似地,视频会议服务器120可将来自客户机303的VGA分辨率的流发送给客户机301,并且将来自客户机303的CIF流发送给客户机304。视频会议服务器120可确定每一客户机是否具有足够带宽来接收视频流,并且基于该确定来选择不同的流。根据本发明的其他实施例,视频会议服务器120和/或诸如客户机303等客户机中的一个可周期性地重新评估可用带宽量。例如,视频会议服务器120可确定客户机303可用的带宽从150Kbps下降到75Kbps,并且可开始将CIF分辨率的视频流而不是VGA分辨率的视频流从客户机301发送给客户机303。视频会议服务器120还可周期性地重新评估每一客户机的编码/解码能力,并且动态地更改针对每一客户机的视频流所请求的编码算法。该重新评估可按预先确定的次数自动执行和/或手动执行。例如,客户机304可以是从客户机301和客户机303接收CIF分辨率的视频流的唯一客户机。如果客户机304退出视频会议呼叫,则视频会议服务器120可请求客户机301和客户机303停止编码并停止发送其相应的视频流的CIF分辨率的版本。根据一个实施例,该已更新的信息像上面描述的经聚集的信息那样被发送到生成流的每个客户机。视频会议服务器120可指示与视频会议呼叫相关联的客户机中的至少一个客户机对被确定为正被与 视频会议呼叫相关联的其他客户机中的一个客户机使用的视频流进行编码。例如,视频会议服务器120可确定客户机304当前正使用CIF解码;视频会议服务器120可指示客户机303对CIF分辨率的流进行编码以便发送给视频会议服务器120,该CIF视频流可被中继到第二因特网服务器304。视频会议服务器120可在将视频流发送到客户机之前更改它。例如,客户机301可以能够对720p、VGA和CIF分辨率的视频流进行编码和发送,并且具有大量、稳定的可用带宽。客户机303可以能够对720p、VGA和CIF分辨率的视频流进行接收和解码,但具有高度可变量的可用带宽。随着客户机303可用的带宽减少,视频会议服务器120可以更改从客户机301中继到客户机303的视频流以最适于可用带宽量。发送到每个客户机的流的选择可依赖于每个客户机的查看偏好以及客户机的能力。例如,客户机303可被配置为同时查看视频会议系统300中并排的其他两个参与者,而客户机304可被配置为仅示出当前的讲话者。在此情形中,视频会议服务器120可向客户机303发送来自客户机301的VGA分辨率的流以及来自客户机304的CIF分辨率的流。客户机304可交替地从客户机301和客户机303接收CIF分辨率的流,因为那些客户机中的每一个针对视频会议呼叫发言。现在参考图3-4,将描述为视频会议组合MBR与SVC的说明性过程。在阅读本文中给出的例程的讨论时,应该理解,各个实施例的逻辑操作被实现为(I) 一系列运行于计算系统上的计算机实现的动作或程序模块;和/或(2)计算系统内的互连的机器逻辑电路或电路模块。这种实现是取决于实现本发明的计算系统的性能需求的选择问题。因此,所例示并构成本文中描述的实施例的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑,以及其任何组合来实现。图4是示出在视频流中组合MBR与SVC的视频会议系统的流程图。在开始框之后,操作前进至操作410,其中注册至少一个客户机。例如,客户机可经由网络连接操作上连接到计算设备600并且可请求参与由计算设备600主存的视频会议呼
口 Li。移至操作420,收集和/或分析每一注册客户机的能力和请求。例如,计算设备600可确定对每一客户机可用的带宽量。计算设备600还可确定每一客户机的数据处理能力,诸如视频编码和/或解码能力和/或数据处理速度。视频编码/解码能力可包括分辨率能力,诸如最大分辨率能力。还可从视频会议中的至少一个客户机接收订阅请求。例如,计算设备600可从一个客户机接收对来自第二客户机的VGA编码30fps流的订阅请求。该请求可包括诸如期望的分辨率、比特率和帧速率等信息。根据本发明的各实施例,计算设备600可从参与视频会议的任何和/或所有客户机接收多个订阅请求。例如,一个客户机可请求所有其他参与客户机的较低分辨率版本;另一客户机可请求来自在视频会议中可被指定为活跃讲话者的任何客户机的高分辨率版本以及来自一些或所有其他客户机的低分辨率版本。
移动到操作430,基于客户机的能力来对客户机分组。根据一个实施例,根据客户机支持的分辨率来对客户机分组。例如,客户机可被置于与标准分辨率格式(例如,1080p、720p、VGA、CIF等)相关的各组中。每组可包括支持包含一个或多个不同分辨率的分辨率范围和/或仅包含一个分辨率的范围的一个或多个客户机。例如,可存在用于IOSOp客户机的一个组,用于720p和480p客户机的一个组,以及用于CIF客户机的另一个组。前进至操作440,聚集能力和请求,并且随后将其发送到被请求来生成视频流的至少一个客户机。经聚集的信息可通过不同的方式来表示,诸如创建向量索引,该向量索引具有分辨率、比特率范围和帧速率范围。例如,当存在来自客户机的CIF、VGA和HD请求时,CIF的比特率范围是从100到250Kpbs,帧速率的范围是从10到30fps,VGA的比特率范围是从500到700K,帧速率的范围是从15到30fps,以及HD的比特率范围是从I到I. 5Mpbs,帧速率是30fps,可以生成以下向量索引(CIF、150K到250K, 10到30),(VGA, 500K到700K,15到30),(720p, IM到I. 5M,30)。该信息随后在消息中被提供给被请求来生成流(活动讲
话者/订阅的流)的客户机。每个客户机使用该信息及其自身的能力来生成合适的MBR和SVC流(参见图5)。转移到操作450,从被请求来生成流的至少一个客户机接收一个或多个数据流。例如,计算设备600可从客户机接收一个或多个分辨率的多个流。根据一个实施例,每个分辨率由一个MBR流以及一个或多个SVC流来表示。前进至操作460,将流发送到至少一个客户机。例如,计算设备600可以将从第一客户机接收的第一分辨率的流发送到第二客户机,并将从第一客户机接收的第二分辨率的流发送到第三客户机。计算设备600还可确定客户机不具有从第二客户机接收所请求的高分辨率版本的视频流的足够的带宽,并且计算设备600可选择较低分辨率版本的视频流来发送到该客户机。转移到判定操作470,确定客户机能力是否改变。当客户机的能力和/或系统的要求已经改变时,方法400可返回到操作440,其中更新经聚集的信息,该信息表示对要由客户机中的一个或多个来生成的不同视频流的请求。例如,计算设备600可确定视频会议呼叫中利用CIF解码的唯一客户机已经退出。计算设备600随后可通过发出经聚集的信息来请求视频会议呼叫上的任何其他客户机停止生成CIF流。根据本发明的各实施例,客户机的可用带宽可能降低,并且客户机可将该情况通知给计算设备600。计算设备600可为该客户机选择较低分辨率的数据流,和/或为该客户机更改当前选择的数据流以便考虑已减少的带宽。可贯穿会议周期性地作出这一确定。当能力不改变且会议呼叫结束时,该过程前进至结束操作并返回以处理其他动作。图5是示出生成组合了 MBR与SVC的流的流程图。在开始操作之后,过程前进至操作510,其中客户机接收经聚集的信息,该信息与要生成的期望的流相关。根据一个实施例,经聚集的信息包括期望的分辨率、比特率、和根据分辨率来分组的帧速率。可在不同的时间接收/更新该经聚集的信息。例如,信息可在客户机加入视频会议后被接收,并在视频会议的情况改变时被更新。例如,可将客户机添加到视频会议/从视频会议中丢弃,客户机的能力/请求可在视频会议期间改变,等。移至操作520,生成一分辨率的流。客户机设备确定要编码的MBR流和SVC层流。例如,一个1080p客户机可对利用了全部SVC层的全部分辨率的流进行编码,而另一个1080p客户机可对仅生成一部分SVC层的流的全部分辨率的流进行编码。一般而言,客户机试图对其支持的分辨率以及其支持的与其最大分辨率相比是较低分辨率的任何分辨率的流进行编码。移至操作530,作出关于是否要生成任何更多的分辨率的确定。例如,可以请求客户机生成许多不同分辨率的流,诸如720p分辨率的视频流、VGA分辨率的视频流、以及CIF分辨率的视频流。当要生成更多的流时,过程返回到操作520。当不要生成更多的流时,过程返回到操作540。在操作540,从创建流的客户机发送所生成的流。所生成的流可被发送到视频服务器和/或不同的目的地。例如,客户机可将流中的一些发送到视频服务器,并将其他流直接发送到客户机设备。图6是包括计算设备600的系统的框图。根据本发明的一实施方式,上述存储器 存储和处理单元可以在诸如图6的计算设备600等计算设备中实现。可以使用硬件、软件或固件的任何适当的组合来实现该存储器存储和处理单元。例如,存储器存储和处理单元可以用计算设备600或结合计算设备600的其他计算设备618中的任意一个来实现。根据本发明的各实施方式,上述系统、设备和处理器是示例,而其他系统、设备和处理器可以包括上述存储器存储和处理单元。此外,计算设备600可包括用于如上所述的系统100的操作环境。系统100可在其他环境中操作,并且不限于计算设备600。参考图6,根据本发明的一实施方式的系统可包括计算设备,诸如计算设备600。在一基本配置中,计算设备600可以包括至少一个处理单元602和系统存储器604。取决于计算设备的配置和类型,系统存储器604可以包括,但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存或任何组合。系统存储器604可包括操作系统605、一个或多个编程模块606,并且可包括与确定能力以及对视频编码/解码有关的程序607。例如,操作系统605可适用于控制计算设备600的操作。在一个实施例中,编程模块606可包括例如数据分析模块和/或视频会议服务器620。此外,本发明的各实施方式可以结合图形库、其他操作系统、或任何其他应用程序来实践,且不限于任何特定应用程序或系统。该基本配置在图6中由虚线608内的这些组件示出。计算设备600可以具有附加特征或功能。例如,计算设备600还可包括附加数据存储设备(可移动和/或不可移动),诸如例如磁盘、光盘或磁带。这些附加存储在图6中由可移动存储609和不可移动存储610示出。如这里所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器604、可移动存储609和不可移动存储610都是计算机存储介质示例(即,存储器存储)。计算机存储介质可以包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPR0M)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD )或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息且可以由计算设备600访问的任何其他介质。任何这样的计算机存储介质都可以是设备600的一部分。计算设备600还可具有输入设备612,诸如相机、键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括诸如显示器、扬声器、打印机等等之类的输出设备614。上述设备是示例且可以使用其他设备。如这里所使用的术语计算机可读介质还包括通信介质。通信介质由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或 直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。计算设备600还可包含可允许设备600诸如通过例如内联网或因特网等分布式计算环境中的网络来与其他计算设备618进行通信的通信连接616。通信连接616是通信介质的一个示例。如上所述,可以在系统存储器604中存储包括操作系统605在内的多个程序模块和数据文件。当在处理单元602上执行时,编程模块606 (例如,视频会议服务器620)可执行各过程,包括例如,如上所述的方法的各阶段中的一个或多个。前述过程是示例,且处理单元602可执行其他过程。根据本发明的各实施方式可以使用的其他编程模块可以包括电子邮件和联系人应用、字处理应用、电子数据表应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。一般而言,根据本发明的各实施方式,程序模块可以包括可以执行特定任务或可以实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的各实施方式可用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器的系统或可编程消费电子产品、小型机、大型计算机等。本发明的各实施方式也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备中。此外,本发明的各实施方式可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实现。本发明的各实施方式还可以使用能够执行诸如,例如,AND (与)、0R (或)和NOT (非)等逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施方式可以在通用计算机或任何其他电路或系统中实现。例如,本发明的各实施方式可被实现为计算机进程(方法)、计算系统或诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并编码了用于执行计算机进程的指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可读并编码了用于执行计算机过程的指令的计算机程序的载体上的传播信号。因此,本发明能以硬件和/或软件(包括固件、常驻软件、微码等)来具体化。换言之,本发明的各实施方式可以采用其上包含有供指令执行系统使用或结合其使用的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合其使用的任何介质。计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。更具体的计算机可读介质示例(非穷尽列表),计算机可读介质可以包括以下具有一条或多条导线的电连接、便携式计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、和便携式压缩盘只读存储器(CD-ROM)。注意,计算机可使用或计算机可读介质甚至可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并随后存储在计算机存储器中。以上参考例如根据本发明的各实施方式的方法、系统和计算机程序产品的框图和/或操作图示描述了本发明的各实施方式。框中所注明的各功能/动作可以按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以按相反的次序来执行。尽管已经描述了本发明的某些实施方式,但也可能存在其他实施方式。此外,虽然本发明的各实施方式被描述为与存储在存储器和其他存储介质中的数据相关联,但数据还可以被存储在或读取自其他类型的计算机可读介质,如辅助存储设备,像硬盘、软盘、或CD-ROM ;来自因特网的载波;或其他形式的RAM或ROM。此外,所公开的方法的各步骤可以任何方式修改,包括通过对各步骤重新排序和/或插入或删除步骤,而不背离本发明。·包括此处所包括的代码中的版权在内的所有权利都归属于申请人并且是本申请人的财产。申请人保持并保留此处所包括的代码中的所有权利,并授予仅关于所授权的专利的再现且未出于其他目的再现该材料的许可。尽管本说明书包括示例,但本发明的范围由所附权利要求书来指示。此外,虽然用对结构特征和/或方法动作专用的语言描述了本说明书,但权利要求书并不限于上文所描述的特征或动作。相反,上述具体特征和动作是作为本发明的各实施方式的示例来公开的。
权利要求
1.一种使用多比特率(MBR)编码与可伸缩视频编码(SVC)的组合来对视频流进行编码的方法,包括 确定与视频会议中的客户机相关联的能力,其中所述能力与每个客户机对一个或多个视频流进行编码的能力有关; 将每个客户机置于组中,所述每个客户机是基于所述每个客户机的所确定的能力来选择的;以及 从所述视频会议中的所述客户机中的至少一个接收流,所述流包括用于空间伸缩性的MBR流以及与时间和质量伸缩性中的至少一个有关的一个或多个SVC流。
2.如权利要求I所述的方法,其特征在于,还包括将来自每个客户机的能力和请求聚集到消息中,并且向所述视频会议中被请求在所述视频会议内生成流的客户机提供所述消肩、O
3.如权利要求I所述的方法,其特征在于,将每个客户机置于组中包括确定每个客户机的所支持的分辨率,以及根据所支持的分辨率对所述客户机进行分组。
4.如权利要求I所述的方法,其特征在于,将SVC流的每层分组化到单独的流中。
5.如权利要求2所述的方法,其特征在于,所接收的请求包括期望的分辨率、帧速率和比特率。
6.如权利要求2所述的方法,其特征在于,还包括确定所述视频会议内的情况何时改变以及更新所述消息,使得不同的流由一个或多个客户机来生成。
7.一种存储指令集的计算机可读介质,当所述指令集被执行时执行一种生成视频流的方法,所述视频流组合了多比特率(MBR)编码与可伸缩视频编码(SVC),由所述指令集执行的所述方法包括 确定与视频会议中的客户机相关联的能力,其中所述能力包括为每个客户机确定分辨率以及编码能力; 将每个客户机置于组中,所述每个客户机是基于所述每个客户机的所确定的分辨率来选择的; 将所述客户机的能力聚集到消息中; 将所述消息发送到被请求来为所述视频会议生成流的客户机;以及 从所述视频会议中被请求来生成流的所述客户机接收流,所述流包括用于空间伸缩性的MBR流以及与时间和质量伸缩性中的至少一个有关的一个或多个SVC流。
8.一种用于生成流的系统,所述流在视频会议中组合了多比特率(MBR)编码与可伸缩视频编码(SVC)编码,所述系统包括 存储器存储; 网络连接设备;以及 耦合到所述存储器存储的处理单元,其中,所述处理单元可操作以 注册经由所述网络连接设备操作上连接到所述系统的至少一个第一视频会议客户机和至少一个第二视频会议客户机,其中用于注册所述至少一个第一视频会议客户机和所述至少一个第二视频会议客户机包括用于确定所述至少一个第一视频客户机和所述至少一个第二视频会议客户机的能力,其中所述能力包括;分辨率、帧速率和比特率; 从所述至少一个第一视频会议客户机接收多个视频流,其中所述多个视频流由所述第一视频会议客户机生成并且包括第一组流和第二组视频流,所述第一组流包括MBR流和至少一个SVC流,所述第二组视频流包括MBR流和至少一个SVC流,其中所述至少一个第一组流与所述第二组视频流相比,包括较高分辨率的视频流。
9.如权利要求8所述的系统,其特征在于,还包括确定能力在所述视频会议内何时改变。
10.如权利要求8所述的方法,其特征在于,还包括将来自每个客户机的能力和请求聚集到消息中,并且向所述视频会议中被请求在所述视频会议内生成流的客户机提供所述消肩、ο
全文摘要
使用多比特率(MBR)编码与可伸缩视频编码(SVC)的组合来生成视频流。客户机的能力和请求用于确定要生成的视频流以及向客户机递送什么视频流。基于客户机的分辨率能力将客户机置于各组中。对于每个分辨率分组,MBR用于生成空间流,并且SVC用于生成时间和质量流。
文档编号G06F15/16GK102948148SQ201180029756
公开日2013年2月27日 申请日期2011年6月6日 优先权日2010年6月18日
发明者M-C·李, T·钱, T·摩尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1