CN103686067A - 基于tcp的无压缩高清图像实时传输方法 - Google Patents
基于tcp的无压缩高清图像实时传输方法 Download PDFInfo
- Publication number
- CN103686067A CN103686067A CN201210362172.4A CN201210362172A CN103686067A CN 103686067 A CN103686067 A CN 103686067A CN 201210362172 A CN201210362172 A CN 201210362172A CN 103686067 A CN103686067 A CN 103686067A
- Authority
- CN
- China
- Prior art keywords
- data
- thread
- image
- piece
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于光电产品应用技术领域,具体涉及一种基于TCP的无压缩高清图像实时传输方法。该方法基于TCP协议,在发送端多个端口分别建立线程,每个线程发送不同的图像帧,即第1个线程发送图像的帧数为第1、1+N、……,第二个线程发送图像的帧数为第2、2+N、……,第N个线程发送图像的帧数为第N、2N、……,在接收端对应的端口分别创建接收线程接收图像数据;所述发送端采用环形队列的数据结构。根据本发明进行发送端和接收端程序设计,建立文件记录发送端的发送帧数和接收端的接收帧数;通过分析:接收端的频率与相机标准频率基本持平,接收端和发送端的图像基本保持同步;在运行1.5个小时之后,接收端和发送端的时间差保持在100ms之内,同时满足处理要求。
Description
技术领域
本发明属于光电产品应用技术领域,具体涉及一种基于TCP的无压缩高清图像实时传输方法。
背景技术
数字高清监控的出现是安防IT化真正开始的一个标志。相对于传统的监控系统,数字高清监控的技术优势明显,是一种将计算机数字图像处理与传输技术应用到图像监控领域的高科技产品。高清意味着高带宽,而高清监控在传输这一环节往往受到带宽的影响。
目前,视频监控系统的传输技术主要有视频基带传输、微波传输、双绞线平衡传输、网络传输和光纤传输等传输方式。其中,视频基带传输距离非常短;微波传输则受环境影响比较大;双绞线平衡传输只适合1km以内的监控传输,且只能传输一路图像;网络传输易受网络带宽的影响;光纤传输则比较适合长距离传输,但目前大多数设备不直接支持光纤接口。
随着目前网络传输技术的迅猛发展,通信网络也逐渐朝1000M甚至10000M方向发展,解决大数据量的数据传输问题成为可能。目前利用网络进行大数据传输的研究都是针对压缩视频、音频传输进行的研究;对高清图像的传输也主要是基于压缩后再传输,在终端进行显示或解压缩后进行处理。但在某些场合,鉴于一些终端不具备解压缩处理的能力,需要对无压缩的高清图像实时传输,采用常规的传输方式无法解决。
发明内容
本发明的目的在于提供一种基于TCP的无压缩高清图像实时传输方法,以克服现有技术存在的上述不足。
为达到上述目的,本发明所采取的技术方案为:
一种基于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)。
本发明所取得的有益效果为:根据本发明所述基于TCP的无压缩高清图像实时传输方法,进行发送端和接收端的程序设计,采用加拿大ProsilicaGC1600CH相机(1620×122020Hz)进行验证;程序运行后,建立文件记录发送端的发送帧数和接收端的接收帧数;通过分析记录的数据,接收端的频率与相机标准频率基本持平,接收端和发送端的图像基本保持同步;在运行1.5个小时之后,接收端和发送端的时间差保持在100ms之内,在视觉上基本看不出来差别,同时满足处理要求。
附图说明
图1为本发明所述基于TCP的无压缩高清图像实时传输方法原理图;
图2为下一个空间块中的数据未发送完毕的情况示意图;
图3为下一个空间块为空的情况示意图;
图4为数字高清图像发送端和接收端连接示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
如图1所示,本发明所述基于TCP的无压缩高清图像实时传输方法原理为:
本方法采用基于可靠传输的TCP协议,在发送端多个端口分别建立线程,每个线程发送不同的图像帧,即第1个线程发送图像的帧数为第1、1+N、……,第二个线程发送图像的帧数为第2、2+N、……,第N个线程发送图像的帧数为第N、2N、……,在接收端对应的端口分别创建接收线程接收图像数据并处理;考虑到网络状态,以及发送端和接收端的能力,为了不丢失数据,发送端采用环形队列的数据结构,使来不及发送出去的数据保存起来而不被丢弃,又不至于开辟的空间无限扩张而导致系统崩溃。
基于上述原理,本发明所述基于TCP的无压缩高清图像实时传输方法包括如下步骤:
发送端作为TCP连接的客户端,接收端作为TCP连接的服务器端;发送端的方法如下:
第一步:发送端线程的建立及图像数据存储
(1)在发送端建立N个循环队列,每个循环队列有L块空间;
(2)根据到来的图像帧号M对N取模的结果,记为QIdx,选择序号为QIdx(1≤QIdx≤N)的循环队列;
(3)在序号为QIdx的循环队列中查看存储指示指针当前指向的空间块及下一个空间块,根据下一个空间块的使用情况,判断到来的图像如何进行存储:
如果下一个空间块中的图像数据尚未发送完毕,如图2所示,图中黑色的空间块表示数据尚未发送完毕的空间块,则为到来的图像在当前空间块开辟内存,并将其追加到当前空间块的尾部;
如果下一个空间块为空,如图3所示,图中带网格的黑色的空间块表示数据为空的空间块,则将存储指示指针指向下一个空间块,即下一个空间块成为“当前”空间块,在“当前”空间块为到来的图像开辟内存空间,并将图像存储到“当前”空间块;
(4)在第m(1≤m≤N)帧图像到来时,创建第m个发送线程;
(5)重复步骤(2)~(4);
第二步:图像数据发送
第k(1≤k≤N)个线程发送数据的过程为:
(1)第k个发送线程在约定的端口上向第k个接收线程发送连接请求,建立连接成功后转(2);
(3)在第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)。
在发送计算机上,根据上述方法设计客户端程序;在图像接收端上,根据上述方法设计服务器端程序,按照图4所示连接各设备,将各设备加电即可进行工作,各设备间通过千兆网线连接。
Claims (3)
1.一种基于TCP的无压缩高清图像实时传输方法,其特征在于:该方法基于TCP协议,在发送端多个端口分别建立线程,每个线程发送不同的图像帧,即第1个线程发送图像的帧数为第1、1+N、……,第二个线程发送图像的帧数为第2、2+N、……,第N个线程发送图像的帧数为第N、2N、……,在接收端对应的端口分别创建接收线程接收图像数据。
2.根据权利要求1所述的基于TCP的无压缩高清图像实时传输方法,其特征在于:所述发送端采用环形队列的数据结构。
3.根据权利要求1或2所述的基于TCP的无压缩高清图像实时传输方法,其特征在于:该方法包括如下步骤:
发送端作为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)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210362172.4A CN103686067B (zh) | 2012-09-25 | 2012-09-25 | 基于tcp的无压缩高清图像实时传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210362172.4A CN103686067B (zh) | 2012-09-25 | 2012-09-25 | 基于tcp的无压缩高清图像实时传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103686067A true CN103686067A (zh) | 2014-03-26 |
CN103686067B CN103686067B (zh) | 2017-01-25 |
Family
ID=50322186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210362172.4A Active CN103686067B (zh) | 2012-09-25 | 2012-09-25 | 基于tcp的无压缩高清图像实时传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103686067B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107071286A (zh) * | 2017-05-17 | 2017-08-18 | 上海杨思信息科技有限公司 | 转动平台上图像高速并行采集传输方法 |
CN109005381A (zh) * | 2018-06-06 | 2018-12-14 | 北京世纪东方通讯设备有限公司 | 基于铁路综合视频监控的流媒体服务分转发方法及装置 |
CN110417715A (zh) * | 2018-04-28 | 2019-11-05 | 北京视联动力国际信息技术有限公司 | 一种基于视联网的组帧方法和装置 |
CN111031260A (zh) * | 2019-12-25 | 2020-04-17 | 普世(南京)智能科技有限公司 | 一种基于环形无锁队列的高速影像单向传输系统方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101554332A (zh) * | 2008-04-10 | 2009-10-14 | 深圳迈瑞生物医疗电子股份有限公司 | 一种超声图像系统及超声图像传输方法 |
CN101282265B (zh) * | 2008-04-18 | 2010-09-15 | 西安交通大学 | 一种基于无线传感器网络节点的视觉传感器驱动方法 |
CN101668192B (zh) * | 2008-09-04 | 2013-05-01 | 新奥特(北京)视频技术有限公司 | 一种基于c/s模式实时传输大数据量图像的方法 |
CN101753439A (zh) * | 2009-12-18 | 2010-06-23 | 深圳市融创天下科技发展有限公司 | 一种流媒体分发传输方法 |
-
2012
- 2012-09-25 CN CN201210362172.4A patent/CN103686067B/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107071286A (zh) * | 2017-05-17 | 2017-08-18 | 上海杨思信息科技有限公司 | 转动平台上图像高速并行采集传输方法 |
CN110417715A (zh) * | 2018-04-28 | 2019-11-05 | 北京视联动力国际信息技术有限公司 | 一种基于视联网的组帧方法和装置 |
CN109005381A (zh) * | 2018-06-06 | 2018-12-14 | 北京世纪东方通讯设备有限公司 | 基于铁路综合视频监控的流媒体服务分转发方法及装置 |
CN111031260A (zh) * | 2019-12-25 | 2020-04-17 | 普世(南京)智能科技有限公司 | 一种基于环形无锁队列的高速影像单向传输系统方法及系统 |
CN111031260B (zh) * | 2019-12-25 | 2024-05-28 | 普世(南京)智能科技有限公司 | 一种基于环形无锁队列的高速影像单向传输系统方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103686067B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220394316A1 (en) | Message sending method and device, readable medium and electronic device | |
CN103297668A (zh) | 全景视频图像摄录系统及方法 | |
CN202634545U (zh) | 全景视频图像摄录系统 | |
CN109089029B (zh) | 一种基于FPGA的Gige Vision接口图像传输系统与方法 | |
CN103686067A (zh) | 基于tcp的无压缩高清图像实时传输方法 | |
CN104572574A (zh) | 基于千兆以太网视觉协议的以太网控制器ip核及方法 | |
CN102497534B (zh) | 分布式网络全高清视频矩阵系统 | |
CN107508828B (zh) | 一种超远程数据交互系统及方法 | |
CN102223406B (zh) | 音频信息网络数字化实时传输系统及方法 | |
CN102546542A (zh) | 电子系统及其嵌入式设备和中转设备 | |
CN102917212A (zh) | 一种基于rtp和rtsp的3g无线视频监控实现方法及系统 | |
CN102625074B (zh) | Hd-sdi摄像机传输智能分析数据的方法 | |
CN110570614B (zh) | 一种视频监控系统及智能相机 | |
CN103475936B (zh) | 一种数字电视接收终端的远程监控方法 | |
CN110417875A (zh) | 一种云服务器之间的对接方法、系统、设备及存储介质 | |
CN111212285A (zh) | 硬件视频编码系统和硬件视频编码系统的控制方法 | |
CN102131116B (zh) | 一种数字电视epg数据接收和解析方法 | |
US10504482B2 (en) | Smart small form-factor pluggable (SFP) transceiver | |
CN106027137A (zh) | 多星兼容的卫星遥感地面接收处理系统及其方法 | |
CN105530467A (zh) | 基于rs485的视频监控数据终端 | |
CN202551185U (zh) | 光传输相机和图像光传输系统 | |
US9743037B2 (en) | Method for transmitting device indicator data in network-based AV system | |
CN204537365U (zh) | 一种智能安防监控系统 | |
CN115277595B (zh) | 数据发送方法及相关装置 | |
US11632417B2 (en) | IoT gateway with configurable data transmission mode |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |