用于媒体处理加速器的采集方法和装置制造方法

文档序号:6495973阅读:136来源:国知局
用于媒体处理加速器的采集方法和装置制造方法
【专利摘要】描述了装置、系统和方法,包括将高速缓冲存储器线至少划分为最高有效部分和次最高有效部分,将高速缓冲存储器线内容存储在寄存器阵列中,以使得每一个高速缓冲存储器线的最高有效部分存储在寄存器阵列的第一行中且每一个高速缓冲存储器线的次最高有效部分存储在寄存器阵列的第二行中。第一行的第一寄存器部分的内容可以提供给桶形移位器,其中,可以对齐该内容且随后将该内容存储在缓冲器中。
【专利说明】用于媒体处理加速器的采集方法和装置
【背景技术】
[0001]视频面通常以区块格式存储在存储器中,以改进存储器控制器效率。视频处理算法经常需要访问这些视频面内任意位置处的任意矩形尺寸的感兴趣的2D区域(R0I)。这些任意位置可以是未对齐的高速缓冲存储器,且可以跨越几个非相邻的高速缓冲存储器线和/或区块(tile)。为了从这样的位置采集像素,传统方式可以从存储器过量提取像素数据的几个高速缓冲存储器线,随后执行交叉混合(swizzling)、掩码和缩减操作,使得采集过程具有挑战性。
[0002]高能效的媒体处理通常由可编程向量或标量架构来进行,或者由固定的功能逻辑来进行。在传统的向量实施方式中,可以使用向量采集指令来采集ROI的像素值,这通常包括:从一个高速缓冲存储器线收集像素值的行中的某些值,遮蔽任何无效值,在缓冲器或存储器中存储值,从下一个高速缓冲存储器线收集该行的附加的像素值,并重复这个过程直到采集到像素值的完整的水平的行为止。结果,为了满足区块格式,典型的向量采集过程通常需要使用不同的蒙版(mask)来多次重发相同的高速缓冲存储器线。
【专利附图】

