优化图像存储器访问的制作方法_2

文档序号:9264749阅读:来源:国知局
每个图形 引擎被配置为执行特定图形任务,或执行特定类型的工作负荷。
[0018] 存储器设备104可包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、或任何其 它适当存储器系统。例如,存储器设备104可包括动态随机存取存储器(DRAM)。存储器设 备104可包括被配置为执行用于优化图像存储器访问的指令的设备驱动器110。设备驱动 器110可W是软件、应用程序、应用代码等。
[0019] 计算设备100包括图像捕获机构112。在实施例中,图像捕获机构112是摄像机、 立体摄像机、红外传感器等。图像捕获机构112被用于捕获图像信息。相应地,计算设备 100还包括一个或多个传感器114。在示例中,传感器114还可W是用于捕获图像纹理信息 的图像传感器。此外,图像传感器可W是电荷禪合设备(CCD)图像传感器、互补金属氧化物 半导体(CMOS)图像传感器、片上系统(S0C)图像传感器、具有光敏薄膜晶体管的图像传感 器、或其任意组合。设备驱动器110可使用步进瓦工引擎来访问由传感器114捕获的图像。
[0020] CPU102可W经由总线106连接到被配置为将计算设备100连接到一个或多个1/ 0设备118的输入/输出(I/O)设备接口 116。I/O设备118可W包括例如键盘和定点设 备,其中定点设备可包括触摸板或触摸屏等。I/O设备118可W是计算设备100的内置部 件,或可W是外部连接到计算设备100的设备。
[0021]CPU102还可经由总线106链接到被配置为将计算设备100连接到显示设备122 的显示接口 120。显示设备122可包括为计算设备100的内置部件的显示屏。显示设备122 还可包括外部连接到计算设备100的计算机监视器、电视机、或投影仪等。
[0022] 计算设备还包括存储设备124。存储设备124是诸如硬盘驱动器、光驱、拇指驱动 器、驱动器阵列或其任意组合的物理存储器。存储设备124还可包括远程存储驱动器。存 储设备124包括被配置为在计算设备100上运行的任何数量的应用126。应用126可用于 处理图像数据。在示例中,应用126可被用于优化图像存储器访问。此外,在示例中,应用 126可访问存储器中的图像W便执行对图像的各种处理。存储器中的图像可W使用下文描 述的步进瓦工引擎来访问。
[0023] 计算设备100还可包括可被配置为经由总线106将计算设备100连接到网络130 的网络接口控制器(NIC) 128。网络130可W是广域网(WAN)、局域网(LAN)或因特网等。
[0024] 在一些实施例中,应用126可发送来自计算设备100的图像到打印引擎132。打印 引擎可发送图像到打印设备134。打印设备134可包括打印机、传真机和可使用打印对象模 块136打印各个图像的其他打印设备。在实施例中,打印引擎132可跨网络130发送数据 到打印设备134。此外,诸如图像捕获机构112的设备可使用本文描述的技术来处理像素阵 列。显示设备122还可使用本文在实施例中描述的技术W加速显示器上的像素的处理。
[0025] 图1的框图非旨在指示计算设备100将包括图1中示出的所有部件。此外,取决 于【具体实施方式】的细节,计算设备100可包括图1中未示出的任何数量的附加部件。
[0026] 图2是根据实施例,图示图像到一维阵列中的布置方案200的图。在访问存储器 中的图像之前,布置方案200可由步进瓦工引擎和矩形组装器逻辑执行,W改进访问存储 器中的图像的过程的效率。步进瓦工引擎可提供存储器缓冲,其中W过程的方式快速处理 二维图像202的区域。步进瓦工可使用步进高速缓存来存储在成像访问期间二维图像的所 选区域。应当注意的是,在本文公开的实施例中,可使用能够快速访问的任何高速缓存。
[0027] 存储器104 (图1)中的二维图像202可被划分为多个像素区域204。每个像素区 域204可包含一个或多个像素。在实施例中,每个像素区域204可表示像素的矩形成组,或 像素的行,或由行和矩形一起构成的区域。在图像存储器访问期间,每个像素区域204可被 放入高速缓存中,在高速缓存中,图像区域204将由CPU102处理,并且在处理之后被顺序 从高速缓存110移除。除了CPU之外,实施例可使用任何其它处理架构或方法,包括但不限 于逻辑块、单指令多数据(SIMD)、GPU、数字信号处理器(DSP)、图像信号处理器(ISP)或超 长指令字(VLIW)机器。
[002引步进瓦工引擎可将二维图像202重新配置为区域的一维阵列206的集合,例如行 和矩形。因此,与非线性存储器区域相对的,可W将任何访问模式封装在线性1D阵列中W 易于存储器访问并且易于计算。一维阵列206的每个块可表示像素区域204,像素区域204 可W是像素的矩形成组或行。尽管在图2中示出通过将二维图像202的每个矩形块转换为 一维阵列206的像素区域204来将二维图像202组装为一维阵列206的集合的过程,但是 可使用任何类型的访问模式。例如,还可将二维图像204的每个列组装为ID阵列。
[0029] 与二维阵列的不规则模式相对的,通过步进瓦工的该配置允许CPU102W线性顺 序模式处理每个像素区域204。不规则存储器访问模式可引起在处理中的延迟,因为该访问 模式不能W可预测方式被读取或写入。此外,存储器系统可由各种大小和级的高速缓存构 成,其中当与更远离处理器的其他存储器相比时,更靠近处理器的高速缓存具有更快的访 问时间。通过将存储器访问优化为线性1D阵列,可利用处理阶段来优化和流水线化存储器 性能。在实施例中,可从左到右或从右到左读取像素区域204。随着一个像素区域204正被 处理,可将在序列中的下一像素区域从存储器储存设备104传输到高速缓存,而可W从高 速缓存移除先前已被处理的另一像素区域。
[0030] 经由步进瓦工引擎,可使用自动递增指令来快速访问一维阵列206的每个像素区 域204。例如,诸如通常在C++中使用的*data++之类的快速融合存储器自动递增指令可访 问图像数据的任何部分,而不使用特别存储器访问模式。自动递增指令可使用基址和偏移 来访问数据,其通常要求一个计算来找到在阵列中的目标数据的地址。因此,当与被用于访 问阵列中的数据的寻址模式相比时,自动递增指令使能更快的存储器访问。例如,使用C++, 将使用诸如data[x] [y]的指令来访问2D阵列,其中X表示行,并且y表示目标数据的列。 然而,在获得目标数据地址之前,该样的指令通常要求几个计算。相应地,当与2D阵列相比 时,将数据布置在顺序的1D阵列中使能了更快的数据访问。
[0031] 图3是图示根据实施例的矩形组装器300的图。矩形组装器300可W是可用于准 备二维图像用于存储器缓冲的步进瓦工中的引擎、命令或逻辑。矩形组装器300可在二维 阵列302上操作W将它们组装为一维阵列304或面积矢量。二维阵列302中的每个包含像 素区域,像素区域在一些实施例中可表示二维图像的像素或像素的成组。二维阵列302中 的每个块可W被给予对应于在二维阵列302内的像素区域的X和Y坐标的命名。如上文讨 论的,C++中用于访问像素区域的指令将是"data[x] [y]"。
[0032] 矩形组装器300可将每个二维阵列302组装为一维阵列304,使得W顺序次序布置 每个阵列内包含的块,允许更快、更可预测的访问模式。如上文讨论的,CPU可利用自动递 增机器指令形式来依次访问每个块,其可在相同融合指令中执行处理和存储器递增二者, 该比发出第一指令W改变或递增存储器地址并且发出第二指令W执行处理更高效。例如, 用于访问块的序列的C++软件中的指令可包含指令"*data++",该将允许生成代码来使用 自动递增指令形式W指示CPU在处理当前块之后访问每个随后的块。通过将行访问模式的 矩形格式化为封装的线性1D阵列,步进瓦工引擎提供高效的融合处理和存储器自动递增 指令W及访问存储器的增大速度,因为1D阵列可W是使得1D阵列能够被保持为在高速缓 存中靠近处理器的大小。
[0033] 图4A、4B和4C图示了根据实施例使用矩形缓冲器线性处理图像的示例。图4A、 4B和4B图示了使用具有将被处理的矩形区域的步进瓦工引擎,该矩形区域可跨行缓冲器 的集合被移动并且被包含在步进瓦工快速高速缓存中。步进瓦工引擎可在行被需要之前预 取行,W允许矩形组装器W流水线方式将矩形区域预组装为封装线性1D阵列的集合用于 处理。行可W被预取并且存储在作为用于提取矩形的容器的快速步进瓦工高速缓存中。在 图中,图像400中的像素区域或递增区域可W被切开并且指明为处理区域401、活动缓冲器 402、收回缓冲器404和预取缓冲器406。该区域缓冲器中的每个的大小和形状可W在处理 之前定义。
[0034]处理区域
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1