一种帧存管理方法、装置及帧存管理设备与流程
- 国知局
- 2024-09-14 14:49:45
本技术涉及计算机,尤其涉及一种帧存管理方法、装置及帧存管理设备。
背景技术:
1、在芯片领域,由于嵌入式系统内存资源受限,因此,低内存具有广泛的需求。更低的内存也意味着更低的成本,在同级别的产品中,内存使用越低,竞争力也就越高。
2、在媒体相关的产品业务中,内存消耗的较大的部分主要是各个媒体模块之间的交互过程:前级模块写出媒体数据到双倍速率同步动态随机存储器(double data rate,ddr)中,后级模块从ddr中读取媒体数据进行处理。例如,视频输入(video input,vi)从传感器(sensor)采集图像后进行相应的处理,并将处理后的图像写到ddr中;视频处理子系统(video process sub-system,vpss)模块从ddr读取该图像,进行降噪、矫正等处理,再写到ddr中,如图1所示;视频编码(video encode,venc)模块从ddr读取该图像,将图像编码成码流数据进行存储。此外,为了保证各模块之间能相互协调与同步处理,每个处理过程都需要多份的ddr空间以存储未能即时处理的数据,例如,vi写入第一帧数据后,在vpss处理完第一帧之前,需要有另外的ddr空间分配给vi以写入第二帧数据。
3、在图1所示的媒体业务中,对内存的需要仍然较大,在媒体业务中仍存在进一步降低内存消耗的需求。
技术实现思路
1、本技术提供一种帧存管理方法、装置及帧存管理设备,用于解决帧数据存储对内存消耗较大的问题。
2、第一方面,本技术提供一种帧存管理方法,包括:接收输入装置的第一写请求,所述第一写请求用于请求向内存写入帧数据;根据所述第一写请求生成多个第二写请求,每个所述第二写请求用于请求向内存写入所述帧数据中的部分数据;针对第i个第二写请求,若确定当前为所述帧数据分配的存储空间未写满,将所述第i个第二写请求所请求写入的数据写入内存中。
3、在上述方法中,帧存管理装置在接收到输入装置发送的用于写入帧数据的第一请求时,根据写入一整帧数据的请求,生成多个写入部分数据的第二写请求,然后针对每个第二写请求进行向内存写入数据的操作,避免每次写入一整帧数据,需要消耗较多的内存资源;且在针对每个第二写请求进行写入操作时,会先判断为帧数据分配的存储空间当前是否已被写满,而非不做判断直接写入,只在当前分配的存储空间未被写满时才将请求写入的数据写入内存,这就能够避免直接写入从而覆盖了还未被读取的数据,从而在节省存储空间的情况下保证了写入、读取的一致性,避免还未被读取就被覆盖写入新数据的情况发生。
4、在一种可能的实现方式中,所述方法还包括:接收第一输出装置发送的第一读请求,所述第一读请求用于请求从所述内存中读取帧数据;当所述第一读请求中的帧数据已被写入或已被部分写入时,根据所述第一读请求生成多个第二读请求,每个所述第二读请求用于请求从所述内存读取所述帧数据中的部分数据;针对第j个第二读请求,若所述第j个第二读请求所请求读取的存储空间地址在第一范围内,从内存中读取所述地址上的数据并输出至所述第一输出装置,所述第一范围表示第一读指针与写指针构成的地址范围,所述第一读指针表示所述第一输出装置已读取数据的末尾位置,所述写指针用于指示所述输入装置已写入数据的末尾位置;更新所述第一读指针;根据更新后的第一读指针,对已读取数据所在的存储空间进行释放。在该实现方式中,在接收到输出装置发送的读取请求后,帧存管理装置生成若干第二读请求,每个第二读请求用于读取部分数据,使得输出装置在读取数据时,可以一部分、一部分地读取,而不是每次只能读取一个完整帧的数据,若输入装置还未将该帧的全部数据写入内存,输出装置可以先读取已写入的部分,而不是等待一个帧的数据全部写入后再读取;且已读取的数据可以被立即释放,以写入新的数据。这就使得为帧数据分配的内存大小可以小于一个完整帧的大小,从而节省内存。
5、在一种可能的实现方式中,所述方法还包括:更新释放指针,所述释放指针表示已占用的存储空间的末尾位置。在对内存进行释放后,更新释放指针,有助于帧存管理装置根据释放指针判断当前是否有可用存储空间。
6、在一种可能的实现方式中,所述方法还包括:若所述第j个第二读请求所请求读取的存储空间地址超出所述第一范围,等待所述写指针更新;当所述第j个第二读请求所请求读取的存储空间地址在更新后的第一范围内时,从内存中读取所述存储空间地址上的数据并输出至所述第一输出装置,并更新所述第一读指针。在该实现方式中,超出第一范围表示第二读请求所请求读取的数据还未被写入内存,那么帧存管理装置等待请求读取数据被写入,而不是直接丢弃该第二读取请求,避免输出装置获取数据异常。
7、在一种可能的实现方式中,所述方法还包括:当所述第一读请求中的帧数据未被写入,且所述第一读请求所请求读取帧数据的帧号与已写入帧数据的帧号的差值在第二范围内,等待已写入帧数据的帧号的更新。当第一输出装置对帧数据处理异常时,可能会选择丢弃当前帧,在这种情况下,可能会出现第一输出装置的第一读请求所请求读取的帧号超过已写入的帧号,若请求读取的帧号与已写入帧数据的帧号的差值在第二范围内,表示数据虽然异常但仍在允许的范围内,等待新数据的写入即可。
8、在一种可能的实现方式中,所述方法还包括:接收第二输出装置发送的第二读请求,从内存中读取数据并输出至所述第二输出装置,更新第二读指针;所述根据更新后的第一读指针,对已读取数据所在的存储空间进行释放,包括:根据更新后的第一读指针和更新后的第二读指针,对已读取数据所在的存储空间进行释放。在该实现方式中,可以存在接收多个输出装置请求读取同一输入装置写入的数据,在这种情况下,输入装置写入的数据,需要在多个输出装置都读取后,才能够被释放。
9、在一种可能的实现方式中,所述存储空间未写满,表示写指针未指示分配的存储空间的末尾位置,或者,表示所述写指针与释放指针的差值小于为所述帧数据分配的物理存储空间大小,或者,表示分配指针与释放指针的差值小于为所述帧数据分配的物理存储空间大小;所述释放指针用于指示已占用的存储空间的末尾位置,所述分配指针用于指针当前分配的存储空间的末尾位置。
10、在一种可能的实现方式中,所述方法还包括:若确定当前为所述帧数据分配的存储空间已被写满,等待对已占用的存储空间进行释放后,再将所述第i个第二写请求所请求写入的数据写入内存中。
11、在一种可能的实现方式中,所述接收输入装置的第一写请求之后,所述方法还包括:根据业务配置信息确定所述第一写请求所述请求写入的帧数据将被写入双倍速率同步动态随机存储器ddr中或将被写入静态随机存取存储器sram中。在该实现方式中,不同帧号的数据可以被写入不同类型的存储空间中,或者,同一帧号中的不同数据也可以被写入不同类型的存储空间中,使得数据写入更加灵活多样,以满足不同场景的需求。
12、第二方面,本技术提供一种帧存管理装置,所述装置包括:输入模块,用于接收输入装置的第一写请求,所述第一写请求用于请求向内存写入帧数据;帧管理模块,用于根据所述第一写请求生成多个第二写请求,每个所述第二写请求用于请求向内存写入所述帧数据中的部分数据;针对第i个第二写请求,若确定当前为所述帧数据分配的存储空间未写满,将所述第i个第二写请求所请求写入的数据写入内存中。
13、在一种可能的实现方式中,所述装置还包括:输出模块,用于接收第一输出装置发送的第一读请求,所述第一读请求用于请求从所述内存中读取帧数据;所述帧管理模块还用于:当所述第一读请求中的帧数据已被写入或已被部分写入时,根据所述第一读请求生成多个第二读请求,每个所述第二读请求用于请求从所述内存读取所述帧数据中的部分数据;针对第j个第二读请求,若所述第j个第二读请求所请求读取的存储空间地址在第一范围内,从内存中读取所述地址上的数据,并通过所述输出模块输出至所述第一输出装置,所述第一范围表示第一读指针与写指针构成的地址范围,所述第一读指针表示所述第一输出装置已读取数据的末尾位置,所述写指针用于指示所述输入装置已写入数据的末尾位置;更新所述第一读指针;根据更新后的第一读指针,对已读取数据所在的存储空间进行释放。
14、在一种可能的实现方式中,所述帧管理模块还用于:更新释放指针,所述释放指针表示已占用的存储空间的末尾位置。
15、在一种可能的实现方式中,所述帧管理模块还用于:若所述第j个第二读请求所请求读取的存储空间地址超出所述第一范围,等待写指针更新;当所述第j个第二读请求所请求读取的存储空间地址在更新后的第一范围内时,从内存中读取所述存储空间地址上的数据,并通过所述输出模块输出至所述第一输出装置,并更新所述第一读指针。
16、在一种可能的实现方式中,所述帧管理模块还用于:当所述第一读请求中的帧数据未被写入,且所述第一读请求所请求读取帧数据的帧号与已写入帧数据的帧号的差值在第二范围内,等待已写入帧数据的帧号的更新。
17、在一种可能的实现方式中,所述输出装置还用于:接收第二输出装置发送的第二读请求;所述帧管理模块还用于:从内存中读取数据,并通过所述输出模块输出至所述第二输出装置,更新第二读指针;所述帧管理模块在根据更新后的第一读指针,对已读取数据所在的存储空间进行释放时,具体用于:根据更新后的第一读指针和更新后的第二读指针,对已读取数据所在的存储空间进行释放。
18、在一种可能的实现方式中,所述存储空间未写满,表示所述写指针未指示分配的存储空间的末尾位置,或者,表示所述写指针与释放指针的差值小于为所述帧数据分配的物理存储空间大小,或者,表示分配指针与释放指针的差值小于为所述帧数据分配的物理存储空间大小;所述释放指针用于指示已占用的存储空间的末尾位置,所述分配指针用于指针当前分配的存储空间的末尾位置。
19、在一种可能的实现方式中,所述帧管理模块还用于:若确定当前为所述帧数据分配的存储空间已被写满,等待对已占用的存储空间进行释放后,再将所述第i个第二写请求所请求写入的数据写入内存中。
20、在一种可能的实现方式中,在所述输入模块接收输入装置的第一写请求之后,所述帧管理模块还用于:根据业务配置信息确定所述第一写请求所述请求写入的帧数据将被写入双倍速率同步动态随机存储器ddr中或将被写入静态随机存取存储器sram中。
21、第三方面,本技术实施例提供一种帧存管理设备,所述帧存管理设备包括存储器和处理器;所述存储器存储有计算机程序;所述处理器用于调用所述存储器中存储的计算机程序,以执行如第一方面及第一方面任一实现方式所述的方法。
22、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面及第一方面任一实现方式所述的方法。
23、第五方面,本技术实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得如第一方面及第一方面任一实现方式所述的方法被执行。
24、上述第二方面至第五方面中任一方面中的任一可能实现方式可以实现的技术效果,请参照上述第一方面中相应实现方案可以达到的技术效果说明,重复之处不予论述。
本文地址:https://www.jishuxx.com/zhuanli/20240914/296073.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。