CN112967169A - 用于图像生成器的数据片生成器 - Google Patents
用于图像生成器的数据片生成器 Download PDFInfo
- Publication number
- CN112967169A CN112967169A CN202110171547.8A CN202110171547A CN112967169A CN 112967169 A CN112967169 A CN 112967169A CN 202110171547 A CN202110171547 A CN 202110171547A CN 112967169 A CN112967169 A CN 112967169A
- Authority
- CN
- China
- Prior art keywords
- data
- slice
- image data
- input
- shift register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B41—PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
- B41F—PRINTING MACHINES OR PRESSES
- B41F15/00—Screen printers
- B41F15/08—Machines
- B41F15/0804—Machines for printing sheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Mechanical Engineering (AREA)
- Image Processing (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
公开了用于图像生成器的数据片生成器。本文描述了一种数据片生成器电路。所述数据片生成器包括电子电路以从图像数据帧接收包括多行数据的图像数据的线组。所述多行在数量上足以包含多个相邻的重叠模版。所述电子电路将所述线组解析成较小尺寸的数据片。所述电子电路将所述数据片加载到具有被耦合至处理器阵列的二维移位阵列结构的数据计算单元中。
Description
本申请是分案申请,原案的申请号是201680019786.9,申请日是 2016年4月4日,发明名称是“用于图像生成器的数据片生成器”。
技术领域
本发明的领域一般涉及图像处理,特别涉及用于图像生成器的数 据片生成器。
背景技术
图像处理通常涉及对组织成阵列的像素值的处理。在此,经空间 组织的二维阵列捕捉图像的二维性质(另外的维度可以包括时间(例 如,二维图像的序列)和数据类型(例如,色彩)。在典型情景下, 排列的像素值由已经生成静态图像或者帧序列的相机提供,以捕捉运 动的图像。传统的图像处理器通常会落入两种极端之一。
第一种极端作为在通用处理器或者通用类处理器(例如,具有向 量指令增强的通用处理器)上执行的软件程序执行图像处理任务。尽 管第一种极端通常提供高度通用的应用软件开发平台,但其结合相关 开销(例如,指令提取和解码、处理片上和片外数据、推测执行)使 用更细粒度的数据结构会最终导致在执行程序代码期间每单位数据消 耗的能量较多。
第二种相反的极端将固定功能的硬布线电路应用于大得多的数据 块。使用更大的(相对于更细粒度的)数据块直接应用于定制设计的 电路,大大降低每单位数据的功耗。然而,使用定制设计的固定功能 电路通常会导致处理器只能执行一组有限的任务。这样,在第二种极 端中缺乏广泛通用的编程环境(其与第一极端相关联)。
提供高度通用的应用软件开发机会结合改进的每单位数据的功率 效率的技术平台仍是理想但缺失的解决方案。
发明内容
描述一种数据片生成器电路。数据片生成器包括电子电路用于从 图像数据帧接收包括多行数据的图像数据的线组。所述多行在数量上 足以包含多个相邻的重叠模版。电子电路将线组解析为较小尺寸的数 据片。电子电路把数据片加载到具有被耦合至处理器阵列的二维移位 阵列结构的数据计算单元中。
描述一种设备,该设备具有用于从图像数据的帧接收包括多行数 据的图像数据的线组的装置。所述多行在数量上足以包含多个相邻的 重叠模版。所述设备还包含用于把线组解析成较小尺寸的数据片的装 置。该设备还包括用于把数据片加载到被耦合到处理器的阵列的二维 移位阵列结构的装置。该设备还包括用于在处理器的阵列上执行程序 代码以在所述数据片上处理多个邻近的重叠模版的装置。
附图说明
以下描述和附图用于说明本发明的实施例。在图中:
图1示出图像处理器硬件架构的实施例;
图2a、图2b、图2c、图2d和图2e描绘出通过重叠模版将图像数 据解析成线组、将线组解析成数据片以及对数据片执行操作;
图3a示出模版处理器的实施例;
图3b示出模版处理器的指令字的实施例;
图4示出模版处理器内的数据计算单元的实施例;
图5a、图5b、图5c、图5d、图5e、图5f、图5g、图5h、图5i、 图5j和图5k描绘出通过重叠模版使用二维移位阵列和执行道阵列来确 定一对相邻输出像素值的示例;
图6示出用于集成的执行道阵列和二维移位阵列的单位胞元的实 施例;
图7涉及由数据片生成器执行的第一操作;
图8涉及由数据片生成器执行的第二操作;
图9涉及由数据片生成器执行的第三操作;
图10涉及由数据片生成器执行的第四操作;
图11涉及由数据片生成器执行的第五操作;
图12涉及由数据片生成器执行的第六操作;
图13示出数据片生成器的实施例;
图14示出计算系统的实施例。
具体实施方式
a.图像处理器硬件架构和操作
图1示出用于以硬件实现的图像处理器的架构100的实施例。图 像处理器可以例如作为编译器的目标,该编译器将为模拟环境内的虚 拟处理器编写的程序代码转换成由硬件处理器实际执行的程序代码。 如图1所示,架构100包括多个线缓存器单元101_1至101_M,线缓 存器单元101_1至101_M通过网络104(例如,片上网络(NOC), 包括片上交换网络、片上环形网络或者其他类型的网络)互连到多个 模版处理器单元102_1至102_N和对应的数据片生成器单元103_1至 103_N。在一个实施例中,任何线缓存器单元都可以通过网络104连接 到任何数据片生成器和对应的模版处理器。
在一个实施例中,程序代码被编译并加载到对应的模版处理器102 上以执行由软件开发者早先定义的图像处理操作(程序代码也可以被 加载到模版处理器的相关数据片生成器103上,例如,这取决于设计 和实现)。在至少一些实例中,图像处理流水线可以通过将用于第一 流水线级的第一内核程序加载到第一模版处理器102_1中、将用于第 二流水线级的第二内核程序加载到第二模版处理器102_2中等来实现, 其中第一内核执行流水线的第一级的功能,第二内核执行流水线的第 二级的功能等,并且安装附加的控制流方法,以将输出图像数据从流 水线的一级转换到流水线的下一级。
在其他配置中,图像处理器可以被实现为具有操作相同内核程序 代码的两个或两个以上模版处理器102_1、102_2的并行机。例如,图 像数据的高密度和高数据速率流可以通过跨其中每个均执行相同功能 的多个模版处理器扩展帧来处理。
在又一些其他配置中,基本上内核的任何DAG都可以被加载到硬 件处理器上,这是通过在DAG设计中,配置具有其各自的相应程序代 码内核的相应模版处理器,以及将适当的控制流钩子配置到硬件中以 将输出图像从一个内核引导到下一个内核的输入。
作为一般流程,图像数据的帧由宏I/O单元105接收并且逐帧传 送到线缓存器单元101中的一个或多个。特定的线缓存器单元将其图 像数据的帧解析成图像数据的更小区域,称作“线组(line group)”, 然后通过网络104将线组传送到特定的数据片生成器。完整或“完全” 的单线组可以例如由一帧的多个连续完整的行或列的数据组成(简明 起见,本说明书主要是指连续的行)。数据片生成器进一步将图像数 据的线组解析成图像数据的更小区域,称作“数据片(sheet)”,并 且将数据片提供给其对应的模版处理器。
在具有单个输入的图像处理流水线或者DAG流的情况下,通常, 输入帧被引导至相同的线缓存器单元101_1,该线缓存器单元将图像数 据解析成线组并且将线组引导到数据片生成器103_1,其对应的模版处 理器102_1正执行流水线/DAG中的第一内核的代码。在模版处理器 102_1对其处理的线组完成操作后,数据片生成器103_1将输出线组发 送到“下游”的线缓存器单元101_2(在某些用例中,输出线组可以被 发回到早先已发送输入线组的相同线缓存器单元101_1)。
然后,一个或多个“消费者”内核从下游的线缓存器单元101_2 接收由第一模版处理器102_1生成的图像数据,“消费者”表示在各 自其他数据片生成器和模版处理器(例如,数据片生成器103_2和模 版处理器102_2)上执行的流水线/DAG中的下一级/操作。通过这种方 式,在第一模版处理器上运行的“生产者”内核将其输出数据转发到 在第二模版处理器上运行的“消费者”内核,其中消费者内核在生产 者内核之后执行下一组任务,这与总体流水线或DAG的设计相符。
模版处理器102被设计成同时对图像数据的多个重叠模版 (stencil)进行操作。模版处理器的多个重叠模版和内部硬件处理能力 有效地确定数据片的尺寸。在此,在模版处理器102内,执行道的阵 列操作一致使得同时处理被多个重叠模版覆盖的图像数据表面区域。
如下详述,在各种实施例中,图像数据的数据片被加载到模版处 理器102内的二维寄存器阵列结构中。使用数据片和二维寄存器阵列 结构被认为有效地提供功耗改善,这是通过将大量数据移入大量寄存 器空间,例如,作为单个加载操作,紧随其后,由执行道阵列直接对 数据执行处理任务。此外,使用执行道阵列和对应的寄存器阵列提供 可易于编程/配置的不同模版大小。
图2a至图2e图示出线缓存器单元101的解析活动、数据片生成 器单元103的更细粒度的解析活动以及耦合至数据片生成器单元103 的模版处理器102的模版处理活动的高级实施例。
图2a描绘出图像数据201的输入帧的实施例。图2a还描绘出模 版处理器被设计用来操作的三个重叠模版202(每个具有3像素×3像 素的尺寸)的概略图。每个模版分别为其生成输出图像数据的输出像 素以实心黑色来突出显示。简明起见,三个重叠模版202被描绘为仅 在垂直方向上重叠。有必要认识到,实际上,模版处理器可以设计成 在垂直方向和水平方向上都具有重叠模版。
由于模版处理器内的垂直重叠模版202,如图2a所示,在单个模 版处理器能够操作的帧内存在宽范围的图像数据。如下详述,在一个 实施例中,模版处理器跨图像数据以从左到右的方式在其重叠模版内 处理数据(然后以从上到下的顺序对下一组线进行重复)。因此,随 着模版处理器持续进行其操作,实心黑色输出像素块的数目会在水平 方向上向右增加。如上所论,线缓存器单元101负责解析来自输入帧 的输入图像数据的线组,其足以使模版处理器在更多个即将到来的周 期中进行操作。线组的示例性描绘被图示为阴影区域203。在一个实施 例中,如下进一步描述,线缓存器单元101能够具有用于向/从数据片 生成器发送/接收线组的不同动态性。例如,根据一种称作“全组”的 模式,在线缓存器单元与数据片生成器之间传送图像数据的完整全宽 线。根据称作“实高”的第二模式,最初用全宽行的子集来传送线组。 然后,依序以更小的片段(小于全宽)传送剩余的行。
随着输入图像数据的线组203已由线缓存器单元定义并且传送到 数据片生成器单元,数据片生成器单元进一步将线组解析成更精细的 数据片,其更准确适配于模版处理器的硬件限制。更具体地,如下详 述,在一个实施例中,每个模版处理器由二维移位寄存器阵列组成。 二维移位寄存器阵列基本上将图像数据移位到执行道的阵列“下方”, 在此移位的模式使得每个执行道对其各自模版内的数据进行操作(也 就是说,每个执行道对其自己的信息模版进行处理以生成用于该模版 的输出)。在一个实施例中,数据片是“填充”或以其他方式加载到 二维移位寄存器阵列中的输入图像数据的表面区域。
如将在下面更详细地描述的,在各种实施例中,实际上存在在任 何周期上移位的二维寄存器数据的多层。为了方便起见,本说明书的 大部分将简单地使用术语“二维移位寄存器”等以指代具有能够移位 的二维寄存器数据的一个或多个这样的层的结构。
因此,如图2b所示,数据片生成器解析来自线组203的初始数据 片204并且将其提供给模版处理器(在此,数据的数据片对应于通常 由附图标记204标示的阴影区域)。如图2c和图2d所示,模版处理 器通过在数据片上以从左到右的方式有效地移动重叠模版202而对输 入图像数据的数据片进行操作。如图2d所示,从数据片内的数据能够 算出的输出值的像素数被穷尽(没有其他像素位置会具有从数据片内 的信息所确定的输出值)。简明起见,已忽略图像的边界区域。
如图2e所示,数据片生成器再为模版处理器提供下一个数据片 205来继续操作。注意,模版开始对下一个数据片进行操作时的初始位 置是从第一个数据片上的穷尽点向右的下一进度(如前在图2d中所 示)。关于新的数据片205,随着模版处理器以与对第一个数据片的处 理相同的方式对新的数据片进行操作,模版将简单地继续向右移动。
注意,由于围绕输出像素位置的模版的边界区域,在第一数据片 204的数据与第二数据片205的数据之间存在一些重叠。重叠能够简单 地通过数据片生成器重新发送重叠的数据两次来处理。在替选的实施 方式中,为将下一个数据片馈送到模版处理器,数据片生成器可以仅 继续将新的数据发送到模版处理器,并且模版处理器重新使用来自前 一数据片的重叠数据。
b.模版处理器的设计和操作
图3a示出模版处理器架构300的实施例。如图3a所示,模版处 理器包括数据计算单元301、标量处理器302以及相关联的存储器303 和I/O单元304。数据计算单元301包括执行道阵列305、二维移位阵 列结构306以及与阵列的特定行或列相关联的单独随机存取存储器 307。
I/O单元304负责将从数据片生成器接收到的“输入”数据数据片 加载到数据计算单元301中并且将来自模版处理器的“输出”数据数 据片存储到数据片生成器中。在一个实施例中,将数据片数据加载到 数据计算单元301中需要将接收到的数据片解析成图像数据的行/列并 且将图像数据的行/列加载到执行道阵列的行/列的二维移位寄存器结 构306或者相应的随机存取存储器307中(下面将更详细地描述)。 如果数据片最初被加载到存储器307中,则执行道阵列305内的各个 执行道可以在适当时将数据片数据从随机存取存储器307加载到二维 移位寄存器结构306中(例如,作为对数据片数据进行操作之前的加 载指令)。在完成将数据数据片加载到寄存器结构306(无论是直接从 数据片生成器还是从存储器307)后,执行道阵列305的执行道对数据 进行操作,并且最终将完成的数据作为数据片直接“写回”到数据片 生成器或者到随机存取存储器307中。如果稍后I/O单元304从随机存 取存储器307中取出数据来形成输出数据片,则将其转发到数据片生 成器。
标量处理器302包括程序控制器309,其从标量存储器303读取 模版处理器的程序代码的指令并且将这些指令发送到执行道阵列305 中的执行道。在一个实施例中,单个相同的指令被广播到阵列305内 的所有执行道以从数据计算单元301中实现SIMD类行为。在一个实 施例中,从标量存储器303读取并且发送到执行道阵列305的执行道 的指令的指令格式包括一个超长指令字(VLIW)型格式,其包括每指 令不只一个的操作码。在另一个实施例中,VLIW格式包括指示由每个 执行道的ALU执行的数学函数的ALU操作码(如下所述,其在一个 实施例中可以指定一个以上的传统ALU操作)以及存储器操作码(其 指示用于特定执行道或者一组执行道的存储器操作)。
用语“执行道(execution lane)”是指能够执行指令的一个或多 个执行单元组成的集合(例如,能够执行指令的逻辑电路)。然而, 在各种实施例中,执行道能够包括除执行单元之外的更多处理器类功 能。例如,除一个或多个执行单元外,执行道还可以包括对接收到的 指令进行解码的逻辑电路,或者在更多的MIMD类设计的情况下,包 括取得和解码指令的逻辑电路。关于MIMD类方法,尽管在本文中大 量描述到集中式程序控制方法,但在各种替选的实施例中可以实现更 分布式的方法(例如,包括阵列305的每个执行道内的程序代码和程 序控制器)。
执行道阵列305、程序控制器309和二维移位寄存器结构306的 组合为大范围的可编程功能提供可广泛适用/配置的硬件平台。例如, 鉴于各个执行道能够执行各种各样的功能并且能够易于访问邻近任何 输出阵列位置的输入图像数据,应用软件开发者能够编程具有广泛不 同功能能力的内核以及尺寸(例如,模版大小)。
除充当用于由执行道阵列305操作的图像数据的数据存储区之 外,随机存取存储器307还可以保存一个或多个查找表。在各种实施 例中,也可以在标量存储器303内实例化一个或多个标量查找表。
标量查找涉及将来自相同查找表的相同数据值从同一索引传送到 执行道阵列305内的执行道中的每个。在各种实施例中,上述VLIW 指令格式被扩展成还包括标量操作码,其将由标量处理器执行的查找 操作引导至标量查找表中。指定与操作码同用的索引可以是立即操作 数或者从其他一些数据存储位置提取。无论如何,在一个实施例中, 从标量存储器内的标量查找表中进行查找基本上涉及在相同的时钟周 期期间将相同的数据值广播到执行道阵列305内的全部执行道。下面 进一步提供关于查找表的使用和操作的其他细节。
图3b概括上文所讨论的VLIW指令字的实施例。如图3b所示, VLIW指令字格式包括用于三个单独指令的字段:1)由标量处理器执 行的标量指令351;2)由执行道阵列内的各个ALU以SIMD方式广播 和执行的ALU指令352;以及3)以部分SIMD方式广播和执行的存 储器指令353(例如,如果执行道阵列中沿同一行的执行道共享同一随 机存取存储器,则来自不同行中的每行的一个执行道实际执行指令(存 储器指令353的格式可以包括识别来自每行的哪一执行道执行指令的 操作数))。
还包括用于一个或多个立即操作数的字段354。在指令格式中可 以识别指令351、352、353中的哪一个使用哪个立即操作数信息。指 令351、352、353中的每个还包括其各自相应的输入操作数和结果信 息(例如,用于ALU操作的本地寄存器以及用于存储器访问指令的本 地寄存器和存储器地址)。在一个实施例中,在执行道阵列内的执行 道执行指令其他352、353中的任何一个之前,由标量处理器执行标量 指令351。也就是说,执行VLIW字包括第一周期,在此期间执行标量 指令351,随后是第二周期,在此期间可以执行其他指令352、353(注 意,在各种实施例中,指令352和353可以被并行执行)。
在一个实施例中,由标量处理器执行的标量指令包括发送到数据 片生成器以从/向数据计算单元的存储器或者2D移位寄存器加载/存储 数据片的命令。在此,数据片发生器的操作能够取决于线缓存器单元 的操作或者其他变量,这些变量防止周期数包含预运行,而这会使数 据片生成器完成由标量处理器发出的任何命令。这样,在一个实施例 中,标量指令351对应于或以其他方式导致向数据片发生器发出命令 的任何VLIW字还包括另外两个指令字段352、353中的无操作(NOOP) 指令。然后,程序代码输入指令字段352、353的NOOP指令循环,直 到数据片发生器完成其向/从数据计算单元的加载/存储。在此,在向数据片生成器发出命令后,标量处理器可以设置数据片生成器在完成命 令后重置的互锁寄存器的位。在NOOP循环期间,标量处理器监视互 锁位的位。当标量处理器检测到数据片发生器已经完成其命令时,正 常执行重新开始。
图4示出数据计算组件1001的实施例。如图4所示,数据计算组 件401包括逻辑上定位于二维移位寄存器阵列结构406“上方”的执行 道阵列405。如上所述,在各种实施例中,由数据片发生器提供的图像 数据的数据片被加载到二维移位寄存器406中。然后,执行道对来自 寄存器结构406的数据片数据进行操作。
执行道阵列405和移位寄存器结构406在位置上彼此相对固定。 然而,移位寄存器阵列406内的数据以策略和协调方式移位,以使执 行道阵列中的每个执行道处理数据内的不同模版。这样,每个执行道 确定正生成的输出数据片中的不同像素的输出图像值。从图4的架构 来看,应当清楚,重叠模版不仅被垂直布置,而且被水平布置,因为 执行道阵列405包括垂直相邻的执行道以及水平相邻的执行道。
数据计算单元401的一些显著架构特征包括具有比执行道阵列 405更宽尺寸的移位寄存器结构406。即在执行道阵列405之外存在寄 存器的“晕圈”409。虽然晕圈409被表示成存在于执行道阵列的两侧, 但根据实施方式,晕圈可以存在于执行道阵列405的更少侧(一侧) 或更多侧(三侧或四侧)上。晕圈409用于当数据在执行道405“下方” 移位时,为溢出执行道阵列405的边界之外的数据提供“溢出”空间。 在简单的情况下,当处理模版最左边的像素时,居于执行道阵列405 的右边缘中心的5×5模版需要再向右的四个晕圈寄存器位置。为便于 绘图,图4示出,在标准实施例中,在晕圈右侧的寄存器仅具有水平 移位连接,而晕圈底侧的寄存器仅具有垂直移位连接,而任何一侧(右 侧、底侧)上的寄存器具有水平连接和垂直连接。
额外的溢出空间由随机存取存储器407提供,该随机访问存储器 被耦合至阵列中的每一行和/或每一列或其部分(例如,随机存取存储 器可以被分配给执行道阵列的“区域”,该区域跨4个执行道行和2 个执行道列。简明起见,本申请的其余内容主要涉及基于行和/或列的 分配方案)。在此,如果执行道的内核操作要求其处理二维移位寄存 器阵列406之外的像素值(某些图像处理例程可能有所需要),则图 像数据的平面能够进一步溢出,例如,从晕圈区域409溢到随机存取 存储器407中。例如,考虑6×6模版,其中硬件包括在执行道阵列右 边缘上的执行道右侧的仅四个存储元素的晕圈区域。在此情形下,数 据需要被进一步移位到晕圈409的右边缘的右侧,以完整地处理模版。 移位到晕圈区域409之外的数据则会溢出到随机存取存储器407。下面 进一步提供随机存取存储器407和图3的模版处理器的其他应用。
图5a至图5k示出如上所述的图像数据在二维移位寄存器阵列内 移位到执行道阵列“下方”的方式的工作示例。如图5a所示,在第一 阵列507中描绘出二维移位阵列的数据内容,并且由帧505描绘出执 行道阵列。此外,简单地描绘出执行道阵列内的两个相邻的执行道510。 在这种简单的描绘510中,每个执行道包括寄存器R1,其能够接受来 自移位寄存器的数据,接受来自ALU输出的数据(例如,在周期之间 表现为累加器),或者将输出数据写入输出目的地。
在本地寄存器R2中,每个执行道还可应用在二维移位阵列中位于 其“下方”的内容。因此,R1是执行道的物理寄存器,而R2是二维 移位寄存器阵列的物理寄存器。执行道包括能够对由R1和/或R2提供 的操作数进行操作的ALU。如下详述,在一个实施例中,移位寄存器 实际上用每个阵列位置的多个存储/寄存器元素(的“深度”)来实现, 但移位活动被限制于一个存储元素平面(例如,每个周期仅能移位一 个存储元素平面)。图5a至图5k描绘出这些较深寄存器位置中的一 个,用于存储来自相应执行道的结果X。为便于图示,较深的结果寄 存器被绘制在其配对寄存器R2的旁边而非其下方。
图5a至图5k集中于两个模版的计算,这两个模版的中心位置与 执行道阵列内绘出的一对执行道位置511对齐。为便于图示,这对执 行道510被绘制成水平邻居,而根据以下示例,它们实际上垂直邻居。
如最初在图5a中所示,执行道以其中心的模版位置为中心。图5b 示出由两个执行道执行的目标代码。如图5b所示,两个执行道的程序 代码使得移位寄存器阵列内的数据向下移位一个位置并且向右移位一 个位置。这就使两个执行道对准其各自模版的左上角。然后,程序代 码使得(在R2中)位于它们相应位置的数据加载到R1中。
如图5c所示,接下来,程序代码使得这对执行道将移位寄存器阵 列内的数据向左移位一个单位,这就使得每个执行道的相应位置右侧 的值移到每个执行道的位置。然后,将R1中的值(前一个值)添加已 移位到执行道的位置的新值(在R2中)。将结果写入R1。如图5d所 示,重复与上文参照图5c所述相同的处理,这就使得所得的R1目前 包括上执行道中的值A+B+C以及下行执行道中的F+G+H。在这一点 上,两个执行道都已经处理它们各自模版的上行。注意,如果在执行 道阵列的左侧不存在晕圈区域,则会溢出到执行道阵列左侧的晕圈区 域(如果左侧存在一个晕圈区域)或者随机存取存储器中。
如图5e所示,接下来,程序代码使得移位寄存器阵列内的数据向 上移位一个单位,这就使得两个执行道都与它们各自模版的中间行的 右边缘对准。两个执行道的寄存器R1当前包括模版的顶行和中间行的 最右值之和。图5f和图5g示出跨两条执行道的模版的中间行向左移动 的连续进展。继续累加,这样在图5g的处理结束时,两个执行道包括 它们各自模版的顶行和中间行的值之和。
图5h示出将每个执行道与其对应的模版的最下行对准的另一移 位。图5i和图5j示出在两个执行道的模版的进程中继续移位以完成处 理。图5k示出附加移位,以使每个执行道与其在数据阵列中的正确位 置对准并且将结果写入其中。
在图5a至图5k的示例中,注意,用于移位操作的目标代码可以 包括识别以(X,Y)坐标表达的移位的方向和量级的指令格式。例如, 用于向上移位一个位置的目标代码可以在目标代码中表达为SHIFT 0,+1。作为另一示例,向右移位一个位置可以在目标代码中表达为 SHIFT+1,0。在各种实施例中,较大量级的移位也可以在目标代码中指 定(例如,SHIFT 0,+2)。在此,如果2D移位寄存器硬件仅支持每周 期移位一个位置,则指令可以被机器解释成需要多个周期执行,或者 2D移位寄存器硬件可以被设计成支持每周期移位一个以上位置。下面 将进一步详细描述后一情况的实施例。
图6示出阵列执行道和移位寄存器结构的单位胞元(cell)的另一 个更详细的描述(晕圈区域中的寄存器不包括对应的执行道)。在一 个实施例中,通过在执行道阵列的每个节点处实例化图12中所示的电 路,实现与执行道阵列中的每个位置相关联的执行道和寄存器空间。 如图6所示,单位胞元包括执行道601,其被耦合至由四个寄存器R2 至R5组成的寄存器堆602。在任一周期期间,执行道601可以从寄存 器R1至R5中的任何一个读取或者向其写入。对于需要两个输入操作 数的指令,执行道可以从R1至R5中的任何一个获得两个操作数。
在一个实施例中,实现二维移位寄存器结构是通过在单个周期期 间允许寄存器R2至R4中的任何(仅)一个的内容通过输出复用器603 “移出”到其邻居的寄存器堆中的一个,并且将寄存器R2至R4中的 任何(仅)一个的内容替换成如果其邻居通过输入复用器604从对应 的一个“移入”的内容,使得邻居之间的移位处于相同的方向(例如, 全部执行道向左移位,全部执行道向右移位等)。虽然通常相同寄存 器可能会将其内容移出并且替换成在相同周期中移入的内容,但复用 器装置603、604允许同一周期期间同一寄存器堆内的不同移位源寄存 器和移位目标寄存器。
如图6所示,注意,在移位序列期间,执行道将内容从其寄存器 堆602移位到其左邻、右邻、上邻和下邻中的每个。结合相同的移位 序列,执行道还将内容从其左邻、右邻、上邻和下邻中的特定一个移 位到其寄存器堆中。另外,对于全部执行道,移出目标和移入源应当 符合同一移位方向(例如,如果移出是向右方的邻居,则移入应当是 从左方的邻居)。
虽然在一个实施例中,每个周期每个执行道允许移位唯一寄存器 的内容,但其他实施例可以允许移入/移出多个寄存器的内容。例如, 如果将图6中所示的复用器电路603、604的第二个实例并入图6的设 计中,则在同一周期期间可以移出/移入两个寄存器的内容。当然,在 每个周期允许移位唯一寄存器的内容的实施例中,通过消耗更多的时 钟周期用于数学运算之间的移位,可以在数学运算之间进行从多个寄 存器移位(例如,通过在数学运算之间消耗两个移位操作,可以在数 学运算之间移位两个寄存器的内容)。
如果在移位序列期间移出的内容少于执行道的寄存器堆的全部内 容,则注意,每个执行道的未移出的寄存器的内容保持在位(不移位)。 这样,任何未替换成移入内容的未移位内容在整个移位周期内仍在本 地存留于执行道。在每个执行道中观察到的存储器单元(“M”)被用 于从/向与执行道阵列内的执行道的行和/或列相关联的随机存取存储 器空间加载/存储数据。在此,M单元充当标准的M单元,因为其经常 被使用于加载/存储无法从/向执行道本身的寄存器空间加载/存储的数 据。在各种实施例中,M单元的主要操作是将数据从本地寄存器写入 存储器以及从存储器读取数据并且将其写入本地寄存器。
关于由硬件执行道601的ALU单元支持的ISA操作码,在各种实 施例中,由硬件ALU支持的数学操作码与由虚拟执行道支持的数学操 作码(例如,ADD、SUB、MOV、MUL、MAD、ABS、DIV、SHL、 SHR、MIN/MAX、SEL、AND、OR、XOR、NOT)整体上相同(例如, 大体上相同)。如上所述,存储器访问指令能够由执行道601执行以 从/向其相关联的随机存取存储器提取/存储数据。此外,硬件执行道601 支持移位操作指令(右、左、上、下)以移位二维移位寄存器结构内 的数据。如上所述,程序控制指令主要由模版处理器的标量处理器执 行。
c.数据片生成器的操作和设计
图7至图12涉及数据片发生器的特殊考虑和/或操作。如上所述, 数据片发生器负责生成信息的数据片,用于对应的模版处理器来处理。 为在整个处理器的设计中实施广泛的多功能性/可编程性,数据片生成 器在某些情况下可能需要在准备输入数据片时执行附加操作,而不仅 仅从接收到的线组中解析适当的部分。
例如,在一些情况下,程序代码将要求同时处理同一图像的多个 通道。例如,许多视频图像具有红色(R)通道、蓝色(B)通道和绿 色(G)通道。在一个实施例中,数据片发生器利用具有相关联的存储 器以及在存储器外执行的程序代码的处理器来实现。
如图7所示,响应于从应用软件检测到内核将同时处理来自不同 通道的数据的需求(其可能已经从编译器得到提示),由数据片生成 器执行的程序代码将继续沿不同的“平面”形成单独的数据片(即, 根据每个通道形成不同的数据片),并且将它们一起加载到数据计算 单元中。也就是说,数据片发生器将为阵列的相同部分生成R数据片、 B数据片和G数据片,并且将全部三个数据片加载到计算单元中。然 后,执行道阵列内的执行道视需要对R、G和B数据片进行自由操作 (例如,通过将R数据片存储在寄存器堆的一层中,将G数据片存储 在寄存器堆的另一层中并且将B数据片存储在寄存器堆的又一层中)。
图8涉及用于多维输入图像的数据片生成。在此,虽然许多输入 图像是简单阵列的形式,但在一些情况下,阵列中的每个位置会对应 于多维数据结构。作为说明性示例,图8描绘出每个阵列位置包含对 应于3×3×3立方体的不同区段的27个不同值的图像。在此,每个阵 列位置均具有多维数据结构,数据片生成器将“展开”输入阵列,使 得为每个数据结构维度形成单独的数据片。因此,如图8所示,数据 片生成器将生成27个数据片(每个立方体区段一个),其中全部数据 片中的每个数据片的每个阵列位置包含标量值(一个立方体区段)。 然后,将27个数据片加载到模版处理器中。然后,由执行道阵列内的 执行道执行的程序代码在知悉已经展开多维输入阵列的方式的情况下 对27个数据片进行操作。
图9涉及用于允许执行道阵列内的执行道处理不同数据位宽的技 术。在此,如在本领域中所理解,通过增加数据值的位宽来达成更大 的动态范围(16位值能够表达比8位值具有更大动态范围的值)。在 一个实施例中,预期模版处理器对具有诸如8、16或32位像素值的不 同位宽的图像进行操作。这样,根据一种方法,执行道本身是32位机 器,从某种意义上,执行道内部能够处理32位操作数。
然而,为了降低二维移位寄存器的规模和复杂度,每个执行道的 寄存器堆内的寄存器的各个存储元素被限制成8位。这在8位图像数 据的情况下没有问题,因为整个数据数据片能够适配于寄存器堆中的 一个寄存器。反之,在16位或32位操作数的情况下,数据片生成器 生成多个数据片来适当地表达输入操作数的数据集。
例如,如图9所示,在16位输入操作数的情况下,数据片发生器 将生成HI半数据片和LO半数据片。HI半数据片包含正确阵列位置处 的每个数据项的高8位。LO半数据片包含正确阵列位置处的每个数据 项的低8位。然后,执行16位操作是通过将两个数据片加载到模版处 理器中以及通知执行道硬件(例如,经由程序代码中的立即值)进行 16位操作。在此,作为只是一种可行的操作模式,HI数据片和LO数 据片都被加载到每个执行道寄存器堆的两个不同寄存器中。
执行道单元能够通过首先从寄存器堆位置之一读取数据并且在其 中对该数据附加从寄存器堆位置中另一个读取的数据,在内部构造正 确的操作数。类似地,在写入方向上,执行道单元要执行两次写入。 具体地,第一次将低8位写入包含LO数据片的寄存器堆的第一寄存器, 然后第二次将高8位写入包含HI数据片的寄存器堆的第二寄存器。
回顾图12的讨论,在各种实施例中,每个周期仅允许移位一个寄 存器的内容。这样,为在二维移位寄存器结构周围移动16位数据值, 在8位数据值的情况下,每个移位序列(在数学运算之间)消耗两个 周期,而非消耗一个周期。也就是说,在8位数据值的标定情况下, 在单个周期中,可以在位置之间移位全部数据。反之,在16位数据值 的情况下,每个移位寄存器的移位操作(HI半数据片和LO半数据片) 则须移位两个8位值。在一个实施例中,在32位的情况下,除了创建 四个数据片而非两个数据片来表示整个图像数据之外,应用相同的原 理。同样,每个移位序列可能需要消耗多达四个周期。
图10涉及图像处理器从低密度分辨率到高密度分辨率“上采样” 输入图像数据的情况。在此,较之输入图像包含的,模版处理器负责 生成对每图像单位面积的更多输出值。数据片发生器通过在数据片上 重复相同的数据值来处理上采样问题,使得数据片数据值密度对应于 上采样(高密度)的输出图像。也就是说,例如,如图10所示,鉴于 输出图像的密度,在输出执行道阵列密度对应于4:1上采样(每个输入 像素对应四个输出像素)的情况下,数据片发生器为每个输入值制作 具有四个相同值的数据片。
图11涉及“下采样”的相反情况。在下采样的情况下,较之对低 密度输入图像,数据片发生器将生成更多的数据片。具体地,如果输 入图像在一个(例如,X)方向上具有S高分辨率的因子,而在另一个 (例如,Y)方向上具有T高分辨率的因子,则数据片发生器将从初始 密度较大的初始数据片生成S*T数据片。这有效地将更多的输入像素 分配给任何特定的输出像素。
图12涉及由执行道阵列内的执行道执行的数学运算需要大于二 维移位寄存器结构的大小的图像数据表面积的情况。如图12所示,要 加载到用于处理的二维移位寄存器结构中的数据片对应于输入帧的阴 影区域1201。然而,将计算阴影区域内的阵列位置的输出值的数学运 算需要在图12中所示的由虚线边框1202界定的帧内的值。因此,在 二维移位寄存器结构的表面区域之外存在大的“支持区域”,其将被 包含在操作中。
在这些条件下,数据片发生器不仅会将对应于阴影区域1201的数 据片加载到模版处理器中,而且还将三个(非阴影的)相邻数据片加 载到数据计算单元中。由执行道执行的程序代码将视需要向/从随机存 取存储器调用和移出数据片,并且/或者将数据片中的一些或全部存储 在二维移位寄存器阵列的较深寄存器中。
图13提供用于数据片发生器的硬件设计1300的实施例。如图13 所示,在一个实施例中,数据片发生器被实现为具有处理器/控制器1301 的计算系统,所述处理器/控制器执行存储在存储器1302中的程序代 码,以执行数据片生成器任务,诸如上文参照图7至图12所述的任务 中的任何一个。数据片发生器还包括用于从/向网络接收/发送线组以及 从/向数据片发生器的相关联的模版处理器接收/发送数据片的I/O单元 1303。
数据片发生器的相关特征是其配置空间1304,该配置空间可以被 实现成数据片发生器内(如图13所示)、处理器/控制器1301内和/或 存储器1302内的单独寄存器空间。配置空间1304有助于整体平台的 广泛适应性和可编程性。在此,在配置空间1304中作出的设置可以例 如包括相关的图像特征和尺寸,诸如帧大小、线组大小、数据片大小、 输入图像的像素分辨率、输出图像的像素分辨率等。然后,存储器1302 内的程序代码使用配置空间内的信息作为输入变量对有正确大小的数 据片等实现正确的操作。
替选地或以某种组合方式,整体平台的广泛适应性和可编程性可 以通过将定制的程序代码加载到存储器1302用于特定的应用和/或图 像尺寸来实现。在此,例如,编译器能够容易地参考位置相对寻址方 案的X、Y坐标和/或帧大小和线组大小中的任何一个,以便于确定数 据片大小、数据片边界等,并且将通用将程序代码模版定制到专用于 手头图像处理任务的软件程序。同样地,任何这样的转译和实际使用 相对定位或其他图像尺寸可以被输入到配置空间1304中,其中数据片 生成器上存在的程序代码对数据片边界、数据片大小等进行确定。
d.实施方式的实施例
有必要指出,上述各种图像处理器架构特征不一定限于传统意义 上的图像处理并由此可以应用于可能(或可能不)促使图像处理器被 重新表征的其他应用。例如,如果上述各种图像处理器架构特征中的 任何一个要被使用于创建和/或生成和/或呈现动画,而非处理实际的相 机图像,则图像处理器可以被表征为图形处理单元。此外,上述图像 处理器架构特征可以被应用于其他技术应用,诸如视频处理、视觉处 理、图像识别和/或机器学习。通过这种方式应用,图像处理器可以(如 作为协处理器)与更通用的处理器(例如,作为计算系统的CPU或其 一部分)集成,或者可以是计算系统内的独立处理器。
上文所讨论的硬件设计实施例可以在半导体芯片内和/或作为用 于最终靶向半导体制造工艺的电路设计的描述来实现。在后一情况下, 这样的电路描述可以采取高级/行为级电路说明(例如,VHDL描述) 或者低级电路描述(例如,寄存器传送级(RTL)描述、晶体管级描述 或掩模描述)或者其各种组合。电路描述通常被体现于计算机可读存 储介质(诸如CD-ROM或其他类型的存储技术)上。
从前述部分而言,有必要认识到,如上所述的图像处理器可以被 体现于计算机系统上的硬件中(例如,作为处理来自手持设备的相机 的数据的手持设备的片上系统(SOC)的一部分)。在图像处理器被实 现为硬件电路的情况下,注意,由图像处理器处理的图像数据可以直 接从相机接收。在此,图像处理器可以是分立相机的一部分,或者是 具有集成相机的计算系统的一部分。在后一情况下,图像数据可以直 接从相机或者从计算系统的系统存储器接收(例如,相机将其图像数 据发送到系统存储器而非图像处理器)。还应注意,前述部分中所述 的许多特征可以适用于图形处理器单元(其呈现动画)。
图14提供计算系统的示例性绘图。下述计算系统的许多组件可应 用于具有集成相机和相关联的图像处理器的计算系统(例如,手持设 备,诸如智能电话或平板型计算机)。本领域普通技术人员能够容易 理解两者之间的关系。
如图14所示,基本计算系统可以包括中央处理单元1401(其可 以例如包括多个通用处理核1415_1至1415_N以及布置在多核处理器 上的主存储器控制器1417或者应用处理器)、系统存储器1402、显示 器1403(例如,触摸屏、平板)、本地有线点对点链路(例如,USB)接口1404、各种网络I/O功能1405(诸如以太网接口和/或蜂窝调制解 调器子系统)、无线局域网(例如,WiFi)接口1406、无线点对点链 路(例如,蓝牙)接口1407和全球定位系统接口1408、各种传感器 1409_1至1409_N、一个或多个相机1410、电池1411、功率管理控制 单元1414、扬声器和麦克风1413以及音频编码器/解码器1414。
应用处理器或多核处理器1450可以包括其CPU 1401内的一个或 多个通用处理核1415、一个或多个图形处理单元1416、存储器管理功 能1417(例如,存储器控制器)、I/O控制功能1418以及图像处理单 元1419。通用处理核1415通常执行计算系统的操作系统和应用软件。 图形处理单元1416通常执行图形敏感功能,例如,用以生成在显示器 1403上呈现的图形信息。存储器控制功能1417与系统存储器1402接 口,以向/从系统存储器1402写入/读取数据。功率管理控制单元1414 通常控制系统1400的功耗。
图像处理单元1419可以根据前述部分中的详细描述的图像处理 单元实施例中的任何一个来实现。替选地或组合地,IPU 1419可以被 耦合至GPU 1416和CPU 1401中的一个或两者,作为其协同处理器。 此外,在各种实施例中,GPU 1416可以通过上文详细描述的图像处理 器特征中的任何一个来实现。
触摸屏显示器1403、通信接口1404至1407、GPS接口1408、传 感器1409、相机1410和扬声器/麦克风编解码器1413、1414中的每个 能够被视为各种形式的I/O(输入和/或输出),这是相对于整个计算系 统而言,在适当情况下,其还包括集成的外围设备(例如,一个或多 个照相机1410)。根据实施方式,这些I/O组件中的各个都可以被集 成在应用处理器/多核处理器1450上,或者可以位于处理器/多核处理 器1450的管芯之外或者其封装之外。
在一个实施例中,一个或多个相机1410包括能够在相机与其视野 内的物体之间测量深度的深度相机。在应用处理器或其他处理器的通 用CPU核(或具有用于执行程序代码的指令执行流水线的其他功能块) 上执行的应用软件、操作系统软件、设备驱动器软件和/或固件可以执 行上述功能中的任何一个。
本发明的实施例可以包括如上所述的各种过程。这些过程可以被 体现于机器可执行指令中。这些指令能够被使用于促使通用或专用处 理器执行某些过程。替选地,这些过程可以通过包含用于执行过程的 硬连线逻辑的专用硬件组件或者通过编程的计算机组件和定制的硬件 组件的任何组合来执行。
本发明的元素还可以作为用于存储机器可执行指令的机器可读介 质来提供。机器可读介质可以包括但不限于软盘、光盘、CD-ROM和 磁光盘、闪速存储器、ROM、RAM、EPROM、EEPROM、磁卡或光卡、 传播介质或其他类型的适用于存储电子指令的介质/机器可读介质。例 如,本发明可以作为计算机程序来下载,该计算机程序可以经由通信 链路(例如,调制解调器或网络连接)通过体现于载波或其他传播介 质中的数据信号而从远程计算机(例如,服务器)传送到请求计算机 (例如,客户端)。
在前文的说明书中,本发明已经参照其具体示例性实施例来予以 描述。然而,显然可以对其作出修改和更改,而不背离如所附权利要 求所述的本发明的更宽精神和范围。因此,说明书和附图被认为说明 性而非限制性意义。
Claims (19)
1.一种方法,包括:
由数据片生成器从线缓存器接收包括来自图像数据帧的多行的图像数据的线组;
由所述数据片生成器将输入数据片加载到被耦合至执行道阵列的二维移位寄存器阵列中,所述输入数据片包括来自所述线组的数据的子集,其中所述输入数据片小于从所述线缓存器接收的所述线组,并且其中所述输入数据片具有与所述二维移位寄存器阵列的大小相对应的大小;
由所述执行道阵列中的每个执行道执行程序代码,以处理加载到所述二维移位寄存器阵列中的所述输入数据片的图像数据,其中,执行所述程序代码使得每个执行道从所述输入数据片的图像数据中生成被存储在所述二维移位寄存器阵列中的图像数据的输出数据片的相应输出值;和
将由所述执行道阵列计算的所述图像数据的输出数据片提供返回到所述数据片生成器。
2.根据权利要求1所述的方法,还包括:由所述数据片生成器向下游线缓存器提供包括所述图像数据的输出数据片的输出线组。
3.根据权利要求1所述的方法,其中,所述二维移位寄存器阵列包括多个层,并且其中,所述图像数据包括每个位置的图像数据的多个部分,
其中,将所述输入数据片加载到所述二维移位寄存器阵列中包括:将具有第一数据的第一数据片从所述多个部分中的第一部分加载到所述多个层中的第一层中,并且还包括:
将具有第二数据的第二数据片从所述多个部分中的第二部分加载到所述多个层的第二层中。
4.根据权利要求3所述的方法,其中,所述图像数据的多个部分包括所述图像数据中的每个位置处的多维数据结构的组件。
5.根据权利要求3所述的方法,其中,所述二维移位寄存器阵列包括具有比所述图像数据小的位宽的寄存器,并且其中所述图像数据的多个部分包括所述图像数据的高位和低位。
6.根据权利要求3所述的方法,其中,所述图像数据的多个部分包括所述图像数据中的每个位置处的图像数据的多个通道。
7.根据权利要求1所述的方法,其中,加载所述输入数据片包括:
通过复制所述图像数据中每个数据值的多个实例,生成具有上采样图像数据的上采样输入数据片。
8.根据权利要求1所述的方法,其中,加载所述输入数据片包括:
通过将每个输入数据值的多个实例组合到下采样输入数据片中的单个值中,来生成具有下采样图像数据的所述下采样输入数据片。
9.根据权利要求1所述的方法,其中执行所述程序代码使得所述二维移位寄存器阵列将所述数据片移位,从而每个执行道遍历二维的相应模板,其中,生成相应的输出值包括:当所述输入数据片被所述二维移位寄存器阵列移位时,由每个执行道根据由所述执行道所遇到的图像数据来生成所述相应的输出值。
10.一种设备,包括:
数据片生成器,所述数据片生成器配置为:
从线缓存器接收包括来自图像数据帧的多行的图像数据的线组;以及
将输入数据片加载到被耦合至执行道阵列的二维移位寄存器阵列中,所述输入数据片包括来自所述线组的数据的子集,其中所述输入数据片小于从所述线缓存器接收的所述线组,并且其中所述输入数据片具有与所述二维移位寄存器阵列的大小相对应的大小,
其中,所述执行道阵列中的每个执行道被配置成:执行程序代码以处理加载到所述二维移位寄存器阵列中的所述输入数据片的图像数据,其中,执行所述程序代码使得每个执行道从所述输入数据片的所述图像数据中生成被存储在所述二维移位寄存器阵列中的图像数据的输出数据片的相应输出值;以及,将由所述执行道阵列计算的所述图像数据的输出数据片提供返回到所述数据片生成器。
11.根据权利要求10所述的设备,其中,所述数据片生成器还被配置成:向下游线缓存器提供所述输出线组。
12.根据权利要求10所述的设备,其中,所述二维移位寄存器阵列包括多个层,并且其中,所述图像数据包括每个位置的图像数据的多个部分,
其中,将所述输入数据片加载到所述二维移位寄存器阵列中包括:将具有第一数据的第一数据片从所述多个部分中的第一部分加载到所述多个层中的第一层中,并且所述数据片生成器还被配置成:将具有第二数据的第二数据片从所述多个部分中的第二部分加载到所述多个层的第二层中。
13.根据权利要求12所述的设备,其中,所述图像数据的多个部分包括所述图像数据中的每个位置处的多维数据结构的组件。
14.根据权利要求12所述的设备,其中,所述二维移位寄存器阵列包括具有比所述图像数据小的位宽的寄存器,并且其中所述图像数据的多个部分包括所述图像数据的高位和低位。
15.根据权利要求12所述的设备,其中,所述图像数据的多个部分包括所述图像数据中的每个位置处的图像数据的多个通道。
16.根据权利要求10所述的设备,其中,加载所述输入数据片包括:
通过复制所述图像数据中每个数据值的多个实例,生成具有上采样图像数据的上采样输入数据片。
17.根据权利要求10所述的设备,其中,加载所述输入数据片包括:
通过将每个输入数据值的多个实例组合到下采样输入数据片中的单个值中,来生成具有下采样图像数据的所述下采样输入数据片。
18.根据权利要求10所述的设备,其中执行所述程序代码使得所述二维移位寄存器阵列将所述数据片移位,从而每个执行道遍历二维的相应模板,其中,生成相应的输出值包括:当所述输入数据片被所述二维移位寄存器阵列移位时,由每个执行道根据由所述执行道所遇到的图像数据来生成所述相应的输出值。
19.编码有计算机程序指令的一种或多种非暂时性计算机存储介质,所述计算机程序指令当由图像处理器执行时使所述图像处理器执行操作,所述操作包括:
由数据片生成器从线缓存器接收包括来自图像数据帧的多行的图像数据的线组;
由所述数据片生成器将输入数据片加载到被耦合至所述图像处理器的执行道阵列的二维移位寄存器阵列中,所述输入数据片包括来自所述线组的数据的子集,其中所述输入数据片小于从所述线缓存器接收的所述线组,并且其中所述输入数据片具有与所述二维移位寄存器阵列的大小相对应的大小;
由所述执行道阵列中的每个执行道执行程序代码,以处理加载到所述二维移位寄存器阵列中的所述输入数据片的图像数据,其中,执行所述程序代码使得每个执行道从所述输入数据片的所述图像数据中生成被存储在所述二维移位寄存器阵列中的图像数据的输出数据片的相应输出值;和
将由所述执行道阵列计算的所述图像数据的输出数据片提供返回到所述数据片生成器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/694,806 | 2015-04-23 | ||
US14/694,806 US10291813B2 (en) | 2015-04-23 | 2015-04-23 | Sheet generator for image processor |
CN201680019786.9A CN107438861B (zh) | 2015-04-23 | 2016-04-04 | 用于图像生成器的数据片生成器 |
PCT/US2016/025895 WO2016171882A1 (en) | 2015-04-23 | 2016-04-04 | Sheet generator for image processor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680019786.9A Division CN107438861B (zh) | 2015-04-23 | 2016-04-04 | 用于图像生成器的数据片生成器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112967169A true CN112967169A (zh) | 2021-06-15 |
CN112967169B CN112967169B (zh) | 2022-06-03 |
Family
ID=55858888
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680019786.9A Active CN107438861B (zh) | 2015-04-23 | 2016-04-04 | 用于图像生成器的数据片生成器 |
CN202110171547.8A Active CN112967169B (zh) | 2015-04-23 | 2016-04-04 | 用于图像生成器的数据片生成器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680019786.9A Active CN107438861B (zh) | 2015-04-23 | 2016-04-04 | 用于图像生成器的数据片生成器 |
Country Status (7)
Country | Link |
---|---|
US (4) | US10291813B2 (zh) |
EP (1) | EP3286725B1 (zh) |
JP (2) | JP6563512B2 (zh) |
KR (2) | KR20170125393A (zh) |
CN (2) | CN107438861B (zh) |
DE (1) | DE112016001835T5 (zh) |
WO (1) | WO2016171882A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10291813B2 (en) * | 2015-04-23 | 2019-05-14 | Google Llc | Sheet generator for image processor |
US10313641B2 (en) | 2015-12-04 | 2019-06-04 | Google Llc | Shift register with reduced wiring complexity |
US9830150B2 (en) | 2015-12-04 | 2017-11-28 | Google Llc | Multi-functional execution lane for image processor |
US10387988B2 (en) | 2016-02-26 | 2019-08-20 | Google Llc | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform |
US10204396B2 (en) | 2016-02-26 | 2019-02-12 | Google Llc | Compiler managed memory for image processor |
US10380969B2 (en) | 2016-02-28 | 2019-08-13 | Google Llc | Macro I/O unit for image processor |
US20180007302A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
US20180005346A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register |
US10546211B2 (en) | 2016-07-01 | 2020-01-28 | Google Llc | Convolutional neural network on programmable two dimensional image processor |
US20180005059A1 (en) * | 2016-07-01 | 2018-01-04 | Google Inc. | Statistics Operations On Two Dimensional Image Processor |
KR20180012439A (ko) * | 2016-07-27 | 2018-02-06 | 삼성전자주식회사 | 회선 신경망에서 가속기 및 이의 동작 방법 |
US10489199B2 (en) * | 2017-05-12 | 2019-11-26 | Google Llc | Program code transformations to improve image processor runtime efficiency |
US10789202B2 (en) * | 2017-05-12 | 2020-09-29 | Google Llc | Image processor with configurable number of active cores and supporting internal network |
US10489878B2 (en) * | 2017-05-15 | 2019-11-26 | Google Llc | Configurable and programmable image processor unit |
US10552939B1 (en) | 2019-02-12 | 2020-02-04 | Google Llc | Image processor complex transfer functions |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202914A (zh) * | 2006-12-01 | 2008-06-18 | 汤姆森许可贸易公司 | 具有本地寄存器的处理元件阵列 |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
CN103201764A (zh) * | 2010-11-12 | 2013-07-10 | 高通股份有限公司 | 使用多个处理器的并行图像处理 |
US20140164737A1 (en) * | 2012-12-06 | 2014-06-12 | Kalray | Execution efficiency in a single-program, multiple-data processor |
US20150086134A1 (en) * | 2013-09-20 | 2015-03-26 | The Board Of Trustees Of The Leland Stanford Junior University | Low power programmable image processor |
Family Cites Families (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4445177A (en) | 1981-05-22 | 1984-04-24 | Data General Corporation | Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions |
US4835712A (en) | 1986-04-14 | 1989-05-30 | Pixar | Methods and apparatus for imaging volume data with shading |
JP2554255B2 (ja) | 1987-03-23 | 1996-11-13 | 旭光学工業株式会社 | フイルタリング装置 |
DE3851005T2 (de) | 1987-06-01 | 1995-04-20 | Applied Intelligent Syst Inc | Paralleles Nachbarverarbeitungssystem und -Verfahren. |
US4935894A (en) | 1987-08-31 | 1990-06-19 | Motorola, Inc. | Multi-processor, multi-bus system with bus interface comprising FIFO register stocks for receiving and transmitting data and control information |
US5253308A (en) | 1989-06-21 | 1993-10-12 | Amber Engineering, Inc. | Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing |
WO1994009595A1 (en) | 1991-09-20 | 1994-04-28 | Shaw Venson M | Method and apparatus including system architecture for multimedia communications |
JP3482660B2 (ja) | 1993-09-08 | 2003-12-22 | ソニー株式会社 | 画像データ処理装置および画像データ処理方法 |
US5612693A (en) | 1994-12-14 | 1997-03-18 | International Business Machines Corporation | Sliding window data compression using a toroidal bit shift register |
EP0875031B1 (de) | 1996-01-15 | 2001-06-20 | Infineon Technologies AG | Prozessor zur bildverarbeitung |
US6031573A (en) | 1996-10-31 | 2000-02-29 | Sensormatic Electronics Corporation | Intelligent video information management system performing multiple functions in parallel |
US5892962A (en) | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US6661421B1 (en) | 1998-05-21 | 2003-12-09 | Mitsubishi Electric & Electronics Usa, Inc. | Methods for operation of semiconductor memory |
US6366289B1 (en) | 1998-07-17 | 2002-04-02 | Microsoft Corporation | Method and system for managing a display image in compressed and uncompressed blocks |
US6587158B1 (en) | 1998-07-23 | 2003-07-01 | Dvdo, Inc. | Method and apparatus for reducing on-chip memory in vertical video processing |
US7010177B1 (en) | 1998-08-27 | 2006-03-07 | Intel Corporation | Portability of digital images |
US6970196B1 (en) | 1999-03-16 | 2005-11-29 | Hamamatsu Photonics K.K. | High-speed vision sensor with image processing function |
US7792298B2 (en) | 1999-06-30 | 2010-09-07 | Silverbrook Research Pty Ltd | Method of using a mobile device to authenticate a printed token and output an image associated with the token |
JP3922859B2 (ja) | 1999-12-28 | 2007-05-30 | 株式会社リコー | 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6745319B1 (en) | 2000-02-18 | 2004-06-01 | Texas Instruments Incorporated | Microprocessor with instructions for shuffling and dealing data |
US6728862B1 (en) | 2000-05-22 | 2004-04-27 | Gazelle Technology Corporation | Processor array and parallel data processing methods |
US6728722B1 (en) | 2000-08-28 | 2004-04-27 | Sun Microsystems, Inc. | General data structure for describing logical data spaces |
US6986025B2 (en) | 2001-06-11 | 2006-01-10 | Broadcom Corporation | Conditional execution per lane |
US7286717B2 (en) | 2001-10-31 | 2007-10-23 | Ricoh Company, Ltd. | Image data processing device processing a plurality of series of data items simultaneously in parallel |
JP4146654B2 (ja) | 2002-02-28 | 2008-09-10 | 株式会社リコー | 画像処理回路、複合画像処理回路、および、画像形成装置 |
US9170812B2 (en) | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
AU2003221680A1 (en) | 2002-04-09 | 2003-10-27 | The Research Foundation Of State University Of New York | Multiplier-based processor-in-memory architectures for image and graphics processing |
JP2004013873A (ja) | 2002-06-03 | 2004-01-15 | Sony Corp | 画像処理装置 |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
GB2398446B (en) | 2003-02-12 | 2006-06-07 | Snell & Wilcox Ltd | Image processing |
US20060044576A1 (en) | 2004-07-30 | 2006-03-02 | Kabushiki Kaisha Toshiba | Apparatus for image processing |
US7667764B2 (en) | 2004-06-04 | 2010-02-23 | Konica Minolta Holdings, Inc. | Image sensing apparatus |
KR100614647B1 (ko) * | 2004-07-02 | 2006-08-22 | 삼성전자주식회사 | 디블록킹 필터에서의 효과적인 에지 필터링 연산을 위한레지스터 어레이 구조 |
JP4219887B2 (ja) | 2004-12-28 | 2009-02-04 | 富士通マイクロエレクトロニクス株式会社 | 画像処理装置及び画像処理方法 |
ATE504043T1 (de) | 2005-04-28 | 2011-04-15 | Univ Edinburgh | Umkonfigurierbares anweisungs-zellen-array |
US7882339B2 (en) | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
JP2007067917A (ja) | 2005-08-31 | 2007-03-15 | Matsushita Electric Ind Co Ltd | 画像データ処理装置 |
US7602974B2 (en) | 2005-10-21 | 2009-10-13 | Mobilic Technology (Cayman) Corp. | Universal fixed-pixel-size ISP scheme |
FR2895103B1 (fr) | 2005-12-19 | 2008-02-22 | Dxo Labs Sa | Procede et systeme de traitement de donnees numeriques |
US7802073B1 (en) | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
JP2007304803A (ja) | 2006-05-10 | 2007-11-22 | Fuji Xerox Co Ltd | 画像処理装置 |
US20080111823A1 (en) | 2006-11-13 | 2008-05-15 | Faraday Technology Corp. | Graphics processing system |
US8321849B2 (en) | 2007-01-26 | 2012-11-27 | Nvidia Corporation | Virtual architecture and instruction set for parallel thread computing |
US20080244222A1 (en) | 2007-03-30 | 2008-10-02 | Intel Corporation | Many-core processing using virtual processors |
US8068114B2 (en) | 2007-04-30 | 2011-11-29 | Advanced Micro Devices, Inc. | Mechanism for granting controlled access to a shared resource |
JP4389976B2 (ja) | 2007-06-29 | 2009-12-24 | ブラザー工業株式会社 | 画像処理装置および画像処理プログラム |
JP2009021459A (ja) | 2007-07-13 | 2009-01-29 | Fuji Xerox Co Ltd | 面発光型半導体レーザの駆動方法および光伝送モジュール |
JP4844853B2 (ja) | 2007-09-05 | 2011-12-28 | 国立大学法人東北大学 | 固体撮像素子及びその駆動方法 |
JP4917561B2 (ja) | 2008-03-18 | 2012-04-18 | 株式会社リコー | 画像処理装置 |
CN102047241B (zh) | 2008-05-30 | 2014-03-12 | 先进微装置公司 | 本地与全局数据共享 |
US8098894B2 (en) | 2008-06-20 | 2012-01-17 | Yahoo! Inc. | Mobile imaging device as navigator |
JP4999791B2 (ja) | 2008-06-30 | 2012-08-15 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
US8456480B2 (en) | 2009-01-14 | 2013-06-04 | Calos Fund Limited Liability Company | Method for chaining image-processing functions on a SIMD processor |
US8332794B2 (en) | 2009-01-22 | 2012-12-11 | Taiwan Semiconductor Manufacturing Company, Ltd. | Circuits and methods for programmable transistor array |
EP2396735A4 (en) * | 2009-02-11 | 2012-09-26 | Quartics Inc | FRONT PROCESSOR WITH EXPANDABLE DATA PATH |
KR101572879B1 (ko) | 2009-04-29 | 2015-12-01 | 삼성전자주식회사 | 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법 |
US20110055495A1 (en) | 2009-08-28 | 2011-03-03 | Qualcomm Incorporated | Memory Controller Page Management Devices, Systems, and Methods |
US8976195B1 (en) | 2009-10-14 | 2015-03-10 | Nvidia Corporation | Generating clip state for a batch of vertices |
US8436857B2 (en) | 2009-10-20 | 2013-05-07 | Oracle America, Inc. | System and method for applying level of detail schemes |
US8595428B2 (en) | 2009-12-22 | 2013-11-26 | Intel Corporation | Memory controller functionalities to support data swizzling |
JP2011165132A (ja) * | 2010-02-15 | 2011-08-25 | Seiko Epson Corp | 画像処理装置、画像処理回路、及び画像処理方法 |
US8749667B2 (en) | 2010-08-02 | 2014-06-10 | Texas Instruments Incorporated | System and method for maintaining maximum input rate while up-scaling an image vertically |
CN101968851B (zh) * | 2010-09-09 | 2012-08-08 | 西安电子科技大学 | 基于字典学习上采样的医学影像处理方法 |
US8508612B2 (en) | 2010-09-30 | 2013-08-13 | Apple Inc. | Image signal processor line buffer configuration for processing ram image data |
CN102572207B (zh) * | 2010-12-30 | 2014-05-14 | 无锡华润矽科微电子有限公司 | 一种适于jpeg图像的颜色空间转换方法 |
US8797323B2 (en) | 2011-01-18 | 2014-08-05 | Intel Corporation | Shadowing dynamic volumetric media |
CN103339604B (zh) | 2011-01-31 | 2016-10-26 | 株式会社索思未来 | 程序生成装置、程序生成方法、处理器装置以及多处理器系统 |
US9092267B2 (en) | 2011-06-20 | 2015-07-28 | Qualcomm Incorporated | Memory sharing in graphics processing unit |
US20130027416A1 (en) | 2011-07-25 | 2013-01-31 | Karthikeyan Vaithianathan | Gather method and apparatus for media processing accelerators |
US9641866B2 (en) | 2011-08-18 | 2017-05-02 | Qualcomm Incorporated | Applying partition-based filters |
JP5742651B2 (ja) | 2011-10-15 | 2015-07-01 | コニカミノルタ株式会社 | 画像処理装置、連携方法および連携プログラム |
JP5746100B2 (ja) | 2011-12-27 | 2015-07-08 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置 |
US8823736B2 (en) | 2012-01-20 | 2014-09-02 | Intel Corporation | Graphics tiling architecture with bounding volume hierarchies |
US10244246B2 (en) | 2012-02-02 | 2019-03-26 | Texas Instruments Incorporated | Sub-pictures for pixel rate balancing on multi-core platforms |
US9235769B2 (en) | 2012-03-15 | 2016-01-12 | Herta Security, S.L. | Parallel object detection method for heterogeneous multithreaded microarchitectures |
TWI520598B (zh) | 2012-05-23 | 2016-02-01 | 晨星半導體股份有限公司 | 影像處理裝置與影像處理方法 |
CN102685439A (zh) * | 2012-05-28 | 2012-09-19 | 上海海事大学 | 一种使用fpga实现图像数据传输控制的装置及方法 |
US20140019486A1 (en) | 2012-07-13 | 2014-01-16 | Amitava Majumdar | Logic Content Processing for Hardware Acceleration of Multi-Pattern Search |
US9232139B2 (en) | 2012-07-24 | 2016-01-05 | Apple Inc. | Image stabilization using striped output transformation unit |
US9378181B2 (en) | 2012-11-09 | 2016-06-28 | Intel Corporation | Scalable computing array |
CN103179408B (zh) * | 2012-11-27 | 2016-01-06 | 上海高清数字科技产业有限公司 | 一种解决色度上采样错误的系统和方法 |
US8954992B2 (en) | 2013-03-15 | 2015-02-10 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Distributed and scaled-out network switch and packet processing |
US9058673B2 (en) | 2013-03-15 | 2015-06-16 | Oracle International Corporation | Image mosaicking using a virtual grid |
US9589175B1 (en) * | 2014-09-30 | 2017-03-07 | Amazon Technologies, Inc. | Analyzing integral images with respect to Haar features |
US9818166B2 (en) | 2015-01-16 | 2017-11-14 | Intel Corporation | Graph-based application programming interface architectures with producer/consumer nodes for enhanced image processing parallelism |
US9749548B2 (en) | 2015-01-22 | 2017-08-29 | Google Inc. | Virtual linebuffers for image signal processors |
US10291813B2 (en) * | 2015-04-23 | 2019-05-14 | Google Llc | Sheet generator for image processor |
US10310998B2 (en) * | 2015-06-30 | 2019-06-04 | Microsoft Technology Licensing, Llc | Direct memory access with filtering |
-
2015
- 2015-04-23 US US14/694,806 patent/US10291813B2/en active Active
-
2016
- 2016-04-04 WO PCT/US2016/025895 patent/WO2016171882A1/en active Application Filing
- 2016-04-04 CN CN201680019786.9A patent/CN107438861B/zh active Active
- 2016-04-04 EP EP16719164.2A patent/EP3286725B1/en active Active
- 2016-04-04 KR KR1020177028006A patent/KR20170125393A/ko not_active Application Discontinuation
- 2016-04-04 JP JP2017550906A patent/JP6563512B2/ja active Active
- 2016-04-04 KR KR1020207005068A patent/KR102146515B1/ko active IP Right Grant
- 2016-04-04 CN CN202110171547.8A patent/CN112967169B/zh active Active
- 2016-04-04 DE DE112016001835.5T patent/DE112016001835T5/de active Pending
-
2017
- 2017-05-18 US US15/598,933 patent/US10284744B2/en active Active
-
2019
- 2019-03-04 US US16/291,047 patent/US10560598B2/en active Active
- 2019-07-24 JP JP2019136231A patent/JP6793228B2/ja active Active
-
2020
- 2020-02-10 US US16/786,359 patent/US11140293B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202914A (zh) * | 2006-12-01 | 2008-06-18 | 汤姆森许可贸易公司 | 具有本地寄存器的处理元件阵列 |
CN103201764A (zh) * | 2010-11-12 | 2013-07-10 | 高通股份有限公司 | 使用多个处理器的并行图像处理 |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
US20140164737A1 (en) * | 2012-12-06 | 2014-06-12 | Kalray | Execution efficiency in a single-program, multiple-data processor |
US20150086134A1 (en) * | 2013-09-20 | 2015-03-26 | The Board Of Trustees Of The Leland Stanford Junior University | Low power programmable image processor |
Non-Patent Citations (1)
Title |
---|
P H J VAN OOSTERHOUT: "OPTIMIZED PIXEL TEMPLATE IMAGE CORRELATOR", 《HTTP://ALEXANDRIA.TUE.NL/EXTRA2/AFSTVERSL/E/563812.PDF》 * |
Also Published As
Publication number | Publication date |
---|---|
US11140293B2 (en) | 2021-10-05 |
US20160316094A1 (en) | 2016-10-27 |
KR20170125393A (ko) | 2017-11-14 |
JP2019215887A (ja) | 2019-12-19 |
KR20200021003A (ko) | 2020-02-26 |
KR102146515B1 (ko) | 2020-08-21 |
JP6793228B2 (ja) | 2020-12-02 |
DE112016001835T5 (de) | 2018-02-15 |
CN107438861B (zh) | 2021-02-26 |
US10291813B2 (en) | 2019-05-14 |
US10284744B2 (en) | 2019-05-07 |
EP3286725A1 (en) | 2018-02-28 |
CN107438861A (zh) | 2017-12-05 |
EP3286725B1 (en) | 2021-10-06 |
WO2016171882A1 (en) | 2016-10-27 |
JP6563512B2 (ja) | 2019-08-21 |
US20200186667A1 (en) | 2020-06-11 |
US20190208075A1 (en) | 2019-07-04 |
CN112967169B (zh) | 2022-06-03 |
JP2018513474A (ja) | 2018-05-24 |
US20170257515A1 (en) | 2017-09-07 |
US10560598B2 (en) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112967169B (zh) | 用于图像生成器的数据片生成器 | |
JP7202987B2 (ja) | 高性能で、電力効率の良い、プログラマブルな画像処理のためのアーキテクチャ | |
CN107563952B (zh) | 可编程二维图像处理器上的卷积神经网络 | |
CN107430760B (zh) | 用于图像处理器的二维移位阵列 | |
KR101971657B1 (ko) | 이미지 프로세서에 대한 에너지 효율적인 프로세서 코어 아키텍처 | |
CN107133908B (zh) | 用于图像处理器的编译器管理存储器 | |
KR102278021B1 (ko) | 이미지 프로세서 런타임 효율성을 개선하기 위한 프로그램 코드 변환 | |
CN110300944B (zh) | 具有可配置数目的活动核心和支持内部网络的图像处理器 | |
CN110574067A (zh) | 图像处理器i/o单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |