CN111385523B - 一种数据接收方法、图像处理设备和汽车 - Google Patents

一种数据接收方法、图像处理设备和汽车 Download PDF

Info

Publication number
CN111385523B
CN111385523B CN201811615181.3A CN201811615181A CN111385523B CN 111385523 B CN111385523 B CN 111385523B CN 201811615181 A CN201811615181 A CN 201811615181A CN 111385523 B CN111385523 B CN 111385523B
Authority
CN
China
Prior art keywords
data
node
image frame
state
data packet
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.)
Active
Application number
CN201811615181.3A
Other languages
English (en)
Other versions
CN111385523A (zh
Inventor
闫海英
高月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tusimple Technology Co Ltd
Original Assignee
Beijing Tusimple Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Tusimple Technology Co Ltd filed Critical Beijing Tusimple Technology Co Ltd
Priority to CN201811615181.3A priority Critical patent/CN111385523B/zh
Publication of CN111385523A publication Critical patent/CN111385523A/zh
Application granted granted Critical
Publication of CN111385523B publication Critical patent/CN111385523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种数据接收方法、图像处理设备和汽车。方法包括:将从数据源接收到的每个图像帧的每个数据分段对应的数据包填充在预先建立的链表的节点中;判断图像帧的数据包是否有丢包;若图像帧的数据包有丢包,则生成丢包信息发送给数据源,并等待重新接收数据;若图像帧的数据包没有丢包,则上传图像帧的每个数据分段对应的数据包,并清空节点。本申请提供的数据接收方法可有效提升数据的接收、存储和重传效率,有利于实时、高速率和完整地接收数据源采集的图像数据。

Description

一种数据接收方法、图像处理设备和汽车
技术领域
本申请涉及数据采集技术领域,特别涉及一种数据接收方法、图像处理设备和汽车。
背景技术
在局域网环境下进行图像采集和机器视觉分析的应用中,一般通过以太网交换机将多台采集图像的摄像机和一个图像处理设备互联起来。这类应用中,多路摄像机同时采集图像数据,并将采集到的数据通过网络环境实时并发地发送给图像处理设备,并由图像处理设备做进一步的视觉分析工作。
发明内容
这类应用一般要求实时、高速率和完整地将摄像机采集的图像的数据传输给图像处理设备,然而其摄像机采集的图像分辨率较高,局域网的传输能力却较弱,导致数据传输经常出现滞后、丢包等现象,以至于后续的视觉分析工作不是基于正确、完整的图像数据进行算法处理,得到错误的视觉分析结果。
为了解决上述问题,本申请提供一种克服上述问题或者至少部分地解决上述问题的一种数据接收方法、图像处理设备和汽车。
第一方面,本申请实施例提供一种数据接收方法,包括:
将从数据源接收到的每个图像帧的每个数据分段对应的数据包填充在预先建立的链表的节点中;
判断所述图像帧的数据包是否有丢包;
若所述图像帧的数据包有丢包,则生成丢包信息发送给所述数据源,并等待重新接收数据;
若所述图像帧的数据包没有丢包,则上传所述图像帧的每个数据分段对应的数据包,并清空所述节点。
第二方面,本申请实施例提供一种图像处理设备,包括:图像采集处理器、视觉分析处理器、存储器及存储于所述存储器上并可在所述图像采集处理器上运行的计算机程序;
所述图像采集处理器执行所述程序时实现如上所述的数据接收方法;
所述视觉分析处理器接收所述图像采集处理器上传的每个图像帧的每个数据分段对应的数据包。
第三方面,本申请实施例提供一种汽车,包括:上述图像处理设备和至少一路数据源;所述图像处理设备接收各路所述数据源发送的数据包。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机指令,当该指令被处理器执行时实现上述数据接收方法。
本申请实施例提供的上述技术方案将每个图像帧的所有数据包缓存在链表的节点中,便于管理缓存的数据;接收并上传完每个图像帧的数据后清空其存放的节点,有利于资源的有效利用,减轻缓存负荷。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请,并不构成对本申请的限制。在附图中:
图1为本申请实施例提供的数据接收方法的流程图;
图2为本申请实施例提供的节点的状态变迁流程图;
图3为本申请实施例提供的数据接收方法的具体实现流程图;
图4为本申请实施例提供的图像处理设备的框架示意图;
图5为本申请实施例提供的汽车的网络连接示意图;
图6为本申请实施例提供的汽车的具体实现结构示意图;
图7为本申请实施例提供的汽车的框架示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
发明概述
在局域网环境下进行图像采集和机器视觉分析的应用中,一般通过以太网交换机将多台采集图像的摄像机和一个图像处理设备互联起来。这类应用中,多路摄像机同时采集图像数据,并将采集到的数据通过网络环境实时并发地发送给图像处理设备,并由图像处理设备做进一步的视觉分析工作。
这类应用一般要求实时、高速率和完整地将摄像机采集的图像的数据传输给图像处理设备,然而其摄像机采集的图像分辨率较高,局域网的传输能力却较弱,导致数据传输经常出现滞后、丢包等现象,以至于后续的视觉分析工作不是基于正确、完整的图像数据进行算法处理,得到错误的视觉分析结果。
为了解决上述问题,本申请提供一种数据接收方法:将从数据源接收到的每个图像帧的每个数据分段对应的数据包填充在预先建立的链表的节点中;并判断每个图像帧的数据包是否有丢包;若有丢包,则生成丢包信息发送给数据源,并等待重新接收数据;若没有丢包,则上传数据包并清空节点。该方法是通过高效地接收、存储和重传数据包来实现实时、高速率和完整地将数据源采集的图像数据发送给图像处理设备。
在介绍了本申请的基本原理之后,下面具体介绍本申请的各种非限制性实施方式。
应用场景总览
自动驾驶汽车的图像采集过程一般是在一个局域网的环境下,通过以太网交换机将多台摄像机和一个图像处理设备互联起来。多路摄像机同时采集图像数据,并将采集到的数据通过网络环境实时并发地发送给图像处理设备,并由图像处理设备做进一步的视觉分析工作。
自动驾驶汽车具有行驶环境复杂多变、行驶安全要求极高等特点,这些特点要求其摄像机必须采集高分辨率的图像,其图像处理设备必须有极高的视觉分析处理能力,并且其摄像机采集的图像传输至图像处理设备的过程需要实时、高速率和低丢包率。
如图6和图7所示,自动驾驶汽车的图像处理设备61与摄像机62通过以外网交换机63连接,图像处理设备61包括图像采集处理器611和视觉分析处理器612。其中,多路摄像机62同时采集图像数据,图像采集处理器611负责接收摄像机62采集到的图像数据,视觉分析处理器612对图像采集处理器611接收的图像进行视觉分析处理。
图像采集处理器611接收摄像机62采集的图像数据的过程采用本申请实施例提供的数据接收方法。
需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
示例性方法
实施例一
本申请实施例一提供一种数据接收方法,其流程如图1所示,包括如下步骤:
步骤S11:从数据源接收每个图像帧的每个数据分段对应的数据包,直至确定所述图像帧发送结束。
因为一个图像帧的数据往往比较大,通过一个消息来发送比较困难,因此数据源可以按照设定的规则将一个图像帧的数据分割为若干个数据分段,并为每个数据分段编号,最终每个数据分段形成一个对应的数据包,一次将一个数据包发送给接收端。
在一些实施例中,一个数据包,可以包括:所属的图像帧的ID号、所属的图像帧的数据包总个数、数据包的ID号和数据包对应的图像数据。
上述确定图像帧发送结束,可以是收到图像帧数据结束的信息。
步骤S12:判断图像帧的数据包是否有丢包。
在一些实施例中,该步骤可以按照如下过程实施:判断接收到的图像帧的数据包的个数大于或等于图像帧的数据包总个数,则确定图像帧的数据包没有丢包,图像帧的数据包接收结束,继续接收下一个图像帧的数据包;判断接收到的图像帧的数据包的个数小于图像帧的数据包总个数,则确定图像帧的数据包有丢包,执行步骤S13。
步骤S13:生成丢包信息发送给相应的数据源;等待重新接收数据。
在一些实施例中,生成的丢包信息至少包括丢包的图像帧的ID号和丢包的每个数据包的ID号,还可以包括其他的信息,例如,丢包的数据包的个数。将丢包信息发送给数据源后,等待重新接收被丢包的数据包。确定接收完毕后,再次判断是否有丢包,直至确定没有丢包,继续接收下一个图像帧的数据包。循环执行步骤S11~步骤S13,直至接收到停止数据接收的指令,或是在预定的时间阈值内接收不到任一数据包。
本实施例所述的上述数据接收方法:接收每个图像帧的每个数据分段对应的数据包,直至确定所述图像帧发送结束;判断图像帧的数据包是否有丢包;若是,生成丢包信息发送给相应的数据源;等待重新接收数据。接收完一个图像帧的所有数据包后,判断图像帧的数据包是否有丢包,若是,重新接收丢包的数据包,直至判断没有丢包,能够保证接收的每一个图像帧的数据包没有丢包,保证了数据接收的完整性。
在一些实施例中,上述步骤S11中,接收每个图像帧的每个数据分段对应的数据包,还可以包括:针对每个图像帧,将接收到的图像帧的每个数据分段对应的数据包填充在预先建立的链表的一个节点中;对应的,当步骤S12判断图像帧的数据包没有丢包后,上传图像帧的每个数据分段对应的数据包;清空当前节点。
具体的,可以是,针对每个图像帧,将接收到的图像帧的每个数据分段对应的数据包填充在预先建立的链表的填充指针指向的节点中;对应的,判断图像帧的数据包没有丢包之后,将填充指针指向链表的下一个节点;对应的,上传图像帧的每个数据分段对应的数据包,包括:上传获取指针指向的节点中填充的图像帧的每个数据分段对应的数据包;清空当前节点之后,还包括:将获取指针指向链表的下一个节点。
在一些实施例中,可以预先建立包含多个对象的对象组,将每个数据源绑定至一个对象,在每个对象中维护一个环形缓冲区,该环形缓冲区是一个首尾相接的单向循环链表,链表上的每一个节点用于存储接收到的图像帧对应的数据包。在这类实施例中,可通过对对象进行操作来管理从对应的数据源接收的数据。
在一些实施例中,上述填充指针和获取指针的初始位置可以是与链表的头指针位置相同。具体的,头指针可以是指向链表的头节点,也可以是指向其他预先指定的节点。在数据接收的过程中,头指针的位置保持不变;头指针的作用是在数据接收的开始时,指示填充指针和获取指针的指向。
本申请实施例提供的数据接收方法,将接收的一个图像帧的所有数据包缓存在链表的一个节点中,便于管理缓存的数据;接收并上传完一个图像帧的数据后清空其存放的节点,有利于资源的有效利用,减轻缓存负荷。
本申请实施例提供的数据接收方法,将接收到的图像帧的每个数据包填充在预先建立的链表的填充指针指向的节点中;上传获取指针指向的节点中填充的图像帧的每个数据分段对应的数据包。通过填充指针和获取指针标记相应的可操作的节点位置,不会出现填充位置错误或上传错误,保证了数据的准确接收和上传。
在一些实施例中,上传的数据包可用于组装完整的图像帧,组装后的图像帧可用于后续的视觉分析处理。
在一些实施例中,在数据接收的具体过程中,还可以,记录链表的每个节点的当前状态,根据每个节点的状态,确定所述节点下一步可执行的操作,以及所述操作后的状态,并在执行对应操作后,将所述节点的状态更新至所述操作后的状态。
表1节点状态表
Figure BDA0001925674920000071
Figure BDA0001925674920000081
其中,节点各状态的含义及对应的下一步可执行操作和下一状态参见表1所示,节点的状态变迁流程,参见图2所示。上述节点的状态包括:空白状态、填充状态、准备状态和访问状态:
空白状态,表示节点还未被填充任一数据包,且也没有准备要填充一个图像帧的任一数据包;空白状态对应的节点下一步可执行的操作为:填充一个图像帧的一个数据分段对应的数据包;执行填充一个图像帧的一个数据分段对应的数据包操作之后,将节点的状态更新为填充状态;
填充状态,表示节点正在被填充一个图像帧的数据包且所述图像帧未填充完毕,也包括节点还未被填充任一数据包但正准备要填充一个图像帧的一个数据包;填充状态对应的节点下一步可执行的操作为:等待上传填充的图像帧的数据包;执行等待上传填充的图像帧的数据包操作之后,将节点的状态更新为准备状态;
准备状态,表示节点正在等待上传填充的图像帧的数据包;准备状态对应的节点下一步可执行的操作为:上传填充的图像帧的数据包;执行上传填充的图像帧的数据包操作之后,将节点的状态更新为访问状态;
访问状态,表示节点正在上传填充的图像帧的数据包;访问状态对应的节点下一步可执行的操作为:清空节点;执行清空所述节点操作之后,将节点的状态更新为空白状态。
上述节点状态的变迁,还可以包括,当判断一个节点异常时,清空节点,将节点的状态更新为空白状态。
本实施例所述的数据接收方法,通过节点状态的管理,可以按照节点的状态判断是否可执行下一步操作,不会出现操作错误;同时可以对异常情况及时处理。
为了保证在一个节点中填充的数据包都是属于同一个图像帧的数据包,在一些实施例中,可以是:
针对每个图像帧,将接收到的图像帧的每个数据分段对应的数据包填充在预先建立的链表的一个节点中之前,具体是在接收到图像帧的第一个数据包之后,将数据包填充到节点之前,将图像帧的ID号赋值给要填充的节点的ID号。
针对后面接收的上述图像帧的数据包,首先要比较数据包中图像帧的ID号与节点的ID号的大小关系,若数据包中图像帧的ID号小于节点的ID号,确定数据包属于图像帧的上一个图像帧,丢弃数据包;
若数据包中图像帧的ID号等于节点的ID号,确定数据包属于图像帧,将数据包填充在节点中;
若数据包中图像帧的ID号大于节点的ID号,确定数据包属于图像帧的下一个图像帧,此时,图像帧的数据包已经接收完毕,直接将数据包填充在节点的下一节点中。
上述将接收到的数据包填充到节点中之前,先判断数据包中图像帧的ID号与节点的ID号的大小关系,根据二者大小关系的不同做不同的处理,避免了将不是一个图像帧的数据包填充在同一个节点中,保证了最终上传的每个图像帧的所有数据包都是属于同一图像帧的。
在一些实施例中,本实施例提供的数据接收方法中,按照用户数据报协议(UserDatagram Protocol,UDP)从数据源接收数据包。
实施例二
本申请实施例二提供一种数据接收的具体实现方法,以第一个图像帧的所有数据包的接收为例,其流程如图3所示,包括如下步骤:
步骤S301:将链表中每一个节点的状态都初始化为空白状态,将填充指针和获取指针都指向头指针指向的节点。
步骤S302:接收到第一个数据包之后,获取数据包所属的图像帧的ID号,将图像帧的ID号赋值给填充指针指向的节点的ID号。
步骤S303:记录图像帧的数据包的总个数,生成图像帧的数据包列表,更新接收到的数据包的个数。
其中,数据包列表可以是如表2所示的列表,包括:图像帧的所有数据包的ID号和每个数据包的位值。图像帧的所有数据包的ID号,可以是根据图像帧的数据包总个数和预设的数据包ID号规则来获得,例如,预设数据包的ID号是从1开始由小到大依次增加1,图像帧的数据包总个数为7,则可以得到表2所示的图像帧的数据包列表;每个数据包的位值,用0和1表示,且初始值都是0,0表示还未接收到数据包,1表示已经接收到数据包,例如,接收到的第一个数据包的ID号为1,则将ID号为1的数据包的位值更新为1。
表2图像帧的数据包列表
数据包ID号 1 2 3 4 5 6 7
数据包位值 1 0 0 0 0 0 0
步骤S304:将接收到的第一个数据包填充在填充指针指向的节点中,将节点的状态更新为填充状态。
步骤S302~步骤S304没有先后顺序,可以先执行其中任意一步或两步,也可以同时执行。
步骤S305:针对后面接收到的每一个数据包,比较数据包中图像帧的ID号与节点的ID号的大小关系。
若数据包中图像帧的ID号小于节点的ID号,确定数据包属于图像帧的上一个图像帧,执行步骤S306;若数据包中图像帧的ID号等于节点的ID号,确定数据包属于图像帧,执行步骤S307;若数据包中图像帧的ID号大于节点的ID号,确定数据包属于图像帧的下一个图像帧,执行步骤S308。
步骤S306:丢弃数据包。
步骤S307:将数据包填充在填充指针指向的节点中,更新图像帧的数据包列表,更新接收到的数据包的个数。
执行完步骤S307后,回到步骤S305,直至确定所述图像帧发送结束,执行步骤S09。
步骤S308:将当前节点的状态更新为准备状态,将填充指针指向链表的下一个节点,开始下一个图像帧的接收。
步骤S309:确定图像帧发送结束,判断图像帧是否有丢包。
若是,执行步骤S310;若否,当前图像帧的数据包接收结束,执行步骤S311。
步骤S310:生成丢包信息发送给相应的数据源。
可以是根据图像帧的数据包列表,将数据包的位值为0的数据包进行统计,生成包括图像帧的ID号和丢包的数据包的ID号的丢包信息。
步骤S310之后,等待重新接收丢包的数据包,回到步骤S305。
步骤S311:更新填充指针指向的节点的状态为准备,将填充指针指向下一个节点,开始下一图像帧的接收。
本申请实施例提供的数据接收方法至少包括如下有益效果:
1、接收每个图像帧的每个数据分段对应的数据包,直至确定所述图像帧发送结束;判断所述图像帧的数据包是否有丢包;若是,生成丢包信息发送给相应的数据源;等待重新接收数据。接收完一个图像帧的所有数据包后,判断所述图像帧的数据包是否有丢包,若是,重新接收丢包的数据包,直至判断没有丢包,能够保证接收的每一个图像帧没有丢包,保证了数据接收的完整性。
2、针对每个图像帧,将接收到的图像帧的每个数据分段对应的数据包填充在预先建立的链表的一个节点中;判断图像帧的数据包没有丢包后,上传图像帧的数据包;清空所述节点。将一个图像帧的所有数据包缓存在一个节点中,便于管理缓存的数据;接收并上传完一个图像帧的数据后清空其存放的节点,有利于资源的有效利用,减轻缓存负荷。
3、记录链表的每个节点的当前状态,根据每个节点的状态,确定节点下一步可执行的操作和执行完后的下一状态。通过节点状态的管理,可以按照节点的状态判断是否可执行下一步操作,不会出现操作错误;同时可以对异常情况及时处理。
4、将接收到的图像帧的每个数据包填充在预先建立的链表的填充指针指向的节点中;上传获取指针指向的节点中填充的图像帧的每个数据分段对应的数据包。通过填充指针和获取指针标记相应的可操作的节点位置,不会出现填充位置错误或上传错误,保证了数据的准确接收和上传。
5、接收每个图像帧的每个数据分段对应的数据包之前,将所述图像帧的ID号赋值给所述节点的ID号;将接收到的数据包填充在节点中之前,比较数据包中图像帧的ID号与节点的ID号的大小关系,若数据包中图像帧的ID号小于节点的ID号,确定数据包属于图像帧的上一个图像帧,丢弃所述数据包;若数据包中图像帧的ID号等于节点的ID号,确定数据包属于所述图像帧,将数据包填充在所述节点中;若数据包中图像帧的ID号大于节点的ID号,确定数据包属于所述图像帧的下一个图像帧;将数据包填充在所述节点的下一节点中。避免了将不是一个图像帧的数据包填充在同一个节点中,保证了最终上传的每个图像帧的所有数据包都是属于所述图像帧的。
综上,本申请实施例提供的数据接收方法可有效提升数据的接收、存储和重传效率,有利于实时、高速率和完整地接收数据源采集的图像数据。
示例性设备
基于本申请的发明构思,如图4所示,本申请实施例提供一种图像处理设备4,包括:图像采集处理器41和视觉分析处理器42。
其中,图像采集处理器41用于执行本申请实施例提供的数据接收方法中的各个步骤;视觉分析处理器42接收图像采集处理器41上传的每个图像帧的每个数据分段对应的数据包,并对其进行视觉分析处理。
该图像处理设备4中,图像采集处理器41的工作原理与本申请实施例提供的数据接收方法基于相同的发明思想实现,且有相同的非限制性实施方式,具体可参照前面示例性方法中对数据接收方法的介绍,此处不再赘述。
基于本申请的发明构思,本申请实施例还提供一种汽车,其结构如图5所示,包括:图像处理设备51和至少一路数据源52;图像处理设备51接收各路数据源52发送的数据包。
在一些实施例中,如图6和图7所示,该汽车可以是,包括:图像处理设备61和多台摄像机62;图像处理设备61与每台摄像机62之间通过交换机63连接。
可以是,图像处理设备61接收一台摄像机62发送的采集到的图像数据;也可以是,图像处理设备61从多台摄像机62并发采集图像数据。
图像处理设备61包括图像采集处理器611和视觉分析处理器612,图像采集处理器611用于执行本申请实施例提供的数据接收方法中的各个步骤;视觉分析处理器612接收图像采集处理器611上传的每个图像帧的每个数据分段对应的数据包,并对其进行视觉分析处理。
图像处理设备61从多台摄像机62并发采集图像数据时,可以是预先建立包含多个对象的对象组,每个对象用于维护一台摄像机。每当接收到从指定摄像机接收数据的命令时,判断是否有对象组中的某一对象预先与摄像机绑定;若是,通过与摄像机绑定的对象从摄像机接收数据;若否,将对象组中某一闲置的对象与指定摄像机绑定,并通过与摄像机绑定的对象从摄像机接收数据。图像处理设备61可以同一时间分别通过对象组中的不同的对象从不同的摄像机采集数据,实现从多路摄像机并发采集数据。
图像处理设备61接收每台摄像机62发送的数据,可以是,接收每个图像帧的每个数据分段对应的数据包,直至确定所述图像帧发送结束;判断所述图像帧的数据包是否有丢包;若是,生成丢包信息发送给相应的数据源;等待重新接收数据。
本申请实施例提供的汽车可以是利用自动驾驶技术实现的具有载人(如家用轿车、公共汽车等类型)、载货(如普通货车、厢式货车、封闭货车、罐式货车、平板货车、集装厢车、自卸货车、特殊结构货车等类型)或者特殊救援功能(如消防车、救护车等类型)的车辆。
基于本申请的发明思想,本申请实施例提供一种计算机可读存储介质,其上存储有计算机指令,当该指令被处理器执行时实现本申请实施例提供的数据源接收方法。其中,该计算机可读的存储介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。在一些实施例中,该计算机可读的存储介质可以是:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本申请处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本申请单独的优选实施方案。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

Claims (15)

1.一种数据接收方法,其特征在于,包括:
预先建立包含多个对象的对象组,将每个数据源绑定至一个对象,在每个对象中维护有单向循环链表;
将从数据源接收到的每个图像帧的每个数据分段对应的数据包填充在预先建立的所述链表的填充指针指向的节点中,使得链表的一个节点缓存一个图像帧的所有数据包,所述链表的每个节点对应有当前状态,所述当前状态用于确定所述节点下一步可执行的操作和执行完所述操作后的下一状态;
将填充操作后的所述节点的当前状态更新为下一状态;
判断所述图像帧的数据包是否有丢包;
若所述图像帧的数据包有丢包,则生成丢包信息发送给所述数据源,并等待重新接收数据;
若所述图像帧的数据包没有丢包,则上传获取指针指向的节点中填充的图像帧的每个数据分段对应的数据包,并清空所述节点,
其中,所述方法还包括:
判断所述图像帧的数据包没有丢包之后,将所述填充指针指向所述链表的下一个节点,
清空所述节点之后,将所述获取指针指向所述链表的下一个节点。
2.如权利要求1所述的方法,其特征在于,还包括:
记录所述链表的每个节点的当前状态;
根据每个节点的状态,确定所述节点下一步可执行的操作和执行完所述操作后的下一状态;以及,
在执行完所述操作后,将所述节点的状态更新为所述下一状态。
3.如权利要求2所述的方法,其特征在于,所述状态包括下述一项或多项:空白状态、填充状态、准备状态和访问状态;
所述空白状态,表示所述节点还未被填充任一数据包;所述填充状态,表示所述节点正在被填充一个图像帧的数据包;所述准备状态,表示所述节点正在等待上传填充的图像帧的数据包;所述访问状态,表示所述节点正在上传填充的图像帧的数据包。
4.如权利要求3所述的方法,其特征在于,根据每个节点的状态,确定所述节点下一步可执行的操作和执行完所述操作后的下一状态,包括:
所述节点的状态为空白状态时,所述节点下一步可执行的操作为:填充一个图像帧的一个数据分段对应的数据包,执行完所述操作后的下一状态为:填充状态;
所述节点的状态为填充状态时,所述节点下一步可执行的操作为:等待上传填充的图像帧的数据包,执行完所述操作后的下一状态为:准备状态;
所述节点的状态为准备状态时,所述节点下一步可执行的操作为:上传填充的图像帧的数据包,执行完所述操作后的下一状态为:访问状态;
所述节点的状态为访问状态时,所述节点下一步可执行的操作为:清空所述节点,执行完所述操作后的下一状态为:空白状态。
5.如权利要求4所述的方法,其特征在于,还包括:
当判断所述节点异常时,清空所述节点,将所述节点的状态更新为空白状态。
6.如权利要求1所述的方法,其特征在于,所述数据包包括下述信息中的一个或多个:
所述图像帧的ID号、所述图像帧的数据包总个数、所述数据包的ID号和所述数据包对应的图像数据。
7.如权利要求6所述的方法,其特征在于,判断所述图像帧的数据包是否有丢包,包括:
判断所述图像帧的数据包的个数大于或等于所述图像帧的数据包总个数,则确定所述图像帧的数据包没有丢包;
判断所述图像帧的数据包的个数小于所述图像帧的数据包总个数,则确定所述图像帧的数据包有丢包。
8.如权利要求3~5任一所述的方法,其特征在于,判断所述图像帧的数据包没有丢包之后,还包括:将所述节点的状态更新为准备状态;将所述下一个节点的状态更新为填充状态;则,
清空所述节点之后,还包括:将所述节点的状态更新为空白状态。
9.如权利要求8所述的方法,其特征在于,还包括:所述填充指针和所述获取指针的初始位置与所述链表的头指针位置相同;
所述头指针指向所述链表的头节点。
10.如权利要求6所述的方法,其特征在于,将从数据源接收到的每个图像帧的每个数据分段对应的数据包填充在预先建立的链表的节点中之前,还包括:
将所述图像帧的ID号赋值给所述节点的ID号;相应的,
将接收到的所述图像帧的每个数据分段对应的数据包填充在预先建立的链表的一个节点中之前,还包括:
比较所述数据包中图像帧的ID号与所述节点的ID号的大小关系;
若所述数据包中图像帧的ID号小于所述节点的ID号,确定所述数据包属于所述图像帧的上一个图像帧;丢弃所述数据包;
若所述数据包中图像帧的ID号等于所述节点的ID号,确定所述数据包属于所述图像帧;将所述数据包填充在所述节点中;
若所述数据包中图像帧的ID号大于所述节点的ID号,确定所述数据包属于所述图像帧的下一个图像帧;将所述数据包填充在所述节点的下一节点中。
11.如权利要求1所述的方法,其特征在于,从数据源接收所述图像帧的每个数据分段对应的数据包,包括:基于用户数据报协议UDP从数据源接收到的所述图像帧的每个数据分段对应的数据包。
12.一种图像处理设备,其特征在于,包括:图像采集处理器和视觉分析处理器;
所述图像采集处理器用于执行如权利要求1~11任一所述的数据接收方法中的各个步骤;
所述视觉分析处理器接收所述图像采集处理器上传的每个图像帧的每个数据分段对应的数据包。
13.一种汽车,其特征在于,包括:如权利要求12所述的图像处理设备和至少一路数据源;所述图像处理设备接收各路所述数据源发送的数据包。
14.如权利要求13所述的汽车,其特征在于,每路所述数据源为一台摄像机;
所述图像处理设备与每台所述摄像机之间通过交换机连接。
15.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,当该指令被处理器执行时实现权利要求1~11任一所述的数据接收方法。
CN201811615181.3A 2018-12-27 2018-12-27 一种数据接收方法、图像处理设备和汽车 Active CN111385523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811615181.3A CN111385523B (zh) 2018-12-27 2018-12-27 一种数据接收方法、图像处理设备和汽车

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811615181.3A CN111385523B (zh) 2018-12-27 2018-12-27 一种数据接收方法、图像处理设备和汽车

Publications (2)

Publication Number Publication Date
CN111385523A CN111385523A (zh) 2020-07-07
CN111385523B true CN111385523B (zh) 2022-10-28

Family

ID=71218394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811615181.3A Active CN111385523B (zh) 2018-12-27 2018-12-27 一种数据接收方法、图像处理设备和汽车

Country Status (1)

Country Link
CN (1) CN111385523B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114520855B (zh) * 2021-12-31 2024-03-15 广州文远知行科技有限公司 基于多模块数据的图像帧渲染方法、装置及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354679A (zh) * 2008-08-27 2009-01-28 四川长虹电器股份有限公司 嵌入式点对点下载系统的内存分配方法
JP4544435B2 (ja) * 2009-02-10 2010-09-15 日本電気株式会社 映像品質推定装置、映像品質推定方法およびプログラム
CN101621368B (zh) * 2009-08-13 2012-10-17 北京必创科技有限公司 一种重传数据包的方法、装置及系统
CN101707786B (zh) * 2009-11-26 2012-02-15 武汉烽火众智数字技术有限责任公司 一种基于公共移动通信的视频包多链路接收和播放方法
CN103141050B (zh) * 2011-12-28 2014-11-05 华为技术有限公司 快速通道互联系统中数据包重传方法、节点
CN105120439B (zh) * 2015-07-13 2018-11-23 宁波尚为信息技术有限公司 北斗长报文通信方法
CN106878191B (zh) * 2015-12-14 2018-11-16 华为技术有限公司 一种数据传送方法、发送节点、接收节点及数据传送系统
CN106791997B (zh) * 2016-12-29 2020-08-04 Tcl科技集团股份有限公司 一种在接收端的流媒体数据的处理方法及系统、电视终端

Also Published As

Publication number Publication date
CN111385523A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
US5777987A (en) Method and apparatus for using multiple FIFOs to improve flow control and routing in a communications receiver
US7581015B2 (en) Communication device having transmitting and receiving units supports RDMA communication
CN104092717B (zh) 消息处理方法及系统、消息目的端设备
US6823405B1 (en) Method and apparatus for initiating partial transactions in a peripheral interface circuit for an I/O node of a computer system
CN103049240B (zh) Pci-e设备及其接收数据重排序方法
CN104954271A (zh) Sdn网络中的数据包处理方法和装置
US7269172B2 (en) Method and device for managing transmit buffers
CN111385523B (zh) 一种数据接收方法、图像处理设备和汽车
EP3584978A1 (en) Technique for storing softbits
CN111400212A (zh) 一种基于远程直接数据存取的传输方法、设备
CN111225063A (zh) 用于静态分布式计算架构的数据交换系统及其方法
CN111382729A (zh) 一种从数据源采集数据的方法、主机和汽车
CN113660066A (zh) 一种基于滑动窗口的数据传输方法、网卡设备以及存储介质
CN113170500A (zh) 一种信息传输方法及装置
US20200127930A1 (en) System and method for accelerating remote data object access and/or consumption
US6822967B1 (en) Relay unit and frame tracing method
CN117061060A (zh) 一种基于模板和换帧技术的数据融合方法及装置
CN117421267B (zh) 数据通道防死锁方法、装置、设备及介质
CN118381775B (zh) 数据包的重排方法、装置、设备、芯片及存储介质
US20230370203A1 (en) Selective acknowledgement framework for high-performance networks
CN111277962B (zh) 一种编队方法及相关设备
US20160173418A1 (en) Method and apparatus for transmitting can frame
CN117075818A (zh) 一种数据页读写控制方法、装置、设备及介质
CN113742301A (zh) 一种数据存储方法、系统、电子设备及存储介质
CN108304214B (zh) 一种立即数的完整性的校验方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant