一种用于服务器向客户端终端广播视频数据序列的方法

文档序号:7940149阅读:135来源:国知局
专利名称:一种用于服务器向客户端终端广播视频数据序列的方法
技术领域
本发明涉及一种用于服务器经由网络来向客户端终端广播视频数据序列的方法。 家庭视频网络市场正在日趋繁荣。家庭环境内部的媒体多样性在这方面展现了多种可能 性。网络的存在使得互连同一家庭内部的不同媒体(家庭联网)成为可能。这种网络是以 使用诸如HDMI (高清多媒体接口)、WIFI、以太网或PLC(电力线通信)之类的技术并通过 前述网络互连的服务器(例如个人计 算机或PC)和客户端终端(例如视频解码器)的形式 存在的。
背景技术
通过创建一个办公室,这种架构能够允许从充当媒体中心(负责读取下列多媒体 文件的硬件系统视频、音频、图像、声音)的PC服务器将服务提供给远方的终端。这种办 公室包括一个形成了客户端终端的用户界面的屏幕呈现,允许用户运行命令的菜单。这种 办公室由服务器管理,但其经由网络接收来自客户端终端的远程命令。这种架构使得与那 些不具有大量计算资源的终端(由此产生成本较低的终端)进行工作成为可能,应用的很 大一部分是由服务器发送和支持的,其中该服务器将经过处理的数据发送到终端。媒体中心包括按照命令行动的操作单元和控制单元。通常,控制单元可以包括具 有控制按钮的屏幕显示,例如办公室显示。该控制单元包括用于激活所显示的控制按钮的 设备,例如遥控器。媒体中心的操作单元管理由于所显示的按钮的激活而产生的行为,例如 调高声音或是经由状态改变而从一个视频序列移到另一个视频序列。例如,这种媒体中心可以显示在电视屏幕或是产生用户界面的别的显示装置上。 用户可以与所显示的数据进行交互,例如使用遥控器来交互。媒体中心的用户管理是在客户端终端级实现的。用户界面可以被定义成是可能用 户命令树。由此,用户是通过使用遥控器给出运行命令,例如从用户界面显示的可能选项中 给出运行命令,来与这个用户界面交互的。这些命令由客户端终端接收,并且促使客户端终 端创建用户交互。从现在开始,术语“用户交互”和“用户事件”将是可互换的。在创建了用户事件之后(例如通过按下遥控器上的按钮),客户端终端向服务器 发送一个请求,以便启动前述事件的处理。在处理客户端终端发送的请求的过程中,服务器 处理用户命令。一旦处理了该请求,则服务器向客户端终端发送一个关于该请求的响应。这 个服务器响应是通过处理用户事件产生的,尤其是通过对在用户事件之后客户端终端将要 广播的视频数据进行编码来产生的。该响应由客户端终端接收和解码,该客户端终端则会 将处理结果显示在用户界面上。在这类系统中,在将其广播的内容发送到终端之前,服务器会对该内容进行编码, 换句话说也就是对其进行压缩。如果服务器必须在自己的屏幕上显示其广播的图像,那么 它不必对这些图像进行压缩。实际上,服务器内部总线中的转移单元会容忍高输出。为了执 行压缩,服务器捕获其自身显示,对其进行编码,并且将其发送到客户端终端,例如发送到 用于以太网的客户端终端的IP地址。由此,编码是根据按照逐个像素顺序定义的图像而不是采用位图格式的图像执行的。这种按照逐个像素顺序定义的图像非常适合监视器显示。服务器执行的编码是时空类型的(例如依照H264标准);时空编码仅仅对所传送图像的一部分进行完全编码,以便重新创建视频。H264标准是一个由VCEG(视频编码专家 组)和MPEG(运动图像专家组)联合开发的视频编码标准。该标准有助于视频流的编码,对 于相同质量以及HDMI之类的简化链路上的高速数据传输来说,其输出要比使用MPEG2标准 获得的输出少两倍以上。在编码过程中,图像被分成宏块单元,并且每一个宏块都被编码。 时空编码仅仅对所传送的图像的一部分进行完全编码,以便重新创建视频。H264标准包含 了在MPEG2标准中已知和已经定义的图像类型,尤其是1(帧内)图像,其中编码不取决于任何其他图像,P(预测)图像,其中编码取决于先前接收的图像,B(双向预测)图像,它取决于先前和/或随后接收的图像。在接收时,客户端终端必须解码服务器发送的视频数据。客户端对这种数据进行 的解码通常是由终端中的图形卡的专用电子电路执行的。一旦解码了数据,则终端经由其 广播装置将数据广播到屏幕上。但是,服务器对数据进行编码需要强大的能力。此外,编码通常会需要一个无法顾 及实时编码、传输和解码的执行时间。由此,与客户端设备用于解码所需要的能力相比,所 述编码通常需要服务器设备具有比所述能力高出五倍以上的能力。现今的媒体中心包含了大量动画。例如,这些动画可以是用户点击的结果、按钮上 的动画、周期性移动的背景,或者仅仅是窗口的移动。在用户事件之后会出现大量的此类动 画。实际上,这些动画是很短的视频序列,并且服务器必须对其进行编码以及将其传送到客 户端设备,以使其能够经由用户界面而被广播。但是,在此类用户事件之后,在服务器设备 显示的内容中,只有一部分会发生变化。实际上,举例来说,对于在用户点击菜单标签之后 下拉的菜单来说,只有菜单下拉的部分变化;而图像的剩余部分则保持固定。视频协议当前 只对整个图像进行编码;也就是对用户事件之后发生变化的内容以及没有改变的内容进行 编码。即使最终在根据标准H264编码之后只将那些发生变化的部分插入视频流,在确定哪 些部分改变以及哪些部分没有改变中包含的工作也还是会减慢大量转移的视频数据的编 码时间。在相对于主显示和远端管理功能而言具有决定性的测试的过程中,显示时间已被 证实过于冗长。对于单个高清图像来说,这个显示时间大约会是数秒,由此不允许在该状态 中使用这个功能。这个过长的显示时间是通过两个因素来说明的。这其中的第一个因素是跨越IP 链路的传输时间,第二个因素是用于请求消息的处理时间。在解码的数据被压缩时,客户端 设备级的图像解码将会更长。同样,在压缩格式非常复杂的时候,编码处理将会更长。当前, 为了结合这种类型的应用来执行图形解码,解码器必须包含能对压缩视频数据解压缩的图 形库。本领域技术人员已知的一种用于解决与穿越网络的数据传输时间相关联的问题 的解决方案包括减小移经网络设备的数据的大小。通过由此依照已知的压缩标准来压缩数 据,可以在磁盘空间方面以较低的成本来获取信息。由此,这种压缩信息会以更快的速度经 由网络移动。但是,这种解决方案仍旧会使视频数据压缩更为复杂,并且由此增加服务器编码时间。此外,这种压缩复杂度还增加了在客户端设备上解码接收数据所需要的时间。另 夕卜,这种解决方案还需要在客户端设备中集成相应的库。由此,这种解决方案带来了减少穿 越网络的数据传递时间的优点,但其极大增加了服务器和客户端级的数据处理时间。一种用于减少编码和解码时间的解决方案是简化所传送的信息。由此,通过使用 简单编码,可以实现有效的编码和解码时间。但是,通常与使用简单编码的传输相联系的一 个问题是数据传递时间。实际上,作为一般规则,编码越简单,则数据占用的磁盘空间就越 大。在达到传递信息穿越网络所耗费的时间的时候,在编码和解码级以这种方式获得的时 间将会丧失。举例来说,通过在屏幕捕获级组合VNC(虚拟网络计算)客户端/服务器应用和 H264协议,可以解决对整个图像进行完全编码的问题。例如,TightVNC是一种能够从与因 特网相连的任何客户端计算机远程访问服务器计算机的应用。这意味着所有的运动检测和 图像计算功能等等都是通过H264库计算的。然后,只包含改变的视频中的全屏图像将被发 送,并且该图像具有很高的压缩率。最后,VNC服务器只管理事件,并且不再执行图像分析。
但是,这种方法需要完全改变TightVNC服务器应用代码的架构。此外还存在着服 务器设备级的编码持续时间相对较长的风险。对于具有2. 8GHz的双核处理器的服务器设 备来说,使用最少选项的编码会在每一个分辨率为352*288且比特率(二进制流)为每秒 150k字节的30. OHz的图像上持续十分之一秒的时间。由此,这种方法会耗费大约1秒来编 码分辨率为1280*720的图像,以便从VNC视频中读取。因此,这些方法似乎都没有有效解决在网络设备中以可接受的速度管理视频数据 传递的问题。

