数据处理方法及装置制造方法及图纸

技术编号:25270330 阅读:28 留言:0更新日期:2020-08-14 23:03
本发明专利技术公开了一种数据处理方法及装置。其中,该方法包括:根据缓存器的缓存行的尺寸和宏块的尺寸,确定缓存行能够容纳的宏块的数量,其中,宏块是对数据划分的基本单位;确定数据所需的存储空间的大小;根据存储空间的大小,确定数据对应的缓存行的起始地址;根据数据在缓存行的起始地址,以及缓存行可容纳下的宏块的数量,对数据进行编码和解码处理。本发明专利技术解决了相关技术中编码处理方法,重复填充编码的缓存行,导致缓存数据变脏,利用率较低的技术问题。

【技术实现步骤摘要】
数据处理方法及装置
本专利技术涉及数据处理领域,具体而言,涉及一种数据处理方法及装置。
技术介绍
现有图像编解码算法,通常要将图像分解为宏块(macroblock),之后再以宏块为单位进行相应的编码算法。当在通用处理器上实现相应的图像编码算法时,考虑到目前通用处理器大多支持多个核心,一般需要通过开启多线程/多进程的方式,并将线程/进程调度到不同的处理器核心。现有设计中,受硬件设计复杂度及成本的限制,高速缓冲存储器(cache)都是以多路组相连的方式使用和管理的,即,高速缓冲存储器分成多个组,每个组分成多个缓存行(cacheline),缓存行是高速缓冲存储器的最小单位,缓存行尺寸是指缓存行的大小,也是高速缓冲存储器的基本单位。即使只读取一个字节数据,高速缓冲存储器也会加载整个缓存行。通常,缓存行的大小为64字节或128字节,X86和ARM体系的处理器,通常一级缓存行大小为64字节。现有技术中按照宏块来进行线程的划分并不合理,以16×16划分宏块为例,当加载第一个数据时,假设该数据对应到位于某缓存行第一个字节位置,则该缓存行被连续的64字节填充,而对于当前线程,只有前16字节是有用的,紧接着的(64-16=48)字节分属于随后的三个宏块,换句话说,运行在不同处理器核心中的线程处理不同的宏块,但是,根据缓存行的划分,每个核心的缓存行都对应到了相同的地址上,这种情况下,当一个核心写入数据时,会导致整个缓存行的数据变脏,也就需要整个缓存行刷新到内存,对于别的核心来说虽然修改的数据是自己不关心的部分,但是整个缓存行里有被修改的部分,就必须重新填充,否则别的核心在写数据时,会把前一个核心写入的数据冲掉。极端情况下,如果随后的三个宏块正在另外的三个处理器核中进行处理,因为每个处理器核有自己的一级高速缓冲存储器,则会导致各核心的缓存行需要重复填充四次才能满足不同线程/进程的需要,考虑更加恶劣的场景,当程序需要写入数据时,会频繁的引起高速缓冲存储器数据变脏,而导致其他核心的缓存行重新填充,极大的降低了高速缓冲存储器的利用率。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种数据处理方法及装置,以至少解决相关技术中编码处理方法,重复填充编码的缓存行,导致缓存数据变脏,利用率较低的技术问题。根据本专利技术实施例的一个方面,提供了一种数据处理方法,包括:根据缓存器的缓存行的尺寸和数据划分的宏块的尺寸,确定所述缓存行能够容纳的所述宏块的数量,其中,所述宏块是对所述数据进行划分后进行处理的基本单元;确定所述数据所需的存储空间的大小;根据所述存储空间的大小,确定所述数据对应的缓存行的起始地址;根据所述数据在所述缓存行的起始地址,以及所述缓存行能够容纳的所述宏块的数量,对所述数据进行编码和解码处理。可选的,确定所述数据所需的存储空间的大小包括:确定所述数据的数据量;确定所述数据的数据量存储在所述缓存器的所述缓存行中所需的缝隙空间;根据所述数据的数据量和所述缝隙空间的大小确定所述数据所需的存储空间的大小。可选的,根据所述存储空间的大小,确定所述数据对应的缓存行的起始地址包括:确定所述数据在所述缓存行的预设地址;从所述预设地址开始遍历整个所述缓存行的位置,作为起始位置,计算每个起始位置缓存的所述数据进行交换操作的所用时间;确定最短的所述所用时间对应的所述缓存行的起始位置为所述缓存行的起始地址。可选的,计算每个起始位置缓存的所述数据进行交换操作的所用时间包括:获取预设的起始位置,并记起始时间;对所述数据进行交换操作,完成交换操作记为结束时间,其中,对所述数据进行交换操作包括:遍历所述起始位置至所述起始位置之后所述缓存行尺寸的一半的前一个位置,与当前位置之后所述缓存行尺寸的一半的位置进行交换,直至所述缓存行尺寸的一半的前一个位置与所述缓存行的最后一个位置交换完毕,记结束时间;根据所述起始时间和所述结束时间确定所述交换操作所用时间。可选的,根据所述数据在所述缓存行的起始地址,以及所述缓存行能够容纳的所述宏块的数量,对所述数据进行编码和解码处理包括:根据所述缓存行能够容纳的所述宏块的数量,对所述缓存行进行分线程任务划分;根据所述分线程任务,对所述数据进行编码和解码处理。可选的,所述数据为图像数据,确定所述数据所需的存储空间的大小包括:通过计算公式,确定所述图像数据所需的存储空间的大小,所述计算公式如下:S=W″×H′+lcls,式中,S为所述图像数据所需的存储空间,lcls为所述缓存行的尺寸;其中,W为所述图像的宽度,lbw为所述宏块的尺寸;其中,H为所述图像的高度。可选的,根据所述存储空间的大小,确定所述数据对应的缓存行的起始地址之后,还包括:在第一缓存行中从所述起始地址开始存放所述图像的第一行数据,在第二缓存行中从所述起始地址之后W″的位置开始存放所述图像的第二行数据,在第N缓存行中从第N-1缓存行中的起始位置之后W″的位置,开始存放所述图像的第N行数据,其中,所述图像数据由所述第一行数据,第二行数据,至所述第N行数据组成。根据本专利技术实施例的另一方面,还提供了一种数据处理装置,包括:第一确定模块,用于根据缓存器的缓存行的尺寸和数据划分的宏块的尺寸,确定所述缓存行能够容纳的所述宏块的数量,其中,所述宏块是对所述数据进行划分后进行处理的基本单元;第二确定模块,用于确定所述数据所需的存储空间的大小;第三确定模块,用于根据所述存储空间的大小,确定所述数据对应的缓存行的起始地址;处理模块,用于根据所述数据在所述缓存行的起始地址,以及所述缓存行能够容纳的所述宏块的数量,对所述数据进行编码和解码处理。根据本专利技术实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的数据处理方法。根据本专利技术实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的数据处理方法。在本专利技术实施例中,采用根据缓存器的缓存行的尺寸和数据划分的宏块的尺寸,确定缓存行能够容纳的宏块的数量,其中,宏块是对数据进行划分后进行处理的基本单元;确定数据所需的存储空间的大小;根据存储空间的大小,确定数据对应的缓存行的起始地址;根据数据在缓存行的起始地址,以及缓存行能够容纳的宏块的数量,对数据进行编码和解码处理的方式,通过缓存行包括的宏块数量和数据所需的缓存空间大小,确定数据在缓存行的起始地址,根据该起始地址对数据进行编码和解码处理,达到了使数据对齐缓存行中的宏块进行编码和解码处理,尽可能读写完整的宏块数据的目的,从而实现了避免缓存数据变脏,提高缓存行的利用率的技术效果,进而解决了相关技术中编码处理方法,重复填充编码的缓存行,导致缓存数据变脏,利用率较低的技术问题。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是本文档来自技高网
...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n根据缓存器的缓存行的尺寸和数据划分的宏块的尺寸,确定所述缓存行能够容纳的所述宏块的数量,其中,所述宏块是对所述数据进行划分后进行处理的基本单元;/n确定所述数据所需的存储空间的大小;/n根据所述存储空间的大小,确定所述数据对应的缓存行的起始地址;/n根据所述数据在所述缓存行的起始地址,以及所述缓存行能够容纳的所述宏块的数量,对所述数据进行编码和解码处理。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
根据缓存器的缓存行的尺寸和数据划分的宏块的尺寸,确定所述缓存行能够容纳的所述宏块的数量,其中,所述宏块是对所述数据进行划分后进行处理的基本单元;
确定所述数据所需的存储空间的大小;
根据所述存储空间的大小,确定所述数据对应的缓存行的起始地址;
根据所述数据在所述缓存行的起始地址,以及所述缓存行能够容纳的所述宏块的数量,对所述数据进行编码和解码处理。


