图像处理方法、装置、电子设备及计算机可读存储介质与流程

文档序号:12906879阅读:210来源:国知局
图像处理方法、装置、电子设备及计算机可读存储介质与流程

本发明属于图像处理技术领域,具体涉及图像处理方法、装置、电子设备及计算机可读存储介质。



背景技术:

在进行h264编码时,需要将rgb格式的像素转换为yuv格式的像素,这样才能进行h264编码。通常的做法是利用yuv与rgb间的相关转换算法,在cpu(centralprocessunit)上执行rgb格式转换成yuv格式,如果这种方法没有经过相关优化,那么在图像分辨率很大的情况下,将会非常消耗cpu资源,转换效率比较低下。如何解决现有转换方法在较大分辨率图像下,转换效率比较低下的问题,成为了行业内关注的焦点。



技术实现要素:

鉴于此,本发明的目的在于提供一种图像处理方法、装置、电子设备及计算机可读存储介质,以有效地改善上述问题。

本发明的实施例是这样实现的:

一方面,本发明实施例提供了一种图像处理方法,包括:获得待转换的argb图像;从所述argb图像中分别获取y平面掩码和uv平面掩码;从所述argb图像中分别获取第i行的m个像素值和第i+1行的m个像素值,其中,m为大于1的整数;根据获得的所述y平面掩码值、所述第i行的m个像素值和所述第i+1行的m个像素值,获得y平面的像素值;根据获得的所述uv平面掩码值、所述第i行m个像素值和所述第i+1行m个像素值,获得uv平面的像素值。

第二方面,本发明实施例提供了一种图像处理装置,包括:argb图像获取单元,用于获得待转换的argb图像。掩码获取单元,用于从所述argb图像中分别获取y平面掩码和uv平面掩码。像素获取单元,用于从所述argb图像中分别获取第i行的m个像素值和第i+1行的m个像素值,其中,m为大于1的整数。y平面像素值获取单元,用于根据获得的所述y平面掩码值、所述第i行的m个像素值和所述第i+1行的m个像素值,获得y平面的像素值。uv平面像素值获取单元,用于根据获得的所述uv平面掩码值、所述第i行m个像素值和所述第i+1行m个像素值,获得uv平面的像素值。

第三方面,本发明实施例提供了一种电子设备,其特征在于,包括:处理器和存储器,所述处理器与所述存储器耦合。所述存储器用于存储程序。所述处理器用于调用存储在所述存储器中的程序,执行上述图像处理方法。

第四方面,本发明实施例提供了一种计算机可读存储介质。所述可读取存储介质存储有处理器可执行的程序代码于计算机内。所述可读取存储介质包括多条指令,所述程序代码多条指令被配置成使所述处理器执行上述方法。

本发明实施例提供的图像处理方法、装置、电子设备及计算机可读存储介质,与现有技术相比,在将rgb格式转换成yuv格式时,一次性可以处理多个像素,例如,2、3、4,因而优化了rgb格式转换成yuv格式的效率,提高了转换效率,解决了现有转换方法在较大分辨率图像下,转换效率比较低下的问题。

本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。

图1示出了本发明实施例提供的一种电子设备的结构框图。

图2示出了本发明实施例提供的一种图像处理方法的方法流程图。

图3示出了本发明实施例提供的一种获得图2中的步骤s204的方法流程图。

图4示出了本发明实施例提供的一种获得图2中的步骤s205的方法流程图。

图5示出了本发明实施例提供的一种获得图4中的步骤s403的方法流程图。

图6示出了本发明实施例提供的一种图像处理装置的功能模块框图。

图7示出了本发明实施例提供的一种图6中的y平面像素值获取单元的功能模块框图。

图8示出了本发明实施例提供的一种图6中的uv平面像素值获取单元的功能模块框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

如图1所示,图1示出了本发明实施例提供的一种电子设备100的结构框图。所述电子设备100包括:图像处理装置110、存储器120、存储控制器130和处理器140。

