视频码流处理方法和装置的制造方法_2

文档序号:9711932阅读:来源:国知局
据容器中,依此类推。
[0048]上述视频码流处理方法,在合并多路原视频码流的过程中,需确定码流配置参数是否改变,将改变后的码流配置参数写入合并视频码流,将未改变的码流配置参数直接复制到合并视频码流中。编码数据容器可自定义编码数据的归属,合并视频码流中具有分别与每路原视频码流对应的编码数据容器,这样在合并多路原视频码流时便可以直接将编码数据按序复制到合并视频码流中相应的编码数据容器里,从而实现了多路原视频码流的合并。由于涉及的操作简单,且不需要对原视频码流进行解码再编码,极大地提高了合并视频码流的效率。而且合并视频码流中的编码数据直接从原视频码流复制获得,可避免视频码流在解码编码过程中造成的视频质量损失。
[0049]在一个实施例中,视频编码格式为H.264,编码数据为条带级数据,编码数据容器为条带组。步骤208包括:将每路原视频码流的条带级数据按序复制到合并视频码流中与每路原视频码流对应的条带组中。
[0050]具体地,H.264/AVC依次定义了序列(Sequence)、帧(Frame)、条带(Slice)、宏块(MacroBlock)以及块(Block)等级别的数据集合。帧内部可以有多个条带,多个条带类型可不同,互相之间不会参考,以屏蔽解码错误的蔓延。但条带的定义比较死板,条带内的宏块按照光栅扫描顺序排列,且宏块坐标依次增加,中间不能存在空隙。图3为一种条带划分示例图。
[0051]H.264/AVC标准为了增加码流的抗误码能力引入了一些新的抗误码纠错能力的技术,如灵活宏块重排(Flexible MacroBlock 0rdering,FM0)技术。FMO是通过宏块分配映射技术,按照指定的方式将一类宏块映射到同一个条带组(Slice Group)中。条带组内部的宏块也是按照光栅扫描顺序排列,但宏块坐标可以不连续。FMO的原意是用于提高码流抗误码能力,但本实施例中利用FMO灵活的宏块排列以实现无需转码的视频码流合并。FMO定义了 7种宏块到条带组的映射模式,其中模式6可以由用户自定义配置每一个宏块所属的宏块组。比如可以定义出如图4的特殊的条带组划分,也可以定义出如图5所示的矩阵形式的条带组划分,或者如图6所示的水平方向拼合的条带组划分。
[0052]本实施例中,借助FMO模式实现的多路码流合并技术,不需要对多路码流解码再编码,不会带来转码过程中视频质量损失。同时该方法所需要的计算量极小,需要的计算资源以及由此而产生的计算延迟都很小。可以高效的解决多路码流合并需求。
[0053]在一个实施例中,视频编码格式为H.264,码流配置参数包括序列参数集,参照图7,步骤204具体包括如下步骤:
[0054]步骤702,从多路原视频码流的序列参数集中提取图像高度和图像宽度。
[0055]具体地,H.264格式的多路原视频码流的序列参数集相同,在合并后会改变的码流配置参数有图像高度(pic_height_in_mbs_minusl)和图像宽度(pic_widt h_in_mbs_minusl)。电子设备则从多路原视频码流中任一路的序列参数集SPS中提取图像高度(pic_height_in_mbs_minusl)和图像宽度(pic_width_in_mbs_minusl)。
[0056]其中,图像高度和图像宽度可均以宏块(Macroblock)为单位,可从O起算。在视频编码中,一个编码图像通常划分成若干宏块组成,一个宏块由一个亮度像素块和附加的两个色度像素块组成。
[0057]步骤704,根据图像高度和合并多路原视频码流的图像拼合方式,计算合并图像高度。
[0058]具体地,图像拼合方式是指多路原视频码流在合并时在图像级别的合并方式。图像拼合方式可以包括水平方向图像拼合方式、垂直方向图像拼合方式以及矩阵图像拼合方式中的至少一种,水平方向图像拼合方式又可以包括水平方向完整图像拼合方式和水平方向局部图像拼合方式中的至少一种,垂直方向图像拼合方式可以包括垂直方向完整图像拼合方式和垂直方向局部图像拼合方式中的至少一种,矩阵图像拼合方式可以包括矩阵完整图像拼合方式和矩阵局部图像拼合方式。其中水平方向图像拼合方式是指将原视频码流的图像在水平方向上进行拼合,垂直方向图像拼合方式则是将原视频码流的图像在垂直方向上进行拼合,矩阵图像拼合方式是指将原视频码流的图像以矩阵形式进行拼合。完整图像拼合是指将需拼合的图像完整地拼合,局部图像拼合是指将需拼合的图像的一部分进行拼合。图像拼合方式的不同,导致合并图像高度和合并图像宽度的计算方式不同。
[0059]举例说明,参照图8,左眼视频码流和右眼视频码流的图像进行拼合,可以采用水平方向图像拼合方式,如8(a)和8(b)所示的图像拼合方式。其中8(a)为水平方向完整图像拼合方式,8(b)为水平方向减半图像拼合方式。8(a)和8(b)也可以称为左右3D格式,8(a)和8(b)的区别在于8(b)的左右眼图像数据在水平方向上分辨率减半,这样可以使得合并后获得的3D视频码流与合并前的左右眼视频码流分辨率相同。类似地,图8中8(c)为垂直方向完整图像拼合方式,8 (d)为垂直方向减半图像拼合方式。
[0060]比如,若合并两路原视频码流(码流O和码流I)的图像拼合方式为水平方向完整图像拼合方式,则合并图像高度 pic_height_in_mbs_minusl =码流 Opic_height_in_mbs_111;[111181=码流1卩;[(3_1161区111:」11_11^8_111;[1111810其中码流0卩;[(3_1161区111:」11_11^8_111;[111181是指码流O的图像高度,码流lpic_height_in_mbs_minusl则是指码流I的图像高度。
[0061]若合并两路原视频码流(码流O和码流I)的图像拼合方式为垂直方向完整图像拼合方式,则合并图像高度卩:1(3_11618111:_;[11_11^8_111;[111181 = 2*(^^^0pic_height_in_mbs_minusl+1)-1。
[0062]若合并四路原视频码流(码流0至码流3)的图像拼合方式为矩阵图像拼合方式,则合并图像高度 pic_height_in_mbs_minusl = 2*(码流 Opic_height_in_mbs_minusl+l )_1。
[0063]步骤706,根据图像宽度和合并多路原视频码流的图像拼合方式,计算合并图像宽度。
[0064]比如,若合并两路原视频码流(码流O和码流I)的图像拼合方式为水平方向完整图像拼合方式,则合并图像宽度 pic_width_in_mbs_minusl = 2*(码流 Opic_width_in_mbs_minusl+l)_l。其中码流Opic_width_in_mbs_minusl是指码流O的图像宽度。
[0065]若合并两路原视频码流(码流O和码流I)的图像拼合方式为垂直方向完整图像拼合方式,则合并图像宽度P i c_width_in_mbs_minus I =码流Op i c_width_in_mbs_minus I
[0066]若合并四路原视频码流(码流O至码流3)的图像拼合方式为矩阵图像拼合方式,则合并图像宽度 pic_width_in_mbs_minusl = 2*(码流 Opic_width_in_mbs_minusl+l )_1。
[0067]步骤708,将合并图像高度和合并图像宽度写入合并视频码流的序列参数集中。
[0068]具体地,参照图9,对于多路原视频码流的序列参数集中发生改变的码流配置参数即图像高度和图像宽度,将改变的码流配置参数即合并图像高度和合并图像宽度写入合并视频码流的序列参数集中。多路原视频码流的序列参数集中除图像高度和图像宽度之外的码流配置参数未发生改变,则直接复制到合并视频码流的序列参数集中。
[0069]本实施例中,若视频编码格式为H.264,在合并多路原视频码流时,每路原视频码流中的序列参数集只有图像宽度和图像高度发生改变,其他参数未发生变化,通过计算合并图像高度和合并图像宽度并写入合并视频码流,并将序列参数集中其它参数直接复制到合并视频码流中,可以实现高效地将H.264格式的多路原视频码流进行合并。
[0070]如图10所示,在一个实施例中,步骤204具体包括如下步骤:
[0071]步骤1002,根据多路原视频码流的路数确定条带组数目。
[0072]具体地,H.264/AVC中条带组数目为num_slice_groups_minusl。条带组数目由多路原视频码流的路数确定,具体条带组数目可等于多路原视频码流的路数。比如H.264/AVC格式的6路原视频码流进行合并,确定的条带组数目为6。
[0073]步骤1004,确定条带组模式类型为自定义宏块所归属条带组的模式类型。
[0074]具体地,H.264/AVC中条带组模式类型为slice_group_mbs_type,即FMO模式。这里条带组模式类型定义为6,即可以自定义各个宏块的条带组归属。
[0075]步骤1006,获取合并视频码流的图像宏块数目。
[0076]具体地,H.264/AVC中图像宏块数目 Spic_size_in_mbs_units_minusl,可根据多路原视频码流的图像的宏块数量计算出合并视频码流的图像宏块数目pic_size_in_mbs_units_minuslο
[0077 ]步骤1008,确定合并视频码流中图像的宏块条带组归属表。
[0078]具体地,H.264/AVC中宏块条带组归属表slice_group_id[]表示视频码流中图像的宏块和条带组的归属关系,即表示哪个宏块属于哪个条带组。这样将每路原视频码流的条带级数据按序复制到合并视频码流中与每路原视频码流对应的条带组中后,便可以根据宏块条带组归属表确定条带组中的宏块所来自的原始视频码流。电子设备具体可按照光栅扫描顺序定义每个宏块的条带组归属。
[0079]举例说明,参照图11,假设4路分辨率为176 X 144 (QCIF,Quar ter CommonIntermediate Format,四分之一公共中间格式)的原视
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1