【附图说明】
[0003]在附图中通过示例而非限制的方式例示了本文中所描述的材料。为了例示的简单和清楚,附图中例示的元件不一定是按照比例绘制的。例如,为了清楚,可以相对于其他元件而放大某些元件的尺寸。此外,在认为适当的情况下,在附图中重复了附图标记,以表示相应的或类似的元件。在附图中:
[0004]图1是示例性系统的示意图;
[0005]图2例示了示例性的过程;
[0006]图3例示了示例性的区块存储器格式;
[0007]图4例示了示例性的区块存储器格式;
[0008]图5、6和7例不了不同环境下图1的不例性系统;
[0009]图8例示了图2的示例性过程的附加部分;
[0010]图9例示了溢出条件下图1的示例性系统;以及
[0011]图10是全部根据本公开内容的至少某些实施方式而布置的示例性系统的示意图。
【具体实施方式】
[0012]现在参考附图来说明一个或多个实施例。尽管论述了特定的结构和布置,但应理解,这仅是出于说明性目的而作出的。本领域技术人员应当认识到,在不脱离本说明书的精神和范围的情况下,可以使用其他结构和布置。对于本领域技术人员而言,本文中所描述的技术和/或布置也可以用于除了本文中所描述的以外的各种其他系统和应用是显而易见的。
[0013]尽管以下说明阐述了可以在例如这种芯片上系统(SoC)架构的架构中出现的多个实施方式,但本文所述的技术和/或布置的实施方式不局限于特定的架构和/或计算系统,可以由用于类似目的的任意架构和/或计算系统来实现。例如,采用例如多个集成电路(IC)芯片和/或封装的多种架构,和/或多种计算设备,和/或诸如机顶盒、智能电话之类的多种消费电子(CE)设备,可以实现本文所述的技术和/或布置。此外,尽管以下说明可以阐明多个特定细节,例如系统部件的逻辑实施方式、类型和相互关系,逻辑划分/集成选择等,但可以实施所要求保护的主题而不需要这样的特定细节。在其他情况下,例如,可以不详细示出诸如控制结构和完整软件指令序列之类的一些材料,从而不模糊本文中所公开的材料。
[0014]本文中所公开的材料可以在硬件、固件、软件或其任意组合中实现。本文中所公开的材料也可以实现为存储在机器可读介质上的指令,其可以由一个或多个处理器读取并执行。机器可读介质可以包括用于以机器(例如计算设备)可读的形式存储或发送信息的任意介质和/或机制。例如,机器可读介质可以包括:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式传播的信号(例如,载波、红外信号、数字信号等),及其他的介质。
[0015]说明书中引用的“一个实施例”、“一实施例”、“一示例性实施例”等表示所述的实施方式可以包括特定的特征、结构或特性,但是不需要每个实施方式都包括特定的特征、结构或特点。而且,这样的短语不一定指代相同的实施方式。此外,当结合一实施方式来描述特定的特征、结构或特点时,应当指出,这些特征、结构或特点在其他相关实施方式中起作用是在本领域技术人员的知识范围内的,而无论本文中是否明确地说明。
[0016]图1例示了根据本公开内容的采集引擎100的示例性实施方式。在多个实施方式中,采集引擎100可以构成媒体处理加速器的至少一部分。采集引擎100包括寄存器阵列102、桶形移位器104、两个采集寄存器缓冲器(GRB)106和108和多路复用器(MUX)llO。寄存器阵列102包括具有多个寄存器存储位置或部分122的多个俄罗斯方块寄存器(tetrisregister) 112、114、116、118和120。在多个实施方式中,根据本公开内容的俄罗斯方块寄存器可以是任意临时存储逻辑,例如被配置为字节标记的或使能的处理器寄存器逻辑。
[0017]根据本公开内容,采集引擎100可以用于从存储在诸如高速缓冲存储器(例如LI高速缓冲存储器)之类的存储器中的视频面的感兴趣的区域(ROI)采集视频数据。在多个实施方式中,ROI可以包括任意类型的视频数据,例如像素强度值等。在多个实施方式中,弓I擎100可以被配置为存储从高速缓冲存储器(未示出)接收的多个高速缓冲存储器线(CL)的内容,从而跨过阵列102的俄罗斯方块寄存器112-120中的相对应的一个的部分122来存储每个高速缓冲存储器线(例如CL1、CL2等)。在多个实施方式中,俄罗斯方块寄存器的第一部分可以构成阵列102的第一行124,而俄罗斯方块寄存器的第二部分可以构成阵列的第二行126,如此类推。
[0018]根据本公开内容,高速缓冲存储器线内容可以存储在阵列102中,以使得每个CL的内容的不同部分存储在俄罗斯方块寄存器中的相对应的一个的不同部分中。例如,在多个实施方式中,CLl的最高有效部分可以存储在俄罗斯方块寄存器112的第一部分128中,而CL2的最高有效部分可以存储在俄罗斯方块寄存器114的第一部分130中,如此类推。CLl的次最高有效部分可以存储在俄罗斯方块寄存器112的第二部分132中,而CL2的次最高有效部分可以存储在俄罗斯方块寄存器114的第二部分134中,如此类推。[0019]根据本公开内容,阵列102的行的数量可以与待处理的高速缓冲存储器线中的八进制字(OW)的数量相匹配,而阵列102的列的数量(及因此所采用的俄罗斯方块寄存器的数量)可以与高速缓冲存储器线OW加一的数量相匹配。在图1的示例中,引擎100可以配置为采集64字节的高速缓冲存储器线,以使得每个俄罗斯方块寄存器都包括四个部分122以存储相对应的高速缓冲存储器线的四个16字节OW部分,并且因此阵列102包括四行。例如,CLl的最高有效OW可以存储在俄罗斯方块寄存器112的部分128中,而CLl的次最高有效OW可以存储在寄存器112的部分132中,如此类推。如以下将更详细解释的那样,为了容纳并处理未对齐的和/或溢出的高速缓冲存储器线内容,根据本公开内容的采集引擎可以包括比存储高速缓冲存储器线OW所需的俄罗斯方块寄存器的数量至少多一个的俄罗斯方块寄存器。例如,为了处理具有四个OW的64字节高速缓冲存储器线,阵列102包括五个俄罗斯方块寄存器112-120,以使得阵列102的每一行都在宽度上横跨总共80字节。
[0020]桶形移位器104可以接收寄存器102的任意一行的内容。例如,桶形移位器104可以是64字节桶形移位器,被配置为接收与在阵列102中存储的五个高速缓冲存储器线中的最高有效部分相对应的行124的内容。在多个实施方式中,如下将更详细解释的那样,桶形移位器104可以通过例如左移寄存器部分122的内容来对齐它们,随后可以将对齐的内容提供给GRB106或GRB108。例如,桶形移位器104可以以连续往复(successiveiteration)的方式接收行124的部分122的内容,对齐那些内容并将经对齐的内容提供给GRB106。例如,桶形移位器104可以接收寄存器部分128的内容,可以对齐那些内容,并且随后将经对齐的数据提供给GRB106。桶形移位器104可以随后接收寄存器部分130的内容,可以对齐那些内容并随后将经对齐的数据提供给GRB106,以相邻于与寄存器部分128相对应的经对齐的数据而临时存储,如此类推,直至行124的内容与GRB106对齐并存储于GRB106中,以生成像素数据的对齐行。
[0021]当引擎100如刚才所描述那样处理行124的内容时,引擎100还可以以类似的方式进行行126的内容的处理,直至行126的内容与RGB108对齐并存储于RGB108中,以生成像素值的第二对齐行。在多个实施方式中,如下更详细解释的那样,GRB106和GRB108可以使用MUXllO以往复方式将像素数据的对齐行提供给2D寄存器文件(未示出),以将GRB106和GRB108的内容交替地提供给寄存器文件(RF)。
[0022]在多个实施方式中,采集引擎100可以在一个或多个集成电路(IC)中实现,所述集成电路例如是芯片上系统(SoC)和消费电子(CE)媒体处理系统的附加1C。例如,引擎100可以由被配置为处理视频数据的任意设备来实现,所述设备例如是但不限于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)等。如上所述,尽管引擎100包括适合于处理64字节高速缓冲存储器线的五个俄罗斯方块寄存器112-120,但根据本公开内容的采集引擎可以包括取决于高速缓冲存储器线和/或被处理的ROI的尺寸的任意数量的俄罗斯方块寄存器。
[0023]图2例示了根据本公开内容的多个实施方式的用于实现采集操作的示例性过程200的流程图。过程200可以包括如由图2的块201、202、204、206、208、210和212中的一个或多个块所示的一个或多个操作、功能或动作。通过非限制性示例的方式,本文中将参考图1的示例性采集引擎100来描述过程200。过程200可以在块201处开始,其中开始对视频面的ROI的采集处理。例如,过程200可以在块201处开始,其中开始对64x64的ROI的采集处理(例如,ROI横跨64行,每一行都具有64字节的像素值)。
[0024]在块202处,可以接收第一高速缓冲存储器线(CL),其中,所述CL对应于在ROI中所包含的数据的第一 CL。在块204处,可以将CL划分为最高有效部分、次最高有效部分等。例如,如果在块202处接收64字节CL,则可以将CL划分为四个16字节OW部分。随后可以将CL部分载入寄存器阵列中,以便将最高有效部分存储在阵列的第一行的第一位置中,次最高有效部分存储在阵列的第二行的第一位置中,如此类推。例如,由阵列102接收的64字节CL (CLl)可以划分为四个0W,并载入第一俄罗斯方块寄存器112的寄存器部分122中,以便将最高有效OW存储在部分128中,次最高有效OW存储在部分132中,如此类推。
[0025]在块208处,做出关于是否要针对ROI获得附加的数据的高速缓冲存储器线的确定。如果要获得附加的CL,则过程200可以环回(loop back)并针对ROI中下一个CL进行块202-206。例如,可以由阵列102接收下一个64字节CL (CL2),划分为四个OW并载入第二俄罗斯方块寄存器114的寄存器部分122中,以便将最高有效OW存储在部分130中,次最高有效OW存储在部分134中,如此类推。以此方式,过程200可以通过块202-206的连续往复而继续循环,直至ROI的一个或多个附加的CL载入阵列102中。例如,继续以上的示例,直到可以由阵列102接收ROI的另外三个CL (例如,CL3、CL4和CL5),以类似的方式划分为四个OW并载入剩余俄罗斯方块寄存器116、118和120的寄存器部分122中。
[0026]图3和4例示了根据本公开内容的多个实施方式的、在区块存储器中用于存储视频面的示例性区块_y格式。在图3中,存储器的4KB个区块300可以包括八(8)列乘以16字节宽存储位置的三十二(32)行。在区块-y格式中,区块300可以将64字节CL302的四个OW存储为区块300的列的第一部分。以此方式,区块300可以存储数据的六十四(64)个高速缓冲存储器线。在图4中,示出区块300跨诸如高速缓冲存储器之类的存储器的区域400的一部分。参考过程200和引擎100,用以加载ROI的CL的块202-206的连续往复可以包括连续地将区块300的高速缓冲存储器线402-410载入阵列102中。
[0027]返回到图2的论述,当已经将ROI的一个或多个CL载入到寄存器阵列中时,过程200可以在块210处继续,其中,针对阵列的第一行的每一个连续部分,将该部分载入到桶形移位器中,如有必要,对齐该部分的内容。例如,块210可以包括将行124的第一部分128的内容载入到移位器104中,随后左移数据以将其GRB106对齐。在一些实施方式中,如果当在块202-206处将高速缓冲存储器线载入阵列时已经对齐了高速缓冲存储器线,则块210可以不包括对齐内容。在块212处,可以将像素值的对齐的第一行提供给第一采集缓冲器。例如,可以从桶形移位器104将行124的对齐的像素值内容提供给GRB106。
[0028]例如,图5例示了根据本公开内容的多个实施方式的、在针对第一寄存器部分进行过程200的块210和212的环境500中的引擎100。在环境500中,如图所示,已经将ROI的五个CL载入到阵列102中,其中ROI的内容(由虚线标记示出)没有相对于阵列102对齐。在这个示例中,ROI的第一 CL (例如CLl)载入到第一俄罗斯方块寄存器112中,以使得俄罗斯方块寄存器112的每一个部分122都包括无效部分502。根据本公开内容,当针对行124的第一寄存器部分128进行块210时,将部分128的内容载入到移位器104中并左移,以使得当在块210处将内容提供给GRB106时,数据如图所示地与GRB106对齐。
[0029]继续该示例,图6示出了根据本公开内容的多个实施方式的、在针对下一个寄存器部分进行过程200的块210和212的环境600中的引擎100。在环境600中,通过将俄罗斯方块寄存器114的部分130的内容载入到移位器104中,左移数据并随后将对齐的数据提供给GRB106来为行124的下一个部分130进行块210和212,以使得该数据如图所示地相邻于来自部分128的对齐的数据而被存储。以该方式,在块210和212结束处,行124的完全对齐的内容可以存储在GRB106中,如图7所示,其中,在根据本公开内容的多个实施方式的、针对第一寄存器行124完成过程200的块210和212的环境700中例示了引擎100。
[0030]返回到图2的论述,当在块212处已经将第一行的对齐的内容载入到第一采集缓冲器中时,过程200可以继续进行寄存器阵列的任意附加的行的处理。图8示出了根据本公开内容的多个实施方式的用于实现采集操作的示例性过程200的附加部分的流程图。过程200的附加部分可以包括如图8的块215、214、216、218、220、和222中的一个或多个块所例示的一个或多个操作、功能或动作。通过非限制性示例的方式,本文中还将参考图1的示例性采集引擎100来描述过程200的附加的块。过程200可以在图8的块214处继续。
[0031]在块214处,可以将阵列的第二行的部分的内容连续地载入到桶形移位器中,并且如有必要,可以对齐该内容。在块215处,可以将经对齐的寄存器部分的内容并入第二采集缓冲器中。例如,块214和块215可以包括:将第二行126的第一部分132的内容载入到移位器104中,左移数据,将经对齐的数据载入到GRB108中,将第二行126的第二部分134的内容载入到移位器104中,左移数据,将经对齐的数据载入到的GRB108中邻近来自部分132的经对齐数据,如此类推,直至处理了第二行的全部部分。因此,在这个示例中,在块214和块215结束处,寄存器阵列102的第二行126的经对齐的内容可以被载入到GRB108中。
[0032]当块214和/或块215进行时,可以在块216处将第一行的经对齐的内容从第一寄存器缓冲器提供给2D寄存器文件。例如,块216可以包括:使用MUXllO来将存储在GRB106中的经对齐的第一行数据提供给RF,其中,所述数据可以在RF中存储为第一行数据。在块218处,可以将第二行的经对齐的内容从第二寄存器缓冲器提供给RF。例如,块218可以包括:使用MUXllO来将存储在GRB108中的经对齐的第二行数据提供给RF,其中,所述数据可以在RF中存储为第二行数据。
[0033]过程200可以在块220处继续,其中,以类似于以上针对寄存器阵列的前两行所描述的方式来处理寄存器阵列的附加的行。因此,例如,块220可以引起阵列102的三个剩余行的经对齐内容在RF中被存储为接下来的三行数据,并可以完成阵列的这些行的处理。在块222处,可以作出有关于是否应进行针对ROI采集更多的高速缓冲存储器线的确定。例如,如果过程200的第一次往复(iteration)已引起了采集64x64的ROI的四行,贝U可以针对ROI接下来的四行继续进行采集操作。如果将针对ROI继续采集操作,则过程200可以返回到图2,并可以在块201处开始针对ROI的一个或多个附加的高速缓冲存储器线进行第二次过程200。否则,如果采集操作不继续,则过程200可以结束。
[0034]尽管示例性过程200的实施方式如图2和8所示可以包括以例示的顺序进行所示的全部块,但是本公开内容不限于此,并且在多个示例中,过程200的实施方式可以包括仅进行所示的全部块的一子集和/或以不同于所示的顺序进行。例如,在多个实施方式中,可以在块214和215的任意一个或两者的之前、期间和/或之后进行图8的块216。另外,可以针对寄存器阵列的不同填充阶段来进行根据本公开内容的采集处理,以使得如果在任一时间,寄存器阵列的一行或多行为空的话,则可以在如本文所述地处理保持有ROI的像素值的阵列行的同时,用来自高速缓冲存储器的ROI像素值来加载那些行。
[0035]另外,可以响应于由一个或多个计算机程序产品提供的指令来进行图2和图8的处理和/或块中的任意一个或多个。这种程序产品可以包括提供指令的信号承载介质,在由例如一个或多个处理器核心执行所述指令时,可以提供本文所描述的功能。可以在任意形式的计算机可读介质中提供计算机程序产品。因此,例如,包括一个或多个处理器核心的处理器可以响应于由计算机可读介质传送到处理器的指令来进行图2和8中所示的一个或多个块。
[0036]此外,尽管本文中已经在针对在高速缓冲存储器中以区块_y格式存储的视频面的64x64的ROI来采集64字节的高速缓冲存储器线的示例性采集引擎100的环境中描述了过程200,但是本公开内容不限于高速缓冲存储器线的具体尺寸、ROI的尺寸或形状、和/或具体的区块存储器格式。例如,为了针对具有大于64字节宽度的ROI实现采集处理,可以将一个或多个附加的俄罗斯方块寄存器添加到寄存器阵列中。另外,对于较小宽度的R0I,例如32x64的ROI,阵列的前两行可以在被写出到RF之前收集到采集缓冲器中。此外,诸如区块-X之类的其他区块存储器格式可以根据本公开内容而进行采集处理。
[0037]在多个实施方式中,一个或多个处理器核心可以针对ROI的任意尺寸和/或形状以及针对ROI数据相对于引擎100的任何对齐使用引擎100来进行过程200数据。在如此进行时,处理器吞吐量可以取决于ROI的尺寸、形状和/或对齐。例如,在非限制性实例中,如果待采集的ROI在X方向上伸展(例如,在区块_y格式中作为一行像素值)并完全对齐,则可以在两个循环中处理一个高速缓冲存储器线。在这种环境下,吞吐量会受到高速缓冲存储器宽度的限制。另一方面,如果ROI在Y方向上伸展(例如,在区块-y格式中作为一列像素值)并完全对齐,则可以在64个循环中处理一个高速缓冲存储器线。在另一个非限制性示例中,对于完全未对齐的17x17的ROI,可以在12个循环中处理一个高速缓冲存储器线。在最后的非限制性示例中,可以在50个循环中采集对齐的24x24的ROI的像素值,然而如果24x24的ROI完全未对齐,则可能用81个循环来采集全部像素值。
[0038]在多个实施方式中,可以在溢出条件下进行根据本公开内容的采集过程。例如,参考示例性采集引擎100,在一些实施方式中,ROI可以超过桶形移位器104和GRB106及GRB108的宽度。图9例示了在根据本公开内容的多个实施方式的在溢出条件下进行过程200的环境900中的引擎100。如图9所示,在以第一行的大部分填充GRB106之后,可以将从第一行剩余的溢出数据902放置到GRB108中。可以以类似的方式继续剩余行的处理。
[0039]图10例示了根据本公开内容的示例性系统1000。系统1000可以用于执行本文中所论述的多种功能的某些或全部,并可以包括根据本公开内容的多个实施方式能够进行采集处理的任何设备或设备的集合。例如,系统1000可以包括诸如台式机、移动或平板计算机、智能电话、机顶盒等之类的计算平台或设备的选择的部件,但是本公开内容不限于此。
在一些实施方式中,系统1000可以是基于用于CE设备的InteP architecture (IA)的计算
平台或SoC。本领域技术人员易于理解,在不脱离本公开内容的范围的情况下,本文所描述的实施方式可以应用于替换的处理系统。
[0040]系统1000包括具有一个或多个处理器核心1004的处理器1002。处理器核心1004可以是能够至少部分地执行软件和/或处理数据信号的任意类型的处理器逻辑。在多个示例中,处理器核心1004可以包括CISC处理器核心、RISC微处理器核心、VLIff微处理器核心、和/或实现指令集的任何组合的任意数量的处理器核心,或者诸如数字信号处理器或微控制器之类的任何其他处理器设备。在多个实施方式中,一个或多个处理器核心1004可以根据本公开内容实现采集引擎和/或进行采集处理。
[0041]处理器1002还包括解码器1006,其可以用于将由例如显示处理器1008和/或图形处理器1010接收的指令解码为控制信号和/或微码入口点。尽管在系统1000中例示为与核心1004不同的部件,但本领域技术人员应当理解,一个或多个核心1004可以实现解码器1006、显示处理器1008和/或图形处理器1010。响应于控制信号和/或微码入口点,显示处理器1008和/或图形处理器1010可以执行相对应的操作。
[0042]处理核心1004、解码器1006、显示处理器1008和/或图形处理器1010可以通过系统互连1016彼此和/或与多个其他系统设备可通信地和/或可操作地耦合,所述其他系统设备可以包括但不限于,例如,存储器控制器1014、音频控制器1018和/或外围设备1020。外围设备1020可以包括,例如,通用串行总线(USB)主机端口、外围设备互连(PCI)Express端口、串行外围接口(SPI)、扩展总线、和/或其他外围设备。尽管图10将存储器控制器1014例示为由互连1016耦合到解码器1006和处理器1008及1010,但在多个实施方式中,存储器控制器1014可以直接耦合到解码器1006、显示处理器1008和/或图形处理器 1010。
[0043]在一些实施方式中,系统1000可以经由I/O总线(未示出)与图10中未示出的多个I/o设备通信。这样的I/O设备可以包括但不限于,例如,通用异步接收器/发射器(UART)设备、USB设备、I/O扩展接口或其他I/O设备。在多个实施方式中,系统1000可以表示用于进行移动、网络和/或无线通信的系统的至少部分。
[0044]系统1000可以进一步包括存储器1012。存储器1012可以是一个或多个分离的存储器部件,例如动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备、或其他存储器设备。存储器1012可以存储由数据信号表示的指令和/或数据,其可以由处理器1002执行。在一些实施方式中,存储器1012可以包括系统存储器部分和显示存储器部分。在多个实施方式中,存储器1012可以存储视频数据,例如包括像素值的视频数据的帧,所述像素值可以在多个接合点被存储为由引擎100采集的和/或由过程200处理的高速缓冲存储器线。
[0045]尽管图10例示了在处理器1002以外的存储器1012,但在多个实施方式中,处理器1002包括诸如LI高速缓冲存储器之类的内部高速缓冲存储器1024的一个或多个实例。根据本公开内容,高速缓冲存储器1024可以以区块-y格式布置的高速缓冲存储器线的形式存储诸如像素值之类的视频数据。处理器核心1004可以访问存储在高速缓冲存储器1024中的数据,以实现本文中所描述的采集功能。此外,高速缓冲存储器1024可以提供2D寄存器文件,其存储引擎100和过程200的经对齐的数据输出。在多个实施方式中,高速缓冲存储器1024可以从存储器1012接收诸如像素值之类的视频数据。
[0046]以上所描述的系统以及如本文中所描述的那样由系统执行的处理可以在硬件、固件或软件或者其任意组合中实现。另外,本文中所公开的任何一个或多个特征可以在包括分立的和集成的电路逻辑、专用集成电路(ASIC)逻辑和微控制器的硬件、软件、固件及其组合中实现,并可以实现为特定域集成电路封装的部分、或集成电路封装的组合。本文中所使用的术语软件指代计算机程序产品,其包括具有存储于其中的计算机程序逻辑的计算机可读介质,以使得计算机系统执行本文中所公开的一个或多个特征和/或特征的组合。
[0047]尽管已经参考多个实施方式描述了本文中所阐述的某些特征,但是该描述并非旨在以限制性意义来解释。因此,对于本发明所属领域技术人员显而易见的本文中所描述的实施方式的多种变型以及其他实施方式也视为在本公开内容的精神和范围内。
【权利要求】
1.一种用于采集像素值的装置,包括: 多个俄罗斯方块寄存器,所述多个俄罗斯方块寄存器被布置为寄存器阵列,每一个俄罗斯方块寄存器都至少包括第一寄存器部分和第二寄存器部分,其中,所述寄存器阵列的第一行包括每一个俄罗斯方块寄存器的所述第一寄存器部分,所述寄存器阵列用以存储像素值的多个高速缓冲存储器线,以使得所述寄存器阵列的所述第一行存储每一个高速缓冲存储器线的最闻有效部分; 桶形移位器,其用以从所述寄存器阵列的所述第一行接收所述多个高速缓冲存储器线的所述最高有效部分作为第一行像素值,所述桶形移位器用以对齐所述第一行像素值;以及 第一缓冲器,其用以从所述桶形移位器接收经对齐的第一行像素值。
2.根据权利要求1所述的装置,其中,所述寄存器阵列的第二行包括每一个俄罗斯方块寄存器的所述第二寄存器部分,所述寄存器阵列用以存储像素值的所述多个高速缓冲存储器线,以使得所述寄存器阵列的第二行存储每一个所述高速缓冲存储器线的次最高有效部分,所述桶形移位器用以从所述寄存器阵列的所述第二行接收所述多个高速缓冲存储器线的次最高有效部分作为第二行像素值,所述桶形移位器用以对齐所述第二行像素值,所述装置进一步包括: 第二缓冲器,其用以从所述桶形移位器接收经对齐的第二行像素值。
3.根据权利要求1所述的装置,进一步包括: 多路复用器,其耦合到所述第一缓冲器和所述第二缓冲器;以及 寄存器文件,其耦合到所述多路复用器,其中,所述多路复用器被配置为将所述经对齐的第一行像素值或所述经对齐的第二行像素值提供给所述寄存器文件,其中,所述寄存器文件被配置为相邻于所述经对齐的`第一行像素值而存储所述经对齐的第二行像素值。
4.根据权利要求1所述的装置,其中,每一个高速缓冲存储器线的所述最高有效部分都包括区块_y格式的像素数据的行。
5.根据权利要求1所述的装置,其中,每一个高速缓冲存储器线都包括64字节的像素值,其中,所述多个俄罗斯方块寄存器至少包括五个俄罗斯方块寄存器,其中,每一个俄罗斯方块寄存器都被配置为存储64字节的像素值,并且其中,所述第一寄存器部分和所述第二寄存器部分都被配置为存储16字节的像素值。
6.根据权利要求1所述的装置,其中,为了对齐所述第一行像素值,所述桶形移位器被配置为左移所述第一行像素值。
7.一种计算机实施的方法,包括: 接收多个高速缓冲存储器线; 将每一个闻速缓冲存储器线至少划分为最闻有效部分和次最闻有效部分; 将所述多个高速缓冲存储器线的内容存储在寄存器阵列中,以使得每一个高速缓冲存储器线的所述最高有效部分被存储在所述寄存器阵列的第一行中,所述第一行包括第一多个寄存器部分; 将所述第一多个寄存器部分的第一寄存器部分的内容提供给桶形移位器; 对齐所述第一多个寄存器部分的所述第一寄存器部分的内容;以及 将所述第一多个寄存器部分的所述第一寄存器部分的经对齐的内容存储在第一缓冲器中。
8.根据权利要求7所述的方法,其中,将所述多个高速缓冲存储器线的内容存储在所述寄存器阵列中包括:将所述多个高速缓冲存储器线的内容存储在所述寄存器阵列中,以使得每一个高速缓冲存储器线的次最高有效部分被存储在所述寄存器阵列的第二行中,所述第二行包括第二多个寄存器部分,所述方法进一步包括: 将所述第二多个寄存器部分的第一寄存器部分的内容提供给桶形移位器; 对齐所述第二多个寄存器部分的所述第一寄存器部分的内容;以及 将所述第二多个寄存器部分的所述第一寄存器部分的经对齐的内容存储在第二缓冲器中。
9.根据权利要求8所述的方法,进一步包括: 在将所述第二多个寄存器部分的所述第一寄存器部分的经对齐的内容提供给寄存器文件之前,将所述第一多个寄存器部分的所述第一寄存器部分的经对齐的内容提供给所述寄存器文件。
10.根据权利要求7所述的方法,其中,所述寄存器阵列包括多个俄罗斯方块寄存器。
11.根据权利要求10所述的方法,其中,布置所述多个俄罗斯方块寄存器,以使得每一个俄罗斯方块寄存器的第一部分都存储所述多个高速缓冲存储器线中的相对应一个的所述最闻有效部分。
12.根据权利要求7所述的方法,其中,对齐所述第一多个寄存器部分的所述第一寄存器部分的内容包括:左移所述第一多个寄存器部分的所述第一寄存器部分的内容。·
13.一种用于采集像素值的系统,包括: 高速缓冲存储器,其用以存储像素值的多个高速缓冲存储器线; 采集引擎,其耦合到所述高速缓冲存储器;以及 附加的存储器,其耦合到所述采集引擎,其中,在所述附加的存储器中的指令配置所述采集引擎以从所述高速缓冲存储器接收所述多个高速缓冲存储器线,所述采集引擎包括: 多个俄罗斯方块寄存器,所述多个俄罗斯方块寄存器被布置为寄存器阵列,每一个俄罗斯方块寄存器都至少包括第一寄存器部分和第二寄存器部分,其中,所述寄存器阵列的第一行包括每一个俄罗斯方块寄存器的所述第一寄存器部分,所述寄存器阵列用以存储所述多个高速缓冲存储器线,以使得所述寄存器阵列的所述第一行存储每一个高速缓冲存储器线的最闻有效部分; 桶形移位器,其用以从所述寄存器阵列的所述第一行接收所述多个高速缓冲存储器线的所述最高有效部分作为第一行像素值,所述桶形移位器用以对齐所述第一行像素值;以及 第一缓冲器,其用以从所述桶形移位器接收经对齐的第一行像素值。
14.根据权利要求13所述的系统,其中,所述寄存器阵列的第二行包括每一个俄罗斯方块寄存器的所述第二寄存器部分,所述寄存器阵列用以存储所述多个高速缓冲存储器线,以使得所述寄存器阵列的所述第二行存储每一个所述高速缓冲存储器线的次最高有效部分,所述桶形移位器用以从所述寄存器阵列的所述第二行接收所述多个高速缓冲存储器线的次最高有效部分作为第二行像素值,所述桶形移位器对齐所述第二行像素值,所述采集引擎进一步包括:第二缓冲器,其用以从所述桶形移位器接收经对齐的第二行像素值。
15.根据权利要求14所述的系统,进一步地,所述采集引擎还包括: 多路复用器,其耦合到所述第一缓冲器和所述第二缓冲器;以及 寄存器文件,其耦合到所述多路复用器,其中,所述多路复用器被配置为将所述经对齐的第一行像素值或所述经对齐的第二行像素值提供给所述寄存器文件,其中,所述寄存器文件被配置为相邻于所述经对齐的第一行像素值而存储所述经对齐的第二行像素值。
16.根据权利要求13所述的系统,其中,所述高速缓冲存储器被配置为以区块-y格式存储高速缓冲存储器线。
17.根据权利要求13所述的系统,其中,每一个高速缓冲存储器线都包括64字节的像素值,其中,所述多个俄罗斯方块寄存器包括至少五个俄罗斯方块寄存器,其中,每一个俄罗斯方块寄存器都被配置为存储64字节的像素值,并且其中,所述第一寄存器部分和第二寄存器部分都被配置为存储16字节的像素值。
18.根据权利要求13所述的系统,其中,为了对齐所述第一行像素值,所述桶形移位器被配置为左移所述第一行像素值。
19.根据权利要求13所述的系统,所述附加的存储器用以存储视频数据,并用以将所述视频数据的一部分提 供给所述高速缓冲存储器,以便存储为所述多个高速缓冲存储器线。
【文档编号】G06F12/08GK103718244SQ201280036339
【公开日】2014年4月9日 申请日期:2012年7月23日 优先权日:2011年7月25日
【发明者】K·瓦伊蒂亚纳坦, B·G·雷迪 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1