一种基于FIFO的视频编码数据传输方法技术

技术编号:9964237 阅读:152 留言:0更新日期:2014-04-24 14:51
本发明专利技术公开了一种基于FIFO的视频编码数据传输方法,包括步骤:S1.对FIFO缓冲区的多个参数进行初始化设置;S2.根据设置的参数以动态方式将视频编码数据写入FIFO缓冲区,所述动态方式表示写单位内存为可变长度状态,用来对应存储写入的视频帧,所述内存可变长度状态表示内存的操作是根据每次写单元与写入的视频帧大小多少分配的;S3.将写入FIFO缓冲区的视频编码数据读出。本发明专利技术具有实时性高、可靠性高和资源消耗低的特点。

【技术实现步骤摘要】
一种基于FIFO的视频编码数据传输方法
本专利技术涉及一种网络摄像机的视频编码数据的缓冲处理技术,特别涉及一种基于FIFO的视频编码数据传输方法。
技术介绍
现在主流的网络摄像机的视频编码数据传输技术主要有两种,一是单任务多等待的顺序缓冲技术,如图1所示,意思是网络摄像机每编码出一帧数据后会通知网络发送模块,然后网络摄像机的编码模块进入等待状态,直到网络发送模块把刚刚一帧数据发送完之后再进行下一次的编码。二是多任务多拷贝的顺序缓冲技术,如图2所示,意思是网络摄像机在编码模块默认分配多个固定的内存大少,每次编译完一帧数据就把数据拷贝到默认分配好的固定内存中。网络发送模块又在固定内存的拷贝出编码后的一帧数据用来发送。然而现有技术一单任务多等待的顺序缓冲技术的实时性差。现有技术二多任务多拷贝的顺序缓冲技术缺点资源消耗大、设计复杂、可靠性低、灵活性差。
技术实现思路
为了克服现有技术的不足,本专利技术提供了一种基于FIFO的视频编码数据传输方法,它可以解决实时性差、资源消耗大、可靠性低和灵活性差等问题。本专利技术采用的技术方案如下:一种基于FIFO的视频编码数据传输方法,包括步骤:S1.对FIFO缓冲区的多个参数进行初始化设置;S2.根据设置的参数以动态方式将视频编码数据写入FIFO缓冲区,所述动态方式表示写单元内存为可变长度状态,用来对应存储写入的视频帧,所述内存可变长度状态表示内存的操作是根据每次写单元与写入的视频帧大小分配的;S3.将写入FIFO缓冲区的视频编码数据读出。其中,所述参数包括:FIFO开始地址、FIFO总长度、写单元、读单元数组和一次写入最大长度;其中一次写入最大长度表示FIFO缓冲区的保护区。本专利技术可以理解到:FIFO允许多个用户读取,但在FIFO缓冲区的参数初始化设置时已经确定了最大的用户数即读单元的数组大小,而读单元就是把写单元一个接一个的读出,一个读单元代表网络发送模块的一个请求视频流的客户端。针对步骤S2提到的本专利技术存储视频编码数据的写单元内存是可变的,这是因为每个时间段传输过来的视频帧大小都可能不一样,为了不浪费内存空间,内存的操作是以写单元为边界的,根据每次写单元与写入的视频帧大小多少分配的。可以很好理解到,一般操作系统对内存寻址都是按字节进行。也就是内存地址0和内存地址1可以存放2个字节的数据。例如,在内存地址0的位置写入了4个字节的数据,那么要读取刚刚写入的数据就需要从地址0开始读取到地址3结束。从上面的例子可以想象成在内存地址0的位置写入一个新的“写单元”。假设“写单元”的信息用了1个字节后面3个字节是视频帧数据,那么这个“写单元”的开始边界是内存地址0,结束边界是内存地址3,这些信息也是保存在1字节的“写单元”的信息里面。同理可以再把一个大小为10个字节的“写单元”从内存地址4的位置写入,由于要写入的“写单元”大小为10个字节,因此这个写单元的开始边界为内存地址4,结束边界为内存地址13。因为“写单元”带有边界,所以在读取“写单元”的时候可以根据边界把“写单元”按不同的长度且内存地址是连续的读取出来。所述视频编码数据的写入具体是视频编码模块每完成一帧视频数据编码则把它往FIFO缓冲区的一个写单元写入,然后下一帧编码完成再写入下一个写单元,依此进行下去。所述一次写入过程包括了数据溢出处理操作,具体如下:写入开始,判断视频编码数据是否已经写入到保护区标识,如果是,则新的写单元覆盖到FIFO缓冲区的第一个写单元,把数据是否已经写入到保护区标识改为否,然后结束FIFO缓冲区的一次写入;如果否,则新的写单元直接添加到FIFO缓冲区的最后一个写单元后面,然后结束FIFO缓冲区的一次写入。本专利技术相比其他现有技术增加了一个数据溢出处理操作,FIFO总长度是初始化设置确定的,当不断有写单元带着视频帧数据写入时,内存会不断被分配走,当出现新的写单元进入保护区时会对进入保护区的数据进行溢出处理,到保护区的数据会搬移到缓冲区的最开始,也就是覆盖最早的数据,而由于视频数据要求实时性,所以写入的数据一般很快就会被送到网络上,被覆盖的最早数据不会影响整个传输过程。当出现新的写单元覆盖到FIFO缓冲区的最先写入的写单元时,下一个新的写单元写入就添加到覆盖后的写单元后面。所述步骤S3具体是在已确定的读单元数组基础上,每个读单元对写单元内数据的读出。也就是说,确定的读单元数组代表确定的请求视频流的客户端有多少,然后每个客户端通过网络发送模块接收多个写单元数据,也即一进多出。所述读出过程具体如下:S11:读取开始,查找FIFO缓冲区的读单元数组中是否存在可用的读单元,如果是则分配一个读单元,如果否则结束读取;S12:查找FIFO缓冲区的写单元中是否存在有效的写单元,如果是,则从FIFO缓冲区的有效写单元中找出对当前读单元来说最早写入的写单元;如果否,则等待一段时间;S13:返回写单元的一帧视频编码数据到网络发送模块并重复步骤S12。其中步骤S13表达的是通过读单元读取写单元内的视频编码数据然后把它传送给网络发送模块然后继续重复步骤S12。结合步骤S3,在接收到视频编码数据后,网络发送模块就会把它发送给请求视频的客户端。本专利技术与现有技术相比具有的有益效果:1.实时性高。在本专利技术中写和读都是在不同的线程中进行有很高的独立性,不存在等待写读的机制因此实时性比较高;2.可靠性高。在本专利技术中有数据的溢出处理,因此可以确保本设计的可靠性;3.资源消耗低。由于在中提案中的数据传递都是在预分配好的内存中进行,没有多余的内存拷贝过程。附图说明图1现有技术一的工作原理图;图2现有技术二的工作原理图;图3本专利技术FIFO初始化流程图;图4本专利技术FIFO的内容逻辑结构图;图5本专利技术写入过程流程图;图6本专利技术读出过程流程图。具体实施方式下面结合附图对本专利技术作进一步说明。如图3所示,对FIFO也即FIFO缓冲区的五个参数进行初始化设置,所述参数具体包括:FIFO开始地址、FIFO总长度、写单元、读单元数组和一次写入最大长度。如图4所示,从图中可以看到,每个读单元对写单元内的数据进行读取,其中一次写入最大长度属于FIFO缓冲区的保护区。如图5所示,视频编码模块每完成一帧视频数据编码往FIFO缓冲区写入,所述一次写入过程具体如下:写入开始,判断视频编码数据是否已经写入到保护区标识,如果是,则新的写单元覆盖到FIFO缓冲区的最先写入的写单元,把数据是否已经写入到保护区标识改为否,然后结束FIFO缓冲区的一次写入;如果否,则新的写单元直接添加到FIFO缓冲区的最后一个写单元后面,然后结束FIFO缓冲区的一次写入。另外,当出现新的写单元覆盖到FIFO缓冲区的最先写入的写单元时,下一个新的写单元写入就添加到它后面。如图6所示,当请求视频流的客户端通过网络发送模块向FIFO请求读取写单元内视频编码数据,所述读出过程具体如下:S11:读取开始,查找FIFO缓冲区的读单元数组中是否存在可用的读单元,如果是则分配一个读单元,如果否则结束读取;S12:查找FIFO缓冲区的写单元中是否存在有效的写单元,如果是,则从FIFO缓冲区的有效写单元中找出对当前读单元来说最早写入的写单元;如果否,则等待一段时间;S13:返回写单元的一帧视频编码数据到网络发送模块并重复步本文档来自技高网...
一种基于FIFO的视频编码数据传输方法

