一种基于查表的视频传输系统及方法与流程

文档序号:15221932发布日期:2018-08-21 17:34阅读:193来源:国知局

本发明属于视频传输技术领域,尤其涉及一种基于查表的视频传输系统及方法。



背景技术:

视频传输的核心是视频编码技术。由于现在生活水平的提高,人们开始注重生活,对视频的质量要求逐步提高,为了满足用户需求,设备制造商研究和生产高清晰度和高分辨率的视频设备,从而产生庞大的视频数据,占用大量带宽,对视频传输提出了挑战。为了在传输视频流时减少使用带宽,需要对视频数据进行编码。

视频编码的依据是视频帧内和帧间都存在一定的冗余信息,可以根据视频的这个特点对视频流进行编码,减少传输带宽,提高压缩比。而且人眼也存在视觉冗余,根据人眼的特性比如对亮度和色度的敏感度不同,适量引入误差,人眼也无法识别,可以进一步减少数据带宽。

mpeg-4和h.264是当前主流的视频编码方式。h.264对视频流进行帧内或帧间预测编码,再经过变换编码,从时域变换到频域,并去除数据的高频部分,最后经过熵编码,得到最终视频编码结果。其中预测编码和变换编码都是有损编码,对数据解码后不能完全得到原始的视频流。

mpeg-4定义的是一种框架而不是具体的算法,支持多种多媒体的应用,可根据不同的应用需求配置解码器,并且编码系统也是开放的,可随时加入新的算法模块。但是由于系统设计过于复杂,使得mpeg-4难以完全实现并且兼容。而且mpeg-4的编码方式也是有损编码,会损失一部分视频信息。



技术实现要素:

本发明公开的一种基于查表的视频传输系统及方法,要解决的问题是基于霍夫曼编码实现视频的实时传输,在接收端解码恢复原始的视频流;基于霍夫曼码表实现对视频帧内的编码,减少传输带宽,并利用流水线技术使所述的视频传输方法和系统具有如下优点:①很好地恢复原始的视频流;②实现视频流的实时传输;③实现方法简单。

本发明目的是通过下述技术方案实现的。

本发明公开的一种基于查表的视频传输系统,包括发送端和接收端。

发送端包括视频采集模块、发送端解帧模块、发送端sdram存储模块、发送端计算模块、编码模块、帧重构模块和发送模块。视频采集模块用于采集视频流,将采集到的数据发送至发送端解帧模块;发送端解帧模块从视频流原始的视频编码中得到帧图像信息,将得到的帧图像存储在sdram存储模块中,通过发送端计算模块计算基于基准像素值的偏移量,将计算后的偏移量和基准像素值继续存储在sdram中;读取sdram中的数据发送至编码模块,对数据进行编码处理,将得到的编码数据经过帧重构模块,根据传输接口协议将数据封装起来,经过发送模块传输。

接收端包括接收模块、接收端解帧模块、解码模块、接收端sdram存储模块、接收端计算模块。接收模块将接收到的数据发送至接收端解帧模块,解帧模块将接收到的数据根据接口传输协议解帧得到帧图像编码数据,将编码数据发送到解码模块,对数据进行解码处理,存储在接收端sdram中,读取接收端sdram中的数据去接收端计算模块进行加法操作,恢复原始的视频流。

本发明还公开的基于所述一种基于查表的视频传输系统实现的一种基于查表的视频传输方法,包括如下步骤:

步骤一:在实现视频传输之前先得到霍夫曼码表。

步骤1.1:读取图像,解析图像信息,获取r、g、b三个通道图像,根据公式(1)将r、g、b通道图像转换成y、cb、cr三个通道图像。

步骤1.2:对步骤1.1获取的y、cb、cr三个通道图像分别进行m×m分块处理。

步骤1.3:对步骤1.2分块后的每一块子图像保证每一块子图像中心基准像素不变,以图像中心像素点为基准,计算周围m2-1个像素点的像素偏移量pi。相邻偏移量合并,如式(2)所示。

其中,n根据用户需求选择。若n=1,则得到完全无损的霍夫曼编码。

用计算后像素点的偏移量替换原始图像对应像素点的像素值,即生成偏移量替换后的更新图像。

步骤1.4:遍历整幅图像除中心基准像素点以外的所有像素点,概率统计整幅图像除中心基准像素点以外的所有像素点的偏移量,得到偏移量的频数,并存储在数组中。

步骤1.5:重复步骤1.1到步骤1.4所述操作,直到对q幅不同类型图像处理结束。得到q幅图像的偏移量的概率。

步骤1.6:根据1.5得到的q幅图像除中心基准像素点以外的所有像素点的偏移量的概率特性,建立霍夫曼二叉树,得到除中心基准像素点以外的所有像素点的偏移量对应的霍夫曼码,并将对应的霍夫曼码存入到发送端和接收端的文件中,因为霍夫曼编码是不定长编码,但是存储数据时需要定长,所以在存储过程中记录实际码长,并补零,生成y、cb、cr三个通道的霍夫曼码表,所述三个霍夫曼码表适合所有视频帧图像,即在实现视频传输之前先得到霍夫曼码表。

