发明名称 基于TCP的无压缩高清图像实时传输方法
摘要 本发明属于光电产品应用技术领域,具体涉及一种基于TCP的无压缩高清图像实时传输方法。该方法基于TCP协议,在发送端多个端口分别建立线程,每个线程发送不同的图像帧,即第1个线程发送图像的帧数为第1、1+N、……,第二个线程发送图像的帧数为第2、2+N、……,第N个线程发送图像的帧数为第N、2N、……,在接收端对应的端口分别创建接收线程接收图像数据;所述发送端采用环形队列的数据结构。根据本发明进行发送端和接收端程序设计,建立文件记录发送端的发送帧数和接收端的接收帧数;通过分析:接收端的频率与相机标准频率基本持平,接收端和发送端的图像基本保持同步;在运行1.5个小时之后,接收端和发送端的时间差保持在100ms之内,同时满足处理要求。
申请公布号 CN103686067B 申请公布日期 2017.01.25
申请号 CN201210362172.4 申请日期 2012.09.25
申请人 中国航天科工集团第二研究院二〇七所 发明人 贾雨生;王楠;郭瑞熊
分类号 H04N7/18(2006.01)I;H04N21/6437(2011.01)I 主分类号 H04N7/18(2006.01)I
代理机构 核工业专利中心 11007 代理人 高尚梅
主权项 一种基于TCP的无压缩高清图像实时传输方法,其特征在于:该方法基于TCP协议,在发送端多个端口分别建立线程,每个线程发送不同的图像帧,即第1个线程发送图像的帧数为第1、1+N、……,第二个线程发送图像的帧数为第2、2+N、……,第N个线程发送图像的帧数为第N、2N、……,在接收端对应的端口分别创建接收线程接收图像数据;所述发送端采用环形队列的数据结构;该方法包括如下步骤:发送端作为TCP连接的客户端,接收端作为TCP连接的服务器端;发送端的方法如下:第一步:发送端线程的建立及图像数据存储(1)在发送端建立N个循环队列,每个循环队列有L块空间;(2)根据到来的图像帧号M对N取模的结果,记为QIdx,选择序号为QIdx(1≤QIdx≤N)的循环队列;(3)在序号为QIdx的循环队列中查看存储指示指针当前指向的空间块及下一个空间块,根据下一个空间块的使用情况,判断到来的图像如何进行存储:如果下一个空间块中的图像数据尚未发送完毕,则为到来的图像在当前空间块开辟内存,并将其追加到当前空间块的尾部;如果下一个空间块为空,则将存储指示指针指向下一个空间块,即下一个空间块成为“当前”空间块,在“当前”空间块为到来的图像开辟内存空间,并将图像存储到“当前”空间块;(4)在第m(1≤m≤N)帧图像到来时,创建第m个发送线程;(5)重复步骤(2)~(4);第二步:图像数据发送第k(1≤k≤N)个线程发送数据的过程为:(1)第k个发送线程在约定的端口上向第k个接收线程发送连接请求,建立连接成功后转(2);(2)在第k个循环队列中,根据发送指示指针指向的空间块,发送空间块中的数据,循环检测是否发送完毕;(3)未发送完毕,转(2);(4)发送完毕,释放当前空间块中占用的内存空间,并将发送指示指针指向下一个空间块,转(2);接收端的方法设计如下:(1)建立N个接收线程;(2)第k(1≤k≤N)个接收线程在和发送端约定的端口,等待第k个发送线程的连接请求,建立连接成功后转(3);(3)接收线程监听数据的到来,如果有数据到来,则将其保存起来,并根据已接收的数据长度和当前接收数据的长度,进行判断;(4)如果已接收的数据长度加上当前接收数据的长度不足一帧图像的长度,则继续接收后续数据,转(3);否则转(5);(5)如果已接收的数据长度加上当前接收数据的长度等于一帧图像的长度,转(7);否则转(6);(6)如果已接收的数据长度加上当前接收数据的长度超过一帧图像的长度,则从当前接收的数据中截取部分数据,与已接收的数据共同组成一帧图像;剩余部分保存起来,转(7);(7)对接收到的图像进行处理,转(3)。
地址 100854 北京市海淀区永定路50号