发明内容
针对上述提到的现有技术中的高清视频传输时受到距离限制,实现成本高的缺点,本发明提供一种可实现多路高清视频远距离同步传输的高清矩阵,其对视频进行采集,将采集后的视频信号进行复用,然后通过独立的网口进行远距离传输,解决了上述问题。
本发明解决其技术问题采用的技术方案是:一种可实现多路高清视频远距离同步传输的高清矩阵,矩阵包括一块主控板,主控板上连接有一块以上的高清视频编解码板,电源模块给主控板和高清视频编解码板供电,视频采集时,一块以上的高清视频编解码板通过音视频采集接口采集音频数据或视频数据或音频和视频数据同时采集,并对其进行压缩编码,然后将压缩编码后的数据传输给主控板,主控板上设有独立的网络接口,主控板对其进行复用并重新打包后,通过独立的网络接口发出。
本发明解决其技术问题采用的技术方案进一步还包括:
所述的高清视频编解码板具有解码功能,解码时,主控板通过网络接口接收视频或音频或视频和音频一起的压缩流,主控板对接收的压缩流解复用后,分配给相应的高清视频编解码板,高清视频编解码板对压缩流进行对应的视频解码、音频解码,将视频信号通过显示接口进行显示,将音频信号送出播放。
所述的所有的高清视频编解码板对视频信号进行编码或解码时都是同步进行的,所有的高清视频编解码板之间通过一条同步脉冲线连接,其中任意一块高清视频编解码板按60Hz/s的频率发送同步脉冲,触发所有高清视频编解码板上的同步脉冲中断信号,所有的高清视频编解码板对中断脉冲进行脉冲中断计数,所有的高清视频编解码板通过初始化同步和编码同步或解码同步两个步骤实现编码或解码都是同步进行。
所述的初始化同步包括以下步骤:
a)主控板先发送一个广播消息,指示所有高清视频编解码板暂停中断信号处理;
b)各个高清视频编解码板上的处理模块收到步骤a中的广播消息以后,把中断脉冲计数器清零,并返回一个ok消息给主控板;
c)主控板在收到所有的高清视频编解码板的反馈消息以后,给所有高清视频编解码板发送一个重启中断信号处理的消息;
d)高清视频编解码板在接收到步骤c中的重启中断信号处理的消息以后,重新开始中断脉冲计数,初始化同步完成。
所述的编码同步包括下述步骤:
a、视频捕获处理模块,按预设的帧率,进行视频捕获;
b、在捕获到一帧视频数据以后,附加上当前的中断计数器的值,一起送给编码器;
c、编码器用该视频帧编码后输出的压缩帧,也同样附上该中断计数器的值,再送给主控板的文件写入模块;
d、文件写入模块对输入数据进行缓冲,按预定的帧率计算标准的输出时间戳,根据时间戳,取得对应中断计数的压缩视频帧数据,标记上输出时间戳,再写入文件,从而形成待发送的数据包。
所述的解码同步包括以下步骤:
a.主控板先预定一个起始时间缓冲偏移值,缓冲偏移值的大小为显示缓冲队列×每帧时长;
b.主控板的读取模块,按预定的帧率,读取所有流对应的下一帧数据,所有的流的数据帧的解码时间戳是相同的;
c.主控板在发送数据帧到相应的高清视频编解码板之前,给数据帧标识上一个显示时间戳;
d.高清视频编解码板接收到数据以后,对数据进行解码后把视频帧数据送往显示缓冲队列,并把显示时间戳换算成相应的同步脉冲中断计数值,为显示中断计数值;
e.每次同步中断触发的时候,比较当前脉冲中断计数和显示缓冲队列中最前端的视频帧的显示中断计数值的大小,大于或等于就显示该视频帧,并把该视频帧从显示缓冲队列中移除。
所述的高清视频编解码板进行脉冲中断计数时,每1秒钟进行一次圆整。
所述的视频帧捕获时,如果产生视频帧缺失,则用上一帧视频帧替代显示。
所述的一帧时长内出现两帧以上的视频帧,则查找队列里面连续两帧都有同一时间戳,而下一时间戳又没有对应的帧,则可以把队列里面靠后的一帧的时间戳修正为下一帧相应的时间戳。
本发明的有益效果是:本发明采用基于IP网络的方式实现高清视频的远距离传输,不仅可以保证高清视频信号的远距离传输,使其不受距离限制,同时可以保证视频信号的清晰度,保证播放效果,而且,其还是实现成本大幅下降,在技术上属于革命性的突破。本发明相比以前的技术,在价格和成本上有明显的优势,减少了高清信号的布线,只需要1条网线就可以实现高清信号的交换与远程传输,还可以通过远程来监视与记录高清信号的传输与交换状态,本发明支持高清传输和交换的数量更多更大,以前的矩阵最多支持64*64,基于该技术的方案,可以支持到512*512,甚至更大。
下面将结合附图和具体实施方式对本发明做进一步说明。
具体实施方式
本实施例为本发明优选实施方式,其他凡其原理和基本结构与本实施例相同或近似的,均在本发明保护范围之内。
请参看附图1和附图2,本发明主要包括一个主控板和若干块高清视频编解码板,本实施例中,给出的高清视频编解码板为12块,具体实施时,高清视频编解码板数量根据实际需要设定。高清视频编解码板与主控板相连接,向主控板传输高清音视频信号,本实施例中,高清视频编解码板与主控板之间通过网络接口进行内部交换,主控板将各个高清视频编解码板传输的音视频信息进行复用并重新打包后,通过一个独立的网络接口发出,当本发明作为接收端时,主控板通过网络接口接收到音视频信息,解复用后,分配给相应的高清视频编解码板,高清视频编解码板对压缩流进行对应的视频解码、音频解码,将视频信号通过显示接口进行显示,将音频信号送出播放。本实施例中,高清视频编解码板集成了视频编码和视频解码功能,每块高清视频编解码板需要通过主控板对其进行设置,将其设置成编码板还是解码板,从而实现对视频的编码或是解码功能。本发明中还在主控板上连接有存储装置,用于对采集到的音视频信息进行本地存储,以便于回放,本实施例中,存储装置采用两块SATA接口的硬盘。本发明中还设有电源模块,用于给系统中的其他模块供电。
当本发明用作音视频采集时,主控板将高清视频编解码板设置成编码板,各个高清视频编解码板通过音视频采集接口采集音频和视频数据,并对其进行压缩编码,然后将压缩编码后的数据通过内部网口(本实施例中的内部网口是指设置在背板上的网络接口,背板为一块独立设置在本发明内的电路板,背板所实现的作用类似于交换机,即每个高清视频编解码板和主控板分别连接在背板上的网络接口上,进行数据交互)传输给主控板,主控板对各路音视频信号进行复用并重新打包后,通过一个独立的网络接口发出。
当本发明用作音视频播放时,主控板将高清视频编解码板设置成解码板,主控板通过网络接口接收到音视频信息,解复用后,分配给相应的高清视频编解码板,高清视频编解码板对压缩流进行对应的视频解码、音频解码,将视频信号通过显示接口进行显示,将音频信号送出播放。
本发明中,在音视频信号采集时,各块高清视频编解码板同步进行,本实施例中,采用下述方法保证各块高清视频编解码板高精度同步:
硬件方面:通过一条同步脉冲线连接12块高清视频编解码板,由其中一块高清视频编解码板(本实施例中选用的是第一块)按60Hz/s的频率发送同步脉冲,触发所有高清视频编解码板上的同步脉冲中断信号。
保持各块高清视频编解码板采集音视频信号通同步的步骤包括下述几步:
1、通过设置同步脉冲信号中断的关闭、启动,对12路高清视频编解码板的中断计数器进行初始化同步,请参看附图3,此步骤包括下述几个小步骤:
a、主控板先发送一个广播消息,指示所有高清视频编解码板暂停中断信号处理;
b、各个高清视频编解码板上的处理模块收到步骤a中的广播消息以后,把中断脉冲计数器清零,并返回一个ok消息给主控板;
c、主控板在收到所有的高清视频编解码板的反馈消息以后,给所有高清视频编解码板发送一个重启中断信号处理的消息;
d、高清视频编解码板在接收到步骤c中的重启中断信号处理的消息以后,重新开始中断脉冲计数,至此,初始化同步完成,本阶段的最大误差为1次中断计数,即8.333ms。
初始化阶段,12块高清视频编解码板的中断信号计数会因为网络包延时可能有最大误差为一次中断计数的误差。因为是通过内部千兆交换网络的数据交互,所以所有的消息包会在1ms以内从主控板发送到编码板,一次中断的时间是1000/120ms,约为8.333ms,但因为触发中断的时间不可控,所以可能导致第一块编码板收到中断计数启动的消息,已经开始准备中断计数,而其他的编码板在1ms以后才收到中断计数启动的消息,在这1ms的时间差之间,恰好中断触发,这个时候编码板之间会有一次计数误差,但因为中断的时间周期是8.333ms,网络包误差最大应该在1ms以内,所以最多也就1次中断的计数误差。如果硬件上可以做到通过软件对同步脉冲进行开启/关闭,那么是可以消除以上的这一次中断计数误差。
2、音视频信号编码同步处理,请参看附图4,其包括下述步骤:
a、视频捕获处理模块,按预设的帧率,进行视频捕获;
b、在捕获到一帧视频数据以后,附加上当前的中断计数器的值,一起送给编码器;
c、编码器用该视频帧编码后输出的压缩帧,也同样附上该中断计数器的值,再送给主控板的文件写入(mux-write)模块;
d、文件写入模块对输入数据进行缓冲,按预定的帧率计算标准的输出时间戳,根据时间戳,取得对应中断计数的压缩视频帧数据,标记上输出时间戳,再写入文件,从而形成待发送的数据包。
以本发明的方法进行的多路编码文件录制,同步误差只可能发生在视频采集过程中,由采集模块内部的缓冲队列造成的误差,以及起始的一次中断计数器的误差。总体的同步误差是相当小的,在允许的范围之内。
3、本发明除了可以实现视频信息的同步采集、编码外,还可实现视频信息的同步解码,请参看附图5,解码时,初始化完成后,即进行下述步骤:
a、主控板先预定一个起始时间缓冲偏移值(本实施例中,预定起始时间缓冲偏移值,目的是为了消除因为网络数据传输的不同步,而造成的解码时间的不同步。预定起始时间缓冲偏移值后,只要保证数据帧从发出到进入显示缓冲队列的总体时间,是在缓冲偏移值以内,那么最后显示的时间一定会是相同的。),缓冲偏移值的大小为显示缓冲队列×每帧时长(比如显示缓冲队列的大小为3帧,显示的帧率为25帧/秒,则为3×1000/25=120毫秒);
b、主控板的读取(demux)模块,按预定的帧率,读取所有流(即本发明中数据包含的所有视频流和音频流,通常的视频文件中包含一路视频流和一路音频流,而本发明中则包含多路视频流和一路音频流)对应的下一帧数据,所有的流的数据帧的时间戳是相同的,本实施例中,将这个时间戳标识为解码时间戳;
c、主控板在发送数据帧到相应的高清视频编解码板之前,给数据帧标识上一个新的时间戳(此处的时间戳包括解码时间戳+起始时间缓冲偏移值),本实施例中,将此时间戳定义为显示时间戳;
d、高清视频编解码板接收到数据以后,对数据进行解码后把视频帧数据送往显示缓冲队列,并把显示时间戳换算成相应的同步脉冲中断计数值,本实施例中,将其定义为显示中断计数值;
e、每次同步中断触发的时候,比较当前脉冲中断计数和显示缓冲队列中最前端的视频帧的显示中断计数值的大小,大于或等于就显示该视频帧,并把该视频帧从显示缓冲队列中移除。
因为所有的流的对应的帧,时间戳是一致的(时间戳都是通过中断计数计算出来的),所有的解码板的中断计数最大误差为1,所以多路解码显示可以保证精度控制在1次中断计数以内。
本发明中还有下述进一步的技术方案对其他一些细节问题进行处理:
a.累计误差消除:每秒进行一次累计误差消除,避免因为除不尽的数值误差累计。方法是时间戳的计算,按预定帧率,每到1秒的分界点,进行一次圆整。假设每秒30帧编码,则每帧的时长为33.33ms,累积到分界点,即第30帧的时候,圆整为1000ms。中断计数固定为120次/S,也需要圆整,每120次,圆整为1秒,以消除累计误差。
b.对于缺帧问题处理:捕获的时候没有按照预定帧率,比如预设每秒25帧,实际却只得到了24帧,中间必然在某个帧时段是没有相应数据的,对于这种情况,在最终输出的文件里面,也是同样用缺帧来对应,具体表现就是可能12路数据中某个时刻,其中11路都有数据,而有一路是没有数据的,输出部分需要严格按照时间戳,对于这种没有数据的用上一帧数据替代显示即可。
c.对于不均衡的帧的问题处理:不均衡排列的帧,指的是在一帧的时长范围以内,出现了2帧甚至3帧的数据,比如说25帧/S的,完全均衡的帧采集,应该是每40ms会有一帧,按计数的方法从第一帧开始应该是0,40,80,120……这样的排列,但由于各种原因,可能导致在40-80ms以内这个时间段里面出现了2帧数据,而本该出现在80-120ms之间的帧却没有了。如果不进行任何处理,在最终解码播放的部分,会出现同一时段的两帧数据会被抛弃一帧。少量这种情况,不会对视频效果有严重影响,但如果这种情况比较多,还是会有一些效果上的影响,毕竟是有数据帧被抛弃了。写入文件之前的数据,是被放在一个缓冲队列里的,可以简单的对缓冲队列的数据判断,进行自动修正。比如查找队列里面连续两帧都有同一时间戳(中断计数并不一样),而下一时间戳又没有对应的帧,则可以把队列里面靠后的一帧的时间戳修正为下一帧相应的时间戳。
本发明采用基于IP网络的方式实现高清视频的远距离传输,不仅可以保证高清视频信号的远距离传输,使其不受距离限制,同时可以保证视频信号的清晰度,保证播放效果,而且,其还是实现成本大幅下降,在技术上属于革命性的突破。本发明相比以前的技术,在价格和成本上有明显的优势,减少了高清信号的布线,只需要1条网线就可以实现高清信号的交换与远程传输,还可以通过远程来监视与记录高清信号的传输与交换状态,本发明支持高清传输和交换的数量更多更大,以前的矩阵最多支持64*64,基于该技术的方案,可以支持到512*512,甚至更大。