步骤二:发送端视频采集模块采集原始的视频流,并将采集到的视频流传送到发送端解帧模块,得到y、cb、cr三个通道的m行帧图像数据。

步骤三:将发送端sdram分成两个区。

步骤四:将步骤二得到的y、cb、cr三个通道的m行帧图像数据,存储在发送端sdram第一个区中。

步骤五:读取发送端sdram第一个区中的y、cb、cr三个通道的m行数据,进行m×m分块处理,在发送端计算模块对分块处理后的每一块子图像计算基于中间基准像素值的偏移量,相邻偏移量合并,处理完成后将中间基准像素值和计算得到的偏移量重新存储在发送端sdram的第一个区中。

步骤六:对第一个块进行编码,先从发送端sdram读取中心基准像素值,放在发送缓冲区里,再依次读取第一块中偏移量,进行查表得到偏移量对应的霍夫曼编码以及编码的长度,因为得到的编码是经过补零操作的,所以根据得到的编码长度移位得到偏移量的不定长编码,并存储在发送缓冲区中,发送缓冲区存满d位便发送到帧重构模块。

步骤七:对y、cb、cr三个通道m行的所有块进行步骤五所述的编码。在对发送端sdram的第一区进行处理时,将发送端解帧模块得到的图像的第2个y、cb、cr三个通道的m行数据存储在第二区,实现流水线操作。第一区操作完成后将新的数据存入第一区开始对第二区进行操作。如此重复,直至对视频流处理结束。

步骤八:帧重构模块接收发送缓冲区传送的数据,根据传输接口协议封装起来,通过发送模块进行传输。

步骤九:在接收端对接收模块接收到的数据在接收端解帧模块进行解帧操作。

步骤十:将步骤九得到的解帧以后的数据传送到解码模块,解码模块当计数器为0时将数据直接存入sdram中,当计数器不为零时,将数据存入接收缓冲区中,计数器计到m2-1时清零从零开始继续计数。接收缓冲区积累到定长s位,便去进行查表处理,得到偏移量值和偏移量对应的霍夫曼编码的长度,将得到的偏移量值存入sdram。并根据得到的霍夫曼编码的实际长度l,将l位从接收缓冲器中移除。

步骤十一:将存入sdram的数据去接收端计算模块基于中间基准像素值做加法运算,得到像素点的原始像素值,在接收端恢复原始的视频流,即基于霍夫曼编码实现视频的实时传输。

有益效果:

1、本发明公开的一种基于查表的视频传输系统及方法,基于霍夫曼编码对视频流进行视频编码,可以根据用户需求进行有损编码或者无损编码,灵活性强,无损编码能够完全恢复出原始的视频流,有损编码失去较少的视频信息。

2、本发明公开的一种基于查表的视频传输系统及方法,在视频编码过程中使用流水线技术,能够实现视频流的实时传输。

3、本发明公开的一种基于查表的视频传输系统及方法,基于查表和反查表实现视频传输,方法简单。

4、本发明公开的一种基于查表的视频传输系统及方法,视频采集模块采集到的如果是原始视频流,可以直接传输给发送端sdram存储模块,而不用经过发送端解帧模块,这种视频传输方法适用多种场合,有利于推广。

附图说明

图1是本发明发送端系统框图;

图2是本发明接收端系统框图;

图3是本发明视频传输方法的流程图;

图4是本发明获得霍夫曼码表的流程图;

图5是本发明步骤七所述流水线操作示意图;

图6是本实施例的发送端y通道部分霍夫曼码表;

图7是本实施例的接收端y通道部分霍夫曼码表。

具体实施方式

为了更好的说明本发明的目的和优点,下面结合附图和实例对发明内容做进一步说明。

实施例1:

为了验证方法的可行性,选择1000幅分辨率为1024×1024未经过压缩tiff格式图像统计得到霍夫曼码表,r、g、b每通道的位深为10bit。视频采集模块采集12g-sdi协议标准的视频流。

本实施例公开的一种基于查表的视频传输系统,包括发送端和接收端。发送端系统框图如图1所示,接收端系统框图如图2所示。

发送端包括视频采集模块、发送端解帧模块、发送端sdram存储模块、发送端计算模块、编码模块、帧重构模块和发送模块。视频采集模块用来采集视频流,将采集到的12g-sdi协议标准封装的视频数据发送至发送端解帧模块;发送端解帧模块将12g-sdi协议标准的时间参考信号和行消隐去掉,得到帧图像信息。将得到的帧图像存储在sdram存储模块中,通过发送端计算模块计算基于基准像素值的偏移量,将计算后的偏移量和基准像素值继续存储在sdram中;读取sdram中的数据发送至编码模块,对数据进行编码处理,将得到的编码数据经过帧重构模块,根据12g-sdi传输协议标准将数据封装起来,经过发送模块通过75ω同轴电缆传输。

