CN111465919A - 用于支持可移动平台环境中的低延迟的系统和方法 - Google Patents
用于支持可移动平台环境中的低延迟的系统和方法 Download PDFInfo
- Publication number
- CN111465919A CN111465919A CN201780097590.6A CN201780097590A CN111465919A CN 111465919 A CN111465919 A CN 111465919A CN 201780097590 A CN201780097590 A CN 201780097590A CN 111465919 A CN111465919 A CN 111465919A
- Authority
- CN
- China
- Prior art keywords
- data
- data processor
- buffer
- identifier
- processor
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
Abstract
系统和方法可以支持可移动平台环境中的数据处理和通信。该系统包括具有多个缓冲区块的存储缓冲区,其中,每个所述缓冲区块被配置为存储一个或多个数据帧。该系统还包括多个数据处理器,所述多个数据处理器至少包括第一数据处理器和第二数据处理器。该第一数据处理器操作用于:执行将数据写入存储缓冲区中的第一缓冲区块的第一写操作,并经由第一数据处理器和第二数据处理器之间的连接向第二数据处理器提供第一参考,其中,该第一参考指示第一数据处理器的第一写操作的状态或进度。然后,第二数据处理器操作用于:基于已接收的第一参考执行用于从存储缓冲区中的第一缓冲区块读取数据的读操作。
Description
版权公告
本专利文件的公开的一部分包含受到版权保护的材料。版权所有者不反对任何人对专利文献或专利公开的传真复制,因为它出现在专利和商标局的专利文件或记录中,但在其他方面保留所有版权。
技术领域
所公开的实施例总体涉及操作可移动平台,并且更具体地但非排他地涉及支持可移动平台环境中的数据处理和通信。
背景技术
诸如无人飞行器(UAV)之类的可移动平台可以用于执行针对军事和民用应用的监视、侦察和勘探任务。各种应用可以利用这种可移动平台。例如,这些应用可以包括远程视频广播、远程机器视觉、远程视频交互系统和VR(虚拟现实)/AR(增强现实)人机交互系统。普遍承认的是,视频处理和传输中的延迟对于这些应用的用户体验是至关重要的。这是本发明的实施例旨在涉及的一般领域。
发明内容
本文描述的是可以支持可移动平台环境中的数据处理和通信的系统和方法。该系统包括具有多个缓冲区块的存储缓冲区,其中,每个所述缓冲区块被配置为存储一个或多个数据帧。该系统还包括多个数据处理器,所述多个数据处理器至少包括第一数据处理器和第二数据处理器。该第一数据处理器操作用于:执行将数据写入存储缓冲区中的第一缓冲区块的第一写操作,并经由第一数据处理器和第二数据处理器之间的连接向第二数据处理器提供第一参考,其中,该第一参考指示第一数据处理器的第一写操作的状态或进度。然后,第二数据处理器操作用于:基于已接收的第一参考执行用于从存储缓冲区中的第一缓冲区块读取数据的读操作。
附图说明
图1示出根据本发明的各种实施例的可移动平台环境。
图2示出根据本发明的各种实施例的示例性视频处理/传输系统。
图3示出根据本发明的各种实施例的示例性视频流传输系统。
图4示出根据本发明的各种实施例的具有低延迟的示例性数据处理系统。
图5示出根据本发明的各种实施例的在数据处理系统中支持高效的数据处理。
图6示出根据本发明的各种实施例的具有低延迟的示例性视频处理系统。
图7示出根据本发明的各种实施例的具有低延迟的数据处理系统中的示例性数据处理器。
图8示出根据本发明的各种实施例的示例性数据处理系统中的硬件和软件协作。
图9示出根据本发明的各种实施例的数据处理系统中的基于环形缓冲区的数据处理。
图10示出根据本发明的各种实施例的数据处理系统中的基于环形缓冲区的具有低延迟的数据处理。
图11示出根据本发明的各种实施例的启用示例性数据处理系统中的硬件模块。
图12示出根据本发明的各种实施例的支持可移动平台环境中的数据处理和通信的流程图。
具体实施方式
通过示例的方式而非限制,在附图的图中示出本发明,其中相似的附图标记指示相似的元件。应当注意,在本公开中针对“实施例”或“一个实施例”或“一些实施例”的引用不一定是相同实施例,并且这些引用意指至少一个实施例。
本发明的如下描述使用无人飞行器(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可以可操作地允许可移动平台118以特定位置和/或取向悬停在空中。移动机构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示出根据本发明的各种实施例的示例性视频处理/传输系统。如图2中所示,视频处理/传输系统200可以采用用于执行各种视频处理和/或传输任务的多个数据处理器211-216。
根据各种实施例,视频处理/传输系统200可以包括多个部分或子系统,例如,经由一个或多个无线传输信道230连接的发送(Tx)侧201和接收(Rx)侧202。
如图2中所示,Tx侧201上的数据处理器211-213可以利用存储缓冲区210,而Rx侧202上的数据处理器214-216可以利用另一个存储缓冲区220,以交换数据并执行各种数据处理任务。备选地,视频处理/传输系统200的不同部分或子系统可以共享适于交换数据并执行各种数据处理任务的一个公共存储缓冲区或任意数量的存储缓冲区。
视频处理/传输系统200的Tx侧201可以包括图像信号处理器(ISP)211并可选地包括数据输入处理器(未示出)。例如,数据输入处理器可以经由输入接口(例如,移动工业处理器接口(MIPI))从一个或多个传感器221接收图像帧。图像信号处理器(ISP)211可以使用各种图像信号处理技术处理已接收的图像帧。
而且,图像处理系统200可以包括视频编码器212,视频编码器212可以对从上游数据处理器(例如,ISP 211)获得的图像信息(例如,视频帧)进行编码。视频编码器212可以被配置为对视频帧进行编码,以产生编码视频流。例如,编码器212可以被配置为接收视频帧作为输入数据,并且对输入视频数据进行编码以产生一个或多个压缩比特流作为输出数据。而且,视频处理/传输系统200的Tx侧201可以包括无线发送处理器213(例如,调制解调器),无线发送处理器213可以向远程终端发送已编码的视频流(例如,用于显示)。
另一方面,视频处理/传输系统200的Rx侧202可以包括无线接收处理器214(例如,调制解调器),无线接收处理器214可以从Tx侧201接收已编码的视频流。而且,视频处理/传输系统200的Rx侧202可以包括视频解码器215,其可以解码已接收的视频流。解码器215可以被配置为执行与编码器212的编码步骤相反的各种解码步骤,以生成重构的视频帧数据。此外,视频处理/传输系统200可以将已解码的图像帧发送至显示器控制器216,以在显示器222上显示已解码的图像。例如,显示器222可以是液晶显示器(LCD),而显示器控制器216可以是LCD控制器。
图3示出根据本发明的各种实施例的示例性视频流传输系统。如图3中所示,视频流传输系统300可以采用多个数据处理器311-315用于执行各种视频处理和/或流处理任务-。
根据各种实施例,视频流传输系统300可以包括经由物理传输层330连接的发送(Tx)侧301和接收(Rx)侧302。
如图3中所示,Tx侧301上的数据处理器311-312可以利用存储缓冲区310,而Rx侧302上的数据处理器313-315可以利用另一个存储缓冲区320,以交换数据并执行各种数据处理任务。备选地,视频流传输系统300的不同部分或子系统可以共享适于交换数据并执行数据处理任务的一个公共存储缓冲区或任意数量的存储缓冲区。
如图3中所示,视频流传输系统300的Tx侧301可以包括图像信号处理器(ISP)311,并可选地包括数据输入处理器(未示出)。例如,数据输入处理器可以经由输入接口(例如,移动工业处理器接口(MIPI))从一个或多个传感器321接收图像帧。图像信号处理器(ISP)311可以使用各种图像信号处理技术处理已接收的视频帧。同样,视频流传输系统300可以包括视频编码器312,视频编码器312可以将已接收的视频帧编码成一个或多个视频流。
此外,视频流传输系统300的Tx侧301可以经由物理传输层330将视频流流传输至接收(Rx)侧302。视频流传输系统300的Rx侧302可以接收编码视频流。而且,视频流传输系统300可以包括视频解码器313,视频解码器313可以将已接收的编码视频流解码为重构视频帧。此外,视频流传输系统300可以将已解码的图像发送至显示器控制315以例如在显示器322上进行显示。
可选地,虚拟现实(VR)/增强现实(AR)处理器314可以用于使各种场景就绪以显示。例如,使用虚拟现实(VR),用户可以例如经由覆盖双眼的头戴式耳机体验计算机生成的虚拟环境。增强现实(AR)或混合现实(MR)允许计算机实时生成的数据在真实世界的直接视图或间接视图上的叠加。使用AR,该系统使得能够利用对直观地可视化数据有益的计算机生成的影像来增强用户的真实世界的视图。
在各种传统的视频处理系统中,在逐帧的基础上执行不同模块之间的数据交换。因此,由于传统的视频处理系统中的端到端通信时延,基于传统的视频处理系统的视频流传输应用的用户体验是不令人满意的。根据各种实施例,视频处理系统可以基于软件模块和硬件模块之间的协作(例如,交互和同步)来减少端到端时延。例如,视频流传输系统300可以利用各种硬件-软件和硬件-硬件交互接口用于支持各种协作和缓存管理机制,以最小化端到端通信时延并实现低的总延迟。
图4示出根据本发明的各种实施例的具有低延迟的示例性数据处理系统。如图4中所示,数据处理系统400可以采用多个数据处理器(例如,数据处理器A-D 401-404)用于接收和处理从一个或多个传感器(未示出)接收的数据。例如,数据处理器A-D 401-404可以使用各种可用步骤或算法(例如,各种图像处理步骤或算法)处理已接收的数据(例如,图像帧)。另外,多个数据处理器中的某个数据处理器(例如,数据处理器D 404)可以是数据传输处理器,该数据传输处理器可以负责向物理连接至或电连接至数据处理系统400的终端或远离数据处理系统400的终端发送已处理的数据。
根据各种实施例,数据处理器401-404中的每一个数据处理器可以是独立的处理器芯片、诸如片上系统(SOC)和系统级封装(SiP)之类的处理器芯片的一部分、或处理器芯片中的核。同样,数据处理系统400可以包括单个集成系统或物理连接和/或电连接的多个子系统(如图2和图3中所示)。例如,数据处理系统400可以在可移动平台上部署。例如,数据处理系统400的不同部分可以在UAV上或UAV外部署。数据处理系统400可以高效地处理由UAV承载的相机捕捉的图像和/或视频。
根据各种实施例,多个数据处理器(例如,数据处理器A-D 401-404)可以依赖用于执行各种数据处理任务的存储缓冲区410。存储缓冲区410可以包括多个缓冲区块(例如,块420a-块420f),多个缓冲区块中的每个缓冲区块可以与存储器中的基地址相关联。备选地,数据处理系统400的不同部分或子系统可以共享适于交换数据并执行数据处理任务的一个公共存储缓冲区或任意数量的存储缓冲区。
如图4中所示,控制器405可以用于协调各个数据处理器401-404的操作。例如,控制器405可以启用并配置可以是离线模块的数据处理器(例如,数据处理器B 402)来执行一个或多个任务。在一个示例中,控制器405可以向数据处理器B 402提供帧级别的信息,例如,与缓冲区有关的信息(例如,与缓冲区块420b相关联的缓冲区标识符)。因此,数据处理器B 402可以使用与缓冲区标识符相关联的基地址来访问缓冲区块420b。而且,数据处理器B 402可以继续在存储缓冲区410中的不同的缓冲区块中写数据。例如,该缓冲区块可以是存储缓冲区410中的缓冲区块,该缓冲区块可以基于评估缓冲区块420b的基地址来确定。备选地,该缓冲区块可以是存储缓冲区中预先分配的或动态确定的缓冲区块。
根据各种实施例,数据处理系统400可以利用可以使用双数据速率同步动态随机存取存储器(DDR SDRAM)实现的一个或多个存储缓冲区。例如,存储缓冲区可以使用具有多个缓冲区块的环形缓冲区实现。每个缓冲区块可以被分配缓冲区标识符(ID),缓冲区标识符可以唯一地标识存储缓冲区中的缓冲区块。而且,每个缓冲区块可以与基地址相关联,该基地址可以被数据处理器用于访问缓冲区块中存储的数据。
附加地,每个缓冲区块可以被配置为(并且被用于)以单元存储数据,以实现数据处理中的高效性。例如,每个缓冲区块可以包含一个图像帧,该图像帧可以被划分成一个或多个数据单元(例如条带(slice)或片(tile))。备选地,每个缓冲区块可以包含多个图像帧并且每个数据单元可以是单个数据帧。
而且,为了降低数据处理中的延迟,数据处理系统400允许多个数据处理器同时访问缓冲区块。例如,在数据处理器B 402正从缓冲区块420b读出数据的同时,数据处理器A401可以将数据写入相同的缓冲区块420b。如图4中所示,数据处理器B 402可以直接从数据处理器A 401接收精细粒度控制信息。例如,这种精细粒度控制信息可以指示由数据处理器A 401执行的写操作的状态(或进度)。在一个示例中,数据处理器A 401可以经由直接的有线连接与数据处理器B 402周期性地通信,以实现高效性和可靠性。因此,数据处理系统400可以避免向中间实体(例如,控制器405)发送消息,以减少系统中的不同模块之间的数据交换中的时延并且减轻用于处理消息收发的控制器的负担。因此,数据处理系统400可以实现低延迟并且也可以减少用于处理大量消息的控制器405上的负担。
图5示出根据本发明的各种实施例的在数据处理系统500中支持高效的数据处理。如图5(a)中所示,数据处理器A 401可以在缓冲区块420b上执行写操作411a。例如,缓冲区块420b可以被用于接收和存储多个数据单元(例如,数据单元501-502)。而且,数据处理器A401可以向数据处理器B 402提供指示由数据处理器A 401执行的写操作的状态(或进度)的参考510a。
根据各种实施例,数据处理器B 402可以使用预定阈值来确定缓冲区块420b是否包含要被数据处理器B 402处理的足够的数据。例如,预定阈值可以指示要被处理的数据单元在缓冲区块420b是否可用。备选地,预定阈值可用定义要被数据处理器处理的数据单元。在各种实施例中,数据单元可以定义可以被一起或顺序地处理以实现高效性的数据的单元(例如,图像帧中的条带或片)。根据各种实施例,可以基于已接收的参考信息510a或510b来评估预定阈值。例如,已接收的参考信息510a或510b可以包括指示通过写操作已完成的缓冲区块的百分比、总字节或行等的信息。
在如图5(a)中所示的示例中,数据处理器A 401可以执行用于将数据单元502中的数据写入缓冲区块420b中的写操作411a。例如,数据处理器A 401可以向数据处理器B 402提供精细粒度控制信息510a(例如,当前的行数)。例如,该行数可以大于与数据单元501相关联的行数,但是小于与数据单元502相关联的行数。因此,数据处理器B 402可以继续(例如,经由执行读操作411b)从缓冲区块420b获得数据单元501并且等待数据处理器A 401结束写数据单元502,例如,数据处理器B 402可以等待,直到足够的数据可用于要作为整个单元被处理的数据单元502。
如图5(b)中所示,数据处理器A 401可以执行用于将数据写入缓冲区块420b的写操作411b。数据处理器A 401可以向数据处理器B 402提供可以包括当前的行数的精细粒度控制信息510b。该行数可以大于数据单元502的行数,其指示由数据处理器A 401执行的写操作411b已经结束在数据单元502中写入数据。因此,由于在数据单元502中存在用于作为整体被处理的足够的数据,数据处理器B402可以(例如,经由执行读操作412b)从缓冲区块420b获得数据单元502。因此,数据处理系统500可以实现低延迟和减少用于处理消息的控制器305上的负担两者。
图6示出根据本发明的各种实施例的具有低延迟的示例性视频处理系统。如图6中所示,图像处理系统600可以采用多个数据处理器601-603用于处理输入图像帧606--。例如,数据处理器A 601可以将图像帧606写入存储缓冲区610中的缓冲区块620,例如,以执行各种成像处理任务。
根据各种实施例,图像帧可以被划分成多个数据单元。例如,使用H.264标准,图像帧可以包括多个条带或片,它们中的每一个可以包括多个宏块。在另一个示例中,使用高效视频编码(HEVC)标准,图像帧可以包括多个编码树单元(CTU),每个编码树单元可以包括多个编码单元(CU)。在如图6中所示的示例中,图像帧606可以被划分成多个条带a-f 611-616。在另一个示例中,图像帧606可以被划分成多个行或宏块。
根据各种实施例,各种软件模块(例如,在CPU上运行的控制器605)可以启用并配置不同的硬件模块(例如,数据处理器A-C 601-603)用于处理输入图像帧606。例如,控制器可以为数据处理器A-C 601-603中的每一个提供与缓冲区块620相关联的缓冲区标识符,使数据处理器A-C 601-603可以访问缓冲区块620。例如,数据处理器A 601可以使用缓冲区块620作为输出缓冲区。因此,数据处理器A 601可以将已接收的(和可选地,经处理的)图像数据写入缓冲区块620。在另一方面,数据处理器B 602可以使用缓冲区块620作为输入缓冲区。因此,数据处理器B 602可以读取并处理缓冲区块620中存储的图像数据。
如图6中所示,数据处理器A 601和数据处理器B 602可以同时访问缓冲区块620。而且,数据处理器A 601可以通知数据处理器B 602其已经完成将条带b 612写入缓冲区块620中。对应地,数据处理器B 602(下游处理器)可以立即开始从缓冲区块620中读取条带b612中的数据,以降低通信时延。另外,应用604可以经由指示数据处理器A-C 601-603执行各种图像处理任务,利用控制器605来实现各种功能。
因此,因为视频处理系统600中的软件模块和硬件模块可以协作来实现低延迟,视频处理系统600可以高效地处理视频或图像数据并且可以提供最佳的用户体验。如图2中所示,各种数据处理器211-213和214-216可以直接经由硬线连接同步处理状态和/或状态信息。例如,ISP 211可以周期性地向视频编码器212提供行数或条带数(除了帧级别的信息(例如,缓冲区标识符)之外)。一旦ISP 211完成在存储缓冲区210中写入视频帧或视频帧的数据单元(例如,条带或片)的预定部分,视频编码器212就可以开始读出相关的图像数据并对图像数据编码,而无需等到ISP 211完成整个图像帧的处理。因此,可以减少ISP 211和视频编码器212之间的通信时延。同样,一旦视频编码器完成图像帧的一部分的处理,无线模块213可能就能够发送该图像帧的一部分。以类似的方式,在Rx侧202,数据处理器214-216可以通过直接经由硬线连接共享或交换处理状态和/或状态信息来降低总的通信时延。因此,可以大大降低视频处理系统200的总的通信时延。类似地,如图3中所示,各个数据处理器311-315可以直接共享处理状态和/或状态信息。因此,视频流传输系统300的总的通信时延可以大大降低,从而使视频流传输系统300可以实现最佳的用户体验。
图7示出根据本发明的各种实施例的数据处理系统中的示例性数据处理器。如图7中所示,硬件模块(例如,数据处理器710)可以经由接口720与软件模块(例如,运行在CPU(未示出)上的控制器705)交互。另外,数据处理器710可以与其他硬件模块(例如,产生器701和消费器702(或其他数据处理器))交互。例如,数据处理器710可以经由硬件接口711与上游数据处理器(例如,产生器701)交互,并且数据处理器710可以经由硬件接口712与下游数据处理器(例如,消费器712)交互。备选地,数据处理器710可以经由各种硬件接口与多个上游数据处理器和下游数据处理器交互。
根据各种实施例,数据处理系统700允许数据处理器710例如经由数据处理器710和可以执行软件的底层处理器之间的一个或多个物理连接或电连接与各种软件模块交互。
如图7中所示,控制器705可以使用接口720向数据处理器710查询状态信息,例如,硬件寄存器704中的buffer_id和/或slice_cnt。例如,这些状态信息可以经由周期性的中断或通过控制器705周期性地轮询而提供给控制器705。根据各种实施例,数据处理器710可以确保在特定数据帧的处理期间,buffer_id保持不变且slice_cnt仅可以单调增加。另外,控制器705可以使用接口720来为数据处理器710配置上游模块(例如,产生器701)和下游模块(例如,消费器702),使得数据处理器701可以高效地执行各种数据处理任务。例如,控制器可以使用接口720来为数据处理器710提供与输入缓冲区721相关联的输入缓冲区标识符(例如,pbuffer_id)。同样,控制器可以使用接口720来为数据处理器710提供与输出缓冲区722相关联的输出缓冲区标识符(例如,cbuffer_id)。
根据各种实施例,数据处理器710可以经由硬件模块之间的交互与上游产生器701和下游消费器702同步并交换各种类型的状态信息。这些状态信息可以包括帧级别的信息和数据单元级别的信息。例如,帧级别的信息可以包括缓冲区标识符(ID)或帧号,而数据单元级别的信息可以包括条带数或行数。如图7中所示,数据处理器710可以经由接口711(和接口703)从产生器701获得状态信息(例如,pbuffer_id和pslice_cnt)。同样,处理器710可以经由硬件接口712向消费器702提供状态信息cbuffer_id和cslice_cnt。
图8示出根据本发明的各种实施例的示例性数据处理系统800中的硬件和软件协作。如图8中所示,在步骤801处,软件模块810(例如,CPU上运行的控制器)可以确定在帧边界(或级别)是否启用硬件模块820(例如,数据处理器)。例如,当系统接收输入数据帧时,控制器可以检查与数据处理器相关联的输入缓冲区的状态。如果输入缓冲区非空或上游模块正将数据帧写入输入缓冲区,则控制器可以启用并初始化数据处理器。因此,控制器可以在帧边界启用数据处理器以进行最佳调度。
在步骤802处,该系统可以执行各种初始化步骤。在各种实施例中,软件模块810可以向硬件模块820提供帧级别的信息,并初始化状态信息或状态指示器,例如,数据单元数(例如,条带数)。例如,当启用数据处理器时,控制器可以向数据处理器提供缓冲区标识符(例如,buffer_id),并且可以将输出条带数(例如,slice_cnt)设置为零(0)。然后,当数据处理器处理来自缓冲区块的数据帧时,缓冲区标识符可以保持不变,同时期望slice_cnt单调增加。
根据各种实施例,软件模块810可以启用多个硬件处理器,从而以连续方式执行各种数据处理任务。在图4中示出的示例中,控制器405可以启用数据处理器A-D 401-404,用于处理从一个或多个传感器接收的一个或多个图像帧并将编码视频流发送至远程终端进行显示。
在步骤811处,被启用的每个硬件模块820可以执行同步步骤。在各种实施例中,优选最小化离线交换状态信息的频率并且优化软件模块810和硬件模块820之间的交互,从而提高数据处理的效率。例如,硬件模块820可以通过硬线连接直接与上游和下游模块交互,以与上游模块和下游模块二者同步(或交换)状态信息。在图7中示出的示例中,数据处理器710可以经由硬件(HW)接口711从产生器701获得pbuffer_id和pslice_cnt。同样,数据处理器710可以经由硬件(HW)接口712向消费器702提供cbuffer_id和pcslice_cnt。另外,对于数据处理器710可能不能够通过硬线连接直接同步或交互的模块,数据处理器710可以经由周期性的中断或轮询,依靠软件模块810来执行状态交换和同步。例如,如图4中所示,数据处理器D 404可以经由控制器405间接地获得必要的信息。
而且,硬件模块820可以基于状态信息(例如,上游模块的操作状态)的同步来确定操作模式。根据各种实施例,可以指示硬件模块820以在线模式或离线模式执行。当在离线模式中执行时,硬件模块820可以继续完成对缓冲区中的数据帧的处理,而没有不必要的时延或中断。在另一方面,当在在线模式中执行时,硬件模块820可以知道上游硬件模块的进度。
根据各种实施例,下游模块(即,消费器)可以在启动上游模块(即,产生器)之后立即被启用。即,可以自动地执行相同数据帧的处理以最小化端到端时延。因此,该系统可以经由内部的硬件同步来保证软件调度的一致性(consistency)。例如,在步骤812处,该系统可以检查已启用的模块和上游模块是否正在处理相同的数据帧。在如图7中所示的示例中,当数据处理器710被启用时,该系统可以检查pbuffer_id是否与cbuffer_id相同。如果pbuffer_id与cbuffer_id不同,即,当已启用的模块和上游模块正在处理不同的数据帧时,该系统可以确定已启用的模块在处理数据上滞后于上游模块。在这种情况下,在步骤813处,已启用的硬件模块820可以被设置为以离线模式执行,在这种情况下,硬件模块820可以继续完成对缓冲区中的数据帧的处理,而没有不必要的时延或中断。
在另一方面,如果pbuffer_id与cbuffer_id相同,即,当已启用的硬件模块820和上游模块正在处理相同的数据帧时,模块可以被配置为以在线模式执行。在在线模式中运行时,当数据单元就绪时,硬件模块820可以知道数据单元可用于处理。例如,在步骤814处,硬件模块820可以检查已经由上游模块处理的数据单元的计数(例如,经由硬线连接从上游模块接收的条带数)。在步骤815处,硬件模块可以以在线模式执行,以跟上上游硬件模块。在如图7中所示的示例中,当在在线模式中执行时,一旦从产生器701接收的pslice_cnt改变,数据处理器710就可以自动开始处理新的条带。同样,如果需要,数据处理器710可以更新输出状况(例如,cslice_cnt)。同时,在步骤816处,数据处理器710可以被设置为在新的条带可用于处理之前等待。在步骤817处,当数据帧完成时,硬件模块820可以保持离线,直到软件模块810确定新的数据帧已就绪以被处理。
因此,该系统可以通过允许硬件模块在数据帧内的数据单元级别(例如,条带级别或行级别)彼此交互和同步(这允许下游处理器以最小时延处理数据帧)来实现低(或超低)延迟。
根据各种实施例,该系统可以使用用于在上游和下游模块之间交换数据的存储缓冲区。例如,存储缓冲区可以使用具有多个缓冲区块的环形缓冲区(或圆形缓冲区)实现。
图9示出根据本发明的各种实施例的数据处理系统900中的基于环形缓冲区的数据处理。如图9中所示,上游硬件模块(例如,数据处理器A 901)和下游模块(例如,数据处理器902)可以利用用于交换数据的环形缓冲区910。根据各种实施例,可以包括端到端连接的多个缓冲区块的环形缓冲区901由于其圆形拓扑数据结构而有利于缓冲数据流(例如,数据帧)。
根据各种实施例,环形缓冲区管理机制可以被用于保持环形缓冲区910。例如,数据处理器A 901可以将数据帧(其可以被称为写入帧(WR))写入921缓冲区块911。同样,数据处理器B 902可以从缓冲区块912读出922数据帧,其可以被称为读出帧(RD)。另外,环形缓冲区910可以包括在一个或多个缓冲区块中存储的一个或多个就绪帧(RY)。就绪帧913由上游模块(例如,数据处理器A 901)写入缓冲区块中,并且还未被下游模块(例如,数据处理器B 902)处理。当数据处理器B 902在处理环形缓冲区910中的数据上滞后数据处理器A 901时,在环形缓冲区910中可以存在多个就绪帧。
根据各种实施例,当下游模块可以跟上上游模块的进度时,该系统可以达到具有最小时延的最佳状况。例如,图10示出根据本发明的各种实施例的数据处理系统1000中的基于环形缓冲区的具有低延迟的数据处理。如图10中所示,环形缓冲区1010中的缓冲区块1011包含数据帧,该数据帧充当用于数据处理器A 1001的写入帧和用于数据处理器B 1002的读出帧二者。数据处理器A 1001和数据处理器B 1002二者可以同时访问相同的缓冲区块1011。例如,在数据处理器B 902正从缓冲区块1011读出1022数据的同时,数据处理器A 901可以将数据帧的数据写入1021缓冲区块1011中。
如图10中所示,数据处理器A 1001可以向数据处理器B 1002提供精细粒度控制信息1020,使数据处理器B 902可以跟上数据处理器A 1001的进度。因此,环形缓冲区1010中可能没有就绪帧(即,环形缓冲区1010中的就绪帧的数量是0)。
图11示出根据本发明的各种实施例的启用示例性数据处理系统1100中的硬件模块。如图11(a)中所示,当数据处理系统中的控制器启用作为产生器的硬件模块(例如,数据处理器1101)时,该系统可以检查输出缓冲区,该输出缓冲区可以是与数据处理器1101相关联的环形缓冲区1110。例如,当环形缓冲区1110为满时,环形缓冲区1110可以包括读出帧(例如,RD)和多个就绪帧(例如,RY0和RY1)。为了实现最佳的用户体验,当该系统中存在时延时,该系统可以跳过几个帧。例如,控制器可以指示数据处理器1101使用最新的就绪帧(例如,缓冲区块RY0)作为写入帧。
如图11(b)中所示,当数据处理系统中的控制器启用作为消费器的硬件模块(例如,数据处理器1102)时,该系统可以检查与数据处理器1102相关联的输入缓冲区的状态。例如,当输入缓冲区(例如,环形缓冲区1120)为满时,如果输入缓冲区中存在写入帧,则控制器可以选择该写入帧作为新的读出帧。在另一方面,如果没有写入帧存在,则该系统可以选择最新的就绪帧(例如,缓冲区块RY0)作为新的读出帧。换言之,当该系统中存在时延时,该系统可以跳过几个帧,以实现最佳的用户体验。
而且,硬件模块被启用为产生器和消费器二者。因此,该系统可以检查输入缓冲区和输出缓冲区二者的状态,并且遵循相同的帧缓冲区管理策略(如上文分别描述的)。
图12示出根据本发明的各种实施例的支持可移动平台环境中的数据处理和通信的流程图。如图12中所示,在步骤1201处,第一数据处理器可以执行将数据写入存储缓冲区中的第一缓冲区块的第一写操作。此外,在步骤1202处,第一数据处理器可以经由第一数据处理器和第二数据处理器之间的连接向第二数据处理器提供第一参考,其中,第一参考指示通过第一数据处理器的第一写操作的状态或进度。然后在步骤1203处,第二数据处理器可以基于已接收的第一参考执行用于从存储缓冲区中的第一缓冲区块读取数据的读操作。
本发明的许多特征可以使用或借助于硬件、软件、固件或其组合来执行。因此,本发明的特征可以使用(例如,包括一个或多个处理器的)处理系统实现。示例性处理器可以包括但不限于:一个或多个通用微处理器(例如,单核或多核处理器)、专用集成电路、专用指令集处理器、图形处理单元、物理处理单元、数字信号处理单元、协处理器、网络处理单元、音频处理单元、加密处理单元等。
本发明的特征可以使用或借助于计算机程序产品来实现,计算机程序产品是其上/其中存储有指令的存储介质或计算机可读介质,所述指令可以被用于对处理系统编程以执行本文中提出的任何特征。存储介质可以包括但不限于任何类型的盘,包括:软盘、光盘、DVD、CD-ROM、微型驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存装置、磁卡或光卡、纳米系统(包括分子存储器IC)或者适于存储指令和/或数据的任何类型的介质或装置。
存储在机器可读介质中的任何一个机器可读介质上的本发明的特征可以被结合在用于控制处理系统的硬件的软件和/或固件中,并且所述软件和/或固件用于使处理系统可以与使用本发明的结果的其他机构交互。这样的软件或固件可以包括但不限于应用代码、装置驱动程序、操作系统和执行环境/容器。
例如,本发明的特征还可以使用诸如专用集成电路(ASIC)和现场可编程门阵列(FPGA)装置的硬件组件来以硬件实现。用于执行本文所描述的功能的硬件状态机的实现对于相关领域的技术人员将是显而易见的。
另外,可以使用包括根据本公开的教导编程的一个或多个处理器、存储器和/或计算机可读存储介质的一个或多个常规的通用或专用数字计算机、计算装置、机器或微处理器来方便地实现本发明。编程技术人员可以基于本公开的教导容易地准备适当的软件编码,这对软件领域的技术人员将是明显的。
虽然上文已经描述了本发明的各种实施例,但应该理解,它们已经以示例而非限制的方式呈现。对于相关领域的技术人员明显的是,在不脱离本发明的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。
上文已经借助于功能构建框描述了本发明,所述功能构建框说明指定功能及其关系的执行。为了描述的方便,这些功能构建框的边界在本文中经常被任意定义。只要适当地执行指定的功能和关系,就可以定义替代边界。因此,任何这种替代边界都在本发明的范围和精神之内。
已经出于说明和描述的目的提供了本发明的前述描述。这并不旨在是穷尽性的或将本发明限制于所公开的确切形式。本发明的宽度和范围不应该由上述示例性实施例所限制。许多修改和变化对于本领域技术人员将是明显的。所述修改和变化包括所公开的特征的任何相关的组合。选择和描述实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够理解本发明的各种实施例以及适合于预期的特定用途的各种修改。本发明的范围旨在由下文的权利要求及其等同项定义。
Claims (20)
1.一种用于支持可移动平台环境中的数据处理和通信的系统,包括:
具有多个缓冲区块的存储缓冲区,其中,每个所述缓冲区块被配置为存储一个或多个数据帧;以及
多个数据处理器,所述多个数据处理器至少包括第一数据处理器和第二数据处理器,
其中,所述第一数据处理器操作用于:
执行用于将数据写入所述存储缓冲区中的第一缓冲区块的第一写操作,以及
经由所述第一数据处理器和所述第二数据处理器之间的连接向所述第二数据处理器提供第一参考,其中,所述第一参考指示所述第一数据处理器的所述第一写操作的状态或进度;
其中,所述第二数据处理器操作用于:
基于已接收的第一参考执行用于从所述存储缓冲区中的所述第一缓冲区块读取数据的读操作。
2.根据权利要求1所述的系统,其中,每个所述数据帧包括多个数据单元,并且其中,所述第一参考包括标识所述第一缓冲区块的第一值和指示所述第一写操作的状态或进度的第一数据单元计数。
3.根据权利要求2所述的系统,其中,所述第二数据处理器操作用于:
执行用于将数据写入所述存储缓冲区中的第二缓冲区块的第二写操作;以及
向第三数据处理器提供第二参考,其中,所述第二参考指示所述第二数据处理器的所述第二写操作的状态或进度。
4.根据权利要求2所述的系统,还包括:
控制器,所述控制器操作用于启用所述第二数据处理器,其中,所述控制器操作用于向所述第二数据处理器提供缓冲区标识符,所述缓冲区标识符指示所述第二数据处理器被配置为从中读取数据的缓冲区块。
5.根据权利要求4所述的系统,其中,所述第二数据处理器操作用于:比较从所述第一数据处理器接收的第一标识符和从所述控制器接收的所述缓冲区标识符。
6.根据权利要求5所述的系统,其中,所述第二数据处理器被配置为:当从所述第一数据处理器接收的所述第一标识符与从所述控制器接收的标识符相同时,以在线模式操作。
7.根据权利要求5所述的系统,其中,所述第二数据处理器被配置为:当从所述第一数据处理器接收的所述第一标识符与从所述控制器接收的标识符不同时,以离线在线模式操作。
8.根据权利要求4所述的系统,其中,所述控制器操作用于:当所述第二数据处理器被启用时,将所述第一数据处理器正在写入数据的缓冲区块的标识符或保持最近的就绪帧的缓冲区块的标识符设置为所述缓冲区标识符。
9.根据权利要求1所述的系统,其中,所述控制器操作用于:当数据处理器被启用时,将保持最近的就绪帧的缓冲区块的标识符设置为输出缓冲区标识符。
10.根据权利要求1所述的系统,其中,所述存储缓冲区是存储器中保持的环形缓冲区。
11.一种用于支持可移动平台环境中的数据处理和通信的方法,包括:
经由多个数据处理器中的第一数据处理器执行将数据写入所述存储缓冲区的第一缓冲区块的第一写操作,
经由所述第一数据处理器和所述多个数据处理器中的第二数据处理器之间的连接向所述第二数据处理器提供第一参考,其中,所述第一参考指示所述第一数据处理器的第一写操作的状态或进度;以及
经由所述第二数据处理器,基于已接收的第一参考执行用于从所述存储缓冲区中的所述第一缓冲区块读取数据的读操作。
12.根据权利要求11所述的方法,其中,每个所述数据帧包括多个数据单元,并且其中,所述第一参考包括指示所述第一缓冲区块的第一标识符和指示所述第一写操作的状态或进度的第一数据单元计数。
13.根据权利要求12所述的方法,还包括:
经由所述第二数据处理器执行用于将数据写入所述存储缓冲区中的第二缓冲区块的第二写操作;以及
向第三数据处理器提供第二参考,其中,所述第二参考指示所述第二数据处理器的所述第二写操作的状态或进度。
14.根据权利要求12所述的方法,其中,控制器操作用于启用所述第二数据处理器,其中,所述控制器操作用于向所述第二数据处理器提供缓冲区标识符,所述缓冲区标识符指示所述第二数据处理器被配置为从中读取数据的缓冲区块。
15.根据权利要求14所述的方法,还包括:
经由所述第二数据处理器,比较从所述第一数据处理器接收的第一标识符和从所述控制器接收的所述缓冲区标识符。
16.根据权利要求15所述的方法,其中,所述第二数据处理器被配置为:当从所述第一数据处理器接收的所述第一标识符与从所述控制器接收的标识符相同时,以在线模式操作。
17.根据权利要求15所述的方法,其中,所述第二数据处理器被配置为:当从所述第一数据处理器接收的所述第一标识符与从所述控制器接收的标识符不同时,以离线在线模式操作。
18.根据权利要求14所述的方法,其中,所述控制器操作用于:当所述第二数据处理器被启用时,将所述第一数据处理器正在写入数据的缓冲区块的标识符或保持最近的就绪帧的缓冲区块的标识符设置为所述缓冲区标识符。
19.根据权利要求1所述的方法,其中,所述控制器操作用于:当数据处理器被启用时,将保持最近的就绪帧的缓冲区块的标识符设置为输出缓冲区标识符。
20.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有指令,所述指令在由处理器执行时,执行包括以下的步骤:
经由多个数据处理器中的第一数据处理器执行将数据写入所述存储缓冲区的第一缓冲区块的第一写操作,
经由所述第一数据处理器和所述多个数据处理器中的第二数据处理器之间的连接向所述第二数据处理器提供第一参考,其中,所述第一参考指示所述第一数据处理器的第一写操作的状态或进度;以及
经由所述第二数据处理器,基于已接收的第一参考执行用于从所述存储缓冲区中的所述第一缓冲区块读取数据的读操作。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/119498 WO2019127244A1 (en) | 2017-12-28 | 2017-12-28 | System and method for supporting low latency in a movable platform environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111465919A true CN111465919A (zh) | 2020-07-28 |
Family
ID=67064364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780097590.6A Pending CN111465919A (zh) | 2017-12-28 | 2017-12-28 | 用于支持可移动平台环境中的低延迟的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200319818A1 (zh) |
EP (1) | EP3701364A4 (zh) |
CN (1) | CN111465919A (zh) |
WO (1) | WO2019127244A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022165718A1 (zh) * | 2021-02-04 | 2022-08-11 | 华为技术有限公司 | 一种接口控制器、数据传输方法及片上系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130215333A1 (en) * | 2012-02-17 | 2013-08-22 | Japan Display West Inc. | Display apparatus and display method |
CN103324441A (zh) * | 2012-03-19 | 2013-09-25 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN103678696A (zh) * | 2013-12-27 | 2014-03-26 | 金蝶软件(中国)有限公司 | 控制数据读取分离的方法及装置 |
CN104102542A (zh) * | 2013-04-10 | 2014-10-15 | 华为技术有限公司 | 一种网络数据包处理方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001013229A2 (en) * | 1999-08-19 | 2001-02-22 | Venturcom, Inc. | System and method for data exchange |
JP3926374B2 (ja) * | 2005-08-15 | 2007-06-06 | 株式会社ソニー・コンピュータエンタテインメント | バッファ管理方法およびバッファ管理装置 |
US9176872B2 (en) * | 2013-02-25 | 2015-11-03 | Barco N.V. | Wait-free algorithm for inter-core, inter-process, or inter-task communication |
-
2017
- 2017-12-28 WO PCT/CN2017/119498 patent/WO2019127244A1/en active Application Filing
- 2017-12-28 EP EP17936944.2A patent/EP3701364A4/en not_active Withdrawn
- 2017-12-28 CN CN201780097590.6A patent/CN111465919A/zh active Pending
-
2020
- 2020-06-23 US US16/909,495 patent/US20200319818A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130215333A1 (en) * | 2012-02-17 | 2013-08-22 | Japan Display West Inc. | Display apparatus and display method |
CN103324441A (zh) * | 2012-03-19 | 2013-09-25 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN104102542A (zh) * | 2013-04-10 | 2014-10-15 | 华为技术有限公司 | 一种网络数据包处理方法和装置 |
CN103678696A (zh) * | 2013-12-27 | 2014-03-26 | 金蝶软件(中国)有限公司 | 控制数据读取分离的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022165718A1 (zh) * | 2021-02-04 | 2022-08-11 | 华为技术有限公司 | 一种接口控制器、数据传输方法及片上系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3701364A1 (en) | 2020-09-02 |
EP3701364A4 (en) | 2020-10-28 |
WO2019127244A1 (en) | 2019-07-04 |
US20200319818A1 (en) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112367513B (zh) | 导航系统和用于感测环境的方法 | |
CN108702454B (zh) | 用于视频显示的方法、系统和计算设备 | |
CN110036640B (zh) | 用于支持视频比特流切换的系统和方法 | |
CN110268711B (zh) | 用于编码宽视图视频的球面旋转的方法及装置 | |
WO2019100204A1 (zh) | 一种视频处理方法、设备、飞行器、系统及存储介质 | |
WO2020057609A1 (zh) | 图像传输方法、装置、图像发送端及飞行器图传系统 | |
WO2020019106A1 (zh) | 云台和无人机控制方法、云台及无人机 | |
US11924391B2 (en) | Immersive video streaming using view-adaptive prefetching and buffer control | |
US20210014539A1 (en) | Dynamic video encoding and view adaptation in wireless computing environments | |
US11211034B2 (en) | Display rendering | |
US20200319818A1 (en) | System and method for supporting low latency in a movable platform environment | |
WO2018086131A1 (en) | Data flow scheduling between processors | |
WO2020199050A1 (zh) | 视频编码方法、设备和可移动平台 | |
US11961178B2 (en) | Reduction of the effects of latency for extended reality experiences by split rendering of imagery types | |
WO2021249562A1 (zh) | 一种信息传输方法、相关设备及系统 | |
WO2021136433A1 (zh) | 一种电子设备及计算机系统 | |
CN111213088A (zh) | 网络控制的3d视频捕获 | |
WO2022077829A1 (en) | Large scope point cloud data generation and optimization | |
CN115391603A (zh) | 传感器数据的高效获取 | |
US11138052B2 (en) | System and method for supporting data communication in a movable platform | |
US20210227227A1 (en) | System and method for supporting progressive video bit stream switching | |
WO2022174431A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200728 |
|
RJ01 | Rejection of invention patent application after publication |