2.根据权利要求1所述的方法,其特征在于,确定所述数据所需的存储空间的大小包括:
确定所述数据的数据量;
确定所述数据的数据量存储在所述缓存器的所述缓存行中所需的缝隙空间;
根据所述数据的数据量和所述缝隙空间的大小确定所述数据所需的存储空间的大小。


3.根据权利要求2所述的方法,其特征在于,根据所述存储空间的大小,确定所述数据对应的缓存行的起始地址包括:
确定所述数据在所述缓存行的预设地址;
从所述预设地址开始遍历整个所述缓存行的位置,作为起始位置,计算每个起始位置缓存的所述数据进行交换操作的所用时间;
确定最短的所述所用时间对应的所述缓存行的起始位置为所述缓存行的起始地址。


4.根据权利要求3所述的方法,其特征在于,计算每个起始位置缓存的所述数据进行交换操作的所用时间包括:
获取预设的起始位置,并记起始时间;
对所述数据进行交换操作,完成交换操作记为结束时间,其中,对所述数据进行交换操作包括:遍历所述起始位置至所述起始位置之后所述缓存行尺寸的一半的前一个位置,与当前位置之后所述缓存行尺寸的一半的位置进行交换,直至所述缓存行尺寸的一半的前一个位置与所述缓存行的最后一个位置交换完毕,记结束时间;
根据所述起始时间和所述结束时间确定所述交换操作所用时间。


5.根据权利要求1所述的方法,其特征在于,根据所述数据在所述缓存行的起始地址,以及所述缓存行能够容纳的所述宏块的数量,对所述数据进行编码和解码处理包括:
根据所述缓...

【专利技术属性】
技术研发人员:左程范志刚卢涛
申请(专利权)人:西安万像电子科技有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1