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

一种高帧率相机应用场景负载的控制方法和系统与流程

2023-02-04 14:19:14 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其是一种高帧率相机应用场景负载的控制方法和系统。


背景技术:

2.高帧率相机应用广泛。在使用过程中,帧率会达到120fps或240fps,对cpu的主频,核数,调度,软件算法等都会有一定的要求。在负载较高时,会出现帧率下降的情况,影响设备性能。现有技术中,通常通过绑定不同的核,优化线程调度的方式减少cpu的占有率,控制方法复杂,效果不理想。


技术实现要素:

3.本技术的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
4.为此,本发明的目的在于提供一种简单、高效的高帧率相机应用场景负载的控制方法和系统。
5.为了达到上述技术目的,本技术实施例所采取的技术方案包括:
6.一方面,本技术实施例提供了一种高帧率相机应用场景负载的控制方法,包括以下步骤:
7.本技术实施例的高帧率相机应用场景负载的控制方法,该方法包括:创建配置策略;所述配置策略用于表征应用层、中间层和驱动层之间的数据传递策略,所述配置策略包括需求数据的大小、传输数据的大小和第一数量,传输数据由数量为第一数量的需求数据合成;中间层读取所述配置策略,并将传输数据的大小和第一数量通知给驱动层,将需求数据的大小和第一数量通知给应用层;驱动层将若干第一需求数据合并成第一传输数据,并将所述第一传输数据通过中间层传至应用层;应用层将接收到的第一传输数据,拆分成若干第一需求数据,并将所述若干第一需求数据传至数据处理单元进行数据处理。通过将需求数据合并为传输数据进行传输,降低了应用层、中间层和驱动层之间的调度频率,降低了应用场景的负载。因此,本实施例提供的方法,能够降低高帧率相机应用场景的负载,控制方法简单易行,有利于提升负载下降的效果。
8.另外,根据本技术上述实施例的高帧率相机应用场景负载的控制方法,还可以具有以下附加的技术特征:
9.进一步地,本技术实施例的高帧率相机应用场景负载的控制方法,所述方法还包括:
10.中间层在初始化阶段,将传输帧率和需求帧率的关系发送至驱动层;其中,传输帧率的大小与所述第一数量的乘积等于需求帧率大小。
11.进一步地,在本技术的一个实施例中,所述方法包括:
12.中间层在初始化阶段,以mmap的方式向驱动层映射第一大小的内存;其中,所述第一大小等于传输数据的大小。
13.进一步地,在本技术的一个实施例中,所述配置策略包括拆分标识,所述方法还包括以下步骤:
14.获取cpu占有率;
15.若cpu占有率大于第一预设阈值,将拆分标识置1。
16.进一步地,在本技术的一个实施例中,所述驱动层将若干第一需求数据合并成第一传输数据这一步骤,包括:
17.若拆分标识为1,驱动层将若干第一需求数据合并成第一传输数据。
18.进一步地,在本技术的一个实施例中,所述第一数量为4,所述第一传输数据大小为第二宽度和第二高度,所述应用层将接收到的第一传输数据,拆分成若干第一需求数据这一步骤,包括:
19.应用层将接收到的第一传输数据,拆分成4个第一需求数据,每个第一需求数据的大小均为第三宽度和第三高度;其中,所述第三宽度与所述第三高度的乘积为第三乘积,所述第二宽度与第二高度的乘积为第二乘积,所述第二乘积与所述第三乘积的商为4。
20.进一步地,在本技术的一个实施例中,所述高帧率相机用于扫读笔,所述第一传输数据为yuv数据,所述应用层将接收到的第一传输数据,拆分成若干第一需求数据,并将所述若干第一需求数据传至数据处理单元进行数据处理这一步骤,包括:
21.应用层接收第一传输数据,取出每个第一需求数据中的y数据,将若干y数据传至数据处理单元进行字体识别处理;
22.或者,应用层接收第一传输数据,取出每个第一需求数据中的y数据和uv数据,将所述y数据和所述uv数据组合后,传至数据处理单元进行显示处理。
23.另一方面,本技术实施例提出了一种高帧率相机应用场景负载的控制系统,包括:
24.第一模块,用于创建配置策略;所述配置策略用于表征应用层、中间层和驱动层之间的数据传递策略,所述配置策略包括需求数据的大小、传输数据的大小和第一数量,传输数据由数量为第一数量的需求数据合成;
25.中间层,用于读取所述配置策略,并将传输数据的大小和第一数量通知给驱动层,将需求数据的大小和第一数量通知给应用层;
26.驱动层,用于将若干第一需求数据合并成第一传输数据,并将所述第一传输数据通过中间层传至应用层;
27.应用层,用于将接收到的第一传输数据,拆分成若干第一需求数据,并将所述若干第一需求数据传至数据处理单元进行数据处理。
28.另一方面,本技术实施例提供了一种高帧率相机应用场景负载的控制装置,包括:
29.至少一个处理器;
30.至少一个存储器,用于存储至少一个程序;
31.当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现上述的任一种高帧率相机应用场景负载的控制方法。
32.另一方面,本技术实施例提供了一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于实现上述的任一种高帧率相机应用场景负载的控制方法。
33.本技术实施例提供的方法,能够降低高帧率相机应用场景的负载,控制方法简单
易行,有利于提升负载下降的效果。
附图说明
34.为了更清楚地说明本技术实施例或者现有技术中的技术方案,下面对本技术实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本技术的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
35.图1为本技术提供的高帧率相机应用场景负载的控制方法的一种实施例的流程示意图;
36.图2为本技术提供的第一数量为4时的每秒调度示意图;
37.图3为本技术提供的驱动层传递的数据的结构示意图;
38.图4为本技术提供的中间层传递的数据的结构示意图;
39.图5为本技术提供的应用层传递的数据的一种实施例的结构示意图;
40.图6为本技术提供的应用层传递的数据的另一种实施例的结构示意图;
41.图7为本技术提供的高帧率相机应用场景负载的控制系统的一种实施例的结构示意图;
42.图8为本技术提供的高帧率相机应用场景负载的控制装置的一种实施例的结构示意图。
具体实施方式
43.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
44.高帧率相机,在一些应用场景中(比如扫读笔字体识别,运动相机录影等),常常出现负载过高的情况,导致帧率下降或者不达标,进而影响字体识别率,慢动作或者运动录影的连续性等。相关技术中,针对这种高负载的场景,帧率下降或者不达标的情况下,通常采用的解决方案是:(1)提高cpu的主频或者核数。(2)优化字体识别的算法,减少cpu占用率。(3)通过绑定不同的核,优化线程调度。(4)优化上层应用的cpu占用率。然而,上述方法操作复杂,且效果不理想。
45.下面参照附图详细描述根据本技术实施例提出的高帧率相机应用场景负载的控制方法和系统,首先将参照附图描述根据本技术实施例提出的高帧率相机应用场景负载的控制方法。
46.参照图1,本技术实施例中提供一种高帧率相机应用场景负载的控制方法,本技术实施例中的高帧率相机应用场景负载的控制方法,可应用于终端中,也可应用于服务器中,还可以是运行于终端或服务器中的软件等。终端可以是平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络
服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。本技术实施例中的高帧率相机应用场景负载的控制方法主要包括以下步骤:
47.s110:创建配置策略;所述配置策略用于表征应用层、中间层和驱动层之间的数据传递策略,所述配置策略包括需求数据的大小、传输数据的大小和第一数量,传输数据由数量为第一数量的需求数据合成;
48.本步骤中,通过配置策略的创建,建立应用层、中间层和驱动层之间数据传递的策略桥梁。其中,需求数据用于表征后续应用中所需要的数据格式或数据结构;传输数据用于表征本技术中,在应用层、中间层和驱动层之间进行数据传递时,所采用的数据结构。在一些可能的实现方式中,可以创建一个camera.cfg的配置文件,内容如下:
49.used_reducecallnum_size=1//表示是否需要开启多个buffer合成一帧输出,0表示关闭,1表示开启此功能;
50.key_support_src_reducecallnum_size=reducecallnum_src_width x reducecallnum_src_height//表示sensor实际输出的分辨率宽x高;
51.key_default_dst_reducecallnum_size=reducecallnum_dst_width x reducecallnum_dst_height//表示多个buffer合在一起后输出的分辨率宽x高;
52.key_reduce_call_num=n//表示需要n个buffer合成一帧输出。
53.s120:中间层读取所述配置策略,并将传输数据的大小和第一数量通知给驱动层,将需求数据的大小和第一数量通知给应用层;
54.本步骤中,中间层通过读取配置策略,确定与应用层和驱动层进行数据传递过程中的所使用的数据结构策略。具体地,可以通过结构体,与配置策略、应用层和驱动层之间进行数据交互。具体地,可以定义一个如下的结构体,用于跟驱动交互:
[0055][0056]
基于上述的结构体,中间层在初始化阶段,读取camera.cfg的配置文件,如果开启了多个buffer合成一帧输出的功能。则执行如下操作:
[0057]
(1)从配置文件获取sensor实际输出的分辨率宽和高(即需求数据),分别为reducecallnum_src_width和reducecallnum_src_height;
[0058]
(2)从配置文件获取多个buffer合在一起后输出的实际分辨率宽和高(即传输数据),分别为reducecallnum_dst_width和reducecallnum_dst_height;
[0059]
(3)从配置文件获取需要多少个buffer合成一帧输出,变量(即第一数量)为reduce_call_num;
[0060]
(4)给结构体buf_merge赋值,并通过v4l2的方式,采用ioctl vidioc_set_buffer_merge将值传递给到驱动。
[0061]
struct buf_merge buf_merge;
[0062]
buf_merge.en=1;
[0063]
buf_merge.buffer_num=reduce_call_num;
[0064]
ioctl(fd,vidioc_set_buffer_merge,&buf_merge);
[0065]
(5)通过v4l2的方式,采用ioctl vidioc_s_fmt将相应的值传递给到驱动;
[0066]
v4l2_format new_format;
[0067]
new_format.fmt.pix_mp.width=reducecallnum_src_width;
[0068]
new_format.fmt.pix_mp.height=reducecallnum_src_height;
[0069]
ioctl(fd,vidioc_s_fmt,&new_format);
[0070]
其中,v4l2:是video for linux2的简称,为linux中关于视频设备的内核驱动。在linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video*下,如果只有一个视频设备,通常为/dev/video0。
[0071]
ioctl:是设备驱动程序中对设备的i/o通道进行管理的函数。所谓对i/o通道进行管理,就是对设备的一些特性进行控制。
[0072]
s130:驱动层将若干第一需求数据合并成第一传输数据,并将所述第一传输数据通过中间层传至应用层;
[0073]
s140:应用层将接收到的第一传输数据,拆分成若干第一需求数据,并将所述若干第一需求数据传至数据处理单元进行数据处理。
[0074]
下面通过一具体实施例对本技术提出的方法进行说明,驱动层、应用层中间层之间的数据传递过程具体为:驱动层将(widht/2)*(height/2)大小的4个yuv数据,合成1个width*height大小的yuv数据送给中间层;而应用层实际需要的是(widht/2)*(height/2)大小的yuv数据。应用层将从中间层拿到的width*height大小的yuv数据,拆分成4个(widht/2)*(height/2)大小的yuv数据后,分别送给显示或者录像编码或者字体识别或者人脸识别等处理程序去处理这些拆分出来的yuv数据。具体地,扫读笔在分辨率320x240帧率120fps,带字体识别算法的场景下,负载过高,实际帧率只能到90fps左右,影响字体识别率。而通过本技术提供的方法进行数据传输后,帧率提高到了120fps,cpu占用率下降了百分之十二,大大提高了字体识别率。
[0075]
可选地,本技术实施例的高帧率相机应用场景负载的控制方法,所述方法还包括以下步骤:
[0076]
中间层在初始化阶段,将传输帧率和需求帧率的关系发送至驱动层;其中,传输帧率的大小与所述第一数量的乘积等于需求帧率大小。
[0077]
进一步地,在本技术的一个实施例中,所述方法还包括:
[0078]
中间层在初始化阶段,以mmap的方式向驱动层映射第一大小的内存;其中,所述第一大小等于传输数据的大小。
[0079]
本步骤中,通过mmap的方式,从驱动映射相应大小的内存给到中间层使用,相关设置如下所示:
[0080]
int length=(reducecallnum_dst_width*reducecallnum_dst_height*3)/2;
[0081]
mmapmem.mem=mmap(0,length,prot_read|prot_write,map_shared,fd,0);
[0082]
memset((void*)mmapmem.mem,0x10,reducecallnum_dst_width*reducecallnum_dst_height);
[0083]
memset((char*)mmapmem.mem reducecallnum_dst_width*reducecallnum_dst_height,
[0084]
0x80,reducecallnum_dst_width*reducecallnum_dst_height/2);
[0085]
读取camera.cfg的配置文件,如果开启了多个buffer合成一帧输出的功能。则执行如下操作:
[0086][0087]
进一步地,在本技术的一个实施例中,所述配置策略包括拆分标识,所述方法还包括以下步骤:
[0088]
获取cpu占有率;
[0089]
若cpu占有率大于第一预设阈值,将拆分标识置1。
[0090]
进一步地,在本技术的一个实施例中,所述驱动层将若干第一需求数据合并成第一传输数据这一步骤,包括:
[0091]
若拆分标识为1,驱动层将若干第一需求数据合并成第一传输数据。
[0092]
具体地,可以通过设置差分标识,选择性的采用本技术提供的方法进行数据的传递过程。
[0093]
进一步地,在本技术的一个实施例中,所述第一数量为4,所述第一传输数据大小为第二宽度和第二高度,所述应用层将接收到的第一传输数据,拆分成若干第一需求数据这一步骤,包括:
[0094]
应用层将接收到的第一传输数据,拆分成4个第一需求数据,每个第一需求数据的大小均为第三宽度和第三高度;其中,所述第三宽度与所述第三高度的乘积为第三乘积,所述第二宽度与第二高度的乘积为第二乘积,所述第二乘积与所述第三乘积的商为4。
[0095]
具体地,参照图2所示,对于应用场景是分辨率640x480帧率240fps的情况,1秒钟,驱动层,中间层,应用层就要调度240次。使用本技术提出的方法后,应用层要的是640x480
的yuv数据。以4个288x192的nv21数据合成一帧576x384的nv21数据为例,实际驱动将4个288x192的yuv数据,合成一个576x384的yuv数据后(如图3所示的数据结构图),送给中间层,中间层将驱动层传过来的数据进行组合,通过如图4所述的数据结构,将数据传输给应用层。应用层再将中间层送来的1个576x384的yuv数据拆分成4个288x192的yuv数据后,再分别送给显示或者录像编码或者字体识别或者人脸识别等处理程序去处理这些拆分出来的yuv数据。那么1秒钟,驱动层,中间层,应用层只需要调度60次。从而有效减少了每秒调度的次数,负载大幅下降。达到了降低负载,提升帧率的作用。
[0096]
在一些可能的实现方式中,还可以将width*height大小的yuv数据,拆分成2个,或者3个,或者其他大小的yuv数据,再配合驱动层,中间层,应用层的使用。同样可以减少每秒的调度次数从而达到减少负载,提升帧率的目的。
[0097]
示例性地,对于拆成2个yuv数据的情况,设置如下:
[0098]
camera.cfg文件做如下配置:
[0099]
used_reducecallnum_size=1;
[0100]
key_support_src_reducecallnum_size=640x480;
[0101]
key_default_dst_reducecallnum_size=960x640;
[0102]
key_reduce_call_num=2。
[0103]
示例性地,对于拆成3个yuv数据的情况,设置如下:
[0104]
camera.cfg文件做如下配置:
[0105]
used_reducecallnum_size=1;
[0106]
key_support_src_reducecallnum_size=640x480;
[0107]
key_default_dst_reducecallnum_size=1440x640;
[0108]
key_reduce_call_num=3。
[0109]
进一步地,在本技术的一个实施例中,所述高帧率相机用于扫读笔,所述第一传输数据为yuv数据,所述应用层将接收到的第一传输数据,拆分成若干第一需求数据,并将所述若干第一需求数据传至数据处理单元进行数据处理这一步骤,包括:
[0110]
应用层接收第一传输数据,取出每个第一需求数据中的y数据,将若干y数据传至数据处理单元进行字体识别处理;
[0111]
或者,应用层接收第一传输数据,取出每个第一需求数据中的y数据和uv数据,将所述y数据和所述uv数据组合后,传至数据处理单元进行显示处理。
[0112]
应用层可通过下面两种方式,将中间层传来的组合数据进行拆分:
[0113]
第一种方式,分别取出4个288x192的y数据,给到字体识别或者人脸识别处理(如图5所示的数据结构图)。
[0114]
第二种方式,将y和uv的数据进行组合后,给到显示或者录像编码去做处理(如图6所示的数据结构图)。
[0115]
通过本技术提供的方法,减少负载效果明显,不会增加额外的硬件成本,算法改动成本,和上层应用的改动成本。有效减少功耗,提升扫读笔字体识别率,运动相机录影连续性和连贯性。本技术提供的方法还可用于运动相机,高速摄影,慢动作录影等需要使用高帧率相机的场景来提高帧率,降低负载。或者其他相机产品负载过高的场景,均可以通过本技术,来有效降低负载,提升帧率。
[0116]
其次,参照附图7描述根据本技术实施例提出的一种高帧率相机应用场景负载的控制系统。
[0117]
图7是本技术一个实施例的高帧率相机应用场景负载的控制系统结构示意图,所述系统具体包括:
[0118]
第一模块710,用于创建配置策略;所述配置策略用于表征应用层、中间层和驱动层之间的数据传递策略,所述配置策略包括需求数据的大小、传输数据的大小和第一数量,传输数据由数量为第一数量的需求数据合成;
[0119]
中间层720,用于读取所述配置策略,并将传输数据的大小和第一数量通知给驱动层,将需求数据的大小和第一数量通知给应用层;
[0120]
驱动层730,用于将若干第一需求数据合并成第一传输数据,并将所述第一传输数据通过中间层传至应用层;
[0121]
应用层740,用于将接收到的第一传输数据,拆分成若干第一需求数据,并将所述若干第一需求数据传至数据处理单元进行数据处理。
[0122]
可见,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
[0123]
参照图8,本技术实施例提供了一种高帧率相机应用场景负载的控制装置,包括:
[0124]
至少一个处理器810;
[0125]
至少一个存储器820,用于存储至少一个程序;
[0126]
当所述至少一个程序被所述至少一个处理器810执行时,使得所述至少一个处理器810实现所述的高帧率相机应用场景负载的控制方法。
[0127]
同理,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
[0128]
本技术实施例还提供了一种计算机可读存储介质,其中存储有处理器810可执行的程序,处理器810可执行的程序在由处理器810执行时用于执行上述的高帧率相机应用场景负载的控制方法。
[0129]
同理,上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
[0130]
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本技术的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
[0131]
此外,虽然在功能性模块的背景下描述了本技术,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,
有关每个模块的实际实现的详细讨论对于理解本技术是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本技术。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本技术的范围,本技术的范围由所附权利要求书及其等同方案的全部范围来决定。
[0132]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0133]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行程序的定序列表,可以具体实现在任何计算机可读介质中,以供程序执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从程序执行系统、装置或设备取程序并执行程序的系统)使用,或结合这些程序执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供程序执行系统、装置或设备或结合这些程序执行系统、装置或设备而使用的装置。
[0134]
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0135]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的程序执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0136]
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
[0137]
尽管已经示出和描述了本技术的实施方式,本领域的普通技术人员可以理解:在不脱离本技术的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变
型,本技术的范围由权利要求及其等同物限定。
[0138]
以上是对本技术的较佳实施进行了具体说明,但本技术并不限于所述实施例,熟悉本领域的技术人员在不违背本技术精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献