CN117041591A - 多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质 - Google Patents

多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质 Download PDF

Info

Publication number
CN117041591A
CN117041591A CN202311030072.6A CN202311030072A CN117041591A CN 117041591 A CN117041591 A CN 117041591A CN 202311030072 A CN202311030072 A CN 202311030072A CN 117041591 A CN117041591 A CN 117041591A
Authority
CN
China
Prior art keywords
memory
interface
processing unit
video processing
camera
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
Application number
CN202311030072.6A
Other languages
English (en)
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 Chaoxing Future Technology Co ltd
Original Assignee
Beijing Chaoxing Future 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 Chaoxing Future Technology Co ltd filed Critical Beijing Chaoxing Future Technology Co ltd
Priority to CN202311030072.6A priority Critical patent/CN117041591A/zh
Publication of CN117041591A publication Critical patent/CN117041591A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本申请公开了一种多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质。本申请的多硬件模块间零拷贝共享内存系统包括应用层、内核层、硬件层;所述应用层包括获取数据并编码的应用程序;所述内核层包括内存管理模块、基于MIPI接口的摄像头驱动模块、视频处理单元驱动模块、硬盘驱动模块;所述硬件层包括内存、接口、基于MIPI接口的摄像头、视频处理单元、硬盘;所述内存管理模块集中分配若干个内存块供接口、基于MIPI接口的摄像头和视频处理单元共享使用。本申请能够为所有硬件模块统一分配内存块且模块间交换数据不需要做数据拷贝。

Description

多硬件模块间零拷贝共享内存系统、方法、电子设备和存储 介质
技术领域
本申请涉及计算机技术领域,具体地涉及多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质。
背景技术
在嵌入式计算机系统中,往往存在多个硬件模块来完成各种不同的功能,比如通过MIPI接口、基于MIPI接口的摄像头捕捉图像,通过编码器将从基于MIPI接口的摄像头获取的图像进行编码后存储或推向网络进行传输,以减少储存空间或降低网络带宽,通过解码器将已编码的图像进行解码后播放或送入AI模块进行推理。由于各个功能模块间相互独立,它们各自分配其所需要的内存空间供数据存放,当在不同模块间传递数据时就需要做内存块的数据拷贝,这会导致内存占用量大,且数据拷贝会占用CPU资源,降低系统的整体性能。
针对上述问题,相关技术为各个功能模块分配独立的内存空间,相关技术的缺点在于在不同模块间传递数据时需要做内存块数据拷贝导致内存占用量大,且数据拷贝占用CPU资源,降低了系统整体性能。
本背景技术描述的内容仅为了便于了解本领域的相关技术,不视作对现有技术的承认。
发明内容
因此,本发明实施例意图提供多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质。
在第一方面,本发明实施例提供了一种多硬件模块间零拷贝共享内存系统,所述系统包括应用层、内核层、硬件层;
所述应用层包括获取数据并编码的应用程序;
所述内核层包括内存管理模块、基于MIPI接口的摄像头驱动模块、视频处理单元驱动模块、硬盘驱动模块;
所述硬件层包括内存、MIPI接口、基于MIPI接口的摄像头、视频处理单元、硬盘;
所述内存管理模块集中分配若干个内存块供MIPI接口、基于MIPI接口的摄像头和视频处理单元共享使用。
在其中一个实施例中,所述应用程序将从MIPI接口、基于MIPI接口的摄像头捕获的视频经过视频处理单元进行编码成H.264码流后保存到硬盘。
在其中一个实施例中,集中分配的所述内存块配有对应的Buffer Handler,所述应用程序将Buffer Handler传至所述MIPI接口、基于MIPI接口的摄像头,所述MIPI接口、基于MIPI接口的摄像头将图像数据写入后,所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码,将编码好的码流数据写入硬盘,最后将BufferHandler重新给到MIPI接口、基于MIPI接口的摄像头开始下一帧图像的处理。
在其中一个实施例中,所述BufferHandler在各硬件模块的传递过程中不存在内存拷贝。
在其中一个实施例中,所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码,包括:
所述应用程序将对应的BufferHandler传入视频处理单元对获取的图像数据进行编码成H.264码流。
在第二方面,本发明实施例提供了一种多硬件模块间零拷贝共享内存方法,所述方法包括:
集中分配若干个内存块供MIPI接口、基于MIPI接口的摄像头和视频处理单元共享使用;
对所述内存块配置对应的BufferHandler;
将对应的BufferHandler传入视频处理单元对获取的图像数据进行编码;
将编码好的码流数据写入硬盘,最后将Buffer Handler重新给到MIPI接口、基于MIPI接口的摄像头开始下一帧图像的处理。
在其中一个实施例中,所述BufferHandler在各硬件模块的传递过程中不存在内存拷贝。
在其中一个实施例中,所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码成H.264码流。
在第三方面,本发明实施例提供了一种存储介质,其上存储有计算机程序,其中,所述程序被处理器运行时实现如前面实施例中任一所述的方法。
在第四方面,本发明实施例提供了一种电子设备,包括:处理器和存储有计算机程序的存储器,所述处理器被配置为在运行计算机程序时实现前面实施例中任一所述的方法。
本发明实施例中使用的多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质在嵌入式计算机系统内的多个硬件模块间以零拷贝的方式进行内存共享,且在系统的应用层和内核层之间同样以零拷贝的方式进行内存共享。本申请能够为所有硬件模块统一分配内存块且模块间交换数据不需要做数据拷贝。
本发明实施例的其他可选特征和技术效果一部分在下文描述,一部分可通过阅读本文而明白。
附图说明
以下,结合附图来详细说明本发明的实施例,所示出的元件不受附图所显示的比例限制,附图中相同或相似的附图标记表示相同或类似的元件,其中:
图1示出了根据本发明实施例的多硬件模块间零拷贝共享内存系统整体结构框图;
图2示出了能实施根据本发明实施例的方法的电子设备的示例性结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合具体实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在嵌入式计算机系统中,往往存在多个硬件模块来完成各种不同的功能,比如通过MIPI接口、基于MIPI接口的摄像头捕捉图像,通过编码器将从MIPI接口、基于MIPI接口的摄像头获取的图像进行编码后存储或推向网络进行传输,以减少储存空间或降低网络带宽,通过解码器将已编码的图像进行解码后播放或送入AI模块进行推理。由于各个功能模块间相互独立,它们各自分配其所需要的内存空间供数据存放,当在不同模块间传递数据时就需要做内存块的数据拷贝,这会导致内存占用量大,且数据拷贝会占用CPU资源,降低系统的整体性能。
针对上述问题,相关技术为各个功能模块分配独立的内存空间,相关技术的缺点在于在不同模块间传递数据时需要做内存块数据拷贝导致内存占用量大,且数据拷贝占用CPU资源,降低了系统整体性能。
为了解决上述问题,本申请提出了一种多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质。本申请中使用的多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质在嵌入式计算机系统内的多个硬件模块间以零拷贝的方式进行内存共享,且在系统的应用层和内核层之间同样以零拷贝的方式进行内存共享。本申请能够为所有硬件模块统一分配内存块且模块间交换数据不需要做数据拷贝。本技术方案的核心是在原有方案的将在MIPI接口/基于MIPI接口的摄像头和视频处理单元均从DDR单独分配内存的基础上改成只通过内存管理模块集中分配内存供MIPI接口/基于MIPI接口的摄像头和视频处理单元共享使用,MIPI接口/基于MIPI接口的摄像头和视频处理单元中均不再分配内存,并引入Buffer Handler用于将共享的内存块在各个硬件模块间传递,其传递过程不存在内存拷贝。
其中,本申请主要采用的是MIPI接口,MIPI接口为移动产业处理器接口(MobileIndustry Processor Interface简称MIPI接口)联盟,是MIPI接口联盟发起的为移动应用处理器制定的开放标准和规范。
需要说明的是,本申请中的Buffer Handler为monolog中处理缓冲区的一种工具,原意为”缓冲区句柄”,用于标识和处理一个特定的缓冲区,能够包含其他的Handler进行功能扩展,在本申请中主要用于在嵌入式计算机系统内的多个硬件模块间以零拷贝的方式进行内存共享。
图1示出了根据本发明实施例的多硬件模块间零拷贝共享内存系统整体结构框图。如图1所示,本申请提出的多硬件模块间零拷贝共享内存系统,所述系统包括应用层、内核层、硬件层;所述应用层包括获取数据并编码的应用程序;所述内核层包括内存管理模块、基于MIPI接口的摄像头驱动模块、视频处理单元驱动模块、硬盘驱动模块;所述硬件层包括内存、MIPI接口、基于MIPI接口的摄像头、视频处理单元、硬盘;所述内存管理模块集中分配若干个内存块供MIPI接口、基于MIPI接口的摄像头和视频处理单元共享使用。
其中,视频处理单元(Video Processing Unit,视频处理单元)是一种全新的视频处理平台核心引擎,具有硬解码功能以及减少CPU负荷的能力。另外,视频处理单元可以减少服务器负载和网络带宽的消耗。具体的,本实施例采用的视频处理单元通过32位的AMBA3APB总线来完成系统控制,通过64位的AMBA3 AXI来完成数据传送。视频处理单元能够充分利用片上存储单元来实现高性能,大多数视频硬件模块都为了针对不同的视频标准间的共享进行了优化设计,能够提供额外的低功耗和性能强大的低口数。此外,本实施例的视频处理单元包含一个16位的内部DSP内核称为位处理器,用于控制内部视频编解码的内部硬件模块操作。为使主处理器简单有效的控制,视频处理单元提供一组被称作主机接口的寄存器。主机处理器和视频处理单元之间是通过主机接口寄存器进行通信。流数据和一些输出的图像数据由主机处理器和视频处理单元直接访问。此外,为了更全面灵活的控制视频处理单元,提供一组包含所有所需操作的API接口函数,使得视频处理单元对开发者完全通明。
具体的,本方案从上到下分为3层,分别为应用层、内核层和硬件层,从左到右分为4个单独的硬件模块,分别为DDR、MIPI接口/基于MIPI接口的摄像头、视频处理单元(Codec)和硬盘。最上层的应用层负责业务逻辑,实现将从基于MIPI接口的摄像头捕获的视频经过视频处理单元(Codec)进行编码成H.264码流后保存到硬盘,其数据流的纽带为DDR内存,本技术方案的核心是在原有方案的将在MIPI接口/基于MIPI接口的摄像头和视频处理单元均从DDR单独分配内存的基础上改成只通过内存管理模块集中分配内存供MIPI接口/基于MIPI接口的摄像头和视频处理单元共享使用,MIPI接口/基于MIPI接口的摄像头和视频处理单元中均不再分配内存,并引入Buffer Handler用于将共享的内存块在各个硬件模块间传递,其传递过程不存在内存拷贝。
如图1所示,本申请的内存管理模块设有对应的DDR硬件单元,本实施例的DDR是指双倍数据率同步动态随机存取存储器,能够在系统时钟的上升沿和下降沿进行数据传输。
可选地,本实施例所述应用程序将从MIPI接口、基于MIPI接口的摄像头捕获的视频经过视频处理单元进行编码成H.264码流后保存到硬盘。具体的,本实施例的硬盘可以是机械硬盘,也可以是固态硬盘。以机械硬盘为例,通常由磁盘、磁头、电机、控制电路和连接器等组成。其中,磁盘是存储数据的主要组件,由多个圆形盘片组成,每个盘片都有读/写磁头。电机则负责驱动盘片旋转,以便读写磁头可以访问磁盘上的数据。控制电路则负责控制读写磁头的运动,并将数据传输到计算机系统中。当应用程序将数据写入硬盘驱动器时,控制电路将数据转换为磁场信号,并将其传输到磁盘上。数据会被存储在磁盘磁道内,每个磁道由多个扇区组成,每个扇区可以存储一定量的数据。当需要读取数据时,读写磁头会从磁盘的表面扫描数据,将磁信号转换为电信号,并将其传输到系统中。
其中,集中分配的所述内存块配有对应的Buffer Handler,所述应用程序将Buffer Handler传至所述MIPI接口、基于MIPI接口的摄像头,所述MIPI接口、基于MIPI接口的摄像头将图像数据写入后,所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码,将编码好的码流数据写入硬盘,最后将Buffer Handler重新给到MIPI接口、基于MIPI接口的摄像头开始下一帧图像的处理。本实施例的优势在于,本实施例所述Buffer Handler在各硬件模块的传递过程中不存在内存拷贝。
具体的,本实施例所述应用程序将对应的BufferHandler传入视频处理单元对获取的图像数据进行编码,包括:所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码成H.264码流。
本申请的工作过程为:(1)为每个集中分配好的共享内存块创建一个唯一的Buffer Handler。(2)应用程序将Buffer Handler传给MIPI接口/基于MIPI接口的摄像头,MIPI接口/基于MIPI接口的摄像头将图像数据写入完后,应用程序将对应的BufferHandler传入视频处理单元对其图像数据进行编码成H.264码流,然后将编码好的码流数据写入硬盘.(3)最后将该Buffer Handler重新给到MIPI接口/基于MIPI接口的摄像头开始下一帧图像的处理。
在上述工作过程中,传输的数据在整个过程做到了真正的零拷贝,这在很大程度节省了内存,并大幅提升了系统的整体性能。本申请实现了在多硬件模块间,以及在系统的用户层和内核层间以零拷贝的方式共享内存。
在一个具体应用场景下,假设本申请应用于摄像场景中,本申请的内核层包括内存管理模块、基于MIPI接口的摄像头驱动模块、视频处理单元驱动模块、硬盘驱动模块;本申请的硬件层包括DDR、MIPI接口、视频处理单元、硬盘,本申请提供的一种多硬件模块间零拷贝共享内存系统的工作过程包括:应用程序通过调用硬件层的基于MIPI接口的摄像头获取视频,将获取的视频编码为H264码流后保存到硬盘,内存管理模块集中分配共享内存块,应用程序设置Buffer Handler用于将共享的内存块在各个硬件模块间传递;之后应用程序将Buffer Handler传给基于MIPI接口的摄像头,基于MIPI接口的摄像头将图像数据写入完后,应用程序将Buffer Handler传入视频处理单元对图像数据进行编码成H.264码流,然后将编码好的码流数据写入硬盘,最后将该Buffer Handler重新给到MIPI接口/基于MIPI接口的摄像头开始下一帧图像的处理,数据在整个过程的传输做到了真正的零拷贝。这在很大程度节省了内存,并大幅提升了系统的整体性能。
此外,本申请还提供了一种多硬件模块间零拷贝共享内存方法,所述方法包括:
集中分配若干个内存块供MIPI接口、基于MIPI接口的摄像头和视频处理单元共享使用;
对所述内存块配置对应的BufferHandler;
将对应的BufferHandler传入视频处理单元对获取的图像数据进行编码;
将编码好的码流数据写入硬盘,最后将Buffer Handler重新给到MIPI接口、基于MIPI接口的摄像头开始下一帧图像的处理。
具体地,所述BufferHandler在各硬件模块的传递过程中不存在内存拷贝。
具体地,所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码成H.264码流。
此外,本申请还提出了一种存储介质,其上存储有计算机程序,其中,所述程序被处理器运行时实现如前面实施例所述的方法。
在本发明实施例中,提供一种电子设备,包括:处理器和存储有计算机程序的存储器,所述处理器被配置为在运行计算机程序时执行任一本发明实施例的一种多硬件模块间零拷贝共享内存方法。
在一些实施例中,所述电子设备可以结合任一实施例的多硬件模块间零拷贝共享内存系统特征,反之亦然,在此不赘述。
图2示出了一种可以实施本发明实施例的方法或实现本发明实施例的电子设备的示意图,在一些实施例中可以包括比图示更多或更少的电子设备。在一些实施例中,可以利用单个或多个电子设备实施。在一些实施例中,可以利用云端或分布式的电子设备实施。
如图2所示,电子设备包括处理器201,其可以根据存储在只读存储器(ROM)202中的程序和/或数据或者从存储部分208加载到随机访问存储器(RAM)203中的程序和/或数据而执行各种适当的操作和处理。处理器201可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器201可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如,中央处理器(CPU)、图形处理器(GPU)、神经网络处理器(NPU)、数字信号处理器(DSP)等等。在RAM 203中,还存储有电子设备操作所需的各种程序和数据。处理器201、ROM202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
上述处理器与存储器共同用于执行存储在存储器中的程序,所述程序被计算机执行时能够实现上述各实施例描述的方法、步骤或功能。
以下部件连接至I/O接口205:包括键盘、鼠标、触摸屏等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分1009经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。图2中仅示意性示出部分组件,并不意味着计算机系统只包括图2所示组件。
上述实施例阐明的系统、装置、模块或单元,可以由计算机或其关联部件实现。计算机例如可以为移动终端、智能电话、个人计算机、膝上型计算机、车载人机交互设备、个人数字助理、媒体播放器、导航设备、游戏控制台、平板电脑、可穿戴设备、智能电视、物联网系统、智能家居、工业计算机、服务器或者其组合。
尽管未示出,在本发明实施例中,提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序配置成被运行时执行任一本发明实施例的基于文件差异的编译方法。
在本发明的实施例的存储介质包括永久性和非永久性、可移动和非可移动的可以由任何方法或技术来实现信息存储的物品。存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
在本发明的实施例的方法、程序、系统、装置等,可以在单个或多个连网的计算机中执行或实现,也可以在分布式计算环境中实践。在本说明书实施例中,在这些分布式计算环境中,可以由通过通信网络而被连接的远程处理设备来执行任务。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本领域技术人员可想到,上述实施例阐明的功能模块/单元或控制器以及相关方法步骤的实现,可以用软件、硬件和软/硬件结合的方式实现。
除非明确指出,根据本发明实施例记载的方法、程序的动作或步骤并不必须按照特定的顺序来执行并且仍然可以实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本文中,针对本发明的多个实施例进行了描述,但为简明起见,各实施例的描述并不是详尽的,各个实施例之间相同或相似的特征或部分可能会被省略。在本文中,“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”意指适用于根据本发明的至少一个实施例或示例中,而非所有实施例。上述术语并不必然意味着指代相同的实施例或示例。在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
已参考上述实施例具体示出并描述了本发明的示例性系统及方法,其仅为实施本系统及方法的最佳模式的示例。本领域的技术人员可以理解的是可以在实施本系统及/或方法时对这里描述的系统及方法的实施例做各种改变而不脱离界定在所附权利要求中的本发明的精神及范围。

