Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM, TERMINAL AND METHOD FOR DYNAMICALLY ADJUSTING VIDEO
Document Type and Number:
WIPO Patent Application WO/2013/135141
Kind Code:
A1
Abstract:
Provided are a system, terminal and method for dynamically adjusting a video. The system comprises: a session control unit for receiving an operation control signaling sent by a user proxy and generating a transcoding instruction on the basis of the operation control signaling during playing a video, the transcoding instruction comprising renewed transcoding parameters; and a transcoding unit for receiving the transcoding instruction sent by the session control unit, transcoding original video images received from a video source on the basis of the renewed transcoding parameters so as to generate transcoded video images, and sending the transcoded video images to the user proxy. The session control unit of the present invention generates the transcoding instruction on the basis of the operation control signaling of the user proxy so as to make the transcoding unit dynamically update the transcoding parameters, thereby achieving dynamical transcoding process of the original video as necessary, and enhancing operation flexibility of video dynamical adjustment.

Inventors:
LI QINGLIANG (CN)
Application Number:
PCT/CN2013/072063
Publication Date:
September 19, 2013
Filing Date:
March 01, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
H04N21/4402
Foreign References:
US20100299453A12010-11-25
CN101635854A2010-01-27
CN101321280A2008-12-10
US20070071097A12007-03-29
CN102595242A2012-07-18
Download PDF:
Claims:
权 利 要 求

1、 一种动态调整视频的方法, 其特征在于, 包括:

在视频播放过程中, 接收用户代理发送的操作控制信令, 根据所述操作 控制信令生成转码指令, 所述转码指令包括更新的转码参数;

向转码单元发送所述转码指令, 以便于所述转码单元根据所述更新的转 码参数对从视频源接收的原始视频图像进行转码处理 ,从而生成转码后的视频 图像以及将所述转码后的视频图像发送给用户代理。

2、 根据权利要求 1所述的方法, 其特征在于, 所述根据所述操作控制信 令生成转码指令, 包括:

根据所述操作控制信令所包括的操作类别或者根据所述操作控制信令所 包括的操作类别和操作参数,计算所述更新的转码参数, 并生成包括所述更新 的转码参数的所述转码指令。

3、 根据权利要求 2所述的方法, 其特征在于, 所述根据所述操作控制信 令所包括的操作类别和操作参数, 计算所述更新的转码参数, 包括:

根据所述操作控制信令所包括的操作类别以及上下文信息或者根据所述 操作控制信令所包括的操作类别和操作参数以及上下文信息,计算所述更新的 转码参数, 其中所述上下文信息包括当前视频图像的位置参数和 /或比例参数。

4、 根据权利要求 3所述的方法, 其特征在于, 其特征在于, 所述上下文 信息还包括所述用户代理的播放窗口的尺寸参数和 /或所述原始视频图像的尺 寸参数。

5、 根据权利要求 1-4任一项所述的方法, 其特征在于, 所述更新的转码 参数包括部分视频图像的位置参数, 进行转码处理, 从而生成转码后的视频图像, 包括: 所述转码单元根据所述部 分视频图像的位置参数,从原始视频图像中截取所述部分视频图像,对所述部 分视频图像进行转码以生成所述转码后的视频图像。

6、 根据权利要求 5所述的方法, 其特征在于, 所述更新的转码参数还包 括所述部分视频图像的比例参数,

所述转码单元对所述部分视频图像进行转码以生成所述转码后的视频图 像, 包括: 所述转码单元根据所述部分视频图像的比例参数, 对所截取的所述 部分视频图像进行缩放,对缩放后的部分视频图像进行转码以生成所述转码后 的视频图像。

7、 根据权利要求 6所述的方法, 其特征在于, 所述转码单元对缩放后的 部分视频图像进行转码以生成所述转码后的视频图像, 包括:

所述转码单元将缩放后的部分视频图像叠加到所述原始视频图像上, 并 对叠加后的视频图像进行转码以生成所述转码后的视频图像。

8、 根据权利要求 1所述的方法, 其特征在于,

所述操作控制信令所包括的操作类别为初始化操作, 所述操作控制信令 所包括的操作参数为所述用户代理的播放窗口的尺寸参数、所述原始视频图像 的尺寸参数以及所述原始视频图像在所述播放窗口中的位置参数; 或者, 所述操作控制信令所包括的操作类别为缩放操作, 所述操作控制信令所 包括的操作参数为缩放后的视频图像相对于所述原始视频图像的比例参数;或 者,

所述操作控制信令所包括的操作类别为画面漫游操作, 所述操作控制信 令所包括的操作参数为漫游后的视频图像相对于所述原始视频图像的偏移尺 寸参数; 或者,

所述操作控制信令所包括的操作类别为局部缩放操作, 所述操作控制信 令所包括的操作参数为局部缩放目标区域的尺寸参数、 位置参数和比例参数; 或者,

所述操作控制信令所包括的操作类别为停止局部缩放操作; 或者, 所述操作控制信令所包括的操作类别为播放位置居中操作; 或者, 所述操作控制信令所包括的操作类别为满屏填充操作。

9、 一种动态调整视频的方法, 其特征在于, 包括:

播放从转码单元接收的视频图像;

在视频播放过程中生成操作控制信令, 所述操作控制信令包括对所述视 频图像执行的操作动作的操作类别或者包括所述操作动作的操作类别和操作 参数;

向会话控制单元发送所述操作控制信令, 以便于所述会话控制单元根据 码指令包括更新的转码参数,以便于所述转码单元根据所述更新的转码参数对 从视频源接收的原始视频图像进行转码处理, 从而生成转码后的视频图像; 从所述转码单元接收所述转码后的视频图像, 并播放所述转码后的视频 图像。

10、 根据权利要求 9所述的方法, 其特征在于,

所述操作控制信令所包括的操作类别为初始化操作, 所述操作控制信令 所包括的操作参数为所述用户代理的播放窗口的尺寸参数、所述原始视频图像 的尺寸参数以及所述原始视频图像在所述播放窗口中的位置参数; 或者, 所述操作控制信令所包括的操作类别为缩放操作, 所述操作控制信令所 包括的操作参数为缩放后的视频图像相对于所述原始视频图像的比例参数;或 者,

所述操作控制信令所包括的操作类别为画面漫游操作, 所述操作控制信 令所包括的操作参数为漫游后的视频图像相对于所述原始视频图像的偏移尺 寸参数; 或者,

所述操作控制信令所包括的操作类别为局部缩放操作, 所述操作控制信 令所包括的操作参数为局部缩放目标区域的尺寸参数、 位置参数和比例参数; 或者,

所述操作控制信令所包括的操作类别为停止局部缩放操作; 或者, 所述操作控制信令所包括的操作类别为播放位置居中操作; 或者, 所述操作控制信令所包括的操作类别为满屏填充操作。

11、 一种用于动态调整视频的系统, 其特征在于, 包括:

会话控制单元, 用于在视频播放过程中, 接收用户代理发送的操作控制 信令,根据所述操作控制信令生成转码指令, 所述转码指令包括更新的转码参 数;

转码单元, 用于接收所述会话控制单元发送的所述转码指令, 根据所述 更新的转码参数对从视频源接收的原始视频图像进行转码处理,从而生成转码 后的视频图像以及将所述转码后的视频图像发送给用户代理。

12、 根据权利要求 11所述的系统, 其特征在于, 所述会话控制单元具体 用于根据所述操作控制信令所包括的操作类别或者根据所述操作控制信令所 包括的操作类别和操作参数,计算所述更新的转码参数, 并生成包括所述更新 的转码参数的所述转码指令。 13、根据权利要求 12所述的系统, 其特征在于, 所述会话控制单元包括: 上下文模块, 用于存储上下文信息, 所述上下文信息包括当前视频图像 的位置参数和 /或比例参数;

处理模块, 用于根据所述操作控制信令所包括的操作类别以及所述上下 文模块存储的上下文信息或者根据所述操作控制信令所包括的操作类别和操 作参数以及所述上下文模块存储的上下文信息,计算所述更新的转码参数, 并 生成包括所述更新的转码参数的所述转码指令。

14、 根据权利要求 13所述的系统, 其特征在于, 其特征在于, 所述上下 文模块存储的上下文信息还包括所述用户代理的播放窗口的尺寸参数和 /或所 述原始视频图像的尺寸参数。

15、 根据权利要求 11-14任一项所述的系统, 其特征在于, 所述更新的转 码参数包括部分视频图像的位置参数,

所述转码单元具体用于根据所述部分视频图像的位置参数, 从原始视频 图像中截取所述部分视频图像,对所述部分视频图像进行转码以生成所述转码 后的视频图像。

16、 根据权利要求 15所述的系统, 其特征在于, 所述更新的转码参数还 包括所述部分视频图像的比例参数,

所述转码单元具体用于根据所述部分视频图像的比例参数, 对所截取的 所述部分视频图像进行缩放,对缩放后的部分视频图像进行转码以生成所述转 码后的视频图像。

17、 根据权利要求 16所述的系统, 其特征在于, 所述转码单元具体用于 将缩放后的部分视频图像叠加到所述原始视频图像上,并对叠加后的视频图像 进行转码以生成所述转码后的视频图像。

18、 根据权利要求 11所述的系统, 其特征在于,

