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

文档序号:9619135阅读:456来源:国知局
一种帧图像组合提高视频传输速度的方法
【技术领域】
[0001]本发明涉及图像通信领域,尤其涉及一种帧图像组合提高视频传输速度的方法。
【背景技术】
[0002]1.帧图像和BMP
[0003]帧图像,这里是指视频流中每一帧的图像。由于帧图像是视频中的概念,在形成视频流之前这里是BMP图像。视频流帧被提取之后也是BMP图像。
[0004]BMP(全称Bitmap)是位图图片,位图图片是用“像素”的单位存贮图像信息,这些“像素”就是一些整齐排列的彩色(或黑白)点,如果这些点被慢慢放大,就会看到一个个的“像素”中添充着自己的颜色,这些“像素”整齐地排列起来,就成为了一幅BMP图像。。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。
[0005]2.高清摄像机
[0006]高清摄像机可以高质量、高清晰影像,数字化的高速高清视频数据,导致标清时代传输介质和传输设备在高清时代将产生重要变化,甚至不再适用。对于视频监控应用,这种变化甚至可以说是巨大的。高速数字信号,很大程度上不能采用标清模拟图像信号传输设备及组网,高清摄像机往往在DSP图像信号处理阶段,也完成图像压缩,比如MPEG4和H.264压缩。未经压缩的1080P高清数据可达lGbps以上。H.264算法图像压缩后,数据流量可达到8Mbps之多。
[0007]高清摄像机的组成:1.摄像机CCD或CMOS成像器件,完成光学图像转换为电学信号,输出电子图像信号;2.AFE,模拟前端,用于CCD成像时,将CCD图像信号数字化,并产生CCD控制时序。而对于CMOS型成像器件,可直接输出数字信号,故不需要AFE模拟前端;3.CPU为整个高清摄像机核心器件,其主要完成图像信号处理(ImageSignalProcessor)和图像信号编解码(编解码为MPEG4、H.264标准图像数据等)。总体说,CPU除图像处理和编码功能外,还要完成高清摄像机系统控制及计算,充作整个系统的中央处理器;4.存储接口:存储主要是指存储卡/硬盘等数据存储;5.信号输出接口。
[0008]3.H264
[0009]H.264是在MPEG-4技术的基础之上建立起来的,其编解码流程主要包括5个部分:帧间和帧内预测(Estimat1n)、变换(Transform)和反变换、量化(Quantizat1n)和反量化、环路滤波(Loop Filter)、熵编码(Entropy Coding)。
[0010]Η.264标准的主要目标是:与其它现有的视频编码标准相比,在相同的带宽下提供更加优秀的图象质量。通过该标准,在同等图象质量下的压缩效率比以前的标准(MPEG2)提尚了 2倍左右。
[0011]Η.264可以提供11个等级、7个类别的子协议格式(算法),其中等级定义是对外部环境进行限定,例如带宽需求、内存需求、网络性能等等。等级越高,带宽要求就越高,视频质量也越高。类别定义则是针对特定应用,定义编码器所使用的特性子集,并规范不同应用环境中的编码器复杂程度。
[0012]4.FFmpeg
[0013]FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
[0014]FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括 Windows、Mac OS X 等。
[0015]基于高清摄像机的医学图像采集过程中,在传输高清摄像机拍摄的图片时,目前一般是把图片一张一张地传输出来,这种传输方式的传送速率较低。

【发明内容】