接收端包括接收模块、接收端解帧模块、解码模块、接收端sdram存储模块、接收端计算模块。接收模块将接收到的数据发送至接收端解帧模块,接收端解帧模块将接收到的数据根据12g-sdi传输协议标准解帧得到帧图像编码数据,将编码数据发送到解码模块,对数据进行解码处理,存储在接收端sdram中,读取接收端sdram中的数据去接收端计算模块进行加法操作,恢复原始的视频流。

如图3所示,本实施例还公开的基于所述一种基于查表的视频传输系统实现的一种基于查表的视频传输方法,包括如下步骤:

步骤一:如图4所示,在实现视频传输之前先获得霍夫曼码表。

步骤1.1:读取图像,解析图像信息,获取r、g、b三个通道图像,根据公式(1)将r、g、b通道图像转换成y、cb、cr三个通道图像。

步骤1.2:对步骤1.1获取的y、cb、cr三个通道图像分别进行3×3分块处理。

步骤1.3:对步骤1.2分块后的每一块子图像保证每一块子图像中心基准像素不变,以图像中心像素点为基准,计算周围m2-1=8个像素点的像素偏移量pi。相邻偏移量合并,如式(2)所示。

其中,n根据用户需求选择。若n=1,则得到完全无损的霍夫曼编码。这里n=3。

用计算后像素点的偏移量替换原始图像对应像素点的像素值,即生成偏移量替换后的更新图像。

步骤1.4:遍历整幅图像除中心基准像素点以外的所有像素点,概率统计整幅图像除中心基准像素点以外的所有像素点的偏移量,得到偏移量的频数,并存储在数组中。

步骤1.5:重复步骤1.1到步骤1.4所述操作,直到对q=1000幅不同类型图像处理结束。得到q=1000幅图像的偏移量的概率。

步骤1.6:根据1.5得到的q=1000幅图像除中心基准像素点以外的所有像素点的偏移量的概率特性,建立霍夫曼二叉树,得到除中心基准像素点以外的所有像素点的偏移量对应的霍夫曼码,并将对应的霍夫曼码存入到发送端和接收端的文件中,因为霍夫曼编码是不定长编码,但是存储数据时需要定长,所以在存储过程中记录实际码长,并补零,生成y、cb、cr三个通道的霍夫曼码表,所述三个霍夫曼码表适合所有视频帧图像,即在实现视频传输之前先得到霍夫曼码表。

步骤二:发送端视频采集模块采集12g-sdi协议标准视频流,并将采集到的视频流发送到发送端解帧模块,得到y、cb、cr三个通道的m=3行帧图像数据。

步骤三:将发送端sdram分成两个区。

步骤四:将步骤二得到的y、cb、cr三个通道的m=3行帧图像数据,存储在发送端sdram第一个区中。

步骤五:读取发送端sdram第一个区中的y、cb、cr三个通道的m=3行数据,进行3×3分块处理,在发送端计算模块对分块处理后的每一块子图像计算基于中间基准像素值的偏移量,相邻偏移量合并,处理完成后将中间基准像素值和计算得到的偏移量重新存储在发送端sdram的第一个区中。

步骤六:对第一个块进行编码,先从发送端sdram读取中心基准像素值,放在发送缓冲区里,再依次读取第一块中偏移量,进行查表得到偏移量对应的霍夫曼编码以及编码的长度,因为得到的编码是经过补零操作的,所以根据得到的编码长度移位得到偏移量的不定长编码,并存储在发送缓冲区中,发送缓冲区存满d=10位便发送到帧重构模块。

步骤七:对y、cb、cr三个通道m=3行的所有块进行步骤五所述的编码。在对发送端sdram的第一区进行处理时,将发送端解帧模块得到的图像的第2个y、cb、cr三个通道的m=3行数据存储在第二区,实现如图5所示流水线操作。第一区操作完成后将新的数据存入第一区开始对第二区进行操作。如此重复,直至对视频流处理结束。

步骤八:帧重构模块接收发送缓冲区传送的数据,根据12g-sdi传输接口协议封装起来,通过与发送模块bnc连接器相连的75ω的同轴电缆传输。

步骤九:在接收端对接收模块接收到的数据在接收端解帧模块进行解帧操作。

步骤十:将步骤九得到的解帧以后的数据传送到解码模块,解码模块当计数器为0时将数据直接存入sdram中,当计数器不为零时,将数据存入接收缓冲区中,计数器计到m2-1=8时清零从零开始继续计数。接收缓冲区积累到定长s=27位,便去进行查表处理,得到偏移量值和偏移量对应的霍夫曼编码的长度,将得到的偏移量值存入sdram。并根据得到的霍夫曼编码的实际长度l,将l位从接收缓冲器中移除。

步骤十一:将存入sdram的数据去接收端计算模块基于中间基准像素值做加法运算,得到像素点的原始像素值,在接收端恢复原始的视频流,即基于霍夫曼编码实现视频的实时传输。

以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1