一种图像处理方法、装置及终端设备转让专利

申请号 : CN201910367512.4

文献号 : CN110111279A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 夏海雄

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种图像处理方法、装置及终端设备,属于图像处理技术领域,用于针对视频后处理提供多图层特效的处理方式,并且数据处理量较低,可确保较高的特效处理效率。所述方法包括:确定M路图像数据中的每路图像数据的显示层级和相对于画布的显示区域,其中,所述M路图像数据中有至少一路图像数据为视频流数据,M为大于或等于2的整数;根据每路图像数据的显示区域,分别确定每路图像数据对应的图层,共确定M个图层;在每个图层中绘制对应的一路图像数据,得到M份纹理数据;以及将所述M份纹理数据按照每路图像数据的显示层级渲染到所述画布上。

权利要求 :

1.一种图像处理方法,其特征在于,所述方法包括:

确定M路图像数据中的每路图像数据的显示层级和相对于画布的显示区域,其中,所述M路图像数据中有至少一路图像数据为视频流数据,M为大于或等于2的整数;

根据每路图像数据的显示区域,分别确定每路图像数据对应的图层,共确定M个图层;

在每个图层中绘制对应的一路图像数据,得到M份纹理数据;

将所述M份纹理数据按照每路图像数据的显示层级渲染到所述画布上。

2.如权利要求1所述的方法,其特征在于,根据每路图像数据的显示区域,分别确定每路图像数据对应的图层,包括:确定每路图像数据的显示区域相对于所述画布的坐标范围;

将每路图像数据的显示区域的坐标范围确定为该路图像数据对应的图层的坐标范围;

根据每个图层的坐标范围,对应确定每个图层相对于所述画布的图层覆盖区域。

3.如权利要求1所述的方法,其特征在于,在每个图层中绘制对应的一路图像数据,包括:若该图层为顶层图层,则在该图层的图层覆盖区域中绘制该路图像数据;

若该图层不为顶层图层,则确定该图层与该图层的上层图层之间的重叠显示区域,并将该路图像数据中除去需要显示在所述重叠显示区域中的图像数据外的剩余图像数据在剩余图层覆盖区域中绘制,其中,该图层的上层图层为显示层级在该图层的显示层级之上的任一图层,所述剩余图层覆盖区域为该图层的图层覆盖区域中除去所述重叠显示区域的区域。

4.如权利要求3所述的方法,其特征在于,从该路图像数据中删除需要显示在所述重叠显示区域中的图像数据,以得到所述剩余图像数据。

5.如权利要求1所述的方法,其特征在于,在每个图层中绘制对应的一路图像数据,包括:在该图层中绘制对应的一路图像数据以得到初始纹理数据之后,对所述初始纹理数据进行图像特效处理;

将进行图像特效处理得到的纹理数据确定为该图层的纹理数据。

6.如权利要求1所述的方法,其特征在于,所述M个图层中的每个图层包括一个父图层和至少一个子图层,其中,父图层用于承载一路图像数据的所有数据,每个子图层用于承载该路图像数据中的不同显示对象分别对应的数据,每个子图层的显示层级均在父图层的显示层级之上;

则,在每个图层中绘制对应的一路图像数据,包括:

在该图层包括的父图层或子图层中绘制数据,以完成对该图层的图像数据的绘制。

7.如权利要求6所述的方法,其特征在于,在该图层包括的父图层或子图层中绘制数据,包括:若该路图像数据为视频流数据,确定该视频流数据中相邻的下一帧图像与上一帧图像之间的重合数据占所述上一帧图像的比例;

若所述比例小于比例阈值,则在该图层的父图层中绘制所述下一帧图像;

若所述比例大于或等于所述比例阈值,则确定所述下一帧图像与所述上一帧图像之间未重合数据所对应的子图层,并在确定出的子图层中绘制所述未重合数据以绘制所述下一帧图像。

8.如权利要求6所述的方法,其特征在于,在该图层包括的父图层或子图层中绘制数据,包括:在获得针对该图层的全局特效指令时,对该图层的父图层进行所述全局特效指令所指示的特效处理,以为该图层的所有子图层添加相同的图像特效;

在获得针对该图层的局部特效指令时,从该图层的所有子图层中确定所述局部特效指令所指示的需特效处理的子图层以及对应的特效处理方式,并对每个需特效处理的子图层进行相应的特效处理。

9.如权利要求1-8任一所述的方法,其特征在于,确定每路图像数据的显示层级和相对于画布的显示区域,包括:根据使用的多图层特效模板,确定每路图像数据的显示层级和相对于所述画布的显示区域;或者,根据检测到的用户选择操作,确定每路图像数据的显示层级和相对于所述画布的显示区域。

10.如权利要求1-8任一所述的方法,其特征在于,所述方法还包括:检测针对一路图像数据的位置调整操作;

根据所述位置调整操作,调整该路图像数据的显示层级和/或相对于所述画布的显示区域。

11.如权利要求1-8任一所述的方法,其特征在于,所述方法还包括:获得合成音效指令;

根据所述合成音效指令,将音频数据和经渲染处理得到的图像渲染数据进行合成处理,以得到音视频合成数据;

将得到的音视频合成数据输出或者发布至社交平台。

12.一种图像处理装置,其特征在于,所述装置包括:第一确定模块,用于确定M路图像数据中的每路图像数据的显示层级和相对于画布的显示区域,其中,所述M路图像数据中有至少一路图像数据为视频流数据,M为大于或等于2的整数;

第二确定模块,用于根据每路图像数据的显示区域,分别确定每路图像数据对应的图层,共确定M个图层;

绘制模块,用于在每个图层中绘制对应的一路图像数据,得到M份纹理数据;

渲染模块,用于将所述M份纹理数据按照每路图像数据的显示层级渲染到所述画布上。

13.一种终端设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-11任一所述的方法包括的步骤。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1-11任一所述的方法包括的步骤。

说明书 :

一种图像处理方法、装置及终端设备

技术领域

[0001] 本发明涉及图像处理技术领域,尤其涉及一种图像处理方法、装置及终端设备。

背景技术

[0002] 随着短视频的迅猛发展,视频的拍摄和后期处理也成了研究的热点。视频的后处理,比如美颜、贴纸、滤镜等特效受到大多数用户喜欢,对于视频后处理,产品上也出现各种各样的玩法。例如,除了前面所说的美颜、贴纸等特效之外,多图层特效也成为了目前一种很流行的视频后处理方式,所谓的多图层特效,是指多个视频可以合成一个视频,并且在合成的视频中各个视频可以各自独立播放。
[0003] 基于目前视频的多图层特效的使用需求,需要一种多图层特效处理方案。

