具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的图片合成视频的处理方法的流程示意图,该方法包括:
S11:确定要合成的视频具有的效果,并获取进行合成的每张图片对应的场景单元,其中,所述场景单元是对所述图片在所述效果下的场景进行分割后得到的。
其中,效果是指视频呈现给用户视觉感受,在将图片合成视频时,即使采用相同的多张图片,如果用户选择不同的效果,则可以得到不同的视频。
可以通过设置进行合成的图片的场景,从而实现合成后的视频具有需要的效果。
图片的场景例如包括:图片的动画方式、图片的音乐短片(Music Video,MV)效果、图片的滤镜效果等。
一些实施例中,可以向用户显示可供选择的模板,每个模板对应一种预设效果,根据用户选择的模板确定要合成的视频具有的效果。例如,在合成视频之前,预先生成模板,为每个模板设置相应的效果信息,从而将模板与效果对应,以便用户在选择模板后可以确定相应的效果。或者,
一些实施例中,可以根据用户设置的效果信息确定要合成的视频具有的效果。例如,在合成视频时,用户可以设置效果信息,从而确定相应的效果。
不论是预先设置模板的方式或者由用户设置效果信息的方式,设置的效果信息都可以包括:每张图片的场景信息,例如,对应每张图片的动画方式信息、MV效果信息、滤镜信息中的一项或多项等。
视频具有的效果是由于进行合成的图片的场景进行合成后得到的,当一个效果确定后,进行合成的每张图片的场景也就确定了,相应的,由场景分割得到的场景单元也就确定了。因此,在确定出效果后,可以获取每张图片对应的场景单元。
例如,在预先配置模板的情况下,在为模板配置效果时,可以对应每种效果,对每张图片的场景进行分割,得到场景单元,将模板与每张图片的场景单元关联,从而根据用户选择的模板可以获取每张图片对应的场景单元。或者,在合成视频时才确定效果的情况下,可以在确定出效果后实时对每张图片的场景进行分割,得到场景单元。
一些实施例中,场景单元包括如下项中的至少一项:
动画单元、MV效果单元、滤镜效果单元。
进一步的,动画单元可以包括如下项中的至少一项:
平移动画单元、旋转动画单元、缩放动画单元。
在将场景分割为场景单元时,可以将一段连续时间内,图片行为保持一致的一段场景作为一个场景单元,具体的,可以将用于标识图片行为的参数保持不变的一段场景作为一个场景单元。
例如,平移动画单元对应的用于标识图片行为的参数是平移加速度,则如果一个时间段内,图片的平移加速度不变(为一个恒定的非零值或为零),则该段场景可以作为一个平移动画单元。
S12:确定要进行合成的图片中当前处理的图片,并获取所述当前处理的图片对应的场景单元,以及,确定时间段包含当前时间的场景单元,并根据所述时间段包含当前时间的场景单元的参数,对当前处理的图片进行处理,得到处理后的图片。
例如,该应用程序可以向用户显示图片选择按钮,用户点击该按钮后可以在已有的图片库中选择图片或者拍摄图片作为要进行合成的图片。
由于获取的模板对应的场景单元中包括所有图片对应的场景单元,而后续处理时需要对应每张图片进行处理,因此,在获取要进行合成的图片后,可以根据时间依次选择图片,作为当前处理的图片,并从与模板对应的场景单元中获取当前处理的图片对应的场景单元。
需要说明的是,对于某个时刻,可能需要对图片中的一张或多张进行处理,因此,当前处理的图片可以包括一张图片或者同时处理的多张图片。
对应一张图片,其场景单元是对该图片的场景进行分割后得到的,每个场景单元具有时间信息,对应某个时刻,需要选择相应的场景单元进行处理。
例如,当前处理的图片是图片A,该图片A对应的场景单元包括:第一场景单元、第二场景单元、第三场景单元…,且时间段分别是:第一时间段、第二时间段、第三时间段…。其中,各场景单元的类型可以相同或不同,例如,可以仅对应动画单元或可以对应动画单元和MV效果单元等。不同类型的场景单元包括的时间段可以相同或不同,例如,动画单元包括的时间段可以与MV效果单元包括的时间段相同或不同,而相同类型的不同场景单元包括的时间段是不同的,例如,两个不同的平移动画单元的时间段是不同的。
为了简化说明,假设图片A对应的场景单元包括:多个平移动画单元,每个平移动画单元具有不同的时间段,例如,第一平移动画单元包括的时间段是t0-t1,第二平移动画单元包括的时间段是t2-t3等。假设当前时间用tx表示,如果tx位于t0和t1之间,则由于第一平移动画单元的时间段包含当前时间,则获取第一平移动画单元的参数,根据第一平移动画单元的参数对图片A进行处理。
每个场景单元具有的一种信息是时间段,通过时间段可以如上确定相应的场景单元。另外,场景单元还包括相应类型的参数,例如,对于平移动画单元,还包括平移参数,对于旋转动画单元还包括旋转参数等。每个场景单元的参数可以在对场景进行分割时根据类型获取需要的参数。
在根据场景单元的参数对图片进行处理之前,可以先启动预设的用于渲染的线程,使用该线程对图片进行处理。
根据获取的时间段包含当前时间的场景单元的类型的不同,可以采用不同的方式对图片进行处理,例如包括如下项中的至少一项:
当所述时间段包含当前时间的场景单元包括动画单元时,根据动画单元的参数计算当前处理的图片在当前时间的动画计算结果,以及,根据动画计算结果更新当前处理的图片的场景层模型矩阵,以便对更新场景层模型矩阵的图片进行渲染;
当所述时间段包含当前时间的场景单元包括MV效果单元时,根据MV效果单元的参数进行渲染,以便在当前处理的图片中加入渲染后的MV效果;
当所述时间段包含当前时间的场景单元包括滤镜效果单元时,根据滤镜效果单元的参数对当前处理的图片进行滤镜处理,以便对滤镜处理后的图片进行渲染。
S13:对不同时间的处理后的图片进行组合,得到视频。
类似上述对图片A的处理,可以对进行合成的其他图片进行相应处理,之后组合各处理后的图片得到视频。
例如,进行合成的图片包括图片A和图片B,在当前时间是T1时,可以组合第一处理后的图片A和第一处理后的图片B,比如,处理后的图片可以表明位置信息,MV效果和滤镜效果等,则可以在相应的位置展示对应的具有MV效果和滤镜效果的图片,从而得到T1时刻的效果,类似的,在当前时间是T2时,再次组合第二处理后的图片A和第二处理后的图片B,得到T2时刻的效果,重复不同时刻的流程,可以得到从开始时刻到结束时刻的视频。
本实施例中,通过获取每张图片对应的场景单元,并选择相应的场景单元的参数对图片进行处理,以及组合处理后的图片,实现基于场景单元的处理,由于是以场景单元作为处理单位,可以灵活组合,满足不同效果需求,并且场景单元还可以在不同效果下使用,不需要每个效果重新开发,避免重复开发,从而可以降低开发成本,以及提高呈现效果。
图2是本发明另一实施例提出的图片合成视频的处理方法的流程示意图,该方法包括:
S201:根据要合成的视频的预设效果确定进行合成的每张图片的场景,以及对每张图片的场景进行分割,得到至少一个场景单元。
其中,效果是指视频呈现给用户视觉感受,在将图片合成视频时,即使采用相同的多张图片,如果用户选择不同的效果,则可以得到不同的视频。
可以通过设置进行合成的图片的场景,从而实现合成后的视频具有需要的效果。
图片的场景例如包括:图片的动画方式、图片的音乐短片(Music Video,MV)效果、图片的滤镜效果等。
当指定一种效果后,相应的每张图片的场景是确定的,例如,在第一效果下,第一图片在第一时间位于第一位置,并具有黑白的滤镜效果,同时,第二图片在第一时间位于第二位置,以及,同时播放第一音乐等。
在确定出一张图片的场景后,可以对场景进行分割得到场景单元。
在将场景分割为场景单元时,可以将一段连续时间内,图片行为保持一致的一段场景作为一个场景单元,具体的,可以将用于标识图片行为的参数保持不变的一段场景作为一个场景单元。
例如,平移动画单元对应的用于标识图片行为的参数是平移加速度,则如果一个时间段内,图片的平移加速度不变(为一个恒定的非零值或为零),则该段场景可以作为一个平移动画单元。
S202:将每个预设效果作为一个模板,并建立模板与场景单元的对应关系。
例如,对应第一预设效果确定的场景包括:第一图片的第一场景,第二图片的第二场景,对第一场景进行分割后得到第一场景单元组,对第二场景进行分割后得到第二场景单元组,则将第一预设效果作为第一模板,建立的对应关系包括:第一模板对应:第一图片的第一场景单元组和第二图片的第二场景单元组,场景单元组由场景单元组成。
可以理解的是,S201-S202可以离线在视频合成之前预先完成,而在线进行视频合成时,可以在确定出模板后,获取预先保存的对应的场景单元。
S203:确定需要将图片合成视频。
例如,用户打开用于将图片合成视频的应用程序后,在该应用程序的页面上包括用于触发图片合成视频的按钮,当检测到用户对该按钮的点击指令后,可以确定需要将图片合成视频。
S204:在确定需要将图片合成视频后,向用户提供可供选择的模板,并根据用户选择的模板以及预先建立的模板与场景单元之间的对应关系,获取用户选择的模板对应的场景单元。
由于之前建立了模板与场景单元之间的对应关系,因此在用户选择模板后可以确定对应的场景单元。其中,每个模板对应的场景单元包括:合成视频的每张图片分别对应的场景单元。
本实施例中,以根据用户选择的模板确定场景单元为例,可以理解的是,还可以在用户需要合成视频时,根据用户设置的效果信息确定场景,并对场景分割得到场景单元。相应的,所述获取进行合成的每张图片对应的场景单元,包括:
在确定需要将图片合成视频后,获取用户设置的效果信息;
根据设置的效果信息确定进行合成的每张图片的场景;
对进行合成的每张图片的场景进行分割,获取进行合成的每张图片对应的场景单元。
S205:确定要进行合成的图片中当前处理的图片,在所述模板对应的场景单元中获取所述当前处理的图片对应的场景单元。
例如,该应用程序可以向用户显示图片选择按钮,用户点击该按钮后可以在已有的图片库中选择图片或者拍摄图片作为要进行合成的图片。
由于获取的模板对应的场景单元中包括所有图片对应的场景单元,而后续处理时需要对应每张图片进行处理,因此,在获取要进行合成的图片后,可以根据时间依次选择图片,作为当前处理的图片,并从与模板对应的场景单元中获取当前处理的图片对应的场景单元。
需要说明的是,对于某个时刻,可能需要对图片中的一张或多张进行处理,因此,当前处理的图片可以包括一张图片或者同时处理的多张图片。
S206:确定当前时间。
其中,可以从视频的起始时间开始,按照预设周期选择一个时间点作为当前时间,直至视频的结束时间。
S207:在所述当前处理的图片对应的场景单元中,确定时间段包含当前时间的场景单元,并获取时间段包含当前时间的场景单元的参数。
例如,当前处理的图片是图片A,该图片A对应的场景单元包括:第一场景单元、第二场景单元、第三场景单元…,且时间段分别是:第一时间段、第二时间段、第三时间段…。其中,各场景单元的类型可以相同或不同,例如,可以仅对应动画单元或可以对应动画单元和MV效果单元等。不同类型的场景单元包括的时间段可以相同或不同,例如,动画单元包括的时间段可以与MV效果单元包括的时间段相同或不同,而相同类型的不同场景单元包括的时间段是不同的,例如,两个不同的平移动画单元的时间段是不同的。
为了简化说明,假设图片A对应的场景单元包括:多个平移动画单元,每个平移动画单元具有不同的时间段,例如,第一平移动画单元包括的时间段是t0-t1,第二平移动画单元包括的时间段是t2-t3等。假设当前时间用tx表示,如果tx位于t0和t1之间,则由于第一平移动画单元的时间段包含当前时间,则获取第一平移动画单元的参数,以便根据第一平移动画单元的参数对图片A进行处理。
S208:启动Opengl的渲染线程。
其中,Opengl是一种图形图像处理平台,渲染线程用于将模型最终渲染成视频。
S209:渲染线程根据所述时间段包含当前时间的场景单元的参数,对当前处理的图片进行处理,得到处理后的图片。
例如,当前处理的图片是图片A,时间段包含当前时间的场景单元是第一平移动画单元,则渲染线程根据第一平移动画的参数对图片A进行处理。
之后,可以重复执行S206及其后续步骤,得到不同时间的处理后的图片。
S210:对不同时间的处理后的图片进行组合,得到视频。
类似上述对图片A的处理,可以对进行合成的其他图片进行相应处理,之后组合各处理后的图片得到视频。
例如,进行合成的图片包括图片A和图片B,在当前时间是T1时,可以组合第一处理后的图片A和第一处理后的图片B,比如,处理后的图片可以表明位置信息,MV效果和滤镜效果等,则可以在相应的位置展示对应的具有MV效果和滤镜效果的图片,从而得到T1时刻的效果,类似的,在当前时间是T2时,再次组合第二处理后的图片A和第二处理后的图片B,得到T2时刻的效果,重复不同时刻的流程,可以得到从开始时刻到结束时刻的视频。
具体的根据场景单元的参数对图片进行处理时,可以根据场景单元类型的不同进行如下项中的至少一项:
当所述时间段包含当前时间的场景单元包括动画单元时,根据动画单元的参数计算当前处理的图片在当前时间的动画计算结果,以及,根据动画计算结果更新当前处理的图片的场景层模型矩阵,以便对更新场景层模型矩阵的图片进行渲染;
当所述时间段包含当前时间的场景单元包括MV效果单元时,根据MV效果单元的参数进行渲染,以便在当前处理的图片中加入渲染后的MV效果;
当所述时间段包含当前时间的场景单元包括滤镜效果单元时,根据滤镜效果单元的参数对当前处理的图片进行滤镜处理,以便对滤镜处理后的图片进行渲染。
下面给出两个具体应用的例子。
示例一:假设用户选择的效果(可以根据模板或用户自定义信息选择效果)是图3所示的效果,当前处理的图片是指图3中的图片31,图片31的场景包括:平移、旋转、缩放、MV效果和滤镜效果。另外,假设当前时间是tx(t0≤tx≤t1)。
则依据上述流程处理,在S207中获取的场景单元例如包括:
平移动画单元Ti,其时间段是t0~t1,平移参数为:(x0,y0)~(x1,y1)。
旋转动画单元Rj,其时间段是t0~t1,旋转参数为:r0~r1。
缩放动画单元Sk,其时间段是t0~t1,缩放参数为:s0~s1。
其中,上述动画单元中涉及的点的坐标信息是指图片中心点的坐标信息。
MV效果单元mvm,其时间段是t0~t1。
滤镜效果单元filtern,其时间段是t0~t1。
由于MV效果单元和滤镜效果单元的参数比较复杂,这里省略,可以理解的是,具体的参数可以采用已有MV效果和滤镜效果中的参数。
相应的,在根据场景单元的参数对图片进行处理时,参见图4,处理内容可以包括:
S41:根据平移动画单元的参数计算平移位置计算结果,根据旋转动画单元的参数计算旋转角度计算结果,根据缩放动画单元的参数计算缩放大小计算结果,再根据该三个计算结果更新图片的场景层模型矩阵;
其中,平移位置计算结果的公式可以表示为:
旋转位置计算结果的公式可以表示为:
缩放大小计算结果的公式可以表示为:
图片的场景层模型矩阵是能够表征图片的平移位置、旋转角度和缩放大小的矩阵,当场景层模型矩阵不同时,图片的平移位置、旋转角度和缩放大小至少一项会发生变化。由于场景层模型矩阵也是已有图片合成时会采用的矩阵,因此,根据上述三个计算结果具体更新场景层模型矩阵的内容也可以采用已有技术实现。
S42:根据滤镜效果单元的参数对更新后的场景层模型矩阵进行滤镜处理,得到滤镜处理后的图片。
通过滤镜处理可以在呈现图片时,得到具有滤镜效果的图片。
S43:根据MV效果单元的参数,渲染MV效果,以及,渲染滤镜处理后的图片。
其中,渲染是指将数学模型转换为最终呈现给用户的视频,在渲染之前的根据滤镜参数对该矩阵处理后的参数,以及MV效果单元参数等都属于数学模型,需要将该数学模型转换为呈现给用户的视频,该过程采用渲染实现。具体的渲染流程也可以采用已有技术实现。
另外,对于其他处理的图片也可以采用类似的流程实现。
经过渲染后得到不同时间点上的视频,如图3所示的给出了三个时间点的视频,每个时间点的视频可以采用上述流程的得到。
可以理解的是,上述的S41-S43的处理是对应当前时间的,在当前时间更新后,可以采用上述流程重新确定包含当前时间的各场景单元,并根据确定的场景单元的参数对图片进行处理,直至tx>t1,从而得到图3所示的整体视频。
示例二:假设用户选择的效果(可以根据模板或用户自定义信息选择效果)是图5所示的效果,当前处理的图片包括图5中的图片51和图片52,两个图片的场景包括:平移,无其他效果。另外,假设当前时间是tx。
则依据上述流程处理,在S207中获取的场景单元例如包括:
对应图片51,其场景单元包括:平移动画单元Ti,其时间段是t00~t01,平移参数是:(x00,y00)~(x01,y01);
对应图片52,其场景单元包括:平移动画单元Tj,其时间段是t10~t11,平移参数是:(x10,y10)~(x11,y11)。
假设,t00≤tx≤t01以及,t10≤tx≤t11。
相应的,在根据场景单元的参数对图片进行处理时,参见图6,处理内容可以包括:
S61:根据平移动画单元的参数计算平移位置计算结果,再根据该计算结果更新图片的场景层模型矩阵。
例如,对于图片51,平移位置计算结果的公式可以表示为:
对于图片52,平移位置计算结果的公式可以表示为:
由于场景层模型矩阵也是已有图片合成时会采用的矩阵,因此,根据上述计算结果具体更新场景层模型矩阵的内容也可以采用已有技术实现。对应每张图片,得到对应的更新后的场景层模型矩阵。
S62:根据更新后的场景层模型矩阵渲染相应的图片。
例如,根据不同图片的更新后的场景层模型矩阵,可以对相应的图片进行渲染。
经过渲染后得到不同时间点上的视频,如图5所示的给出了三个时间点的视频,每个时间点的视频可以采用上述流程的得到。
可以理解的是,上述的S61-S62的处理是对应当前时间的,在当前时间更新后,当t00≤tx≤t01时,可以采用上述流程重新确定图片51对应的包含当前时间的各场景单元,并根据确定的场景单元的参数对图片51进行处理,当t10≤tx≤t11时,可以采用上述流程重新确定图片52对应的包含当前时间的各场景单元,并根据确定的场景单元的参数对图片52进行处理,从而得到图5所示的整体视频。
本实施例中,通过获取每张图片对应的场景单元,并选择相应的场景单元的参数对图片进行处理,以及组合处理后的图片,实现基于场景单元的处理,由于是以场景单元作为处理单位,可以灵活组合,满足不同效果需求,并且场景单元还可以在不同效果下使用,不需要每个效果重新开发,避免重复开发,从而可以降低开发成本,以及提高呈现效果。本实施例的场景单元可以分为动画单元、MV效果单元和滤镜效果单元,各单元效果扩展具有独立性,易于各种模式扩展,方便多样化的组合。进一步的,还可以将动画单元分为平移动画单元、旋转动画单元和缩放动画单元,易于各复杂动画的扩展,只需参数的配置而无需重复复杂开发。
图7是本发明另一实施例提出的图片合成视频的处理装置的结构示意图,该装置70包括:
获取模块71,用于确定要合成的视频具有的效果,并获取进行合成的每张图片对应的场景单元,其中,所述场景单元是对所述图片在所述效果下的场景进行分割后得到的;
其中,效果是指视频呈现给用户视觉感受,在将图片合成视频时,即使采用相同的多张图片,如果用户选择不同的效果,则可以得到不同的视频。
可以通过设置进行合成的图片的场景,从而实现合成后的视频具有需要的效果。
图片的场景例如包括:图片的动画方式、图片的音乐短片(Music Video,MV)效果、图片的滤镜效果等。
一些实施例中,可以向用户显示可供选择的模板,每个模板对应一种预设效果,根据用户选择的模板确定要合成的视频具有的效果。例如,在合成视频之前,预先生成模板,为每个模板设置相应的效果信息,从而将模板与效果对应,以便用户在选择模板后可以确定相应的效果。或者,
一些实施例中,可以根据用户设置的效果信息确定要合成的视频具有的效果。例如,在合成视频时,用户可以设置效果信息,从而确定相应的效果。
不论是预先设置模板的方式或者由用户设置效果信息的方式,设置的效果信息都可以包括:每张图片的场景信息,例如,对应每张图片的动画方式信息、MV效果信息、滤镜信息中的一项或多项等。
视频具有的效果是由于进行合成的图片的场景进行合成后得到的,当一个效果确定后,进行合成的每张图片的场景也就确定了,相应的,由场景分割得到的场景单元也就确定了。因此,在确定出效果后,可以获取每张图片对应的场景单元。
例如,在预先配置模板的情况下,在为模板配置效果时,可以对应每种效果,对每张图片的场景进行分割,得到场景单元,将模板与每张图片的场景单元关联,从而根据用户选择的模板可以获取每张图片对应的场景单元。或者,在合成视频时才确定效果的情况下,可以在确定出效果后实时对每张图片的场景进行分割,得到场景单元。
一些实施例中,场景单元包括如下项中的至少一项:
动画单元、MV效果单元、滤镜效果单元。
进一步的,动画单元可以包括如下项中的至少一项:
平移动画单元、旋转动画单元、缩放动画单元。
在将场景分割为场景单元时,可以将一段连续时间内,图片行为保持一致的一段场景作为一个场景单元,具体的,可以将用于标识图片行为的参数保持不变的一段场景作为一个场景单元。
例如,平移动画单元对应的用于标识图片行为的参数是平移加速度,则如果一个时间段内,图片的平移加速度不变(为一个恒定的非零值或为零),则该段场景可以作为一个平移动画单元。
处理模块72,用于确定要进行合成的图片中当前处理的图片,并获取所述当前处理的图片对应的场景单元,以及,确定时间段包含当前时间的场景单元,并根据所述时间段包含当前时间的场景单元的参数,对当前处理的图片进行处理,得到处理后的图片;
例如,该应用程序可以向用户显示图片选择按钮,用户点击该按钮后可以在已有的图片库中选择图片或者拍摄图片作为要进行合成的图片。
由于获取的模板对应的场景单元中包括所有图片对应的场景单元,而后续处理时需要对应每张图片进行处理,因此,在获取要进行合成的图片后,可以根据时间依次选择图片,作为当前处理的图片,并从与模板对应的场景单元中获取当前处理的图片对应的场景单元。
需要说明的是,对于某个时刻,可能需要对图片中的一张或多张进行处理,因此,当前处理的图片可以包括一张图片或者同时处理的多张图片。
对应一张图片,其场景单元是对该图片的场景进行分割后得到的,每个场景单元具有时间信息,对应某个时刻,需要选择相应的场景单元进行处理。
例如,当前处理的图片是图片A,该图片A对应的场景单元包括:第一场景单元、第二场景单元、第三场景单元…,且时间段分别是:第一时间段、第二时间段、第三时间段…。其中,各场景单元的类型可以相同或不同,例如,可以仅对应动画单元或可以对应动画单元和MV效果单元等。不同类型的场景单元包括的时间段可以相同或不同,例如,动画单元包括的时间段可以与MV效果单元包括的时间段相同或不同,而相同类型的不同场景单元包括的时间段是不同的,例如,两个不同的平移动画单元的时间段是不同的。
为了简化说明,假设图片A对应的场景单元包括:多个平移动画单元,每个平移动画单元具有不同的时间段,例如,第一平移动画单元包括的时间段是t0-t1,第二平移动画单元包括的时间段是t2-t3等。假设当前时间用tx表示,如果tx位于t0和t1之间,则由于第一平移动画单元的时间段包含当前时间,则获取第一平移动画单元的参数,根据第一平移动画单元的参数对图片A进行处理。
每个场景单元具有的一种信息是时间段,通过时间段可以如上确定相应的场景单元。另外,场景单元还包括相应类型的参数,例如,对于平移动画单元,还包括平移参数,对于旋转动画单元还包括旋转参数等。每个场景单元的参数可以在对场景进行分割时根据类型获取需要的参数。
在根据场景单元的参数对图片进行处理之前,可以先启动预设的用于渲染的线程,使用该线程对图片进行处理。
根据获取的时间段包含当前时间的场景单元的类型的不同,可以采用不同的方式对图片进行处理,例如包括如下项中的至少一项:
当所述时间段包含当前时间的场景单元包括动画单元时,根据动画单元的参数计算当前处理的图片在当前时间的动画计算结果,以及,根据动画计算结果更新当前处理的图片的场景层模型矩阵,以便对更新场景层模型矩阵的图片进行渲染;
当所述时间段包含当前时间的场景单元包括MV效果单元时,根据MV效果单元的参数进行渲染,以便在当前处理的图片中加入渲染后的MV效果;
当所述时间段包含当前时间的场景单元包括滤镜效果单元时,根据滤镜效果单元的参数对当前处理的图片进行滤镜处理,以便对滤镜处理后的图片进行渲染。
合成模块73,用于对不同时间的处理后的图片进行组合,得到视频。
类似上述对图片A的处理,可以对进行合成的其他图片进行相应处理,之后组合各处理后的图片得到视频。
例如,进行合成的图片包括图片A和图片B,在当前时间是T1时,可以组合第一处理后的图片A和第一处理后的图片B,比如,处理后的图片可以表明位置信息,MV效果和滤镜效果等,则可以在相应的位置展示对应的具有MV效果和滤镜效果的图片,从而得到T1时刻的效果,类似的,在当前时间是T2时,再次组合第二处理后的图片A和第二处理后的图片B,得到T2时刻的效果,重复不同时刻的流程,可以得到从开始时刻到结束时刻的视频。
本实施例中,通过获取每张图片对应的场景单元,并选择相应的场景单元的参数对图片进行处理,以及组合处理后的图片,实现基于场景单元的处理,由于是以场景单元作为处理单位,可以灵活组合,满足不同效果需求,并且场景单元还可以在不同效果下使用,不需要每个效果重新开发,避免重复开发,从而可以降低开发成本,以及提高呈现效果。
一些实施例中,参见图8,该装置70还包括:
分割模块74,用于根据要合成的视频的预设效果确定进行合成的每张图片的场景,以及对每张图片的场景进行分割,得到至少一个场景单元;
其中,效果是指视频呈现给用户视觉感受,在将图片合成视频时,即使采用相同的多张图片,如果用户选择不同的效果,则可以得到不同的视频。
可以通过设置进行合成的图片的场景,从而实现合成后的视频具有需要的效果。
图片的场景例如包括:图片的动画方式、图片的音乐短片(Music Video,MV)效果、图片的滤镜效果等。
当指定一种效果后,相应的每张图片的场景是确定的,例如,在第一效果下,第一图片在第一时间位于第一位置,并具有黑白的滤镜效果,同时,第二图片在第一时间位于第二位置,以及,同时播放第一音乐等。
在确定出一张图片的场景后,可以对场景进行分割得到场景单元。
在将场景分割为场景单元时,可以将一段连续时间内,图片行为保持一致的一段场景作为一个场景单元,具体的,可以将用于标识图片行为的参数保持不变的一段场景作为一个场景单元。
例如,平移动画单元对应的用于标识图片行为的参数是平移加速度,则如果一个时间段内,图片的平移加速度不变(为一个恒定的非零值或为零),则该段场景可以作为一个平移动画单元。
关联模块75,用于将每个预设效果作为一个模板,并建立模板与场景单元的对应关系;
例如,对应第一预设效果确定的场景包括:第一图片的第一场景,第二图片的第二场景,对第一场景进行分割后得到第一场景单元组,对第二场景进行分割后得到第二场景单元组,则将第一预设效果作为第一模板,建立的对应关系包括:第一模板对应:第一图片的第一场景单元组和第二图片的第二场景单元组,场景单元组由场景单元组成。
相应的,所述获取模块71用于获取进行合成的每张图片对应的场景单元,包括:
在确定需要将图片合成视频后,向用户提供可供选择的模板;
根据用户选择的模板以及预先建立的模板与场景单元之间的对应关系,获取用户选择的模板对应的场景单元。
由于之前建立了模板与场景单元之间的对应关系,因此在用户选择模板后可以确定对应的场景单元。其中,每个模板对应的场景单元包括:合成视频的每张图片分别对应的场景单元。
一些实施例中,所述获取模块71用于获取进行合成的每张图片对应的场景单元,包括:
在确定需要将图片合成视频后,获取用户设置的效果信息;
根据设置的效果信息确定进行合成的每张图片的场景;
对进行合成的每张图片的场景进行分割,获取进行合成的每张图片对应的场景单元。
一些实施例中,参见图8,该装置70还包括:
启动模块76,用于启动预设的用于渲染的线程,以便使用所述线程根据所述时间段包含当前时间的场景单元的参数,对当前处理的图片进行处理,得到处理后的图片。
例如,预设的用于渲染的线程是Opengl的渲染线程。Opengl是一种图形图像处理平台,渲染线程用于将模型最终渲染成视频。
例如,当前处理的图片是图片A,时间段包含当前时间的场景单元是第一平移动画单元,则渲染线程根据第一平移动画的参数对图片A进行处理。
之后,可以重复之前步骤,得到不同时间的处理后的图片。
一些实施例中,所述处理模块72用于根据所述时间段包含当前时间的场景单元的参数,对当前处理的图片进行处理,包括如下项中的至少一项:
当所述时间段包含当前时间的场景单元包括动画单元时,根据动画单元的参数计算当前处理的图片在当前时间的动画计算结果,以及,根据动画计算结果更新当前处理的图片的场景层模型矩阵,以便对更新场景层模型矩阵的图片进行渲染;
当所述时间段包含当前时间的场景单元包括MV效果单元时,根据MV效果单元的参数进行渲染,以便在当前处理的图片中加入渲染后的MV效果;
当所述时间段包含当前时间的场景单元包括滤镜效果单元时,根据滤镜效果单元的参数对当前处理的图片进行滤镜处理,以便对滤镜处理后的图片进行渲染。
处理的具体内容可以参见方法实施例中的相关描述,在此不再赘述。
本实施例中,通过获取每张图片对应的场景单元,并选择相应的场景单元的参数对图片进行处理,以及组合处理后的图片,实现基于场景单元的处理,由于是以场景单元作为处理单位,可以灵活组合,满足不同效果需求,并且场景单元还可以在不同效果下使用,不需要每个效果重新开发,避免重复开发,从而可以降低开发成本,以及提高呈现效果。本实施例的场景单元可以分为动画单元、MV效果单元和滤镜效果单元,各单元效果扩展具有独立性,易于各种模式扩展,方便多样化的组合。进一步的,还可以将动画单元分为平移动画单元、旋转动画单元和缩放动画单元,易于各复杂动画的扩展,只需参数的配置而无需重复复杂开发。
本发明第三方面实施例提出的终端设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为终端设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
确定要合成的视频具有的效果,并获取进行合成的每张图片对应的场景单元,其中,所述场景单元是对所述图片在所述效果下的场景进行分割后得到的;
确定要进行合成的图片中当前处理的图片,并获取所述当前处理的图片对应的场景单元,以及,确定时间段包含当前时间的场景单元,并根据所述时间段包含当前时间的场景单元的参数,对当前处理的图片进行处理,得到处理后的图片;
对不同时间的处理后的图片进行组合,得到视频。
具体内容可以参见上述方法实施例中的相关描述,在此不再赘述。
本实施例中,通过获取每张图片对应的场景单元,并选择相应的场景单元的参数对图片进行处理,以及组合处理后的图片,实现基于场景单元的处理,由于是以场景单元作为处理单位,可以灵活组合,满足不同效果需求,并且场景单元还可以在不同效果下使用,不需要每个效果重新开发,避免重复开发,从而可以降低开发成本,以及提高呈现效果。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。