发明内容
本发明提供一种图像的协同处理方法和设备,以通过低编码能力的编码器实现高分辨率的图像的处理。
为了达到上述目的,本发明提供一种图像的协同处理方法,应用于包括解码器和多个编码器的系统中,所述多个编码器中有一个编码器为主Master编码器,其他编码器为从Slave编码器,所述Master编码器上记录有所述Slave编码器的编码能力,该方法包括以下步骤:
所述Master编码器获得待处理图像;
当所述待处理图像在所述Master编码器的编码能力内时,所述Master编码器对所述待处理图像进行编码处理,并将处理后的图像发送给所述解码器;
当所述待处理图像不在所述Master编码器的编码能力内,且在所述Master编码器与所述Slave编码器整体的编码能力内时,所述Master编码器从所述Master编码器和所述Slave编码器中选择能够处理所述待处理图像的若干个编码器,并按照所述若干个编码器的编码能力对所述待处理图像进行分割;由所述若干个编码器对分割后的待处理图像进行编码处理,并将处理后的图像发送给所述解码器。
所述编码能力包括:分辨率;
所述待处理图像在所述Master编码器的编码能力内包括:所述待处理图像的分辨率不大于所述Master编码器能够处理的分辨率;
所述待处理图像不在所述Master编码器的编码能力内,且在所述Master编码器与所述Slave编码器整体的编码能力内,包括:所述待处理图像的分辨率大于所述Master编码器能够处理的分辨率,且不大于所述Master编码器能够处理的分辨率与所述Slave编码器能够处理的分辨率之和。
所述编码能力包括:分辨率;
所述Master编码器按照所述若干个编码器的编码能力对所述待处理图像进行分割,具体包括:
所述Master编码器确定所述若干个编码器中每个编码器需要处理的分割后的待处理图像的分辨率不大于该编码器能够处理的分辨率。
所述Master编码器与所述Slave编码器之间还存在数据共享通道,且所述若干个编码器中存在Slave编码器;所述Master编码器按照所述若干个编码器的编码能力对所述待处理图像进行分割,之后还包括:
所述Master编码器通过所述数据共享通道将分割后的待处理图像发送给所述若干个编码器中的Slave编码器。
所述Master编码器上记录有所述Slave编码器的编码能力,具体包括:
所述Master编码器利用所述数据共享通道收集所述Slave编码器的编码能力,并记录所述Slave编码器的编码能力。
所述Master编码器通过所述数据共享通道将分割后的待处理图像发送给所述若干个编码器中的Slave编码器,具体包括:
所述Master编码器在所述分割后的待处理图像的首部设置开始标识和号段标识,并在所述分割后的待处理图像的尾部设置结束标识;
所述号段标识用于标记所述分割后的待处理图像在所述待处理图像中的位置;所述开始标识用于标记所述分割后的待处理图像的开始位置;所述结束标识用于标记所述分割后的待处理图像的结束位置;
所述Master编码器将设置有开始标识、号段标识和结束标识的分割后的待处理图像发送给所述若干个编码器中的Slave编码器。
所述若干个编码器将处理后的图像发送给所述解码器,具体包括:
所述若干个编码器将携带分割后的待处理图像对应的号段标识的处理后的图像发送给所述解码器。
所述方法还包括:
所述解码器接收来自所述若干个编码器的处理后的图像;
所述解码器利用所述分割后的待处理图像对应的号段标识对所述若干个编码器的处理后的图像进行解码处理,得到所述待处理图像。
一种编码器,应用于包括解码器和多个编码器的系统中,所述多个编码器中有一个编码器为主Master编码器,其他编码器为从Slave编码器,所述Master编码器上记录有所述Slave编码器的编码能力,其中,编码器包括:接收模块、处理模块和发送模块;
当编码器为Master编码器时,
所述接收模块,用于获得待处理图像;
所述处理模块,用于当所述待处理图像在Master编码器的编码能力内时,对所述待处理图像进行编码处理;
当所述待处理图像不在Master编码器的编码能力内,且在Master编码器与Slave编码器整体的编码能力内时,从Master编码器和Slave编码器中选择能够处理所述待处理图像的若干个编码器,并按照所述若干个编码器的编码能力对所述待处理图像进行分割;
所述发送模块,用于当所述待处理图像在Master编码器的编码能力内时,将处理后的图像发送给所述解码器;
当编码器为Slave编码器时,
所述接收模块,用于接收来自Master编码器的分割后的待处理图像;
所述处理模块,用于对分割后的待处理图像进行编码处理;
所述发送模块,用于将处理后的图像发送给所述解码器。
所述编码能力包括:分辨率;
所述待处理图像在Master编码器的编码能力内包括:所述待处理图像的分辨率不大于Master编码器能够处理的分辨率;
所述待处理图像不在Master编码器的编码能力内,且在Master编码器与Slave编码器整体的编码能力内,包括:所述待处理图像的分辨率大于Master编码器能够处理的分辨率,且不大于Master编码器能够处理的分辨率与Slave编码器能够处理的分辨率之和。
所述编码能力包括:分辨率;
当编码器为Master编码器时,
所述处理模块,具体用于确定所述若干个编码器中每个编码器需要处理的分割后的待处理图像的分辨率不大于该编码器能够处理的分辨率。
Master编码器与Slave编码器之间还存在数据共享通道,且所述若干个编码器中存在Slave编码器;
当编码器为Master编码器时,
所述发送模块,还用于通过所述数据共享通道将分割后的待处理图像发送给所述若干个编码器中的Slave编码器。
当编码器为Master编码器时,
所述处理模块,还用于利用所述数据共享通道收集所述Slave编码器的编码能力,并记录所述Slave编码器的编码能力。
当编码器为Master编码器时,
所述处理模块,还用于在所述分割后的待处理图像的首部设置开始标识和号段标识,并在所述分割后的待处理图像的尾部设置结束标识;
所述号段标识用于标记所述分割后的待处理图像在所述待处理图像中的位置;所述开始标识用于标记所述分割后的待处理图像的开始位置;所述结束标识用于标记所述分割后的待处理图像的结束位置;
所述发送模块,具体用于将设置有开始标识、号段标识和结束标识的分割后的待处理图像发送给所述若干个编码器中的Slave编码器。
所述若干个编码器中还存在Master编码器;
当编码器为Master编码器时,
所述处理模块,还用于当所述待处理图像不在Master编码器的编码能力内,且在Master编码器与Slave编码器整体的编码能力内时,对分割后的待处理图像进行编码处理;
所述发送模块,还用于将处理后的图像发送给所述解码器。
当编码器为Master编码器时,
所述发送模块在将处理后的图像发送给所述解码器时,该处理后的图像中携带所述分割后剩余的待处理图像对应的号段标识;
当编码器为Slave编码器时,
所述发送模块在将处理后的图像发送给所述解码器时,该处理后的图像中携带所述分割后的待处理图像对应的号段标识。
与现有技术相比,本发明至少具有以下优点:通过充分利用现有的低编码能力的编码器,并通过多台编码器之间的相互协助,来实现对高分辨率图像的编码处理。
具体实施方式
本发明提出一种图像的协同处理方法,该方法应用于包括解码器和多个编码器的系统中,在多个编码器中,有一个编码器为Master编码器,其他编码器为Slave编码器。
本发明中,编码器的工作模式可分为普通模式和增强模式;以编码器为标清编码器为例,标清编码器可以处理标清4CIF(704*576)、CIF(352*288)的图像;对于在编码能力内的图像(如标清编码器处理标清图像,标清图像的分辨率为200*180),则编码器可以只运行在普通模式,由各编码器独自完成对自身采集的图像的编码处理;对于在编码能力外的图像(如标清编码器处理高清720P(1280*720)、1080P(1920*1080)的图像),则编码器需要切换到增强模式,由多台编码器相互协助,共同完成对图像的编码处理。
进一步的,每个运行在增强模式的编码器为一个物理单元,每个物理单元具有唯一标识的单元成员编号;在多个物理单元之间可以根据单元成员编号自动选举出Master编码器,其余为Slave编码器;例如,选举单元成员编号最小的编码器为Master编码器,选举单元成员编号最大的编码器为Master编码器等;实际应用中,还可以指定某编码器为Master编码器。
需要注意的是,Master编码器和所有Slave编码器统称为逻辑单元,逻辑单元相当于一台具有高编码能力的编码器(如1个Master编码器和3个Slave编码器均支持4CIF时,则相当于具有4*4CIF的编码能力的编码器);此外,在逻辑单元内,只有Master编码器开启采集输入通道,输入的图像才会被处理;各Slaver编码器会关闭自身的采集输入通道,即输入的图像不会被处理,后续以只有Master编码器开启采集输入通道为例。
此外,为了实现Master编码器与Slaver编码器之间的信息传输,Master编码器与Slave编码器之间还需要存在数据共享通道。如图2所示的数字视频系统的结构图,Master编码器和各Slaver编码器中均包含有AD、FPGA、DSP,本发明中可以在各编码器的FPGA上开发2个接口,以模拟一条数据共享通道,该2个接口可以是以太网口类型,一个是上行接口,另一个是下行接口;各编码器之间通过该数据共享通道,彼此传输共享各自FPAG寄存器中的信息;当多台编码器需要相互协助,共同完成对高分辨率图像的编码处理时,则这条数据共享通道就会开启,反之,数据共享通道处于默认的关闭状态。
以图2为例,当Master编码器需要发送信息给Slaver编码器1时,则通过Master编码器与Slaver编码器1之间的数据共享通道将信息发送给Slaver编码器1;当Master编码器需要发送信息给Slaver编码器2时,则通过Master编码器与Slaver编码器1之间的数据共享通道将信息发送给Slaver编码器1,由Slaver编码器1通过自身与Slaver编码器2之间的数据共享通道将信息发送给Slaver编码器2。
进一步的,基于各编码器之间建立的数据共享通道,Master编码器需要利用数据共享通道收集各Slave编码器的编码能力,并记录Slave编码器的编码能力。其中,该编码能力包括:可支持的分辨率;例如,Master编码器记录Slaver编码器1的编码能力为支持分辨率704*576,记录Slaver编码器2的编码能力为支持分辨率352*288。
基于上述情况,如图3所示,本发明提供的协同处理方法包括以下步骤:
步骤301,Master编码器获得待处理图像。
步骤302,Master编码器确定待处理图像与编码能力之间的关系。
当待处理图像在Master编码器的编码能力内(即待处理图像的分辨率不大于Master编码器能够处理的分辨率)时,执行步骤303;例如,待处理图像的分辨率为300*200,Master编码器能够处理的分辨率为352*288时,则待处理图像在Master编码器的编码能力内。
当待处理图像不在Master编码器的编码能力内,且在Master编码器与Slave编码器整体的编码能力内(即待处理图像的分辨率大于Master编码器能够处理的分辨率,且不大于Master编码器能够处理的分辨率与Slave编码器能够处理的分辨率之和)时,执行步骤304;例如,待处理图像的分辨率为800*288,Master编码器能够处理的分辨率为352*288,Slaver编码器1能够处理的分辨率为352*288,Slaver编码器2能够处理的分辨率为352*288,则待处理图像不在Master编码器的编码能力内,且在Master编码器、Slaver编码器1与Slaver编码器2的整体的编码能力内。
步骤303,Master编码器对待处理图像进行编码处理,并将处理后的图像发送给解码器。
本步骤中,Master编码器自身对待处理图像进行编码处理,并不需要其他Slaver编码器的协助处理。
步骤304,Master编码器从Master编码器和Slave编码器中选择能够处理待处理图像的若干个编码器,并按照若干个编码器的编码能力对待处理图像进行分割。其中,该若干个编码器中可以有Master编码器(此时若干个编码器包含Master编码器和至少一个Slave编码器),也可以没有Master编码器(此时若干个编码器包含多个Slave编码器。
在对待处理图像进行分割的过程中,Master编码器确定若干个编码器中每个编码器需要处理的分割后的待处理图像的分辨率不大于该编码器能够处理的分辨率。例如,编码器能够处理的分辨率为300*200,则分割后的待处理图像的分辨率不大于300*200。
本发明中,由于若干个编码器中存在Slave编码器,因此在对待处理图像进行分割后,Master编码器需要通过数据共享通道将分割后的待处理图像发送给若干个编码器中的Slave编码器。
在将分割后的待处理图像发送给Slave编码器的过程中,Master编码器在分割后的待处理图像的首部设置开始标识和号段标识,并在分割后的待处理图像的尾部设置结束标识;号段标识用于标记分割后的待处理图像在待处理图像中的位置,开始标识用于标记分割后的待处理图像的开始位置,结束标识用于标记分割后的待处理图像的结束位置;之后,Master编码器将设置有开始标识、号段标识和结束标识的分割后的待处理图像发送给Slave编码器。
步骤305,Slave编码器对分割后的待处理图像进行编码处理,并将处理后的图像发送给解码器。需要注意的是,当若干个编码器中存在Master编码器时,该Master编码器还需要对分割后剩余的待处理图像进行编码处理,并将处理后的图像发送给解码器。
需要注意的是,Slave编码器可以通过开始标识和结束标识获知分割后的待处理图像的开始位置和结束位置,继而对分割后的待处理图像进行编码处理。而Master编码器可以直接对分割后剩余的待处理图像进行编码处理。
本发明中,在Slave编码器将处理后的图像发送给解码器时,该处理后的图像中携带分割后的待处理图像对应的号段标识;在Master编码器将处理后的图像发送给解码器时,该处理后的图像中携带分割后剩余的待处理图像对应的号段标识。因此,上述若干个编码器可以将携带有分割后的待处理图像对应的号段标识的处理后的图像发送给解码器。
步骤306,解码器接收来自编码器(即上述若干个编码器,可以为Slave编码器,或者为Slave编码器与Master编码器)的处理后的图像。
步骤307,解码器利用分割后的待处理图像对应的号段标识对若干个编码器的处理后的图像进行解码处理,得到待处理图像。
为了更加清楚的阐述本发明提供的技术方案,以下结合标清能力的编码器完成高清待处理图像的编码的过程进行进一步的说明。
(1)使用以太网线环型连接N台编码器的共享通道接口,并根据视频源接入采集的位置,配置各编码器的单元成员编号,使得视频源接入采集的编码器具有最大的单元成员编号;在各编码器使能增强模式后,各编码器之间进行选举,最终选择具有最大单元成员编号的编码器为Master编码器,即视频源接入的编码器为Master编码器。
(2)各编码器之间选举Master编码器时,同时共享彼此的编码能力。当角色确定后,Master编码器可以获知各Slave编码器的编码能力,并可以通过计算待处理图像的分辨率的大小,确定参与协同编码的编码器数量。
例如,Master编码器和各Slave编码器的编码能力为4CIF,待编码的高清图像(待处理图像)分辨率为720p,720p的分辨率大小为1280*720=921600、4CIF的分辨率大小为704*576=405504,因此需要3台具备4CIF能力的编码器相互协助,才能完成对720p的高清待处理图像的编码,以该3台编码器为Master编码器、Slaver编码器1和Slaver编码器2为例。
(3)待处理图像经A/D采样后的720p(921600像素)图像数据,以隔行扫描的输入方式,传输至Master编码器的FPAG寄存器;当FPAG寄存器的405504像素的图像数据填充完毕后,Master编码器在这些图像数据的首部打上一个(NumID=1、Begin)标记(即号段标识为NumID=1、开始标识为Begin),在尾部打上一个End标记(即结束标识),之后,Master编码器将405504像素图像数据通过Slaver编码器1透传给Slave编码器2进行编码处理。
本发明中,NumID用于标记随后的一段图像数据,是待处理图像的第几部分;各编码器在编码时,均会给每个媒体流数据包(携带图像数据),打上相应的NumID;之后,解码器就可以根据这个NumID标记,完成整幅待处理图像的拼接处理。此外,Begin和End标记一段图像数据(即405504像素图像数据)的开始与结束。
(4)随后第2部分的405504像素图像数据,传输至Master编码器的FPAG寄存器;当FPAG寄存器填充完毕,则Master编码器会在这些405504像素图像数据的首部打上一个(NumID=2、Begin)标记,尾部打上一个(End)标记后,之后,Master编码器将405504像素图像数据发送给Slaver编码器1进行编码处理。
(5)剩余110592(921600-2*405504)像素图像数据,传输至Master编码器的FPAG寄存器后,由Master编码器自身来完成这部分图像数据的编码处理,输出的处理后的图像数据中会携带NumID=3的标记。
(6)Master编码器、Slaver编码器1、Slave编码器2分别对分割后的图像进行编码处理,并将处理后的图像数据发送给解码器;Slave编码器2发送的图像数据中携带NumID=1的标记,Slave编码器1发送的图像数据中携带NumID=2的标记,Master编码器发送的图像数据中携带NumID=3的标记。
(7)Master编码器、Slaver编码器1、Slave编码器2发送的三部分图像数据(即媒体流),经过网络设备转发到解码端,由一台高分辨率的解码器,根据媒体流PayLoad中的帧序号以及NumID信息,可确定当前媒体流是属于哪一帧图像的哪一部分;对这些媒体流解码处理后,即可以完成整幅待处理图像的拼接还原,最终高清图像就可以呈现出来。
综上所述,本发明中,对于更高分辨率的画面,编码器之间建立共享通道,利用分割处理的方式,由多台编码器共同完成对高分辨率画面的编码处理,压缩编码后的媒体流经网络链路传输到解码器,再由解码器完成画面的解码呈现处理,从而可充分利用现有的视频设备,不仅缓解了资源浪费的问题,而且能提升系统后续升级的可维护性。
基于与上述方法同样的发明构思,本发明还提出了一种编码器,应用于包括解码器和多个编码器的系统中,所述多个编码器中有一个编码器为主Master编码器,其他编码器为从Slave编码器,所述Master编码器上记录有所述Slave编码器的编码能力,如图4所示,该编码器包括:接收模块11、处理模块12和发送模块13;
当编码器为Master编码器时,
所述接收模块11,用于获得待处理图像;
所述处理模块12,用于当所述待处理图像在Master编码器的编码能力内时,对所述待处理图像进行编码处理;
当所述待处理图像不在Master编码器的编码能力内,且在Master编码器与Slave编码器整体的编码能力内时,从Master编码器和Slave编码器中选择能够处理所述待处理图像的若干个编码器,并按照所述若干个编码器的编码能力对所述待处理图像进行分割;
所述发送模块13,用于当所述待处理图像在Master编码器的编码能力内时,将处理后的图像发送给所述解码器;
当编码器为Slave编码器时,
所述接收模块11,用于接收来自Master编码器的分割后的待处理图像;
所述处理模块12,用于对分割后的待处理图像进行编码处理;
所述发送模块13,用于将处理后的图像发送给所述解码器。
所述编码能力包括:分辨率;
所述待处理图像在Master编码器的编码能力内包括:所述待处理图像的分辨率不大于Master编码器能够处理的分辨率;
所述待处理图像不在Master编码器的编码能力内,且在Master编码器与Slave编码器整体的编码能力内,包括:所述待处理图像的分辨率大于Master编码器能够处理的分辨率,且不大于Master编码器能够处理的分辨率与Slave编码器能够处理的分辨率之和。
所述编码能力包括:分辨率;
当编码器为Master编码器时,
所述处理模块12,具体用于确定所述若干个编码器中每个编码器需要处理的分割后的待处理图像的分辨率不大于该编码器能够处理的分辨率。
Master编码器与Slave编码器之间还存在数据共享通道,且所述若干个编码器中存在Slave编码器;
当编码器为Master编码器时,
所述发送模块13,还用于通过所述数据共享通道将分割后的待处理图像发送给所述若干个编码器中的Slave编码器。
当编码器为Master编码器时,
所述处理模块12,还用于利用所述数据共享通道收集所述Slave编码器的编码能力,并记录所述Slave编码器的编码能力。
当编码器为Master编码器时,
所述处理模块12,还用于在所述分割后的待处理图像的首部设置开始标识和号段标识,并在所述分割后的待处理图像的尾部设置结束标识;
所述号段标识用于标记所述分割后的待处理图像在所述待处理图像中的位置;所述开始标识用于标记所述分割后的待处理图像的开始位置;所述结束标识用于标记所述分割后的待处理图像的结束位置;
所述发送模块13,具体用于将设置有开始标识、号段标识和结束标识的分割后的待处理图像发送给所述若干个编码器中的Slave编码器。
所述若干个编码器中还存在Master编码器;
当编码器为Master编码器时,
所述处理模块12,还用于当所述待处理图像不在Master编码器的编码能力内,且在Master编码器与Slave编码器整体的编码能力内时,对分割后的待处理图像进行编码处理;
所述发送模块13,还用于将处理后的图像发送给所述解码器。
当编码器为Master编码器时,
所述发送模块13在将处理后的图像发送给所述解码器时,该处理后的图像中携带所述分割后剩余的待处理图像对应的号段标识;
当编码器为Slave编码器时,所述发送模块13在将处理后的图像发送给所述解码器时,该处理后的图像中携带所述分割后的待处理图像对应的号段标识。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。