一种数据预读取方法、装置、设备、存储介质及产品与流程

文档序号:33392447发布日期:2023-03-08 11:38阅读:48来源:国知局
一种数据预读取方法、装置、设备、存储介质及产品与流程

1.本技术实施例涉及数据处理技术领域,尤其涉及一种数据预读取方法、装置、设备、存储介质及产品。


背景技术:

2.在hevc(high efficiency video coding,高效率视频编码)编码中,数据缓存的性能好坏是影响编码速度的关键因素之一。
3.通常情况下,计算机缓存结构包含三级缓存,缓存层次结构越往上,数据的访存效率越高。当计算机在读取或写入内存数据时,会优先去一级缓存查找是否有对应数据,再去二级缓存查找是否有对应数据,如果一二级缓存均无法找到对应数据,则会去内存中去获取数据。
4.在缓存中未能命中需要处理的数据时,需要在内存中读取相应的数据,由于内存的访问速度相对较慢,频繁的在内存中读取数据,容易导致编码效率低下。


技术实现要素:

5.本技术实施例提供一种数据预读取方法、装置、设备、存储介质及产品,以解决相关技术中频繁的在内存中读取数据,容易导致编码效率低下的技术问题,有效提高缓存的命中率,提高编码效率。
6.在第一方面,本技术实施例提供了一种数据预读取方法,包括:
7.在对待处理图像的第一数据单元进行处理前,根据所述第一数据单元在设定内存位置的存储起始地址以及设定的预读取长度确定预读取起始地址,所述待处理图像包括多个尺寸相同的数据单元;
8.基于所述待处理图像的图像尺寸信息以及所述第一数据单元的单元尺寸信息确定预读取范围,所述预读取长度大于等于所述单元尺寸信息中的单元长度;
9.基于所述预读取起始地址和所述预读取范围,从所述设定内存位置中预读取第二数据单元数据到设定缓存位置中。
10.在第二方面,本技术实施例提供了一种数据预读取装置,包括地址确定模块、范围确定模块和数据预读取模块,其中:
11.所述地址确定模块,配置为在对待处理图像的第一数据单元进行处理前,根据所述第一数据单元在设定内存位置的存储起始地址以及设定的预读取长度确定预读取起始地址,所述待处理图像包括多个尺寸相同的数据单元;
12.所述范围确定模块,配置为基于所述待处理图像的图像尺寸信息以及所述第一数据单元的单元尺寸信息确定预读取范围,所述预读取长度大于等于所述单元尺寸信息中的单元长度;
13.所述数据预读取模块,配置为基于所述预读取起始地址和所述预读取范围,从所述设定内存位置中预读取第二数据单元数据到设定缓存位置中。
14.在第三方面,本技术实施例提供了一种数据预读取设备,包括:存储器以及一个或多个处理器;
15.所述存储器,用于存储一个或多个程序;
16.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据预读取方法。
17.在第四方面,本技术实施例提供了一种存储计算机可执行指令的非易失性存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的数据预读取方法。
18.在第五方面,本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行如第一方面所述的数据预读取方法。
19.本技术实施例通过在对待处理图像的第一数据单元进行处理前,根据第一数据单元的存储起始地址以及设定的预读取长度确定预读取起始地址,并根据待处理图像的图像尺寸信息以及第一数据单元的单元尺寸信息确定预读取范围,基于预读取起始地址和预读取范围从设定内存位置中预读取第二数据单元数据并保存到设定缓存位置中,本方案通过在处理第一数据单元前在设定内存位置中预读取第二数据单元数据到设定缓存位置中,后续在需要对第二数据单元进行处理时可快速从设定缓存位置中获取相应数据,有效提高缓存的命中率,减少在处理数据单元时还需要从设定内存位置读取数据的情况,并且可根据手机本单元的单元尺寸信息准确地从设定内存位置中预读取第二数据单元数据,有效提高数据缓存性能,提高编码效率。
附图说明
20.图1是本技术实施例提供的一种数据预读取方法的流程图;
21.图2是本技术实施例提供的另一种数据预读取方法的流程图;
22.图3是本技术实施例提供的第一种对第二数据单元数据进行预读取的示意图;
23.图4是本技术实施例提供的第二种对第二数据单元数据进行预读取的示意图;
24.图5是本技术实施例提供的一种数据预读取装置的结构示意图;
25.图6是本技术实施例提供的一种数据预读取设备的结构示意图。
具体实施方式
26.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图对本技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时上述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。上述处理可以对应于方法、函数、规程、子例程、子程序等等。
27.本技术提供的数据预读取方法可应用于图像编码(例如基于hevc编码器的图像编码),旨在通过根据当前需要处理的第一数据单元的存储起始位置、预读取长度、待处理图像和第一数据单元的尺寸信息从设定内存位置中预读取第二数据单元数据,有效提高缓存的命中率和编码效率。对于传统的图像编码,单元数据的处理和读取一般是间隔执行的,即编码过程中用于处理数据的指令执行流水线在处理数据时,会暂停读取数据的数据读写流水线,而在数据读取流水线读取下一个需要处理的数据时,会暂停指令执行流水线。同时,数据读写流水线在读取数据时,会优先从读写速度更快的缓存中寻找数据,在缓存中未能命中需要处理的数据时,在内存中读取相应的数据,由于内存的访问速度相对于缓存较慢,频繁的在内存中读取数据容易导致编码效率低下。基于此,提供本技术实施例的一种数据预读取方法,以解决现有数据读取与处理方式下,图像编码效率低下的技术问题。
28.图1给出了本技术实施例提供的一种数据预读取方法的流程图,本技术实施例提供的数据预读取方法可以由数据预读取装置来执行,该数据预读取装置可以通过硬件和/或软件的方式实现,并集成在数据预读取设备中。
29.下述以数据预读取装置执行数据预读取方法为例进行描述。参考图1,该数据预读取方法包括:
30.s101:在对待处理图像的第一数据单元进行处理前,根据第一数据单元在设定内存位置的存储起始地址以及设定的预读取长度确定预读取起始地址,待处理图像包括多个尺寸相同的数据单元。
31.本方案提供的待处理图像为需要进行编码相关处理的图像,其中,不同的待处理图像可对应不同的图像尺寸。在对待处理图像进行处理时,一般会先将待处理图像划分成多个单元尺寸相同的数据单元,例如64*64、32*32、16*16等不同单元尺寸的数据单元。可选的,对待处理图像的处理可以是对待处理图像的满足光栅扫描的遍历大小相同的块的处理,例如对编码树单元(ctu,coding tree unit)的编码处理、对编码树单元的重建处理、对编码树单元的去方块滤波处理、对图像子块(例如16*16的图像子块)的编码预处理(lookahead)等,待处理图像中数据单元的类型可以是编码树单元、编码预处理子块等。可选的,在对待处理图像进行处理时,可对依次按照不同的单元尺寸划分,对待处理图像进行处理。例如在进行编码树单元的编码处理时,可依次遍历待处理图像中单元尺寸为64*64、32*32、16*16的编码树单元。可选的,本方案提供的数据单元对应的数据可以是待处理图像的色度、亮度等。
32.其中,待处理图像保存在设定内存位置中,不同的待处理图像的设定内存位置基于待处理图像在内存中的存储位置确定。当前需要处理的数据单元为第一数据单元,第一数据单元从设定内存位置中读取得到,第一数据单元可以是直接从设定内存位置(内存)中读取的数据单元(例如待处理图像在对应单元尺寸的首个数据单元),也可以是已经预读取到设定缓存位置的第二数据单元。其中,当前等待指令流水线进行处理的数据单元为第一数据单元,未被指令流水线进行处理的数据单元为第二数据单元(包括保存在设定内存位置的数据单元和预读取到设定缓存位置的数据单元)。
33.示例性的,在对待处理图像的第一数据单元进行处理前,可先确定预读取的数据的位置和范围,可在对第一数据处理单元进行处理的同时,从设定内存位置中预读取第二数据单元数据到设定缓存位置中。确定当前需要处理的第一数据单元在设定内存设置中的
存储起始位置,并根据存储起始位置以及设定的预读取长度确定在设定内存设置预读取数据的预读取起始地址。
34.可选的,本方案提供的预读取长度可基于缓存行(cache line)的大小确定,其中预读取长度可设置为小于等于缓存行的大小,例如在缓存行的大小为64字节时,可将预读取长度确定为64字节。本方案根据缓存行的大小确定预读取长度,保证正确读取对应长度的第二数据单元数据,
35.s102:基于待处理图像的图像尺寸信息以及第一数据单元的单元尺寸信息确定预读取范围,预读取长度大于等于单元尺寸信息中的单元长度。
36.示例性的,确定待处理图像的图像尺寸信息以及第一数据单元的单元尺寸信息,并根据图像尺寸信息和单元尺寸信息确定在设定内存位置预读取数据的预读取范围。其中,本方案提供的预读取长度大于等于单元尺寸信息中的单元长度。
37.本方案提供的预读取范围可理解为在对当前第一数据单元进行处理时,在设定内存位置中预读取数据的数据范围。可选的,预读取范围对应的数据量与第一数据单元的数据量一致。一般的,在完成对第一数据单元的处理时,已完成对预读取范围内的数据的预读取,在处理第一数据单元的同时,同步预读取第二数据单元数据。
38.在一个可能的实施例中,本方案提供的预读取范围可以是包括预读取循环次数和偏移距离,其中,偏移距离用于指示每次循环预读取的起始位置相对于上一次循环预读取的起始位置偏移的距离。在循环一次对第二数据单元数据的预读取时,从当前预读取循环的起始位置向后移动偏移距离,并从移动到达的位置开始下一次的预读取循环。一般的,在从每次循环预读取的起始位置(第二数据单元一行的首位置)向后移动偏移距离后,到达对应第二数据单元下一行行的首位置。预读取循环次数用于指示针对当前第一数据单元,进行预读取的循环次数。按照预读取循环次数读取第二数据单元数据得到的数据量与第一数据单元的数据量一致。本方案通过预读取循环次数和偏移距离确定数据预读取的范围,保证在完成对当前第一数据单元的处理时,可完整从设定缓存位置读取下雨歌第一数据单元进行处理。
39.s103:基于预读取起始地址和预读取范围,从设定内存位置中预读取第二数据单元数据到设定缓存位置中。
40.示例性的,在通过指令执行流水线处理第一数据单元的同时,通过数据读写流水线从上述确定的预读取起始地址开始,按照预读取范围确定的数据范围,从设定内存位置中预读取第二数据单元数据,并将预读取到的第二数据单元数据缓存到设定缓存位置中。
41.需要进行解释的是,在预读取单元数据时,读取的可以是一个第二数据单元的完整的数据(即第二数据单元包括单个第二数据单元数据),也一个第二数据单元的部分数据(即第二数据单元包括多个第二数据单元数据),即通过连续的多次数据预读取中依次预读取一个第二数据单元的不同部分的数据,由多个第二数据单元数据可得到完整的第二数据单元,在进行下一个第一数据单元的处理前完成对相应的第二数据单元的各个第二数据单元数据的读取即可。
42.在一个实施例中,在完成当前的第一数据单元的处理后,可在设定缓存位置中读取下一个第二单元数据,并将该第二单元数据确定为接下来需要处理的第一数据单元,此时可继续根据新的第一数据单元在设定内存位置的存储起始地址进行下一次的第二数据
单元数据的预读取流程。
43.上述,通过在对待处理图像的第一数据单元进行处理前,根据第一数据单元的存储起始地址以及设定的预读取长度确定预读取起始地址,并根据待处理图像的图像尺寸信息以及第一数据单元的单元尺寸信息确定预读取范围,基于预读取起始地址和预读取范围从设定内存位置中预读取第二数据单元数据并保存到设定缓存位置中,本方案通过在处理第一数据单元前在设定内存位置中预读取第二数据单元数据到设定缓存位置中,后续在需要对第二数据单元进行处理时可快速从设定缓存位置中获取相应数据,有效提高缓存的命中率,减少在处理数据单元时还需要从设定内存位置读取数据的情况,并且可根据手机本单元的单元尺寸信息准确地从设定内存位置中预读取第二数据单元数据,有效提高数据缓存性能,提高编码效率。
44.在上述实施例的基础上,图2给出了本技术实施例提供的另一种数据预读取方法的流程图,该数据预读取方法是对上述数据预读取方法的具体化。参考图2,该数据预读取方法包括:
45.s201:在对待处理图像的第一数据单元进行处理前,根据第一数据单元在设定内存位置的存储起始地址以及设定的预读取长度确定预读取起始地址,待处理图像包括多个尺寸相同的数据单元。
46.s202:基于第一数据单元的单元尺寸信息以及预读取长度,确定预读取循环次数,其中,预读取长度和预读取循环次数的乘积与单元尺寸信息中单元长度和单元宽度的乘积一致。
47.本方案提供的预读取范围包括预读取循环次数和偏移距离,其中,预读取循环次数可基于数据单元的单元尺寸和预读取长度进行确定。
48.示例性的,确定第一数据单元的单元尺寸信息(单元长度*单元宽度),并根据单元尺寸信息和预读取长度确定预读取循环次数,使得预读取长度和预读取循环次数的乘积与单元尺寸信息中单元长度和单元宽度的乘积一致,即按照预读取长度和预读取循环次数读取的数据量与一个数据单元的数据量一致。
49.在一个实施例中,在第一数据单元的单元长度与预读取长度一致时,在每次预读取一行数据时,所读取的数据量刚好是第二数据单元的一行数据的数据量,可将预读取循环次数设置为第一数据单元的单元宽度,即预读取循环次数与第一数据单元的行数一致。在第一数据单元的单元长度小于预读取长度时,在每次预读取一行数据时,所读取的数据量是多个第二数据单元的一行数据的数据量,可将预读取循环次数设置为第一数据单元的单元长度和单元宽度的乘积与预读取长度的比值,以使得预读取长度和预读取循环次数的乘积与第一数据单元的单元长度和单元宽度的乘积一致。
50.例如,假设预读取长度为64字节时,若第一数据单元的单元尺寸信息为64*64,则可将预读取循环次数设置为64次,若第一数据单元的单元尺寸信息为32*32,则可将预读取循环次数设置为16次,若第一数据单元的单元尺寸信息为16*16,则可将预读取循环次数设置为4次。
51.s203:基于待处理图像的行跨度信息,确定每次循环预读取的起始位置相对于上一次循环预读取的起始位置的偏移距离。
52.示例性的,确定待处理图像在设定内存位置中进行保存所对应的行跨度信息
(stride,即图像在内存中每行像素所占的空间),并根据待处理图像的行跨度信息确定偏移距离,该偏移距离即为每次循环预读取的起始位置相对于上一次循环预读取的起始位置。
53.需要进行解释的是,从一次循环预读取的起始位置向后移动对应的偏移距离时,将移动到第一数据单元下一行的起始位置,该位置即为下一次循环预读取的起始位置。
54.s204:从预读取起始地址开始,按照预读取长度在设定内存位置中预读取第二数据单元数据到设定缓存位置中。
55.s205:基于预读取范围中的偏移距离调整预读取起始地址,得到下一次循环预读取的预读取循环地址,并从预读取循环地址开始,按照预读取长度在设定内存位置中预读取第二数据单元数据到设定缓存位置中,直至循环预读取的次数达到预读取范围中的预读取循环次数。
56.示例性的,在确定预读取的预读取起始地址、预读取循环次数和偏移距离后,从预读取起始地址开始从设定内存位置中预读取长度对应的第二数据单元数据,并将读取到的第二数据单元数据缓存到设定缓存位置中。
57.进一步的,按照上述确定的偏移距离调整预读取起始地址,移动后确定的地址即为下一次循环预读取的预读取循环地址,并更新当前的循环预读取的次数。从下一次循环预读取的预读取循环地址开始,按照预读取长度在设定内存位置中预读取第二数据单元数据,并将读取到的第二数据单元数据缓存到设定缓存位置中,再进行下一个预读取循环地址的确定及数据的预读取,直至循环预读取的次数达到预读取范围中对应的预读取循环次数。
58.需要进行解释的是,若当前第一数据单元的单元长度与预读取长度一致,当前所预读取的第二数据单元数据为完整的第二数据单元。若当前第一数据单元的单元长度小于预读取长度一致,当前所预读取的第二数据单元数据为第二数据单元的部分数据。
59.在一个可能的实施例中,本方案在根据第一数据单元在设定内存位置的存储起始地址以及设定的预读取长度确定预读取起始地址之前,还包括:在关闭波前并行处理模式的情况下,确定从设定内存位置中预读取第二数据单元数据。
60.示例性的,在对待处理图像的第一数据单元进行处理之前,确定当前图像编码器是否有关闭波前并行处理模式(wpp,wave font processing),并且在确定关闭波前并行处理模式时,确定从设定内存位置中预读取第二数据单元数据,若波前并行处理模式开启,则不采用本方案提供的数据预读取方法从设定内存位置中预读取第二数据单元数据,或者是关闭波前并行处理模式,再从设定内存位置中预读取第二数据单元数据。需要进行解释的是,在开启波前并行处理模式时,数据预读取的数据并不是连续的数据,在开启波前并行处理模式时,无法保证在处理下一个第一数据单元时完成了完整的第一数据单元的预读取。本方案在确定波前并行处理模式关闭的情况下才从设定内存位置中预读取第二数据单元数据,保证在处理下一个第一数据单元时完成了完整的第一数据单元的预读取,有效保证数据处理与预读取能够互不重叠地同步进行,提高图像处理效率。
61.在一个可能的实施例中,对数据的预读取操作可基于对应平台所提供的预读取指令进行。以x86平台下下常用的预读取指令(prefetch指令)为例,预读取指令有prefetcht0、prefetcht1、prefetcht2和prefetchnta,其中prefetcht0、prefetcht1和
prefetcht2指令用于将内存中的数据预取到离处理器较近的缓存位置(cache level)上,prefetchnta指令是一种为了防止cache污染的预读取指令,主要用于预读取后不会重复使用的数据。arm平台下支持的预读取指令形式为prfm《prfop》,《addr》,其中prfop包含的级联有:pld(加载预取,prefetch for load)和pst(存储预取,prefetch for store)、预读取的缓存位置(l1、l2、或l3)以及keep(用于后续还会用到的数据)或strm(用于只用一次的数据)。
62.在hevc编码中,数据单元是按照光栅扫描顺序从左到右从上到下进行编码,假定缓存行的大小为64字节,因此一个预读取指令可以预期指定地址处的连续64个字节的数据。由于hevc编码中数据单元(例如编码树单元)大小包含64*64、32*32和16*16等,而每处理一个数据单元之前的数据预读取都需要预读取对应尺寸大小的内存区域,才能保证数据处理与预读取能够互不重叠地同步进行。
63.如图3提供的第一种对第二数据单元数据进行预读取的示意图所示,图中示意为待处理数据中的数据单元d11-d13在设定内存位置的部分存储位置,假设预读取长度为64字节,第一数据单元的单元尺寸信息为64*64,第一数据单元在设定内存位置的存储起始地址为a11。那么预读取起始地址为a12=(a11+64),预读取循环次数为64次,偏移距离为待处理图像的行跨度信息,按照预读取起始地址、预读取循环次数和偏移距离预读取得到第二数据单元数据,读取得到第二数据单元数据对应为图3中阴影区域s11对应的数据,是一个完整的第二数据单元。在完成一个第一数据单元的处理后,在该第一数据单元后面的第二数据单元也完成在设定缓存位置的预读取,可直接从设定缓存位置获取该第二数据单元作为下一个第一数据单元进行处理,不需要再从内存中进行寻址获取数据,可连续不间断地对下一个数据单元进行处理和预读取,提高图像处理效率。
64.如图4提供的第二种对第二数据单元数据进行预读取的示意图所示,图中示意为待处理数据中的数据单元d21-d25在设定内存位置的部分存储位置,假设预读取长度为64字节,第一数据单元的单元尺寸信息为32*32,第一数据单元在设定内存位置的存储起始地址为a21。那么预读取起始地址为a23=(a21+64),预读取循环次数为16次,偏移距离为待处理图像的行跨度信息,按照预读取起始地址、预读取循环次数和偏移距离预读取得到第二数据单元数据,读取得到第二数据单元数据对应为图4中阴影区域s21对应的数据,其包括第二数据单元一半的数据和相邻的第二数据单元一半的数据,其中阴影区域s22对应的数据为下一次处理第一数据单元时所读取得到第二数据单元数据(包含本次预读取后一个第二数据单元的另一半数据),本次预读取前一个第二数据单元的另一半数据在前一次预读取数据时已经读取得到,并且第二数据单元d22对应的数据在之前的数据预读取中已经完成预读取并缓存在设定缓存位置中,在完成一个第一数据单元的处理后,可直接从设定缓存位置获取第二数据单元d22对应的缓存数据作为下一个第一数据单元进行处理,不需要再从内存中进行寻址获取数据,可连续不间断地对下一个数据单元进行处理和预读取,提高图像处理效率。
65.上述,通过在对待处理图像的第一数据单元进行处理前,根据第一数据单元的存储起始地址以及设定的预读取长度确定预读取起始地址,并根据待处理图像的图像尺寸信息以及第一数据单元的单元尺寸信息确定预读取范围,基于预读取起始地址和预读取范围从设定内存位置中预读取第二数据单元数据并保存到设定缓存位置中,本方案通过在处理
第一数据单元前在设定内存位置中预读取第二数据单元数据到设定缓存位置中,后续在需要对第二数据单元进行处理时可快速从设定缓存位置中获取相应数据,有效提高缓存的命中率,减少在处理数据单元时还需要从设定内存位置读取数据的情况,并且可根据手机本单元的单元尺寸信息准确地从设定内存位置中预读取第二数据单元数据,有效提高数据缓存性能,提高编码效率。同时,根据第一数据单元的单元尺寸信息以及预读取长度准确确定预读取循环次数,并根据待处理图像的行跨度信息确定偏移距离,确定预读取范围,保证每次预读取的第二数据单元数据的数据量与第一数据单元的数据量一致,并且在完成一个第一数据单元的处理时,已完成下一个需要处理的第一数据单元的预读取,可有效提高对缓存的命中率,提高图像处理效率。并且按照预读取范围中的预读取循环次数和偏移距离依次循环读取预读取长度的第二数据单元数据,保证数据处理与预读取能够互不重叠地同步进行,在满足数据预读取高效率进行的同时,有效保证预读取单元读取的数据的完整性,保证图像编码高效有序进行。
66.图5是本技术实施例提供的一种数据预读取装置的结构示意图。参考图5,该数据预读取装置包括地址确定模块51、范围确定模块52和数据预读取模块53。
67.其中,地址确定模块51,配置为在对待处理图像的第一数据单元进行处理前,根据第一数据单元在设定内存位置的存储起始地址以及设定的预读取长度确定预读取起始地址,待处理图像包括多个尺寸相同的数据单元;范围确定模块52,配置为基于待处理图像的图像尺寸信息以及第一数据单元的单元尺寸信息确定预读取范围,预读取长度大于等于单元尺寸信息中的单元长度;数据预读取模块53,配置为基于预读取起始地址和预读取范围,从设定内存位置中预读取第二数据单元数据到设定缓存位置中。
68.上述,通过在对待处理图像的第一数据单元进行处理前,根据第一数据单元的存储起始地址以及设定的预读取长度确定预读取起始地址,并根据待处理图像的图像尺寸信息以及第一数据单元的单元尺寸信息确定预读取范围,基于预读取起始地址和预读取范围从设定内存位置中预读取第二数据单元数据并保存到设定缓存位置中,本方案通过在处理第一数据单元前在设定内存位置中预读取第二数据单元数据到设定缓存位置中,后续在需要对第二数据单元进行处理时可快速从设定缓存位置中获取相应数据,有效提高缓存的命中率,减少在处理数据单元时还需要从设定内存位置读取数据的情况,并且可根据手机本单元的单元尺寸信息准确地从设定内存位置中预读取第二数据单元数据,有效提高数据缓存性能,提高编码效率。
69.在一个可能的实施例中,预读取范围包括预读取循环次数和偏移距离,偏移距离用于指示每次循环预读取的起始位置相对于上一次循环预读取的起始位置偏移的距离。
70.在一个可能的实施例中,范围确定模块52包括次数确定子模块和距离确定子模块。
71.其中,次数确定子模块配置为基于第一数据单元的单元尺寸信息以及预读取长度,确定预读取循环次数,其中,预读取长度和预读取循环次数的乘积与单元尺寸信息中单元长度和单元宽度的乘积一致;距离确定子模块配置为基于待处理图像的行跨度信息,确定每次循环预读取的起始位置相对于上一次循环预读取的起始位置的偏移距离。
72.在一个可能的实施例中,数据预读取模块53包括第一预读取子模块和第二预读取子模块。
73.其中,第一预读取子模块配置为从预读取起始地址开始,按照预读取长度在设定内存位置中预读取第二数据单元数据到设定缓存位置中;第二预读取子模块配置为基于预读取范围中的偏移距离调整预读取起始地址,得到下一次循环预读取的预读取循环地址,并从预读取循环地址开始,按照预读取长度在设定内存位置中预读取第二数据单元数据到设定缓存位置中,直至循环预读取的次数达到预读取范围中的预读取循环次数。
74.在一个可能的实施例中,预读取长度基于缓存行的大小确定。
75.在一个可能的实施例中,数据预读取装置还包括预读取确定模块,预读取确定模块配置为在关闭波前并行处理模式的情况下,确定从设定内存位置中预读取第二数据单元数据。
76.值得注意的是,上述数据预读取装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
77.本技术实施例还提供了一种数据预读取设备,该数据预读取设备可集成本技术实施例提供的数据预读取装置。图6是本技术实施例提供的一种数据预读取设备的结构示意图。参考图6,该数据预读取设备包括:输入装置63、输出装置64、存储器62以及一个或多个处理器61;存储器62,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器61执行,使得一个或多个处理器61实现如上述实施例提供的数据预读取方法。上述提供的数据预读取装置、设备和计算机可用于执行上述任意实施例提供的数据预读取方法,具备相应的功能和有益效果。
78.本技术实施例还提供一种存储计算机可执行指令的非易失性存储介质,计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的数据预读取方法。当然,本技术实施例所提供的一种存储计算机可执行指令的非易失性存储介质,其计算机可执行指令不限于如上提供的数据预读取方法,还可以执行本技术任意实施例所提供的数据预读取方法中的相关操作。上述实施例中提供的数据预读取装置、设备及存储介质可执行本技术任意实施例所提供的数据预读取方法,未在上述实施例中详尽描述的技术细节,可参见本技术任意实施例所提供的数据预读取方法。
79.在上述实施例的基础上,本技术实施例还提供一种计算机程序产品,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备、移动终端或其中的处理器执行本技术各个实施例所提供的数据预读取方法的全部或部分步骤。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1