【技术保护点】
一种基于FIFO的视频编码数据传输方法,其特征在于,包括步骤:S1.对FIFO缓冲区的多个参数进行初始化设置;S2.根据设置的参数以动态方式将视频编码数据写入FIFO缓冲区,所述动态方式表示写单位内存为可变长度状态,用来对应存储写入的视频帧,所述内存可变长度状态表示内存的操作是根据每次写单元与写入的视频帧大小分配的;           S3.将写入FIFO缓冲区的视频编码数据读出。

【技术特征摘要】
1.一种基于FIFO的视频编码数据传输方法,其特征在于,包括步骤:S1.对FIFO缓冲区的多个参数进行初始化设置,所述参数包括:FIFO开始地址、FIFO总长度、写单元、读单元数组和一次写入最大长度;其中一次写入最大长度属于FIFO缓冲区的保护区;S2.根据设置的参数以动态方式将视频编码数据写入FIFO缓冲区,所述动态方式表示写单元内存为可变长度状态,用来对应存储写入的视频帧,所述内存可变长度状态表示内存的操作是根据每次写单元与写入的视频帧大小分配的;S3.将写入FIFO缓冲区的视频编码数据读出;其中,所述一次写入过程包括了数据溢出处理操作,具体如下:写入开始,判断视频编码数据是否已经写入到保护区标识,如果是,则新的写单元覆盖到FIFO缓冲区的最先写入的写单元,把数据是否已经写入到保护区标识改为否,然后结束FIFO缓冲区的一次写入;如果否,则新的写单元直接添加到FIFO缓冲区的最后一个写单元后面,然后结束FIFO缓冲区的一次写入。2.根据权利要求1所述的一种基于FIFO的视频编码数据传输方法,其特征在于,所述视频...

【专利技术属性】
技术研发人员:余永华俞翔吴仲谋陈利军
申请(专利权)人:高新兴科技集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1