发明名称 一种处理TCP视频数据流的方法
摘要 本发明提供了一种处理TCP视频数据流的方法,该方法适用于流媒体视频服务器软件设计,支持MJEGP、MPEG4、H.264等主流视频编码方式。方法包括创建连续缓冲区和环形处理节点队列、视频数据接收处理和识别、数据读取和写入并行互斥。该方法一次性从网络驱动层中拷贝视频数据到连续缓冲中,通过处理节点索引连续缓冲中的视频帧,并提供数据读写互斥,增强视频处理的实时性和稳定性,提高了系统的运行效率。
申请公布号 CN102630007B 申请公布日期 2015.07.22
申请号 CN201210094893.1 申请日期 2012.03.31
申请人 中船重工(武汉)凌久高科有限公司 发明人 丁又华;陆德波;刘媛;胡甜;梅雪芬;李长春
分类号 H04N21/4335(2011.01)I;H04N19/70(2014.01)I;H04N7/18(2006.01)I 主分类号 H04N21/4335(2011.01)I
代理机构 武汉河山金堂专利事务所(普通合伙) 42212 代理人 胡清堂
主权项 一种处理TCP视频数据流的方法,其特征在于:其步骤如下:创建1)数据接收区设置;2)数据接收;3)数据识别;4)数据读取;所述的数据接收区设置包括:申请一段连续缓冲区和一个环形的处理节点队列,连续缓冲区为系统初始时申请的大容量连续内存空间,用于顺序存放从网络驱动层拷贝出来的TCP视频数据流;处理节点队列中每一个节点包括以下属性:节点序号、读写状态、数据指针、写入偏移、帧类型和帧长度;其中数据指针指向连续缓冲区中的某一视频帧起始位置,写入偏移的基址为该起始位置,连续缓冲区的大小必须大于队列节点数量*码率/帧率;所述的数据接收包括:从处理节点队列中获取可写入节点,默认从序号为0的节点开始;如果节点状态为“读取中”,则将该节点状态修改为“已跨越”,尝试下一个节点直至成功,将节点状态置为“写入中”,根据接收到的TCP视频数据长度,覆盖上一轮的时间最早的处理节点,将TCP视频流数据拷贝到节点数据指针指向地址,对拷贝的数据进行识别;所述的数据识别包括:以识别码为基准字对刚写入的数据执行查询,识别码长度为N,则查询起始地址应为写入偏移‑N‑1;查询成功后,设置本节点的读写状态为“已准备”,写入偏移清零,更新帧类型和帧长度,如果识别出来的帧是基准帧,记录该节点为最前基准节点,获取下一个节点,将其数据指针值为查询成功的识别码起始处,从该处向后偏移N个字节开始再次执行数据识别;所述的数据读取包括:从处理节点队列中获取可读取节点,默认从序号为0的节点开始,如果节点读写状态为“写入中”,则读取模块挂起一段时间后重新尝试,设置该节点的读写状态为“读取中”,从该节点的数据指针指向的位置开始读取数据,读取长度为帧长度,读取完成后,判断读写状态,如果为“被跨越”,将本节点状态设置为“已准备”,获取最前基准节点作为下一个节点;否则,将该节点状态设置为“已准备”,根据序列号获取下个节点。
地址 430074 湖北省武汉市洪山区珞喻路718号