Claims (10)

1.一种多硬件模块间零拷贝共享内存系统,其特征在于,所述系统包括应用层、内核层、硬件层;
所述应用层包括获取数据并编码的应用程序;
所述内核层包括内存管理模块、基于MIPI接口的摄像头驱动模块、视频处理单元驱动模块、硬盘驱动模块;
所述硬件层包括内存、接口、基于MIPI接口的摄像头、视频处理单元、硬盘;
所述内存管理模块集中分配若干个内存块供接口、基于MIPI接口的摄像头和视频处理单元共享使用。
2.根据权利要求1所述的一种多硬件模块间零拷贝共享内存系统,其特征在于,所述应用程序将从接口、基于MIPI接口的摄像头捕获的视频经过视频处理单元进行编码成H.264码流后保存到硬盘。
3.根据权利要求1所述的一种多硬件模块间零拷贝共享内存系统,其特征在于,集中分配的所述内存块配有对应的Buffer Handler,所述应用程序将Buffer Handler传至所述接口、基于MIPI接口的摄像头,所述接口、基于MIPI接口的摄像头将图像数据写入后,所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码,将编码好的码流数据写入硬盘,最后将Buffer Handler重新给到接口、基于MIPI接口的摄像头开始下一帧图像的处理。
4.根据权利要求3所述的一种多硬件模块间零拷贝共享内存系统,其特征在于,所述Buffer Handler在各硬件模块的传递过程中不存在内存拷贝。
5.根据权利要求1所述的一种多硬件模块间零拷贝共享内存系统,其特征在于,所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码,包括:
所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码成H.264码流。
6.一种多硬件模块间零拷贝共享内存方法,其特征在于,所述方法包括:
集中分配若干个内存块供接口、基于MIPI接口的摄像头和视频处理单元共享使用;
对所述内存块配置对应的Buffer Handler;
将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码;
将编码好的码流数据写入硬盘,最后将Buffer Handler重新给到接口、基于MIPI接口的摄像头开始下一帧图像的处理。
7.根据权利要求6所述的一种多硬件模块间零拷贝共享内存方法,其特征在于,所述Buffer Handler在各硬件模块的传递过程中不存在内存拷贝。
8.根据权利要求6所述的一种多硬件模块间零拷贝共享内存方法,其特征在于,所述应用程序将对应的Buffer Handler传入视频处理单元对获取的图像数据进行编码成H.264码流。
9.一种存储介质,其上存储有计算机程序,其中,所述程序被处理器运行时实现如权利要求1-8中任一所述的方法。
10.一种电子设备,其特征在于,包括:处理器和存储有计算机程序的存储器,所述处理器被配置为在运行计算机程序时实现权利要求1-8中任一所述的方法。
CN202311030072.6A 2023-08-16 2023-08-16 多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质 Pending CN117041591A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311030072.6A CN117041591A (zh) 2023-08-16 2023-08-16 多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311030072.6A CN117041591A (zh) 2023-08-16 2023-08-16 多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN117041591A true CN117041591A (zh) 2023-11-10

