一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

解码时间检测方法、解码方法及相关设备与流程

2022-06-11 16:12:12 来源:中国专利 TAG:


1.本公开涉及计算机和通信技术领域,具体而言,涉及一种解码时间检测方法、解码时间检测装置、解码方法、解码装置、电子设备和计算机可读存储介质。


背景技术:

2.在一些应用场景中,需要精确估计终端设备中的用于解码视频码流的解码器对应的硬件芯片的单帧解码耗时,但相关技术中的单帧解码耗时估计方式没有考虑到硬件芯片的解码囤帧以及网络抖动情况,从而导致其估计的单帧解码耗时不够准确,不能满足这些应用场景下的需求。
3.因此,需要一种新的解码时间检测方法、解码时间检测装置、解码方法、解码装置、电子设备和计算机可读存储介质。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。


技术实现要素:

5.本公开实施例提供一种解码时间检测方法、解码时间检测装置、解码方法、解码装置、电子设备和计算机可读存储介质,能够提高解码器的单帧解码时间的检测准确性。
6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
7.本公开实施例提供一种解码时间检测方法,所述方法包括:确定解码器的囤帧数量s,s为大于或等于0的整数;根据所述囤帧数量s,获得所述解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,k为大于1的正整数;根据所述待解码视频帧中的第k待解码视频帧和第k-1待解码视频帧,获得所述解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间;根据所述第一负荷解码时间和所述第二负荷解码时间,确定所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间。
8.本公开实施例提供一种解码方法,所述方法包括:确定解码器的囤帧数量s,s为大于或等于0的整数;根据所述囤帧数量s,获得所述解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,k为大于1的正整数;根据所述待解码视频帧中的第k待解码视频帧和第k-1待解码视频帧,获得所述解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间;根据所述第一负荷解码时间和所述第二负荷解码时间,确定所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间;根据所述第k待解码视频帧的目标解码时间解码所述待解码视频。
9.本公开实施例提供一种解码时间检测装置,所述装置包括:解码器囤帧数量确定单元,用于确定解码器的囤帧数量s,s为大于或等于0的整数;第一负荷解码时间获得单元,用于根据所述囤帧数量s,获得所述解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,k为大于1的正整数;第二负荷解码时间获得单元,用于根据所述待解码视频帧中
的第k待解码视频帧和第k-1待解码视频帧,获得所述解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间;目标解码时间获得单元,用于根据所述第一负荷解码时间和所述第二负荷解码时间,确定所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间。
10.在本公开的一些示例性实施例中,解码器囤帧数量确定单元包括:测试码流获得单元,用于获得与所述待解码视频具有相同视频尺寸的测试码流;测试视频帧输入单元,用于向所述解码器输入所述测试码流中的k帧测试视频帧,k为大于或等于1的正整数,所述k帧测试视频帧中位于最后的第一预设数量的测试视频帧不为即时解码刷新帧;测试解码帧统计单元,用于统计所述解码器解码所述测试码流输出的t帧测试解码帧,t为大于或等于1的正整数;囤帧数量获得单元,用于根据所述k帧测试视频帧和所述t帧测试解码帧,获得所述解码器的囤帧数量s。
11.在本公开的一些示例性实施例中,解码器囤帧数量确定单元包括:预设待解码视频帧获得单元,用于获得所述待解码视频中前第二预设数量的待解码视频帧;待解码视频帧输入单元,用于获取第i时刻向所述解码器输入的所述第二预设数量的待解码视频帧中的ki帧待解码视频帧,ki为大于或等于1的正整数,i为大于或等于1且小于或等于所述第二预设数量的正整数;解码视频帧输出单元,用于记录第i时刻所述解码器解码所述第二预设数量的待解码视频帧输出的ti帧解码视频帧,ti为大于或等于1的正整数;预定时刻囤帧数量获得单元,用于根据所述ki帧待解码视频帧和所述ti帧解码视频帧,获得所述解码器在第i时刻的囤帧数量;囤帧数量确定单元,用于根据所述解码器在第i时刻的囤帧数量,确定所述解码器的囤帧数量s。
12.在本公开的一些示例性实施例中,预设待解码视频帧获得单元包括:视频帧类型获得单元,用于获得所述待解码视频中的待解码视频帧的帧类型;即时解码刷新帧剔除单元,用于从所述待解码视频中剔除帧类型为即时解码刷新帧及其前后第三预设数量的待解码视频帧;第二数量待解码视频帧选择单元,用于从剩余的所述待解码视频中选择前所述第二预设数量的待解码视频帧。
13.在本公开的一些示例性实施例中,待解码视频帧输入单元包括:慢启动单元,用于在第j时刻以预定速度将kj帧待解码视频帧输入至所述解码器,以使得所述解码器的缓冲区内不存在待解码视频帧;其中,j为大于或等于1且小于或等于i的正整数。
14.在本公开的一些示例性实施例中,第一负荷解码时间获得单元包括:第一时间戳获得单元,用于根据所述囤帧数量s,获得所述待解码视频中第k s待解码视频帧输入所述解码器的第一时间戳;第二时间戳获得单元,用于获得所述解码器解码所述待解码视频中第k待解码视频帧的第二时间戳;第一负荷解码时间计算单元,用于根据所述第一时间戳和所述第二时间戳,获得所述第一负荷解码时间。
15.在本公开的一些示例性实施例中,第二负荷解码时间获得单元包括:第三时间戳获得单元,用于获得所述解码器解码所述待解码视频中第k待解码视频帧的第三时间戳;第四时间戳获得单元,用于获得所述解码器解码所述待解码视频中第k-1待解码视频帧的第四时间戳;第二负荷解码时间计算单元,用于根据所述第三时间戳和所述第四时间戳,获得所述第二负荷解码时间。
16.在本公开的一些示例性实施例中,目标解码时间获得单元包括:比对单元,用于比
对所述第一负荷解码时间和所述第二负荷解码时间;目标解码时间确定单元,用于将所述第一负荷解码时间和所述第二负荷解码时间中的最小值确定为所述解码器解码所述第k待解码视频帧的目标解码时间。
17.在本公开的一些示例性实施例中,所述装置还包括:云游戏性能确定单元,用于若所述待解码视频为云游戏视频,则根据所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间,确定是否将所述云游戏视频下发至包括所述解码器的终端设备。
18.本公开实施例提供一种解码装置,所述装置包括:解码器囤帧数量确定单元,用于确定解码器的囤帧数量s,s为大于或等于0的整数;第一负荷解码时间获得单元,用于根据所述囤帧数量s,获得所述解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,k为大于1的正整数;第二负荷解码时间获得单元,用于根据所述待解码视频帧中的第k待解码视频帧和第k-1待解码视频帧,获得所述解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间;目标解码时间获得单元,用于根据所述第一负荷解码时间和所述第二负荷解码时间,确定所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间;待解码视频解码单元,用于根据所述第k待解码视频帧的目标解码时间解码所述待解码视频。
19.本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的解码时间检测方法和解码方法。
20.本公开实施例提供了一种电子设备,包括:至少一个处理器;存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如上述实施例中所述的解码时间检测方法和解码方法。
21.本公开实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的解码时间检测方法和解码方法。
22.在本公开的一些实施例所提供的技术方案中,一方面,通过确定解码器的囤帧数量s,从而可以根据确定的解码器的囤帧数量s,来获得该解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,即本公开实施例对存在解码囤帧情况的解码器的单帧解码时间的检测方式进行了优化,可以使得解码器的单帧解码耗时估计更为准确;另一方面,还进一步根据所述待解码视频帧中的第k待解码视频帧和第k-1待解码视频帧,获得该解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间,以用于对网络抖动等因素带来的解码器的送帧不均匀等场景进行适配。同时,本公开实施例还根据上述方式确定的第一负荷解码时间和第二负荷解码时间,来最终确定该解码器解码该待解码视频中第k待解码视频帧的目标解码时间,对具有解码囤帧情况的解码器进行了优化,也有效规避了网络抖动等异常情况导致送帧不均匀所带来的单帧解码时间估计的偏差,从而可以准确地检测解码器的单帧解码耗时。可以将本公开实施例提供的方案应用于例如云游戏或者其他对单帧解码耗时的估计精确度较高的视频应用场景。
23.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
24.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
25.图1示意性示出了根据本公开的一实施例的解码时间检测方法的流程图。
26.图2示意性示出了根据本公开的一实施例的解码器囤帧数量为3的示意图。
27.图3示意性示出了图1实施例中的步骤s110在一示例性实施例中的流程图。
28.图4示意性示出了根据本公开的一实施例的囤帧数量计算的示意图。
29.图5示意性示出了图1实施例中的步骤s110在一示例性实施例中的流程图。
30.图6示意性示出了图1实施例中的步骤s120在一示例性实施例中的流程图。
31.图7示意性示出了图1实施例中的步骤s130在一示例性实施例中的流程图。
32.图8示意性示出了根据本公开的一实施例的解码时间检测方法的流程图。
33.图9示意性示出了将本公开实施例提供的解码时间检测方法应用于云游戏场景下的示意图。
34.图10示意性示出了根据本公开的一实施例的解码方法的流程图。
35.图11示意性示出了根据本公开的一实施例的解码时间检测装置的方框图。
36.图12示意性示出了根据本公开的一实施例的解码装置的方框图。
37.图13示出了适于用来实现本公开实施例的电子设备的结构示意图。
具体实施方式
38.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
39.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
40.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在至少一个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
41.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
42.相关技术中的硬件的解码器的单帧解码耗时计算方式,是通过记录向解码器输入视频帧的时间戳以及解码器解码输入的视频帧后输出视频帧的时间戳,并根据这两个时间戳的差值进行计算的,即根据如下公式:
43.44.上述公式(1)中,表示视频第k帧的码流送入解码器的时间戳,表示视频第k帧从解码器解码输出图像(称之为出帧)的时间戳,δtk表示视频的第k帧的解码时间,k为大于1的正整数。
45.但上述相关技术中的单帧解码耗时计算方案没有考虑到该解码器的硬件芯片可能存在解码囤帧的情况。解码囤帧是指往解码器送入一定数量的视频帧码流以后,解码器才会输出解码图像。
46.对这类硬件芯片,相关技术中的单帧解码耗时计算方式并不准确,具体表现为以下两个方面(这里以囤3帧为例):
47.第一,计算的第k帧解码时间包含了以后第k 1帧、第k 2帧的解码时间。
48.第二,若由于网络抖动或其他原因导致第k 3帧的送入时间出现波动,会导致第k帧的出帧时间也出现波动。由于这些抖动可能不可估计,从而导致第k帧的解码耗时计算不准确。
49.而在很多视频应用场景下,例如云游戏,需要对解码器的硬件芯片的单帧解码耗时精确计算,以确定对应的终端设备的硬件芯片能否能够享有优质的云游戏服务体验。而相关技术中的技术方案无法解决具有解码囤帧情况的解码器的单帧解码耗时的精确性问题,不能满足这类场景的业务需求。
50.本公开实施例提供了一种解码时间检测方法,以用于解决上述相关技术中存在的至少一个技术问题。本公开实施例提供的解码时间检测方法和解码方法,可以由任意的电子设备执行,例如终端设备或者服务器。其中,终端设备可以包括但不限于智能手机、平板电脑、台式计算机、笔记本电脑、可穿戴智能设备、智能电视等中的任意一种或者多种。其中,服务器可以是独立的服务器,也可以是多个服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器。
51.图1示意性示出了根据本公开的一实施例的解码时间检测方法的流程图。图1实施例以终端设备执行为例进行举例说明,但本公开并不限定于此。如图1所示,本公开实施例提供的方法可以包括以下步骤。
52.在步骤s110中,确定解码器的囤帧数量s,s为大于或等于0的整数。
53.本公开实施例中,解码器是设置于终端设备中用于解码待解码视频的硬件芯片,其可以具有解码囤帧能力。
54.本公开实施例中,解码囤帧是指硬件的解码器在传入一定数量的待解码视频中的待解码视频帧以后,才开始有对应的待解码视频帧输出的现象。
55.其中,对同一解码器而言,囤帧数量可以因待解码视频的视频尺寸而异,例如部分解码器的硬件芯片在1080p(p是progressive scan的简写,代表逐行扫描,通常1080p的画面分辨率为1920*1080像素)的待解码视频的视频流下,囤帧数量s可以是3。对于囤帧数量为3的硬件芯片,只有在送入第4帧待解码视频帧的码流以后,第1帧待解码视频帧的解码视频帧才会从解码器输出。
56.例如,如图2所示,以解码器囤帧数量为3为例,当往解码器中输入第m 3待解码视频帧,第m 2待解码视频帧,第m 1待解码视频帧的输入帧数据后,解码器才输出第m待解码视频帧解码后的第m解码视频帧的解码帧数据,此时第m 4待解码视频帧还未输入该解码器
中,m为大于或等于1的正整数。
57.本公开实施例中,可以采用测试码流测试获得解码器的囤帧数量,也可以直接利用待解码视频获得解码器的囤帧数量,具体可以分别参见下图3和图5的实施例。
58.在步骤s120中,根据所述囤帧数量s,获得所述解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,k为大于1的正整数。
59.本公开实施例中,在网络抖动等外部因素影响下,向解码器送帧的间隔往往是不均匀的。在特定情况下会出现一次送很多待解码视频帧或者一段时间没有送待解码视频帧。
60.当一段时间没有往解码器内输入待解码视频帧,或者输入待解码视频帧的速度较慢,解码器的硬件芯片能够及时的解码输入的待解码视频帧,解码器的缓冲区内没有待解码视频帧,将缓冲区内没有待解码视频帧的状态称之为解码器处于低负荷状态(或者第一负荷状态)。
61.本公开实施例中,第一负荷解码时间是指根据解码器的囤帧数量,来估计处于低负荷状态的解码器解码待解码视频中第k待解码视频帧的单帧解码耗时。
62.具体计算第一负荷解码时间的方式可以参照下图6的实施例。
63.在步骤s130中,根据所述待解码视频帧中的第k待解码视频帧和第k-1待解码视频帧,获得所述解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间。
64.当一次送很多待解码视频帧时,解码器的硬件芯片会出现短时间内不足以完成所有输入的待解码视频帧的解码,从而导致输入的待解码视频帧在解码器的缓冲区堆积,缓冲区内的待解码视频帧尚未开始解码,这种情况称之为解码帧堆积,并将解码器的缓冲区出现解码帧堆积的状态称之为解码器处于高负荷状态(或者第二负荷状态)。
65.本公开实施例中,第二负荷解码时间是指估计的处于高负荷状态的解码器解码待解码视频中第k待解码视频帧的单帧解码耗时。
66.具体计算第二负荷解码时间的方式可以参照下图7的实施例。
67.在步骤s140中,根据所述第一负荷解码时间和所述第二负荷解码时间,确定所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间。
68.本公开实施例中,可以综合考虑上述计算获得的处于低负荷状态的解码器的第一负荷解码时间和处于高负荷状态的解码器的第二负荷解码时间来最终确定该解码器解码该待解码视频中第k待解码视频帧的目标解码时间。
69.本公开实施方式提供的解码时间检测方法,一方面,通过确定解码器的囤帧数量s,从而可以根据确定的解码器的囤帧数量s,来获得该解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,即本公开实施例对存在解码囤帧情况的解码器的单帧解码时间的检测方式进行了优化,可以使得解码器的单帧解码耗时估计更为准确;另一方面,还进一步根据所述待解码视频帧中的第k待解码视频帧和第k-1待解码视频帧,获得该解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间,以用于对网络抖动等因素带来的解码器的送帧不均匀等场景进行适配。同时,本公开实施例还根据上述方式确定的第一负荷解码时间和第二负荷解码时间,来最终确定该解码器解码该待解码视频中第k待解码视频帧的目标解码时间,对具有解码囤帧情况的解码器进行了优化,也有效规避了网络抖动等异常情况导致送帧不均匀所带来的单帧解码时间估计的偏差,从而可以准确地检测
解码器的单帧解码耗时。可以将本公开实施例提供的方案应用于例如云游戏或者其他对单帧解码耗时的估计精确度较高的视频应用场景。
70.图3示意性示出了图1实施例中的步骤s110在一示例性实施例中的流程图。如图3所示,上述图1实施例中的步骤s110可以进一步包括以下步骤。
71.在步骤s111中,获得与所述待解码视频具有相同视频尺寸的测试码流。
72.例如,若待解码视频的视频尺寸为1080p,则对应的测试码流的视频尺寸也为1080p,但本公开并不限定于此。
73.在步骤s112中,向所述解码器输入所述测试码流中的k帧测试视频帧,k为大于或等于1的正整数,所述k帧测试视频帧中位于最后的第一预设数量的测试视频帧不为即时解码刷新帧。
74.本公开实施例中,即时解码刷新(instantaneous decoding refresh,idr)帧是一种特殊的i帧,即这一帧之后的所有参考帧只会参考到这一帧。其中,i帧(帧内编码帧)是一种自带全部信息的独立帧,无需参考其它图像便可独立进行解码,i帧和idr帧都是使用帧内预测的,在编码和解码中,把首个i帧称之为idr帧,方便控制编码和解码流程。idr帧的作用是立刻刷新,使错误不致传播,从idr帧开始,重新算一个新的视频序列开始编码或解码。
75.在步骤s113中,统计所述解码器解码所述测试码流输出的t帧测试解码帧,t为大于或等于1的正整数。
76.在步骤s114中,根据所述k帧测试视频帧和所述t帧测试解码帧,获得所述解码器的囤帧数量s。
77.例如,如图4所示,假设解码器中输入k帧测试视频帧,解码器解码输出t帧测试解码帧,则可以根据以下公式计算该解码器对应待解码视频的视频尺寸的囤帧数量s:
78.s=k-t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
79.即在计算特定视频尺寸的解码器的硬件芯片的囤帧数量时,可以首先向解码器送入一定数量(k帧)的测试视频帧,并统计解码出帧的数量(t帧),根据两者的差值可以得到该解码器的硬件芯片的囤帧数量。
80.上述这种计算囤帧数量的方式需要保证最后送进解码器的测试视频帧的帧类型不是idr帧,因为idr帧之后的所有参考帧只会参考到这一帧。由于idr帧的语义,多数具有解码囤帧的硬件芯片在收到idr帧后,会对原来内部囤帧做相应的清理,因此会导致计算的囤帧数量不准确。对于囤帧数量为s的硬件芯片,idr帧及idr帧前后(s-1)帧的囤帧测试结果都是不准确的,都应该排除。
81.本公开实施例中,按照时间顺序依次将测试码流中的每k帧测试视频帧输入至编码器,并记录对应的解码器输出的t帧测试解码帧,为了测试结果的准确性,可以选择最后一次的测试结果作为最终的该解码器的囤帧数量,即最后一次送入该解码器的k帧测试视频帧及其对应的解码器输出的t帧测试解码帧的差值作为该解码器的囤帧数量s,考虑到大多数情况下,硬件芯片的囤帧数量为3,所以在测试时,保证测试码流最后3帧(第一预设数量)不是idr帧即可。可以在编码测试码流时,控制编码的每一帧测试视频帧的帧类型。
82.本公开实施方式提供的解码时间检测方法,通过控制编码的每一帧测试视频帧的帧类型,可以保证测试解码器的囤帧数量所采用的测试码流中不包括idr帧,或者最后3帧不是idr帧,从而可以确保计算的解码器的囤帧数量的准确性。
83.图5示意性示出了图1实施例中的步骤s110在一示例性实施例中的流程图。如图5所示,上述图1实施例中的步骤s110可以进一步包括以下步骤。
84.在步骤s115中,获得所述待解码视频中前第二预设数量的待解码视频帧。
85.在示例性实施例中,获得所述待解码视频中前第二预设数量的待解码视频帧,可以包括:获得所述待解码视频中的待解码视频帧的帧类型;从所述待解码视频中剔除帧类型为即时解码刷新帧及其前后第三预设数量的待解码视频帧;从剩余的所述待解码视频中选择前所述第二预设数量的待解码视频帧。
86.在步骤s116中,获取第i时刻向所述解码器输入的所述第二预设数量的待解码视频帧中的ki帧待解码视频帧,ki为大于或等于1的正整数,i为大于或等于1且小于或等于所述第二预设数量的正整数。
87.在示例性实施例中,获取第i时刻向所述解码器输入的所述第二预设数量的待解码视频帧中的ki帧待解码视频帧,可以包括:在第j时刻以预定速度将kj帧待解码视频帧输入至所述解码器,以使得所述解码器的缓冲区内不存在待解码视频帧;其中,j为大于或等于1且小于或等于i的正整数。
88.采用图5实施例的实时检测方式时,需要实现慢启动,即最开始几帧待解码视频帧送入解码器不能太快,使得解码器的硬件芯片有充足时间完成每一帧的解码,不会出现解码器没有完成解码而导致待解码视频帧的码流数据堆积的现象,这样囤帧数量的计算才更加准确。本公开实施例中,所述预定速度可以根据具体的解码器和待解码视频帧来确定,只要其能够满足解码器的缓冲区内不存在待解码视频帧,即不发生囤帧情况即可。例如,可以根据测试来确定一个临界速度,这个临界速度使得解码器不会发生囤帧所能达到的速度上限,选取预定速度小于或等于该临界速度即可。
89.在步骤s117中,记录第i时刻所述解码器解码所述第二预设数量的待解码视频帧输出的ti帧解码视频帧,ti为大于或等于1的正整数。
90.在步骤s118中,根据所述ki帧待解码视频帧和所述ti帧解码视频帧,获得所述解码器在第i时刻的囤帧数量。
91.在步骤s119中,根据所述解码器在第i时刻的囤帧数量,确定所述解码器的囤帧数量s。
92.在实际业务中,若没有图3实施例中的测试码流,仍可以通过实时解码待解码视频获取解码器的囤帧数量。例如,可以在待解码视频的解码过程实时记录各个时刻的进帧(向解码器输入待解码视频帧)和出帧(解码器解码待解码视频帧后输出解码视频帧)的数量,根据对应时刻两者的差值获得对应时刻的囤帧数量,取所有时刻的囤帧数量的最小值作为解码器的囤帧数量s,并可以根据解码过程实时更新:
93.s=min{k
i-ti}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
94.一般地,利用待解码视频的视频流的前10帧(第二预设数量)即可完成测试。同样地,为了保证上述计算结果的准确性,获得的前10帧待解码视频帧应该是排除了idr帧的,考虑到大多数情况下囤帧数量为3,公式(3)的计算排除待解码视频帧中的idr帧及其前后2帧(第三预设数量)的数据,即需要排除idr帧自身及该idr帧前的2帧和该idr帧后的2帧。
95.本公开实施方式提供的解码时间检测方法,可以直接通过记录待解码视频帧的实时解码过程即获得解码器的囤帧数量,不需要借助额外的测试码流。
96.图6示意性示出了图1实施例中的步骤s120在一示例性实施例中的流程图。如图6所示,上述图1实施例中的步骤s120可以进一步包括以下步骤。
97.在步骤s121中,根据所述囤帧数量s,获得所述待解码视频中第k s待解码视频帧输入所述解码器的第一时间戳。
98.在步骤s122中,获得所述解码器解码所述待解码视频中第k待解码视频帧的第二时间戳。
99.在步骤s123中,根据所述第一时间戳和所述第二时间戳,获得所述第一负荷解码时间。
100.本公开实施例中,可以通过分别记录向解码器送帧(向解码器输入待解码视频帧)的第一时间戳和出帧的第二时间戳,根据两者的差值进行第一负荷解码时间的计算:
[0101][0102]
上述公式(4)中,δtk表示解码器解码所述待解码视频中第k待解码视频帧的目标解码时间,表示所述解码器解码所述待解码视频中第k待解码视频帧的第二时间戳,表示所述待解码视频中第k s待解码视频帧输入所述解码器的第一时间戳,s是上述实施例计算获得的解码器的硬件芯片的囤帧数量,即待解码视频中第k待解码视频帧的第一负荷解码时间(单帧硬件解码时间或者单帧解码时间)是根据上述第一时间戳和第二时间戳的差值来计算的。
[0103]
本公开实施方式提供的解码时间检测方法,在检测解码器的单帧硬件解码时间时,避免了解码器的硬件芯片的解码囤帧情况对计算结果的影响,可以提高单帧硬件解码时间的估计准确度,因为对于囤帧数量为s的硬件芯片而言,需要送入第k s待解码视频帧,第k待解码视频帧才会解码出帧。对于不囤帧的硬件芯片而言,s=0,也不影响其计算结果。
[0104]
图7示意性示出了图1实施例中的步骤s130在一示例性实施例中的流程图。如图7所示,上述图1实施例中的步骤s130可以进一步包括以下步骤。
[0105]
在步骤s131中,获得所述解码器解码所述待解码视频中第k待解码视频帧的第三时间戳。
[0106]
在步骤s132中,获得所述解码器解码所述待解码视频中第k-1待解码视频帧的第四时间戳。
[0107]
在步骤s133中,根据所述第三时间戳和所述第四时间戳,获得所述第二负荷解码时间。
[0108]
本公开实施例中,还可以通过以下方式计算解码器的硬件芯片的出帧速度,这里用第二负荷解码时间来衡量。通过记录解码器上次出帧(例如第k-1待解码视频帧解码出帧)的第三时间戳和本次出帧(例如第k待解码视频帧解码出帧)的第四时间戳,并根据两者的差值计算第二负荷解码时间:
[0109][0110]
上述公式中,表示待解码视频第k-1待解码视频帧从解码器解码的第四时间戳,表示待解码视频第k待解码视频帧从解码器解码的第三时间戳,δpk表示解码器处于高负荷状态(或者满负荷状态)下解码第k待解码视频帧的第二负荷解码时间,根据
上述第三时间戳和第四时间戳的差值来计算。
[0111]
上述公式(5)的方式适合于解码器处于满负荷运行的场景,其中解码器处于满负荷状态是指解码器缓冲区内还存有一定数量的待解码视频帧,解码器此时不会出现运行空闲的情况。
[0112]
在示例性实施例中,根据所述第一负荷解码时间和所述第二负荷解码时间,确定所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间,可以包括:比对所述第一负荷解码时间和所述第二负荷解码时间;将所述第一负荷解码时间和所述第二负荷解码时间中的最小值确定为所述解码器解码所述第k待解码视频帧的目标解码时间。
[0113]
本公开实施例中,可以综合上述第一负荷解码时间和第二负荷解码时间两种计算方式,确定准确地计算具有解码囤帧情况的解码器的硬件芯片的目标解码时间δrk的公式:
[0114]
δrk=min{δtk,δpk}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0115]
本公开实施方式提供的解码时间检测方法,在网络抖动等外部原因影响下,向解码器送帧的间隔往往是不均匀的。在特定情况下会出现一次送很多帧(解码器呈现高负荷状态)或者一段时间没有送帧(解码器呈现低负荷状态)。当解码器处于高负荷状态下,由于解码器内部出现待解码视频帧堆积,有很多帧待解码,因此解码器会一直出帧,此时使用上述公式(5)计算更为准确。当解码器处于低负荷状态下,使用上述公式(4)的改进方案更为准确。
[0116]
图8示意性示出了根据本公开的一实施例的解码时间检测方法的流程图。图8实施例所提供的方法可以由任意电子设备执行,例如其内包括解码器的终端设备,但本公开并不限定于此。
[0117]
如图8所示,本公开实施例提供的方法可以包括以下步骤。
[0118]
在步骤s801,确定解码器对应待解码视频的视频尺寸的囤帧数量s。
[0119]
计算囤帧数量s的方式可以参照上述实施例。
[0120]
在步骤s802,记录所述待解码视频中第k s待解码视频帧输入所述解码器的第一时间戳。
[0121]
计算第一时间戳的方式可以参照上述实施例。
[0122]
在步骤s803,记录所述待解码视频中第k待解码视频帧输入所述解码器的第二时间戳。
[0123]
计算第二时间戳的方式可以参照上述实施例。
[0124]
在步骤s804,计算第一时间戳和第二时间戳的差值作为所述解码器解码所述待解码视频中第k待解码视频帧的第一负荷解码时间。
[0125]
计算第一负荷解码时间的方式可以参照上述实施例。
[0126]
在步骤s805,获得所述解码器解码所述待解码视频中第k待解码视频帧的第三时间戳。
[0127]
计算第三时间戳的方式可以参照上述实施例。
[0128]
在步骤s806,获得所述解码器解码所述待解码视频中第k-1待解码视频帧的第四时间戳。
[0129]
计算第四时间戳的方式可以参照上述实施例。
[0130]
在步骤s807,根据所述第三时间戳和所述第四时间戳,获得所述第二负荷解码时间。
[0131]
计算第二负荷解码时间的方式可以参照上述实施例。
[0132]
在步骤s808,当解码器处于低负荷状态时,将第一负荷解码时间作为所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间。
[0133]
在步骤s809,当解码器处于高负荷状态时,将第二负荷解码时间作为所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间。
[0134]
计算目标解码时间的方式可以参照上述实施例。本公开实施例中,为了精确计算解码器的单帧解码耗时,综合以下两种方式计算的第一负荷解码时间和第二负荷解码时间:

进帧的第一时间戳和出帧的第二时间戳,

解码器的硬件芯片的出帧速度,根据这两种方式的最小值估计解码器的单帧解码耗时。
[0135]
本公开实施方式提供的解码时间检测方法,处理了硬件芯片的解码囤帧情况,也有效规避了网络抖动等异常情况导致送帧不均匀所带来的偏差,可以准确计算硬件芯片的单帧解码耗时。
[0136]
在示例性实施例中,所述方法还可以包括:若所述待解码视频为云游戏视频,则根据所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间,确定是否将所述云游戏视频下发至包括所述解码器的终端设备。
[0137]
本公开实施例提供的方法可以用于准确估计解码器的硬件芯片的单帧解码耗时(即目标解码时间),可以被应用在云游戏或者其他视频应用场景,例如视频通话、互动直播、视频会议等实时音视频场景。下面以云游戏为例进行举例说明,但本公开并不限定于此。
[0138]
其中,云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
[0139]
其中,云游戏(cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云服务器中运行,并由云服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云服务器的能力即可。
[0140]
图9示意性示出了将本公开实施例提供的解码时间检测方法应用于云游戏场景下的示意图。
[0141]
参见图9,终端设备920通过网络930连接云服务器910,网络930可以是广域网或者局域网,又或者是二者的组合。
[0142]
终端设备920(运行有客户端,例如游戏客户端、教育学习客户端、搜索客户端等)上设置有解码器的硬件芯片,可以被用来解码从云服务器910获取的待解码的云游戏视频。
[0143]
云游戏将游戏渲染放到了云服务器910,而不是在用户的终端设备920上进行本地渲染,云游戏把游戏玩家的操作指令直接发送到云服务器910,由云服务器910来完成图像渲染,渲染后的图像会被编码成一个视频流(待解码的云游戏视频),然后把这个视频流发到用户的终端设备920上面,完成解码显示。用户在终端设备920上面玩游戏的时候,由于视频编码质量高,延时小,所以效果和本地渲染看起来一样。
[0144]
对用户的终端设备920而言,云游戏即开即玩,不需要下载。以前用户玩一个游戏,需要先在终端设备920上下载一个安装包,而安装包一般比较大,这样既浪费用户时间,也占用终端设备920存储空间。以前用户试玩一个游戏的成本比较高,而采用云游戏,用户可以随时随地打开就玩,轻松体验各种游戏。
[0145]
其次,本地游戏需要在本地渲染,对游戏玩家的终端设备920的硬件配置要求比较高,采用云游戏后,将渲染搬到云服务器910,对用户的终端设备920的配置要求会大大的降低。其次,云游戏解决了跨平台兼容的问题。云游戏采用的视频流方案,解决了各平台终端设备互通的问题。
[0146]
需要说明的是,本公开实施例提供的方法,可应用于云游戏服务的终端设备的硬件能力探测逻辑,也可应用于解码过程的实时统计。通过获取准确的单帧硬件解码耗时,判断该终端设备是否支持优质的云游戏服务体验。同时也可以为解码器提供更精确的解码数据统计。
[0147]
需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何需要对解码器的单帧硬件解码耗时进行准确估计的场景。
[0148]
图10示意性示出了根据本公开的一实施例的解码方法的流程图。本公开实施例提供的解码方法可以由任意电子设备执行,例如终端设备,但本公开并不限定于此。如图10所示,本公开实施例提供的解码方法可以包括以下步骤。
[0149]
在步骤s110中,确定解码器的囤帧数量s,s为大于或等于0的整数。
[0150]
在步骤s120中,根据所述囤帧数量s,获得所述解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,k为大于1的正整数。
[0151]
在示例性实施例中,根据所述囤帧数量s,获得所述解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,可以包括:根据所述囤帧数量s,获得所述待解码视频中第k s待解码视频帧输入所述解码器的第一时间戳;获得所述解码器解码所述待解码视频中第k待解码视频帧的第二时间戳;根据所述第一时间戳和所述第二时间戳,获得所述第一负荷解码时间。
[0152]
在步骤s130中,根据所述待解码视频帧中的第k待解码视频帧和第k-1待解码视频帧,获得所述解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间。
[0153]
在步骤s140中,根据所述第一负荷解码时间和所述第二负荷解码时间,确定所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间。
[0154]
图10实施例中关于具体检测获得解码器解码所述待解码视频中第k待解码视频帧的目标解码时间的方式可以参照上述图1-9实施例的描述。
[0155]
在步骤s1010中,根据所述第k待解码视频帧的目标解码时间解码所述待解码视频。
[0156]
本公开实施方式提供的解码方法,通过获取解码器精确的单帧解码时间,可以更好的控制待解码视频的解码过程。
[0157]
图11示意性示出了根据本公开的一实施例的解码时间检测装置的方框图。本公开实施例提供的解码时间检测装置可以设置于任意的电子设备,例如终端设备。如图11所示,本公开实施例提供的解码时间检测装置1100可以包括:解码器囤帧数量确定单元1110、第一负荷解码时间获得单元1120、第二负荷解码时间获得单元1130以及目标解码时间获得单元1140。
[0158]
本公开实施例中,解码器囤帧数量确定单元1110可以用于确定解码器的囤帧数量s,s为大于或等于0的整数。第一负荷解码时间获得单元1120可以用于根据所述囤帧数量s,获得所述解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,k为大于1的正整数。第二负荷解码时间获得单元1130可以用于根据所述待解码视频帧中的第k待解码视频帧和第k-1待解码视频帧,获得所述解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间。目标解码时间获得单元1140可以用于根据所述第一负荷解码时间和所述第二负荷解码时间,确定所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间。
[0159]
本公开实施方式提供的解码时间检测装置,一方面,通过确定解码器的囤帧数量s,从而可以根据确定的解码器的囤帧数量s,来获得该解码器解码待解码视频中第k待解码视频帧的第一负荷解码时间,即本公开实施例对存在解码囤帧情况的解码器的单帧解码时间的检测方式进行了优化,可以使得解码器的单帧解码耗时估计更为准确;另一方面,还进一步根据所述待解码视频帧中的第k待解码视频帧和第k-1待解码视频帧,获得该解码器解码所述待解码视频中第k待解码视频帧的第二负荷解码时间,以用于对网络抖动等因素带来的解码器的送帧不均匀等场景进行适配。同时,本公开实施例还根据上述方式确定的第一负荷解码时间和第二负荷解码时间,来最终确定该解码器解码该待解码视频中第k待解码视频帧的目标解码时间,对具有解码囤帧情况的解码器进行了优化,也有效规避了网络抖动等异常情况导致送帧不均匀所带来的单帧解码时间估计的偏差,从而可以准确地检测解码器的单帧解码耗时。可以将本公开实施例提供的方案应用于例如云游戏或者其他对单帧解码耗时的估计精确度较高的视频应用场景。
[0160]
在示例性实施例中,解码器囤帧数量确定单元1110可以包括:测试码流获得单元,可以用于获得与所述待解码视频具有相同视频尺寸的测试码流;测试视频帧输入单元,可以用于向所述解码器输入所述测试码流中的k帧测试视频帧,k为大于或等于1的正整数,所述k帧测试视频帧中位于最后的第一预设数量的测试视频帧不为即时解码刷新帧;测试解码帧统计单元,可以用于统计所述解码器解码所述测试码流输出的t帧测试解码帧,t为大于或等于1的正整数;囤帧数量获得单元,可以用于根据所述k帧测试视频帧和所述t帧测试解码帧,获得所述解码器的囤帧数量s。
[0161]
在示例性实施例中,解码器囤帧数量确定单元1110可以包括:预设待解码视频帧获得单元,可以用于获得所述待解码视频中前第二预设数量的待解码视频帧;待解码视频帧输入单元,可以用于获取第i时刻向所述解码器输入的所述第二预设数量的待解码视频
帧中的ki帧待解码视频帧,ki为大于或等于1的正整数,i为大于或等于1且小于或等于所述第二预设数量的正整数;解码视频帧输出单元,可以用于记录第i时刻所述解码器解码所述第二预设数量的待解码视频帧输出的ti帧解码视频帧,ti为大于或等于1的正整数;预定时刻囤帧数量获得单元,可以用于根据所述ki帧待解码视频帧和所述ti帧解码视频帧,获得所述解码器在第i时刻的囤帧数量;囤帧数量确定单元,可以用于根据所述解码器在第i时刻的囤帧数量,确定所述解码器的囤帧数量s。
[0162]
在示例性实施例中,预设待解码视频帧获得单元可以包括:视频帧类型获得单元,可以用于获得所述待解码视频中的待解码视频帧的帧类型;即时解码刷新帧剔除单元,可以用于从所述待解码视频中剔除帧类型为即时解码刷新帧及其前后第三预设数量的待解码视频帧;第二数量待解码视频帧选择单元,用于从剩余的所述待解码视频中选择前所述第二预设数量的待解码视频帧。
[0163]
在示例性实施例中,待解码视频帧输入单元可以包括:慢启动单元,可以用于在第j时刻以预定速度将kj帧待解码视频帧输入至所述解码器,以使得所述解码器的缓冲区内不存在待解码视频帧。其中,j为大于或等于1且小于或等于i的正整数。
[0164]
在示例性实施例中,第一负荷解码时间获得单元1120可以包括:第一时间戳获得单元,可以用于根据所述囤帧数量s,获得所述待解码视频中第k s待解码视频帧输入所述解码器的第一时间戳;第二时间戳获得单元,可以用于获得所述解码器解码所述待解码视频中第k待解码视频帧的第二时间戳;第一负荷解码时间计算单元,可以用于根据所述第一时间戳和所述第二时间戳,获得所述第一负荷解码时间。
[0165]
在示例性实施例中,第二负荷解码时间获得单元1130可以包括:第三时间戳获得单元,可以用于获得所述解码器解码所述待解码视频中第k待解码视频帧的第三时间戳;第四时间戳获得单元,可以用于获得所述解码器解码所述待解码视频中第k-1待解码视频帧的第四时间戳;第二负荷解码时间计算单元,可以用于根据所述第三时间戳和所述第四时间戳,获得所述第二负荷解码时间。
[0166]
在示例性实施例中,目标解码时间获得单元1140可以包括:比对单元,可以用于比对所述第一负荷解码时间和所述第二负荷解码时间;目标解码时间确定单元,可以用于将所述第一负荷解码时间和所述第二负荷解码时间中的最小值确定为所述解码器解码所述第k待解码视频帧的目标解码时间。
[0167]
在示例性实施例中,解码时间检测装置1100还可以包括:云游戏性能确定单元,可以用于若所述待解码视频为云游戏视频,则根据所述解码器解码所述待解码视频中第k待解码视频帧的目标解码时间,确定是否将所述云游戏视频下发至包括所述解码器的终端设备。
[0168]
本公开实施例提供的解码时间检测装置中的各个单元的具体实现可以参照上述解码时间检测方法中的内容,在此不再赘述。
[0169]
图12示意性示出了根据本公开的一实施例的解码装置的方框图。本公开实施例提供的解码装置可以设置于任意的电子设备,例如终端设备。如图12所示,本公开实施例提供的解码装置1200可以包括:解码器囤帧数量确定单元1110、第一负荷解码时间获得单元1120、第二负荷解码时间获得单元1130、目标解码时间获得单元1140以及待解码视频解码单元1210。
[0170]
其中,解码器囤帧数量确定单元1110、第一负荷解码时间获得单元1120、第二负荷解码时间获得单元1130、目标解码时间获得单元1140的实现可以参照上述图11实施例。待解码视频解码单元1210可以用于根据所述第k待解码视频帧的目标解码时间解码所述待解码视频。
[0171]
本公开实施例提供的解码装置中的各个单元的具体实现可以参照上述解码方法中的内容,在此不再赘述。
[0172]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
[0173]
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的解码时间检测方法。
[0174]
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的解码方法。
[0175]
本公开实施例提供了一种电子设备,包括:至少一个处理器;存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如上述实施例中所述的解码时间检测方法。
[0176]
本公开实施例提供了一种电子设备,包括:至少一个处理器;存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如上述实施例中所述的解码方法。
[0177]
本公开实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的解码时间检测方法。
[0178]
本公开实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施例中提供的解码方法。
[0179]
图13示出了适于用来实现本公开实施例的电子设备的结构示意图。需要说明的是,图13示出的电子设备1300仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0180]
如图13所示,电子设备1300包括中央处理单元(cpu,central processing unit)1301,其可以根据存储在只读存储器(rom,read-only memory)1302中的程序或者从储存部分1308加载到随机访问存储器(ram,random access memory)1303中的程序而执行各种适当的动作和处理。在ram 1303中,还存储有系统操作所需的各种程序和数据。cpu1301、rom 1302以及ram 1303通过总线1304彼此相连。输入/输出(input/output,i/o)接口1305也连接至总线1304。
[0181]
以下部件连接至i/o接口1305:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(crt,cathode ray tube)、液晶显示器(lcd,liquid crystal display)等以及扬声
器等的输出部分1307;包括硬盘等的储存部分1308;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至i/o接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入储存部分1308。
[0182]
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被中央处理单元(cpu)1301执行时,执行本技术的方法和/或装置中限定的各种功能。
[0183]
需要说明的是,本公开所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有至少一个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom(erasable programmable read only memory,可擦除可编程只读存储器)或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf(radio frequency,射频)等等,或者上述的任意合适的组合。
[0184]
附图中的流程图和框图,图示了按照本公开各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0185]
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0186]
作为另一方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图1或图3或图5或图6或图7或图8或图10所示的各个步骤。
[0187]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
[0188]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
[0189]
说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献