流式图像系统和方法转让专利

申请号 : CN200610101993.7

文献号 : CN1901676B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 小肯尼斯·J·埃雷斯万勇登素奇蒙·斯维斯顿

申请人 : 国际商业机器公司

摘要 :

公开了管理交互式流式图像系统的系统、方法和介质。更具体地说,公开了产生图像帧、对图像帧编码和把图像帧传送给交互式客户机的硬件和/或软件。一个实施例提供一种把图像从服务器流式传输给客户机的方法。实施例可包括通过网络从客户机接收客户机信息,并根据接收的客户机信息产生新的图像帧。实施例还可包括比较新的图像帧与前一图像帧,并根据新的图像帧和前一图像帧之间的比较,设定新的压缩级别。实施例还可包括根据新的压缩级别对新的图像帧编码,并通过网络,把编码的新图像帧和新的压缩级别的指示传送给客户机。

权利要求 :

1.一种把图像从服务器流式传输给客户机的方法,所述方法包括:所述服务器通过网络从客户机接收客户机信息;

所述服务器根据接收的客户机信息产生新的图像帧;

所述服务器确定新的图像帧的初始压缩级别;

所述服务器比较新的图像帧与前一图像帧;

所述服务器根据初始压缩级别和新的图像帧与前一图像帧之间的比较设定新的压缩级别;和所述服务器根据新的压缩级别对新的图像帧编码,并且所述服务器通过网络把编码的新图像帧和新的压缩级别的指示传送给客户机;

其中所述服务器根据初始压缩级别和新的图像帧与前一图像帧之间的比较设定新的压缩级别包括:确定新的图像帧和前一图像帧之间的内容变化;

当图像之间的内容变化指示用户的视点可能移动,从而用户可能容忍较低的图像质量时,对新的图像帧进行平滑试探,增大压缩级别,当图像之间内容变化的缺失指出用户的视点可能是静止的,从而用户可能要求较高的图像质量时,对新的图像帧进行平滑试探,降低压缩级别;

其中所述平滑探试通过一系列的压缩质量在初始压缩级别和目标压缩级别之间根据压缩级别是增大还是降低,沿着适当的方向递增或递减压缩级别;

根据平滑探试设定新的压缩级别。

2.按照权利要求1所述的方法,其中所述客户机信息包括客户机位置信息,客户机方向信息或客户偏好中的一个或多个的指示。

3.按照权利要求1所述的方法,其中比较新的图像帧与前一图像帧包括比较新的图像帧和前一图像帧的压缩大小、使用这些图像帧的位图的向量处理、使用索引向量处理算法和使用场景跟踪算法中的一个或多个。

4.按照权利要求1所述的方法,其中所述服务器根据新的压缩级别对新的图像帧编码包括访问与新的压缩级别相关的查寻表。

5.一种交互式流式图像系统,所述系统包括:

通信模块,所述通信模块适于从客户机接收客户机信息,所述通信模块还适于把编码图像帧传送给客户机;

与所述通信模块通信的内容发生器,所述内容发生器适于根据接收的客户机信息产生新的图像帧;

与所述内容发生器通信的内容变化检测器,所述内容变化检测器适于比较新的图像帧与前一图像帧;

与所述内容变化检测器通信的平滑模块,所述平滑模块适于确定初始压缩级别,并根据初始压缩级别和新的图像帧与前一图像帧之间的比较,响应于新的图像帧与前一图像帧之间的差异,所述平滑模块增大压缩级别,响应于新的图像帧与前一图像帧之间无差异,所述平滑模块降低压缩级别;在增大和降低压缩级别时对新的图像帧进行平滑探试,其中所述平滑探试通过一系列的压缩质量在初始压缩级别和目标压缩级别之间根据压缩级别是增大还是降低,沿着适当的方向递增或递减压缩级别;根据平滑探试设定新的压缩级别;和与所述平滑模块和通信模块通信的内容编码器,所述内容编码器适于根据选择的压缩级别对新的图像帧编码。

6.按照权利要求5所述的系统,还包括与所述内容编码器通信的一个或多个乘数查寻表,所述一个或多个乘数查寻表均与压缩级别相关联。

7.按照权利要求5所述的系统,其中所述客户机信息包括客户机位置信息、客户机方向信息或客户偏好中的一个或多个的指示。

8.按照权利要求5所述的系统,其中所述内容变化检测器适于使用比较算法、向量处理算法、索引向量处理算法或场景跟踪算法中的一个或多个。

说明书 :

流式图像系统和方法

技术领域

[0001] 本发明属于流式图像系统的领域。 更具体地说,本发明涉及管理交互式流式图像系统,把图像流式传输给客户计算机系统的系统、方法和介质。

背景技术

[0002] 对把图像或其它内容从服务器流式传输给多个客户机的能力的需求快速增长。利用流式图像的多媒体应用日益普及,包括视频游戏、导航软件、流式电影或视频等。
但是,这些应用通常是网络资源密集的,当内容提供商使用它们分发内容,尤其是向大量用户分发内容时,会导致带宽瓶颈和网络减速。 随着流式图像应用的日益普及,与它们相关的网络性能问题将被恶化。
[0003] 为了减轻流式图像内容对网络的影响,在传输之前,内容提供商通常压缩他们的图像。 从而在向用户显示图像之前,客户机系统必须在收到图像时就对图像解压缩。根据压缩的级别,通过利用压缩能够显著降低网络通信量。 用于视频图像的一种压缩方案是Motion-JPEG,它通过按照JPEG格式对每一帧加密,把联合图像专家组(JPEG)数字图像压缩标准扩展到视频。 JPEG组创建了ISO/IEC国际标准10918-1 ITU-T建议书T-81(下面称为‘JPEG’),以创建一种解码/编码标准。 JPEG和Motion-JPEG是有损压缩标准,从而在压缩过程中,信息被丢失。 Motion-JPEG提供良好的每帧压缩级别,但是其一些压缩步骤,例如Huffman(霍夫曼)编码并不总是必需的,并且会降低性能。 [0004] 运动图像专家组(MPEG)创建了另一系列的压缩标准,包括MPEG-1、MPEG-2和MPEG-4(分别为ISO/IEC国际标准11172、13818和14496)。 MPEG工作组设计了MPEG标准,以实现多媒体流式传输, 并且利用基于块的运动补偿预测(MCP)来帮助压缩。 对于许多应用来说,MPEG改进Motion-JPEG的性能。 但是,对于交互式流式图像应用来说,MPEG不是最佳的。 MPEG要求服务器产生多帧电影以实现良好的压缩级别,使其不太适用于具有逐帧交互作用的交互式应用。 相反,为把可预测的内容,比如电影或者其它视频流式传输给客户机或者其它用户设备而设计和优化MPEG。 [0005] 交互式流式图像系统向希望把内容从服务器分发给多个客户机的内容提供商提出了重大挑战。 交互式流式图像系统一般接收每帧的用户输入,使得根据最新的用户信息定制每个图像帧。 例如,基于地图的应用可根据用户位置和方向提供图像帧,使得该应用可创建向用户显示在该位置和方向他们会看到什么的图像。 在另一例子中,显示在汽车之后的事物的虚拟视图的应用可使图像基于汽车的当前位置、方向和速度。 因为每一帧必须根据新的信息重新计算,MPEG不提供有效的方法,因为当处理单帧时,它不能获得其最佳的压缩率。 类似地,当和交互式流式图像系统一起使用时,Motion-JPEG并不带来任何优点,因为它应用对于每个图像帧来说可能资源过于密集的压缩方法。 [0006] 于是,需要一种管理交互式流式图像系统的有效机制。 当内容提供商希望向多个客户机系统提供交互式图像内容时,更需要这样的机制。

发明内容