所述存储器120、存储控制器130、处理器140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述图像处理装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述电子设备100的操作系统(operatingsystem,os)中的软件功能模块。所述处理器140用于执行存储器120中存储的可执行模块,例如所述图像处理装置110包括的软件功能模块或计算机程序。

其中,存储器120可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器120用于存储程序,所述处理器140在接收到执行指令后,执行所述程序,后述本发明实施例任一实施例揭示的流程定义的电子设备100所执行的方法可以应用于处理器140中,或者由处理器140实现。

处理器140可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在进行h264编码时,需要将rgb格式的像素转换为yuv格式的像素,这样才能进行h264编码。首先对rgb和yuv分别作出解释:

rgb色彩模式(red、green、blue,红、绿、蓝三色色彩模式)是工业界的一种颜色标准,是通过对红(r)、绿(g)、蓝(b)三个颜色通道的变化以及它们相互之间的叠加来得到不同的颜色,rgb即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

其中,argb像素格式是rgb颜色格式中的一种,使用32位来表示一个像素,rgb分量各用去8位,剩下的8位用作透明度alpha。在内存中argb各分量的排列顺序为:b0、g0、r0、a0、b1、g1、r1、a1、b2、g2、r2、a2。

yuv(颜色编码方法)格式分为三个分量,“y”表示明亮度(luminance或luma),也就是灰度值;而“u”和“v”表示的则是色度(chrominance或chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。yuv格式主要用于电视系统以及模拟视频领域,它将亮度信息(y)与色彩信息(uv)分离,没有uv信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,yuv不像rgb那样要求三个独立的视频信号同时传输,所以用yuv格式传输数据占用的频宽极少。yuv码流的存储格式与其采样的方式密切相关,主流的采样方式有三种,yuv4:4:4,yuv4:2:2,yuv4:2:0。yuv格式有两大类:planar平面格式和packed打包格式。对于planar的yuv格式,先连续存储所有像素点的y,紧接着存储所有像素点的u,随后是所有像素点的v。对于packed的yuv格式,每个像素点的y,u,v是连续交错存储的。

其中,nv12像素格式属于yuv420格式,是一种two-plane模式,即y和uv分为两个平面,但是uv(cbcr)为交错存储的。其中我们假设一幅nv12图像的宽是width、高是height,那么它的y平面的宽是width,y平面一行像素的字节数是width,y平面的高度是height;而它的uv平面的宽是width/2,uv平面一行像素的字节数是width,uv平面的高度是height/2。

基于以上分析,本发明第一实施例提供了一种图像处理方法如图2所示,其中,图2示出了本发明第一实施例提供的一种图像处理方法的流程图,具体包括:步骤s201-s205。

步骤s201:获得待转换的argb图像。

在将一种格式的图像转化为另一种格式的图像时,需要先获得待转换的图像,本实施例中,优选地,该待转换的图像为argb图像,即,获得需要进行图像转换的argb图像。

步骤s202:从所述argb图像中分别获取y平面掩码和uv平面掩码。

由于sse指令是一种单指令多数据的指令,也就是说sse的一条机器指令能够处理多条数据,而传统的cpu指令只能够处理单条数据。对于argb格式的像素来说,其一个像素包含alpha透明度分量,红色分量,绿色分量,蓝色分量,每个分量一个字节,也就是说一个像素占用4个字节的内存空间,普通的cpu指令处理argb像素时,一次只能够处理4个字节的数据,也就是一个像素;而利用sse指令时,一次可以处理16个字节的数据,也就是4个像素。也就是说sse指令的一次转换操作相当于普通cpu指令的4次转换,所以利用sse指令转换的效率至少是普通cpu指令的4倍。

由于argb像素格式使用32位来表示一个像素,而采用sse指令处理argb像素时,一次可以处理16个字节的数据,也就是4个像素。故本实施例中,在利用sse指令转换时,使用的是128位的__m128i数据类型,以最大化提高其转换效率。其中,需要说明的是,本实施例中,仅以sse指令一次处理4个像素的情形为例进行说明,其一次处理2或3个像素的情形与之类似,为了避免累赘,不再一一举例示出。

在利用sse指令进行转换时,从所述argb图像中获取y平面掩码,例如,调用sse指令的_mm_set1_epi32将0x0000ff00扩展到128,获取nv12格式中的y平面掩码,并且将该值存储到lummask中。

在利用sse指令进行转换时,从所述argb图像中获取uv平面掩码,例如,调用sse指令的_mm_set1_epi16将0x00ff扩展到128位,获取nv12格式的uv平面掩码,并将该值存储到uvmask中。

步骤s203:从所述argb图像中分别获取第i行的m个像素值和第i+1行的m个像素值,其中,m为大于1的整数。

从所述argb图像中获取第i行的m个像素值,例如,调用sse指令的_mm_load_si128指令将第i行的4个像素值存储到__m128iline1变量中。

从所述argb图像中获取第i+1行的m个像素值,例如,调用sse指令的调用_mm_load_si128指令将第i+1行的4个像素值存储到__m128iline2变量中。

步骤s204:根据获得的所述y平面掩码值、所述第i行的m个像素值和所述第i+1行的m个像素值,获得y平面的像素值。

通过获得的y平面掩码值、第i行的m个像素值以及第i+1行的m个像素值,便可获得y平面的像素值。作为一种实施方式,优选地,可以通过如图3所示方法步骤根据获得的所述y平面掩码值、所述第i行的m个像素值和所述第i+1行的m个像素值,获得y平面的像素值。其中,图3所示的方法步骤具体包括:步骤s301-s305。

步骤s301:将获得的所述y平面掩码值与所述第i行的m个像素值进行与运算,得到第一结果。

将获得的y平面掩码值与第i行的m个像素值进行与运算后,得到第一结果,例如,调用sse指令的mm_and_si128指令将line1变量值(第i行的4个像素值)与lummask值(y平面掩码值)进行与运算,得到第一结果,并将第一结果存储到andresult1中。

步骤s302:将获得的所述y平面掩码值与所述第i+1行的m个像素值进行与运算,得到第二结果。

将获得的y平面掩码值与第i+1行的m个像素值进行与运算后,得到第二结果,例如,调用sse指令的_mm_and_s128i指令将line2变量(第i+1行的4个像素值)与lummask值(y平面掩码值)进行与运算,得到第二结果,并将第二结果存储到andresult2中。

步骤s303:对得到的所述第一结果进行算术右移,得到第三结果。

将获得的y平面掩码值与第i行的m个像素值进行与运算后,得到第一结果,然后对得到的第一结果进行算术右移,得到第三结果,例如,调用_mm_srli_si128将上步中的andresult1(第一结果)算术右移一位,得到第三结果,并将第三结果存储到srlresult1中。

步骤s304:对得到的所述第二结果进行算术右移,得到第四结果。

将获得的y平面掩码值与第i+1行的m个像素值进行与运算后,得到第二结果,然后对得到的第二结果进行算术右移,得到第四结果,例如,调用_mm_srli_si128将上步中的andresult2(第二结果)算术右移一位,得到第四结果,并将第四结果存储到srlresult2中。

步骤s305:根据得到的所述第三结果和所述第四结果,获得y平面的像素值。

根据获得的第三结果和第四结果,便可以获得y平面的像素值。即,第三结果中的低八字节便为第i行的y像素值,第四结果中的低八字节便为第i+1行的y像素值。其中,y平面的像素值包括:第i行的y像素值和第i+1行的y像素值。为了便于运算及存储,优选地,将所述第三结果中的低8字节的数据存储到指针数组a中的低8字节中,将所述第四结果中的低8字节的数据存储到指针数组a中的高8字节中,将所述指针数组a中的第一个整数值作为第i行的y像素值,第二个整数值作为第i+1行的y像素值。例如,调用see指令的__mm_packs_epi32指令将上步中的srlresult1(第三结果)的低8字节和srlresult2(第四结果)的低8字节存储到变量packval中。其中srlresult1的低8字节在packval的低8字节中,srlresult2的低8字节在packval的高8字节中,将上步中获取到的packval结构中的m128i_u32数组中的第一个整数值就是第i行的y像素值,m128i_u32数组中的第二个整数值就是第i+1行的y像素值。

其中,指针数组a中的第一个整数值即为第三结果中的低8字节,指针数组a中的第二个整数值即为第四结果中的低8字节。其中,指针数组a可以为上述的packval。

步骤s205:根据获得的所述uv平面掩码值、所述第i行m个像素值和所述第i+1行m个像素值,获得uv平面的像素值。

通过获得的uv平面掩码值、第i行的m个像素值以及第i+1行的m个像素值,便可获得uv平面的像素值。

作为一种实施方式,优选地,可以通过如图4所示方法步骤根据获得的所述uv平面掩码值、所述第i行m个像素值和所述第i+1行m个像素值,获得uv平面的像素值。其中,图4所示的方法步骤具体包括:步骤s401-s403。

步骤s401:将获得的所述uv平面掩码值与所述第i行的m个像素值进行与运算,得到第五结果。

将获得的uv平面掩码值与第i行的m个像素值进行与运算后,得到第五结果,例如,调用_mm_and_si128指令将line1变量值(第i行的4个像素值)与uvmask值(uv平面掩码值)进行与运算,得到第五结果,并将第五结果存储到uvandresult1中。

步骤s402:将获得的所述uv平面掩码值与所述第i+1行的m个像素进行与运算,得到第六结果。

将获得的uv平面掩码值与第i+1行的m个像素值进行与运算后,得到第六结果,例如,调用_mm_and_s128i指令将line2变量值(第i行的4个像素值)与uvmask值(uv平面掩码值)进行与运算,得到第六结果,并将第六结果存储到uvandresult2中。

步骤s403:根据获得的所述第五结果和所述第六结果获得uv平面的像素值。

通过获得的第五结果和第六结果,便可获得uv平面的像素值。作为一种实施方式,优选地,可以通过如图5所示方法步骤根据获得的所述第五结果和所述第六结果获得uv平面的像素值。其中,图5所示的方法步骤具体包括:步骤s501-s504。

步骤s501:将所述第五结果和所述第六结果进行加法运算,得到第七结果。

获得第五结果和第六结果后,将第五结果和第六结果进行加法运算,得到第七结果,例如,调用sse指令的_mm_add_epi64指令将uvandresult1(第五结果)和uvandresult2(第六结果)相加,得到第七结果,并将第七结果存储到addval变量中。

步骤s502:将所述第七结果中的第二个32位整数同第一个32位整数进行交换,第三个32位整数与第4个32位整数进行交换后得到第八结果。

获得第七结果后,对第七结果中的整数进行交换运算,优选地,将第七结果中的第二个32位整数同第一个32位整数进行交换,第三个32位整数与第4个32位整数进行交换后得到第八结果。例如,调用sse指令的_mm_shuffle_epi32指令将addval(第七结果)的第三个32位整数与第4个32位整数进行交换,并且将addval(第七结果)的第二个32位整数同第一个32位整数进行交换后得到第八结果,并将第八结果存储到addvalshuffle变量中。

步骤s503:将所述第八结果与所述第七结果相加后取平均值得到第九结果。

得到第八结果后,将第八结果与第七结果相加,然后对相加的结果取平均值得到第九结果。例如,调用sse指令_mm_add_epi64指令将addval(第七结果)与addvalshuffle(第八结果)相加,然后调用_mm_srai_epi16指令对相加后的结果取平均值得到第九结果,并将第九结果存储到avgval变量中。

步骤s504:将所述第九结果中的第二个32位整数同第四个32位整数进行交换,将第一个32位整数同第三个32位整数进行交换后,得到uv平面的像素值。

得到第九结果后,对第七结果中的整数进行交换运算,优选地,将所述第九结果中的第二个32位整数同第四个32位整数进行交换,将第一个32位整数同第三个32位整数进行交换后得到uv平面的像素值。例如,调用sse指令的_mm_shuffle_epi32指令对avgval(第九结果)的第二个32位整数同第四个32位整数进行交换,并且对第一个32位整数同第三个32位整数进行交换,将得到的结果存储到avgvalshuffle变量中。其中,存储于avgvalshuffle变量中的m128i_u32数组中的第一个32位整数值就是第i行的uv像素值,即为uv平面的像素值。其中uv平面的像素值包括:第i行的uv像素值。

其中,需要再次强调的是,本实施例中,仅以sse指令一次处理4个像素的情形为例进行说明,其一次处理2或3个像素的情形与之类似,为了避免累赘,不再一一举例示出。因此,并不能将其理解成是对本发明的限制

通过上面这些步骤,实现了利用sse指令将argb像素转换为nv12像素的过程,由于sse指令一个指令可以处理多条数据的特性,使得该方法比现有的转换算法在效率上至少快4倍,所以极大提供了转换效率。

本发明实施例还提供一种图像处理装置110,如图6所示。该图像处理装置110包括:argb图像获取单元111、掩码获取单元112、像素获取单元113、y平面像素值获取单元114和uv平面像素值获取单元115。

所述argb图像获取单元111,用于获得待转换的argb图像。

所述掩码获取单元112,用于从所述argb图像中分别获取y平面掩码和uv平面掩码。

所述像素获取单元113,用于从所述argb图像中分别获取第i行的m个像素值和第i+1行的m个像素值,其中,m为大于1的整数。

所述y平面像素值获取单元114,用于根据获得的所述y平面掩码值、所述第i行的m个像素值和所述第i+1行的m个像素值,获得y平面的像素值。

所述uv平面像素值获取单元115,用于根据获得的所述uv平面掩码值、所述第i行m个像素值和所述第i+1行m个像素值,获得uv平面的像素值。

其中,如图7所示,所述y平面像素值获取单元114包括:第一结果获取子单元1141、第二结果获取子单元1142、第三结果获取子单元1143、第四结果获取子单元1144和y平面像素值获取子单元1145。

所述第一结果获取子单元1141,用于将获得的所述y平面掩码值与所述第i行的m个像素值进行与运算,得到第一结果。

所述第二结果获取子单元1142,用于将获得的所述y平面掩码值与所述第i+1行的m个像素值进行与运算,得到第二结果。

所述第三结果获取子单元1143,用于对得到的所述第一结果进行算术右移,得到第三结果。

所述第四结果获取子单元1144,用于对得到的所述第二结果进行算术右移,得到第四结果。

所述y平面像素值获取子单元1145,根据得到的所述第三结果和所述第四结果,获得y平面的像素值。

其中,如图8所示,所述uv平面像素值获取单元115包括:第五结果获取子单元1151、第六结果获取子单元1152、第七结果获取子单元1153、第八结果获取子单元1154、第九结果获取子单元1155和uv平面像素值获取子单元1156。

所述第五结果获取子单元1151,用于将获得的所述uv平面掩码值与所述第i行的m个像素值进行与运算,得到第五结果。

所述第六结果获取子单元1152,用于将获得的所述uv平面掩码值与所述第i+1行的m个像素进行与运算,得到第六结果。

所述第七结果获取子单元1153,用于将所述第五结果和所述第六结果进行加法运算,得到第七结果。

所述第八结果获取子单元1154,用于将所述第七结果中的第二个32位整数同第一个32位整数进行交换,第三个32位整数与第4个32位整数进行交换后得到第八结果。

所述第九结果获取子单元1155,用于将所述第八结果与所述第七结果相加后取平均值得到第九结果。

所述uv平面像素值获取子单元1156,用于将所述第九结果中的第二个32位整数同第四个32位整数进行交换,将第一个32位整数同第三个32位整数进行交换后,得到uv平面的像素值。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本发明实施例所提供的图像处理装置110,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1