视频处理方法、装置及终端的制作方法_2

文档序号:9436357阅读:来源:国知局
括图像帧数据,又包括音频帧数据;且图像帧数据和音频帧数据的出现具有不确定性。但是,每个帧数据序列中的所有图像帧数据是按照由前到后的顺序出现的;每个帧数据序列中的所有音频帧数据是按照时间戳由早到晚的顺序出现的,时间戳用于指示该音频帧数据在播放时间轴中的播放时刻。
[0069]比如,如图3Β所示,有声视频A解码得到的巾贞数据序列包括间或出现的图像中贞数据和音频帧数据32,也即:图像帧AVl、图像帧AV2、音频帧AAl、图像帧AV3,、、、,音频帧ΑΑ75 ;其中,首字母A代表来源于有声视频Α,第二个字母为V时,代表当前帧数据为图像帧数据;第二个字母为A时,代表当前帧数据为音频帧数据,最后一个数字代表当前图像帧数据在该帧数据序列中的图像帧序列号,或代表当前音频帧在该帧数据序列中的音频帧序列号。
[0070]而有声视频B解码得到的帧数据序列包括间或出现的图像帧数据和音频帧数据34,也即:音频帧BAl、图像帧BVl、音频帧ΒΑ2、图像帧BV2,、、、,图像帧BV90,其中,首字母B代表来源于有声视频B,其它字母和数字的含义同有声视频A。
[0071 ] 步骤303,在2个视频各自所对应的帧数据序列中,确定出m组关联帧数据,每组关联帧数据包括相互关联且类型相同的2个帧数据,且每组帧数据中的各个帧数据属于不同的视频,m均为正整数;
[0072]移动终端需要将有声视频A和有声视频B中的图像帧数据与关联的图像帧数据拼接,音频帧数据与关联的音频帧数据拼接。具体来讲,移动终端按照如下条件进行拼接:
[0073]对于图像帧数据,移动终端将2个帧数据序列中序列号相同的图像帧数据确定为同一组关联帧数据,序列号是一帧图像帧数据在所属帧数据序列中的图像帧排序号。
[0074]对于音频帧数据,移动终端将2个帧数据序列中时间戳相同的音频帧数据确定为同一组关联帧数据。时间戳相同表示两个音频帧数据在播放时间轴中的播放时间相同。
[0075]为此,移动终端将这2个帧数据序列均采用有序数据结构进行存储,有序数据结构可以是链表、数组等。然后,在解码过程中,对解码得到的图像帧数据的存储过程包括:
[0076]1、在每个帧数据序列均采用有序数据结构(如链表)存储时,对于η个帧数据序列中的任意一个帧数据序列,当在该帧数据序列中解码出第i帧图像帧数据时,检测该帧数据序列的有序数据结构中是否存在匹配图像帧空位,在其它帧数据序列的有序数据结构中与匹配图像帧空位对应的位置上存储有其它帧数据序列中的第i位图像帧数据,i为正整数;
[0077]2、若存在匹配图像帧空位,则将第i帧图像帧数据插入至匹配图像帧空位中进行存储;
[0078]3、若不存在匹配图像帧空位,将第i帧图像帧数据插入至该帧数据序列的有序数据结构中尾部的一个新建空位中进行存储,在其它帧数据序列的有序数据结构中与新建空位对应的位置上不存储有任何帧数据。
[0079]在解码过程中,对解码得到的音频帧数据的存储过程包括:
[0080]1、在每个帧数据序列均采用有序数据结构(如链表)存储时,对于η个帧数据序列中的任意一个帧数据序列,当该帧数据序列中解码得到一个音频帧数据时,检测帧数据序列的有序数据结构中是否存在匹配音频帧空位,在其它帧数据序列所对应的有序数据结构中与匹配音频帧空位对应的位置上存储有时间戳相同的音频帧数据;
[0081]2、若存在匹配音频帧空位,则将解码得到的音频帧数据插入至匹配音频帧空位中进行存储;
[0082]3、若不存在匹配音频帧空位,则将解码得到的音频帧数据插入至该帧数据序列的有序数据结构中尾部的一个新建空位中进行存储,在其它帧数据序列的有序数据结构中与新建空位对应的位置上不存储有任何帧数据。
[0083]结合参考图3Β和图3C,在有声视频A解码出的帧数据序列为32,有声视频B解码出的帧数据序列为34,且有声视频A和有声视频B同时解码并以链表形式存储时,本步骤包括:
[0084]移动终端从有声视频A解码出图像帧AVl时,假设两个链表均为空,则移动终端将图像帧AVl存储在第一链表中的第I个位置,如图3C中的(I);
[0085]移动终端从有声视频B解码出音频帧BAl时,第二链表中的第I个位置是一个空位,但是由于第一链表中的第I个位置存储的是图像帧数据,所以第二链表中的第I个位置不是匹配音频帧空位,移动终端在第二链表的尾部中新建I个空位,也即第二链表的第2个位置,将音频帧BAl存储在第二链表的第2个位置中,如图3C中的(2);
[0086]移动终端从有声视频A解码出图像巾贞AV2时,第一链表中的第2个位置是一个空位,但是由于第二链表中的第2个位置存储的是音频帧数据,所以第一链表中的第2个位置不是匹配图像帧空位,移动终端在第一链表的尾部中新建I个空位,也即第一链表的第3个位置,将图像帧AV2存储在第一链表的第3个位置中,如图3C中的(3);
[0087]移动终端从有声视频B解码出图像帧BVl时,第二链表中的第I个位置和第3个位置均是一个空位,且均存储的是图像帧数据,由于第I个位置在第二链表中更靠前,所以第二链表中的第I个位置是匹配图像帧空位,移动终端将图像帧BVl存储在第二链表的第I个位置中,如图3C中的(4);
[0088]移动终端从有声视频A解码出音频巾贞AAl时,第一链表中的第2个位置是一个空位,假设音频帧AAl的时间戳晚于音频帧BAl的时间戳,则第一链表中的第2个位置不是匹配音频帧空位,移动终端在第一链表中新建一个空位,也即第一链表中的第4个位置,然后将音频帧AAl存储在第一链表的第4个位置中,如图3C中的(5);
[0089]移动终端从有声视频B解码出音频帧BA2时,第二链表中的第3个位置和第4个位置均为空位,但由于第一链表中的第3个位置存储的是图像帧数据,所以第二链表中的第3个位置不是匹配音频帧空位;假设音频帧AAl与音频帧BA2具有相同的时间戳,则第二链表中的第4个位置是匹配音频帧空位,移动终端将音频帧BA2存储在第二链表的第4个位置中,如图3C中的(6);
[0090]移动终端从有声视频A解码出图像巾贞AV3时,第一链表中的第2个位置是一个空位,由于第二链表中的第2个位置存储的是音频帧,所以第一链表中的第2个位置不是匹配图像帧空位,移动终端在第一链表的尾部新建一个空位,也即第一链表中的第5个位置,然后将图像帧AV3存储在第一链表的第5个位置中,如图3C中的(7);
[0091]移动终端从有声视频B解码出图像帧BV2时,第二链表中的第3个位置为空位,且第一链表的第3个位置存储有图像帧AV2,所以第二链表的第3个位置是匹配图像帧空位,移动终端将图像帧BV2存储在第二链表的第3个位置中,如图3C中的(8)。
[0092]诸如此类,不再一一赘述。
[0093]其中,第一链表中的第I个位置中存储的帧数据和第二链表中的第I个位置中存储的帧数据将会形成第I组关联帧数据;第一链表中的第2个位置中存储的帧数据和第二链表中的第2个位置中存储的帧数据将会形成第2组关联帧数据;第一链表中的第3个位置中存储的帧数据和第二链表中的第3个位置中存储的帧数据将会形成第3组关联帧数据;、、、;第一链表中的第i个位置中存储的帧数据和第二链表中的第i个位置中存储的帧数据将会形成第i组关联帧数据。
[0094]步骤304,检测当前组关联帧数据中的所有帧数据是否确定完毕;
[0095]移动终端从第一链表和第二链表的头部开始,实时监测当前组关联帧数据中的所有帧数据是否确定完毕。如果确定完毕,则进入步骤305。
[0096]若当前组关联帧数据存储的是图像帧数据,则在当前组中的帧数据达到η时,认为当前组中的所有帧数据确定完毕。比如,图3C中的(5),第一链表的第I个位置和第二链表的第I个位置均存储有图像帧数据,则移动终端检测出第I组关联帧数据确定完毕;又比如,图3C中的(8),第一链表的第3个位置和第二链表的第3个位置均存储有图像帧数据,则移动终端检测出第3组关联帧数据确定完毕。
[0097]若当前组关联帧数据存储的是音频帧数据,则在当前组中的帧数据达到η或者排序在后且存储音频帧数据的其它组中的关联帧数据确定完毕时,认为当前组中的所有帧数据确定完毕。比如,图3C中的(6),第一链表的第4个位置和第二链表的第4个位置均存储有音频帧数据,则移动终端检测出第4组关联帧数据确定完毕;同时,由于每个帧数据序列中音频帧数据是按照时间戳由早到晚顺序出现的,第4组关联帧数据确定完毕后,代表着第一链表中的第二个位置不会再存储到与音频帧BAl具有相同时间戳的音频帧了,此时,则移动终端检测出第2组关联帧数据也确定完毕。
[0098]步骤305,若当前组关联帧数据中的所有帧数据已经确定完毕,则将一组关联帧数据内的各个帧数据合成为目标视频中的一个帧数据;
[0099]在一组关联帧数据中的所有帧数据确定完毕后,移动终端将该组关联帧数据内的各个帧数据合成为目标视频中的一个帧数据。具体来讲:
[0100]若当前组关联帧数据的类型是图像帧数据,则将组内的各个图像帧数据合成为同一图像帧数据,得到目标视频中的一帧图像帧数据。可选地,移动终端将组内的各个图像帧数据合成至同一图像帧数据的不同区域,对于2个视频来讲,不同区域可以是:左区域和右区域、上区域和下区域、对角区域和另I个对角区域、背景区域和前景区域等等,如图3D所
/Jn ο
[0101]若当前组关联帧数据的类型是音频帧数据,则将组内的各个音频帧数据合并为同一音频帧数据,得到目标视频中的一帧音频帧数据。
[0102]如图3Ε所示,在第I组关联帧数据确定完毕后,移动终端将第I组关联帧数据中的2个图像帧数据合成得到一帧图像帧数据;在第2组关联帧数据确定完毕后,移动终端将第2组关联帧数据中的I个音频帧数据合成得到一帧音频帧数据;在第3组关联帧数据确定完毕后,移动终端将第3组关联帧数据中的2个图像帧数据合成得到一帧图像帧数据;在第4组关联帧数据确定完毕后,移动终端将第4组关联帧数据中的2个音频帧数据拼接得到一帧音频帧数据,以此类推,得到目标视频中的各帧帧数据。
[0103]需要说明的是,步骤303是可选步骤,步骤303可以在一组关联帧数据确定完毕后,立马合成该组关联帧数据,使得解码步骤与合成步骤并行执行。若不执行步骤304,等全部关联帧数据确定完毕后,再进行合成步骤也是一种可能的实施方式。
[0104]并且,作为步骤304的另一种可能的实现方式,移动终端可以在开始解码的预定时长之后,比如开始解码2秒后,不做检测而假定链表中的前几组关联帧数据确定完毕,并按照预定的合成速度开始合成,该预定的合成速度小于或等于解码速度。
[0105]步骤306,根据合成得到的多个图像帧数据和多个音频帧数据编码得到目标视频。
[0106]最后,移动终端根据合成得到的多个图像帧数据和多个音频帧数据编码得到目标视频。
[0107]也即,假如有声视频A的时长为7秒钟,有声视频B的时长为7秒钟,则移动终端可以合成得到时长为7秒的目标视频。
[0108]综上所述,本实施例提供的视频处理方法,通过将不同视频合并为一个目标视频,且在目标视频中同一视频画面中的不同区域展示不同视频,比如将I个时长为4秒的视频和另
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1