发明内容
就此而言,本发明旨在提供一种用于服务器向客户端终端广播视频序列的方法, 以便能够有效解决对以可接受的速度穿越网络设备的视频数据传递进行管理的问题,从而 克服上述问题。为此目的,本发明提出了一种用于服务器经由网络向客户端终端广播视频数据序 列的方法,该方法包括以下步骤在事件之后,所述客户端终端产生一个请求,将所述请求发送到所述服务器,该请求包含了针对所述客户端终端的视频序列广 播命令,所述视频序列定义了当前或“父”状态与后续或“子”状态之间的转变,每一个状态 都与一个静态的最终图像相关联,并且上述服务器包括能够存储下列内容的存储器装置每一个状态的标识符,从每一个状态开始的转变表,与视频序列相对应的压缩数据,其中该视频序列与从一种状态到另一种状态的转 变相关联,所述服务器验证与所述广播命令相关联的所述子状态是从所述双亲状态开始的 所述转变表中的已知状态,如果所述子状态是所述服务器已知的状态,并且如果保存在所述存储器装置中且 与关联于从所述双亲状态到所述子状态的转变的视频序列相对应的压缩数据可用所述服务器向所述终端广播所述压缩数据,如果所述子状态是所述服务器已知的状态,并且如果保存在所述存储器装置中且与视频序列相对应的压缩数据不可用所述服务器至少向所述终端广播与从所述双亲状态 到所述子状态的转变相关联的所述视频序列中的最后一个图像,如果所述子状态不是所述服务器已知的状态所述服务器至少向所述终端广播与 从所述双亲状态到所述子状态的转变相关联的所述视频序列中的最后一个图像。术语“事件”表示的是任何类型的事件。当然,它也可以是由用户发起的事件(例 如通过激活遥控器上的按钮),但是同样也可以是系统事件(例如连接丢失-软件或网络事 件-应用妨碍到显示)。由于本发明,已经发送的视频流不必被施以系统性的重新压缩。在这里有利地使 用缓存存储器之类的服务器存储器装置,其中该存储器装置可以保持压缩数据以及用于指 示从一个状态(双亲状态)开始已经发生的所有转变的转变表。这种方法促成了更大的视 频流流动性,并且减少了能量和资源消耗。由此,服务器首先验证子状态是否已知;实际应该指出的是,从双亲状态有可能移 动到若干不同的状态。举个例子,让我们考虑从应用中退出的情况。在这种情况下,通常后 续状态会与用户在进入应用之前看到的先前图像相对应。当然,这个先前图像也不是始终 相同的。本发明预料到,如果过去从未处理过客户端终端发送的请求,那么服务器至少会 向客户端设备发送一个包含了用户所等待的序列中的最终图像的快速答复。这样做将会处 于故障软模式,由此为用户提供满意的结果。为了显著减少服务器的编码任务,本发明设想了使用服务器的缓存存储器来保持 先前已经编码的视频序列。如果保存在缓存存储器中并与视频序列相对应的压缩数据可 用,则服务器将其广播到客户端终端。“可用数据”要么意味着该数据已经完整地保存在缓 存存储器中,要么意味着在服务器级压缩该数据所需要的时间少于在客户端终端级播放所 述数据所需要的时间。根据本发明的方法同样可以提供下列特征中的一个或几个特征,这些特征既可以 单独考虑,也可以考虑这些特征的所有技术上可行的组合。所述存储器装置有利地包含了缓存存储器,该存储器充当能在压缩视频序列之前 接收所述视频序列的排队系统,并且根据本发明的方法包括以下步骤如果所述子状态是所述服务器已知的状态,并且如果保存在所述存储器装置中且 与关联于从所述双亲状态到所述子状态的转变的视频序列压缩相对应的压缩数据不可用 则服务器验证在所述队列中是否存在所述视频序列,如果在所述队列中存在所述视频序列则所述服务器向所述终端广播与从所述双 亲状态到所述子状态的转变相关联的所述视频序列中的最后一个图像,如果在所述队列中没有所述视频序列则在预备压缩所述序列的过程中将所述序 列包含在该队列中,以及从所述服务器向所述终端广播与从所述双亲状态到所述子状态的 转变相关联的所述视频序列中的最后一个图像。非常有利的是,所述存储器装置将能够保存每一个状态的最终图像的索引,该方 法包括以下步骤
如果所述子状态是所述服务器已知的状态计算与所述视频序列中的最终图像相关联的索引,并且将计算得到的这个索引与保存在所述存储器装置中的子状态的最终图像 的索引相比较,如果两个索引不同更新所记录的最终图像的索引,并且移除所有那些与进入和 退出这个子状态的转变序列相关联的压缩数据。根据本发明的方法很有利地包括以下步骤如果所述子状态不是所述服务器已知 的状态在所述双亲状态与所述子状态之间创建的新的转变,所述转变保存在所述存储器 装置中,而所述子状态则不被修改。根据第一实施例,所述存储器装置能够存储每一个状态的最终图像索引,根据本 发明的方法包括以下步骤如果所述子状态不是所述服务器已知的状态计算与所述视频序列的最终图像相 关联的索引,以及所述服务器验证所述索引是保存在所述存储器装置中的索引,如果所述计算得到的索引是所述服务器已知的则在所述双亲状态与所述子状态 之间创建新的转变,所述转变被保存在所述存储器装置中,而所述子状态则不被修改,如果所述计算得到的索引不是所述服务器已知的则在所述双亲状态与所述子状 态之间创建新的转变以及创建新的状态,所述新状态的标识符和所述转变被保存在所述存 储器装置中。优选地,所述存储器装置包括缓存存储器,该缓存存储器充当能在压缩所述视频 序列之前接收所述视频序列的排队系统,根据本发明的方法包括以下步骤如果所述子状态不是所述服务器已知的状态则计算用于广播的所述视频序列的 大小,如果所述视频序列的大小低于预定阈值,并且如果所述视频序列尚未存在于所述 队列中或是处于压缩过程中则压缩所述视频序列,并且除了广播与从所述双亲状态到所 述子状态的转变相关联的所述视频序列的最后一个图像之外,所述服务器还向所述终端广 播与所述视频序列相关联的压缩数据,如果所述视频序列的大小超出了前述预定阈值,并且如果所述视频序列不在队列 之中或是处于压缩过程中则在预备压缩的队列中包含所述序列,并且所述服务器向所述 终端广播与从所述双亲状态到所述子状态的转变相关联的所述视频序列的最后一个图像。根据第二实施例,所述存储器装置适合用于存储每一个状态的最终图像的索引, 所述存储器装置包括一个缓存存储器,该缓存存储器充当能在压缩视频序列之前接收所述 视频序列的排队系统,所述子状态与在所述双亲状态与所述子状态之间创建新的转变相关 联,该子状态最初采用任何值,然后,根据本发明的方法包括以下步骤计算用于广播的所述视频序列的大小,如果所述视频序列的大小低于预定阈值,并且如果所述视频序列尚未处于所述队 列之中或者处于压缩过程中则压缩所述视频序列,并且除了广播与从所述双亲状态到所 述子状态的转变相关联的所述视频序列的最后一个图像之外,所述服务器还向所述终端广 播与所述视频序列相关联的压缩数据,如果所述视频序列的大小超出前述预定阈值,并且如果所述视频序列不在所述队 列中或者处于压缩过程中则在预备压缩的队列中包含所述序列,并且所述服务器向所述终端广播与从所述双亲状态到所述子状态的转变相关联的所述视频序列的最后一个图像,计算与所述视频序列的最终图像相关联的索引,并且所述服务器验证所述索引是 保存在所述存储器装置中的索引,如果所述计算得到的索引为所述服务器所知则更新所述子状态的任何值,在所 述存储器装置中保存从双亲状态到已更新的子状态的转变,而所述子状态则不被修改,如果所述计算得到的索引不为所述服务器所知则更新所述随机子状态的任何 值,并且创建新的子状态,在所述存储器装置中保存所述新状态的标识符以及双亲状态与 子状态之间的转变。根据第一变体,所述存储器装置能够存储变量,该变量指示最后使用所存储的压 缩数据时的日期,根据本发明的方法包括用于释放所述存储器装置中的空间的步骤,所述 释放步骤是通过按照优先级顺序删除显示了最早的最后使用日期的压缩数据来执行的。根据第二变体,根据本发明的方法包括释放所述存储器装置中的空间的步骤,所 述释放步骤是根据压缩所述存储器装置中保存的压缩数据所需要的时间来执行的。一些压缩数据可以保存在位于所述客户端终端的存储器装置中。前述服务器对数据的压缩可以根据标准H264来执行。该数据压缩可以仅仅在视频序列图像中经过修改的区域里进行。


本发明的其他特性和优点将会从在下文参考附图给出的描述中清楚显现,其中所 述描述是作为指导给出,它并不具有任何限制作用图1是用于实施根据本发明的广播方法的网络配置的简化示意图,图2示出的是根据本发明的方法中包含的不同步骤,图3示出的是在管理根据本发明的方法中所使用的压缩过程中包含的不同步骤,图4示出的是在根据本发明的方法中使用的根据视频序列大小来管理视频序列 的过程中包含的不同步骤。在所有附图中,公共部件将会共用相同的参考数字。
具体实施例方式图1是用于实施根据本发明的广播方法的网络配置100的简化示意图。这种配置 100包括经由网络2链接到客户端终端3的服务器1,从用户界面5进行广播的装置4,遥控器8。例如,服务器1可以是计算机,客户端终端3可以是数字电视解码器。网络2能使 视频数据(更一般的情况是视频/音频数据)在服务器1与客户端终端3之间传播。举例 来说,广播装置4是电视。服务器1包括它自己的广播装置6,例如计算机监视器,缓存型存储器7,
排队缓存存储器11,程序存储器33,尤其包括使用H264、MPEG2、MPEG等等编码的压缩器,TightVNC类型的应用。用户可以借助遥控器8来与用户界面5交互。这些用户交互(或事件)由客户端 终端3接收,该终端则将这些用户事件产生的请求13传送到服务器1 ;一旦客户端终端3创 建了请求消息13,那么该终端会将其发送到服务器1。请求消息13则经由终端3与服务器 1之间的网络2传播。客户端终端3发送的请求消息13包括不同的信息。该信息能使服务器1处理该 消息13中包含的数据,并且向客户端终端3发送一个响应消息22。我们稍后将会转到该消 息22的内容。请求消息13包含了服务器1必须回应的地址,其中该地址通常是终端3的 IP地址,此外,该请求消息还包括在用户事件之后将要执行的命令24。当用户事件导致产生动画时,服务器1可以单独编码动画和掩码;该掩码对应的 是图像的背景,该背景则会在动画期间保持固定。举例来说,通过在发送功能级将TightVNC 应用与协议H264相结合,服务器1只会发送在用户事件之后那些发生变化的部分以及该序 列应被置入的位置。这个单独编码意味着不必对在动画期间显示的整个图像进行编码。然 后,服务器1仅仅编码动画本身,而不会为了包含动画的显示中的每个图像而将整个图像 重新编码至每一个显示。客户端终端3接收的视频数据由客户端终端3根据事件来重建,也就是说,客户端 终端3允许用户依照可能事件树来进行导航。例如,用户界面5可以采用菜单9的形式来 呈现,用户则通过借助遥控器操作菜单9的按钮10来进行导航。这些按钮10的操作形成 事件,该操作可以采用与视频序列相对应的小型动画的形式来表现。例如,这些动画可以在 激活按钮10、移经按钮10的过程中呈现,或者呈现在动画的屏幕背景上。这些类型的动画 是根据用户事件显示的视频序列。但是,这些动画通常只对用户界面5显示的图像12中的 很小一部分进行修改,而图像12的剩余部分则不会改变。原则上,用户事件(遥控器8上的行为)必须产生视频序列的发送处理。根据本发明的方法使用了一个经过编程的逻辑控制器34,该控制器位于缓存存储 器7中,并且是通过学习来运作的。通过参考图2 图4,我们可以更详细地看到,该逻辑控 制器34的状态图将被逐步创建一旦触发了事件(也就是说,一旦遥控信号产生了请求), 状态即会改变。状态之间的联系是通过用户事件和视频序列来表征的。举例来说,用户事件对应 于从当前状态(“双亲状态”)移动到后续状态(“子状态”)的遥控信号,并且视频序列是 介于两种状态之间的过渡序列。缓存存储器7能够保持一系列状态,其中每一个状态都是通过如下来表征的标识符号码,最终图像的索引编制(每一个状态实际包含一个静态的最终图像),从该状态开始的已知转变的表格。通过对图像执行索引编制,可以通过为其给予标签来识别该图像索引编制的目 的是确定两个图像是否不同。能够实现这种索引编制的方法有很多种。作为示例,我们引用的是包含了直方图颜色分析、纹理分析、形状分析或空间分析的方法。缓存存储器7同样能够在其存储器中保持一系列转变,并且其中每一种转变都是通过如下来表征的与介于两种状态之间的视频序列相对应的压缩数据,最后一次使用的时间。用于服务器1经由网络2来向客户端终端3广播视频数据的方法包括客户端终 端3在遥控器上发生了行为事件之后产生请求13的第一步骤。该请求13包含了向客户端 终端3广播视频序列的命令,所述视频序列创建了当前的双亲状态与后续子状态之间的转变。参考图2,根据步骤101,遥控事件导致在服务器1等级存在一个视频流。根据步骤102,服务器1验证在从双亲状态开始的转变表中,与请求13中包含的广 播命令相关联的子状态是一个已知状态(所述表格包含在服务器的缓存存储器7中)。如果子状态是服务器1已知的状态,那么下一个步骤是103包含关于压缩进度的 管理这个步骤103参考图3而被更详细描述。根据步骤201,在这里将会通过检查来了解在缓存存储器7中是否可以得到保存 在缓存存储器7中且与关联于从双亲状态到子状态的转变的视频序列压缩相对应的压缩 数据。可用数据被视为意味着该数据已经完整地保存在缓存存储器7中,或者在服务器1级 实现该数据压缩所需要的时间短于在客户端终端3级播放所述数据所需要的时间。换句话 说,数据未必是完全压缩的,当完成压缩所需要的时间短于读取序列所需要的全部时间时, 这时会开始将其广播到客户端终端3。如果压缩数据可用,那么根据步骤204,与关联于从双亲状态到子状态的转变的视 频序列相对应的这个数据将会由服务器1广播到终端3。对于系统所要使用的缓存存储器 7来说,这是有利的,以便保存与用户已经请求的转变相对应的数据。应该指出的是,根据步 骤104,服务器1同样会将视频序列中的最后一个图像发送到终端3 这个最终图像是到达 服务器1的入口的图像。如果压缩数据不可用,则该处理移动到步骤202,该步骤202包括服务器1通过检 查队列11来了解视频序列存在与否。该视频序列会在编码之前被置入队列。根据步骤203,如果队列11中没有视频序列,则在预备压缩的过程中将该序列置 入队列11 然后,该处理移动到步骤104,所述步骤104则包括由服务器1向终端3广播与 从双亲状态到子状态的转变相关联的视频序列中的最后一个图像。因此,这种模式是一个 故障软广播模式,它仅仅包括将该序列中的最后一个图像传送到用户。从与请求13中包含 的广播命令相关联的子状态是从双亲状态开始的转变表中的已知状态的意义上讲,先验观 察是,对于视频序列来说,至少处于队列11中是合理的但是,如果在尝试添加视频序列的 时候队列11已满,那么视频序列未必处于队列11中。如果视频序列处于队列11中,但是所预期的压缩结束不允许广播压缩数据,那么 该处理同样直接移动到步骤104,其中该步骤包括服务器1向终端3广播与从所述双亲状态 到所述子状态的转变相关联的视频序列中的最后一个图像。因此,该处理同样处于故障软 模式,但由于该序列已经存在,因此,将视频序列插入队列11是毫无理由的。在包括有系统地将视频序列中的最后一个图像从服务器1发送到终端3的步骤104之后,该处理移动到步骤105,在此期间将会计算用于视频序列中的最终图像的索引 根据步骤106,服务器1将计算得到的索引与在缓存存储器7中注册并且与双亲状态和子状 态之间的转变相对应的压缩数据的最终图像索引(实际上这是保存在缓存存储器7中的子 状态的最终图像索引)相比较。如果服务器1检测到两个索引之间的变化,那么它会更新子状态(步骤107);换 句话说,它会更新已注册的最终图像的索引,并且废止与进入和退出该状态的变换序列相 关联的所有压缩数据(这些序列被视为是过时的)。根据步骤108,当视频序列到达服务器 1的入口时,它会被放在队列11中,以便进行压缩。在步骤107和108的范例中,有两点是 应该注意的在这里并没有创建新状态(没有新标识符),该状态仅仅会被更新(改变与其他状 态的链接);这种重新编码需要将数据保存在缓存存储器11中,并且需要保持视频序列捕获, 以便在证明后者过时的情况下重新对其进行编码。如果子状态不是服务器1已知的状态,那么该处理移动到步骤109,其中该步骤是 一个包含了计算与视频序列的最终图像相关联的索引(也就是缓存存储器7中存储的子状 态的最终图像的索引)的步骤。根据步骤110,服务器1检查计算得到的索引是否即为保存在缓存存储器7中的索 引。根据步骤111,如果计算得到的索引为服务器1所知,则服务器1仅仅创建双亲状 态与子状态之间的新的转变,所述转变被保存在缓存存储器7中,而现有子状态则不改变。 这是最终图像索引与已经处于存储器中的状态索引相对应的未知用户事件的一个示例。由 此,与逻辑控制器34相关联的状态图表将被结合;换句话说,有若干条可能的路径到达同 一子状态,并且该状态的最终图像的索引由此已经为服务器1所知。然后,该处理移动到步骤112,其中该步骤包括根据视频序列的大小来管理视频序 列,在这里参考图4来对该步骤进行更详细描述。步骤301包括评估正在广播的视频序列的大小。根据步骤302,视频序列的大小将会与预定阈值相比较,并且通过检查来确定该视 频序列是已经处于队列11之中还是处于压缩过程中。根据步骤303,如果视频序列的大小低于前述预定阈值,并且如果视频序列既不在 队列11中也不在压缩过程中,那么服务器1将会发起小型视频序列的压缩处理,然后,除了 视频序列的最终图像之外(步骤113),它还会向终端3广播与该序列相关联的压缩数据。 允许发起视频序列压缩的条件是用户读取不处于故障软模式;换句话说,序列压缩时间必 须短于所述序列的读取时间。当然,根据步骤304来将视频发送到用户的处理可以逐步进 行,这是因为序列是经过编码的,这种编码由G0P(图像组)进行,其中经过压缩的GOP数据 逐步发送。根据步骤305,如果视频序列的大小超出前述预定阈值,并且如果视频序列不在所 述队列或是压缩过程中,那么服务器1将该序列添加(或者尝试添加,因为在队列中未必有 位置)到预备压缩的队列11中,以便进行后续广播。因此,如果视频过重或者如果压缩器 繁忙,则视频压缩任务会在加入压缩队列11的时候被注册(在这种情况下,编码是在并行的线程或轻量进程中进行的)。在这种情况下,参考步骤113,服务器1仅仅将视频序列中的最终图像广播给终端 3。对于包含了根据视频序列大小来执行管理的步骤112来说,关于这个步骤的最有 趣的事情是其有助于短视频编码以及即时传输这些操作是为允许它的视频(短视频)而 不是其他视频(长视频)连续执行的。由于长视频的编码时间相当长,因此,对这些视频来 说,较为优选的是将其放在队列11中,而对最后一个图像来说,较为优选的是在故障软模 式中快速转移该图像。实际上,如果用户必须等待编码结束,以便显示长视频,那么工效设 计甚至会受到更大损害,对用户来说,较为优选的是在下次访问相关联的转变的时候从编 码中受益。如早先所述,最终图像索引与缓存存储器中的状态索引相对应的事实表明,这是 如步骤114所示的将图表结合在一起的情形。如果计算得到的索引不为服务器所知,则该处理直接进行到包含了根据视频序列 的大小来管理视频序列的步骤112,以及包含了将相同的最终图像发送到早先描述的步骤 112和113的步骤113。这里的情况是子状态完全未知;实际上,用户事件是未知的,并且最终图像的索引 同样是未知的。因此,步骤115对应的是创建新的子状态以及双亲状态与子状态之间的新 转变,新的子状态的标识符则保存在缓存存储器7中。当用于与所有压缩数据一起对逻辑控制器34进行存储的缓存存储器7填满时,这 时必须删除数据。一种清空缓存存储器7的可行方法是依照如下所示的规则进行的保持逻辑控制器34的结构,换句话说,状态是不会被删除的。所能移除的仅仅是 压缩视频转变。由此,该方法是根据由逻辑控制器34的结构占用的空间与压缩视频的大小 相比可以忽略的原则来工作的。按照优先级的顺序来选择删除未使用时间最长的压缩转变视频;为此目的,每一 个转变都具有一个“最后一次使用日期”字段。在每一次经过转变时,其最后一次使用日期 都会更新。如果通过删除最早视频释放的空间不足,则搜索当前最早的视频,然后删除该视 频。该处理将会重复进行,直至释放出足够的空间。当然,本发明并不局限于所描述的实施例。特别地,本发明已在视频数据的范例中进行描述,但是将其同样地应用于视频/ 音频数据也是可以接受的。由此应该指出的是,使用其他规则同样可以释放缓存存储器中的空间;因此,别 的参数可以是编码时间。实际上,如果不必过于频繁地编码沉重的序列(也就是很大的序 列),那么有可能会是非常有趣的。由此可以决定优先保持压缩最长的视频序列。很明显, 这种行动方式可以与考虑最后一次使用日期的规则相关联。同样应该指出的是,在这里也可以有利地使用在上述实施例中未使用的用户终端 的缓存存储器。由此,别的可能解决方案包括将逻辑控制器留在服务器上,而后者能够将编 码的数据记录在自身缓存存储器以及终端的缓存存储器中。此外,根据参考图2描述的实施例,在开始压缩之前需要计算最终图像的索引。如果我们考虑该视频是流式传输的,那么由于最终图像处于视频序列的末端,因此,这种状况很容易导致时间损失。由此,根据本发明,在计算最终图像的索引之前同样可以开始管理视频压缩(步骤112)。在索引测试之前开始压缩意味着不知道所述转变所指向的子状态。由此,一种解 决方案是使用固定在任何值的子状态参数来创建一个转变,一旦知道了这个值,那么所述 值将被更新。最终,任何装置都可以用等价的装置替换。
权利要求
一种用于服务器经由网络向客户端终端广播视频数据序列的方法,该方法包括以下步骤在事件之后,所述客户端终端产生(101)一个请求,将所述请求发送(101)到所述服务器,该请求包含了针对所述客户端终端的视频序列广播命令,所述视频序列定义了当前或“父”状态与后续或“子”状态之间的转变,每一个状态都与一个静态的最终图像相关联,并且上述服务器包括能够存储下列内容的存储器装置每一个状态的标识符,从每一个状态开始的转变表,与视频序列相对应的压缩数据,其中该视频序列与从一种状态到另一种状态的转变相关联,所述服务器验证(102)与所述广播命令相关联的所述子状态是从所述双亲状态开始的所述转变表中的已知状态,如果所述子状态是所述服务器已知的状态,并且如果保存在所述存储器装置中且与关联于从所述双亲状态到所述子状态的转变的视频序列相对应的压缩数据可用所述服务器向所述终端广播(103)所述压缩数据,如果所述子状态是所述服务器已知的状态,并且如果保存在所述存储器装置中且与视频序列相对应的压缩数据不可用所述服务器至少向所述终端广播(104)与从所述双亲状态到所述子状态的转变相关联的所述视频序列中的最后一个图像,如果所述子状态不是所述服务器已知的状态所述服务器至少向所述终端广播(113)与从所述双亲状态到所述子状态的转变相关联的所述视频序列中的最后一个图像。
2.根据前述权利要求的方法,其中所述存储器装置包括缓存存储器,该缓存存储器充 当能在压缩视频序列之前接收所述视频序列的排队系统,所述方法包括以下步骤(103)如果所述子状态是所述服务器已知的状态,并且如果保存在所述存储器装置中且与 关联于从所述双亲状态到所述子状态的转变的视频序列压缩相对应的压缩数据不可用 (201)则服务器验证(202)在所述队列中是否存在所述视频序列,如果在所述队列中存在所述视频序列则所述服务器向所述终端广播(104)与从所述 双亲状态到所述子状态的转变相关联的所述视频序列中的最后一个图像,如果在所述队列中没有所述视频序列则在预备压缩所述序列的过程中将所述序列包 含(203)在该队列中,以及从所述服务器向所述终端广播(104)与从所述双亲状态到所述 子状态的转变相关联的所述视频序列中的最后一个图像。
3.根据前述权利要求之一的方法,其中所述存储器装置能够保存每一个状态的最终图 像的索引,所述方法包括以下步骤如果所述子状态是所述服务器已知的状态计算(105)与所述视频序列中的最终图像 相关联的索引,并且将计算得到的这个索引与保存在所述存储器装置中的子状态的最终图 像的索引相比较(106),如果两个索引不同更新(107)所记录的最终图像的索引,并且移除所有那些与进入 和退出这个子状态的转变序列相关联的压缩数据。
4.根据前述权利要求之一的方法,包括以下步骤如果所述子状态不是所述服务器已知的状态在所述双亲状态与所述子状态之间创建新的转变(111,115),所述转变保存在 所述存储器装置中,而所述子状态则不被修改。
5.根据前述权利要求的方法,其中所述存储器装置能够存储每一个状态的最终图像索 弓丨,所述方法包括以下步骤如果所述子状态不是所述服务器已知的状态计算(109)与所述视频序列的最终图像 相关联的索引,以及所述服务器验证所述索引是保存在所述存储器装置中的索引,如果所述计算得到的索引是所述服务器已知的则在所述双亲状态与所述子状态之间 创建(111)新的转变,所述转变被保存在所述存储器装置中,而所述子状态则不被修改,如果所述计算得到的索引不是所述服务器已知的则创建(115)新的状态以及在所述 双亲状态与所述子状态之间创建新的转变,所述新状态的标识符和所述转变被保存在所述 存储器装置中。
6.根据前述权利要求之一的方法,其中所述存储器装置包括缓存存储器,该缓存存储 器充当能在压缩所述视频序列之前接收所述视频序列的排队系统,所述方法包括以下步 骤如果所述子状态不是所述服务器已知的状态则计算用于广播(301)的所述视频序列 的大小,如果所述视频序列的大小低于预定阈值,并且如果所述视频序列尚未存在于所述队列 中或是处于压缩过程中则压缩(303)所述视频序列,并且除了广播与从所述双亲状态到 所述子状态的转变相关联的所述视频序列的最后一个图像之外,所述服务器还向所述终端 广播(304)与所述视频序列相关联的压缩数据,如果所述视频序列的大小超出了前述预定阈值,并且如果所述视频序列不在队列之中 或是处于压缩过程中则在预备压缩的队列中包含(305)所述序列,并且所述服务器向所 述终端广播与从所述双亲状态到所述子状态的转变相关联的所述视频序列的最后一个图 像。
7.根据权利要求4的方法,其中所述存储器装置适合用于存储每一个状态的最终图像 的索引,所述存储器装置包括一个缓存存储器,该缓存存储器充当能在压缩视频序列之前 接收所述视频序列的排队系统,所述子状态与在所述双亲状态与所述子状态之间创建新的 转变相关联,该子状态最初采用任何值,然后,所述方法包括以下步骤计算用于广播的所述视频序列的大小,如果所述视频序列的大小低于预定阈值,并且如果所述视频序列尚未处于所述队列之 中或者处于压缩过程中则压缩所述视频序列,并且除了广播与从所述双亲状态到所述子 状态的转变相关联的所述视频序列的最后一个图像之外,所述服务器还向所述终端广播与 所述视频序列相关联的压缩数据,如果所述视频序列超出前述预定阈值,并且如果所述视频序列不在所述队列中或者处 于压缩过程中则在预备压缩的队列中包含所述序列,并且所述服务器向所述终端广播与 从所述双亲状态到所述子状态的转变相关联的所述视频序列的最后一个图像,计算与所述视频序列的最终图像相关联的索引,并且所述服务器验证所述索引是保存 在所述存储器装置中的索引,如果所述计算得到的索引为所述服务器所知则更新所述子状态的任何值,在所述存储器装置中保存从双亲状态到已更新的子状态的转变,而所述子状态则不被修改,如果所述计算得到的索引不为所述服务器所知则更新所述随机子状态的任何值,并 且创建新的子状态,在所述存储器装置中保存所述新状态的标识符以及双亲状态与子状态 之间的转变。
8.根据前述权利要求之一的方法,其中所述存储器装置能够存储变量,该变量指示最 后使用所存储的压缩数据时的日期,所述方法包括用于释放所述存储器装置中的空间的步 骤,所述释放步骤是通过按照优先级顺序删除显示了最早的最后使用日期的压缩数据来执 行的。
9.根据前述权利要求之一的方法,包括释放所述存储器装置中的空间的步骤,所述释 放步骤是根据压缩所述存储器装置中保存的压缩数据所需要的时间来执行的。
10.根据前述权利要求之一的方法,其特征在于压缩数据的一部分被保存在位于所述 客户端终端的存储器装置中。
11.根据前述权利要求之一的方法,其特征在于所述服务器对数据的压缩是根据标 准H264执行的。
12.根据前述权利要求之一的方法,其特征在于数据压缩可以仅仅在视频序列图像 中经过修改的区域里进行。
全文摘要
本发明涉及一种用于服务器向客户端终端广播视频序列的方法,其中包括以下步骤在事件之后,客户端终端产生(101)一个请求,将所述请求发送(101)到所述服务器,该请求包含了视频广播命令,所述视频定义了双亲状态与子状态之间的转变,每一个状态都与一个静态的最终图像相关联,并且服务器包括存储装置,用于存储每一个状态的标识符,从每一个状态开始的转变表,与视频序列相对应的压缩数据,其中该视频序列与从一种状态到另一种状态的转变相关联;服务器验证(102)与广播命令相关联的子状态是从所述双亲状态开始的所述转变表中的已知状态,如果所述子状态是所述服务器已知的状态,并且如果保存的且与关联于转变的视频序列相对应的压缩数据可用向所述终端广播(103)所述压缩数据;如果所述子状态是所述服务器已知的状态,并且如果保存的且与视频序列相对应的压缩数据不可用至少向所述终端广播(104)与转变相关联的所述视频序列中的最后一个图像;如果所述子状态不是已知的状态至少向所述终端广播(113)所述视频序列中的最后一个图像。
文档编号H04N7/24GK101816176SQ200880106231
公开日2010年8月25日 申请日期2008年7月31日 优先权日2007年9月10日
发明者J-P·莫拉尔, O·彼得坎, S·维亚勒, V·加尔捷 申请人:萨基姆通信公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1