[0016]本发明旨在提供一种帧图像组合提高视频传输速度的图像的传输方法,在保证图像质量的同时可提高图像传输速率。
[0017]为达到上述目的,本发明采用的技术方案如下:
[0018]—种帧图像组合提高视频传输速度的方法,包括以下步骤:
[0019]a.图像合并:将N张宽度和高度分别相等的BMP图像合并为图像Big,所述图像Big为BMP图像;
[0020]b.H264编码:利用H264对图像Big进行编码;
[0021]c.数据传输:传输步骤b编码后的数据;
[0022]d.H264解码:利用H264对步骤c传来的数据进行解码,解码得到图像A ;
[0023]e.图像拆分:对步骤d得到的图像Big进行拆分。
[0024]优选的,所述步骤a包括以下步骤:
[0025]al.选取N张宽度和高度分别相等的BGR24非压缩位图;
[0026]a2.计算图像的字节数:按公式⑴计算步奏al中任意一张图像每行所占的字节数:
[0027]Ml = ((lBmpWidth*usBitCount+31)>>5)〈〈2 (1)
[0028]公式(1)中Ml:为任意一张图像每行所占的字节数,》5:表示向右移5位,〈〈2:表示向左移2位,usBitCount = 24,lBmpWidth为al所选取图像的宽度;其中每像素由3Bytes表不,并且每彳丁以4Bytes对齐;
[0029]a3.计算图像Big的字节数:N张图像以P*Q排列,按公式(2)计算图像Big每行所占的字节数:
[0030]M2 = M1*Q (2)
[0031]公式(2)中M2为图像Big每行所占的字节数;M2不大于H264所支持的最大宽度字节数;P*lBmpheight不大于H264支持的最大高度字节数,lBmpheight为al所选取图像的高度;
[0032]a4.将步骤a3中的N张图像合并为图像Big。
[0033]优选的,所述步骤a4中,从后往前、从左至右写入每行的数据。
[0034]优选的,所述步骤b是通过FFmpeg实现的,步骤如下:
[0035]bl.新建流数据;
[0036]b2.根据文件名的后缀确定编码ID ;
[0037]b3.根据编码ID查找编码器;
[0038]b4.初始化回调;
[0039]b5.打开编码器;
[0040]b6.分配帧:根据M2和P*lBmpheight来分配帧;
[0041]b7.分配帧空间;
[0042]b8.写入文件头;
[0043]b9.循环执行编码;
[0044]bl0.设置编码帧延时;
[0045]bll.写入文件尾。
[0046]进一步的,步骤bl前需要初始化编解码库并分配输出环境。
[0047]进一步的,所述步骤d是通过FFmpeg实现的,步骤如下:
[0048]dl.查找流信息:打开视频文件后,使用FFmpeg函数自动查找所有流信息;
[0049]d2.指定视频流:
[0050]d3.打开解码库;
[0051]d4.初始化回调;
[0052]d5.分配帧;
[0053]d6.计算此视频流开始显示首帧的时间;
[0054]d7.循环解码;
[0055]d8.设置解码帧延时。
[0056]进一步的,所述步骤e包括以下步骤:
[0057]el.读取步骤 a3 中 P、Q、N 和 lBmpheight 的值;
[0058]e2.从前往后,从左至右读取图像Big每行的数据:
[0059]进一步的,所述N = 2n或者N =,η为大于0的自然数。
[0060]优选的,所述N = 4,P = Q = 2。
[0061]本发明具有以下有益效果:
[0062]对于一些视频编码器而言,能够提供的帧频是固定的,但其提供的每帧图像尺寸较大,并没有被充分利用。本方法把N张较小图片合并成一张较大图片,以相同帧频传输,将H264编解码与图像合并、分解、传输结合起来,在固定时间内的传送速率是以前的N倍,使传输出来图象最大限度的还原原始图像,提供更加迅速的图象传输速度。
【附图说明】
[0063]图1是本发明的流程图;
[0064]图2是BMP图像合并示意图;
[0065]图3是BMP数据合并示意图;
[0066]图4是BMP数据拆分示意图;
[0067]图5是BMP图像拆分示意图。
【具体实施方式】
[0068]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明作进一步详细说明。
[0069]实施例1
[0070]如图1所示,本发明公开的帧图像组合提高视频传输速度的方法,包括以下步骤:
[0071]a.图像合并:将N张宽度和高度分别相等的帧图像(这里是BMP图像)合并为图像Big,图像Big为BMP图像。步骤a包括以下步骤:
[0072]al.选取N张宽度和高度分别相等的BGR24非压缩位图;
[0073]a2.计算图像的字节数:按公式⑴计算步奏al中任意一张图像每行所占的字节数:
[0074]Ml = ((lBmpffidth^usBitCount+31) >>5) <<2 (1)公式(1)中 Ml:为任意一张图像每行所占的字节数,?5:表示向右移5位,?2:表示向左移2位,usBitCount = 24,lBmpWidth为al所选取图像的宽度;其中每像素由3Bytes表示,并且每行以4Bytes对齐。使用移位运算能够加快计算机的计算速度。
[0075]a3.计算图像Big的字节数:N张图像以P*Q排列,按公式(2)计算图像Big每行所占的字节数:
[0076]M2 = M1*Q (2)
[0077]公式⑵中M2为图像Big每行所占的字节数;M2不大于H264所支持的最大宽度字节数;P*lBmpheight不大于H264支持的最大高度字节数,lBmpheight为al所选取图像的高度;
[0078]P*Q = N时图像Big是填充满的,即饱满的;当P*Q>N时,图像Big有部分区域为填充数据,即不饱满,当不饱满时,可能会造成编码解码效率适当降低,所以优选N = 2n或者N =,n为大于0的自然数。
[0079]a4.将步骤a3中的N张图像合并为图像Big:如图2、3所示,由于BMP图像是由下往上显示的,所
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1