所述操作控制信令所包括的操作类别为初始化操作, 所述操作控制信令 所包括的操作参数为所述用户代理的播放窗口的尺寸参数、所述原始视频图像 的尺寸参数以及所述原始视频图像在所述播放窗口中的位置参数; 或者, 所述操作控制信令所包括的操作类别为缩放操作, 所述操作控制信令所 包括的操作参数为缩放后的视频图像相对于所述原始视频图像的比例参数;或 者, 所述操作控制信令所包括的操作类别为画面漫游操作, 所述操作控制信 令所包括的操作参数为漫游后的视频图像相对于所述原始视频图像的偏移尺 寸参数; 或者,

所述操作控制信令所包括的操作类别为局部缩放操作, 所述操作控制信 令所包括的操作参数为局部缩放目标区域的尺寸参数、 位置参数和比例参数; 或者,

所述操作控制信令所包括的操作类别为停止局部缩放操作; 或者, 所述操作控制信令所包括的操作类别为播放位置居中操作; 或者, 所述操作控制信令所包括的操作类别为满屏填充操作。

19、 一种动态调整视频的终端, 其特征在于, 包括:

播放模块, 用于播放从转码单元接收的视频图像;

生成模块, 用于在视频播放过程中生成操作控制信令, 所述操作控制信 令包括对所述视频图像执行的操作动作的操作类别或者包括所述操作动作的 操作类别和操作参数;

发送模块, 用于向会话控制单元发送所述操作控制信令, 以便于所述会 话控制单元根据所述操作控制信令生成转码指令并向所述转码单元发送所述 转码指令, 所述转码指令包括更新的转码参数, 以便于所述转码单元根据所述 更新的转码参数对从视频源接收的原始视频图像进行转码处理,从而生成转码 后的视频图像;

接收模块, 用于从所述转码单元接收所述转码后的视频图像;

所述播放模块还用于播放所述转码后的视频图像。

20、 根据权利要求 19所述的终端, 其特征在于,

所述操作控制信令所包括的操作类别为初始化操作, 所述操作控制信令 所包括的操作参数为所述用户代理的播放窗口的尺寸参数、所述原始视频图像 的尺寸参数以及所述原始视频图像在所述播放窗口中的位置参数; 或者, 所述操作控制信令所包括的操作类别为缩放操作, 所述操作控制信令所 包括的操作参数为缩放后的视频图像相对于所述原始视频图像的比例参数;或 者,

所述操作控制信令所包括的操作类别为画面漫游操作, 所述操作控制信 令所包括的操作参数为漫游后的视频图像相对于所述原始视频图像的偏移尺 寸参数; 或者,

所述操作控制信令所包括的操作类别为局部缩放操作, 所述操作控制信 令所包括的操作参数为局部缩放目标区域的尺寸参数、 位置参数和比例参数; 或者,

所述操作控制信令所包括的操作类别为停止局部缩放操作; 或者, 所述操作控制信令所包括的操作类别为播放位置居中操作; 或者, 所述操作控制信令所包括的操作类别为满屏填充操作。

Description:
动态调整视频的系统、 终端和方法

本申请要求于 2012年 3月 12日提交中国专利局、 申请号为 201210063687.4、 发明名称为 "动态调整视频的系统、 终端和方法" 的中国专 利申请的优先权, 其全部内容通过引用结合在本申请中。

技术领域

本发明实施例涉及网络通信领域, 并且更具体地, 涉及动态调整视频的 系统、 终端和方法。 背景技术

在视频播放中, 经常出现由于原始视频分辨率高而用户代理性 能低, 导致 无法流畅解码播放的现象。 此外, 如果用户代理对应的屏幕小、 分辨率低, 即 使能够流畅解码, 解码后的图像在最终呈现时, 由于受制于屏幕的分辨率, 也 无法按照原始高分辨率进行呈现。 因此,造成了高分辨率视频的视觉体验差以 及计算资源的浪费。

在屏幕分辨率确定的情况下 ,流媒体服务器或者图像服务器传送高分辨率 的视频或者图像,会导致网络带宽或者存储空 间的浪费。但是如果传送低分辨 率视频,在播放时,特别是放大时又会出现马 赛克现象,影响画面细节的观看。

为克服这一问题, 在视频源和用户代理之间增加转码单元, 通过转码单 元对原始视频进行转码处理, 提供用户代理能够支持的视频格式 /分辨率的视 频。转码是指从一种视频编码格式转换为另外 一种视频编码格式的过程, 或从 一种视频分辨率放大 /缩小为另外一种视频分辨率的过程, 或者两者同时执行 的过程, 例如转码单元可以将 H264编码的高清视频转码为可以在手机上观看 的 CIF( Common Intermediate Format;公共中间格式)分辨率的 MPEG( Moving Pictures Experts Grou , 运动画面专家组) -4格式的视频。

但是, 转码单元处理后的视频不一定能满足用户需要 。 例如, 当用户需 要对用户代理的视频播放窗口进行放大时 ,只能在用户代理本地进行画面的放 大, 容易出现马赛克等现象。传统的转码单元不能 根据用户需要实现视频的动 态调整, 操作灵活度不高。 发明内容

本发明实施例提供动态调整视频的系统、 终端和方法, 能够提高视频动 态调整的操作灵活度。

一方面, 提供了一种动态调整视频的系统, 包括: 会话控制单元, 用于 在视频播放过程中,接收用户代理发送的操作 控制信令,根据所述操作控制信 令生成转码指令, 所述转码指令包括更新的转码参数; 转码单元, 用于接收所 述会话控制单元发送的所述转码指令,根据所 述更新的转码参数对从视频源接 收的原始视频图像进行转码处理,从而生成转 码后的视频图像以及将所述转码 后的视频图像发送给用户代理。

另一方面, 提供了一种动态调整视频的终端, 包括: 播放模块, 用于播 放从转码单元接收的视频图像; 生成模块, 用于在视频播放过程中生成操作控 制信令,所述操作控制信令包括对所述视频图 像执行的操作动作的操作类别或 者包括所述操作动作的操作类别和操作参数; 发送模块, 用于向会话控制单元 发送所述操作控制信令,以便于所述会话控制 单元根据所述操作控制信令生成 转码指令并向所述转码单元发送所述转码指令 ,所述转码指令包括更新的转码 频图像进行转码处理, 从而生成转码后的视频图像; 接收模块, 用于从所述转 码单元接收所述转码后的视频图像;播放模块 还用于播放所述转码后的视频图 像。

另一方面, 提供了一种动态调整视频的方法, 包括: 在视频播放过程中, 接收用户代理发送的操作控制信令,根据所述 操作控制信令生成转码指令, 所 述转码指令包括更新的转码参数; 向转码单元发送所述转码指令, 以便于所述 转码单元根据所述更新的转码参数对从视频源 接收的原始视频图像进行转码 处理,从而生成转码后的视频图像以及将所述 转码后的视频图像发送给用户代 理。

另一方面, 提供了一种动态调整视频的方法, 包括: 播放从转码单元接 收的视频图像; 在视频播放过程中生成操作控制信令, 所述操作控制信令包括 对所述视频图像执行的操作动作的操作类别或 者包括所述操作动作的操作类 别和操作参数; 向会话控制单元发送所述操作控制信令, 以便于所述会话控制 单元根据所述操作控制信令生成转码指令并向 所述转码单元发送所述转码指 令, 所述转码指令包括更新的转码参数, 以便于所述转码单元根据所述更新的 转码参数对从视频源接收的原始视频图像进行 转码处理,从而生成转码后的视 频图像; 从所述转码单元接收所述转码后的视频图像, 并播放所述转码后的视 频图像。

本发明实施例中会话控制单元根据用户代理的 操作控制信令生成转码指 令, 以使得转码单元动态更新转码参数,从而实现 了根据需要对原始视频进行 动态转码处理, 提高了视频动态调整的操作灵活度。 附图说明

为了更清楚地说明本发明实施例的技术方案, 下面将对实施例或现有技术 描述中所需要使用的附图作简单地介绍,显而 易见地, 下面描述中的附图仅仅 是本发明的一些实施例,对于本领域普通技术 人员来讲, 在不付出创造性劳动 的前提下, 还可以根据这些附图获得其他的附图。

图 1是根据本发明实施例的用于动态调整视频的 统的框图。

图 2是图 1中的会话控制单元的一个例子的示意框图。

图 3是本发明实施例的终端的框图。

图 4是本发明一个实施例的动态调整视频的方法 流程图。

图 5是本发明另一实施例的动态调整视频的方法 流程图。

图 6是本发明另一实施例的播放视频的过程的示 流程图。

图 7是完整填充视频的例子。

图 8是部分填充视频的例子。

图 9为视频画面超出播放区域的例子。

图 10为部分填充视频画面的例子。

图 11A和图 11B是视频局部放大的例子。 具体实施方式 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行 清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全 部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造性 劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。

图 1是根据本发明实施例的用于动态调整视频的 统的框图。 图 1 的系 统 100包括会话控制单元 101和转码单元 102。

会话控制单元 101 在视频播放过程中, 接收用户代理发送的操作控制信 令, 根据操作控制信令生成转码指令, 该转码指令包括更新的转码参数。

转码单元 102接收会话控制单元 101发送的转码指令, 根据更新的转码 参数对从视频源接收的原始视频图像进行转码 处理,从而生成转码后的视频图 像以及将转码后的视频图像发送给用户代理。

本发明实施例中会话控制单元根据用户代理的 操作控制信令生成转码指 令, 以使得转码单元动态更新转码参数,从而实现 了根据需要对原始视频进行 动态转码处理, 提高了视频动态调整的操作灵活度。