Family

ID=88644529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311030072.6A Pending CN117041591A (zh) 2023-08-16 2023-08-16 多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN117041591A (zh)

Similar Documents

Publication Publication Date Title
EP2162827B1 (en) Interfaces for digital media processing
US8477852B2 (en) Uniform video decoding and display
US8610732B2 (en) System and method for video memory usage for general system application
US6665747B1 (en) Method and apparatus for interfacing with a secondary storage system
US20070098080A1 (en) Accelerating video decoding using multiple processors
US20220236911A1 (en) Data streaming for computational storage
US6643329B1 (en) Method and apparatus for dynamic pipelining
US10043234B2 (en) System and method for frame buffer decompression and/or compression
US9787991B2 (en) Analytics assisted encoding
CN117435532B (zh) 基于视频硬件加速接口的拷贝方法、装置及存储介质
KR100440715B1 (ko) 비디오 디코딩 방법 및 장치
US6313766B1 (en) Method and apparatus for accelerating software decode of variable length encoded information
CN117041591A (zh) 多硬件模块间零拷贝共享内存系统、方法、电子设备和存储介质
US10448020B2 (en) Intelligent MSI-X interrupts for video analytics and encoding
CN112162855B (zh) 基于页锁定内存的gpu页缺失处理方法、系统及介质
US7165128B2 (en) Multifunctional I/O organizer unit for multiprocessor multimedia chips
CN115209216A (zh) 视频的播放方法、装置及电子设备
WO2005057923A1 (en) Method and apparatus for multimedia display in a mobile device
JPH10105672A (ja) コンピュータ及びそれに使用する演算機能付きメモリ集積回路
JP2011160077A (ja) 復号装置および方法
KR20110101530A (ko) 동영상 변환 장치
Prata et al. Video Processing on GPU: Analysis of Data Transfer Overhead
TW202309828A (zh) 視訊處理系統以及方法
CN118626404A (zh) 一种数据访问处理方法、数据管理模块以及电子设备
CN115707342A (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