CN110012346B - 用户应用快速获取帧缓存中的帧数据的方法和装置、设备 - Google Patents
用户应用快速获取帧缓存中的帧数据的方法和装置、设备 Download PDFInfo
- Publication number
- CN110012346B CN110012346B CN201910234383.1A CN201910234383A CN110012346B CN 110012346 B CN110012346 B CN 110012346B CN 201910234383 A CN201910234383 A CN 201910234383A CN 110012346 B CN110012346 B CN 110012346B
- Authority
- CN
- China
- Prior art keywords
- frame data
- buffer area
- preset buffer
- vehicle
- user application
- 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
Links
Images
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41422—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance located in transportation means, e.g. personal vehicle
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开用户应用快速获取帧缓存中的帧数据的方法和装置、设备,该方法包括:所述车载设备将帧缓存中的帧数据通过直接存储器访问方式推送到存储器中的预设缓冲区;控制用户应用通过地址映射方式访问预设缓冲区中的帧数据。将帧数据通过直接存储器访问方式主动推送至预设缓冲区的过程将搬运过程简化为一步,提高计算机运行速度和工作效率,实现快速将帧数据搬往预设缓冲区。通过快速推送过程和地址映射方式访问过程的配合,用户应用能够快速获取帧数据,实现对帧缓存中的帧数据的连续访问,并且可以避免访问到不完整的帧数据,即访问到的帧数据是已经绘制完毕的且没有被刷新的内容。
Description
技术领域
本发明涉及车载技术领域,特别是涉及用户应用快速获取帧缓存中的帧数据的方法和装置、设备。
背景技术
计算机中的显示系统主要包含三部分:应用处理器、存储设备(包含帧缓存)、以及显示设备。其中,应用处理器负责绘制并生成图像帧,并将生成的图像帧存放到存储设备中的帧缓存(framebuffer),帧缓存用于存储显示屏各像素点的帧数据,显示控制器主要负责从帧缓存中读取像素点的帧数据,并依次写入到显示面板上各像素点对应的逻辑电路中。
车载设备中的诸多用户应用需要及时获取帧缓存中的帧数据。现有的获取帧缓存中的帧数据的方法包括:将帧缓存中的帧数据拷贝到用户应用空间定义的缓存内,然后用户应用读取用户应用空间定义的缓存内存储的帧数据。而这个过程至少涉及到一次数据拷贝操作,耗时较久。对于一块720p的帧数据,使用数据拷贝耗时在16ms以上。但是一般车载设备画面刷新频率在60Hz,即每16ms刷新一次,因此如果车载设备画面内容在16ms后发生改变,会导致拷贝到用户空间程序的帧数据与当前车载设备显示的画面内容不一致的问题。
发明内容
本发明主要的目的是提供用户应用快速获取帧缓存中的帧数据的方法和装置、设备,加快用户应用获取帧缓存中的帧数据的速度,使用户应用能够及时获取到帧缓存中的帧数据。
为达到上述目标,本发明采用的一个技术方案是一种用户应用快速获取帧缓存中的帧数据的方法,应用于车载设备中,车载设备包括存储器,存储器内设置有帧缓存和预设缓冲区,该方法包括:
当接收到第一预定命令,车载设备将帧缓存中的帧数据通过直接存储器访问方式(Direct Memory Access,DMA)推送到存储器中的预设缓冲区;第一预定命令用于指示用户应用连续地获取帧缓存中的帧数据;
车载设备控制用户应用通过地址映射方式访问预设缓冲区中的帧数据。
为达到上述目标,本发明采用的另一个技术方案是一种用户应用快速获取帧缓存中的帧数据的装置,该装置应用于车载设备中,车载设备包括存储器,存储器内设置有帧缓存和预设缓冲区,该装置包括:
处理模块,配置为响应于第一预定命令将帧缓存中的帧数据通过直接存储器访问DMA方式推送到存储器中的预设缓冲区,第一预定命令用于指示用户应用连续地获取帧缓存中的帧数据;
控制用户应用通过地址映射方式访问预设缓冲区中的帧数据。
为达到上述目标,本发明采用的又一个技术方案是一种车载设备,车载设备包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
为达到上述目标,本发明采用的又一个技术方案是一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
以上方案,将帧数据通过直接存储器访问方式主动推送至预设缓冲区的过程将搬运过程简化为一步,给直接存储器访问控制器或图像处理硬件单元提供总线的控制权,使写字节一次完成,大大提高了计算机运行速度和工作效率,实现了快速将帧数据搬往预设缓冲区。通过地址映射方式直接访问预设缓冲区内的帧数据的步骤避免读写文件时需要进行拷贝操作,从而实现对预设缓冲区中的帧数据的快速访问。通过快速推送过程和地址映射方式访问过程的配合,用户应用可以快速获取到帧数据,实现对帧缓存中的帧数据的连续访问,并且可以避免访问到不完整的帧数据,即访问到的帧数据是已经绘制完毕的且没有被刷新的内容。
附图说明
图1是本发明用户应用快速获取帧缓存中的帧数据的方法第一个实施方式的流程示意图;
图2是本发明用户应用快速获取帧缓存中的帧数据的方法第二个实施方式的流程示意图;
图3是本发明用户应用快速获取帧缓存中的帧数据的方法第三个实施方式的流程示意图;
图4是本发明用户应用快速获取帧缓存中的帧数据的方法第四个实施方式的流程示意图;
图5是本发明用户应用快速获取帧缓存中的帧数据的方法第五个实施方式的流程示意图;
图6是本发明用户应用快速获取帧缓存中的帧数据的装置一实施方式的结构示意图;
图7是本发明车载设备一实施方式的结构示意图。
具体实施方式
下面结合附图和实施方式对本发明进行详细说明。
在本文中提及“实施方式”意味着,结合实施方式描述的特定特征、结构或特性可以包含在本申请的至少一个实施方式中。在说明书中的各个位置出现该短语并不一定均是指相同的实施方式,也不是与其它实施方式互斥的独立的或备选的实施方式。本领域技术人员显式地和隐式地理解的是,本文所描述的实施方式可以与其它实施方式相结合。
请参阅图1,图1是本发明一种用户应用快速获取帧缓存中的帧数据的方法第一个实施方式的流程示意图。该方法应用于车载设备中,车载设备包括存储器。存储器内设置有帧缓存和预设缓冲区。帧缓存中的帧数据为显示在显示屏上的数据。在此实施方式中,车载设备还可以包括用来显示帧数据的显示屏。在其他实施方式中,与车载设备无线或有线连接的其他电子设备(如显示装置、移动终端或计算机等)可以包括用来显示车载设备中的帧数据的显示屏。如图1所示,该方法包括如下步骤。
S101:当接收到第一预定命令,车载设备将帧缓存中的帧数据通过直接存储器访问DMA方式推送到存储器中的预设缓冲区,第一预定命令用于指示用户应用连续地获取帧缓存中的帧数据。
其中,第一预定命令可以是用户在车载设备的用户应用上选定的录屏命令、屏幕共享命令或者其他需连续地获取帧缓存中的帧数据的命令。用户应用可以是视频应用程序(如爱奇艺视频、优酷视频、腾讯视频等)、聊天应用程序(QQ、微信等)、直播应用程序(歪歪语音等)以及其他能够实现录屏、屏幕共享的应用程序。
在车载设备第一次启动时,在存储器中申请一个或多个存放帧数据的预设缓冲区。在车载设备后续启动时,如果出现先前申请的若干预设缓冲区因为磁盘坏道或其它原因不能被读写的情况,可以继续在存储器中申请一个或多个用来存放帧数据的预设缓冲区。然后建立新的预设缓冲区和用户应用的空间映射关系。
预设缓冲区可以设置在保留缓存(reserved buffer)和其他存储器空间的至少一个区域中。除了读取预设缓冲区中的内容以及用车载设备当前显示的、新的帧数据替换预设缓冲区存储的车载设备先前显示的、旧的帧数据,预设缓冲区中存储的帧数据不会被自动刷新或删除。
帧数据是在帧缓存已经绘制完毕且没有被刷新的内容。在此实施方式中,在帧缓存内的帧数据绘制完毕后,车载设备将帧缓存中的帧数据通过直接存储器访问方式主动推送到预设缓冲区。在其他实施方式中,可以在帧缓存内的帧数据绘制完毕时,车载设备将帧数据通过直接存储器访问方式主动推送到预设缓冲区。通过直接存储器访问方式主动推送过程可以是由图像处理硬件单元或者直接存储器访问控制器(DMA控制器)来控制的。图像处理硬件单元可为G2D(二维图像处理硬件单元)。在存储器中申请预设缓冲区,并且将帧缓存中的帧数据通过直接存储器访问方式推送到预设缓冲区,避免CPU控制帧数据的搬运过程,实现数据直接在帧缓存和预设缓冲区之间传输,不需要中间媒介,节省传输时间。
S102:车载设备控制用户应用通过地址映射方式访问预设缓冲区中的帧数据。
其中,用户应用可以具有录屏功能和屏幕共享功能中的至少一种功能。
在此实施方式中,在通过地址映射方式从预设缓冲区访问帧数据之前车载设备已经将预设缓冲区的空间地址和用户应用访问的虚拟空间地址的一一对应关系建立好。建立这样的映射关系后,用户应用发起对其访问的虚拟空间的访问,就会引起缺页异常,从而返回预设缓冲区的空间地址,从而可以直接读写存储器中的预设缓冲区中的内容。通过地址映射方式直接访问预设缓冲区中的帧数据可以通过mmap技术或map技术来实现。
在其他实施方式中,车载设备可以控制用户应用调用第一应用程序中的地址映射接口而发起地址映射请求以获取预设缓冲区的物理地址,继而控制用户应用通过获得的预设缓冲区的物理地址直接访问预设缓冲区中的帧数据。第一应用程序内包含有地址映射程序(即地址映射接口)。该地址映射接口可以是map接口或者mmap接口。该地址映射接口被封装为可供用户应用调用的包,用户应用可通过api接口调用第一应用程序中封装好的地址映射接口。其中,车载设备控制用户应用可以调用第一应用程序中的地址映射接口而发起地址映射请求以获取预设缓冲区的物理地址的步骤包括:车载设备控制用户应用调用第一应用程序中的地址映射接口而发起获取其虚拟地址对应的存储区地址的请求;响应于用户应用获取其虚拟地址对应的存储区地址的请求,车载设备将待访问的预设缓冲区的地址分配给用户应用。待访问的预设缓冲区是未被用户应用访问且已经将主动推送的帧缓存接收完毕的预设缓冲区。这样用户应用通过调用第一应用程序中的地址映射接口就可以直接访问预设缓冲区的内容,避免通过传输方式获取预设缓冲区的内容,并且帧缓存中的帧数据已经通过直接存储器访问方式主动推送到预设缓冲区,因此能够保证用户应用访问的帧数据是完整的、连续的。
在此实施方式中,与CPU控制搬运过程相比,将帧数据通过直接存储器访问方式主动推送至预设缓冲区的过程将搬运过程简化为一步,给直接存储器访问控制器或图像处理硬件单元提供总线的控制权,使写字节一次完成,大大提高了计算机运行速度和工作效率,实现了将帧缓存中的帧数据快速搬往预设缓冲区。与常规文件操作相比,通过地址映射方式直接访问预设缓冲区内的帧数据的步骤避免读写文件时需要进行拷贝操作,从而实现对预设缓冲区中的帧数据的快速访问。通过快速推送过程和地址映射方式访问过程的配合,可以在用户应用中快速获取帧数据,实现对帧缓存中的帧数据的连续访问,并且可以避免访问到不完整的帧数据,即访问到的帧数据是已经绘制完毕的且没有被刷新的帧数据。
请参阅图2,图2是本发明用户应用快速获取帧缓存中的帧数据的方法第二个实施方式的流程示意图。该方法应用于车载设备中。车载设备包括存储器。存储器内设置有帧缓存和预设缓冲区。帧缓存中的帧数据为显示在显示屏上的数据。预设缓冲区包括第一预设缓冲区和第二预设缓冲区。如图2所示,该方法包括如下步骤。
S201:车载设备设定第一预设缓冲区与第二预设缓冲区中的之一为主预设缓冲区。其中,主预设缓冲区用来接收通过直接存储器访问方式主动推送的帧数据。
S202:当作为主预设缓冲区的预设缓冲区接收帧数据完毕后,车载设备将当前的主预设缓冲区切换为待访问的预设缓冲区,将下一预设缓冲区切换成主预设缓冲区。待访问的预设缓冲器用来接收用户应用的访问。被用户访问的预设缓冲区被锁定,以避免其被刷新的新帧数据更新;主预设缓冲区接受通过直接存储器访问方式主动推送的帧数据。如此循环,周而复始。
其中,第一预设缓冲区和第二预设缓冲区的地址可以是连续的。用户应用将待访问的预设缓冲区中帧数据读取完毕后,待访问的预设缓冲区的锁被解开,以待其被切换为接受被写入的帧数据的主预设缓冲区。预设缓冲区被锁定以及锁被解开可以通过车载设备系统提供的Lock锁机制(包括自旋锁、信号量等软件机制)来实现。
在此实施方式中,通过设置两个预设缓冲区,可以进一步加快用户应用访问帧数据的速度,减少用户应用访问到帧数据和帧缓存内的帧数据绘制结束时之间的时间差,并且使用户应用可以连续及时的访问到帧数据,可以实时获取帧缓存内的帧数据。利用车载设备系统的锁机制将预设缓冲区锁住或解开锁,可以保证对两个预设缓冲区的同时使用(将帧数据推送到预设缓冲区步骤和访问预设缓冲区的帧数据步骤同时进行),并且可以避免在使用预设缓冲区过程中出现访问和推送到同一个预设缓冲区的情况,从而解决了帧数据同时推送和访问冲突的问题。
请参阅图3,图3是本发明用户应用快速获取帧缓存中的帧数据的方法第三个实施方式的流程示意图。该方法应用于车载设备中。车载设备包括存储器。存储器内设置有帧缓存和预设缓冲区。帧缓存中的帧数据为显示在显示屏上的数据。存储器中预先设置多个预设缓冲区。如图3所示,该方法包括如下步骤:
S301:车载设备设定多个预设缓冲区中的之一为主预设缓冲区,并将帧缓存中的帧数据通过直接存储器访问方式主动推送给主预设缓冲区。
S302:当作为主预设缓冲区的预设缓冲区接收帧数据完毕后,车载设备将当前主预设缓冲区的下一预设缓冲区切换成主预设缓冲区。车载设备将接收完毕的预设缓冲区切换为待访问的预设缓冲区。待访问的预设缓冲器用来接收用户应用的访问。
其中,车载设备可以将接收帧数据完毕后未被用户应用访问的预设缓冲区切换为待访问的预设缓冲区。可以理解的是,车载设备可以将刚刚接收帧数据完毕后的预设缓冲区切换为待访问的预设缓冲区。这样,用户应用就可以访问到最新的帧数据内容。
其中,多个预设缓冲区的地址可以是连续的。当主预设缓冲区接收帧数据完毕后,车载设备锁定接收完毕的预设缓冲区,以避免预设缓冲区接收的帧数据被刷新的新帧数据更新。且当用户应用访问接收完毕的预设缓冲区后,车载设备将处于锁定状态的预设缓冲区解除锁定。如此循环,周而复始。
其中,车载设备控制用户应用访问预设缓冲区中的帧数据的过程为:车载设备控制用户应用调用第一应用程序中的地址映射接口而发起地址映射请求以获取预设缓冲区的物理地址,控制用户应用通过获得的预设缓冲区的物理地址直接访问预设缓冲区中的帧数据。
在此实施方式中,通过设置多个预设缓冲区,可以进一步加快用户应用访问帧数据的速度,减少用户应用访问到帧数据和帧缓存内的帧数据绘制结束时之间的时间差,并且使用户应用可以连续及时的访问到帧数据,可以实时获取帧缓存内的帧数据。利用车载设备系统的锁机制将预设缓冲区锁住或解开锁,可以保证对多个预设缓冲区的同时使用(将帧数据推送到预设缓冲区步骤和访问预设缓冲区的帧数据步骤同时进行),并且可以避免在使用预设缓冲区过程中出现访问和推送到同一个预设缓冲区的情况,从而解决了帧数据同时推送和访问冲突的问题。
请参阅图4,图4是本发明用户应用快速获取帧缓存中的帧数据的方法第四个实施方式的流程示意图。本实施方式中,该方法包括以下步骤:
S401:车载设备获取对用户应用下达的第一预定命令。
其中,第一预定命令可以是用户选定车载设备的用户应用上的截图命令、截屏命令、录屏命令、屏幕共享命令或者其他命令。用户应用可以是视频应用程序(如爱奇艺视频、优酷视频、腾讯视频等等)、截图应用程序(PhotoShop、HyperSnap等等)、聊天应用程序(QQ、微信等等)、直播应用程序(歪歪语音等等)以及其他能够实现截图、截屏、录屏、屏幕共享的应用程序。
S402:响应于第一预定命令,车载设备建立起用户应用访问的虚拟空间与预设缓冲区之间的空间映射。
其中,当用户对用户应用下达第一预定命令后,车载设备就可先确定预设缓冲区的空间地址和用户应用访问的空间地址。判断预设缓冲区的空间地址和用户应用访问的空间地址先前是否已经建立好空间映射关系。如果已经建立好空间映射关系,则不需要再次建立空间映射关系;如果先前没有建立好空间映射关系,就需要建立预设缓冲区和用户应用访问的空间的空间映射关系。
S403:车载设备将帧缓存中的帧数据通过直接存储器访问方式推送到存储器中的预设缓冲区。
其中,可如S101,在此不做赘述。
S404:车载设备控制用户应用通过地址映射方式访问预设缓冲区中的帧数据。
其中,可如S102,在此不做赘述。
在此实施方式中,响应于用户下达的第一预定命令,车载设备先行建立好预设缓冲区的物理地址和用户应用的虚拟地址之间的空间映射关系,当帧数据被主动推送到预设缓冲区后,就可以控制用户应用直接通过地址映射接口调用预设缓冲区的地址,然后控制用户应用直接访问预设缓冲区的内容,从而使用户应用能够快速获取到帧缓存中的帧数据。
请参阅图5,图5是本发明用户应用快速获取帧缓存中的帧数据的方法第五个实施方式的流程示意图。本实施方式中,该方法包括以下步骤:
S501:车载设备获取对用户应用下达的第一预定命令。
可如上S401,在此不作赘述。
S502:车载设备建立起用户应用访问的虚拟空间与预设缓冲区之间的空间映射。
可如上S402,在此不作赘述。
S503:车载设备将帧缓存中的帧数据通过直接存储器访问方式推送到存储器中的预设缓冲区。
可如上S101,在此不作赘述。
S504:车载设备获取对用户应用下达的第二预定命令。
其中,第二预定命令可以是用户在车载设备的用户应用下达的确定需要截图或截屏截取或者录屏录取、屏幕共享等的显示范围的命令。
S505:确定获取的显示范围,车载设备控制用户应用通过地址映射方式访问与显示范围相对应的预设缓冲区中的帧数据。
根据获取的显示范围直接在预设缓冲区访问相应区域的帧数据。其中,该显示范围可以是用户选取的长方形、圆形或者其他图形为边界圈出的显示屏上的范围。该显示范围也可以是车载设备根据用户确定的显示比例(获取的显示范围占全屏的比例)随机确定的或按用户习惯确定的。显示范围可占显示屏上显示画面的部分或全部。根据用户确定的需要截取、录取或屏幕共享的显示范围,车载设备让用户应用通过地址映射方式访问与显示范围相对应的预设缓冲区中的帧数据,然后将访问到的帧数据直接保存、压缩保存或者打包发送出去。
在此实施方式中,响应于用户下达的第二预定命令,车载设备可以根据用户确定的显示范围,控制用户应用访问与显示范围相对应的帧数据,这样可以根据用户的需求获取相应的内容,从而截取、录取或者共享用户想要分享的内容,防止通信信道的浪费,提高车载设备的方便度。
请参阅图6,图6是本发明一种用户应用快速获取帧缓存中的帧数据的装置一实施方式的结构示意图。该装置应用于车载设备中,车载设备包括存储器,存储器内设置有帧缓存和预设缓冲区。用户应用快速获取帧缓存中的帧数据的装置包括处理模块。处理模块配置为响应于第一预定命令将帧缓存中的帧数据通过直接存储器访问DMA方式推送到存储器中的预设缓冲区,第一预定命令用于指示用户应用连续地获取帧缓存中的帧数据;控制用户应用通过地址映射方式访问预设缓冲区中的帧数据。
在此实施方式中,处理模块将帧数据通过直接存储器访问方式主动推送至预设缓冲区的过程,从而将搬运过程简化为一步,给直接存储器访问控制器或图像处理硬件单元提供总线的控制权,使写字节一次完成,大大提高了计算机运行速度和工作效率,实现了将帧缓存中的帧数据快速搬往预设缓冲区。另外处理模块通过地址映射方式直接访问预设缓冲区内的帧数据的步骤避免读写文件时需要进行拷贝操作,从而实现对预设缓冲区中的帧数据的快速访问。通过快速推送过程和地址映射方式访问过程的配合,可以在用户应用中快速获取帧数据,实现对帧缓存中的帧数据的连续访问,并且可以避免访问到不完整的帧数据,即访问到的帧数据是已经绘制完毕的且没有被刷新的帧数据。
在另一实施方式中,用户应用快速获取帧缓存中的帧数据的装置还包括人机交互电路,配置为接收用户的第一预定命令和/或第二预定命令。人机交互电路包括但不限于:显示屏、按键、扬声器及麦克风。
在又一实施方式中,处理模块配置为在帧数据在帧缓存中被绘制完毕后至被刷新前,将帧数据通过图像处理硬件单元或者直接存储器访问控制器以直接存储器访问方式而主动推送至存储器中的预设缓冲区。
在又一实施方式中,处理模块用配置为控制用户应用调用第一应用程序中的地址映射接口而发起地址映射请求以获取预设缓冲区的物理地址,控制用户应用通过获得的预设缓冲区的物理地址直接访问预设缓冲区中的帧数据。
在又一实施方式中,处理模块配置为控制用户应用调用第一应用程序中的地址映射接口而发起获取其虚拟地址对应的存储区地址的请求;响应于用户应用获取其虚拟地址对应的存储区地址的请求,将待访问的预设缓冲区的地址分配给用户应用。
在又一实施方式中,处理模块配置为在存储器预先设置多个预设缓冲区,设定多个预设缓冲区中的之一为主预设缓冲区,并将帧缓存中的帧数据通过直接存储器访问方式主动推送给主预设缓冲区,当主预设缓冲区接收帧数据完毕后,将下一预设缓冲区切换成主预设缓冲区。
在又一实施方式中,处理模块配置为当作为主预设缓冲区的预设缓冲区将帧数据接收完毕后,锁定接收完毕的预设缓冲区,以避免预设缓冲区接收的帧数据被刷新的新帧数据更新;且当用户应用访问接收完毕的预设缓冲区后,将处于锁定状态的预设缓冲区解除锁定。
在又一实施方式中,多个预设缓冲区的地址连续。
在又一实施方式中,处理模块配置为响应于第二预定命令而确定获取的显示范围,控制用户应用通过地址映射方式访问与显示范围相对应的预设缓冲区中的帧数据。
请参阅图7,图7是本发明车载设备一实施方式的结构示意图。本实施方式中的车载设备72包括:存储器71、处理器73以及存储在存储器71中并可在处理器73上运行的计算机程序。处理器73执行计算机程序时实现上述各个用户应用快速获取帧缓存中的帧数据的方法实施方式中的步骤,例如图1所示的步骤S101。
车载设备72可以是车载娱乐设备或者车载导航设备等。车载设备72可包括,但不仅限于,处理器73、存储器71。本领域技术人员可以理解,示意图仅仅是车载设备72的示例,并不构成对车载设备72的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如车载设备72还可以包括输入输出设备、网络接入设备、总线等。处理器73可以是中央处理单元,还可以是其他通用处理器、数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡,安全数字卡,闪存卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
综上,车载设备将帧缓存的帧数据通过直接存储器访问方式主动推送至预设缓冲区的过程,从而将搬运过程简化为一步,给直接存储器访问控制器或图像处理硬件单元提供总线的控制权,使写字节一次完成,大大提高了计算机运行速度和工作效率,实现了快速将帧数据搬往预设缓冲区。另外,车载设备通过地址映射方式直接访问预设缓冲区内的帧数据的步骤避免读写文件时需要进行拷贝操作,从而实现对预设缓冲区中的帧数据的快速访问。通过快速推送过程和地址映射方式访问过程的配合,可以在用户应用中快速获取帧数据,实现对帧缓存中的帧数据的连续访问,并且可以避免访问到不完整的帧数据,即访问到的帧数据是已经绘制完毕的且没有被刷新的内容。
车载设备72集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施方式方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施方式的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种用户应用快速获取帧缓存中的帧数据的方法,其特征在于,应用于车载设备中,所述车载设备包括存储器,所述存储器内设置有所述帧缓存和多个预设缓冲区,所述方法包括:
当接收到第一预定命令,所述车载设备在帧数据在所述帧缓存中被绘制完毕后至被刷新前,将所述帧缓存中的所述帧数据通过直接存储器访问DMA方式推送到所述存储器中的所述预设缓冲区,所述第一预定命令用于指示用户应用连续地获取所述帧缓存中的所述帧数据;当所述预设缓冲区将所述帧数据接收完毕后,所述车载设备锁定接收完毕的所述预设缓冲区;
所述车载设备控制所述用户应用通过地址映射方式访问所述预设缓冲区中的所述帧数据;
所述车载设备控制所述用户应用通过地址映射方式访问所述预设缓冲区中的所述帧数据的步骤包括:所述车载设备控制所述用户应用调用第一应用程序中的地址映射接口而发起地址映射请求以获取已被锁定的预设缓冲区的物理地址,控制所述用户应用通过获得所述已被锁定的预设缓冲区的物理地址直接访问所述已被锁定的预设缓冲区中的帧数据;且当所述用户应用访问所述已被锁定的预设缓冲区后,所述车载设备将所述已被锁定的所述预设缓冲区解除锁定。
2.根据权利要求1所述的方法,其特征在于,
所述车载设备将所述帧缓存中的所述帧数据通过直接存储器访问DMA方式推送到所述存储器中的所述预设缓冲区的步骤包括:
所述车载设备将所述帧数据通过图像处理硬件单元或者直接存储器访问控制器以直接存储器访问方式而主动推送至所述存储器中的所述预设缓冲区。
3.根据权利要求1所述的方法,其特征在于,
所述车载设备控制所述用户应用通过地址映射方式访问所述预设缓冲区中的所述帧数据的步骤包括:
所述车载设备控制所述用户应用调用所述第一应用程序中的地址映射接口而发起获取其虚拟地址对应的存储区地址的请求;响应于所述用户应用获取其虚拟地址对应的存储区地址的请求,所述车载设备将待访问的预设缓冲区的地址分配给所述用户应用;所述车载设备控制所述用户应用通过获得的所述待访问的预设缓冲区的地址直接访问所述预设缓冲区中的所述帧数据。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述车载设备将所述帧缓存中的所述帧数据通过直接存储器访问DMA方式推送到所述存储器中的所述预设缓冲区的步骤包括:
所述车载设备设定多个所述预设缓冲区中的之一为主预设缓冲区;将所述帧缓存中的所述帧数据通过直接存储器访问方式主动推送给所述主预设缓冲区;当作为所述主预设缓冲区的所述预设缓冲区将所述帧数据接收完毕后,所述车载设备将下一预设缓冲区切换成所述主预设缓冲区。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当作为所述主预设缓冲区的所述预设缓冲区将所述帧数据接收完毕后,所述车载设备锁定接收完毕的所述预设缓冲区,以避免所述预设缓冲区接收的所述帧数据被刷新的新帧数据更新。
6.根据权利要求1所述的方法,其特征在于,所述多个预设缓冲区的地址连续。
7.根据权利要求1-3中任意一项所述的方法,其特征在于,
所述车载设备控制所述用户应用通过地址映射方式访问所述预设缓冲区中的所述帧数据的步骤包括:
所述车载设备获取对所述用户应用下达的第二预定命令;
响应于所述第二预定命令而确定获取的显示范围,所述车载设备控制所述用户应用通过地址映射方式访问与所述显示范围相对应的所述预设缓冲区中的所述帧数据。
8.一种用户应用快速获取帧缓存中的帧数据的装置,其特征在于,应用于车载设备中,所述车载设备包括存储器,所述存储器内设置有所述帧缓存和多个预设缓冲区,所述装置包括:
处理模块,配置为响应于第一预定命令将所述帧缓存中的所述帧数据通过直接存储器访问DMA方式推送到所述存储器中的所述预设缓冲区,所述第一预定命令用于指示用户应用连续地获取所述帧缓存中的所述帧数据;当所述预设缓冲区将所述帧数据接收完毕后,锁定接收完毕的预设缓冲区;
控制所述用户应用调用第一应用程序中的地址映射接口而发起地址映射请求以获取已被锁定的预设缓冲区的物理地址,控制所述用户应用通过获得所述已被锁定的预设缓冲区的物理地址直接访问所述已被锁定的预设缓冲区中的帧数据;且当所述用户应用访问所述已被锁定的预设缓冲区后,所述车载设备将所述已被锁定的所述预设缓冲区解除锁定。
9.一种车载设备,其特征在于,所述车载设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述方法的步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910234383.1A CN110012346B (zh) | 2019-03-26 | 2019-03-26 | 用户应用快速获取帧缓存中的帧数据的方法和装置、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910234383.1A CN110012346B (zh) | 2019-03-26 | 2019-03-26 | 用户应用快速获取帧缓存中的帧数据的方法和装置、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110012346A CN110012346A (zh) | 2019-07-12 |
CN110012346B true CN110012346B (zh) | 2022-07-15 |
Family
ID=67168246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910234383.1A Active CN110012346B (zh) | 2019-03-26 | 2019-03-26 | 用户应用快速获取帧缓存中的帧数据的方法和装置、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110012346B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111899148B (zh) * | 2020-07-03 | 2023-11-28 | Tcl华星光电技术有限公司 | 帧数据的处理方法及系统、存储介质 |
CN111976482B (zh) * | 2020-07-08 | 2021-12-24 | 南斗六星系统集成有限公司 | 一种车载仪表屏和中控娱乐屏的双屏交互系统及方法 |
CN112492014B (zh) * | 2020-11-19 | 2024-01-09 | 广州橙行智动汽车科技有限公司 | 一种车载数据传输方法和装置 |
CN112596684B (zh) * | 2021-03-08 | 2021-06-22 | 成都启英泰伦科技有限公司 | 一种用于语音深度神经网络运算的数据存储方法 |
CN113867674A (zh) * | 2021-09-28 | 2021-12-31 | 北京大上科技有限公司 | 电子墨水显示屏的刷新方法和显示系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103680461A (zh) * | 2012-09-20 | 2014-03-26 | 广东新岸线计算机系统芯片有限公司 | 一种实现显示帧缓存切换的方法及显示系统 |
CN107077376A (zh) * | 2016-12-07 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 帧缓存实现方法、装置、电子设备和计算机程序产品 |
CN108228498A (zh) * | 2017-12-21 | 2018-06-29 | 深圳开阳电子股份有限公司 | 一种dma控制装置和图像处理器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10223275B2 (en) * | 2016-01-28 | 2019-03-05 | Seagate Technology Llc | Distributed media cache |
-
2019
- 2019-03-26 CN CN201910234383.1A patent/CN110012346B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103680461A (zh) * | 2012-09-20 | 2014-03-26 | 广东新岸线计算机系统芯片有限公司 | 一种实现显示帧缓存切换的方法及显示系统 |
CN107077376A (zh) * | 2016-12-07 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 帧缓存实现方法、装置、电子设备和计算机程序产品 |
CN108228498A (zh) * | 2017-12-21 | 2018-06-29 | 深圳开阳电子股份有限公司 | 一种dma控制装置和图像处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN110012346A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110012346B (zh) | 用户应用快速获取帧缓存中的帧数据的方法和装置、设备 | |
US10489101B2 (en) | Screen sharing system, screen sharing method, and storage medium | |
US10390076B2 (en) | Image receiving/reproducing device, image generating/transmitting device, display system, image receiving/reproducing method, image generating/transmitting method, and computer readable medium | |
CN111258519B (zh) | 屏幕分屏实现方法、装置、终端和介质 | |
CN114820272B (zh) | 数据交互的方法、装置、存储介质及电子设备 | |
CN113342455B (zh) | 基于多操作系统的图层处理方法及车机系统 | |
CN113521728A (zh) | 云应用的实现方法、装置、电子设备和存储介质 | |
CN114302208A (zh) | 视频的发布方法、装置、电子设备、存储介质和程序产品 | |
CN110879683A (zh) | 屏幕信息共享的方法、终端及车辆 | |
CN115061652A (zh) | 车载多媒体投屏方法、装置、设备及可读存储介质 | |
CN116467099B (zh) | 基于核间通讯的信息处理方法、装置、芯片及电子设备 | |
CN110457522B (zh) | 信息分享的方法及装置、终端和存储介质 | |
US10002589B2 (en) | Retaining user selected screen area on user equipment | |
CN108713193A (zh) | 混合并行串行存储器系统中的多序列冲突减少 | |
CN112269631A (zh) | 虚拟机共享键鼠系统 | |
CN110427135B (zh) | 确定应用呼出的方法、装置、终端及存储介质 | |
CN114489419A (zh) | 权限控制方法及电子设备 | |
CN108255568B (zh) | 一种终端界面显示方法及装置、终端、存储介质 | |
CN117827709B (zh) | 直接内存访问的实现方法、装置、设备及存储介质 | |
CN116028000B (zh) | 跨多操作系统的显示特性处理方法、单元及交通设备 | |
CN115242970A (zh) | 车机摄像头数据共享系统、方法、电子设备及存储介质 | |
CN209930416U (zh) | 一种多屏播放系统 | |
CN117149113A (zh) | 显示方法、显示装置、电子设备和可读存储介质 | |
CN114356495A (zh) | 集群控制方法、终端、电子设备及计算机可读存储介质 | |
CN116389702A (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 |