应理解, 本发明实施例中, 上述用户代理可以是终端侧的软件形式或硬 件形式的播放器、 解码器等设备。 例如, 用户代理可以是软件播放器、 MP4 播放器、 解码卡和云计算客户端等。 本发明实施例并不限定。

应理解, 本发明实施例在用户代理和转码单元之间增加 会话控制单元 101 , 实现视频的动态调整。 会话控制单元 101可以是软件形式或硬件形式, 本发明实施例对此不作限制。 另外,会话控制单元 101可以与用户代理集成在 一起(例如一起集成到终端中), 或者作为用户代理的一个模块。 也可以作为 网络侧的独立的网元, 或者与转码单元 101集成在一起(例如一起集成到流媒 体服务器中)。 本发明实施例并不限定。

传统的转码单元只能对完整的视频进行转码处 理, 因此也只能将完整的 视频发送给用户代理。 在此情况下, 如果用户只需观看部分视频, 转码单元仍 然需要处理全部视频并将全部视频发送给用户 代理,浪费了转码单元的运算资 源并占用网络资源。

本发明实施例的转码单元 102 的转码参数可以灵活更新, 可以仅仅处理 一部分视频, 从而节省转码单元的运算资源。 例如, 在用户需要放大局部视频 图像时,转码单元 102可以仅仅处理该局部视频图像,对除了该局 部视频图像 之外的部分不作处理, 节省了运算资源。

另外, 本发明实施例的转码单元 102 只传输转码后的视频图像, 而无需 传输全部视频, 从而节省了网络资源。 例如, 在用户需要在图像 A上叠加较 小的图像 B时, 转码单元 102可以不处理图像 A被图像 B遮挡的部分, 节省 运算资源; 同时, 转码单元 102可以不传输图像 A被图像 B遮挡的部分, 节 省网络资源。

传统的终端如果需要在本地播放窗口中进行视 频图像的缩放等处理, 则 需要占用终端上用户代理的解码、编码等运算 资源。本发明实施例的转码单元 101负责执行视频图像的转码处理, 而无需用户代理的本地调整处理, 这样能 够节省终端的运算资源。

可选地, 作为一个实施例, 会话控制单元 101 根据操作控制信令所包括 的操作类别或者根据操作控制信令所包括的操 作类别和操作参数,计算更新的 转码参数, 并生成包括更新的转码参数的转码指令。

操作控制信令用于指示对视频图像执行的操作 动作。 用户代理可根据用 户在视频播放过程中对视频图像的操作动作而 生成操作控制信令; 或者,操作 控制信令可以是预先设定的, 由系统定时触发, 或通过事件触发方式实现。 例 如, 操作控制信令可包括该操作动作的操作类别 (如缩放、 漫游、 填充等), 或者包括该操作动作的操作类别和操作参数( 如有操作参数的话)。 下面还将 结合表 1 的实施例具体描述操作控制信令所包括的一些 操作类别和相应操作 参数 (如果该操作类别有操作参数的话 )的例子。 但应注意, 表 1的实施例仅 仅是示例性的, 而非对本发明实施例范围的限制。

例如, 在用户代理由软件实现的情况下, 用户可通过鼠标、 键盘、 手指 触摸屏、手写笔,操作软件按钮、菜单或屏幕 来实现对视频画面的缩放、移动、 局部放大等操作动作的配置。 另一方面, 在用户代理由硬件实现的情况下, 用 户可通过遥控器、 按键、 智能感应输入设备, 操作解码器来实现对视频画面的 缩放、移动、局部放大等操作动作的配置。用 户代理生成相应的操作控制信令, 以指示操作动作。下文中还将结合具体实施例 更加详细地描述对视频图像执行 的操作动作的例子。 但是, 本发明实施例不限于这些具体例子, 可以根据需要 增加、 删除或替换所例示的操作动作。 例如, 可以增加一些更复杂的操作动作 (如多个局部视频的叠加, 或一个或多个局部视频与全部视频的叠加等 )及相 应的参数。 这些修改均落入本发明实施例的范围内。

可选地, 作为另一实施例, 上述更新的转码参数可包括部分视频图像的 位置参数。转码单元 102可根据该部分视频图像的位置参数,从原始 视频图像 中截取该部分视频图像, 对该部分视频图像进行转码以生成转码后的视 频图 像。部分视频图像的位置参数用于指示该部分 视频图像在播放窗口或原始视频 图像中的位置, 例如可以表示该部分视频图像的起点 (例如但不限于左上角) 在播放窗口或原始视频图像中的坐标。但本发 明实施例对部分视频图像的位置 参数的具体形式不作限制, 例如可以是矢量形式等, 或者部分视频图像的位置 参数还可以包括其他信息,如部分视频图像的 宽度和高度、部分视频图像的其 他点(例如右下角)的坐标等。这些变化均落 入本发明实施例的范围内。这样, 本发明实施例能够实现部分视频图像的截取功 能。

可选地, 作为另一实施例, 上述更新的转码参数还可以包括上述部分视 频图像的比例参数。转码单元 102可根据该部分视频图像的比例参数,对所截 取的部分视频图像进行缩放,对缩放后的部分 视频图像进行转码以生成转码后 的视频图像。 部分视频图像的比例参数表示对该部分视频图 像进行缩放的比 例, 可以是相对于该部分视频图像的比例值或者相 对于原始视频图像的比例 值, 例如可以包括宽度缩放比和高度缩放比。但本 发明实施例对部分视频图像 的比例参数的具体形式不作限制, 例如可以是固定宽高比条件下的一个比例 值。 这些变化均落入本发明实施例的范围内。 这样, 本发明实施例能够实现部 分视频图像的缩放功能。

可选地, 作为另一实施例, 转码单元 102 可以将缩放后的部分视频图像 叠加到原始视频图像上,并对叠加后的视频图 像进行转码以生成转码后的视频 图像。 这样, 本发明实施例能够实现视频图像的叠加功能。

应注意, 本发明实施例对部分视频图像的数目不作限制 。 例如, 可以在 一个原始视频图像上叠加两个或更多个部分视 频图像的缩放图像。这些变化均 落入本发明实施例的范围内。

可选地, 作为另一实施例, 会话控制单元 101在计算更新的转码参数时, 还可以考虑上下文信息。图 2是图 1中的会话控制单元 101的一个例子的示意 框图。 如图 2所示, 会话控制单元 101包括上下文模块 131和处理模块 132。

上下文模块 131 可存储上下文信息, 上下文信息包括当前视频图像的位 置参数和 /或比例参数。 当前视频图像是指当前在用户代理上播放的视 频图像, 原始视频图像是视频源发送的视频图像。

位置参数用于指示当前视频图像的位置, 例如相对于用户代理的播放窗 口的相对位置。位置参数的一个非限制性的例 子是当前视频图像的起点(例如 但不限于当前视频图像左上角)在播放窗口中 的横坐标和纵坐标,也可以是其 他坐标形式, 本发明对此不作限制。如果当前播放图像的起 点被固定为播放窗 口中的某一个点, 如播放窗口的左上角 (一般是播放窗口的坐标原点), 则上 下文信息中可省略位置参数。

比例参数用于指示当前视频图像的比例, 例如相对于原始视频图像的比 例或者相对于用户代理的播放窗口的比例。比 例参数的一个非限制性的例子是 当前视频图像的宽度(横坐标方向上的尺度) 缩放百分比和高度(纵坐标方向 上的尺度)缩放百分比。 但本发明实施例对比例参数的形式不作限制, 也可以 是其他形式的比例值, 例如固定宽高比条件下的一个百分比值。如果 当前播放 图像的比例被固定为一个值, 如 100%等, 则上下文信息中可省略比例参数。

处理模块 132可根据操作控制信令所包括的操作类别以及 上下文模块 131 存储的上下文信息,或者根据操作控制信令所 包括的操作类别和操作参数以及 上下文模块 131存储的上下文信息,计算更新的转码参数, 并生成包括更新的 转码参数的转码指令。

这样, 会话控制单元 101 可以对操作动作进行解析, 根据操作动作以及 上下文信息,计算更新后的转码参数。会话控 制单元 101通过转码指令调度转 码单元 102 , 指示转码单元 102执行相应的转码动作。 这里, 本发明实施例不 限制所有的转码指令均需依据上下文信息生成 。 例如, 某些操作(如下面表 1 例示的初始化操作)可能不需要上下文信息。

可选地, 作为另一实施例, 上下文模块 131 所存储的上下文信息还可以 包括用户代理的播放窗口的尺寸参数和 /或原始视频图像的尺寸参数。 这些尺 寸参数一般是固定不变的。存储这些尺寸参数 可以使得处理模块 132的处理更 快捷。 例如, 播放窗口的尺寸参数可以是窗口宽度和高度, 原始视频图像的尺 寸参数可以是图像宽度和高度,但是本发明实 施例对尺寸参数的具体形式不作 限制。 例如, 尺寸参数可以是对角线两个端点的坐标或者对 角线长度等。

另一方面, 上下文模块 131 还可以利用本次操作动作的结果更新上下文 信息, 从而使得上下文信息与当前视频图像保持一致 。 例如, 上下文模块 131 可将本次操作控制信令指示的操作动作所产生 的相应参数添加到上下文信息 中, 或替代之前存储的相应参数。在上下文模块 131存储多个历史操作动作产 生的参数的情况下, 可以更方便地实现操作动作的回退。

下面还将结合具体实施例描述根据上下文信息 和本次操作动作计算调整 后的转码参数的例子。

本发明实施例中会话控制单元根据用户代理的 操作控制信令生成转码指 令, 以使得转码单元动态更新转码参数,从而实现 了根据需要对原始视频进行 动态转码处理, 提高了视频动态调整的操作灵活度。

另外, 本发明实施例的转码单元可以仅仅对部分视频 进行转码处理和发 送, 节省网络资源和运算资源。

图 3是本发明一个实施例的动态调整视频的终端 框图。 图 3的终端 30 包括播放模块 31、 生成模块 32、 发送模块 33和接收模块 34。 播放模块 31、 生成模块 32、 发送模块 33和接收模块 34也可以组合为上述用户代理。 终端 30可以作为图 1的系统 100的一部分。 例如, 终端 30可以与系统 100的会话 控制单元 101和转码单元 102进行通信。 或者, 终端 30可以包括系统 100的 会话控制单元 101 , 与网络侧的转码单元 102进行通信。 下面结合图 1的系统 100描述终端 30的各个模块, 因此将适当省略重复的描述。

播放模块 31播放从转码单元 102接收的视频图像。 生成模块 32在视频 播放过程中生成操作控制信令,该操作控制信 令包括对视频图像执行的操作动 作的操作类别或者包括操作动作的操作类别和 操作参数。

发送模块 33向会话控制单元 101发送操作控制信令, 以便于会话控制单 元 101根据操作控制信令生成转码指令并向转码单 元 102发送转码指令,该转 码指令包括更新的转码参数,以便于转码单元 102根据更新的转码参数对从视 频源接收的原始视频图像进行转码处理, 从而生成转码后的视频图像。

接收模块 34从转码单元 102接收转码后的视频图像, 播放模块 31播放 该转码后的视频图像。

本发明实施例的终端在需要对视频图像进行操 作动作时, 不进行本地处 理, 而是向会话控制单元发送操作控制信令,使得 会话控制单元更新转码单元 的转码参数,从而由转码单元完成视频的调整 处理。这样能够提高视频动态调 整的操作灵活度。 另外, 本发明实施例能够节省终端的运算资源和网络 传输所 需的资源。

本发明实施例对终端 30的具体形式不作限制。 例如, 终端 30可以是移 动终端或固定终端等, 可以经无线或有线方式与网络侧进行通信,如 移动电话 (或称为"蜂窝"电话)和计算机等, 例如, 可以是便携式、 袖珍式、 手持式、 计算机内置的装置或者车载的装置等。

可选地, 作为一个实施例, 生成模块 32可根据用户在视频播放过程中对 视频图像的操作动作而生成操作控制信令; 或者,操作控制信令可以是预先设 定的, 由生成模块 32定时触发, 或通过事件触发方式实现。 例如, 操作控制 信令可包括该操作动作的操作类别 (如缩放、 漫游、 填充等), 或者包括该操 作动作的操作类别和操作参数(如有操作参数 的话)。 下面还将结合表 1的实 施例具体描述操作控制信令所包括的一些操作 类别和相应操作参数(如果该操 作类别有操作参数的话) 的例子。 但应注意, 表 1的实施例仅仅是示例性的, 而非对本发明实施例范围的限制。

例如, 用户可通过鼠标、 键盘、 手指触摸屏、 手写笔, 操作软件按钮、 菜单或屏幕来实现对视频画面的缩放、 移动、 局部放大等操作动作的配置。 另 一方面, 用户可通过遥控器、 按键、 智能感应输入设备, 操作解码器来实现对 视频画面的缩放、 移动、 局部放大等操作动作的配置。 生成模块 32生成相应 的操作控制信令, 以指示操作动作。 下文中还将结合具体实施例更加详细地描 述对视频图像执行的操作动作的例子。

可选地, 作为一个实施例, 操作控制信令所包括的操作类别可以是初始 化操作,操作控制信令所包括的操作参数可以 是用户代理 (如用户代理的播放 模块 31 ) 的播放窗口的尺寸参数、 原始视频图像的尺寸参数以及原始视频图 像在播放窗口中的位置参数。播放窗口的尺寸 参数可以是播放窗口的宽度和高 度, 例如以像素为单位, 表示播放窗口的分辨率。 原始视频图像的尺寸参数可 以是原始视频图像的宽度和高度, 例如以像素为单位,表示原始视频图像的分 辨率。 原始视频图像在播放窗口中的位置参数可以是 原始视频图像中某一点 (例如左上角的起点)在播放窗口中的坐标。 本发明实施例对上述参数的具 体形式不作限制。

或者, 操作控制信令所包括的操作类别可以是缩放操 作, 操作控制信令 所包括的操作参数可以是缩放后的视频图像相 对于原始视频图像的比例参数, 例如可以是宽度缩放百分比和高度缩放百分比 。但本发明实施例对上述参数的 具体形式不作限制。

或者, 操作控制信令所包括的操作类别可以是画面漫 游操作, 操作控制 信令所包括的操作参数可以是漫游后的视频图 像相对于原始视频图像的偏移 尺寸参数。 画面漫游是指所播放的视频图像在播放窗口内 移动的操作, 例如图 像跟随用户的鼠标在不同方向上平移。 偏移尺寸参数可以是图像移动的距离, 如在横坐标上移动的长度(可以为正值、 负值或零)或在纵坐标上移动的长度 (可以为正值、 负值或零)。但本发明实施例对上述参数的具 体形式不作限制。

或者, 操作控制信令所包括的操作类别可以是局部缩 放操作, 操作控制 信令所包括的操作参数为局部缩放目标区域的 尺寸参数、 位置参数和比例参 数。 局部缩放是对部分视频图像(即上述局部缩放 目标区域内的视频图像)进 行缩放的操作。局部缩放目标区域的尺寸参数 可以是该区域的宽度和高度, 例 如以像素为单位。局部缩放目标区域的位置参 数可以是该区域中的某一点(例 如左上角的起点)在播放窗口中的坐标。局部 缩放目标区域的比例参数可以是 该区域的缩放百分比。但本发明实施例对上述 参数的具体形式不作限制, 例如 局部缩放目标区域的比例参数也可以是缩放后 的相应区域的宽度和高度。

或者, 操作控制信令所包括的操作类别可以是停止局 部缩放操作。 停止 局部缩放操作是指停止上述局部缩放的操作, 可以恢复为播放原始视频图像或 局部缩放操作之前的视频图像。停止局部缩放 操作可以不需要操作参数。如果 需要恢复为局部缩放操作之前的视频图像,则 操作控制信令有可能包含与该局 部缩放操作之前的视频图像有关的操作参数。

或者, 操作控制信令所包括的操作类别可以是播放位 置居中操作。 播放 位置居中操作是使得所播放的视频图像位于播 放窗口中间位置的操作。播放位 置居中操作可以不需要操作参数,也可以根据 需要包括其他操作参数, 本发明 对此不作限制。

或者, 操作控制信令所包括的操作类别可以是满屏填 充操作。 播放位置 居中操作是使得所播放的视频图像填充满播放 窗口的操作。满屏填充操作可以 不需要操作参数, 也可以根据需要包括其他操作参数, 本发明对此不作限制。

但是, 本发明实施例不限于上述具体例子, 可以根据需要增加、 删除或 替换所例示的操作动作。 例如, 可以增加一些更复杂的操作动作(如多个局部 视频的叠加, 或一个或多个局部视频与全部视频的叠加等) 及相应的参数。 这 些修改均落入本发明实施例的范围内。

图 4是本发明一个实施例的动态调整视频的方法 流程图。下面结合图 1 的系统 100描述图 4的方法, 并适当省略重复的描述。

301 , 会话控制单元 101在视频播放过程中, 接收用户代理发送的操作控 制信令, 根据操作控制信令生成转码指令, 转码指令包括更新的转码参数;

302, 会话控制单元 101向转码单元 102发送所述转码指令, 以便于转码 单元 102根据更新的转码参数对从视频源接收的原始 视频图像进行转码处理, 从而生成转码后的视频图像以及将转码后的视 频图像发送给用户代理。

本发明实施例中会话控制单元根据用户代理的 操作控制信令生成转码指 令, 以使得转码单元动态更新转码参数,从而实现 了根据需要对原始视频进行 动态转码处理, 提高了视频动态调整的操作灵活度。

另外, 本发明实施例无需终端对视频图像进行本地调 整处理, 从而能够 节省终端的运算资源。本发明实施例还能够节 省转码单元的运算资源和视频传 输所需的网络资源。

可选地, 作为一个实施例, 在步骤 301 中, 可根据操作控制信令所包括 的操作类别或者根据操作控制信令所包括的操 作类别和操作参数,计算更新的 转码参数, 并生成包括更新的转码参数的转码指令。

可选地, 作为另一实施例, 在步骤 301 中, 可根据操作控制信令所包括 的操作类别以及上下文信息或者根据操作控制 信令所包括的操作类别和操作 参数以及上下文信息,计算更新的转码参数, 其中上下文信息包括当前视频图 像的位置参数和 /或比例参数。

可选地, 作为另一实施例, 上下文信息还可包括用户代理的播放窗口的 尺寸参数和 /或原始视频图像的尺寸参数。

可选地, 作为另一实施例, 更新的转码参数可包括部分视频图像的位置 参数。转码单元可根据所述部分视频图像的位 置参数,从原始视频图像中截取 部分视频图像, 对部分视频图像进行转码以生成转码后的视频 图像。

可选地, 作为另一实施例, 更新的转码参数还可包括部分视频图像的比 例参数。转码单元可根据部分视频图像的比例 参数,对所截取的部分视频图像 进行缩放, 对缩放后的部分视频图像进行转码以生成转码 后的视频图像。

可选地, 作为另一实施例, 转码单元在对缩放后的部分视频图像进行转 码以生成转码后的视频图像时,可将缩放后的 部分视频图像叠加到原始视频图 像上, 并对叠加后的视频图像进行转码以生成转码后 的视频图像。

可选地, 作为另一实施例, 操作控制信令所包括的操作类别为初始化操 作,操作控制信令所包括的操作参数为用户代 理的播放窗口的尺寸参数、原始 视频图像的尺寸参数以及原始视频图像在播放 窗口中的位置参数; 或者,操作 控制信令所包括的操作类别为缩放操作,操作 控制信令所包括的操作参数为缩 放后的视频图像相对于原始视频图像的比例参 数; 或者,操作控制信令所包括 的操作类别为画面漫游操作,操作控制信令所 包括的操作参数为漫游后的视频 图像相对于原始视频图像的偏移尺寸参数; 或者,操作控制信令所包括的操作 类别为局部缩放操作,操作控制信令所包括的 操作参数为局部缩放目标区域的 尺寸参数、 位置参数和比例参数; 或者, 操作控制信令所包括的操作类别为停 止局部缩放操作;或者,操作控制信令所包括 的操作类别为播放位置居中操作; 或者, 操作控制信令所包括的操作类别为满屏填充操 作。

图 5是本发明另一实施例的动态调整视频的方法 流程图。 图 5的方法 可以由图 3的终端 30执行, 因此将适当省略重复的描述。

501 , 播放从转码单元接收的视频图像;

502 , 在视频播放过程中生成操作控制信令, 该操作控制信令包括对视频 图像执行的操作动作的操作类别或者包括操作 动作的操作类别和操作参数;

503 , 向会话控制单元发送操作控制信令, 以便于会话控制单元根据操作 控制信令生成转码指令并向转码单元发送转码 指令,转码指令包括更新的转码 参数,以便于转码单元根据更新的转码参数对 从视频源接收的原始视频图像进 行转码处理, 从而生成转码后的视频图像;

504 , 从转码单元接收转码后的视频图像, 并播放转码后的视频图像。 本发明实施例的终端在需要对视频图像进行操 作动作时, 不进行本地处 理, 而是向会话控制单元发送操作控制信令,使得 会话控制单元更新转码单元 的转码参数,从而由转码单元完成视频的调整 处理。这样能够提高视频动态调 整的操作灵活度。 另外, 本发明实施例能够节省终端的运算资源和网络 传输所 需的资源。 可选地, 作为一个实施例, 在步骤 502 中, 可根据用户在视频播放过程 中对视频图像的操作动作而生成操作控制信令 ; 或者,操作控制信令可以是预 先设定的, 由生成模块 32定时触发, 或通过事件触发方式实现。

可选地, 作为另一实施例, 操作控制信令所包括的操作类别为初始化操 作,操作控制信令所包括的操作参数为用户代 理的播放窗口的尺寸参数、原始 视频图像的尺寸参数以及原始视频图像在播放 窗口中的位置参数; 或者,操作 控制信令所包括的操作类别为缩放操作,操作 控制信令所包括的操作参数为缩 放后的视频图像相对于原始视频图像的比例参 数; 或者,操作控制信令所包括 的操作类别为画面漫游操作,操作控制信令所 包括的操作参数为漫游后的视频 图像相对于原始视频图像的偏移尺寸参数; 或者,操作控制信令所包括的操作 类别为局部缩放操作,操作控制信令所包括的 操作参数为局部缩放目标区域的 尺寸参数、 位置参数和比例参数; 或者, 操作控制信令所包括的操作类别为停 止局部缩放操作;或者,操作控制信令所包括 的操作类别为播放位置居中操作; 或者, 操作控制信令所包括的操作类别为满屏填充操 作。

图 6是本发明另一实施例的播放视频的过程的示 流程图。 图 6的实施 例中, 沿用与图 1相同的附图标记以表示相同的部件。 另外, 图 6中的用户代 理 103可以在终端侧实现, 视频源 104用于存储视频内容并根据转码单元 102 的请求向转码单元 102发送原始视频。 视频源 104可以是任何现有的视频源, 因此不再赘述。

601 , 用户代理 103向转码单元 102请求视频。

602, 转码单元 102根据用户代理 103的请求, 向视频源 104请求视频。

603 , 视频源 104向转码单元 102返回原始视频图像。 原始视频图像可以 是实时视频、 录像、 静态图像等, 本发明对此不作限制。

步骤 603中发送原始视频图像的方式可参照现有技术 , 因此不再赘述。 604 ,转码单元 102对原始视频图像进行转码处理,返回适合用 户代理 103 的分辨率和编码格式的视频图像, 以便用户代理 103进行播放。

步骤 604中, 转码单元 102所使用的转码参数可以是未经更新的转码参 数,也可以是经图 5的方法一次或多次更新后的转码参数, 本发明对此不作限 制。

605 , 在播放过程中用户调整播放区域或分辨率, 或用户代理 103根据用 户设定自动调整播放区域或分辨率,因此用户 代理 103发送操作控制信令到会 话控制单元 101。 操作控制信令可指示某一操作动作。

606, 会话控制单元 101根据操作控制信令所指示的操作动作和自身 存储 的上下文信息 (如图 2中的上下文模块 131存储的上下文信息), 将操作控制 信令转变为转码指令, 并向转码单元 102发送该转码指令。

607 , 转码单元 102根据转码指令的指示, 更新转码参数。

608, 转码单元 102继续从视频源 104接收原始视频图像, 并根据更新后 的转码参数, 对所接收的原始视频图像进行转码处理。

609, 转码单元 102 将在步骤 608 中转码后的视频图像发送给用户代理 103 , 以便用户代理 103进行播放。

此后, 如果还需进行其他操作动作, 可重复步骤 605-609。

传统的转码单元只能对完整的视频进行转码处 理, 因此也只能将完整的 视频发送给用户代理。 在此情况下, 如果用户只需观看部分视频, 转码单元仍 然需要处理全部视频并将全部视频发送给用户 代理,浪费了转码单元的运算资 源并占用网络资源。

本发明实施例的转码单元 102 的转码参数可以灵活更新, 可以仅仅处理 一部分视频, 从而节省转码单元 102的运算资源。 例如, 在用户需要放大局部 视频图像时,转码单元 102可以仅仅处理该局部视频图像,对除了该局 部视频 图像之外的部分不作处理, 节省了运算资源。

另外, 本发明实施例的转码单元 102 只传输转码后的视频图像, 而无需 传输全部视频, 从而节省了网络资源。 例如, 在用户需要在图像 A上叠加较 小的图像 B时, 转码单元 102可以不处理图像 A被图像 B遮挡的部分, 节省 运算资源; 同时, 转码单元 102可以不传输图像 A被图像 B遮挡的部分, 节 省网络资源。

传统的终端如果需要在本地播放窗口中进行视 频图像的缩放等处理, 则 需要占用终端上用户代理的解码、编码等运算 资源。本发明实施例的转码单元 101负责执行视频图像的转码处理, 而无需用户代理 103的本地调整处理, 这 样能够节省终端的运算资源。

下面结合具体例子, 更加详细地描述本发明实施例。 应注意, 这些例子 是为了帮助本领域技术人员更好地理解本发明 实施例,而非要限制本发明实施 例的范围。 本领域技术人员可以基于这些例子进行修改, 如釆用其他伪代码、 其他操作动作、 其他参数名等, 这样的修改均落入本发明实施例的范围内。

结合图 6的流程图描述以下具体例子。用户代理 103向会话控制单元 101 发送的操作控制信令所指示的操作动作有多种 , 不同操作类别对应有不同参 数, 以及参数描述, 如表 1所示。 操作类别 操作参数 参数描述 初始化 ( Init ) sWidth 视频图像分辨率 sHeight iWidth 播放窗口分辨率 iHeight 视频图像的播放起始 点坐标

Y 缩放(Zoom ) scaleWidth 视频图像缩放比例 scaleHeight 移动的距离。

画面漫游(Move ) lengthX

可以支持 8 个方向的 lengthY 移动, lengthXO表示 右移、 lengthX>0表示 左移、 lengthX=0表示 左 右位 置 不 动 。 lengthYO表示下移、 lengthY>0表示上移、 length Y=0表示上下位 置不动。 局部缩放 ( Part Zoom ) W 局部缩放目标区域尺

H 寸

X 局部缩放目标区域起 始坐标

Y wScale 局部缩放比例 hScale 停止局部缩放 NA 无参数

( StopPartZoom ) 播放位置居中 NA 无参数

( MakeCenter ) 满屏填充(FillScreen ) NA 无参数 下面给出会话控制单元 101根据表 1 中的操作动作得到转码指令的伪代 码的例子,但这些例子只是为了帮助本领域技 术人员理解实现本发明实施例的 一种实施方式, 而非要限制本发明实施例的范围。 本领域技术人员根据所给出 的伪代码的例子, 显然可以进行各种等价的修改或变化, 这样的修改或变化也 落入本发明实施例的范围内。

初始化操作动作转换为转码指令的伪代码的例 子如下:

Init(sWidth,sHeight,iWidth,iHeight)

Context. ScreenWidth = s Width;

Context. ScreenHeight = sHeight;

Context.Image Width = iWidth; Context.ImageHeight = iHeight;

Context.PositionX = 0;

Context. PositionY = 0;

Context. CurrentScaleWidth= iWidth/s Width;

Context.CurrentScaleHeight: iHeight/sHeight;