[0007] 管理交互式流式图像系统的系统、方法和介质解决上述大部分问题。 一个实施例提供一种把图像从服务器流式传输给客户机的方法。 实施例一般可包括通过网络从客户机接收客户机信息,根据接收的客户机信息产生新的图像帧。 实施例还可包括比较新的图像帧与前一图像帧,并根据新的图像帧与前一图像帧之间的比较,设定新的压缩级别。 实施例还可包括根据新的压缩级别对新的图像帧编码,并通过网络把编码的新图像帧和新的压缩级别的指示传送给客户机。 另一实施例可包括确定新的图像帧和前一图像帧之间的内容变化,对新的图像帧进行平滑探试,以降低质量,并根据平滑探试设定新的压缩级别。 另一实施例可包括确定 在新的图像帧和前一图像帧之间没有内容变化,对新的图像帧进行平滑探试,以提高质量,并根据平滑探试设定新的压缩级别。 [0008] 另一实施例提供一种机器可读介质,包含当在数据处理系统中执行时可用于使系统执行管理交互式流式图像系统的一系列操作的指令。 所述一系列操作一般包括通过网络从客户机接收客户机信息,根据接收的客户机信息产生新的图像帧。 所述一系列操作还可包括比较新的图像帧与前一图像帧,并根据新的图像帧与前一图像帧之间的比较,设定新的压缩级别。 所述一系列操作还可包括根据新的压缩级别对新的图像帧编码,并通过网络把编码的新图像帧和新的压缩级别的指示传送给客户机。 另一实施例可包括确定新的图像帧和前一图像帧之间的内容变化,对新的图像帧进行平滑探试,以降低质量,并根据平滑探试设定新的压缩级别的一系列操作。 另一实施例可包括确定在新的图像帧和前一图像帧之间没有内容变化,对新的图像帧进行平滑探试,以提高质量,并根据平滑探试设定新的压缩级别的一系列操作。
[0009] 一个实施例提供一种交互式流式图像系统。 所述系统一般可包括从客户机接收客户机信息并把编码图像传送给客户机的通信模块。 所述系统一般还可包括根据接收的客户机信息产生新的图像帧的内容发生器,和比较新的图像帧与前一图像帧的内容变化检测器。 该系统一般还可包括根据新的图像帧与前一图像帧之间的比较选择新的压缩级别的平滑模块,和根据选择的压缩级别对新的图像帧编码的内容编码器。 附图说明
[0010] 参考附图,根据下面的详细说明,本发明的其它目的和优点将变得明显,附图中,同样的附图标记表示类似的部件:
[0011] 图1根据一个实施例,描述把图像从服务器流式传输给多个客户机的系统的环境;
[0012] 图2根据一个实施例,描述图1的流式图像系统的客户机的结构; [0013] 图3根据一个实施例,描述产生、编码和传送新的图像帧的流程图的一个例子;
[0014] 图4根据一个实施例,描述接收用户输入、和接收并向用户显示图像帧的流程图的一个例子;
[0015] 图5根据一个实施例,描述对图像帧编码和解码的流程图的一个例子。 具体实施方式
[0016] 下面是在附图中描述的本发明的例证实施例的详细说明。 例证的实施例如此详细以便清楚地表达本发明。 但是,提供的大量细节并不意图限制实施例的预期变化;相反,本发明覆盖落入由后附的权利要求限定的本发明的精神和范围内的所有修改、等同和替换。 下面的详细说明目的是使这样的实施例对本领域的普通技术人员是显而易见的。
[0017] 公开了管理交互式流式图像系统的系统、方法和介质。 更具体地说,公开了产生图像帧、对图像帧编码和把图像帧传送给交互式客户机的硬件和/或软件。 一个实施例提供一种把图像从服务器流式传输给客户机的方法。 实施例可包括通过网络接收来自客户机的客户机信息,并根据接收的客户机信息产生新的图像帧。 实施例还可包括比较新的图像帧与前一图像帧,并根据新的图像帧和前一图像帧之间的比较,设定新的压缩级别。 实施例还可包括根据新的压缩级别对新的图像帧编码,并通过网络,把编码的新的图像帧和新的压缩级别的指示传送给客户机。
[0018] 公开的实施例提供一种管理交互式流式图像系统的方法和系统。 在公开的实施例中,服务器可根据从客户机接收的客户机信息,对每帧流式图像产生新的图像帧。通过比较新的图像帧与前一图像帧,公开的系统可有利地确定各帧之间内容是否已被改变。 根据图像帧之间的差异,公开的系统可调整将被传送给客户机的编码图像帧的压缩级别。 如果在帧之间内容变化,则公开的系统可提高压缩级别,降低传输图像帧所需的带宽。 类似地,如果在帧之间内容没有变化,则公开的系统可降低压缩级别,提高最终的图像的质量。 和观看静态图像的用户相比,观看快速变化的内容的用户可能需要较低的图像质量。 公开的系统还可有利地使用平滑探试来平滑压缩级别之间的过渡,降低对观看质量的影响。 因 此,公开的系统可提供在保持用户可接受的图像质量的同时,根据用户与系统的交互作用降低流式图像系统所需的带宽的方法。
[0019] 虽然下面参考硬件和/或软件的特定配置,说明了具体实施例,不过本领域的技术人员会认识到利用其它基本等同的硬件和/或软件系统可有利地实现本发明的实施例。
[0020] 现在参见附图,图1根据一个实施例描述了把图像从服务器流式传输给多个客户机的系统的环境。 在所描述的环境中,交互式图像流式系统100包括通过网络104连接的服务器102和一个或多个客户机106。 客户机106可通过网络104把客户机信息传送给服务器102。 服务器102随后可根据客户机信息产生新的图像帧。 在服务器102产生新的图像帧之后,它可以规定的压缩级别对图像帧编码,并把编码图像帧和用于对图像帧编码的压缩级别的指示传送给客户机106。 客户机106随后可根据压缩级别对图像帧解码,并向用户显示图像。 利用交互式图像流式系统100,客户机106和服务器102从而可根据每个周期的客户机信息,共同产生流式图像流的每个图像帧。 交互式图像流式系统100可根据客户机信息、连续图像之间的差异和其它信息,有利地选择恰当的压缩级别(后面将更详细地说明),这会导致交互式图像流式系统100中带宽和处理的更有效使用。 [0021] 服务器102、一个或多个客户机106以及它们的任意或者全部部件可在通用或专用计算机系统,例如个人计算机、工作站、服务器、大型计算机、笔记本式或膝上型计算机、写字板PC、桌上型计算机、便携式计算机系统、PDA、机顶盒、移动电话机、无线设备等中的一个或多个上运行。 在一个实施例中,该计算机系统可包括中央处理器(CPU)和相关的易失性、非易失性存储器(包括随机存取存储器(RAM)和基本输入/输出系统只读存储器(BIOS ROM))、系统监视器、键盘、一个或多个软盘驱动器、CD-ROM驱动器、硬盘存储器驱动器(也称为“硬驱动器”或“硬盘驱动器”)、诸如鼠标之类的指示装置和可选的网络接口适配器,通过使用用于将这些组件电连接在一起的主板或者系统平台,所有这些被电连接。 在一个实施例中,服务器102可以是国际商用机器公司 (IBM )eServer或者具有执行软件的一个或多个处理器或者处理器线程、和/或与数据存储装置(比如RAM、只读存储器(ROM)、闪速存储器、光盘驱动器、硬盘驱动器等)耦接的一个或多个状态机的类似服务器。 在一个实施例中,客户机106可以是具有与数据存储装置耦接的处理器及用户输入和输出装置比如小键盘和显示屏的无线设备。
[0022] 网络104可以是任意类型的数据通信通道,或者数据通信通道的任意组合,例如因特网、企业内部网、LAN、WAN、以太网、无线网络等。 当位于中心的服务器102向多个分布式客户机106传送流式图像内容时,因特网或其它公共网络尤其可用作网络104,因为这便于服务器102和客户机106之间的通信。 一些或全部客户机106可通过无线网络104与因特网104(和服务器102)通信。 但是本领域的技术人员会认识到利用任意类型的数据通信通道,可实现这里描述的发明。
[0023] 服务器102可包括诸如通信模块110、内容变化检测器112、内容发生器114、内容编码器116和平滑模块118之类的部件。通信模块110可便于服务器102通过网络104把信息传送给客户机106,以及通过网络104从客户机106接收信息。 在其与客户机106的通信中,通信模块110可使用任何类型的协议,例如客户机-服务器协议。 在一个实施例中,服务器102可利用通信模块110从客户机106接收客户机信息,并且可利用通信模块110把编码的图像帧和/或压缩信息传送给客户机106。客户机信息可包括识别客户机106或其用户(或者用户的偏好)的信息,以及与应被流式传输给客户机106的图像有关的信息,例如用户的当前位置或方向。 在一个例子中,对于根据用户的当前位置向他们显示三维(3D)图像的图像流式应用来说,客户机信息可包括用户位置的指示,比如坐标。 对于向用户显示他们将会看到什么的虚拟表现的另一应用来说,客户机信息还可包括提供用户正在注视的方向的指示的方向信息,例如罗盘方向。 本领域的技术人员会认识到任意类型的信息可被包括为客户机信息。
[0024] 内容发生器114可根据通信模块110收到的客户机信息,产生新的图像帧。 内容发生器114(它可以是多媒体或流式图像应用)可使用任何类型的方法来确定新的图像帧的内容。 例如,内容发生器114可根据客户 机106或其用户的当前位置或方向、根据接收或计算的用户的速度、根据事件的发生、根据当前时间、根据当前天气或照明条件、根据其它客户机或用户的位置或者任何其它因素产生新的图像帧。 在一个例证实施例中,内容发生器114产生新的图像帧,从而创建客户机106的当前位置的3-D表示。在另一例证实施例中,内容发生器114可根据用户的当前位置和方向,产生描述客户机106的用户会看到什么的虚拟视图的新图像帧。 在另一实施例中,内容发生器114可根据客户机信息的反复接收,确定客户机106的速度和方向,随后使用确定的速度和方向来产生适当的新的图像帧。
[0025] 内容变化检测器112可分析内容发生器114产生的新图像帧,比较新的图像帧与前一图像帧以确定它们是否不同。 内容变化检测器112可使用任意类型的方法或者方法的组合来确定新图像帧和前一图像帧间的内容是否被改变。 内容变化检测器112使用的方法可由管理员或者用户选择,可基于当前网络104的条件或者其它因素。 在一个实施例中,内容变化检测器112可使用每个图像帧的压缩大小的比较来确定是否发生了变化。 交互式系统中的未变化的压缩图像帧大小可能指示客户机106正在反复请求相同图像,以及连续的图像帧相同。 在另一实施例中,内容变化检测器112可通过使用Boolean(布尔)分析利用两个图像帧的位图的向量或统计处理来确定向量间是否存在差异。 在又一实施例中,当图像具有更高的规律性,并且速度更关键时,内容变化检测器112可利用统计处理算法的向量的索引形式。在一个备选实施例中,内容变化检测器112可使用场景跟踪或者其它算法来尝试预测客户机106的用户与其环境交互作用的水平,利用该预测来帮助确定新的图像帧是否和前一图像帧相同。 在另一备选实施例中,内容变化检测器112可使用客户机信息来确定图像是否发生了变化,因为例如如果客户机的位置没有任何变化,图像也可能不会变化。 在另一备选实施例中,内容变化检测器112可使用内容变化检测方法之一来确定图像帧之间的变化的大小或程度,而不是确定是否发生了变化。 当变化的大小或程度将影响选择的压缩级别时,这可能是有用的。 [0026] 内容编码器116和平滑模块118可用于组合地或者单独地确定将被传送的图像帧的恰当压缩级别,以及以选择的压缩级别对图像帧编码。 在一个实施例中,如果在连续的图像帧之间不存在内容变化(如由内容变化检测器112确定的),则内容编码器116可能希望提高待传送的图像帧的质量(从而降低压缩级别)。在交互式图像流式系统中,静态图像(连续帧之间不发生变化)指示从客户机的视点来看该图像是固定的,从而图像质量的重要性升高。 相反,如果连续的图像彼此不同,则从客户机106的视点来看,图像是运动的,可利用较低质量的图像(具有较高的压缩级别)。 当用户正在观看表现运动的图像时,图像中的细节可能不太重要,因为细节变得模糊,眼睛是造成细节丢失的原因。 当用户观看静止的图像时,图像细节可能更重要,因为用户很可能注意到细节的任何瑕疵或缺失、压缩人为失真等。
[0027] 有利的是,公开的系统根据用户和/或客户机106感知的运动,基于在图像流中表示的运动(由连续图像之间的差异或其缺失表示),适配压缩级别。 当连续图像在各帧之间发生变化(意味着运动)时,内容编码器116可增大压缩级别,降低带宽要求,而不会降低用户的观看体验。当连续图像相同(意味着固定的客户机106)时,内容编码器116可降低压缩级别,提高图像的质量。 虽然这样的动作会增大带宽要求,不过可为用户保持流式图像质量。 在一个实施例中,内容编码器116可能不需要传送连续的相同图像,而是可以只传送使用前一图像的指示,从而在固定用户的情况下节省带宽。 在一个备选实施例中,内容编码器116和平滑模块118还可使选择的压缩级别基于图像帧之间的变化的大小或程度,使得图像帧的轻微变化不会导致压缩级别的大跳跃。 [0028] 可选的是,内容编码器116可使用平滑模块118的平滑算法来平滑不同的压缩级别之间的过渡,从而改善用户的体验。 平滑模块118可使用初始的压缩级别、目标压缩级别和系统愿意等待直到满足目标压缩级别的帧数目作为输入。 在一个实施例中,平滑模块118可通过压缩标准,例如Motion-JPEG或MPEG的有损量化步骤,改变压缩级别,如关于图5更详细所述那样。 关于图5描述的压缩算法可根据需要,对不同的 压缩级别使用乘数(multiplier)查寻表120。 本领域的技术人员会认识到平滑模块118可使用任意类型的平滑机制。
[0029] 公开的交互式图像流式系统100可提供一种把交互式图像数据从服务器102流式传输给一个或多个客户机的有效和高效机制。 公开的实施例的服务器102可比较连续的图像帧的内容,以确定内容是否从帧到帧变化。 如果内容在变化,反映客户机106在移动,则服务器102可增大压缩级别(从而降低图像质量和带宽要求),可有利地使用平滑模块118使压缩级别的变化不会过多侵扰用户。 如果内容没有变化,反映客户机106是固定的,则服务器102可降低压缩级别,以改进图像质量,因为任何用户更可能注意到由压缩引起的质量降低。 通过把流式图像流的压缩级别与客户机106和/或用户的状态联系起来,交互式图像流式系统100可降低流式传输图像内容所需的带宽,而不会显著降低向用户显示的图像的质量。 通过平滑不同压缩级别之间的过渡,从而在网络约束条件内工作的时候,可保持流式图像的视觉质量。
[0030] 图2根据一个实施例,描述了图1的流式图像系统的客户机的结构。 在所描述的实施例中,客户机106包括通信模块202、解码器204、用户显示装置206、用户输入装置208、位置确定装置210和方向确定装置212。 和服务器102的通信模块110类似,通信模块202可便于客户机106通过网络104向服务器102传送信息,以及通过网络104从服务器102接收信息。 在其与服务器102的通信中,通信模块202可使用任意类型的协议。在一个实施例中,客户机106可利用通信模块202把客户机信息传送给服务器102,并可利用通信模块202从服务器102接收编码的图像帧和/或压缩级别的指示。 [0031] 解码器204可对通信模块202接收的编码图像解码,例如通过对编码图像解压缩。 解码器204可使用通信模块202接收的压缩级别的指示来帮助它对图像解码。 另外,解码器204可访问与压缩级别相关的一个或多个乘数(multiplier)查寻表,使得解码器204可正确地对图像解码。 在解码器204处理图像之后,用户显示装置206可向用户显示解码的图像,例如借助显示屏、打印的图像、全息图或者任何其它输出装置。 [0032] 如前所述,客户机信息可包括用户和/或客户机106的身份、偏好、位置、方向或其它信息的指示。 可选的用户输入装置208、位置确定装置210和方向确定装置212可帮助请求或提供客户机信息。 例如,用户输入装置208可接收来自任何类型的装置,比如通过小键盘、键盘、按钮、指示笔、鼠标、操纵杆、虚拟现实装置、语音命令或者眼睛移动的用户输入。 用户输入可包括用户偏好,比如对较高或较低压缩级别的请求、对较快的屏幕速率的请求等。用户输入还可包括用户位置或方向。 位置确定装置210可确定客户机106和/或用户的当前位置。 位置确定装置210可以是任何类型的位置确定装置,比如全球定位系统(GPS)接收器或者惯性测量单元(IMU)。方向确定装置212可确定客户机106和/或用户的当前方向。 方向确定装置212可以是任何类型的方向确定装置,比如电子罗盘、使用三角测量法的GPS接收器、传统的罗盘或者IMU。由用户输入装置208、位置确定装置210和/或方向确定装置212产生的客户机信息可允许服务器102根据客户机106和/或用户的当前状态,定制每个产生的图像帧。 [0033] 图3描述了根据本发明的一个实施例,产生、编码和传送新的图像帧的流程图的例子。 服务器102或其任意部件(独立或者组合)可执行流程图300的方法。 流程图
300从步骤302开始,接收客户机信息。 在一个实施例中,通信模块110可通过网络104从客户机106接收客户机信息。 在收到客户机信息之后,内容发生器112可在步骤304根据接收的客户机信息产生新的图像帧。 内容发生器112可根据应用,使用任意类型的算法来产生新的图像帧。 例如,内容发生器112可产生表示从用户的视点来看的视图的图像帧,如果应用这样要求的话。
[0034] 平滑模块118随后可在步骤306确定产生的图像帧的初始压缩级别。在一个实施例中,平滑模块118可简单地把最近使用的压缩级别选为初始压缩级别。 在另一实施例中,平滑模块118使初始压缩级别基于系统是否在多帧平滑例程内。 当在多帧平滑例程内时,初始压缩级别可基于适合于多帧平滑例程的当前帧的压缩级别。 在一个例子中,平滑模块118启动压缩例程,该压缩例程在6帧内从压缩级别5开始,终止于压缩级别10,每帧递增一个压缩级别,第三帧的初始压缩级别可以是压缩级别7(5+2=7)。 在一个实施例中,平滑模块18可利用延续1-2秒的多帧平滑例程以便降低对用户的影响。 在一个例子中,如果正以15帧/秒的速率传送图像流,则以15帧-30帧从一个压缩级别过渡到另一压缩级别的多帧平滑例程可证明是有益的。 本领域的技术人员会认识到平滑模块118可利用其它的多帧压缩方案。
[0035] 在平滑模块118确定了初始压缩级别之后,在步骤308,内容变化检测器112可比较产生的新图像与前一图像。 如前所述,内容变化检测器112可使用任何方法来比较这两个图像。如果内容变化检测器112在判定块310确定在产生的新图像和前一图像帧之间内容发生了变化,则流程图300的方法进到步骤314。在步骤314,平滑模块118可对新图像进行平滑探试,以降低其质量和增大压缩级别。 当图像之间的内容变化指示用户的视点可能移动,从而用户可能容忍较低的图像质量时,平滑模块118增大压缩级别。如果内容变化检测器112在判定块310确定在产生的新图像和前一图像帧之间内容没有发生变化,则流程图300的方法进到步骤312。 在步骤312,平滑模块118可对新图像进行平滑探试,以提高其质量,并降低压缩级别。 当图像之间内容变化的缺失指出用户的视点可能是静止的,从而用户可能要求较高的图像质量时,平滑模块118可降低压缩级别。
[0036] 平滑模块118可利用任何方法在步骤312或314进行其平滑探试。 在一个实施例中,平滑模块118可通过一系列的压缩质量在初始压缩级别和目标压缩级别之间(根据压缩级别是增大还是降低,沿着适当的方向)递增。 例如,在最小压缩级别和最大压缩级别之间,平滑模块118可使用5个压缩级别。 但是,对于每个压缩级别,服务器102和客户机106的乘数查寻表120、220可能分别需要包含用于该压缩级别的查寻表,如同将关于图5更详细描述的。 压缩级别的数目要求在服务器102和客户机106的存储器使用与探试法的平滑性之间的折衷。 数目较多的压缩级别会导致压缩级别之间更平滑的过渡,但是可能需要额外的存储器量,这可能是成问题的,尤其是对于处理和存储器资源可能有限的客户机106来说更是如此。 对于平滑的过渡来说,压缩级别的数目一般期望为3个或者更多,但是本领域的技术人员会认识到在可能的降低性能的情况下,较少数目的压缩级别是可以的。
[0037] 在平滑模块118进行了其平滑探试之后,在步骤316,内容编码器116可根据来自平滑模块118的结果,设定新的压缩级别。 利用新的压缩级别,内容编码器116随后可在步骤318根据新的压缩级别对新的图像帧编码。 如前所述,内容编码器116可使用任何类型的编码算法对新的图像帧编码。随后在步骤320,通信模块110可把编码的新的图像帧和新的压缩级别的指示传送给客户机106,之后流程图300的方法结束。 流程图300的方法还可返回步骤302,对每一帧重复该过程。
[0038] 图4描述根据本发明的一个实施例的接收用户输入和接收并向用户显示图像帧的流程图的例子。客户机106或其任意部件(独立或者组合)可执行流程图400的方法。流程图400从步骤402开始,接收用户输入。 在一个实施例中,通信模块202可通过用户输入装置208接收来自用户的输入,如前所述。 可替换地,通信模块202可接收来自位置确定装置210或方向确定装置212的输入。 用户输入装置可在步骤404可选择地处理用户输入,例如通过把输入转换成用于传输的另一种形式。在步骤406,通信模块202随后可通过网络104把用户输入的指示传送给服务器102。
[0039] 在传送用户输入的指示之后,流程图400的方法可进到步骤408,在步骤408,通信模块202可通过网络104从服务器102接收编码图像帧。 在步骤410,通信模块202还可通过网络104从服务器102接收编码图像帧的压缩级别的指示。 在一个实施例中,通信模块202可在同一传输中接收编码图像帧和压缩级别的指示。
[0040] 利用压缩级别的指示,解码器204可在步骤412对编码图像帧解码。解码器204可使用与指示的压缩级别相关的乘数(multiplier)查寻表来执行解码处理的去量化步骤,如关于图5更详细描述的。 在图像帧被解码之后,用户显示装置206可在步骤414向用户显示解码的图像帧,之后,流程图400的方法结束。 流程图400的方法也可返回步骤402,对每一帧重复整个流程图。
[0041] 流程图400的公开方法允许交互式图像流被显示在客户机106上。通信模块202可把用户的交互作用的指示传输给服务器102,并接收回基于用户的交互作用的编码图像帧。 解码器204随后对图像帧解码,并且用户显示装置206向用户显示解码的图像帧。可对每一帧重复图3和4的方法,以给予用户交互式图像流式传输体验。这里描述的更平滑的探试法根据用户的动作,有利地改变压缩级别,便于有效和高效地使用可用带宽。 [0042] 图5描述了根据一个实施例,对图像帧编码和解码的流程图的例子。服务器102的内容编码器116和客户机106的解码器206可独立或者组合地执行流程图500的方法。
流程图500的方法可表示典型的视频编码和解码方案或算法,例如MPEG或Motion-JPEG的描述。 流程图500的方法并不意味着是穷尽的,特定的编码方案可具有更多的步骤,例如MPEG算法的运动补偿步骤,或者完全不同的方法。 本领域的技术人员会认识到图
5的方法只是一个例子,其它编码/解码方法也可和公开的实施例一起使用。 [0043] 流程图500始于步骤502,在步骤502,内容编码器116可接收待编码的输入图像帧。 内容编码器116随后可对输入的图像帧执行离散余弦变换(DCT)运算。 DCT运算可能是一种基本无损失的数学变换,它获得信号(输入图像帧的空间信息),并把其变换成呈一个或多个8×8像素块形式的适于压缩的数值数据作为输出。 在内容编码器116内,在步骤506,根据选择的压缩级别,DCT运算的输出被量化。 内容编码器116通过把来自恰当查寻表的常数作为除数,可对从DCT运算输出的每个8×8像素块执行量化步骤。所述恰当的查寻表可以是与选择的压缩级别相关的查寻表。 在一个实施例中,对于每个可能的压缩级别可存在多个查寻表。 流程图500的方法随后进到步骤508,在步骤
508,内容编码器116可压缩从步骤506输出的量化DCT值。 在步骤508,内容编码器
116可按照锯齿形序列把量化的DCT值重新排列成一维阵列,随后使用熵编码机制,所述熵编码机制使用游程长度编码(RLE)和/或Huffman编码。
[0044] 客户机106的解码器206通过数学反转和解压缩编码的图像帧,可 对编码的图像帧解码。 解码器206可从步骤510开始,在步骤510,解码器206对接收的图像帧解压缩,在步骤512,解码器206可根据选择的压缩级别对接收的图像执行去量化(也称为反转量化)。在解压缩步骤之后,通过把来自适当的查寻表的常数用作乘数,解码器206可对每个8×8像素块执行去量化步骤。所述恰当的查寻表可以是与选择的压缩级别相关的查寻表。 有利的是,相同的查寻表可分别保存在服务器102和客户机106中。 解码器206随后对接收的图像帧执行反向DCT变换,得到随后可被显示或者被另外处理的输出图像帧。 随后流程图500的方法可结束。
[0045] 一般来说,被执行以实现本发明的实施例的例程可以是操作系统的一部分或者特定应用、部件、程序、模块、对象、或指令序列。 本发明的计算机程序一般由大量的指令组成,所述指令可由本地计算机转换成机器可读格式,从而转换成可执行指令。 另外,程序由对于程序本地驻留的、或者在存储器或存储装置中找到的变量和数据结构构成。 另外,下述各种程序可根据在本发明的特定实施例中它们为其而实现的应用来识别。 但是,应认识到只是为了方便起见而使用下面的任何特定程序命名,从而,本发明不应被局限于只在由这样的命名识别和/或暗示的任何特定应用中使用。 [0046] 根据本公开内容,对本领域的技术人员来说,本发明显然提出了管理交互式流式图像系统的方法、系统和介质。 显然在详细说明和附图中示出和描述的本发明的形式只是用作例子。下面的权利要求应广义地理解以包含所公开的例证实施例的所有变化。