发明内容

[0004] 本申请实施例提供一种图像处理方法、装置及终端设备,用于针对视频后处理提供多图层特效的处理方式,并且数据处理量较低,可确保较高的特效处理效率。
[0005] 一方面,提供一种图像处理方法,所述方法包括:
[0006] 确定M路图像数据中的每路图像数据的显示层级和相对于画布的显示区域,其中,所述M路图像数据中有至少一路图像数据为视频流数据,M为大于或等于2的整数;
[0007] 根据每路图像数据的显示区域,分别确定每路图像数据对应的图层,共确定M个图层;
[0008] 在每个图层中绘制对应的一路图像数据,得到M份纹理数据;
[0009] 将所述M份纹理数据按照每路图像数据的显示层级渲染到所述画布上。
[0010] 一方面,提供一种图像处理装置,所述装置包括:
[0011] 第一确定模块,用于确定M路图像数据中的每路图像数据的显示层级和相对于画布的显示区域,其中,所述M路图像数据中有至少一路图像数据为视频流数据,M为大于或等于2的整数;
[0012] 第二确定模块,用于根据每路图像数据的显示区域,分别确定每路图像数据对应的图层,共确定M个图层;
[0013] 绘制模块,用于在每个图层中绘制对应的一路图像数据,得到M份纹理数据;
[0014] 渲染模块,用于将所述M份纹理数据按照每路图像数据的显示层级渲染到所述画布上。
[0015] 在一种可能的设计中,所述第二确定模块用于:
[0016] 确定每路图像数据的显示区域相对于所述画布的坐标范围;
[0017] 将每路图像数据的显示区域的坐标范围确定为该路图像数据对应的图层的坐标范围;
[0018] 根据每个图层的坐标范围,对应确定每个图层相对于所述画布的图层覆盖区域。
[0019] 在一种可能的设计中,所述绘制模块用于:
[0020] 若该图层为顶层图层,则在该图层的图层覆盖区域中绘制该路图像数据;
[0021] 若该图层不为顶层图层,则确定该图层与该图层的上层图层之间的重叠显示区域,并将该路图像数据中除去需要显示在所述重叠显示区域中的图像数据外的剩余图像数据在剩余图层覆盖区域中绘制,其中,该图层的上层图层为显示层级在该图层的显示层级之上的任一图层,所述剩余图层覆盖区域为该图层的图层覆盖区域中除去所述重叠显示区域的区域。
[0022] 在一种可能的设计中,所述绘制模块用于:
[0023] 从该路图像数据中删除需要显示在所述重叠显示区域中的图像数据,以得到所述剩余图像数据。
[0024] 在一种可能的设计中,所述绘制模块用于:
[0025] 在该图层中绘制对应的一路图像数据以得到初始纹理数据之后,对所述初始纹理数据进行图像特效处理;
[0026] 将进行图像特效处理得到的纹理数据确定为该图层的纹理数据。
[0027] 在一种可能的设计中,所述M个图层中的每个图层包括一个父图层和至少一个子图层,其中,父图层用于承载一路图像数据的所有数据,每个子图层用于承载该路图像数据中的不同显示对象分别对应的数据,每个子图层的显示层级均在父图层的显示层级之上;则,绘制模块用于:
[0028] 在该图层包括的父图层或子图层中绘制数据,以完成对该图层的图像数据的绘制。
[0029] 在一种可能的设计中,所述绘制模块用于:
[0030] 若该路图像数据为视频流数据,确定该视频流数据中相邻的下一帧图像与上一帧图像之间的重合数据占所述上一帧图像的比例;
[0031] 若所述比例小于比例阈值,则在该图层的父图层中绘制所述下一帧图像;
[0032] 若所述比例大于或等于所述比例阈值,则确定所述下一帧图像与所述上一帧图像之间未重合数据所对应的子图层,并在确定出的子图层中绘制所述未重合数据以绘制所述下一帧图像。
[0033] 在一种可能的设计中,所述绘制模块用于:
[0034] 在获得针对该图层的全局特效指令时,对该图层的父图层进行所述全局特效指令所指示的特效处理,以为该图层的所有子图层添加相同的图像特效;
[0035] 在获得针对该图层的局部特效指令时,从该图层的所有子图层中确定所述局部特效指令所指示的需特效处理的子图层以及对应的特效处理方式,并对每个需特效处理的子图层进行相应的特效处理。
[0036] 在一种可能的设计中,所述第一确定模块用于:
[0037] 根据使用的多图层特效模板,确定每路图像数据的显示层级和相对于所述画布的显示区域;或者,
[0038] 根据检测到的用户选择操作,确定每路图像数据的显示层级和相对于所述画布的显示区域。
[0039] 在一种可能的设计中,所述第一确定模块用于:
[0040] 检测针对一路图像数据的位置调整操作;
[0041] 根据所述位置调整操作,调整该路图像数据的显示层级和/或相对于所述画布的显示区域。
[0042] 在一种可能的设计中,所述装置还包括:
[0043] 合成模块,用于获得合成音效指令,并根据所述合成音效指令,将音频数据和经渲染处理得到的图像渲染数据进行合成处理,以得到音视频合成数据;
[0044] 输出模块,用于将得到的音视频合成数据输出或者发布至社交平台。
[0045] 一方面,提供一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述各方面中的图像处理方法包括的步骤。
[0046] 一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述各方面中的图像处理方法包括的步骤。
[0047] 本申请实施例中,对于多图层特效处理,可以将每一层图像抽象成一个图层,每个图层相互独立,并且每个图层是根据对应的一路图像数据相对于画布的显示区域确定的,例如图层所占区域与一路图像数据的显示区域相等,这样在每个图层中绘制图像数据的时候就可以无需再绘制整个画布大小的范围,而仅仅是绘制图层所占区域大小,由于一般来说各图像数据的显示区域是小于画布的整个区域的,所以这样的话可以较大程度上减少绘制量,可以省去一些无效的数据绘制工作,从而可以减少多图层场景的处理时间,提高多图层特效的处理效率,同时还可以降低设备功耗,提升设备性能。
[0048] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

[0049] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0050] 图1a为多图层特效的一种示意图;
[0051] 图1b为多图层特效的另一种示意图;
[0052] 图2为多图层特效的另一种示意图;
[0053] 图3为现有技术中对A、B两路图像数据进行图像绘制的示意图;
[0054] 图4为本申请实施例中对A、B两路图像数据进行图像绘制的示意图;
[0055] 图5a为本申请实施例中的应用场景的示意图;
[0056] 图5b为本申请实施例中的应用场景的另一示意图;
[0057] 图6为本申请实施例中的终端设备的结构示意图;
[0058] 图7为本申请实施例中的图像处理方法的流程图;
[0059] 图8为本申请实施例中的openGL坐标系的示意图;
[0060] 图9为本申请实施例中的图像处理装置的结构框图;
[0061] 图10为本申请实施例中的图像处理装置的另一结构框图;
[0062] 图11为本申请实施例中的终端设备的结构示意图;
[0063] 图12为本申请实施例中的终端设备的另一结构示意图。

具体实施方式

[0064] 为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0065] 本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
[0066] 另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。
[0067] 以下对本文中涉及的部分用语进行说明,以便于本领域技术人员理解。
[0068] 1、短视频,是一种互联网内容传播方式,一般是在互联网新媒体上传播的时长在5分钟以内(例如几秒到几分钟不等)的视频传播内容,是适合在移动状态和短时休闲状态下观看的、高频推送的视频内容。随着生活节奏加快,短视频目前成为了争夺用户碎片化时间的热点领域。
[0069] 2、图层,通俗地讲,图层就像是含有文字或图形等元素的胶片,一张张按顺序叠放在一起,组合起来形成页面的最终效果。图层和图层之间是相互独立的,对一个图层内的图像进行的相关操作一般不会影响其它的图层。多个图层可以叠加显示,位于下层的图层会被上层的图层遮挡住叠加的部分。
[0070] 3、显示层级,用于表示图层显示的层数,即,通过显示层级可以确定图层显示在第几层,一般是对于多图层而言的。当同时有多个图层时,各个图层均有自己的显示层级,每个图层的显示层级不同,例如可以将最上层的显示层级称作顶层,对应的,位于顶层的图层则可以称作顶层图层,以及可以将最底层的显示层级称作底层,以及对应的,位于底层的图层则可以称作底层图层。
[0071] 4、视频后处理,可以理解为对视频进行后期处理,这里所说的后期处理一般是指视频特效处理,视频特效处理例如包括裁剪、放大、缩小、美颜、滤镜、美型、贴纸、换装、多图层特效等处理方式。
[0072] 5、多图层特效,又可以称作多图层场景,是视频后处理中的一种视频特效处理方式,通过多图层特效,可以将多个视频合成为一个视频,并且各个视频可以独立播放。
[0073] 当前短视频的个性化拍摄受到广大用户喜爱,拍摄形式上也大胆创新,多图层场景也越发普遍。比如,用户希望模仿一个网络视频中的舞蹈,那么采用多图层场景,则可以一半播放该网络视频中的原始舞蹈,另一半拍摄自己的模仿舞蹈;或者,用户特别喜欢一个明星,可以采用多图层特效的方式制作一个视频,例如底层可以放置喜欢的明星的海报照片或者一段视频,而在上层拍摄自己的一段视频,等等。
[0074] 采用多图层特效合成的视频,各个视频可以具有多种相对显示方式。例如,可以互不重叠显示(例如并列显示),例如图1a所示的,视频A和视频B紧邻并列显示,视频A和视频B可以独立的播放,即在同一个画面中可以同时看到视频A和视频B并行播放;或者如图1b所示的,视频A和视频C可以叠加显示,图1b中是以视频C叠加显示在视频A的上层为例进行图示的,也就是说,在图1b中,视频C的显示层级在视频A的显示层级之上,所以直观的看上去,视频C的显示区域遮挡住了视频A的部分内容。
[0075] 本申请实施例中的多图层特效可以是指静态图像之间的多图层,或者也可以是指动态视频之间的多图层,或者也可以是动态视频和静态图像之间的多图层。继续以图1a为例,A和B实际上表示的一帧图像,而A和B表示的图像可以是一张独立的图像或者是一段视频流中的帧图像。例如,A表示的是一张苹果的静态图像,B表示的是用户唱歌的视频,或者,A表示的是有关苹果的一段展示视频,而B表示的是用户在解说与苹果相关的知识的介绍视频,等等。
[0076] 6、纹理(texture)数据,一般用在图像处理过程中的数据传递,可以这样理解,在图像处理过程中,设备能够识别和处理的图像数据均可以称作纹理数据,换言之,纹理数据是针对设备这个识别层级而言的,将纹理数据渲染到屏幕上的话,则可以呈现用户能够看到的图像。
[0077] 7、YUV,一种颜色编码方法,其中“Y”表示亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
[0078] 8、RGB,又可以称作RGB色彩模式,是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
[0079] 以下介绍本申请的设计思想。
[0080] 如前所述的,基于目前对视频的多图层特效的使用需求,需要一种处理方案来实现多图层特效的实现效果。例如需要将A、B两个视频通过多图层特效合成为一个视频,现有技术中也有相关技术方案来实现多个视频的多图层特效。
[0081] 在现有处理方案中,若需要为A、B两个视频添加多图层特效,如图2所示的,则可以先创建画布,然后确定A和B这两个视频的显示区域,即如图2中的分别框选A和B的两个相邻的矩形区域,然后依次在创建的整个画布上面绘制A、B两路视频,最后再将绘制的数据渲染到屏幕上。可见,在针对各个视频进行绘制的过程中,无论是对于哪个视频都是绘制的整个画布范围,如图3所示的,图3中的左图中的竖线条区域表明的是绘制视频A时的绘制范围,可见绘制视频A时绘制的是整个画布范围,图3中的右图中的斜条纹区域表明的是绘制视频B时的绘制范围,可见绘制视频B时也是绘制的整个画布范围。
[0082] 也就是说,在现有的多图层特效处理过程中,各路图像数据在绘制时都是绘制的整个画布区域,但是图像(或者视频)本身一般只占据画布的一部分,例如图2-图3中所示的,视频A和视频B均占画布不到一半的区域,但是在绘制的时候却都是全画布绘制,这样的话,会存在较多无效绘制,导致图像处理的数据量较大,所以多图层特效处理的效率也较低。
[0083] 鉴于此,本发明人提出了一种针对多图层图像渲染的图像处理方案,在该方案中,在获得需要进行多图层特效处理的多路图像数据(例如M路图像数据)时,可以确定每路图像数据的显示层级和相对于画布的显示区域,进而再根据每路图像数据的显示区域来相应确定每路图像数据对应的图层,然后再在确定的每个图层中绘制对应的一路图像数据,进而将绘制得到的M份纹理数据按照每路图像数据的显示层级渲染到画布中。
[0084] 也就是说,对于多图层特效处理,可以将每一层图像抽象成一个图层,每个图层相互独立,并且每个图层是根据对应的一路图像数据相对于画布的显示区域确定的,例如图层所占区域与一路图像数据的显示区域相等,这样在每个图层中绘制图像数据的时候就可以无需再绘制整个画布大小的范围,而仅仅是绘制图层所占区域大小,如图4所示的,继续图2-图3中的例子,则在绘制视频A时就只绘制视频A所对应的图层范围(即图4左图中的竖线条区域),在绘制视频B时就只绘制视频B所对应的图层的范围(即图4右图中的斜条纹区域),由于一般来说各图像数据的显示区域是小于画布的整个区域的,所以这样的话可以较大程度上减少绘制量,可以省去一些无效的数据绘制工作,从而可以减少多图层场景的处理时间,提高多图层特效的处理效率,同时还可以降低设备功耗,提升设备性能。
[0085] 并且,针对每路图像数据所抽象出的各个图层,可以对每个图层单独进行处理,例如可以在图层内针对当前图像进行其它的视频特效处理,比如在各个独立的图层中,还可以进行滤镜、美颜、贴纸等特效处理,进而提升各个图层中的图像处理的多样性和灵活性,提高短视频处理的乐趣。
[0086] 在介绍完本申请实施例的设计思想之后,下面对本申请实施例提供的技术方案适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本发明实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
[0087] 请参见图5a所示,图5a为本申请的技术方案适用的一种应用场景。在图5a中,包括多个终端设备(即终端设备101、终端设备102和终端设备103)和服务器201。各个终端设备均可以采用本申请实施例提供的图像处理方法来进行多图层特效的处理。以终端设备101为例,终端设备101具有图像处理功能,通过该图像处理功能可以采用本申请实施例中的图像处理方法来实现多图层特效的处理。在终端设备101中可以安装有图像处理应用,而服务器201可以是为图像处理应用提供后台服务的服务设备,例如,终端设备101在通过图像处理应用进行视频后处理(例如多图层特效处理)之后,可以将其处理后的视频发送给服务器201,以通过服务器201发布至网络或者相关的社交平台,以实现个人视频分享的目的。
[0088] 再参见图5b所示的应用场景,图5b为基于图5a所示的应用场景的细化,以下再结合图5b对本申请实施例的应用场景做进一步的介绍。
[0089] 在图5b所示的应用场景中,包括终端设备101和终端设备104,可见,在终端设备101中显示的是一种形式的多图层特效的视频,在终端设备104中显示的是另一种形式的多图层特效的视频,终端设备101和终端设备104均可以通过网络与服务器201连接,具体来说可以与服务器201的客户端的I/O接口202连接,通过客户端的I/O接口202,服务器201可以为终端设备101和终端设备104提供后台服务。服务器201还可以包括处理器203、存储器204和数据库205,存储器204和数据库205均可以用于存储数据,以及存储器204还可以用于存储一些指令,处理器203与存储器204和数据库205均连接,用于对存储器204和数据库205中存储的数据和指令进行处理。
[0090] 图5a和图5b中的各个终端设备可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或链接到无线调整解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS)等等。例如,终端设备101可以是手机、平板电脑、掌上电脑(Personal Digital Assistant,PDA),笔记本电脑等设备。以及,图5a和图5b中的服务器201可以是个人计算机、大中型计算机、计算机集群,等等。
[0091] 为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并行执行。
[0092] 以下对本申请实施例中的技术方案进行说明,本申请实施例中的图像处理方法可以由前述图5a和图5b中的任意终端设备执行,执行本申请实施例中的图像处理方法的终端可以包括数据输入模块、协议解析模块、逻辑控制模块和图层合成模块,以下结合图6对终端设备所包括的各个功能模块进行介绍。
[0093] ①、数据输入模块,对应图6中的“数据输入”,通过数据输入模块,终端设备可以获得多路图像数据,而这些图像数据可以如图6中所示的图片数据、纹理数据、播放器解码出来的数据(例如视频,动画素材比如gif等)、摄像头采集的图像数据(例如拍摄的照片或者视频对应的数据),等等。其中,图片可以是终端设备本地存储的图片,而本地存储的图片可以是从网络上下载的图片,或者是别的终端设备传输过来的图片,或者是通过终端设备中的图像处理软件进行图像处理后保存的处理后图片,等等;纹理数据是指终端设备中在进行图像处理过程中得到的中转的图像数据,例如通过一些图像处理软件进行处理过程中得到的中间图像数据,等等。
[0094] 在具体实施过程中,不同的数据源可能具有不同的格式,而终端设备根据图像格式的不同,可以将获得的数据进行解码以得到终端设备自身能够识别且能够进行处理的各种格式的数据,例如可以得到RGB数据或者YUV数据。
[0095] ②、协议解析模块,对应图6中的“协议解析”。本申请实施例中的协议解析模块通过对预先设定的协议进行解析,可以计算出每路图像数据的显示位置(即显示区域),在具体实施过程中,既可以通过后台下发控制协议,达到后台运营目的,也可以通过用户自己选择需要显示的位置和相应的特效来生成对应的控制协议,达到用户交互的目的。
[0096] ③、逻辑控制模块,对应图6中的“逻辑控制”,通过逻辑控制模块,终端设备可以根据每路图像数据的显示区域计算确定出对应的图层,即可以将每路图像数据抽象成一个图层,进而对各个图层进行独立的处理,例如进行美颜、美肤、滤镜、贴纸、裁剪、放大、缩小、换装等特效处理。也就是说,通过逻辑控制模块可以针对各路图像数据创建相应的图层,并对各个图层进行管理和控制,进而可以得到每个图层中的渲染的数据,即得到各个图层完成处理后的纹理数据。
[0097] ④、合成模块,对应图6中的“合成”,通过合成模块可以将所有图层按照显示层级的高低合成为一个视频,以完成视频的多图层特效,并且可以将各个图层的纹理数据按照显示层级的高低渲染到屏幕上,或者可以直接将得到的纹理数据输出给其它设备或者跳转至另外一个应用进行进一步的处理。
[0098] 在上述通过图6对本申请实施例中的终端设备进行相关介绍之后,为进一步的理解本申请实施例中的技术方案,以下结合图7所示的流程图对本申请实施例中的图像处理方法进行说明。图7所示的流程图描述如下。
[0099] 步骤701:获得M路图像数据。
[0100] 其中,M为大于或等于2的整数,即终端设备可以获得多路图像数据,结合图6理解,终端设备可以通过数据输入模块获得M路图像数据。例如可以获得2路图像数据或者3路图像数据,这样,可以对多路图像数据进行多图层特效的处理。在M路图像数据中,至少有一路图像数据为视频流数据,以2路图像数据为例,这2路图像数据可以均为视频流数据,或者其中一路为视频流数据,另一路为静态图像数据,这样,可以基于视频流数据进行视频的多图层特效处理,换言之,视频的多图层特效,可以是指视频和视频之间的多图层特效,或者可以是指视频与图像之间的多图层特效。
[0101] 本申请实施例中,以不同的“路”来表示不同的图像数据源,即,不同路的图像数据可以是来自不同数据源的,例如图6中所示的,一路图像数据可以来自于图片,即为静态的图像数据,或者可以是应用在图像处理过程中所产生的纹理数据,或者是播放器解码得到的数据,或者是摄像头动态拍摄得到的图像数据或视频流数据,等等。
[0102] 步骤702:创建画布。
[0103] 在进行多图层特效处理之前,如图2所描述的,需要先创建画布。在具体实施过程中,步骤701和步骤702的执行顺序可以是任意的,例如先执行步骤701再执行步骤702,或者先执行步骤702再执行步骤701,或者步骤701和步骤702同时执行,本申请实施例不做限制。
[0104] 步骤703:确定M路图像数据中的每路图像数据的显示层级。
[0105] 通过显示层级,可以确定每路图像数据在最终的多图层特效中对应图层所在的层数,例如是顶层、第二层、第三层或者底层,等等。
[0106] 步骤704:确定M路图像数据中的每路图像数据相对于画布的显示区域。
[0107] 同时,还可以确定每路图像数据相对于画布的显示区域,即确定每路图像数据在画布中的显示位置,例如一路图像数据是显示在画布的左半区域,另一路图像数据是显示在画布的右半区域。
[0108] 在具体实施过程中,结合图6理解,终端设备可以通过协议解析模块来确定每路图像数据的显示层级以及相对于画布的显示区域,并且如前所述的,终端设备可以通过控制协议来确定各路图像数据的显示层级和显示区域。而控制协议可以是又后台预先定义好的,例如后台预先定义了多种多图层特效模板,而每种多图层特效模板均预先设置好了各路图像数据的显示层级与显示区域,所以可以根据当前使用的多图层特效模板来对应确定当前的每路图像数据的显示层级和相对于画布的显示区域,实现后台的自主运营。在另一种实施方式中,控制协议可以是根据用户临时的选择操作对应生成的,换言之,用户可以通过选择操作自己来进行配置,进而,终端设备可以根据检测到的用户选择操作,来确定各路图像数据的显示层级和相对于画布的显示区域,以实现与用户的即时交互,提高各路图像数据展示的灵活性。
[0109] 在具体实施过程中,在各路图像数据的显示层级和相对于画布的显示区域确定之后,用户还可以根据自己的实际使用需求临时动态的对这两种参数进行调整,具体来说,在根据控制协议确定了各路图像数据的显示层级以及相对于画布的显示区域之后,用户可以进行位置调整操作,通过该位置调整操作可以表明用户希望调整显示层级和/或显示区域的哪些路图像数据,进而,终端设备可以根据检测到针对某路(或某几路)的图像数据的位置调整操作,进而根据该位置调整操作,调整该路图像数据的显示层级和/或相对于画布的显示区域,从而实现与用户的动态交互,满足用户的实际使用需求。
[0110] 步骤705:根据每路图像数据相对于画布的显示区域,分别确定每路图像数据对应的图层,以得到M个图层。
[0111] 本申请实施例中,每路图像数据对应的图层的显示区域可以是小于或者等于画布的大小的,具体可以根据每路图像数据相对于画布的显示区域确定。例如,当一路图像数据的显示区域小于画布大小时,那么对应图层的图层覆盖区域也可以小于画布,例如图层覆盖区域的覆盖面积等于或略大于该路图像数据相对于画布的显示区域所覆盖的范围。这样,在将每路图像数据抽象成一个图层表示后,每路图像数据对应的图层的大小是根据该路图像数据相对于画布的显示区域来动态计算得到的,进而在图像绘制时可以仅在对应的图层范围内进行,而无需每路图像数据都整个画布全绘制,从而可以降低绘制工作量。
[0112] 例如,为了尽量的减少重复绘制和无效绘制,可以将图像数据对应的图层的图层覆盖范围设置为与该图像数据相对于画布的显示区域一样大,具体来说,可以确定该路图像数据的显示区域相对于画布的坐标范围,将该路图像数据的显示区域的坐标范围确定为该路图像数据对应的图层的坐标范围,然后再根据该图层的坐标范围,对应确定该图层相对于画布的图层的图层覆盖范围,即,此时图层的图层覆盖范围与对应的图像数据相对于画布的显示区域是完全重叠的,这样可以最大程度上减少无效绘制。
[0113] 步骤706:在得到的每个图层中绘制对应的一路图像数据,得到M份纹理数据。
[0114] 针对每路图像数据,确定对应的图层之后,则可以将每路图像数据在对应的图层中进行绘制,由于一般来说,图层的图层覆盖范围是要小于整个画布大小的,所以通过本申请实施例中的绘制方式,在绘制每路图像数据可以无需均全画布绘制,例如图4所示的,这样可以减少较多的无效绘制的工作量,进而可以提高多图层特效的处理效率,同时还可以提高设备性能。
[0115] 对于终端设备而言,在图像处理的过程中的图像数据均可以称作纹理数据,所以在将每路图像数据在对应的图层中进行绘制之后,则可以得到每个图层对应的绘制数据,其中的绘制数据则可以称作纹理数据,所以,针对M路图像数据对应的M个图层,则可以得到M份纹理数据,换言之,M份纹理数据为M路图像数据在对应图层中进行绘制后分别得到的绘制数据。
[0116] 在实际中,多个图层之间可能会存在重叠,例如图1b中的图像A和图像C之间存在重叠,重叠的部分是图像C的整个区域,那么在图像A对应的图层中绘制图像A对应的图像数据,以及在图像C对应的图层中绘制图像C对应的图像数据时,会存在重复绘制,即针对图像C的图层覆盖区域会绘制两次,但是在实际中,由于图像A中被图像C所遮挡的部分对于用户来说其实是无法看见的,所以在绘制图像A时自然也就可以无需绘制被图像C遮挡的这部分,因为即使绘制并渲染了用户也是无法看到的,所以其绘制相当于是无效绘制。鉴于此,针对多图层中的重叠部分,为了减少重复绘制,本申请实施例中在绘制过程中采用以下优化策略来进行有效绘制,进而节约系统资源,提升设备性能。
[0117] 在绘制一个图层时,首先判断该图层是否是顶层图层,若是顶层图层,则是显示在最顶层的,自然也不可能有其它图层对其造成遮挡,所以对于顶层图层,则在顶层图层的全部图层覆盖区域中绘制对应的一路图像数据。
[0118] 若不是顶层图层,即是顶层图层下面的任一个图层,例如为第二图层或者底层图层,此时,则可以确定非顶层图层与该非顶层图层的上层图层之间的重叠显示区域,并将对应的一路图像数据中除去需要显示在该重叠显示区域中的图像数据外的剩余图像数据在剩余图层覆盖区域中绘制,其中,该非顶层图层的上层图层为显示层级在该图层的显示层级之上的任一图层,而剩余图层覆盖区域为该非顶层图层的图层覆盖区域中除去前述的重叠显示区域的区域,可以从该路图像数据中删除原本需要显示在重叠显示区域中的图像数据以得到前述的剩余图像数据。也就是说,对于非顶层图层,则对被其上层图层遮挡的区域就不进行绘制,而只绘制未被上层图层遮挡的区域,这样可以尽量减少无效绘制。
[0119] 此外,如前所述的,在对每个图层进行对应一路图像数据的绘制过程中,由于各个图层是相互独立的,通过终端设备中的逻辑控制模块还可以对各个图层进行单一化的图像处理,例如可以为顶层图层添加滤镜的视频特效,以及可以为底层图层添加贴纸的视频特效,当然也可以针对各个图层进行统一的视频特效处理,这样,各个图层之间的图像处理方式各不干扰,可以相互独立,从而可以提高各个图层的图像处理的灵活性和多样性,增强视频处理乐趣。所以,在具体实施过程中,在对某个图层进行图像数据的绘制过程中,在得到该图层中绘制的图像数据的初始纹理数据之后,则可以针对得到的初始纹理数据再进行图像特效处理,进而将进行图像特效处理得到的纹理数据确定为该图层最终的纹理数据,此时,该图层的纹理数据包括对应的一路图像数据本身以及添加的视频特效相关的特效数据。
[0120] 为了提高各个图层绘制的灵活性,以进一步地减少无效绘制量,本申请实施例针对各个图层提出了父图层和子图层的绘制策略。具体来说,可以为每个图层设置一个父图层、以及一个或多个子图层,其中,父图层用于承载一路图像数据的所有数据,每个子图层用于承载该路图像数据中的不同显示对象分别对应的数据,每个子图层的显示层级均在父图层的显示层级之上。例如,对于一张包括在森林中行走的老虎和大象的图片,那么则可以将父图层配置为整张图片大小,用于承载该图片中包括森林背景、老虎和大象的所有数据,以及可以配置两个子图层,一个子图层用于承载老虎对应的图像数据,另一个子图层用于承载大象对应的图像数据,可见,此时的每个子图层的大小均小于父图层的大小,并且,为了对子图层所承载的显示对象进行前景显示,可以令各个子图层的显示层级高于父图层(作为背景层)的显示层级,另外,各个子图层之间的显示层级的高低可以根据实际中的各个显示对象的显示层级决定。
[0121] 基于上述对每个图层进行父图层和子图层的图层配置方式,在对每个图层进行图像数据的绘制时,则可以基于配置的父图层和子图层进行图像数据的绘制,以通过对父图层和子图层的绘制来实现对对应图层的图像绘制。为了便于理解,以下列举两种场景进行说明。
[0122] 第一种场景
[0123] 若某个图层对应的一路图像数据为视频流数据,则可以确定该视频流数据中相邻的下一帧图像与上一帧图像之间的重合数据占该上一帧图像的比例,以根据得到的比例来进行相应的绘制。
[0124] 若该比例小于比例阈值,则说明下一帧图像中的大部分数据与上一帧图像中的数据不同,所以下一帧图像中的大部分数据均需要重新绘制,此时为了提高绘制效率,则可以直接在该图层的父图层中绘制所述下一帧图像。
[0125] 若该比例大于或等于比例阈值,则说明下一帧图像中的大部分数据与上一帧图像中的数据是相同的,此时为了减少重复绘制,则可以确定下一帧图像与上一帧图像之间未重合数据所对应的子图层,进而在确定出的子图层中绘制未重合数据,以实现对下一帧图像的绘制,这样通过对局部的子图层进行绘制,相对于全图层的绘制方式,可以减少绘制量,提高绘制效率。
[0126] 第二种场景
[0127] 在为各个图层添加视频特效时,可以采用全局或者局部的方式添加视频特效,采用全局的方式可以确保较高的视频特效处理效率,采用局部的方式可以实现各个显示对象的视频特效处理的灵活性。具体来说:
[0128] 在获得针对一个图层的全局特效指令时,表明需要对各图层中的各个显示对象均添加相同的视频特效,此时则可以对该图层的父图层进行所述全局特效指令所指示的特效处理,以为该图层的所有子图层添加相同的图像特效,即可以为所有的子图层承载的所有显示对象批量统一添加相同的视频特效,确保视频特效的处理效率。
[0129] 在获得针对一个图层的局部特效指令时,从该图层的所有子图层中确定所述局部特效指令所指示的需特效处理的子图层以及对应的特效处理方式,并对每个需特效处理的子图层进行相应的特效处理,也就是说,对于局部特效指令,可以为各个子图层对应的显示对象添加差异化的视频特效,提高灵活性。
[0130] 步骤707:将M份纹理数据按照每路图像数据的显示层级渲染到画布上。
[0131] 在通过前述的方式得到针对M个图层的M份纹理数据之后,结合图6理解,通过其中的合成模块可以按照每路图像数据的显示层级将M份纹理数据依次渲染到画布上,以呈现多图层特效的视频合成效果。
[0132] 在渲染的过程中,具体显示在屏幕的哪个位置呢,每个图层可以根据运营或者用户指定需要渲染的位置,所以每个图层都有一个位置信息。以通过因OpenGL这种渲染工具为例,合成模块首先将每个图层的位置坐标统一成OpenGL的坐标系,再计算出对应的位置,然后根据显示位置,计算出图层之间的重叠部分,显示层次,最后根据需求,渲染到屏幕上。
[0133] 以下结合图8对通过OpenGL对各个图层的绘制数据进行渲染进行说明。
[0134] 每个图层都会带有各自需要渲染的位置信息,取出位置信息,计算出需要渲染的坐标,然后更新当前渲染纹理渲染的openGL的顶点坐标信息,参见图8所示,由于OpenGL坐标系是归一化的,坐标范围是(-1,-1)到(1,1)。比如某张图像当前给的位置是(x,y),图像显示的宽是w,高是h,整个屏幕宽为width,高为height。
[0135] 归一化转换坐标按照以下方式处理:
[0136] x’=x/width;;w’=w/width;
[0137] y’=y/height;h’=h/height;
[0138] 所以,前述图像归一化后的坐标为(x’,y’)、(x’,y’+h’)、(x’+w’,y’)、(x’+w’,y’+h’)。
[0139] 然后通过M=2*x-1.0得到图像最终的4个顶点坐标:(2*x’-1,2*y’-1)、(2*x’–1,2*(y’+h’)-1)、(2*(x’+w’)-1,2*y’-1)、(2*(x’+w’)-1,2*(y’+h’)-1)。
[0140] 在得到图像最终的4个顶点坐标之后,再以这4个顶点坐标确定渲染范围,然后再在确定的渲染范围将绘制得到的各个图层的纹理数据渲染在画布中。
[0141] 步骤708:输出经渲染得到的图像数据。
[0142] 步骤709:将经渲染得到的图像数据发送至社交平台。
[0143] 在具体实施过程中,在渲染得到采用多图层特效处理的整体图像数据(即包括各个图层的图像数据和多图层特效处理的特效数据)之后,可以将其输出给其它电子设备,进而可以通过其它电子设备再显示在屏幕上,或者可以将其发送至社交平台,以通过社交平台将经过多图层特效处理的合成视频发布至社交网络,以实现对个人视频的网络分享。
[0144] 另外,在对M路图像数据进行多图层特效处理的过程中,还可以合成音效,例如在获得绘制数据或者渲染数据之后,可以再获得合成音效指令,进而根据该合成音效指令确定需要合成的音频,然后在将确定的音频数据和处理后的图像数据进行合成处理,以得到音视频合成数据,当将音视频合成数据输出之后,用户则可以同时看到图像画面并且可以听到对应合成的音频,增强用户的使用体验。
[0145] 基于同一发明构思,本申请实施例提供一种图像处理装置。该图像处理装置可以是硬件结构、软件模块、或硬件结构加软件模块。该图像处理装置可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图9所示,本申请实施例中的图像处理装置包括第一确定模块901、第二确定模块902、绘制模块903和渲染模块904,其中:
[0146] 第一确定模块901,用于确定M路图像数据中的每路图像数据的显示层级和相对于画布的显示区域,其中,M路图像数据中有至少一路图像数据为视频流数据,M为大于或等于2的整数;
[0147] 第二确定模块902,用于根据每路图像数据的显示区域,分别确定每路图像数据对应的图层,共确定M个图层;
[0148] 绘制模块903,用于在每个图层中绘制对应的一路图像数据,得到M份纹理数据;
[0149] 渲染模块904,用于将M份纹理数据按照每路图像数据的显示层级渲染到画布上。
[0150] 在一种可能的实施方式中,第二确定模块902用于:确定每路图像数据的显示区域相对于画布的坐标范围;将每路图像数据的显示区域的坐标范围确定为该路图像数据对应的图层的坐标范围;以及根据每个图层的坐标范围,对应确定每个图层相对于画布的图层覆盖区域。
[0151] 在一种可能的实施方式中,绘制模块903用于:若该图层为顶层图层,则在该图层的图层覆盖区域中绘制该路图像数据;或者,若该图层不为顶层图层,则确定该图层与该图层的上层图层之间的重叠显示区域,并将该路图像数据中除去需要显示在重叠显示区域中的图像数据外的剩余图像数据在剩余图层覆盖区域中绘制,其中,该图层的上层图层为显示层级在该图层的显示层级之上的任一图层,剩余图层覆盖区域为该图层的图层覆盖区域中除去重叠显示区域的区域。
[0152] 在一种可能的实施方式中,绘制模块903用于:从该路图像数据中删除需要显示在重叠显示区域中的图像数据,以得到剩余图像数据。
[0153] 在一种可能的实施方式中,绘制模块903用于:在该图层中绘制对应的一路图像数据以得到初始纹理数据之后,对初始纹理数据进行图像特效处理;以及将进行图像特效处理得到的纹理数据确定为该图层的纹理数据。
[0154] 在一种可能的实施方式中,M个图层中的每个图层包括一个父图层和至少一个子图层,其中,父图层用于承载一路图像数据的所有数据,每个子图层用于承载该路图像数据中的不同显示对象分别对应的数据,每个子图层的显示层级均在父图层的显示层级之上;则,绘制模块903用于:在该图层包括的父图层或子图层中绘制数据,以完成对该图层的图像数据的绘制。
[0155] 在一种可能的实施方式中,绘制模块903用于:若该路图像数据为视频流数据,确定该视频流数据中相邻的下一帧图像与上一帧图像之间的重合数据占上一帧图像的比例;若比例小于比例阈值,则在该图层的父图层中绘制下一帧图像;或者,若比例大于或等于比例阈值,则确定下一帧图像与上一帧图像之间未重合数据所对应的子图层,并在确定出的子图层中绘制未重合数据以绘制下一帧图像。
[0156] 在一种可能的实施方式中,绘制模块903用于:在获得针对该图层的全局特效指令时,对该图层的父图层进行全局特效指令所指示的特效处理,以为该图层的所有子图层添加相同的图像特效;以及在获得针对该图层的局部特效指令时,从该图层的所有子图层中确定局部特效指令所指示的需特效处理的子图层以及对应的特效处理方式,并对每个需特效处理的子图层进行相应的特效处理。
[0157] 在一种可能的实施方式中,第一确定模块901用于:根据使用的多图层特效模板,确定每路图像数据的显示层级和相对于画布的显示区域;或者,根据检测到的用户选择操作,确定每路图像数据的显示层级和相对于画布的显示区域。
[0158] 在一种可能的实施方式中,第一确定模块901用于:检测针对一路图像数据的位置调整操作;以及根据位置调整操作,调整该路图像数据的显示层级和/或相对于画布的显示区域。
[0159] 在一种可能的实施方式中,请参见图10所示,本申请实施例中的图像处理装置还包括合成模块1001和输出模块1002,其中:
[0160] 合成模块1001,用于获得合成音效指令,并根据合成音效指令,将音频数据和经渲染处理得到的图像渲染数据进行合成处理,以得到音视频合成数据;
[0161] 输出模块1002,用于将得到的音视频合成数据输出或者发布至社交平台。
[0162] 前述的图像处理方法的实施例涉及的各步骤的所有相关内容均可援引到本申请施例中的图像处理装置所对应的功能模块的功能描述,在此不再赘述。
[0163] 本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0164] 基于同一发明构思,本发明实施例还提供一种终端设备,该终端设备例如是智能手机、平板电脑、PDA,笔记本电脑、车载设备、智能穿戴式设备等设备,该终端设备例如可以是如图1a-图1b中的任意一个终端设备。该终端设备可以是硬件结构、软件模块、或硬件结构加软件模块。该终端设备可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图11,本发明实施例中的终端设备包括至少一个处理器1101,以及与至少一个处理器连接的存储器1102,本发明实施例中不限定处理器1101与存储器1102之间的具体连接介质,例如处理器1101和存储器1102之间可以通过总线连接,该总线可以分为地址总线、数据总线、控制总线等。
[0165] 在本发明实施例中,存储器1102存储有可被至少一个处理器1101执行的指令,至少一个处理器1101通过执行存储器1102存储的指令,可以执行前述的视频处理方法中所包括的步骤。
[0166] 处理器1101可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0167] 存储器1102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器1102还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0168] 其中,处理器1101是终端设备的控制中心,可以利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器1102内的指令以及调用存储在存储器1102内的数据,终端设备的各种功能和处理数据,从而对终端设备进行整体监控。可选的,处理器1101可包括一个或多个处理单元,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。在一些实施例中,处理器1101和存储器1102可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0169] 通信接口1103是能够用于进行通信的传输接口,可以通过通信接口1103接收数据或者发送数据,例如可以通过通信接口1103接收其它终端设备发送的图像或者视频,以及,还可以通过该通信接口1103获得后台服务器发送的相关服务数据,等等。
[0170] 继续参见图12所示,本发明实施例中的终端设备还可以包括输入单元1103、显示单元1104、射频单元1105、音频电路1106、扬声器1107、麦克风1108、无线保真(Wireless Fidelity,WiFi)模块1109、蓝牙模块1110、电源1111、外部接口1112、耳机插孔1113等部件。本领域技术人员可以理解的是,图12仅仅是终端设备的举例,并不构成对终端设备的限定,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
[0171] 输入单元1103可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。例如,输入单元1103可包括触摸屏11301以及其它输入设备11032。触摸屏11301可收集用户在其上或附近的触摸操作(比如用户使用手指、关节、触笔等任何适合的物体在触摸屏11301上或在触摸屏11301附近的操作),即触摸屏11301可用于检测触摸压力以及触摸输入位置和触摸输入面积,并根据预先设定的程序驱动相应的连接装置。触摸屏11301可以检测用户对触摸屏11301的触控操作,将触控操作转换为触控信号发送给处理器1101,或者理解为可将触控操作的触控信息发送给处理器1101,并能接收处理器1101发来的命令并加以执行。触控信息至少可以包括压力大小信息和压力持续时长信息中的至少一种。触摸屏11301可以提供终端设备和用户之间的输入界面和输出界面。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触摸屏11301。除了触摸屏11301,输入单元1103还可以包括其它输入设备11032。比如,其它输入设备11032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0172] 显示单元1104可用于显示由用户输入的信息或提供给用户的信息以及终端设备的各种菜单。进一步的,触摸屏11301可覆盖显示单元1104,当触摸屏11301检测到在其上或附近的触控操作后,传送给处理器1101以确定的触控操作的压力信息。在本发明实施例中,触摸屏11301与显示单元1104可以集成为一个部件而实现终端设备的输入、输出、显示功能。为便于描述,本发明实施例以触摸屏11301代表触摸屏11301和显示单元1104的功能集合为例进行示意性说明,当然在某些实施例中,触摸屏11301与显示单元1104也可以作为两个独立的部件。
[0173] 当显示单元1104和触摸板以层的形式彼此叠加以形成触摸屏11301时,显示单元1104可以用作输入装置和输出装置,在作为输出装置时,可以用于显示图像,例如实现对各种视频的播放。显示单元1104可以包括液晶显示器(Liquid Crystal Display,LCD)、薄膜晶体管液晶显示器(Thin Film Transistor Liquid Crystal Display,TFT-LCD)、有机发光二极管(Organic Light Emitting Diode,OLED)显示器、有源矩阵有机发光二极体
(Active Matrix Organic Light Emitting Diode,AMOLED)显示器、平面转换(In-Plane Switching,IPS)显示器、柔性显示器、3D显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,根据特定想要的实施方式,终端设备可以包括两个或更多显示单元(或其它显示装置),例如,终端设备可以包括外部显示单元(图11未示出)和内部显示单元(图11未示出)。
[0174] 射频单元1105可用于收发信息或通话过程中信号的接收和发送。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,射频单元1105还可以通过无线通信与网络设备和其它设备通信。
[0175] 音频电路1106、扬声器1107、麦克风1108可提供用户与终端设备之间的音频接口。音频电路1106可将接收到的音频数据转换后的电信号,传输到扬声器1107,由扬声器1107转换为声音信号输出。另一方面,麦克风1108将收集的声音信号转换为电信号,由音频电路
1106接收后转换为音频数据,再将音频数据输出处理器1101处理后,经射频单元1105以发送给比如另一电子设备,或者将音频数据输出至存储器1102以便进一步处理,音频电路也可以包括耳机插孔11302,用于提供音频电路和耳机之间的连接接口。
[0176] WiFi属于短距离无线传输技术,终端设备通过WiFi模块1109可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块1109,但是可以理解的是,其并不属于终端设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0177] 蓝牙是一种短距离无线通讯技术。利用蓝牙技术,能够有效地简化掌上电脑、笔记本电脑和手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网(Internet)之间的通信,终端设备通过蓝牙模块1110使终端设备与因特网之间的数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙技术是能够实现语音和数据无线传输的开放性方案。虽然图11示出了蓝牙模块1110,但是可以理解的是,其并不属于终端设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0178] 终端设备还可以包括电源1111(比如电池),其用于接收外部电力或为终端设备内的各个部件供电。优选的,电源1111可以通过电源管理系统与处理器1101逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0179] 终端设备还可以包括外部接口1111,该外部接口1111可以包括标准的Micro USB接口,也可以包括多针连接器,可以用于连接终端设备与其它设备进行通信,也可以用于连接充电器为终端设备充电。
[0180] 尽管未示出,本发明实施例中的终端设备还可以包括摄像头、闪光灯等其它可能的功能模块,在此不再赘述。
[0181] 基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行如前述的图像处理方法的步骤。
[0182] 基于同一发明构思,本申请实施例还提供一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现如前述的图像处理方法的步骤。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
[0183] 在一些可能的实施方式中,本申请实施例提供的图像处理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机上运行时,所述程序代码用于使所述计算机执行前文述描述的根据本发明各种示例性实施方式的图像处理方法中的步骤。
[0184] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0185] 本发明是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0186] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0187] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0188] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。