Output.PositionX= 0;

Output.PositionY =0;

Output.Image Width = iWidth;

Output.ImageHeight = iHeight;

Output. Scale Width= iWidth/sWidth;

Output. ScaleHeight= iHeight/ sHeight;

Context.Out[0]=output;

〃返回结果

return Context. Out; 上述例子中, 初始化操作动作的操作参数 pX和 pY默认为固定值 0。 该 操作动作不需要上下文(Context )信息, 但是会更新上下文信息。 上下文信 息 中 , Context. ScreenWidth 表示用 户 代理的播放窗 口 的 宽度, Context. ScreenHeight表示用户代理的播放窗口的高度, Context.ImageWidth表 示原始视频图像的宽度, Context.ImageHeight表示原始视频图像的高度。 这些 参数在初始化操作之后被更新到在图 2中的上下文模块 131所存储的上下文信 息中, 一般是在初始化之后固定不变的参数。

Context.PositionX 表示当前视频图像在播放窗口中的位置横坐标 , Context.PositionY 表示当前视频图像在播放窗口 中的位置纵坐标, Context.CurrentScaleWidth 表示当前视频图像的宽度缩放百分比, Context.CurrentScaleHeight表示当前视频图像的高度 放百分比。 这些参数是 本次操作动作产生的参数, 可能会随着操作动作而产生变化, 也会更新到图 2 中的上下文模块 131中存储的上下文信息中。

Context.Out[]表示当前输出, 其中的内容与上下文信息是一致的。 当前输 出为向转码单元 102发送的转码指令。 转码单元 102需要根据 Context.Out[] 中所指示的转码参数进行转码操作。 例如, 参照上述伪代码, 转码单元 102 按照 Output.PositionX和 Output.PositionY将视频图像的起点坐标更新为 [0,0]。 转码单元 102按照 Output.ImageWidth将视频图像的宽度设置为 iWidth, 按照 Output.ImageHeight将视频图像的高度设置为 iHeight。 转码单元 102还按照 Output. Scale Width将视频图像的宽度缩放比例设置为 iWidth/s Width, 并按照 Output. ScaleHeight将视频图像的高度缩放比例设置为 iHeight/sHeight。 其他参 数的定义如表 1所示。 下面的伪代码中, 不再重复描述相同参数的定义。

缩放操作动作转换为转码指令的伪代码的例子 如下:

Output [] Zoom(scale Width, ScaleHeight)

/*计算缩放后的当前比例 */

Context. CurrentScale Width: Context. CurrentScale Width* scale Width;

Context. CurrentScaleHeight= Context. CurrentScaleHeight* ScaleHeight; /*缩放后视频图像在播放窗口中的位置: 缩放后视频图像的中心位置保 持不变, 缩放后视频图像在播放窗口中的位置指左上角 相对播放窗口的位置, 但要考虑 <0的情况, 如果小于 0 , 则设置为 0。 */

tempPositionX= Context.PositionX+( Context.Image Width/2 *

(scaleWidth-l》;

tempPositionY= Context.PositionY+( Context.ImageHeight/2 *

(ScaleHeight- 1));

Context.PositionX = tempPositionX; 〃更新上下文

Context. PositionY = tempPositionY; 〃更新上下文

/*对应的缩放前的视频图像起始点位置, 从该位置开始截取视频图像 */ Output.PositionX= tempPositionX<0?0: tempPositionX;〃如果小于 0, 调 整为 0

Output.PositionX =Output.PositionX I Context. CurrentScale Width;

Output.PositionY= tempPositionY<0?0: tempPositionY;〃 ¾口果小于 0 , 调 整为 0

Output.PositionY =Output.PositionY I Context. CurrentScaleHeight;

/*实际播放窗口中有视频图像的区域

注意此处使用播放窗口的尺寸进行计算。 */

AfterScaleImageWidth= Context. Image Width* Context. CurrentScale Width;

AfterScaleImageHeight= Context.ImageHeight *

Context. CurrentScaleHeight;

ScreenFillWidth= tempPositionX>0? AfterScalelmage Width - tempPositionX: AfterScalelmage Width;

ScreenFillHeight= tempPositionY>0? AfterScalelmageHeight - tempPositionY: AfterScalelmageHeight;

ScreenFillWidth= ScreenFillWidth> Context. ScreenWidth?

Context. ScreenWidth: ScreenFillWidth;

ScreenFillHeight= ScreenFillWidth> Context. ScreenHeight?

Context. ScreenHeight: ScreenFillHeight;

/*计算缩放后的视频图像, 在原始视频图像中所占的尺寸

注意此处使用播放窗口的尺寸进行计算。 */

Output.Image Width = ScreenFillWidth I Context. CurrentScale Width;

Output.ImageHeight = ScreenFillHeight I Context. CurrentScaleHeight;

Output. Scale Width= Context. CurrentScale Width;〃缩放比例

Output. ScaleHeight= Context. CurrentScaleHeight;〃缩放比例

Context.Out[0]=output;

〃返回结果

return Context. Out;

Context.Out[]表示当前输出, 其中的内容与上下文信息是一致的。 当前输 出为向转码单元 102发送的转码指令。 转码单元 102需要根据 Context.Out[] 中所指示的转码参数进行转码操作。 例如, 参照上述伪代码, 转码单元 102 按照 Output.PositionX和 Output.PositionY更新视频图像的起点坐标。转码 元 102 按照 Output.Image Width 将视频图像的宽度设置为 ScreenFillWidth I Context.CurrentScale Width,按照 Output.ImageHeight将视频图像的高度设置为 ScreenFillHeight I Context. CurrentScaleHeight。 转码单元 102 还按照 Output. Scale Width 将 视 频 图 像 的 宽 度 缩 放 比 例 设 置 为 Context.CurrentScale Width , 并按照 Output. ScaleHeight将视频图像的高度缩放 比例设置为 Context. CurrentScaleHeight。

漫游操作动作转换为转码指令的伪代码的例子 如下:

Output[] Move(lengthX,lengthY) tempPositionX= Context.PositionX+ lengthX;〃当前图像左右移动

tempPositionY= Context.PositionY+ length Y;〃当前图像上下移动

Context.PositionX = tempPositionX; 〃更新上下文

Context. PositionY = tempPositionY; 〃更新上下文

/*对应的缩放前的视频图像起始点位置, 从该位置开始截取视频图像 */ Output.PositionX= tempPositionX<0?0: tempPositionX;〃如果小于 0, 调整 为 0

Output.PositionX =Output.PositionX I Context.CurrentScale Width;

Output.PositionY= tempPositionY<0?0: tempPositionY;〃 ¾口果小于 0 , 调 整为 0

Output.PositionY =Output.PositionY I Context. CurrentScaleHeight;

/*实际播放窗口中有视频图像的区域, 注意此处使用播放窗口的尺寸、 缩放后视频图像大小、 偏移位置进行计算。 */

AfterScaleImageWidth= Context.Image Width* Context.CurrentScale Width;

AfterScaleImageHeight= Context.ImageHeight *

Context. CurrentScaleHeight;

ScreenFillWidth= tempPositionX>0? AfterScalelmage Width - tempPositionX: AfterScalelmage Width;

ScreenFillHeight: tempPositionY>0? AfterScalelmageHeight - tempPositionY: AfterScalelmageHeight;

ScreenFillWidth= ScreenFillWidth> Context. ScreenWidth?

Context. ScreenWidth: ScreenFillWidth;

ScreenFillHeight= ScreenFillWidth> Context. ScreenHeight?

Context. ScreenHeight: ScreenFillHeight;

/*计算缩放后的视频图像, 在原始视频图像中所占的尺寸

注意此处使用播放窗口的尺寸进行计算。 */

Output.Image Width = ScreenFillWidth I Context.CurrentScale Width; Output.ImageHeight = ScreenFillHeight I Context. CurrentScaleHeight;

Output. Scale Width= Context.CurrentScale Width;〃缩放比例

Output. ScaleHeight= Context. CurrentScaleHeight;〃缩放比例

Context.Out[0]=output;

〃返回结果

return Context. Out;

Context.Out[]表示当前输出, 其中的内容与上下文信息是一致的。 当前输 出为向转码单元 102发送的转码指令。 转码单元 102需要根据 Context.Out[] 中所指示的转码参数进行转码操作。 例如, 参照上述伪代码, 转码单元 102 按照 Output.PositionX和 Output.PositionY更新视频图像的起点坐标。。 转码单 元 102 按照 Output.Image Width将视频图像的宽度设置为 ScreenFillWidth I Context.CurrentScale Width,按照 Output.ImageHeight将视频图像的高度设置为 ScreenFillHeight I Context. CurrentScaleHeight。 转码单元 102 还按照 Output. Scale Width 将 视 频 图 像 的 宽 度 缩 放 比 例 设 置 为 Context.CurrentScale Width , 并按照 Output. ScaleHeight将视频图像的高度缩放 比例设置为 Context. CurrentScaleHeight。

局部缩放操作动作转换为转码指令的伪代码的 例子如下:

Output[] PartZoom(x,y,w,h,wScale,hScale) /*计算缩放后的当前比例 */

Output2. Scale Width= Context. CurrentScale Width* wScale;

Output2. ScaleHeight= Context.CurrentScaleHeight*hScale;

/*缩放后局部视频图像在播放窗口中的位置: 缩放后视频图像的中心位 置保持不变,缩放后视频图像在播放窗口中的 位置指左上角相对播放窗口的位 置, 但要考虑 <0的情况, 如果小于 0, 则设置为 0。 */

tempPositionX= x+( w/2* (Output2. Scale Width -1));

tempPositionY=y+( h/2* (Output2. ScaleHeight -1));

/*对应的缩放前的视频图像起始点位置, 从该位置开始截取视频图像 */

Output2.PositionX= tempPositionX<0?0: tempPositionX;〃如果小于 0 , 调 整为 0

Output2.PositionX =Output2.PositionX I Output2. Scale Width;

Output2. Position Y= tempPositionY<0?0: tempPositionY;〃如果小于 0 , 调 整为 0

Output2.Position Y =Output2.Position Y I Output2. ScaleHeight;

/*实际播放窗口中有视频图像的区域

注意此处使用播放窗口的尺寸进行计算。 */

AfterScaleImageWidth= w* Output2. Scale Width;

AfterScaleImageHeight= h* Output2. ScaleHeight;

ScreenFillWidth= tempPositionX>0? AfterScalelmage Width - tempPositionX: AfterScalelmage Width;

ScreenFillHeight= tempPositionY>0? AfterScalelmageHeight - tempPositionY: AfterScalelmageHeight;

ScreenFillWidth= ScreenFillWidth> Context. ScreenWidth?

Context. ScreenWidth: ScreenFillWidth;

ScreenFillHeight= ScreenFillWidth> Context. ScreenHeight?

Context. ScreenHeight: ScreenFillHeight;

/*计算缩放后的视频图像, 在原始视频图像中所占的尺寸

注意此处使用播放窗口的尺寸进行计算。 */ Output2. Image Width = ScreenFillWidth I Output2. Scale Width;

Output2.ImageHeight = ScreenFillHeight / Output2. ScaleHeight;

Context.Out[l ]=output2;

〃返回结果

return Context. Out;

Context.Out[]表示当前输出, 其中的内容与上下文信息是一致的。 当前输 出为向转码单元 102发送的转码指令。 转码单元 102需要根据 Context.Out[] 中所指示的转码参数进行转码操作。 例如, 参照上述伪代码, 转码单元 102 按照 Output2.PositionX和 Output2.PositionY更新视频图像的起点坐标。。 转码 单元 102按照 Output2.Image Width将视频图像的宽度设置为 ScreenFillWidth I Output2. Scale Width , 按照 Output.ImageHeight 将视频图像的高度设置为 ScreenFillHeight / Output2. ScaleHeight。转码单元 102还按照 Output2. Scale Width 将视频图像的宽度缩放比例设置为 Context.CurrentScaleWidth* wScale,并按照 Output2.ScaleHeight 将 视 频 图 像 的 高 度 缩 放 比 例 设 置 为 Context.CurrentScaleHeight*hScale。

停止局部缩放操作动作转换为转码指令的伪代 码的例子如下:

Output口 StopPartZoom()

Context.Out[l ]=null;

return Context. Out; Context.Out[]表示当前输出。当前输出为向转码 元 102发送的转码指令。 转码单元 102根据该转码指令停止局部缩放操作,例如可 以将转码参数恢复为 初始化之后的转码参数。

播放位置居中操作动作转换为转码指令的伪代 码的例子如下:

Output口 MakeCenter()

ί AfterScaleImageWidth= Context. Image Width* Context.CurrentScale Width;

AfterScaleImageHeight= Context.ImageHeight *

Context. CurrentScaleHeight;

ScreenFillWidth: AfterScaleImageWidth> Context. ScreenWidth? Context. ScreenWidth: AfterScalelmage Width;

ScreenFillHeight= AfterScaleImageHeight> Context. ScreenHeight? Context. ScreenHeight: AfterScalelmageHeight;

Context.PositionX = AfterScalelmage Width >

Context. ScreenWidth?(AfterScaleImage Width- Context. ScreenWidth)/2:0;

Context.PositionY= AfterScalelmageHeight >

Context. ScreenHeight?(AfterScaleImageHeight- Context. ScreenHeight)/2:0;

Output.PositionX= Context . PositionX;

Output.PositionY: Context . Position Y;

Output.Image Width: ScreenFillWidth/ Context.CurrentScale Width;

Output.ImageHeight= ScreenFillHeight/ Context. CurrentScaleHeight;

Output. Scale Width: Context.CurrentScale Width;

Output. ScaleHeight: Context. CurrentScaleHeight;

Context.Out[0]= Output;

return Context. Out;

Context.Out[]表示当前输出, 其中的内容与上下文信息是一致的。 当前输 出为向转码单元 102发送的转码指令。 转码单元 102需要根据 Context.Out[] 中所指示的转码参数进行转码操作。 例如, 参照上述伪代码, 转码单元 102 按照 Output.PositionX和 Output.PositionY更新视频图像的起点坐标。。 转码单 元 102 按照 Output.Image Width将视频图像的宽度设置为 ScreenFillWidth I Context.CurrentScale Width,按照 Output.ImageHeight将视频图像的高度设置为 ScreenFillHeight I Context. CurrentScaleHeight。 转码单元 102 还按照 Output. Scale Width 将 视 频 图 像 的 宽 度 缩 放 比 例 设 置 为 Context.CurrentScale Width , 并按照 Output. ScaleHeight将视频图像的高度缩放 比例设置为 Context. CurrentScaleHeight。

满屏填充操作动作转换为转码指令的伪代码的 例子如下:

Output[] FillScreen()

Context.PositionX = 0;

Context.PositionY = 0;

Context. CurrentScale Width= Context.Image Width I Context. ScreenWidth; Context. CurrentScaleHeight: Context.ImageHeight I Context. ScreenHeight;

Output.PositionX= 0;

Output.PositionY =0;

Output.Image Width = Context.Image Width;

Output.ImageHeight = Context.ImageHeight;

Output. Scale Width: Context. CurrentScale Width;

Output. ScaleHeight: Context. CurrentScaleHeight;

Context.Out[0]=output;

〃返回结果

return Context. Out;

Context.Out[]表示当前输出, 其中的内容与上下文信息是一致的。 当前输 出为向转码单元 102发送的转码指令。 转码单元 102需要根据 Context.Out[] 中所指示的转码参数进行转码操作。 例如, 参照上述伪代码, 转码单元 102 按照 Output.PositionX和 Output.PositionY将视频图像的起点坐标更新为 [0,0]。 转码单元 102 按照 Output.Image Width 将视频图像的宽度设置为 Context.Image Width , 按照 Output.ImageHeight 将视频图像的高度设置为 Context.ImageHeight转码单元 102还按照 Output. Scale Width将视频图像的宽 度缩放比例设置为 Context. CurrentScale Width, 并按照 Output. ScaleHeight将视 频图像的高度缩放比例设置为 Context.CurrentScaleHeight。 根据上述例子,会话控制单元 101最终生成转码指令 Context.Out[] ,根据 转码指令, 调度转码单元 102 更新转码参数并根据更新后的转码参数进行转 码。

转码单元 102对从视频源(如图 6的视频源 104 )接收的原始视频进行解 码、 截取、 缩放、 局部放大、 叠加、 编码等处理, 生成转码后的视频。 例如, 可通过上述局部缩放操作动作实现截取、 局部放大和叠加的功能。

具体地, 转码单元 102在进行解码时, 可将编码后的数字视频, 解码为 易于计算机理解的图像格式, 如: 将 H264格式解码为 YUV (亮度和色差信 号)或 BMP ( Bitmap, 位图)格式。

转码单元 102 在进行截取时, 可从完整的原始视频图像中截取需要处理 或输出的部分视频图像。 例如, 可将局部缩放的操作参数 wScale和 hScale设 置为 1 , X和 Y表示所截取的部分视频图像的起始坐标, W和 H分别表示所 截取的部分视频图像的宽度和高度。如果需要 输出完整的原始视频图像, 则全 部截取, 即 X和 Y为 0, W和 H分别为原始视频图像的宽度和高度。

转码单元 102 在进行缩放时, 可对截取出的图像, 按照一定的比例进行 扩充或缩小, 此时局部缩放的操作参数 wScale和 hScale可能不为 1。 缩放时 一般釆用插值算法。如果进行局部放大,对于 局部放大的区域之外的其它视频 图像可以不进行缩放和传输, 以加快运算, 节省运算资源和网络资源。 另外, 转码单元 102在进行局部放大时,局部放大可和其它视频 图像的缩放和并行或 串行执行。

转码单元 102 在进行叠加时, 可以将局部放大的视频图像叠加到其它视 频图像, 即用局部放大后的视频图像的像素,替换其它 视频图像对应位置的像 素。 这样, 无需传输被替换的像素, 能够节省网络资源。

转码单元 102 在进行编码时, 将转码后的视频画面, 编码为利于在网络 上传输的数字视频格式。 如: 将 YUV或 BMP格式编码为 H264或 MPEG4。 然后转码单元 102可以向用户代理 103发送经编码的转码后的视频图像。

下面给出转码单元 102 进行转码处理的伪代码的一个例子。 但该例子只 是为了帮助本领域技术人员理解实现本发明实 施例的一种实施方式,而非要限 制本发明实施例的范围。 本领域技术人员根据所给出的伪代码的例子, 显然可 以进行各种等价的修改或变化,这样的修改或 变化也落入本发明实施例的范围 内

OutputStream Transfer(InputStream)

Loop{

Image dest=null;

Image img=decode(InputStream.read);〃解码接 4丈到的图像

For(Output in Context.Out[])

Image sublmg=cut(lmg, Output);〃根据起始位置, 截取图像

〃根据缩放比例和其它参数进行转码。

Image transfedlmg=transfer(sublmg,0utput, ...);

Dest=dest+ transfedlmg;〃图像叠力口

OutputStream.write(encode(dest)); //输出转码后的图像

在截取图像时, 转码单元 102可按照 Output (转码指令) 中包括的起始 坐标(X, Y )和尺寸 (W, H )截取相应的图像。

用户代理 103接收并播放由转码单元 102转码后的视频。 例如, 用户代 理 103可以在播放窗口中播放所接收的视频。

图 7-图 11是本发明实施例的视频播放例子的示意图。 图 7-图 11的例子 仅仅是为了解释可实施本发明实施例的场景, 而非限制本发明实施例的范围。 在图 7-图 11的描述中, "播放区域"是指视频图像位于播放窗口中的那 分区 域。

图 7 是完整填充视频的例子, 可利用上述满屏填充操作动作来实现。 如 图 7所示, 视频图像(阴影部分) 刚好能够填充满播放窗口 (粗实线框)。 这 种情况下, 参照上述满屏填充操作动作的伪代码, 如果原始视频图像分辨率大 于播放窗口的分辨率, Context. CurrentScaleWidth= Context.Image Width I Context. ScreenWidth> 1 或 Context. CurrentScaleHeight =Context.ImageHeight I Context.ScreenHeight>l ,则转码单元 102根据播放窗口的分辨率对原始视频进 行缩小, 缩放比按照 Output. Scale Width= Context. CurrentScale Width 和 Output. ScaleHeight= Context. CurrentScaleHeight。

另一方面, 如果原始视频图像小于播放窗口的分辨率, 转码单元 102 可 以透传原始视频, 由用户代理 103进行放大。也可以釆用上述表 1的满屏填充 操作动作, 由转码单元 102根据播放窗口分辨率进行放大。也可以釆用 这两种 方式的结合。具体使用哪种方式取决于用户代 理 103的运算能力和网络带宽的 评估。

图 7中, 宽度 Width是指视频图像的播放区域宽度所占的像素 目,此处 即为播放窗口的宽度。 高度 Height是指视频图像的播放区域高度所占的像素 数目, 此处即为播放窗口的高度。

起点坐标(X , y ) 为视频图像在播放区域中的相对位置, 此处 (X , y ) 为 (0, 0 )。

图 8是部分填充视频的例子。 在图 8的例子中, 视频图像(阴影部分) 小于播放窗口 (粗实线框)。 图 8的例子可通过局部缩放操作动作实现, 其中 转码指令要求转码单元 102截取完整的原始视频图像,并将原始视频图 像缩放 至阴影部分的区域(播放区域) 的尺寸。 相应参数的设置不再赘述。

这种情况下, 如果原始视频图像分辨率大于播放区域的分辨 率, 则转码 单元 102根据播放区域的分辨率对原始视频进行缩小 。如果原始视频图像小于 播放区域的分辨率,转码单元 102可以透传原始视频, 由用户代理 103进行放 大; 也可以由转码单元 102根据播放窗口分辨率进行放大; 也可以两种方式相 结合。 具体使用哪种方式取决于用户代理的运算能力 和网络带宽的评估。

图 8中, 宽度 Width为视频图像的播放区域宽度所占的像素数 , 高度 Height为视频图像的播放区域高度所占的像素数 目。 起点坐标(X, y )为视频 图像在播放区域中的相对位置, 此处 (X , y )为 (0, 0 )。

图 9为视频图像超出播放区域的例子。 图 9的例子中, 播放区域与播放 窗口 (粗实线框)相同, 能实现视频图像(阴影部分)的局部播放和漫 游。 图 9的例子可通过上述画面漫游操作动作实现。

当视频图像放大到一定程度时, 会超出播放区域。 在此情况下, 允许用 户代理 103播放部分图像(如图 9所示的播放窗口内的图像)。 并且可以保持 视频图像分辨率不变的情况下移动图像,播放 不同的区域, 实现视频图像的漫 游。

这种情况下, 如果原始视频图像分辨率大于播放区域的分辨 率, 则转码 单元 102根据播放区域的分辨率对原始视频图像进行 截取,丟弃播放区域外的 图像, 只对播放区域的视频图像进行转码。

图 9中, 宽度 Width为视频图像的播放区域宽度所占的像素数 , 高度 Height为视频图像的播放区域高度所占的像素数 目。 起点坐标(X, y )为视频 图像在播放区域中的相对位置, 此处 (X , y ) 的值参见图 9所示。

图 10为部分填充视频图像的例子。 图 10的例子中, 播放区域(粗实线 框中的阴影部分) 小于播放窗口 (粗实线框), 同样能够实现视频图像的局部 播放和漫游。 图 10的例子可通过上述画面漫游操作动作实现。

视频图像在漫游中, 允许移出播放区域。 这种情况下, 如果原始视频图 像分辨率大于播放区域的分辨率,则转码单元 102根据播放区域的分辨率对原 始视频进行截取,丟弃播放区域外的图像,只 对播放区域的视频图像进行转码。

图 10中, 宽度 Width为视频图像的播放区域宽度所占的像素数 , 高度

Height为视频图像的播放区域高度所占的像素 数目。 起点坐标(X, y )为播放 区域在完整视频图像中的相对位置, 此处(X, y ) 的值参见上图。 如果 x<0, 则设置 x=0; 或者, 如果 y<0, 则设置 y=0。

图 11A和图 11B是视频局部放大的例子。 图 11A是局部放大前的视频, 假设与图 7相似,视频图像(阴影部分 )刚好能够填充满播放窗口(粗实线框)。

现在需要将 W1-H1所表示的虚框内的视频图像(称为 "局部放大目标区 域")放大到 W2-H2所表示的虚框(称为 "局部放大后区域";)。 宽度放大比例 为 W2/W1 , 高度放大比例为 H2/H1。

在视频播放的过程中, 允许对局部视频图像进行放大, 例如通过上述局 部缩放操作动作。在这种情况下, 转码单元 102首先根据播放区域的分辨率对 原始视频进行转码; 然后转码单元 102对选中的局部放大目标区域中的图像, 根据指定的比例 (如上述 W2/W1和 H2/H1 )进行转码; 最后将两次转码结果 进行视频叠加。 图 11B显示了叠加后的视频图像。

另夕卜, 转码单元 102在对原始视频进行转码时, 可以对 W2-H2覆盖的区 域不执行转码处理, 因为这个区域将来会被放大后的 W1-H1遮住而看不到。 这样能够节省转码单元 102的运算资源。

图 11A-11B中, 宽度 Width为视频图像的播放区域宽度所占的像素数 , 高度 Height为视频图像的播放区域高度所占的像素数 目。 W1为局部放大目标 区域宽度所占像素数目, HI 为局部放大目标区域高度所占像素数目。 W2 为 局部放大后区域宽度所占像素数目, H2为局部放大后区域高度所占像素数目。

起点坐标(X , y ) 为视频图像在播放区域中的相对位置, 此处 (X , y ) 为 (0, 0 )。 起点坐标(xl , yl )为局部放大目标区域相对于播放区域的位置 起点坐标(x2, y2 )为局部放大后区域相对于播放区域的位置。

本发明实施例中会话控制单元根据用户代理的 操作控制信令生成转码指 令, 以使得转码单元动态更新转码参数,从而实现 了根据需要对原始视频进行 动态转码处理, 提高了视频动态调整的操作灵活度。

另外, 本发明实施例的转码单元可以仅仅对部分视频 进行转码处理和发 送, 节省网络资源和运算资源。

本领域普通技术人员可以意识到, 结合本文中所公开的实施例描述的各 示例的单元及算法步骤, 能够以电子硬件、或者计算机软件和电子硬件 的结合 来实现。这些功能究竟以硬件还是软件方式来 执行,取决于技术方案的特定应 用和设计约束条件。专业技术人员可以对每个 特定的应用来使用不同方法来实 现所描述的功能, 但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述描 述的系统、装置和单元的具体工作过程, 可以参考前述方法实施例中的对应过 程, 在此不再赘述。

在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统、 装置和 方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示意 性的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有 另外的划分方式, 例如多个单元或组件可以结合或者可以集成到 另一个系统, 或一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或 直接耦合或通信连接可以是通过一些接口, 装置或单元的间接耦合或通信连 接, 可以是电性, 机械或其它的形式。 为单元显示的部件可以是或者也可以不是物理 单元, 即可以位于一个地方, 或 者也可以分布到多个网络单元上。可以根据实 际的需要选择其中的部分或者全 部单元来实现本实施例方案的目的。

另外, 在本发明各个实施例中的各功能单元可以集成 在一个处理单元中, 也可以是各个单元单独物理存在 ,也可以两个或两个以上单元集成在一个单元 中。

所述功能如果以软件功能单元的形式实现并作 为独立的产品销售或使用 时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本发明的技 术方案本质上或者说对现有技术做出贡献的部 分或者该技术方案的部分可以 以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中, 包括 若干指令用以使得一台计算机设备(可以是个 人计算机, 服务器, 或者网络设 备等)执行本发明各个实施例所述方法的全部 或部分步骤。 而前述的存储介质 包括: U盘、 移动硬盘、 只读存储器(ROM, Read-Only Memory ), 随机存取 存储器(RAM, Random Access Memory ), 磁碟或者光盘等各种可以存储程序 代码的介质。

以上所述,仅为本发明的具体实施方式,但本 发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明 揭露的技术范围内, 可轻易想到 变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护范围应 所述以权利要求的保护范围为准。