一种帧图像组合提高视频传输速度的方法_2

文档序号:9619135阅读:来源:国知局
以在合并BMP图像数据时,先读取需要显示在图像Big下方的原图像数据,数据存放到图像Big数据区的靠前位置;最后读取需要显示在图像Big上方的原图像数据,数据存放到新图像数据区的靠后位置。因此这个步骤中从后往前、从左至右写入每行的数据。
[0080]b.H264编码:利用H264对图像Big进行编码。步骤b是通过FFmpeg实现的,步骤如下:
[0081]bl.新建流数据;
[0082]b2.根据文件名的后缀确定编码ID ;
[0083]b3.根据编码ID查找编码器;
[0084]b4.初始化回调;因为设计封装FFmpeg编码解码功能时,是将其封装为函数库形式;为了使用方便,预留给使用者两个回调接口:一个是初始化回调;另一个是视频数据写入回调;这里的初始化回调主要是为了设置一些视频所需要的基本参数:比如图像的宽度和高度,每秒播放图像帧数,图像格式等。
[0085]b5.打开编码器;
[0086]b6.分配帧:这是FFmpeg的调用流程;需要把每幅图像封装到“帧”格式里,然后才能进行编码;帧中还需要分配相应大小的空间来存放图像数据;所以这里需要根据BMP文件数据的大小来分配,所以这个步骤需要调用步骤a3中M2和P*lBmpheight的值,以分配合理的空间。
[0087]b7.分配帧空间;
[0088]b8.写入文件头;
[0089]b9.循环执行编码;
[0090]bl0.设置编码帧延时;为了防止视频中的帧没有完全编码完就结束编码过程,所以设置编码延时帧,以防丢失部分图像数据。
[0091]bll.写入文件尾。
[0092]步骤bl前需要初始化编解码库并分配输出环境。
[0093]c.数据传输:传输步骤b编码后的数据。这里的数据传输可以网络或其他通信方式进行传输;这个步骤可以根据需要选择终端,即可能是电脑与电脑之间传输;也可能是硬件设备与硬件设备之间;或者是硬件设备与电脑之间。
[0094]d.H264解码:利用H264对步骤c传来的数据进行解码,解码得到图像A。步骤d是通过FFmpeg实现的,步骤如下:
[0095]dl.查找流信息:打开(avformat_open_input)视频文件后,使用FFmpeg函数avformat_find_stream_infο自动查找所有流信息;
[0096]d2.指定视频流:利用FFmpeg函数av_f ind_best_stream的功能;
[0097]d3.打开解码库;
[0098]d4.初始化回调;
[0099]d5.分配帧;
[0100]d6.计算此视频流开始显示首帧的时间:根据流的time_base和start_time)计算此视频流开始显示首帧的时间
[0101]d7.循环解码;
[0102]d8.设置解码帧延时:为了防止视频中的帧没有完全解码完就结束解码过程,所以设置解码延时帧,以防丢失部分视频图像数据。
[0103]e.图像拆分:对步骤d得到的图像Big进行拆分。步骤e包括以下步骤:
[0104]el.读取步骤a3中P、Q、N和lBmpheight的值;根据P和Q可以确定图像Big拆分后的N张图像的排列方式。将图像Big第一行的数据M2拆分成Q份,则分别写入第P排的Q张图中,当第P排的每张图都写满lBmpheight时,表示这一排图像的数据写入结束;则接着继续将数据写入倒数二排的Q张图中。
[0105]当PXQ大于N时(如N = 5,P = 2,Q = 3,这样能才足够存放5张小图),最终会生成PXQ张图像,但我们只取前N张图像作为有效图,其余的丢弃,其余图像实际为无效的填充数据。
[0106]e2.图像数据拆分:如图4、5所示,由于BMP图像是由下往上显示的,所以在拆分BMP图像数据时,先读取图像Big上方第一行的图像数据,数据存放到需要显示的数据区的靠后位置;最后读取图像Big下方最后一行的图像数据,数据存放到需要显示图像的数据区的靠前位置。因此这个步骤中从前往后,从左至右读取图像Big每行的数据。
[0107]实施例2
[0108]本实施例与实施例1的区别在于:N = 4,P = Q = 2,假设4张图像分别为a, b, c, d,合并后的图像为Big。
[0109]如图2所示,4张图像以2*2方式排列,以这样方式排列的图像合并后数据饱满,图像的编码解码效率高,传输出来的图像能最大限度的还原原始图像,图像质量高。
[0110]如图3所示,对4张图像进行数据合并,图像Big第一行的数据,显示在BMP图像的最下面一行;最后一行的数据,显示在BMP图像的最上面一行;所以这个步骤先写入c的最后一行数据,再写入d的最后一行数据,然后写入c的倒数二行数据,d的倒数二行数据……最后写入a的第一行数据,b的第一行数据。
[0111]如图4所示,对Big进行数据拆分时,Big第一行的数据,显示在拆分后的BMP图像的最下面一行;最后一行的数据,显示在拆分后的BMP图像的最上面一行。所以这个步骤先读取图像Big中c的第一行数据,再读取d的第一行数据,然后读取c的第二行数据,d第二行数据……直到从c、d的数据读取完,然后再读取a的第一行数据,b的第一行数据,a的第二行数据,b的第二行数据……直到a、b的数据读取完。
[0112]以图4为例,图像拆分时数据的读取与写入的过程如下:因为图4中分解后的图像为2X2排列,所以这个步骤先读取图像Big中第一行数据,将这一行数据中的前半部分字节写入c的第一行,后半部分写入d的第一行;再读取Big第二行数据,前半部分写入c的第二行,后半部分写入d第二行……直到写满c和d为止,当c和d的高度等于lBmpheight时,说明c和d的数据写满,此时对c和d的数据写入结束;接着读取图像Big的最后一排数据,按前半部分和后半部分分别写入a和b,直到读取结束。
[0113]本方法可应用于小区监控、楼宇监控等场合,尤其适用于将核磁共振图像从扫描间传输到屏蔽墙外的操作间。
[0114]当然,本发明还可有其它多种实施方式,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【主权项】
1.一种帧图像组合提高视频传输速度的方法,其特征在于:包括以下步骤: a.图像合并:将N张宽度和高度分别相等的BMP图像合并为图像Big,所述图像Big为BMP图像; b.H264编码:利用H264对图像Big进行编码; c.数据传输:传输步骤b编码后的数据; d.H264解码:利用H264对步骤c传来的数据进行解码,解码得到图像A ; e.图像拆分:对步骤d得到的图像Big进行拆分。2.如权利要求1所述的帧图像组合提高视频传输速度的方法,其特征在于:所述步骤a包括以下步骤: al.选取N张宽度和高度分别相等的BGR24非压缩位图; a2.计算图像的字节数:按公式(1)计算步奏al中任意一张图像每行所占的字节数: Ml = ((lBmpWidth*usBitCount+31)>>5)〈〈2 (1) 公式(1)中Ml:为任意一张图像每行所占的字节数,?5:表示向右移5位,?2:表示向左移2位,usBitCount = 24,lBmpffidth为al所选取图像的宽度;其中每像素由3Bytes表不,并且每彳丁以4Bytes对齐; a3.计算图像Big的字节数:N张图像以P*Q排列,按公式(2)计算图像Big每行所占的字节数: M2 = M1*Q (2) 公式(2)中M2为图像Big每行所占的字节数;M2不大于H264所支持的最大宽度字节数;P*lBmpheight不大于H264支持的最大高度字节数,lBmpheight为al所选取图像的高度; a4.将步骤a3中的N张图像合并为图像Big。3.如权利要求2所述的帧图像组合提高视频传输速度的方法,其特征在于:所述步骤a4中,从后往前、从左至右写入每行的数据。4.如权利要求2所述的帧图像组合提高视频传输速度的方法,其特征在于:所述步骤b是通过FFmpeg实现的,步骤如下: bl.新建流数据; b2.根据文件名的后缀确定编码ID; b3.根据编码ID查找编码器; b4.初始化回调; b5.打开编码器; b6.分配帧:根据M2和P*lBmpheight来分配帧; b7.分配帧空间; b8.写入文件头; b9.循环执行编码; bl0.设置编码帧延时; bll.写入文件尾。5.如权利要求4所述的帧图像组合提高视频传输速度的方法,其特征在于:步骤bl前需要初始化编解码库并分配输出环境。6.如权利要求4所述的帧图像组合提高视频传输速度的方法,其特征在于:所述步骤d是通过FFmpeg实现的,步骤如下: dl.查找流信息:打开视频文件后,使用FFmpeg函数自动查找所有流信息; d2.指定视频流: d3.打开解码库; d4.初始化回调; d5.分配帧; d6.计算此视频流开始显示首帧的时间; d7.循环解码; d8.设置解码帧延时。7.如权利要求2所述的帧图像组合提高视频传输速度的方法,其特征在于:所述步骤e包括以下步骤: el.读取步骤a3中P、Q、N和lBmpheight的值; e2.从前往后,从左至右读取图像Big每行的数据。8.如权利要求2所述的帧图像组合提高视频传输速度的方法,其特征在于:所述N=.2n或者N=,n为大于0的自然数。9.如权利要求8所述的帧图像组合提高视频传输速度的方法,其特征在于:所述N=.4,P = Q = 2
【专利摘要】本发明涉及一种帧图像组合提高视频传输速度的方法,包括以下步骤:a.图像合并:将N张宽度和高度分别相等的帧图像(这里是BMP图像)合并为图像Big,所述图像Big为BMP图像;b.H264编码:利用H264对图像Big进行编码;c.数据传输:传输步骤b编码后的数据;d.H264解码:利用H264对步骤c传来的数据进行解码,解码得到图像A;e.图像拆分:对步骤d得到的图像Big进行拆分。本方法把N张较小图片合并成一张较大图片,以相同帧频传输,将H264编解码与图像合并、分解、传输结合起来,在固定时间内的传送速率是以前的N倍,使传输出来图象最大限度的还原原始图像,提供更加迅速的图象传输速度。
【IPC分类】H04N19/172, H04N19/184, H04N19/61
【公开号】CN105376585
【申请号】CN201510741155
【发明人】龚启勇, 幸浩洋, 孙怀强, 黄晓琦
【申请人】四川大学华西医院
【公开日】2016年3月2日
【申请日】2015年11月4日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1