CN116723415B - 缩略图生成的方法及终端设备 - Google Patents
缩略图生成的方法及终端设备 Download PDFInfo
- Publication number
- CN116723415B CN116723415B CN202211286592.9A CN202211286592A CN116723415B CN 116723415 B CN116723415 B CN 116723415B CN 202211286592 A CN202211286592 A CN 202211286592A CN 116723415 B CN116723415 B CN 116723415B
- Authority
- CN
- China
- Prior art keywords
- rgb
- rgb processing
- pixel points
- processing
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000012545 processing Methods 0.000 claims abstract description 291
- 230000008569 process Effects 0.000 claims abstract description 47
- 230000015654 memory Effects 0.000 claims description 29
- 239000003086 colorant Substances 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000001133 acceleration Effects 0.000 abstract description 38
- 238000004422 calculation algorithm Methods 0.000 abstract description 21
- 230000004044 response Effects 0.000 abstract description 9
- 239000010410 layer Substances 0.000 description 48
- 238000004891 communication Methods 0.000 description 32
- 230000006854 communication Effects 0.000 description 32
- 238000007726 management method Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 20
- 238000010295 mobile communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000002156 mixing Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 239000000654 additive Substances 0.000 description 5
- 230000000996 additive effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000003416 augmentation Effects 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004020 luminiscence type Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Studio Devices (AREA)
Abstract
本申请提供了一种缩略图生成的方法及终端设备,属于图像处理技术领域。该方法包括:获取摄像传感器采集的原始图像对应的RAW数据,以及获取RGB处理指令;响应于所述RGB处理指令,对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式;获取RGB模式的缩略图。在将RAW数据直接转换为RGB模式的数据的过程中,还可以通过异构算法加速RGB处理进程。该方法通过采用异构加速的方式对摄像传感器采集的原始图像进行RGB算法处理,从而将RAW数据直接转换为RGB图像,解决了缩略图出图速度慢,用户体验不佳的问题。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种缩略图生成的方法及终端设备。
背景技术
随着终端技术的发展,带有拍照功能的设备的应用越来越广泛,人们随时随地拍照成为可能。在一些情形下,为了便于用户快速了解拍照效果,在拍摄完一张照片后,退出拍摄界面之前,会根据该照片的数据生成一张缩略图,随着用户不断进行拍摄,缩略图也会不断更新。
在目前的处理架构下,从原始图像到最终向用户呈现缩略图期间,需要对图像进行多重处理,且处理过程涉及到的软件算法较为复杂,使得缩略图的出图速度较慢,用户需要等待比较长的时间才能够看到缩略图,导致用户体验不佳。
发明内容
本申请实施例提供了一种缩略图生成的方法及终端设备,通过采用异构加速的方式对摄像传感器采集的原始图像进行RGB算法处理,从而将RAW数据直接转换为RGB图像,解决了缩略图出图速度慢,用户体验不佳的问题。
第一方面,提供了一种缩略图生成的方法,应用于终端设备,包括:
获取摄像传感器采集的原始图像对应的RAW数据,以及获取RGB处理指令;
响应于所述RGB处理指令,对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式;
获取RGB模式的缩略图。
在一种可能的实现方式中,RAW数据可以指摄像传感器采集到的原始图像对应的数据,在下文的具体实施例中,该RAW数据也可以被描述为原始图像数据。
在一种可能的实现方式中,对所述RAW数据直接进行RGB处理是指在生成缩略图的过程中,生成缩略图的过程中,直接将原始图像转换为RGB图像,而不包括其他YUV处理及ISP硬件处理等。需要说明的是,通常来说,后期显示处理包括YUV处理、RGB处理以及ISP硬件处理等,而在本申请实现方式中,后期显示处理仅包括RGB处理,而不会对原始图像进行其他的显示优化处理。但在生成RGB图像后,仍可以对其进行图像压缩处理等,本申请对此不作限定。
在一种可能的实现方式中,RGB模式可以理解为RGB模式的数据或者RGB图像。
根据本实现方式提供的缩略图生成的方法,通过采用单指令流多数据流的异构加速方式对底层摄像传感器采集的RAW数据进行RGB处理,直接将RAW数据转换为RGB图像,由于仅采用了RGB算法对RAW数据进行了处理,且在RGB处理时采用了单指令流多数据流的异构加速方式,因而本申请实施例提供的生成缩略图的方法能够更快地生成缩略图,使用户能够快速查看拍照效果,提升用户的拍照体验。
结合第一方面,在第一方面的某些实现方式中,所述RAW数据包括N个像素点;
响应于所述RGB处理指令,对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式,具体包括:
响应于所述RGB处理指令,逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次同时读取所述多个不同像素点分别对应的RGB处理数据,所述多个像素点均属于所述N个像素点;
根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
需要说明的是,本申请中的逐次可以指一次或多次。在多次的情形下,该多次中的某一次、某几次或者每一次可以同时读取多个不同像素点分别对应的RGB处理数据。
还需要说明的是,在本申请实现方式中,在拍照场景下将RAW直接转换为RGB时,可以采用异构加速的方式,该异构加速方式主要采用矢量化的方式,通过单指令流多数据流实现,具体地,可以基于一次运算指令执行多个数据流获取多项数据,帮助CPU实现数据并行运算,提高运算效率。
结合第一方面,在第一方面的某些实现方式中,所述RAW数据包括N个像素点;
响应于所述RGB处理指令,对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式,具体包括:
响应于所述RGB处理指令,逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次读取同一像素点对应的多个RGB处理数据;
根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
需要说明的是,本申请中的逐次可以指一次或多次。在多次的情形下,该多次中的某一次、某几次或者每一次可以同时读取同一像素点对应的多个RGB处理数据。同一像素对应的多个RGB处理数据可以包括用于执行RGB算法(如RGB的加法混色算法)的操作数。
还需要说明的是,在本申请实现方式中,在拍照场景下将RAW直接转换为RGB时,可以采用异构加速的方式,该异构加速方式主要采用矢量化的方式,通过单指令流多数据流实现,具体地,可以基于一次运算指令执行多个数据流获取多项数据,帮助CPU实现数据并行运算,提高运算效率。
结合第一方面,在第一方面的某些实现方式中,所述RGB处理指令包括加法指令,所述加法指令用于指示按照预设的RGB处理数据对所述像素点进行红、绿、蓝中任两种或三种颜色的叠加;
所述响应于所述加法指令,逐次读取N个像素点分别对应的RGB处理数据,具体包括:
逐次读取每一所述像素点对应的所有目标操作数,所述目标操作数用于按照所述加法指令进行加法计算;
根据所述目标操作数分别计算所述每一像素点对应的红、绿、蓝中任两种或三种颜色的叠加后的颜色信息。
在一种实现方式中,目标操作数可以是RGB对应的加法混色算法中的操作数,例如可以指红、绿、蓝中任两种颜色叠加或者三种颜色叠加时,各颜色对应的叠加数值或者叠加比例。
根据本实现方式提供的多略图生成的方法,通过基于RGB处理指令同时读取用于加法指令算法的所有操作数,能够加速RGB混色过程,提高RGB处理的效率,进而缩短缩略图的出图时间。
结合第一方面,在第一方面的某些实现方式中,所述终端设备包括摄像传感器、存储模块和位于硬件抽象HAL层的RGB处理模块,所述RGB处理模块包括中央处理器CPU和多个执行部件,所述方法还包括:
所述CPU获取摄像传感器采集的原始图像对应的RAW数据,以及获取RGB处理指令;
所述CPU响应于所述RGB处理指令,指示所述多个执行部件从所述存储模块获取N个像素点分别对应的RGB处理数据,所述N个像素点为所述原始图像包括的像素点;
所述多个执行部件逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次同时读取多个不同像素点分别对应的RGB处理数据,所述多个像素点均属于所述N个像素点;
所述CPU根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
结合第一方面,在第一方面的某些实现方式中,所述终端设备包括摄像传感器、存储模块和位于HAL层的RGB处理模块,所述RGB处理模块包括CPU和多个执行部件,所述方法还包括:
所述CPU获取摄像传感器采集的原始RAW数据以及RGB处理指令,所述RAW数据包括N个像素点;
所述CPU响应于所述RGB处理指令,按照预设处理方式指示所述多个执行部件从所述存储模块获取所述N个像素点分别对应的RGB处理数据;
所述多个执行部件响应于所述RGB处理指令,逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次读取同一像素点对应的多个RGB处理数据;
所述CPU根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
结合第一方面,在第一方面的某些实现方式中,所述RGB处理指令包括加法指令,所述加法指令用于指示按照预设的RGB处理数据对某一像素点进行红、绿、蓝中任两种或三种颜色的叠加;
所述CPU响应于所述加法指令,指示所述多个执行部件读取N个像素点分别对应的RGB处理数据;
所述多个执行部件逐次读取每一所述像素点对应的所有目标操作数,所述目标操作数对应于所述加法指令;
所述CPU根据所述操作数分别计算所述每一像素点对应的红、绿、蓝中任两种或三种颜色的叠加后的颜色信息。
结合第一方面,在第一方面的某些实现方式中,所述RGB处理指令为单指令。
结合第一方面,在第一方面的某些实现方式中,所述CPU支持单指令流多数据流SIMD的RGB处理模式。
第二方面,提供了一种终端设备,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行如上述第一方面中任一实现方式所述的方法。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使所述计算机执行如上述第一方面中任一实现方式所述的方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使所述计算机执行如上述第一方面中任一实现方式所述的方法。
附图说明
图1为本申请实施例提供的一种缩略图生成的示意性流程图。
图2为本申请实施例提供的一种终端设备100的结构示意图。
图3为本申请实施例提供的一种终端设备100的软件结构框图。
图4A至图4C为本申请实施例提供的一些缩略图生成场景下可能涉及的GUI界面的示意图。
图5为本申请实施例提供的一种缩略图生成过程中数据流向的示意性图。
图6为本申请实施例提供的一种缩略图生成的示意性流程图。
图7为本申请实施例提供的一种通过单指令流多数据流读取数据的示意图。
图8为本申请实施例提供的另一种缩略图生成的示意性流程图。
具体实施方式
需要说明的是,本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联障碍物的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,除非另有说明,“多个”是指两个或多于两个,“至少一个”、“一个或多个”是指一个、两个或两个以上。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其它一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其它方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其它方式另外特别强调。
结合背景技术中的介绍,在一些生成缩略图的情形下,由于需要对图像进行多重处理,并且在处理过程中可能需要采用复杂的软件算法对原始图像进行格式转换,导致缩略图的生成时间较长,用户无法基于缩略图快速获知拍照效果,用户体验不佳。举例来说,以图1所示的一种缩略图生成过程为例,该过程包括:终端设备的摄像传感器(sensor)在底层生成原始图像数据(或称RAW数据)之后,将该RAW数据传输至终端设备的硬件抽象层(hardware abstraction layer,HAL);终端设备HAL层可以对RAW数据进行图像信号处理(image dignal processing,ISP)硬件处理,并且还可以利用YUVAlgo算法进行YUV处理,将RAW数据转换为YUV图像,以及利用RGB算法对该YUV图像进行RGB图像处理,将YUV图像转换为RGB图像;之后,HAL层将RGB图像上传至相机App,相机App通过显示屏向用户展示RGB模式的缩略图。该图1所示的缩略图生成的方式,需要对RAW数据进行ISP硬件处理、YUV处理以及RGB处理等多重处理,其中,YUV处理及RGB处理过程较为复杂,导致缩略图生成过程的速度较慢,用户需等待较长时间才能够查看缩略图,用户体验不佳。
有鉴于此,本申请实施例提供了一种缩略图生成的方法,通过采用异构加速的方式对摄像传感器采集的原始图像数据进行RGBAlgo算法处理,将RAW数据直接转换为RGB图像,从而解决缩略图出图速度慢,用户体验不佳的问题。
为了便于理解,以下首先对本申请实施例可能涉及到的相关概念或者定义进行介绍。
1、缩略图
本申请实施例中的缩略图可以具体指拍照后生成的经压缩处理后的小图,但其内容与拍摄照片的内容一致,并未发生改变。
2、RGB处理原理
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们互相之间的叠加来得到各式各样的颜色的。RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色。
RGB处理原理是从颜色发光的原理来设计的,可以类比为有红、绿、蓝三盏灯,当它们的光互相叠加时,色彩混合,混合后得到不同的色彩,而混合后的亮度则为各光亮度之和,也即混合后的光亮度遵循加法混合。
在一些RGB处理场景下,RGB处理是以图像的单个像素点为单位进行RGB处理,也即根据一定的RGB处理数据逐个对像素点进行红光、绿光、蓝光的叠加混合,以得到目标颜色。
3、异构计算(heterogeneous computing)
异构计算是一种特殊形式的并行和分布式计算,异构计算在解析计算任务并行性类型的基础上,可以将具有相同类型的代码段划分到同一子任务中,然后根据不同并行类型将各子任务分配到最适合执行它的计算资源上加以执行,使得计算任务总的执行时间为最小。
在本申请实施例中,异构计算也可以被描述为异构加速,主要用于在生成缩略图的过程中对RGB处理进行加速。具体来说,本申请实施例所涉及的异构计算可以由支持单指令流多数据流(single instruction multiple data,SIMD)的中央处理器(centralprocessing unit,CPU)和执行部件来执行,该CPU和执行部件可以集成在终端设备中,且具体可以归类于RGB处理模块。在具体应用时,CPU在解析RGB处理指令后,多个执行部件可以同时读取内存中的RGB处理数据,一次性获取多个像素点对应的RGB处理数据,实现同时对像素点进行RGB处理;或者,CPU在解析RGB处理时所涉及的RGB加法指令后,多个执行部件可以一次性读取内存中的多个操作数(如加法运算中涉及到的红、绿、蓝对应的叠加数值)进行运算等。
本申请实施例提供的缩略图生成的方法可以应用于极速拍照或者普通拍照等场景下。比如,可以应用于通过终端设备的相机App进行拍照的场景下;再比如,也可以应用于通过安装于终端设备的具有拍照功能的第三方应用(如美图秀秀、微信等)进行拍照的场景下。本申请对此不作限定。
本申请实施例提供的缩略图生成的方法可以应用于终端设备,该终端设备可以是具有拍照功能的多种类型的电子设备。比如,终端设备可以是手机、平板电脑、可穿戴设备、笔记本电脑、台式电脑、上网本、个人数字助理(personal digital assistant,PDA)等电子设备。本申请实施例对终端设备的类型不做任何限制。
示例性的,如图2所示,为本申请实施例提供的一种终端设备100的结构示意图。
终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像传感器193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像传感器193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像传感器193等外围器件。MIPI接口包括摄像传感器串行接口(camera serial interface,CSI),显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器110和摄像传感器193通过CSI接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像传感器193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像传感器193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。显示屏194用于显示图像,视频等。
终端设备100可以通过ISP,摄像传感器193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。视频编解码器用于对数字视频压缩或解压缩。NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定终端设备100的运动姿态。磁传感器180D包括霍尔传感器。终端设备100可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端姿态,应用于横竖屏切换,计步器等应用。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。环境光传感器180L用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。骨传导传感器180M可以获取振动信号。
此外,终端设备100还包括气压传感器180C和距离传感器180F。其中,气压传感器180C用于测量气压。在一些实施例中,终端设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
距离传感器180F,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180F测距以实现快速对焦。
示例性的,终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。图3是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime),系统库,内核层,硬件抽象层(hardwareabstraction layer,HAL)以及硬件层。
应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机,日历,地图,WLAN,音乐,短信息,图库,通话,导航,蓝牙,视频等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,电话管理器,资源管理器,通知管理器,视图系统等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行障碍物生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像传感器驱动,音频驱动,传感器驱动。
硬件抽象层HAL为位于操作系统内核层与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。从软硬件测试的角度来看,软硬件的测试工作都可以分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。
硬件抽象层HAL可以包括RGB处理模块。RGB处理模块可以用于通过异构加速方式对原始图像数据进行RGB处理,生成RGB模式的图像。RGB处理模块可以具体包括RGB处理的CPU和执行部件,其中,CPU可以用于解析执行和进行RGB处理,执行部件可以用于查询进行RGB处理时涉及的RGB处理数据,如加法计算时涉及的操作数等。
硬件层可以包括摄像传感器,以及其他各类传感器(例如触摸传感器)、显示屏等。
示例性的,如图4A至图4C所示,为本申请实施例提供的一种缩略图生成方法中可能涉及到的一些图形用户界面(graphical user interface,GUI)的示意图。为了便于描述,这里以终端设备是手机为例进行介绍,但本申请实施例并不限定于此。
示例性的,如图4A所示,为手机主界面的示意图。该主界面可以包括应用图标显示区域10,用于显示多种类型的应用程序(application,App)图标,如时钟图标、日历图标、图库图标、备忘录图标、文件管理图标、电子邮件图标、音乐图标、计算器图标、录音机图标、运动健康图标、天气图标、浏览器图标、智慧管家图标、设置图标等。多个应用程序图标下方可以有页面指示符显示区域20,该区域包括的页面指示符用于表明当前显示的页面与其他页面的位置关系。页面指示符的下方可以显示有托盘应用图标显示区域30,用于显示多个托盘应用图标,例如相机应用图标、通讯录应用图标、电话拨号应用图标、信息应用图标等。在另一些实施例中,手机主屏幕界面可以包括比图示更多或更少的应用程序图标或托盘应用图标,本申请对此不作限定。在该界面的上方还可以显示有状态栏40,该状态栏40可以包括:移动通信信号(或称蜂窝信号)的一个或多个信号强度指示符、无线高保真(wirelessfidelity,Wi-Fi)信号的一个或多个信号强度指示符,手机的电量指示符,时间指示符等。
在一些实施例中,当用户需要拍照时,可以针对主界面中的相机图标输入操作(如点击操作);响应于用户输入的操作,手机可以显示如图4B所示的相机拍摄界面。示例性的,如图4B所示,该拍摄界面可以包括拍照预览界面、拍照控件50以及拍照辅助控件,其中,拍照控件50用于接收用户输入的拍照操作,并响应于该拍照操作对拍照预览界面中的图像进行拍照;拍照辅助控件可以用于对拍照模式进行快速切换或者对拍照参数进行快速设置,该拍照辅助控件例如可以包括拍照模块控件(如图4B所示的光圈模式、夜景模式、人像模式、录像模式、专业模式、更多模式等)。此外,拍照辅助控件还可以包括智能AI控件、设置控件、拍摄放大倍数调整控件等等。
在一些实施例中,当手机接受到用户针对用户针对拍照控件50输入的操作(如点击操作)时,可以生成预览界面中图像对应的照片,同时也可以生成该图像对应的缩略图。示例性的,如图4C所示,当用户点击拍照控件50之后,手机可以响应于该点击操作生成与当前拍照预览界面中图像对应的缩略图,并且在当前的手机界面显示该缩略图。示例性的,该缩略图可以显示于拍照预览界面的右下角(如图4C所示的缩略图60),但本申请实施例对此不作限定。
需要说明的是,根据本申请实施例提供的生成缩略图的方法,当用户执行拍照操作之后,手机可以响应于该拍照操作生成照片以及该照片对应的缩略图。其中,在生成缩略图的过程中,可以采用单指令流多数据流的异构加速方式对底层摄像传感器采集的RAW数据进行RGB处理,直接将RAW数据转换为RGB图像,由于仅采用了RGB算法对RAW数据进行了处理,且在RGB处理时采用了单指令流多数据流的异构加速方式,因而本申请实施例提供的生成缩略图的方法能够更快地生成缩略图,使用户能够快速查看拍照效果,提升用户的拍照体验。
为了更好地理解本申请实施例提供的缩略图生成的方法,以下对本申请实施例提供的缩略图生成的方法的底层实现过程进行介绍。
示例性的,如图5所示,为本申请实施例提供的一种缩略图生成的方法对应的数据流向示意图。
在一些实施例中,当用户通过终端设备的相机App进行照片拍摄时,终端设备的摄像传感器可以将周围对象反射的光信号转换为电信号,也即原始图像对应的RAW数据,该RAW数据可以转换为拍照数据流和缩略图数据流。其中,RAW数据是指摄像传感器捕获的最原始的关于拍摄图像的数据流,拍照数据流可以指用于生成照片图像的数据流;缩略图数据流可以指用于生成缩略图的数据流。
需要说明的是,拍照数据流的流向及照片的生成过程可以参见现有流程,在本申请实施例中,主要基于缩略图数据流对缩略图的生成过程进行介绍。此外,在拍照数据流和缩略图数据流之外,该RAW数据还可以转换为预览数据流、控制信息流等,本申请对此不作限定。
在一些实施例中,摄像传感器将RAW数据传输至HAL层的RGB处理模块,RGB处理模块采用异构加速的方式对RAW数据进行RGB处理,将RAW数据转换为RGB模式(也即RGB图像或RGB模式的数据)。其中,异构加速方式可以指采用单指令流多数据流(single instructionmultiple data,SIMD)方式,通过一次运算指令执行多个数据流,帮助中央处理器(centralprocessing unit,CPU)实现数据并行处理,提高运算效率,也提高程序的运算速度。
示例性的,缩略图数据流可以包括RAW数据包括的各个像素点对应的数据流,当数据流传输至HAL层时,RGB处理模块可以采用单指令流多数据流的异构加速方式对数据流进行RGB颜色编译。相比于单指令流单数据流(single instruction single data,SISD)的RGB处理方式来说,单指令流多数据流可以通过一次指令指示RGB处理模块同时获取多个像素点对应的数据流,并对一次性获取的多个像素点对应的数据进行运算,从而可以同时将多个像素点对应的RAW数据转换为RGB模式的数据。换言之,通过单指令流多数据流的方式对RAW数据进行RGB处理时,HAL层可以向RGB处理模块发送处理指令,响应于该处理指令,RGB处理模块可以访问内存同时获取多个像素点对应的RGB编码数据,并且基于这些RGB编码数据对多个像素点同时进行RGB处理,从而一次性将多个像素点对应的RAW数据转换为RGB模式的数据。
比如,以加法指令(如RGB的加法混合算法)为例,单指令单数据SISD的CPU对加法指令进行译码之后,执行部件会先访问内存,取得第一个操作数,之后再一次访问内存,获取第二个操作数,随后才能进行求和运算。而在本申请实施例提供的缩略图生成的方法中,HAL层的单指令流多数据流SIMD的CPU对加法指令进行译码之后,几个执行部件会同时访问内存,一次性获取所有操作数进行运算,从而加速了对RAW数据的RGB处理。
在一些实施例中,当通过单指令流多数据流异构加速方式将RAW数据转换为RGB图像之后,可以基于该RGB图像获取压缩编码格式图片,如获取JPEG格式的缩略图;HAL层将缩略图进一步上传至应用层的相机APP,并最终由相机App通过显示屏将该RGB模式的缩略图显示给用户。
值得注意的是,本申请实施例提供的缩略图生成的过程中,不再对RAW数据进行YUV处理,而是直接对其进行RGB处理,也即直接将RAW数据转换为RGB图像。此外,在RGB处理过程了,为了提高处理效率,会采用单指令流多数据流的异构加速方式提高RGB处理的运算速率,从而缩短了缩略图的出图时间。
根据本申请实施例提供的缩略图生成的方法,通过采用单指令流多数据流的异构加速方式对底层摄像传感器采集的RAW数据进行RGB处理,直接将RAW数据转换为RGB图像,由于仅采用了RGB算法对RAW数据进行了处理,且在RGB处理时采用了单指令流多数据流的异构加速方式,因而本申请实施例提供的生成缩略图的方法能够更快地生成缩略图,使用户能够快速查看拍照效果,提升用户的拍照体验。
示例性的,如图6所示,为本申请实施例提供的另一种缩略图生成的方法的示意性流程图。该方法的执行主体可以为如图1或图2所示的终端设备100,具体可以包括以下步骤:
S601,相机APP接收用户输入的拍照操作。
在一些实施例中,该拍照操作可以对应于如图4B所示的拍照操作50。具体地,当用户通过终端设备的显示屏输入拍照操作50时,显示屏可以将该拍照操作50传输至触摸模块(touch模块)(图6未示出),接着该touch模块可以进一步将该拍照操作50传输至相机App。
S602,相机APP向摄像传感器发送拍照指示信息。
在一些实施例中,当相机App接收到拍照操作之后,可以向摄像传感器发送拍照指示信息,指示摄像传感器采集当前预览框中的图像。
S603,摄像传感器采集图像。
在一些实施例中,摄像传感器采集图像的过程可以包括:摄像传感器接收被摄对象反射的光线,并将光信号转换为电信号。该电信号可以是被摄原始图像对应的RAW数据。
S604,摄像传感器向RGB处理模块的CPU发送RAW数据。
其中,该RAW数据为摄像传感器采集的原始数据,该RAW数据可以包括采集图像中各像素点对应的原始图像。RGB处理模块的CPU可以用于对摄像传感器采集的RAW数据进行RGB处理。
S605,RGB处理模块的CPU响应于RAW数据,解析RGB处理指令。
其中,CPU为对RAW数据进行RGB处理的处理器,可以归属于HAL层的RGB处理模块。
在一些实施例中,这里的CPU可以是预设的单指令流多数据流处理器,该CPU还可以用于接收针对RAW进行RGB算法处理的RGB处理指令。当接收到RGB处理指令,且对该RGB处理指令进行解析之后,可以通过异构加速方式(该异构加速方式可以是单指令流多数据流方式)执行对RAW数据的RGB操作。示例性的,该单指令流多数据流的RGB处理方式可以包括以下步骤S606至步骤S609:
S606,RGB处理模块的CPU分别向执行部件1至执行部件n发送RGB处理指令。
其中,该RGB处理指令分别用于指示执行部件1至执行部件n分别从终端设备的存储模块读取多项用于RGB处理的数据,各个执行部件可以同时(或者在同一批次)读取多项数据。示例性的,该多项数据例如可以是针对原始图像不同像素点进行RGB处理的数据,或者还可以是针对原始图像中某一像素点进行RGB处理时所需要的多项操作数。可以理解的,本申请实施例中多个执行部件在同一批次读取的多项数据可以对应于RGB处理指令,也即该多项数据可以是用于CPU执行RGB处理指令时所需要用到的数据。
在一些实施例中,执行部件1至执行部件n可以用于执行对不同像素点对应的RGB处理数据的查询操作,该n个执行部件可以响应于RGB处理指令一次性获取n个像素点分别对应的RGB处理数据。或者,执行部件1至执行部件n也可以用于执行对同一像素点对应的不同类型的查询操作,比如在对像素点1进行RGB处理时,需要查询其对应的颜色叠加时红、绿。蓝分别对应的叠加比例,那么此时执行部件1至执行部件3可以同时分别查询这三种颜色对应的叠加比例。
以下以通过多个执行部件一次性查询多个像素点对应的RGB处理数据为例进行介绍。
S607(1),执行部件1向存储模块查询像素点1对应的RGB处理数据。
S607(n),执行部件n向存储模块查询像素点n对应的RGB处理数据。
在一些实施例中,n为大于1的整数,像素点1、像素点n中的1和n仅用于标识不同像素。示例性的,n可以为预设的单次需要查询RGB处理数据的像素点数量,例如,n可以为10或者100等;再例如,当一次性对原始图像的所有像素点进行RGB处理时,n可以是原始图像包括的像素点的总数量。
S608(1),执行部件1获取像素点1对应的RGB处理数据。
S608(n),执行部件n获取像素点n对应的RGB处理数据。
S609,RGB处理模块根据RGB处理数据对RAW数据进行RGB处理,获取RGB图像。
在一些实施例中,当RGB处理模块(具体可以是RGB处理模块中的CPU)可以同时获取n个像素点对应的RGB处理数据,之后可以基于这些RGB处理数据对n个像素点对应的RAW数据同时或一次性地进行RGB转换。
需要说明的是,如图7所示的3个执行部件为例,相比于通过单指令流单数据流针对逐个像素点进行RGB处理数据进行查询进而针对像素点逐个进行RGB转换,这里通过单指令流多数据流的异构加速方式可以基于一个指令(如RGB处理指令)一次性(或同时、同批次)查询并获取多个像素点对应的RGB处理数据(如同时获取像素点1至3对应的RGB处理数据),进而使得CPU可以同时对n个像素点进行RGB转换,从而提高了缩略图生成效率。
还需要说明的是,RGB处理模块根据RGB处理数据对RAW数据进行RGB处理具体是指直接将RAW数据转换为RGB图像,具体的RGB处理方式可以包括RGB的加法混色算法处理或者其他的RGB处理方式等,此处不再做详述。
S610,RGB处理模块向相机App发送RGB图像。
S611,相机App生成预设格式的缩略图。
在一些实施例中,这里的预设格式可以指图像的压缩格式,例如可以是JEPG,但本申请实施例对此不作限定。
在一些实施例中,相机App获取RGB模式的缩略图之后,可以通过显示屏向用户展示该缩略图。例如,该缩略图可以对应于如图4C所示的图像60。
需要说明的是,本申请实施例中通过单指令流多数据流的方式加速RGB处理过程中,所介绍的同时从存储模块读取多个像素点对应的RGB处理数据仅为示例,在实际应用中,还可以一次性一个指令(如RGB处理指令)对应的所有数据。比如,CPU还可以基于单指令流多数据流的异构加速方式,指示执行部件同时从内存读取一个RGB处理指令涉及的多个操作数(一个RGB处理指令例如可以针对一个像素点或多个像素点);或者,CPU还可以基于单指令流多数据流的异构加速方式,指示执行部件同时从内存读取针对多个像素点RGB处理时分别涉及的多个操作数,本申请对一次性读取的数据的类型不作限定。
根据本申请实施例提供的缩略图生成的方法,通过采用单指令流多数据流的异构加速方式对底层摄像传感器采集的RAW数据进行RGB处理,直接将RAW数据转换为RGB图像,由于仅采用了RGB算法对RAW数据进行了处理,且在RGB处理时采用了异构加速方式,因而能够更快地生成缩略图,使用户能够快速查看拍照效果,提升用户的拍照体验。
示例性的,如图8所示,为本申请实施例提供的另一种缩率图生成的方法的示意性流程图。具体可以包括以下步骤:
S801,获取摄像传感器采集的原始图像对应的RAW数据,以及获取RGB处理指令。
其中,该RGB处理指令用于指示终端设备对采集到的原始图像进行RGB处理,该RGB处理指令可以为单指令。
S802,响应于RGB处理指令,对RAW数据直接进行RGB处理,使得RAW图像直接转换为RGB模式。
在一些实施例中,RAW数据可以指摄像传感器采集到的原始图像对应的数据,该RAW数据也可以被描述为原始图像数据。
在一些实施例中,对所述RAW数据直接进行RGB处理是指在生成缩略图的过程中,生成缩略图的过程中,直接将原始图像转换为RGB图像,而不包括其他YUV处理及ISP硬件处理等。需要说明的是,通常来说,后期显示处理包括YUV处理、RGB处理以及ISP硬件处理等,而在本申请实现方式中,后期显示处理仅包括RGB处理,而不会对原始图像进行其他的显示优化处理。但在生成RGB图像后,仍可以对其进行图像压缩处理等,本申请对此不作限定。
需要说明的是,终端设备直接将RAW数据转换为RGB模式的过程中还可以采用异构加速的方式,该异构加速方式主要采用矢量化的方式,通过单指令流多数据流实现,具体地,可以基于一次运算指令执行多个数据流获取该运算指令对应的多项数据,帮助CPU实现数据并行运算,提高运算效率。
在一些实施例中,所述RAW数据包括N个像素点;响应于所述RGB处理指令,对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式,具体包括:响应于所述RGB处理指令,逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次同时读取所述多个不同像素点分别对应的RGB处理数据,所述多个像素点均属于所述N个像素点;根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
需要说明的是,本申请中的逐次可以指一次或多次。在多次的情形下,该多次中的某一次、某几次或者每一次可以同时读取多个不同像素点分别对应的RGB处理数据。
具体地,终端设备包括摄像传感器、存储模块和位于硬件抽象HAL层的RGB处理模块,所述RGB处理模块包括中央处理器CPU和多个执行部件。采用异构加速方式将RAW数据直接转换为RGB模式的图像的过程可以包括:所述CPU获取摄像传感器采集的原始图像对应的RAW数据,以及获取RGB处理指令;所述CPU响应于所述RGB处理指令,指示所述多个执行部件从所述存储模块获取N个像素点分别对应的RGB处理数据,所述N个像素点为所述原始图像包括的像素点;所述多个执行部件逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次同时读取多个不同像素点分别对应的RGB处理数据,所述多个像素点均属于所述N个像素点;所述CPU根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
在一些实施例中,所述RAW数据包括N个像素点;响应于所述RGB处理指令,对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式,具体包括:响应于所述RGB处理指令,逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次读取同一像素点对应的多个RGB处理数据;根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
需要说明的是,本申请中的逐次可以指一次或多次。在多次的情形下,该多次中的某一次、某几次或者每一次可以同时读取同一像素点对应的多个RGB处理数据。同一像素对应的多个RGB处理数据可以包括用于执行RGB算法(如RGB的加法混色算法)的操作数。
具体地,终端设备包括摄像传感器、存储模块和位于硬件抽象HAL层的RGB处理模块,所述RGB处理模块包括中央处理器CPU和多个执行部件。采用异构加速方式将RAW数据直接转换为RGB模式的图像的过程可以包括:所述CPU获取摄像传感器采集的原始RAW数据以及RGB处理指令,所述RAW数据包括N个像素点;所述CPU响应于所述RGB处理指令,按照预设处理方式指示所述多个执行部件从所述存储模块获取所述N个像素点分别对应的RGB处理数据;所述多个执行部件响应于所述RGB处理指令,逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次读取同一像素点对应的多个RGB处理数据;所述CPU根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
在一些实施例中,所述RGB处理指令包括加法指令,所述加法指令用于指示按照预设的RGB处理数据对所述像素点进行红、绿、蓝中任两种或三种颜色的叠加;所述响应于所述加法指令,逐次读取N个像素点分别对应的RGB处理数据,具体包括:逐次读取每一所述像素点对应的所有目标操作数,所述目标操作数用于按照所述加法指令进行加法计算;根据所述目标操作数分别计算所述每一像素点对应的红、绿、蓝中任两种或三种颜色的叠加后的颜色信息。
具体地,RGB处理指令包括加法指令,所述加法指令用于指示按照预设的RGB处理数据对所述像素点进行红、绿、蓝中任两种或三种颜色的叠加。采用异构加速方式将RAW数据直接转换为RGB模式的图像的过程可以包括:CPU响应于所述加法指令,指示所述多个执行部件读取N个像素点分别对应的RGB处理数据;所述多个执行部件逐次读取每一所述像素点对应的所有目标操作数,所述目标操作数对应于所述加法指令;所述CPU根据所述操作数分别计算所述每一像素点对应的红、绿、蓝中任两种或三种颜色的叠加后的颜色信息。
在一种实现方式中,目标操作数可以是RGB对应的加法混色算法中的操作数,例如可以指红、绿、蓝中任两种颜色叠加或者三种颜色叠加时,各颜色对应的叠加数值或者叠加比例。
可以理解的,本实现方式提供的多略图生成的方法,通过基于RGB处理指令同时读取用于加法指令算法的所有操作数,能够加速RGB混色过程,提高RGB处理的效率,进而缩短缩略图的出图时间。
需要说明的是,在在拍照场景下将RAW直接转换为RGB时,可以采用异构加速的方式,该异构加速方式主要采用矢量化的方式,通过单指令流多数据流实现,具体地,可以基于一次运算指令执行多个数据流获取多项数据,帮助CPU实现数据并行运算,提高运算效率。
S803,获取RGB模式的缩略图。
在一些实施例中,终端设备在获取RGB图像之后,还可以按照预设方式对该RGB图像进行格式压缩,获取RGB模式下具有特定压缩格式的缩略图。示例性的,该压缩格式例如可以是JEPG,但本申请实施例对此不作限定。其中,该缩略图可以对应于如图4C所示的图像60。
根据本申请实施例提供的缩略图生成的方法,通过采用单指令流多数据流的异构加速方式对底层摄像传感器采集的RAW数据进行RGB处理,直接将RAW数据转换为RGB图像,由于仅采用了RGB算法对RAW数据进行了处理,且在RGB处理时采用了单指令流多数据流的异构加速方式,因而本申请实施例提供的生成缩略图的方法能够更快地生成缩略图,使用户能够快速查看拍照效果,提升用户的拍照体验。
基于同样的技术构思,本申请实施例还提供了一种终端设备,包括一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种包含指令的计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种缩略图生成的方法,其特征在于,应用于终端设备,包括:
当用户执行拍照操作之后,获取摄像传感器采集的原始图像对应的RAW数据,以及获取RGB处理指令,所述RAW数据对应于缩略图数据流,所述RAW数据包括N个像素点;
响应于所述RGB处理指令,逐次读取所述N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次同时读取多个不同像素点分别对应的RGB处理数据,所述多个像素点均属于所述N个像素点;
根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,而不进行YUV处理和其它图像信号处理ISP硬件处理,使得所述RAW图像直接转换为RGB模式;
根据所述RGB模式的图像,生成预设格式的缩略图。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于所述RGB处理指令,逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次读取同一像素点对应的多个RGB处理数据;
根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
3.根据权利要求2所述的方法,其特征在于,所述RGB处理指令包括加法指令,所述加法指令用于指示按照所述RGB处理数据对所述像素点进行红、绿、蓝中任两种或三种颜色的叠加;
所述响应于所述加法指令,逐次读取N个像素点分别对应的RGB处理数据,具体包括:
逐次读取每一所述像素点对应的所有目标操作数,所述目标操作数用于按照所述加法指令进行加法计算;
根据所述目标操作数分别计算所述每一像素点对应的红、绿、蓝中任两种或三种颜色的叠加后的颜色信息。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述终端设备包括摄像传感器、存储模块和RGB处理模块,所述RGB处理模块包括中央处理器CPU和多个执行部件,所述方法还包括:
所述CPU获取摄像传感器采集的所述原始图像对应的所述RAW数据,以及获取所述RGB处理指令;
所述CPU响应于所述RGB处理指令,指示所述多个执行部件从所述存储模块获取N个像素点分别对应的RGB处理数据,所述N个像素点为所述原始图像包括的像素点;
所述多个执行部件逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次同时读取多个不同像素点分别对应的RGB处理数据,所述多个像素点均属于所述N个像素点;
所述CPU根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述终端设备包括摄像传感器、存储模块和位于HAL层的RGB处理模块,所述RGB处理模块包括CPU和多个执行部件,所述方法还包括:
所述CPU获取摄像传感器采集的原始RAW数据以及RGB处理指令,所述RAW数据包括N个像素点;
所述CPU响应于所述RGB处理指令,按照预设处理方式指示所述多个执行部件从所述存储模块获取所述N个像素点分别对应的RGB处理数据;
所述多个执行部件响应于所述RGB处理指令,逐次读取N个像素点分别对应的RGB处理数据,其中,所述逐次中的至少一次读取同一像素点对应的多个RGB处理数据;
所述CPU根据所述N个像素点分别对应的RGB处理数据对所述RAW数据直接进行RGB处理,使得所述RAW图像直接转换为RGB模式。
6.根据权利要求5所述的方法,其特征在于,所述RGB处理指令包括加法指令,所述加法指令用于指示按照预设的RGB处理数据对某一像素点进行红、绿、蓝中任两种或三种颜色的叠加;
所述CPU响应于所述加法指令,指示所述多个执行部件读取N个像素点分别对应的所述RGB处理数据;
所述多个执行部件逐次读取每一所述像素点对应的所有目标操作数,所述目标操作数用于按照所述加法指令进行加法计算;
所述CPU根据所述目标操作数分别计算所述每一像素点对应的红、绿、蓝中任两种或三种颜色的叠加后的颜色信息。
7.根据权利要求1-3中任一项所述的方法,其特征在于,所述RGB处理指令为单指令。
8.根据权利要求4所述的方法,其特征在于,所述CPU支持单指令流多数据流SIMD的RGB处理模式。
9.一种终端设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行如权利要求1至8中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使所述计算机执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211286592.9A CN116723415B (zh) | 2022-10-20 | 2022-10-20 | 缩略图生成的方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211286592.9A CN116723415B (zh) | 2022-10-20 | 2022-10-20 | 缩略图生成的方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116723415A CN116723415A (zh) | 2023-09-08 |
CN116723415B true CN116723415B (zh) | 2024-04-19 |
Family
ID=87872124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211286592.9A Active CN116723415B (zh) | 2022-10-20 | 2022-10-20 | 缩略图生成的方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116723415B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117499777B (zh) * | 2023-09-15 | 2024-10-15 | 荣耀终端有限公司 | 一种图像显示方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001169167A (ja) * | 1999-09-28 | 2001-06-22 | Nikon Corp | 電子カメラ |
JP2011166515A (ja) * | 2010-02-10 | 2011-08-25 | Olympus Corp | 撮像装置 |
WO2020228792A1 (zh) * | 2019-05-15 | 2020-11-19 | 华为技术有限公司 | 一种图像拍摄方法与电子设备 |
WO2021037227A1 (zh) * | 2019-08-30 | 2021-03-04 | 华为技术有限公司 | 一种图像处理方法、电子设备及云服务器 |
CN113810600A (zh) * | 2021-08-12 | 2021-12-17 | 荣耀终端有限公司 | 终端的图像处理方法、装置和终端设备 |
CN115002332A (zh) * | 2021-03-01 | 2022-09-02 | 北京小米移动软件有限公司 | 拍摄处理方法、装置、电子设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529423B2 (en) * | 2004-03-26 | 2009-05-05 | Intel Corporation | SIMD four-pixel average instruction for imaging and video applications |
US10148871B2 (en) * | 2016-12-07 | 2018-12-04 | Microsoft Technology Licensing, Llc | Advanced raw conversion to produce high dynamic range, wide color gamut output |
-
2022
- 2022-10-20 CN CN202211286592.9A patent/CN116723415B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001169167A (ja) * | 1999-09-28 | 2001-06-22 | Nikon Corp | 電子カメラ |
JP2011166515A (ja) * | 2010-02-10 | 2011-08-25 | Olympus Corp | 撮像装置 |
WO2020228792A1 (zh) * | 2019-05-15 | 2020-11-19 | 华为技术有限公司 | 一种图像拍摄方法与电子设备 |
WO2021037227A1 (zh) * | 2019-08-30 | 2021-03-04 | 华为技术有限公司 | 一种图像处理方法、电子设备及云服务器 |
CN115002332A (zh) * | 2021-03-01 | 2022-09-02 | 北京小米移动软件有限公司 | 拍摄处理方法、装置、电子设备和存储介质 |
CN113810600A (zh) * | 2021-08-12 | 2021-12-17 | 荣耀终端有限公司 | 终端的图像处理方法、装置和终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116723415A (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115473957B (zh) | 一种图像处理方法和电子设备 | |
WO2020244492A1 (zh) | 一种投屏显示方法及电子设备 | |
WO2020093988A1 (zh) | 一种图像处理方法及电子设备 | |
CN113254409B (zh) | 文件共享方法、系统及相关设备 | |
CN113448382B (zh) | 多屏幕显示电子设备和电子设备的多屏幕显示方法 | |
CN111382087A (zh) | 一种内存管理方法及电子设备 | |
US20230350629A1 (en) | Double-Channel Screen Mirroring Method and Electronic Device | |
CN116723415B (zh) | 缩略图生成的方法及终端设备 | |
CN115119048B (zh) | 一种视频流处理方法及电子设备 | |
CN115460343B (zh) | 图像处理方法、设备及存储介质 | |
CN116052236B (zh) | 人脸检测处理引擎、涉及人脸检测的拍摄方法及设备 | |
WO2023160179A1 (zh) | 倍率切换方法和倍率切换装置 | |
CN114064160A (zh) | 应用图标布局方法及相关装置 | |
CN116708751B (zh) | 一种拍照时长的确定方法、装置和电子设备 | |
CN115482143B (zh) | 应用的图像数据调用方法、系统、电子设备及存储介质 | |
CN114827439A (zh) | 一种全景图像的拍摄方法及电子设备 | |
CN115686182A (zh) | 增强现实视频的处理方法与电子设备 | |
CN114793283A (zh) | 图像编码方法、图像解码方法、终端设备及可读存储介质 | |
CN113950045A (zh) | 签约数据的下载方法和电子设备 | |
US12079537B2 (en) | Screen projection method and system, and related apparatus | |
CN116095219B (zh) | 通知显示方法和终端设备 | |
CN117689796B (zh) | 一种渲染处理方法及电子设备 | |
CN116095223B (zh) | 通知显示方法和终端设备 | |
CN116916148B (zh) | 一种图像处理方法、电子设备及可读存储介质 | |
CN116414493A (zh) | 图像处理方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |