CN110651328A - 用于支持可移动平台中的数据通信的系统和方法 - Google Patents
用于支持可移动平台中的数据通信的系统和方法 Download PDFInfo
- Publication number
- CN110651328A CN110651328A CN201780090940.6A CN201780090940A CN110651328A CN 110651328 A CN110651328 A CN 110651328A CN 201780090940 A CN201780090940 A CN 201780090940A CN 110651328 A CN110651328 A CN 110651328A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- processor
- data processor
- buffer block
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004891 communication Methods 0.000 title description 22
- 239000000872 buffer Substances 0.000 claims abstract description 288
- 238000012545 processing Methods 0.000 claims abstract description 134
- 230000008569 process Effects 0.000 claims abstract description 28
- 239000012536 storage buffer Substances 0.000 claims description 37
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 2
- 230000033001 locomotion Effects 0.000 description 40
- 230000007246 mechanism Effects 0.000 description 18
- 230000035939 shock Effects 0.000 description 16
- 238000011144 upstream manufacturing Methods 0.000 description 9
- 238000013016 damping Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 239000006096 absorbing agent Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000006260 foam Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 239000012781 shape memory material Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/16—Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
Abstract
系统和方法可以支持可移动平台上的数据处理。该系统包括具有多个缓冲区块的存储缓冲区。第一数据处理器可以执行用于将数据写入该存储缓冲区的写操作,以及向第二数据处理器提供指示第一数据处理器的写操作的状态或进度的第一参考。而且,控制器可以向第二数据处理器提供指示该存储缓冲区中的第一缓冲区块的第二参考。然后,第二数据处理器可以基于第一参考,确定第一缓冲区块是否包含要被第二数据处理器处理的足够的数据。当第一缓冲区块包含要被处理的足够的数据时,第二数据处理器可以使用从控制器接收的第二参考,从第一缓冲区块获得并处理数据。
Description
版权声明
本专利文档的公开的一部分包含受到皈权保护的材料。版权所有人不反对任何人对专利文档或专利公开(如其在专利和商标局中的专利文件或记录中出现的原样)进行复制再现,但是在其它情况下版权所有人保留所有版权。
技术领域
所公开的实施例总体涉及操作可移动平台,并且更具体地但非排他地涉及支持可移动平台上的数据处理。
背景技术
诸如无人飞行器(UAV)之类的可移动平台可以用于执行针对军事和民用应用的监视、侦察和勘探任务。可移动平台可以承载能够感测周围环境的不同类型的传感器。诸如图像数据之类的大量数据可能需要在可移动平台上以低延迟高效地被处理。这是本发明的实施例旨在解决的一般领域。
发明内容
本文描述的是可以支持可移动平台上的数据处理的系统和方法。该系统包括具有多个缓冲区块的存储缓冲区。第一数据处理器可以执行用于将数据写入存储缓冲区的写操作,以及向第二数据处理器提供指示该写操作的状态或进度的第一参考。而且,控制器可以向第二数据处理器提供指示该存储缓冲区中的第一缓冲区块的第二参考。然后,第二数据处理器可以基于第一参考来确定第一缓冲区块是否包含要被第二数据处理器处理的足够的数据。当第一缓冲区块包含要被处理的足够的数据时,第二数据处理器可以使用从控制器接收的第二参考,从第一缓冲区块获得并处理数据。
附图说明
图1示出了根据本发明的各种实施例的可移动物平台环境。
图2示出了根据实施例的可移动物平台环境中的示例性载具。
图3示出了根据各种实施例的示例性数据处理系统。
图4示出了根据本发明的各种实施例的使用数据处理系统支持高效数据处理。
图5示出了根据本发明的各种实施例的使用不同的缓冲区块协调数据处理。
图6示出了根据本发明的各种实施例的在数据处理时跳过缓冲区块。
图7示出了根据本发明的各种实施例的使用数据处理系统处理数据。
图8示出了根据本发明的各种实施例的在数据处理系统中协调数据处理。
图9示出了根据本发明的各种实施例的以顺序方式处理数据。
图10示出了根据本发明的各种实施例的基于缓冲区块以顺序方式处理数据。
图11示出了根据本发明的各种实施例的示例性图像处理系统。
图12示出了根据本发明的各种实施例的使用用于数据处理的控制器的流程图。
图13示出了根据本发明的各种实施例的使用用于数据处理的数据处理器的流程图。
具体实施方式
在附图的图中通过示例而非限制的方式示出本发明,在附图中,相同的附图标记表示相似的元件。应当注意到:在本公开中针对“实施例”或“一个实施例”或“一些实施例”的引用不一定指的是相同实施例,且这种引用意味着至少一个实施例。
本发明的如下描述使用无人飞行器(UAV)作为可移动平台的示例。对于本领域技术人员显而易见的是,可以使用其它类型的可移动物平台而没有限制。
根据本发明的各种实施例,该系统可以提供用于支持可移动平台上的数据处理的技术方案。该系统包括具有多个缓冲区块的存储缓冲区。第一数据处理器可以执行用于将数据写入该存储缓冲区的写操作,以及向第二数据处理器提供指示第一数据处理器的写操作的状态或进度的第一参考。而且,控制器可以向第二数据处理器提供指示该存储缓冲区中的第一缓冲区块的第二参考。然后,第二数据处理器可以基于第一参考,确定第一缓冲区块是否包含要被第二数据处理器处理的足够的数据。当第一缓冲区块包含要被处理的足够的数据时,第二数据处理器可以使用从控制器接收的第二参考,从第一缓冲区块获得并处理数据。
图1示出了根据本发明的各种实施例的可移动物平台环境。如图1中所示,可移动平台环境100中的可移动平台118(也被称作可移动物体)可以包括载具102和搭载物104。尽管可移动平台118可以被描述为飞行器,但是该描述并非意在限制,并且可以使用任何合适类型的可移动平台。本领域技术人员将理解,本文中在飞行器系统的背景下描述的任何实施例可以应用于任何合适的可移动物平台(例如,UAV)。在某些实例中,搭载物104可以设置在可移动物平台118上,而不需要载具102。
根据本发明的各种实施例,可移动平台118可以包括一个或多个移动机构106(例如,推进机构)、感测系统108和通信系统110。
移动机构106可以包括旋翼、螺旋桨、叶片、发动机、电机、轮子、轴、磁体、喷嘴、或可以由动物或人类用于产生移动的任何机构中的一个或多个。例如,可移动平台可以具有一个或多个推进机构。移动机构106可以都是相同类型的。备选地,移动机构106可以是不同类型的移动机构。移动机构106可以使用诸如支撑元件(例如,驱动轴)的任何合适的方法安装在可移动平台118上(反之亦然)。移动机构106可以安装在可移动平台118的任何合适的部分上,例如项部、底部、前部、后部、侧面或其合适的组合。
在一些实施例中,移动机构106可以使可移动平台118能够垂直地从表面起飞或垂直地降落在表面上,而不需要可移动平台118的任何水平移动(例如,无需沿着跑道行进)。可选地,移动机构106可以可操作地允许可移动平台1100以特定位置和/或朝向悬停在空中。移动机构106中的一个或多个可以独立于其它移动机构受到控制。备选地,移动机构106可以被配置为同时受到控制。例如,可移动平台118可以具有多个水平取向的旋翼,其可以向可移动平台提供升力和/或推力。可以致动多个水平取向的旋翼以向可移动平台118提供垂直起飞、垂直着陆和悬停能力。在一些实施例中,水平取向旋翼中的一个或多个可以沿顺时针方向旋转,而水平旋翼中的一个或多个可以沿逆时针方向旋转。例如,顺时针旋翼的数量可以等于逆时针旋翼的数量。为了控制由每个旋翼产生的升力和/或推力,从而调整可移动平台118(例如,相对于多达三个平移度和三个旋转度)的空间布置、速度和/或加速度,可以独立地改变每个水平取向的旋翼的转速。
感测系统108可以包括可感测可移动平台118(例如,相对于各个平移度和各个旋转度)的空间布置、速度和/或加速度的一个或多个传感器。一个或多个传感器可以包括GPS传感器、运动传感器、惯性传感器、近距离传感器或图像传感器中的任一个。感测系统108提供的感测数据可用于(例如,使用合适的处理单元和/或控制模块)控制可移动平台118的空间布置、速度和/或朝向。备选地,感测系统108可以用于提供与可移动平台周围的环境有关的数据,例如天气条件、到可能障碍物的接近度、地理特征的位置、人造结构的位置等。
通信系统110能够经由无线信号116与具有通信系统114的终端112进行通信。通信系统110、114可以包括适合于无线通信的任意数量的发射机、接收机和/或收发机。所述通信可以是单向通信,使得数据只能在一个方向上传输。例如,单向通信可以仅涉及可移动平台118向终端112发送数据,或者反之亦然。可以从通信系统110的一个或多个发射机向通信系统112的一个或多个接收机发送数据,或者反之亦然。备选地,所述通信可以是双向通信,使得可以在可移动平台118和终端112之间的两个方向上发送数据。双向通信可以涉及从通信系统110的一个或多个发射机向通信系统114的一个或多个接收机发送数据,并且反之亦然。
在一些实施例中,终端112可以向可移动平台118、载具102和搭载物104中的一个或多个提供控制数据,并且从可移动平台118、载具102和搭载物104中的一个或多个接收信息(例如,可移动平台、载具或搭载物的位置和/或运动信息;由搭载物感测的数据,例如由搭载物相机捕获的图像数据;以及根据由搭载物相机捕获的图像数据生成的数据)。在某些实例中,来自终端的控制数据可以包括用于可移动平台、载具和/或搭载物的相对位置、移动、致动或控制的指令。例如,控制数据(例如,通过移动机构106的控制)可以导致可移动平台的位置和/或朝向的修改,或(例如,通过载具102的控制)导致搭载物相对于可移动平台的移动。来自终端的控制数据可以实现对搭载物的控制,比如对相机或其它图像捕获装置的操作的控制(例如,拍摄静态或动态图像、放大或缩小、接通或关断、切换成像模式、改变图像分辨率、改变焦点、改变景深、改变曝光时间、改变视角或视野)。
在某些实例中,来自可移动平台、载具和/或搭载物的通信可以包括来自(例如,感测系统108或搭载物104的)一个或多个传感器的信息和/或基于感测信息生成的数据的信息。通信可以包括来自一个或多个不同类型的传感器(例如,GPS传感器、运动传感器、惯性传感器、近距离传感器或图像传感器)的感测信息。这样的信息可以涉及可移动平台、载具和/或搭载物的定位(例如,位置、朝向)、移动或加速度。来自搭载物的这种信息可以包括由搭载物捕获的数据或搭载物的感测状态。由终端112发送的控制数据可以被配置为控制可移动平台118、载具102或搭载物104中的一个或多个的状态。备选地或组合地,载具102和搭载物104也可以各自包括被配置为与终端112进行通信的通信模块,使得该终端可以独立地与可移动平台118、载具102和搭载物104中的每一个进行通信并对其进行控制。
在一些实施例中,可移动平台118可以被配置为与除了终端112之外的或者替代终端112的另一远程装置通信。终端112还可以被配置为与另一远程装置以及可移动平台118进行通信。例如,可移动平台118和/或终端112可以与另一可移动平台或另一可移动平台的载具或搭载物通信。当需要时,远程装置可以是第二终端或其它计算装置(例如,计算机、膝上型电脑、平板电脑、智能电话或其它移动装置)。远程装置可以被配置为向可移动平台118发送数据、从可移动平台118接收数据、向终端112发送数据、和/或从终端112接收数据。可选地,远程装置可以被连接至互联网或其它电信网络连接,使得从可移动平台118和/或终端112接收的数据可以被上传到网站或服务器。
图2示出了根据实施例的可移动物平台环境中的示例性载具。载具200可以用于将诸如图像捕捉装置的搭载物202耦接到诸如UAV的可移动平台。
载具200可以被配置为允许搭载物202绕着一个或多个轴(例如,三个轴:相对于可移动平台的X轴或俯仰轴、Z轴或侧滚轴、以及Y轴或者偏航轴)。例如,载具200可以被配置为允许载荷202仅围绕轴中的一个、两个或三个轴旋转。轴可以彼此正交或可以不彼此正交。围绕任何轴的旋转范围可以被限制或可以不被限制,并且可以针对每个轴而变化。旋转轴可以彼此相交或不相交。例如,正交轴可以彼此相交。它们可以在或者可以不在搭载物202处相交。备选地,它们可以不相交。
载具200可以包括具有一个或多个框架构件的框架组件211。例如,框架构件可以被配置为与搭载物202(例如,图像捕获装置)耦接并且支撑搭载物202。
在一些实施例中,载具201可以包括一个或多个载具传感器213,其用于确定载具201或者由载具201承载的搭载物202的状态。状态信息可以包括关于载具、其组件和/或载荷的空间布置(例如位置、朝向或姿态)、速度(例如线速度或角速度)、加速度(例如线加速度或角加速度)和/或其他信息。在一些实施例中,从传感器数据中获取或计算的状态信息可被用作反馈数据以控制载具的部件(例如框架构件)的旋转。这种载具传感器的示例可以包括运动传感器(例如加速度计)、旋转传感器(例如陀螺仪)、惯性传感器等。
载具传感器213可以耦接到载具(例如框架构件和/或致动器构件)的任何(一个或多个)合适的部分,并且可以或可以不相对于UAV移动。附加地或备选地,载具传感器中的至少一些可以直接耦接到载具201所承载的载荷202。
载具传感器213可以与载具的一些或全部致动器构件耦接。例如,三个载具传感器可以分别耦接到三轴载具的致动器构件212,并且被配置为测量三轴载具的各个致动器构件212的驱动。这种传感器可以包括电位计或其它类似的传感器。在实施例中,可以在电机的电机轴上插入传感器(例如电位计),以测量电机转子和电机定子的相对位置,由此测量转子和定子的相对位置并产生表示该相对位置的位置信号。在实施例中,每个与致动器耦接的传感器被配置为提供其所测量的相应的致动器构件的位置信号。例如,可以使用第一电位计来生成第一致动器构件的第一位置信号,可以使用第二电位器来生成第二致动器构件的第二位置信号,并且可以使用第三电位计来生成第三致动器构件的第三位置信号。在一些实施例中,载具传感器213也可以耦接到载具的一些或全部框架构件。传感器可以能够传送关于载具和/或图像捕捉装置的一个或多个框架构件的位置和/或朝向的信息。传感器数据可以被用于确定图像捕获装置相对于可移动平台和/或参考框架的位置和/或朝向。
载具传感器213可以提供可被发送到载具或可移动平台上的一个或多个控制器(未示出)的位置和/或朝向数据。传感器数据可以在基于反馈的控制方案中使用。控制方案可以用于控制对一个或多个致动器构件(例如,一个或多个电机)的驱动。可以位于载具上或者位于承载载具的可移动平台上的一个或多个控制器可以生成用于驱动致动器构件的控制信号。在某些实例中,可以基于从载具传感器接收的指示载具或载具201所承载的搭载物202的空间布置的数据来生成控制信号。如前文所述,载具传感器可以位于载具或搭载物202上。由控制器产生的控制信号可以被不同的致动器驱动器接收。基于控制信号,不同的致动器驱动器可以控制不同致动器构件的驱动,例如以实现载具的一个或多个组件的旋转。致动器驱动器可以包括适合于控制相应的致动器构件的驱动和从相应的传感器(例如电位计)接收位置信号的硬件和/或软件组件。控制信号可以被同时发送到致动器驱动器,以产生对致动器构件的同时驱动。备选地,控制信号可以被顺序地发送,或者仅被发送到致动器驱动器中的一个。有利地,控制方案可以被用于提供用于驱动载具的致动器构件的反馈控制,从而能够实现载具组件的更精确和准确的旋转。
在某些实例中,载具201可以经由一个或多个减震元件间接地耦接到UAV。减震元件可以被配置为减少或消除由可移动平台(例如,UAV)的移动引起的载荷(例如,搭载物、载具或二者)的移动。减震元件可以包括适于对耦接载荷的运动进行减震的任何元件,诸如主动减震元件、被动减震元件或具有主动和被动减震特性的混合减震元件。由本文提供的减震元件减震的运动可以包括振动、摆动、摇动或撞击中的一个或多个。这种运动可以源自传递到搭载物的可移动平台的运动。例如,所述运动可以包括由推进系统和/或UAV的其它组件的操作引起的振动。
减震元件可通过消散或减少传送到载荷的运动量(例如,振动隔离)而将载荷与不希望的运动源隔离,从而提供运动减震。减震元件可以减小载荷原本将经受的运动的量值(例如,幅度)。减震元件所施加的运动减震可以用于使载荷稳定,从而提高由载荷(例如,图像捕捉装置)捕捉的图像的质量,并且降低基于捕捉图像来生成全景图像所需的图像拼接步骤的计算复杂度。
本文所述的减震元件可以由任何合适的材料或材料组合形成,包括固体、液体或气体材料。用于阻尼元件的材料可以是可压缩的和/或可变形的。例如,减震元件可以由海绵、泡沫、橡胶、凝胶等制成。例如,减震元件可以包括大致球形的橡胶球。减震元件可以具有任何合适的形状,例如大致球形、矩形、圆柱形等。备选地或附加地,减震元件可以包括压电材料或形状记忆材料。减震元件可以包括一个或多个机械元件,例如弹簧、活塞、液压装置、气动装置、缓冲器、减震器、隔离器等。可以选择减震元件的特性以提供预定量的运动减震。在某些实例中,减震元件可以具有粘弹属性。减震元件的属性可以是各向同性的或各向异性的。例如,减震元件可以沿所有运动方向均匀地提供运动减震。相反,减震元件可以仅沿着运动方向的子集(例如,沿着单个运动方向)提供运动减震。例如,减震元件可以主要沿着Y(偏航)轴提供减震。由此,所示出的减震元件可以被配置为减小竖直运动。
尽管各种实施例可以被描述为利用单一类型的减震元件(例如,橡胶球),但是应当理解的是,可以使用任何合适的减震元件类型的组合。例如,可以使用任何合适的一种或多种类型的一个或多个减震元件将载具耦接到可移动平台。减震元件可以具有相同或不同的特性或属性,例如刚度、粘弹性等。每个减震元件可以被耦接到载荷的不同部分或仅连接到载荷的特定部分。例如,减震元件可以位于载荷与可移动平台之间的接触点或耦接点或表面附近。在某些实例中,载荷可以嵌入在一个或多个减震元件内或由其包围。
图3示出了根据各种实施例的示例性数据处理系统。如图3中所示,数据处理系统300可以采用多个数据处理器(例如,数据处理器A-D 301-304),以处理从一个或多个传感器321-322接收的数据。例如,数据处理器A 301可以是数据输入处理器,该数据输入处理器可以负责经由输入接口306接收输入数据。诸如数据处理器B-C 302-303之类的其它数据处理器可以使用各种可用步骤或算法(例如,图像处理步骤或算法)处理接收的数据。附加地,多个数据处理器之一(例如,数据处理器D 304)可以是数据传输处理器,该数据传输处理器可以负责向物理连接至或电连接至数据处理系统300的终端或远离的数据处理系统300的终端发送已处理的数据。
根据各种实施例,多个数据处理器(例如,数据处理器A-D 301-304)可以利用存储缓冲区310,以执行各种数据处理任务。例如,存储缓冲区310可以是环形缓冲区。存储缓冲区310可以包括多个缓冲区块(例如,块320a-块320f),每个缓冲区块可以与存储器中的基地址相关联。
如图3中所示,控制器305可以被用于协调各个数据处理器301-304的操作。例如,数据处理器(例如,数据处理器B 302)可以是离线模块,该离线模块可能需要由控制器305配置以执行一个或多个任务。在一个示例中,控制器305可以向数据处理器B 302提供与缓冲区相关的信息(例如,缓冲区ID)。因此,数据处理器B 302可以使用与缓冲区ID相关联的基地址访问具有缓冲区ID的缓冲区块。
附加地,每个缓冲区块320a-块320f可以与状态指示符(未示出)相关联,该状态指示符提供了与每个缓冲区块相关联的处理状态。例如,状态指示符可以被存储在片上存储器和/或片外存储器中。根据各种实施例,控制器305可以更新与存储缓冲区310中的缓冲区块(例如,缓冲区块320b)相关联的状态指示符,以指示数据处理器A 301正在存储缓冲区310中的缓冲区块320b上执行写操作311。备选地,控制器305可以更新与存储缓冲区310中的缓冲区块(例如,缓冲区块320b)相关联的状态指示符,以指示数据处理器A 301已经完成在存储缓冲区310中的缓冲区块320b上的写操作311。随后,在数据处理器B 302结束在缓冲区块320b中处理数据之后,控制器305可以更新(例如,复位)与存储缓冲区中的缓冲区块320b相关联的状态指示符。备选地,执行写操作(例如,缓冲区块320b上的写操作311)的数据处理器可以在适当时更新状态指示符(即,并不是依靠控制器305来维护状态指示符)。例如,一旦数据处理器A 301已经完成将接收的数据写入缓冲区块320b的写操作311,数据处理器A 301就可以更新与缓冲区块320b相关联的状态指示符。
而且,为了降低数据处理中的延迟,数据处理系统300允许多个数据处理器同时访问缓冲区块。例如,在数据处理器B 302正从缓冲区块320b读出数据的同时,数据处理器A301可以将数据写入相同的缓冲区块320b。如图3中所示,数据处理器B 302可以直接从数据处理器A 301接收细粒度的控制信息。例如,这种细粒度的控制信息可以指示由数据处理器A 301执行的写操作的状态(或进度)。因此,数据处理系统300可以实现低延迟并且也可以减少用于处理大量消息的控制器305上的负担。
图4示出了根据本发明的各种实施例的使用数据处理系统400支持高效数据处理。如图4(a)和图4(b)中所示,第一数据处理器(例如,数据处理器A 301)可以在缓冲区块320b上执行写操作。例如,缓冲区块320b可以被用于接收和存储多个数据单元(例如,数据单元401-402)。而且,数据处理器A 301可以向数据处理器B 302提供指示由数据处理器A 301执行的写操作的状态(或进度)的参考。因此,为了减少中间实体上的消息收发负担,数据处理系统400可以避免向中间实体(例如,控制器(未示出))发送消息。在一个示例中,通过采用直接有线连接,数据处理器A 301可以使用电信号向数据处理器B 302周期性地提供参考410a以实现可靠性和高效性。
根据各种实施例,数据处理器B 302可以使用预定阈值来确定缓冲区块320b是否包含要被数据处理器B 302处理的足够的数据。例如,预定阈值可以指示要被处理的数据单元在缓冲区块320b是否可用。备选地,预定阈值可以定义要被数据处理器处理的数据单元。在各种实施例中,数据单元可以定义可以被一起或顺序地处理以实现高效性的数据的单元(例如,图像帧中的片或块(tile))。根据各种实施例,可以基于接收的参考信息410a来评估预定阈值。例如,接收的参考信息410a可以包括指示通过写操作已完成的缓冲区块的百分比、总字节或行等的信息。
如图4(a)中所示,数据处理器A 301可以执行写操作411a以在缓冲区块320b中的数据单元402中写入数据。例如,数据处理器A 301可以向数据处理器B 302提供细粒度的控制信息(例如,当前的行数)。该行数可以大于数据单元401的行数,但是小于数据单元402的行数。因此,数据处理器B 302可以(例如,经由执行读操作411b)从缓冲区块320b获得数据单元401并且可以等待数据处理器A 301结束写入数据单元402,直到足够的数据可用于数据单元402(例如,要作为整体被处理)。
如图4(b)中所示,数据处理器A 301可以执行写操作411b以在缓冲区块320b中写入数据。数据处理器A 301可以向数据处理器B 302提供可以包括当前的行数的细粒度的控制信息410。该行数可以大于数据单元402的行数,其指示由数据处理器A 301执行的写操作411b已经结束在数据单元402中写入数据。因此,由于在数据单元402中存在用于作为整体被处理的足够的数据,数据处理器B 302可以(例如,经由执行读操作412b)从缓冲区块320b获得数据单元402。因此,数据处理系统300可以实现低延迟和减少用于处理消息的控制器305上的负担两者。
而且,数据处理器A 301可以继续在存储缓冲区中的不同的缓冲区块中写入数据。根据各种实施例,该缓冲区块可以是基于评估缓冲区块320b的基地址的下一个缓冲区块。备选地,该缓冲区块可以是预先分配的缓冲区块。
图5示出了根据本发明的各种实施例的使用不同的缓冲区块协调数据处理。如图5中所示,图像处理系统500可以采用多个数据处理器(例如,数据处理器A-D 301-304)以执行各种数据处理任务。多个数据处理器301-304可以利用包括多个缓冲区块(例如,块320a-块320f)的存储缓冲区310,以处理从一个或多个传感器321-322接收的数据。
例如,数据处理器A 301可以是数据输入处理器,该数据输入处理器可以经由输入接口306从传感器321-322接收输入数据。而且,数据处理器A 301可以将接收的(和/或已处理的)数据写入存储缓冲区310中的一个或多个缓冲区块。在数据处理器A 301结束将数据写入缓冲区块302b之后,数据处理器A 301可以开始将数据写入缓冲区块320c。附加地,在数据处理器A 301正在(例如,经由执行写操作511)将数据写入缓冲区块320c的同时,数据处理器B 302可以(例如,经由执行读操作312)处理从块302b获得的数据。
根据各种实施例,数据处理器(例如,数据处理器B 302)可以向控制器305发送指示其已经结束处理特定缓冲区块(例如,块320b)中的数据(即,其可用于处理更多数据)的消息(例如,中断)。随后,控制器305可以确定数据处理器B 302可以继续从中读取数据进行处理的缓冲区块。
如图5中所示,控制器305可以向数据处理器A 301询问其状态。在响应时,数据处理器A 301可以向控制器305指示其正在将数据写入缓冲区块320c。在从数据处理器A 301接收响应之后,控制器305可以向数据处理器B 302提供参考。该参考可以指示数据处理器B302可能能够从缓冲区块320c(例如,经由读操作512)获得数据,以获得最新的数据。
在从控制器305接收指令之后,数据处理器B 302可以检查或确认其是否可以开始执行用于从缓冲区块320c读出数据的读操作512。如图5中所示,数据处理器B 302可以从数据处理器A 301接收其它参考信息(例如,指示写操作511的状态或进度的细粒度的控制信息)。数据处理器B 302可以基于这些细粒度的控制信息来评估从控制器305接收的指令,无需重复与控制器305通信。因此,数据处理系统300可以实现低延迟和减少用于处理消息的控制器305上的负担。
图6示出了根据本发明的各种实施例的在数据处理时跳过缓冲区块。如图6中所示,图像处理系统600可以采用多个数据处理器(例如,数据处理器A-D 301-304)以执行各种数据处理任务。多个数据处理器(例如,数据处理器A-D 301-304)可以利用包括多个缓冲区块(例如,块320a-块320f)的存储缓冲区310,以处理经由输入接口306从一个或多个传感器321-322接收的数据。
根据各种实施例,控制器305可以识别可能发生处理延时的情况。例如,控制器305可以检测数据处理器A 301的写操作611的进度实质上早于数据处理器B 302的读操作312的进度(即,数据处理器B 302在数据处理时滞后)。如图6中所示,在结束将数据写入块320c之后,数据处理器A 301可以执行将数据写入块320d的写操作611。当数据处理器B 302结束处理来自块320b的数据时,数据处理器B 302可以向控制器305发送消息。在响应时,控制器305可以指示数据处理器B 302执行读操作612,从块320d读取并开始处理数据(即,跳过存储缓冲区310中的缓冲区块302c中存储的数据),以赶上数据处理。
图7示出了根据本发明的各种实施例的使用数据处理系统处理数据。如图7中所示,图像处理系统700可以采用多个数据处理器(例如,数据处理器A-D 301-304)以执行各种数据处理任务。多个数据处理器(例如,数据处理器A-D 301-304)可以利用包括多个缓冲区块(例如,块320a-块320f)的存储缓冲区310,以处理经由输入接口306从一个或多个传感器321-322接收的数据。
根据各种实施例,数据处理器可以获得用于确定其可以从哪个缓冲区块获得要被处理的数据的信息。例如,数据处理器D 304可以是可以向终端(未示出)发送已处理的数据的数据传输处理器。接着,终端(例如,远程终端)可以接收发送的数据并且使数据可用,例如可用于显示。
如图7中所示,在数据处理器D 304和上游数据处理器(例如,数据处理器C 303)之间没有直接有线连接。代替直接从数据处理器C 303(例如,经由直接有线连接)接收这些信息,数据处理器D 304可以直接从控制器305(例如,通过经由控制器305的一个或多个已有连接)获得这些信息。控制器305可以询问数据处理器C 303并从数据处理器C 303获得参考信息。这些参考信息可以指示数据处理器C 303正在执行或已经执行了写操作的缓冲区块。基于已获得的参考信息,控制器305可以确定数据处理器D 304可以从哪个缓冲区块开始获得用于处理的数据。
如图7中所示,从数据处理器C 303获得的参考信息可以指示其当前正向缓冲区块320d写入。因此,控制器305可以指示数据处理器D 304从缓冲区块320d获得数据,以降低延迟并避免不必要的时延。
图8示出了根据本发明的各种实施例的在数据处理系统中协调数据处理。如图8中所示,图像处理系统800可以采用多个数据处理器(例如,数据处理器A-D 301-304)以执行各种数据处理任务。多个数据处理器(例如,数据处理器A-D301-304)可以利用包括多个缓冲区块(例如,块320a-块320f)的存储缓冲区310,以处理经由输入接口306从一个或多个传感器321-322接收的数据。例如,数据处理器D304可以是可以向移动终端(未示出)发送已处理的数据的数据传输处理器。
根据各种实施例,控制器305可以识别发生处理延时的情况。例如,控制器305可以检测通过数据处理器C 303的写操作811的进度实质上早于通过数据处理器D 304的读操作812的进度(即,数据处理器D 304在数据处理时滞后)。如图8中所示,在数据处理器D 304正在从块320d读出并处理数据的同时,数据处理器A 301可以在完成将数据写入块320e之后将数据写入块320f。在这种情况下,控制器305可以指示数据处理器D 304停止将数据写入块320f或放慢(即,减小速率)将数据写入缓冲区块320f,以防止缓冲区溢出。
图9示出了根据本发明的各种实施例的以顺序方式处理数据。如图9中所示,数据处理系统900可以采用多个数据处理器以顺序地执行数据处理任务。例如,多个数据处理器(例如,数据处理器A-D 301-304)可以利用包括多个缓冲区块(例如,块320a-块320f)的存储缓冲区310,以处理经由输入接口306从一个或多个传感器321-322接收的数据。
如图9中所示,数据处理器A 301可以执行用于将数据写入缓冲区块320b的写操作311,且数据处理器B 302可以在处理数据之前执行从缓冲区块320b读出数据的读操作312。例如,数据处理器B 302可以使用预定阈值来确定缓冲区块320b是否包含要被数据处理器B302处理的足够的数据。然后,当存储缓冲区310中的缓冲区块320b包含要被数据处理器B302处理的足够的数据时,数据处理器B 302可以从该缓冲区块320b获得要被处理的数据。而且,数据处理器B 302可以处理从存储缓冲区310中的缓冲区块320b获得的数据。
根据本发明的各种实施例,数据处理器B 302可以执行写操作911以将已处理的数据写入另一个缓冲区块(例如,缓冲区块320d)以进一步处理。例如,写操作911和读操作312可以以同步方式或以异步方式执行。如图9中所示,数据处理器C 303可以从控制器305获得参考,该参考可以包括指示存储缓冲区310中的缓冲区块320d的基地址的缓冲区ID。附加地,数据处理器C 303可以从数据处理器B 302接收其它参考信息,该其它参考信息可以指示数据处理器B 302将数据写入存储缓冲区310的写操作911的状态或进度。
类似于数据处理器B 302,数据处理器C 303可以使用预定阈值来确定缓冲区块320d是否包含要被数据处理器C 303处理的足够的数据。根据各种实施例,数据处理器B302使用的预定阈值可以与数据处理器C 303使用的预定阈值相同或基本类似。例如,数据处理器B 302和数据处理器C 303二者使用的预定阈值可以基于数据处理时的数据单元(例如,用于数据处理的图像帧中的片)。备选地,数据处理器B 302使用的预定阈值和数据处理器C 303使用的预定阈值可以是不同的,例如,作为在不同的数据处理阶段处理数据的结果。
然后,在缓冲区块加载有要由数据处理器C 303处理的足够的数据之后,数据处理器C 303可以使用已获得的参考(例如,缓冲区ID),从存储缓冲区310中的缓冲区块320d获得要被处理的数据。因此,数据处理器C 303可以处理从存储缓冲区310中的缓冲区块320获得的数据,以降低延迟。附加地,数据处理器C 303可以以类似的方式(对其不做限制)将已处理的数据写入存储缓冲区310中的缓冲区块以进行进一步处理。
图10示出了根据本发明的各种实施例的基于缓冲区块以顺序方式处理数据。如图10中所示,数据处理系统1000可以采用操作用于顺序地执行数据处理任务的多个数据处理器。例如,多个数据处理器(例如,数据处理器A-D 301-304)可以利用包括多个缓冲区块(例如,块320a-块320f)的存储缓冲区310,以处理经由输入接口306从一个或多个传感器321-322接收的数据。
如图10中所示,数据处理器A 301可以执行用于将数据写入缓冲区块320b的写操作311,且数据处理器B 302可以在处理之前执行从缓冲区块320b读出数据的读操作312。而且,数据处理器B 302可以使用预定阈值来确定缓冲区块320b是否加载了要被数据处理器B302处理的足够的数据。然后,当存储缓冲区310中的缓冲区块320b包含要被数据处理器B302处理的足够的数据时,数据处理器B 302可以从该缓冲区块320b获得要被处理的数据。因此,数据处理器B 302可以处理从存储缓冲区中的缓冲区块获得的数据。
根据本发明的各种实施例,数据处理器B 302可以执行写操作911以将已处理的数据写入缓冲区块320b以进一步处理。根据各种实施例,写操作1011可以只更新或修改缓冲区块320b中在相同或相似位置的数据。备选地,写操作1011可以将数据写入缓冲区块320b的不同部分中。
如图10中所示,数据处理器C 303可以从控制器305获得指示存储器中的缓冲区块320b的基地址的参考(例如,缓冲区ID)。为了减少延迟,数据处理器C 303可以从数据处理器B 302接收其它参考信息。这些参考信息可以指示数据处理器302将数据写入存储缓冲区310的过程中的写操作911的状态或进度。
根据各种实施例,数据处理器C 303可以从上游数据处理器(例如,数据处理器A301)接收参考信息,使得数据处理器C 303可以获得并处理块320b中由数据处理器A 301写入的数据,数据处理器A也可以是数据处理器B 302的上游数据处理器。
类似于数据处理器B 302,数据处理器C 303可以使用预定阈值来确定缓冲区块320b是否包含要被数据处理器C 303处理的足够的数据。根据各种实施例,由数据处理器B302使用的预定阈值可以与由数据处理器C 303使用的预定阈值相同或基本上相似(例如,基于用于数据处理的数据单元)。备选地,在不同的数据处理阶段的不同状态中,用于处理数据的,数据处理器B 302使用的预定阈值和数据处理器C 303使用的预定阈值可以是不同的。
然后,在缓冲区块320d包含要被数据处理器C 303处理的足够的数据之后,数据处理器C 303可以使用参考,从存储缓冲区310中的缓冲区块320d获得用于处理的数据。因此,数据处理器C 303可以处理从存储缓冲区中的缓冲区块320b获得的数据。附加地,数据处理器C 303可以以类似的方式(对其不做限制)将已处理的数据写入存储缓冲区310中的缓冲区块以进行进一步处理。
图11示出了根据本发明的各种实施例的示例性图像处理系统。如图11中所示,图像处理系统1100可以采用多个数据处理器1101-1104以执行各种图像处理任务。
根据各种实施例,多个数据处理器1101-1104可以用于处理已接收的图像帧1120。例如,图像处理系统1100可以包括数据输入处理器(例如,数据输入(DataIn)1101),数据输入处理器可以经由输入接口(例如,移动产业处理器接口(MIPI)1105)接收图像帧1120。而且,图像处理系统1100可以包括图像信号处理器(例如,ISP 1102),该图像信号处理器可以使用各种图像信号处理技术处理已接收的图像帧1120。而且,图像处理系统1100可以包括编解码处理器(例如,Venc 1103),该编解码处理器可以编码从上游数据处理器(例如,DataIn 1101或ISP 1102)获得的图像信息。而且,图像处理系统1100可以包括数据传输处理器(例如,调制解调器1104),该数据传输处理器可以向远程终端发送已编码的图像(例如,用于显示)。
根据各种实施例,数据处理器1101-1104中的每一个数据处理器可以是独立的处理器芯片、诸如片上系统(SOC)之类的处理器芯片的一部分、或处理器芯片中的核。根据各种实施例,图像处理系统1100可以在可移动平台上部署。例如,图像处理系统1100可以在UAV上或UAV外部署。图像处理系统1100可以高效地处理由UAV承载的摄像机捕获的图像和/或视频。
而且,图像处理系统1100可以使用用于协调多个数据处理器1101-1104的操作的CPU 1106(上的控制器)。例如,控制器可以依靠由CPU 1106提供的中断机制,该中断机制可以基于在CPU 1106上运行的软件中断处理程序。
根据各种实施例,图像处理系统1100可以利用存储缓冲区,该存储缓存区可以是使用DDR 1110实现的。例如,存储缓冲区可以使用环形缓冲区(例如,具有8个缓冲区块)实现。每个缓冲区块可以被分配缓冲区标识符(ID),该缓冲区标识符可以唯一地标识存储缓冲区中的缓冲区块。而且,每个缓冲区块可以与基地址相关联,数据处理器可以利用该基地址访问缓冲区块中包含的数据。
附加地,每个缓冲区块可以被配置为(并且被用于)以单元存储数据,以实现数据处理中的高效性。例如,每个缓冲区块可以包含一个图像帧,该图像帧可以被划分成一个或多个数据单元(例如,片或块)。备选地,每个缓冲区块可以包含多个图像帧并且每个数据单元可以是单个数据帧。
为了高效地处理接收的图像帧1120,控制器可以协调经由DDR 1110中的存储缓冲区访问和传送数据的数据处理器1101-1104。如图11中所示,数据输入处理器DataIn(数据输入)1101可以经由MIPI接口1105接收输入图像帧1120。而且,数据输入处理器DataIn(数据输入)1101可以执行将接收的图像帧1120写入DDR 1110中的存储缓冲区的写操作。例如,数据输入处理器DataIn(数据输入)1101可以将每个图像帧写入单个缓冲区块。数据输入处理器DataIn(数据输入)1101可以针对(例如,环形缓冲区中的)特定缓冲区块维护状态指示符,诸如“有效”标志。在一个实例中,在结束在特定缓冲区块中写入数据之后,DataIn(数据输入)1101可以将“有效”标志设置为1。可选地,数据输入处理器DataIn(数据输入)1101可以维护针对每个特定缓冲区块的基地址。
如图11中所示,图像信号处理器ISP 1102可以处理DDR 1110中的存储缓冲区中存储的图像帧。根据各种实施例,可以是离线模块的图像信号处理器ISP 1102可以从CPU1106接收用于执行各种图像处理任务的指令。例如,CPU 1106可以向ISP 1102提供缓冲区块的缓冲区ID,该缓冲区块存储了要被处理的图像帧。因此,ISP 1102可以基于与缓冲区ID相关联的缓冲区块的基地址,访问缓冲区块中存储的数据。然后,ISP 1102可以从DDR 1110的存储缓冲区中的缓冲区块获得数据并处理已获得的数据。
根据各种实施例,图像处理系统1100可以支持子帧级别(例如,片级别)的高效的图像处理过程,以降低处理图像数据中的延迟。例如,ISP 1102可以从DataIn(数据输入)1101获得附加参考信息,该附加参考信息指示由数据输入处理器执行的写操作的状态或进度。
为了协调片级别的图像数据的处理,ISP 1102可以确定特定的片的数据是否完全被写入(因此变为可用)缓冲区块中(即,确定缓冲区块中是否存在要被图像信号处理器处理的充足的或足够的数据)。因此,预定阈值可以保证在缓冲区块中存在可用于ISP 1102的要被处理的片。例如,预定阈值可以基于行数,该行数指示图像中的已经被写入缓冲区块(具有特定的缓冲区ID)的行数。
如图11中所示,DataIn(数据输入)1101可以经由DataIn(数据输入)1101和ISP1102之间的硬接线连接向ISP 1102提供诸如缓冲区ID(例如,buf_ID 1111)和行数(例如,Lin_cnt 1112)之类的状态信息。ISP 1102可以比较从DataIn(数据输入)1101接收的buf_ID1111和从CPU1106接收的参考中的缓冲区ID。如果buf_ID 1111与从CPU 1106接收的参考中的缓冲区ID不同,则ISP 1102可以确定DataIn 1101已经完成用于将图像数据写入特定缓冲区块中的写操作,在这种情况下,ISP 1102可以处理特定缓冲区块中存储的图像帧。在另一方面,如果buf_ID 1111与从CPU 1106接收的参考中的缓冲区ID相同,则ISP 1102可以确定DataIn(数据输入)1101正向缓冲区块中写入数据,在这种情况下,ISP 1102可能需要通过应用预定阈值来确定,在子帧级别,特定缓冲区块中是否存在足够的数据。例如,ISP1102可以通过评估从DataIn(数据输入)1101接收的Lin_cnt 1112是否指示图像帧中要被处理的下一个片在特定缓冲区块中可用,来确定存在足够的数据。然后,ISP 1102可以处理从存储缓冲区中的缓冲区块获得的图像数据,并经由DDR 110中的存储缓冲区将已处理的数据提供给下游数据处理器(例如,编解码处理器)。
如图11中所示,编解码处理器Venc 1103可以编码从DataIn(数据输入)1101或ISP1102接收的图像数据。Venc 1103可以从CPU 1106上的控制器接收参考(例如,缓冲区ID)。参考可以指示存储器中包含要被编解码处理器编码的数据的缓冲区块的基地址。而且,Venc 1103可以从上游数据处理器(例如,数据输入处理器或图像信号处理器)接收另一个参考。在各种实施例中,Venc 1103可以从ISP 1102接收参考,该参考指示由图像信号处理器将数据写入存储缓冲区的状态(或进度)。例如,参考可以包括缓冲区块标识符(Buf_ID1121)和由图像信号处理器完成的行数(Line_Cnt 1121)。
而且,Venc 1103可以评估接收的Buf_ID 1121和从CPU 1106接收的参考中的缓冲区ID。如果Buf_ID 1121与从CPU 1106接收的参考中的缓冲区ID不同,则DataIn(数据输入)1101已经完成在特定缓冲区块中写入图像数据。因此,Venc 1103可以进行对特定缓冲区块中存储的图像数据的编码。在另一方面,如果Buf_ID 1121与从CPU 1106接收的参考中的缓冲区ID相同,则ISP 1102可以知道DataIn(数据输入)1101正在特定缓冲区块中写入数据,在这种情况下,ISP 1102可能需要通过应用预定阈值来确定特定缓冲区块中是否存在足够的数据。例如,ISP 1102可以通过评估从ISP 1102接收的Lin_cnt 1122是否指示图像帧中要被编码的下一个片在特定缓冲区块中可用,来确定存在足够的数据。
然后,当缓冲区块包含要被编解码处理器Venc 1103处理的足够的数据时,Venc1103可以从存储缓冲区中的缓冲区块获得数据。而且,Venc 1103可以处理从存储缓冲区中的不同的缓冲区块获得的数据。
备选地,例如,在不使用ISP 1102的各种情况下,Venc 1103可以获得由DataIn(数据输入)1101写入DDR 1110的数据。如图11中所示,Venc 1103可以从DataIn(数据输入)1101接收Buf_ID 1111和Line_Cnt 1112。根据各种实施例,一个或多个复用接口可以被用于从不同的数据处理器接收状态信息。例如,MUX接口1131可以被用于从DataIn(数据输入)1101接收Buf_ID 1111和从ISP 1102接收Buf_ID 1111。而且,MUX接口1132可以被用于从DataIn(数据输入)1101接收Line_Cnt 1112和从ISP 1102接收Line_Cnt 1132。因此,图像处理系统1100允许使用不同的配置在不同的图像处理模式之间切换,以处理不同的情况。
而且,数据处理系统1100还可以包括数据传输处理器(例如,调制解调器1104)。如图11中所示,Venc1103和调制解调器1104之间可以不存在硬线连接。例如,编解码处理器Venc 1103可以在一个或多个寄存器中维护指示符(例如,Buf_ID 1141、Slice_ID 1142、以及Slice_Len 1143)。调制解调器1104可以向Venc 1103询问这些信息,并确定DDR 1110中存储的已编码的数据是否足够用于传输。然后,调制解调器1104可以获得这些信息(例如,经由通过CPU 1106的连接),并发送DDR 1100中的对应缓冲区块中的已编码的图像信息(例如,借助一个或多个数字信号处理器(DSP))。
根据各种实施例,该系统可以保证每个已编码的图像帧被适当地传输并且被远程终端(例如,UAV的遥控终端)接收,以保证远程终端可以成功地接收和解码图像信息(例如,用于显示)。在已编码的图像帧的传输被中断或不令人满意的情况下,可以指示Venc处理器停止或放慢处理,以防止帧缓冲区溢出。
图12示出了根据本发明的各种实施例的使用用于数据处理的控制器的流程图。如图12中所示,在步骤1201,控制器可以从数据处理器接收消息,其中,该消息指示数据处理器可用于处理数据。而且,在步骤1202,控制器可以向上游数据处理器询问与上游数据处理器的写操作相关联的参考信息。在步骤1203,控制器可以从上游数据处理器接收参考信息。然后,在步骤1204,控制器可以向数据处理器提供参考信息,数据处理器可以基于接收的参考信息处理数据。
图13示出了根据本发明的各种实施例的使用数据处理器的流程图。如图13中所示,在步骤1301,数据处理器可以从控制器和上游数据处理器二者接收参考信息。而且,在步骤1302,数据处理器可以确定缓冲区块中是否存在足够的数据用于处理。然后,在步骤1303,数据处理器可以从缓冲区块获得并处理数据。可选地,在步骤1304,数据处理器可以将已处理的数据写入相同或不同的缓冲区块用于进一步处理。
本发明的许多特征可以以硬件、软件、固件或其组合的形式执行,或者使用硬件、软件、固件或其组合执行,或者借助于硬件、软件、固件或其组合执行。因此,可以使用处理系统(例如,包括一个或多个处理器)来实现本发明的特征。示例性处理器可以包括但不限于:一个或多个通用微处理器(例如,单核或多核处理器)、专用集成电路、专用指令集处理器、图形处理单元、物理处理单元、数字信号处理单元、协处理器、网络处理单元、音频处理单元、加密处理单元等。
本发明的特征可以以计算机程序产品的形式、或者使用计算机程序产品、或者借助于计算机程序产品执行,计算机程序产品例如是具有存储在其上/内的指令的存储介质(媒介)或计算机可读介质(媒介),这些指令可用于对处理系统进行编程以执行本文陈述的任何特征。存储介质可以包括但不限于:任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、纳米系统(包括分子存储器IC)或者适于存储指令和/或数据的任何类型的介质或设备。
存储在任何一个机器可读介质(媒介)上的本发明的特征可以并入软件和/或固件中,用来对处理系统的硬件进行控制,并且用来使处理系统能够利用本发明的结果与其他机构进行交互。这样的软件或固件可以包括但不限于应用代码、装置驱动程序、操作系统和执行环境/容器。
本发明的特征还可以使用例如诸如专用集成电路(ASIC)和现场可编程门阵列(FPGA)设备的硬件组件以硬件实现。实现硬件状态机以执行在此描述的功能对于相关领域的技术人员将是显而易见的。
此外,可以使用包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算机可读存储介质在内的一个或多个常规通用或专用数字计算机、计算设备、机器或微处理器,来方便地实现本公开的实施例。编程技术人员可以根据本公开的教导容易地准备适当的软件编码,这对软件领域的技术人员将是显而易见的。
尽管上面已经描述了本发明的各实施例,但是应当理解,它们仅仅是作为示例而不是限制来提出的。本领域普通技术人员应该清楚的是在不脱离本发明的精神和范围的情况下可以进行形式和细节上的各种变化。
以上已经在功能构建块的辅助下描述了本发明,这些功能构建块示出了指定功能及其关系的执行。为便于描述,本文通常任意定义这些功能构建块的边界。只要所指定的功能及其关系被适当地执行,就可以定义备选边界。因此任何这样的替代边界都在本发明的范围和精神之内。
已经提供了本发明的上述描述,用于说明和描述的目的。不是旨在是穷尽性的或将公开的精确形式作为对本发明的限制。本发明的宽度和范围不应当受到上述示例性实施例中任意一个的限制。许多修改和变化对于本领域普通技术人员将是明显的。这些修改和变化包括所公开的特征的任何相关组合。对实施例的选择和描述是为了最好地解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够理解本发明的各实施例以及适合于预期特定用途的各种修改。意图在于,本发明的范围由所附权利要求及其等同物限定。
Claims (30)
1.一种用于支持可移动平台上的数据处理的系统,包括:
具有多个缓冲区块的存储缓冲区;
第一数据处理器,操作用于:
执行用于将数据写入存储缓冲区的第一写操作,以及
向第二数据处理器提供第一参考,其中,所述第一参考指示所述第一数据处理器的所述第一写操作的状态或进度;以及
控制器,操作用于:向所述第二数据处理器提供指示所述存储缓冲区中的第一缓冲区块的第二参考,以及
其中,所述第二数据处理器操作用于:
接收所述第一参考和所述第二参考;
使用第一预定阈值,基于所述第一参考来确定所述第一缓冲区块是否包含要被所述第二数据处理器处理的足够的数据;
当所述第一缓冲区块包含要被处理的足够的数据时,使用所述第二参考从所述存储缓冲区中的所述第一缓冲区块获得要被处理的所述数据,以及
处理从所述存储缓冲区中的所述第一缓冲区块获得的所述数据。
2.根据权利要求1所述的系统,其中,所述第一数据处理器或所述控制器中的至少一个操作用于:当所述第一数据处理器开始执行在所述存储缓冲区中的所述第一缓冲区块上的第一写操作时、或在所述第一数据处理器已经完成在所述存储缓冲区中的所述第一缓冲区块上的写操作之后,更新与所述存储缓冲区中的所述第一缓冲区块相关联的指示符。
3.根据权利要求2所述的系统,其中,所述控制器操作用于:在第二数据处理模块结束处理所述第一缓冲区块中的数据之后,更新与所述存储缓冲区中的所述第一缓冲区块相关联的所述指示符。
4.根据权利要求1所述的系统,其中,在从所述第二数据处理器接收到指示所述第二数据处理器已经结束处理所述第一缓冲区块中的所有数据的消息之后,所述控制器操作用于:
从所述第一数据处理器获得第三参考,其中,所述第三参考指示所述第一数据处理器正在将数据写入其中的所述存储缓冲区中的第二缓冲区块;以及
向所述第二数据处理器提供所述第三参考。
5.根据权利要求4所述的系统,其中,所述第二数据处理器操作用于:如果所述第一数据处理器已经完成将数据写入所述存储缓冲区中的第三缓冲区块,则跳过所述存储缓冲区中的所述第三缓冲区块中的数据,其中,所述第二缓冲区块在所述存储缓冲区中的所述第三缓冲区块之后。
6.根据权利要求4所述的系统,其中,所述第二数据处理器操作用于:如果所述第一数据处理器已经完成将数据写入所述存储缓冲区中的第三缓冲区块,则停止将数据写入所述第二缓冲区块、或减小将数据写入所述第二缓冲区块的速率,其中,所述第二缓冲区块在所述存储缓冲区中的所述第三缓冲区块之后。
7.根据权利要求1所述的系统,其中,所述第一预定阈值定义一数据单元,所述数据单元由所述第二处理器使用以处理所述第一缓冲区块中的所述数据。
8.根据权利要求1所述的系统,还包括:
第三数据处理器,其中,所述第三数据处理器操作用于:
从所述第二数据处理器接收第四参考,其中,所述第四参考指示由所述第二数据处理器将数据写入所述存储缓冲区的第二写操作的状态或进度;
从所述控制器接收第五参考,其中,所述第五参考指示所述存储缓冲区中的第四缓冲区块;
使用第二预定阈值,基于所述第五参考来确定所述第四缓冲区块是否包含要被所述第三数据处理器处理的足够的数据;
当所述第五缓冲区块包含要被所述第三数据处理器处理的足够的数据时,使用所述第五参考从所述存储缓冲区中的所述第四缓冲区块获得要被处理的所述数据,以及
处理从所述存储缓冲区中的所述第四缓冲区块获得的数据。
9.根据权利要求8所述的系统,其中,所述第四缓冲区块是所述第一缓冲区块。
10.根据权利要求9所述的系统,其中,所述第三数据处理器操作用于:从所述第一数据处理器接收所述第一参考。
11.根据权利要求1所述的系统,其中,所述第二数据处理器经由所述控制器接收所述第一参考。
12.根据权利要求1所述的系统,其中,所述存储缓冲区中的所述多个缓冲区块中的每个缓冲区块被用于存储具有一个或多个片的图像帧。
13.根据权利要求1所述的系统,其中,所述第一数据处理器是数据输入处理器,所述数据输入处理器操作用于:接收一个或多个图像帧,每个图像帧包括一个或多个片。
14.根据权利要求13所述的系统,其中,所述第二数据处理器是图像信号处理器,所述图像信号处理器操作用于:从所述存储缓冲区中的所述第一缓冲区块获得并处理图像帧。
15.根据权利要求14所述的系统,其中,所述第一参考包括缓冲区块标识符(ID)和由所述数据输入处理器完成的行的计数。
16.根据权利要求15所述的系统,其中,所述图像信号处理器操作用于:当已完成的行的计数指示所述图像帧的片能够从所述第一缓冲区块获得时,处理所述图像帧的片。
17.根据权利要求1所述的系统,其中,第一数据处理器是图像信号处理器,且所述第二数据处理器是编码处理器。
18.根据权利要求1所述的系统,其中,第一数据处理器是编码处理器,且所述第二数据处理器是数据传输处理器。
19.根据权利要求1所述的系统,其中,所述存储缓冲区是存储器中维护的环形缓冲区。
20.根据权利要求1所述的系统,其中,所述第一数据处理器和所述控制器是使用被包括在专用集成电路ASIC和现场可编程门阵列FPGA之一中的电路实现的。
21.根据权利要求1所述的系统,其中,所述第一数据处理器和所述控制器是使用被包括在片上系统SoC或系统级封装SiP中的电路实现的。
22.一种用于支持数据处理的方法,包括:
由第二数据处理器从第一数据处理器获得第一参考,其中,所述第一参考指示由所述第一数据处理器将数据写入存储缓冲区的写操作的状态或进度;
由所述第二数据处理器从控制器获得第二参考,其中,所述第二参考与存储缓冲区中的第一缓冲区块相关联;
由所述第二数据处理器使用第一预定阈值,基于所述第一参考来确定所述第一缓冲区块是否包含要被所述第二数据处理器处理的足够的数据;
当所述第一缓冲区块包含要被所述第二数据处理器处理的足够的数据时,由所述第二数据处理器使用所述第二参考,从所述存储缓冲区中的所述第一缓冲区块获得要被处理的所述数据;以及
由所述第二数据处理器处理从所述存储缓冲区中的所述第一缓冲区块获得的所述数据。
23.根据权利要求22所述的方法,还包括:
向所述控制器通知所述第二数据处理器已经完成处理所述第一缓冲区块中的数据;以及
从所述控制器接收第三参考,其中,所述第三参考指示所述第一数据处理器正在将数据写入其中的所述存储缓冲区中的第二缓冲区块。
24.根据权利要求22所述的方法,还包括:
如果所述第一数据处理器已经完成将数据写入所述存储缓冲区中的第三缓冲区块,则跳过所述存储缓冲区中的所述第三缓冲区块中的数据,其中,所述第二缓冲区块在所述存储缓冲区中的所述第三缓冲区块之后。
25.根据权利要求22所述的方法,还包括:
如果所述第一数据处理器已经完成将数据写入所述存储缓冲区中的第三缓冲区块,则停止将数据写入所述第二缓冲区块、或减小将数据写入所述第二缓冲区块的速率,其中,所述第二缓冲区块在所述存储缓冲区中的所述第三缓冲区块之后。
26.一种存储指令的非暂时性计算机可读介质,所述指令在由处理器执行时,执行包括以下的步骤:
由第二数据处理器从第一数据处理器获得第一参考,其中,所述第一参考指示由所述第一数据处理器将数据写入存储缓冲区的写操作的状态或进度;
由所述第二数据处理器从控制器获得第二参考,其中,所述第二参考与存储缓冲区中的第一缓冲区块相关联;
由所述第二数据处理器使用第一预定阈值,基于所述第一参考来确定所述第一缓冲区块是否包含要被所述第二数据处理器处理的足够的数据;
当所述第一缓冲区块包含要被所述第二数据处理器处理的足够的数据时,由所述第二数据处理器使用所述第二参考,从所述存储缓冲区中的所述第一缓冲区块获得要被处理的所述数据;以及
由所述第二数据处理器处理从所述存储缓冲区中的所述第一缓冲区块获得的所述数据。
27.一种用于支持数据处理的系统,包括:
具有多个缓冲区块的存储缓冲区;
多个数据处理器,操作用于经由所述存储缓冲区传送数据,其中,所述多个数据处理器包括数据输入处理器和图像信号处理器;以及
控制器,操作用于协调所述多个数据处理器的操作,以及
其中,所述数据输入处理器操作用于:
经由一个或多个输入接口接收输入数据,其中,所述输入数据包括一个或多个图像帧,每个图像帧包括一个或多个片;以及
执行用于将接收的输入数据写入所述存储缓冲区的写操作,
其中,所述图像信号处理器操作用于:
从所述控制器获得第一参考,其中,所述第一参考指示所述存储缓冲区中的第一缓冲区块,并且其中,所述第一缓冲区块包含要被所述图像信号处理器处理的图像数据;
从所述数据输入处理器获得第二参考,其中,所述第二参考指示所述数据输入处理器的所述写操作的状态或进度;
基于所述第二参考和预定阈值,确定所述第一缓冲区块中的所述图像数据是否足以被所述图像信号处理器处理,并且其中,所述预定阈值与要被所述图像信号处理器处理的片相关联;
当所述第一缓冲区块中要被处理的所述图像数据被确定为足以被所述图像信号处理器处理时,使用所述第一参考,从所述存储缓冲区中的所述第一缓冲区块获得要被处理的所述图像数据;以及
处理从所述存储缓冲区中的所述第一缓冲区块获得的所述图像数据。
28.根据权利要求27所述的系统,其中,所述多个数据处理器还包括编解码处理器,其中,所述编解码处理器操作用于:对经由所述存储缓冲区中的第二缓冲区块接收的已处理的图像数据进行编码。
29.根据权利要求29所述的系统,其中,所述多个数据处理器还包括调制解调器,其中,所述调制解调器操作用于:向远程终端发送已编码的图像数据以进行显示。
30.根据权利要求27所述的系统,其中,每个缓冲区块被配置为包含具有一个或多个片的图像帧。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/090996 WO2019000363A1 (en) | 2017-06-30 | 2017-06-30 | SYSTEM AND METHOD FOR SUPPORTING DATA COMMUNICATION IN A MOBILE PLATFORM |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110651328A true CN110651328A (zh) | 2020-01-03 |
Family
ID=64740934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780090940.6A Pending CN110651328A (zh) | 2017-06-30 | 2017-06-30 | 用于支持可移动平台中的数据通信的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11138052B2 (zh) |
EP (1) | EP3607550A4 (zh) |
CN (1) | CN110651328A (zh) |
WO (1) | WO2019000363A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111756940A (zh) * | 2020-07-07 | 2020-10-09 | 广州威谱通信设备有限公司 | 一种可编程寻址双输入混音的精简数字语音通信系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6392654B1 (en) * | 1998-09-01 | 2002-05-21 | Ati Technologies | Method and apparatus for processing data with improved concurrency |
US20020143973A1 (en) * | 2000-09-12 | 2002-10-03 | Price Harold Edward | Streaming media buffering system |
WO2005006195A2 (en) * | 2003-06-30 | 2005-01-20 | Raytheon Company | System and method for selectively affecting data flow to or from a memory device |
US20110145514A1 (en) * | 2009-12-16 | 2011-06-16 | Samsung Electronics Co. Ltd. | Method and apparatus for inter-processor communication in mobile terminal |
CN103557875A (zh) * | 2013-11-10 | 2014-02-05 | 西安费斯达自动化工程有限公司 | 一种姿态测量系统的fpga硬件实现方法 |
EP3101876A1 (en) * | 2015-06-02 | 2016-12-07 | Goodrich Corporation | Parallel caching architecture and methods for block-based data processing |
CN106447596A (zh) * | 2016-09-30 | 2017-02-22 | 深圳云天励飞技术有限公司 | 图像处理中数据流的控制方法 |
CN106463164A (zh) * | 2014-07-29 | 2017-02-22 | 深圳市大疆创新科技有限公司 | 用于动态调整记录比特率以适应存储装置的写入速度的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8499137B2 (en) * | 2010-03-12 | 2013-07-30 | Lsi Corporation | Memory manager for a network communications processor architecture |
-
2017
- 2017-06-30 WO PCT/CN2017/090996 patent/WO2019000363A1/en unknown
- 2017-06-30 EP EP17915865.4A patent/EP3607550A4/en not_active Withdrawn
- 2017-06-30 CN CN201780090940.6A patent/CN110651328A/zh active Pending
-
2019
- 2019-12-30 US US16/729,978 patent/US11138052B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6392654B1 (en) * | 1998-09-01 | 2002-05-21 | Ati Technologies | Method and apparatus for processing data with improved concurrency |
US20020143973A1 (en) * | 2000-09-12 | 2002-10-03 | Price Harold Edward | Streaming media buffering system |
WO2005006195A2 (en) * | 2003-06-30 | 2005-01-20 | Raytheon Company | System and method for selectively affecting data flow to or from a memory device |
US20110145514A1 (en) * | 2009-12-16 | 2011-06-16 | Samsung Electronics Co. Ltd. | Method and apparatus for inter-processor communication in mobile terminal |
CN103557875A (zh) * | 2013-11-10 | 2014-02-05 | 西安费斯达自动化工程有限公司 | 一种姿态测量系统的fpga硬件实现方法 |
CN106463164A (zh) * | 2014-07-29 | 2017-02-22 | 深圳市大疆创新科技有限公司 | 用于动态调整记录比特率以适应存储装置的写入速度的系统和方法 |
EP3101876A1 (en) * | 2015-06-02 | 2016-12-07 | Goodrich Corporation | Parallel caching architecture and methods for block-based data processing |
CN106447596A (zh) * | 2016-09-30 | 2017-02-22 | 深圳云天励飞技术有限公司 | 图像处理中数据流的控制方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111756940A (zh) * | 2020-07-07 | 2020-10-09 | 广州威谱通信设备有限公司 | 一种可编程寻址双输入混音的精简数字语音通信系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200133747A1 (en) | 2020-04-30 |
EP3607550A4 (en) | 2020-06-24 |
US11138052B2 (en) | 2021-10-05 |
EP3607550A1 (en) | 2020-02-12 |
WO2019000363A1 (en) | 2019-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190324449A1 (en) | System and method for supporting synchronization in a movable platform | |
US10563985B2 (en) | Inertial sensing device | |
US20210405634A1 (en) | Method, device, and system for redundancy control | |
US10104300B2 (en) | System and method for supporting photography with different effects | |
US20210134001A1 (en) | System and method for moment capturing | |
WO2018090308A1 (en) | Enhanced localization method and apparatus | |
US10621883B2 (en) | Angularly unbounded three-axis spacecraft simulator | |
CN114019990A (zh) | 用于控制可移动物体的系统和方法 | |
CN109792543B (zh) | 根据可移动物捕获的图像数据创建视频抽象的方法和系统 | |
US11475682B2 (en) | System and method for controlling an unmanned vehicle with presence of live object | |
US11138052B2 (en) | System and method for supporting data communication in a movable platform | |
US20200413074A1 (en) | System and method for supporting video coding based on fast feedback | |
CN108028914B (zh) | 用于支持按第一人称视角(fpv)的三维显示的系统和方法 | |
CN111465919A (zh) | 用于支持可移动平台环境中的低延迟的系统和方法 | |
CN109408252A (zh) | 数据传输的方法、设备及介质 | |
WO2022180975A1 (ja) | 位置特定装置、情報処理装置、位置特定方法、情報処理方法、及びプログラム | |
CN110008856B (zh) | 定位方法和电子设备 | |
CN111052020A (zh) | 导航设备 | |
JP2022052780A (ja) | 点検システム及び管理サーバ、プログラム、ヒビ割れ情報提供方法 | |
JP2023009643A (ja) | ウェイポイント設定方法及びウェイポイント修正方法、管理サーバ、情報処理システム、プログラム |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200103 |