CN107430759B - 用于图像信号处理器的虚拟行缓冲区 - Google Patents

用于图像信号处理器的虚拟行缓冲区 Download PDF

Info

Publication number
CN107430759B
CN107430759B CN201580076696.9A CN201580076696A CN107430759B CN 107430759 B CN107430759 B CN 107430759B CN 201580076696 A CN201580076696 A CN 201580076696A CN 107430759 B CN107430759 B CN 107430759B
Authority
CN
China
Prior art keywords
buffer
pixel data
ipl
image processing
image
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.)
Active
Application number
CN201580076696.9A
Other languages
English (en)
Other versions
CN107430759A (zh
Inventor
朱秋玲
奥弗尔·莎查姆
杰森·鲁珀特·莱德格雷夫
丹尼尔·弗雷德里克·芬舍尔施泰因
阿尔伯特·迈克斯纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202110147151.XA priority Critical patent/CN112801852B/zh
Publication of CN107430759A publication Critical patent/CN107430759A/zh
Application granted granted Critical
Publication of CN107430759B publication Critical patent/CN107430759B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)
  • Image Generation (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

在一个一般方面中,一种装置可包括图像处理逻辑(IPL),所述IPL被配置成对与宽度为W个像素且高度为H个像素的图像相对应的像素数据执行图像处理操作以使用K个S×S像素的垂直重叠片来在K个像素的垂直片中产生输出像素数据,K大于1并且小于H,S大于或者等于2,并且W大于S。所述装置也可包括与所述IPL操作地耦合的行缓冲区,所述行缓冲区被配置成为所述IPL缓冲像素数据。所述行缓冲区可包括宽度为W且高度为(S‑1)的全尺寸缓冲区。所述行缓冲区也可包括宽度为SB且高度为K的滑动缓冲区,SB大于或者等于S并且小于W。

Description

用于图像信号处理器的虚拟行缓冲区
相关申请的交叉引用
本申请是2015年1月22日提交的题为“VIRTUAL LINEBUFFERS FOR IMAGE SIGNALPROCESSORS(用于图像信号处理器的虚拟行缓冲区)”的美国专利申请序列号14/603,354的继续申请,其内容通过引用并入在本文中。
技术领域
本公开涉及图像处理。更具体地,本公开涉及用于使用包括图像宽度缓冲区和/或部分图像宽度滑动缓冲区的行缓冲区的图像像素处理的方法。
背景技术
诸如计算机、智能电话、平板计算机、可穿戴设备等的消费者电子设备持续愈加流行。这样的设备常常包括诸如高分辨率显示器的显示器和/或图像传感器(例如,包括在相机中的传感器)。可在使用图像信号处理器(ISP)的这样的设备中执行图像信号处理(例如,以对捕获的图像和/或存储在电子存储器中的图像进行处理)。在一些实施方式中,这样的ISP可依照对应的有向非循环图(DAG)来操作。出于本公开的目的,术语“ISP”将用于描述用于实现图像信号处理的这样的装置,但是其它术语也可以是恰当的。
可在多个情形下使用通过这样的ISP作出的图像信号处理(例如,对与图像或图像集相对应的像素数据的处理)。例如,可使用ISP对由包括在电子设备中的图像传感器(例如,相机)捕获的图像(或图像的系列,例如视频)进行处理,同时经充分处理的图像(或多个图像)被呈现在该设备的显示器上和/或存储在该电子设备的电子存储器(例如,闪速存储器、动态随机存取存储器(DRAM)等)中(或者与电子设备操作地耦合)。在其它实例中,例如,可在ISP中对存储在存储器中的图像(或图像的系列,例如视频)进行处理,其中,(在ISP的最后级处输出的)经充分处理的图像(或多个图像)被呈现在关联的电子设备的显示器上和/或被存储在相同的存储器或不同的存储器中。由给定ISP处理的图像的起点和目的地可基于特定实施方式而变化。
ISP的实施方式可包括一系列级联的(例如,流水线式(pipelined))行缓冲区(例如,用于在图像信号处理期间缓冲(存储)图像(像素)数据的静态RAM(SRAM))和关联的计算内核(例如,用于对图像像素数据执行图像处理功能的图像处理逻辑)。这样的图像处理功能可包括(例如,按照给定顺序)对与给定图像或图像的系列的在空间上接近的像素的子群组相对应的像素数据的“模版(stencil)”执行的功能。例如,这样的图像处理功能可包括颜色插值、图像锐化、颜色校正等。
像上面所指出的那样可使用SRAM存储器来实现的行缓冲区可为ISP的图像处理逻辑(IPL)级之间的图像像素数据提供局部缓冲。由一个级处理的像素数据可被写入到随后处理级的行缓冲区中(缓冲以用于在该随后处理级的行缓冲区中重用),以此类推,直到所有处理级已经完成图像(像素)数据的处理为止。常常,更大的行缓冲区(可保持更多的行的行缓冲区)可用于经由并行性(parallelism)促进吞吐量增加。
随着在消费者电子设备中作出进步,图像分辨率的对应增加、图像处理级的数目的增加(例如,以促进更复杂的图像处理算法)和/或用于改进图像处理吞吐量的要求可导致用于在对应的ISP中实现行缓冲区的存储器(例如,SRAM)的量的不期望增加。例如,为了针对给定ISP实现期望的性能,用于为该ISP实现行缓冲区的存储器的量可增加到从成本观点(例如,所用硅面积的量、产品设计成本等)和/或功耗(例如,动态和/或静态功耗)观点上过于昂贵的量。
发明内容
在一个一般方面中,一种装置包括图像处理逻辑(IPL),所述IPL被配置成对与宽度为W个像素且高度为H个像素的图像相对应的像素数据执行图像处理操作以使用K个S×S像素的垂直重叠模板来在K个像素的垂直片中产生输出像素数据,其中K大于1并且小于H,S大于或者等于2,并且W大于S。所述装置也包括与所述IPL操作地耦合的行缓冲区,所述行缓冲区被配置成为所述IPL缓冲像素数据。所述行缓冲区包括宽度为W且高度为(S-1)的全尺寸缓冲区。所述行缓冲区也包括宽度为SB且高度为K的滑动缓冲区,SB大于或者等于S并且小于W。
示例实施方式可包括以下特征中的一个或多个。例如,所述IPL可被配置成按照光栅次序产生所述输出像素数据的所述垂直片。所述IPL的图像处理功能可以是可编程的。所述IPL的图像处理功能可以是固定的。
所述IPL可以是第一IPL,所述行缓冲区可以是第一行缓冲区,所述图像处理操作可以是第一图像处理操作并且所述输出像素数据可以是第一输出像素数据。所述装置可包括第二IPL,所述第二IPL被配置成对所述第一输出像素数据执行第二图像处理操作以使用L个T×T像素的重叠模版来在L个像素的垂直片中产生第二输出像素数据,L大于1并且小于H,T大于或者等于2。所述装置可包括操作地耦合在所述第一IPL与所述第二IPL之间的第二行缓冲区,所述第二行缓冲区被配置成为所述第二IPL缓冲所述第一输出像素数据。所述全尺寸缓冲区可以是第一全尺寸缓冲区并且所述滑动缓冲区可以是第一滑动缓冲区。所述第二行缓冲区可包括宽度为W且高度为(T-1)的第二全尺寸缓冲区以及宽度为TB且高度为L的第二滑动缓冲区,TB大于或者等于T并且小于W。L可等于K并且T可等于S。L可不等于K并且T可不等于S。
所述装置可包括与所述行缓冲区操作地耦合的图像数据源。所述图像数据源可被配置成存储与所述图像相对应的像素数据。W可比S大至少一个数量级。所述全尺寸缓冲区可包括循环数据缓冲区。所述滑动缓冲区可包括先进先出(FIFO)数据缓冲区。
在另一一般方面中,一种装置包括图像处理逻辑(IPL),所述IPL被配置成对与宽度为W个像素且高度为H个像素的图像相对应的像素数据执行图像处理操作以使用K×J个S×S像素的重叠模版来在高度为K个像素且宽度为J个像素的片中产生输出像素数据。K和J大于1并且小于H,S大于或者等于2,并且W大于S。所述装置也包括与所述IPL操作地耦合的行缓冲区,所述行缓冲区被配置成为所述IPL缓冲像素数据。所述行缓冲区包括宽度为W且高度为(S-1)的全尺寸缓冲区以及宽度为SB且高度为K的滑动缓冲区,SB大于或者等于S+(J-1)并且小于W。
示例实施方式可包括以下特征中的一个或多个。例如,所述IPL可以是第一IPL,所述行缓冲区可以是第一行缓冲区,所述图像处理操作可以是第一图像处理操作并且所述输出像素数据可以是第一输出像素数据。所述装置可包括:第二IPL,被配置成对所述第一输出像素数据执行第二图像处理操作以产生第二输出像素数据片;以及第二行缓冲区,操作地耦合在所述第一IPL与所述第二IPL之间,所述第二行缓冲区被配置成为所述第二IPL缓冲所述第一输出像素数据。由所述第二IPL产生的所述第二输出像素数据片中的片可具有K的高度和J的宽度。由所述第二IPL产生的所述第二输出像素数据片中的片可具有不等于K的高度和不等于J的宽度。所述IPL可被配置成按照光栅次序产生所述输出像素数据的所述片。
在另一一般方面中,一种图像信号处理器(ISP)包括图像数据源,所述图像数据源被配置成缓冲与宽度为W个像素且高度为H个像素的图像相对应的像素数据。所述ISP也包括具有第一图像处理逻辑(IPL)的第一图像处理级,所述第一IPL被配置成对与宽度为W个像素且高度为H个像素的图像相对应的像素数据执行第一图像处理操作以使用K个S×S像素的垂直重叠模板来在K个像素的垂直片中产生第一输出像素数据,K大于1并且小于H,S大于或者等于2,并且W大于S。所述第一图像处理级也包括与所述第一IPL操作地耦合的第一行缓冲区,所述第一行缓冲区被配置成为所述第一IPL缓冲像素数据。所述第一行缓冲区包括宽度为W且高度为(S-1)的第一全尺寸缓冲区以及宽度为SB且高度为K的第一滑动缓冲区,SB大于或者等于S并且小于W。所述ISP还包括具有第二IPL的第二图像处理级,所述第二IPL被配置成对所述第一输出像素数据执行第二图像处理操作以使用L个T×T像素的重叠模版来在L个像素的垂直片中产生第二输出像素数据,L大于1并且小于H,T大于或者等于2。所述第二图像处理级也包括操作地耦合在所述第一IPL与所述第二IPL之间的第二行缓冲区,所述第二行缓冲区被配置成为所述第二IPL缓冲所述第一输出像素数据。
示例实施方式可包括以下特征中的一个或多个。例如,所述第二行缓冲区可包括宽度为W且高度为(T-1)的第二全尺寸缓冲区以及宽度为TB且高度为L的第二滑动缓冲区,TB大于或者等于T并且小于W。T可等于S,并且L可等于K。
在下面的附图和描述中阐述了一个或多个实施方式的细节。其它特征根据本说明书和附图并且根据权利要求书将是显而易见的。
附图说明
图1A是图示根据实施方式的图像信号处理器(ISP)的框图。
图1B是图示根据实施方式的可被包括在图1A的ISP中的图像处理级的框图。
图2是图示根据实施方式的包括在图像处理级中的虚拟行缓冲区的操作的框图。
图3是图示根据实施方式的,可使用包括虚拟行缓冲区的图像处理级来产生的两个连续片排的图。
图4是图示根据实施方式的,与使用包括虚拟行缓冲区的图像处理级的图像信号处理相关联的像素数据的读写操作的图。
图5是图示根据实施方式的包括在图像处理级中的另一虚拟行缓冲区的操作的图。
图6是图示根据实施例的,使用不同的模版大小的连续图像处理级的虚拟行缓冲区的操作的图。
图7是图示可用于实现这里所描述的技术的计算机设备和移动计算机设备的示例的图。
在各个附图中相似的附图标记指示相似的元素。
具体实施方式
本公开涉及用于对图像数据(其也可被称为像素数据、图像像素数据、图像信号等)进行处理的装置和方法,其中所述图像数据由包括如在下面进一步描述的虚拟行缓冲区的图像信号处理器(ISP)来处理。具体地,本文中所描述的技术可用于利用包括一个或多个虚拟行缓冲区的ISP来对摄影图像、视频图像等的图像数据(例如,像素数据、图像信号等)进行处理。这样的虚拟行缓冲区可利用存储器的一小部分来实现,所述存储器用于实现全图像宽度行缓冲区(具有与给定虚拟行缓冲区相同的高度的传统行缓冲区)。因此,与使用全图像宽度高行缓冲区所实现的ISP相比,使用本文中所描述的方法所实现的ISP可减少产品成本和/或功耗。
虽然本公开大体上涉及图像数据处理,并且涉及将ISP中的虚拟行缓冲区用于图像数据处理,但是将理解的是,可与其它类型的数据一起使用本文中所描述的方法。例如,虚拟行缓冲区——诸如本文中所描述的那些——可被用于在被配置成在对重叠地址窗口重复计算的情况下对数据集(图像日期或其它)进行处理的电路和/或设备中。例如,作为一个示例,这样的方法能用于对音频数据进行处理。在这样的方法中,能在两个维度上布置音频数据,例如其中时间在第一轴上并且频率在第二轴上。
图1A和图1B是分别图示根据实施方式的图像信号处理器(ISP)100以及可被包括在ISP 100中的图像处理级120的框图。图1A中所示的ISP 100和图1B中所示的图像处理级120的布置被作为示例并出于图示的目的而给出。取决于特定实施方式(例如,包括这样的ISP的特定设备),ISP 100和图像处理级120的布置可变化。
如图1A中所示,ISP 100包括图像数据源110。图像数据源110可采取多个形式。例如,在一个实施方式中,图像数据源110可包括存储在诸如闪速存储器、DRAM等的电子存储器中的图像。在另一实施方式中,该图像数据源可包括图像传感器(例如,互补金属氧化物半导体(CMOS)图像传感器等)。在其它实施方式中,图像数据源110可采取其它形式。
图1A的ISP 100也包括一系列流水线式(级联的、顺序的等)图像处理级120、130、140。如图1A中所指示的,包括在ISP 100中的多个图像处理级可变化。例如,ISP 100能包括更少的图像处理级,或者能包括除图1A中所示的图像处理级外的附加图像处理级。图1A的ISP 100被作为示例并出于图示的目的而给出。ISP通常可以许多有向图形状出现,在所述有向图形状中一个或多个处理级产生由一个或多个下游处理级稍后消费的数据。
ISP 100还包括图像目的地150,所述图像目的地150取决于实施方式也可采取多个形式。例如,图像目的地150可以包括电子设备的显示器,诸如高分辨率显示器。在其它实施方式中,该图像目的地可以包括电子存储器,例如,闪速存储器或其它类型的电子存储器。
在ISP 100中,图像处理级120、130、140中的每一个可从前一个块接收输入像素流(与正被处理的图像相对应)并且(在执行相应的图像处理功能之后)生成输出像素流。也就是说,图像处理级120可从图像数据源110接收输入像素流,对该像素流执行图像处理功能并且生成输出像素流。在此实例中,输入数据源110可被称为像素流生产者(生产者)并且图像处理级120可被称为像素流消费者(消费者)。然后,由图像处理级120(在此实例中的生产者)产生的输出像素流可被用作图像处理级130(消费者)的输入像素流,所述图像处理级130(消费者)可对该像素流执行(与级120的图像处理)不同的图像处理操作,并且针对ISP100的每个后续图像处理级以此类推。如图1A中所示,来自图像处理级140(作为生产者)的输出像素流可被用作图像目的地150的输入像素流。取决于该特定实施方式,图像处理级120、130、140中的每一个的图像处理功能可以是固定的或者可以是可编程的。
图1B图示可被实现在图1A的ISP 100中的图像处理级120(例如,针对图像处理级120、130、140等)的实施方式。在其它实施方式中,图像处理级120、130、140的布置可以变化。图1B中所示的布置被作为示例并出于图示的目的而给出。
如图1B中所示,图像处理级120包括虚拟行缓冲区160和图像处理逻辑(IPL)170。在这样的布置中,虚拟行缓冲区160可被配置成缓冲正在ISP 100中处理的图像的像素数据的空间上局部的子集以供由IPL 170处理。在一个实施方式中,在像素数据的一个子集(例如,其被缓冲在虚拟行缓冲区160中)由IPL 170处理之后,可将经处理的像素数据子集写入到下一级(例如,消费者)的行缓冲区并且可将像素数据的新子集读取到虚拟行缓冲区160中以供由IPL 170处理。可按照光栅扫描次序(例如,从左向右,自顶向下)来在这样的子集中对正由ISP 100处理的图像的数据进行处理。
在一个实施方式中,IPL 170可使用多个重叠模版来对像素数据的子集(例如,其可被按照光栅扫描次序来缓冲在虚拟行缓冲区160中)应用图像处理功能,其中给定的单个模版(其也可被称为支持区域(support region))用于从一组在空间上接近的像素产生输出像素集(例如,通过对给定模版内的像素的数据应用IPL 170的图像处理功能)。例如,在一个实施方式中,大小S×S的模版可由IPL 170在执行它相应的图像处理操作时使用。取决于特定实施方式,S可具有大于或者等于2的值。例如,IPL 170能使用大小2×2、3×3、4×4、5×5等的模版。
对具有奇数大小的模版来说,给定模版的输出像素可以是中心像素,然而对偶数大小的模版来说,给定模版的输出像素可偏移(即,未被确定在模版的中心处)。在其它实施方式中,给定模版操作的输出像素可以是可编程的或者可取决于由IPL 170实现的特定图像处理功能。
通过图示的方式,在当前的ISP实施方式中,假定图像像素数据被按照光栅扫描次序处理并且给定IPL使用大小S×S的模版,生产者级(供应像素流的生产者级)必须在下一个IPL级可开始对其传入像素流进行处理之前生成(S-1)个全尺寸图像行加上S个更多的像素。因此,这样的实施方式中的行缓冲区需要足够大以缓冲像素数据的(S-1)个全图像宽度行加上部分行中的至少S个更多的像素的像素数据。如果ISP实施方式的处理级被配置成同时(例如,与增加吞吐量并行地,或者按照某个修改的光栅扫描次序)对多个垂直重叠的模版进行处理,则全图像宽度行的数目可与被一起处理的重叠模版的数目一致地增加。
因此,为了允许由使用这样的垂直重叠模版的给定图像处理级处理图像数据,与该IPL相关联的行缓冲区将在高度上增加(例如,将是更高的)。在当前的ISP实施方式中,这样的方法需要增加行缓冲区的大小,使得它可缓冲足够的像素数据的全图像宽度行以支持对像素数据的重叠模版的处理。例如,为了对六个垂直(K=6)重叠3×3(S=3)模版进行处理,行缓冲区将需要足够大以缓冲八(K+(S-1))个全图像宽度像素数据行,加上第九行上的三个附加像素。针对具有1000个像素的图像宽度的设备,这将在仅单个行缓冲区中需要最小64003位的SRAM(假定每像素一个字节)。取决于图像处理级的数目、每像素位的数目、模版的大小、和模版平行性,所需SRAM的量能容易地导致上面所讨论的缺点。
在本文中所描述的方法中,图1B中所示的、具有行缓冲区160(在下面进一步描述)的图像处理级120可用于(例如,并行地)对多个重叠模版(例如,像素数据的重叠群组)进行处理以生成多个输出像素,同时避免使用全图像宽度高行缓冲区的当前的实施方式的缺点。简要地,IPL 170和虚拟行缓冲区160被配置成允许在没有虚拟行缓冲区160中的存储器(例如,SRAM)单元的数目的显著增加的情况下利用多个重叠模版操作对像素数据进行处理。
在这样的方法中,虚拟行缓冲区160可包括具有依赖于IPL 170中的模版大小(而不依赖于由IPL 170处理的重叠模版的数目)的高度的全尺寸缓冲区(例如,其被配置成缓冲全宽度图像行)。该虚拟行缓冲区也可包括具有依赖于正被处理的重叠模版(例如,垂直地和/或水平地重叠)的数目的高度和/或宽度的滑动缓冲区(例如,其被配置成缓冲部分宽度图像行),其中该宽度也可依赖于重叠模版的像素宽度(大小)。
返回到以上示例,如果图像处理级120的IPL 170被配置成一次执行六(K=6)个垂直重叠3×3(S=3)模版操作,则虚拟行缓冲区160可被配置成缓冲两(S-1)个全图像宽度像素数据行和六(K)个至少3(S)像素的部分行。部分行中的像素的数目可取决于用于实现滑动缓冲区的存储器的读写速度和带宽。针对以上示例中的1000×8位像素的图像宽度,虚拟行缓冲区160能包括16018位的SRAM,与64003个位相比,减少了约75%。
另外,诸如行缓冲区160的虚拟行缓冲区的使用可允许通过仅添加具有至少和模版一样宽(或者至少和垂直重叠模版的宽度一样宽)的宽度的像素数据的附加部分行来对附加重叠模版进行处理。在此示例中,利用六个垂直重叠3×3模版操作,可使用至少三个像素的部分排的数据。
因此,与诸如上面所讨论的使用基于模版大小和正被处理的重叠模版的数目的多个全宽度图像行来实现的行缓冲区相比,这样的方法(例如,使用虚拟行缓冲区160)带来用于在给定时间对附加重叠模版进行处理的小存储器增量开销。因此,使用本文中所描述的方法可以允许在虚拟行缓冲区160中使用减少的SRAM容量,实现了静态和动态能量使用的减少,并且对给定ISP也增加了计算容量与行缓冲区存储器容量的比率。
图2是图示根据实施方式的,可被包括在图像处理级——诸如图1B的图像处理级120——之间的虚拟行缓冲区160的操作的框图。例如,图1B的虚拟行缓冲区160可被配置成如关于图2在下面所讨论的那样操作,并且也被配置成如关于图3-6中所图示的示例实施方式所讨论的那样操作。如关于图2(以及图3-6)所讨论的虚拟行缓冲区的操作被作为示例并出于图示的目的而给出。在以下讨论中,视情况而进一步参考图1A和图1B对图2-6进行描述。
在其它实施方式中,可在具有不同的配置的ISP和图像处理级中使用图2-6中所图示的方法。例如,在给定ISP 100中,行缓冲区(例如,虚拟行缓冲区160)中的每一个可具有类似的配置,然而在其它实施方式中,ISP中的行缓冲区中的每一个(或其中至少一些)可具有不同的配置。例如,在一些实施方式中,ISP 100中的行缓冲区中的每一个(或其中至少一些)可基于公共模版大小而操作,并且也与IPL 170结合来操作,所述IPL 170均被配置(或者至少一些被配置)成一次执行公共数目的重叠模版操作。在其它实施方式中,ISP 100中的行缓冲区中的每一个(或至少一些)可基于不同的模版大小而操作,和/或与均(或者其中至少一些)被配置成一次执行不同数目的重叠模版操作的IPL 170相结合地操作。针对给定ISP的行缓冲区和IPL级的特定配置将取决于特定实施方式。
在图2中,图示了将由包括虚拟行缓冲区160的图像处理级120处理的图像的图像帧200。如图2中所示,图像帧200具有W个像素的宽度和H个像素的高度。在此示例中,图像帧200可被认为与高分辨率(照片或视频)图像相对应,其中W和H二者均大于或者等于1000。在一些实施方式中,W可等于H,然而在其它实施方式中W和H可具有不同的值。
在图2的示例中,与图像帧200相对应的图像可由被配置成对与该图像相对应的像素数据执行图像处理内核(例如,特定卷积函数)的IPL 170(例如,被包括在ISP 100中)来处理。IPL 170可从ISP 100的前一(生产者)级接收输入像素流并且(按照光栅扫描次序)应用其图像处理内核以使用K个S×S像素的垂直重叠模版来在K个像素的垂直片中生成输出像素数据流。在一个实施方式中,K可大于1并且小于H,S可大于或者等于2,并且W可大于S。
在关联ISP的其它图像处理级中,另一IPL集能从ISP 100的前一级接收输入像素流并且(按照光栅扫描次序)应用不同的图像处理内核以使用L个T×T像素的垂直重叠模版来在L个像素的垂直片中生成输出像素数据。在一个实施方式中,L可大于1并且小于H,T可大于或者等于2,并且W可大于T。在一些实施方式中,K可等于L,然而在其它实施方式中,K具有与L不同的值。同样地,在某些实施方式中,S可等于T,然而在其它实施方式中,S可具有与T不同的值。
图2在特定示例中引用这些变量(K、L、S和T)中的每一个。在图2的示例中,K和L的值二者皆是6,并且S和T的值二者皆是3。然而,将了解的是在其它实施方式中,K、L、S和/或T可具有除图2中所图示的那些值外的其它值,并且图2中所示的布置仅仅被作为示例并出于图示的目的而给出。在以下讨论中,将参考图2描述图2中所图示的方法,其中关联IPL使用具有3×3(S=3)像素的模版大小的K=6个垂直重叠模版来对图像数据进行处理,这与图2的所示示例一致。
在图2中,与图像帧200相关联的图像数据的像素数据的处理使用虚拟行缓冲区160来图示。虚拟行缓冲区160可被配置成缓冲输入像素数据流以供由诸如上面所讨论的关联IPL处理。如图2中所示,虚拟行缓冲区160可包括宽度为W个像素的像素储存器且高度为2排(S-1)的全尺寸缓冲区162,从而产生虚拟行存储器160,在此示例中,包括用于两个全图像宽度排的存储器。
同样如图2中所示,虚拟行缓冲区160也可包括滑动缓冲区164。在此示例实施方式中,滑动缓冲区164可具有SB(或者对使用例如宽度T的模版的IPL的其它级而言为TB)的宽度。同样如图2中所示,滑动缓冲区164可具有K个部分排的高度,其在此示例中为六个像素高,SB可大于或者等于S(S在此示例中可以是3或更多)并且小于W。因此,此示例中的滑动缓冲区164可被实现成均为至少3(SB或TB)个像素宽的六(K或L,视情况)个部分图像像素数据排(例如,使用18个像素,即对于8位像素占据18×8个SRAM单元,如上面所讨论的)。SB(或视情况而定为TB)的值可以至少部分地取决于用于实现滑动缓冲区164(例如,作为先进先出(FIFO)缓冲区)的SRAM的读写速率。
当对与图2的图像帧200相关联的图像数据进行处理时,与虚拟行缓冲区160相结合的关联IPL 170可被配置成在K个像素的垂直片中产生输出像素数据流,其中K个像素的垂直片(其均可被称为片或输出片)被按照光栅扫描次序产生。IPL级计算给定片的像素的次序可以是修改的光栅次序,诸如给定块或片内的光栅次序。在一个实施方式中,每当像素的片(输入片)被从虚拟行缓冲区160移动到关联IPL 170的电路时,K个输出像素的列(输出片)被写入到下一(消费者)级(诸如写入到随后图像处理级120的行缓冲区)。输出片的图像宽度宽的排可被称为片排(slice-row)。
概括图2中所图示的方法,如果消费者(例如,IPL 170)被配置成在K个像素的列中产生输出片,则向消费者提供输入像素流的生产者将产生(S-1)个全图像宽度行(排),其中使用S×S的模版,并且然后在消费者级可开始对作为消费者的输入像素流的生产者的输出像素流进行处理之前产生至少S个像素的K个更多的部分排。换言之,在这样的方法中,虚拟行缓冲区160中的第S行至第(S+(K-1))行不需要为全行。替代地,那些行可简单地包括具有高度K(或L,如上面所指出的)和大于或者等于SB(或TB,如上面所指出的)的宽度的小窗口(例如,滑动缓冲区164)。
(S-1个全图像宽度像素数据行的)全尺寸缓冲区可被用作循环缓冲区以持续地缓冲在连续片排光栅之间重用的重叠的(S-1)个全图像宽度像素数据行。换言之,滑动缓冲区的最后S-1排(在它们正由IPL处理以产生对应的输出片之后)可被写入到全尺寸缓冲区162,从而覆写已经使用的且不再需要的像素数据。另外,滑动缓冲区164可用于缓冲来自ISP 100的前一(生产者)级(例如,图像处理级120)的输出像素数据。然后,来自生产者的经缓冲的输出像素数据可由消费者IPL 170消费以产生对应的输出片,同时此过程重复以对与图像帧200相关联的整个图像进行处理。
在一个实施方式中,可如下来完成关于图2所描述的图1的ISP 100的初始化,其中该ISP被实现有虚拟行缓冲区160)。首先,全尺寸缓冲区162的(S-1)个像素数据行可由前一(生产者)级填充(例如,当S×S的模版被使用时)。然后,生产者级(例如,计算内核)一次可在K个像素(在上面所讨论的示例中为6个像素)的单个列中将像素数据写入到滑动缓冲区164中。在滑动缓冲区164中一有S(3)列的像素可用,消费者计算内核就可开始对被缓冲在其虚拟行缓冲区160中的图像数据进行处理,所述S(3)列在此示例中等同于消费者级的模版宽度。
在一些实施方式中,对片排内的像素片的处理可按照顺序光栅扫描次序,然而可按照任何次序进行对给定片中的像素的处理。因此,如先前指示的,可使用例如定制FIFO存储器来实现滑动缓冲区164,但是其它方法是可能的。每当像素的新列(输出片)由生产者级产生时,可将该输出片插入在与该生产者级相关联的消费者级(例如,下一图像处理级)的滑动缓冲区164末尾。如先前讨论的,可基于级输出片宽度以及滑动缓冲区164的写入和读取速率来确定用于给定图像处理级的滑动缓冲区164的宽度。然而,滑动缓冲区164的宽度(SB或TB)可以比通过图像帧200的宽度所确定的全尺寸缓冲区162的宽度小至少一个数量级。
使用这样的方法来实现包括诸如图1B和图2中所图示的虚拟行缓冲区160的ISP100具有多个好处。例如,全尺寸缓冲区162中的图像像素数据行的数目是(S-1),其依赖于由关联IPL 170使用的模版大小。全尺寸缓冲区162中的图像像素数据行的数目与被处理以产生输出片的垂直模版的数目无关,这使这样的方法变得高度可扩缩。例如,添加附加重叠模版可通过在滑动缓冲区164中添加等效数目的部分排(和/或列)来完成。这样的方法的另一好处是,因为滑动缓冲区164的宽度比全尺寸缓冲区162的宽度小得多,所以与行缓冲区中的所有排(除单个部分排之外)的宽度与图像帧宽度相同的方法相比用于实现虚拟行缓冲区的存储器的量可显著地减少。
图3是图示根据实施方式的,可使用包括虚拟行缓冲区160的图像处理级120来产生的两个连续片排的图。出于图示的目的,将进一步视情况参考图1A、图1B和图2来描述图3。然而,可在具有其它布置的ISP、图像处理级和行缓冲区中实现图3中所图示的方法。
图3图示当使用光栅扫描次序迭代来产生两个连续片排210和220时被缓冲在虚拟行缓冲区160中的示例全图像宽度像素数据排。在第一扫描期间,工作片(滑动缓冲区164)可左向右移动并且由消费者计算内核一个K像素的片接着另一个地消费。当工作片(滑动缓冲区164)到达片排210的末尾时,将已经计算W×K(或W×L)个输出像素并且完成对整个片排210(具有W的宽度)的计算。
在完成对片排210的计算之后,可针对第二片排220重复相同的过程。如图3中所示,在第一片排210与第二片排220之间存在(S-1)个重叠图像行230,其中S×S表示在用于产生片排210和220的光栅扫描中使用的模版大小。(S-1)重叠排的原因在于第一片排210的最后(S-1)个图像行被重用来计算第二片排220中的像素。
图4是图示根据实施方式的,用于实现与使用包括诸如本文中所描述的那些行缓冲区的虚拟行缓冲区160的图像处理级的图像信号处理相关联的像素数据的读取操作和写入操作的方法的图。图4中所示的操作被作为示例并出于图示的目的而给出,并且其它方法是可能的。例如,能按照多个适当的次序执行读写操作的次序。在其它实施方式中,可对与关于图4所讨论的那些大小不同的像素数据的块执行读取操作和写入操作。在另外其它的实施方式中,传送像素数据能使用其它方法来进行。
在图4中,相应的操作通过用‘A’、‘B’、‘C’和‘D’引用的箭头来标明,所述相应的操作将在以下讨论中分别被称为操作A、操作B、操作C和操作D。出于以下讨论的目的,将进一步视情况参考图1A、图1B、图2和图3来描述图4中所图示的方法。然而,将了解的是,可连同具有其它配置的ISP一起来使用这样的方法。
在图4的示例方法中,操作A与将像素数据写入到虚拟缓冲区160的滑动缓冲区164中相对应。在一个实施方式(例如,其中J个重叠垂直S×S模版由消费者内核处理)中,生产者计算内核410可将输出像素以一次J个像素的列的方式写入到与消费者计算内核420相关联的滑动缓冲区164。图4中的操作B对应于消费者计算机内核420从虚拟行缓冲区160读取像素数据以用于处理(例如,以执行内核的模版操作、以应用对应的IPL的图像处理功能、以执行给定数据处理功能等)。
在此示例中,消费者计算内核420可按照一次J个像素的列从滑动缓冲区164读取像素(像素数据)以用于计算(处理),所述J个像素的列变成消费者内核420的输入片的最后J排(与来自(S-1)排全尺寸缓冲区162的像素数据组合)。
在图4中,操作C与将像素数据写入到消费者内核420的虚拟行缓冲区160的全尺寸缓冲区162中相对应。在此方法中,全尺寸缓冲区162可作为循环缓冲区被实现。在这样的实施方式中,一旦全尺寸缓冲区162中的一组像素的数据由消费者计算内核420消费(读取),该数据(在全尺寸缓冲区162中)就可被与滑动缓冲区的最后(S-1)排166中的像素相对应的像素数据覆写。换言之,可用来自滑动缓冲区164的最后(S-1)行166的像素数据连续地更新全尺寸缓冲区162,其中最后(S-1)行166的像素数据被写入到全尺寸缓冲区162,从而在它已经由消费者计算内核420读取(消费)之后覆写先前缓冲的像素数据。
图4的操作D与消费者计算内核420从全尺寸缓冲区162读取像素数据相对应。在此实施方式中,消费者计算内核420可读取例如与从滑动缓冲区164读取的J个像素垂直地对准的像素的(S-1)行像素数据。在这样的方法中,从全尺寸缓冲区162读取的像素数据的前(S-1)排可由消费者计算内核用作其输入片的前(S-1)行(与从滑动缓冲区读取并且与从全尺寸缓冲区162读取的(S-1)行垂直地对准的J行组合)。
图5是图示根据实施方式的,可被包括在图像处理级中的另一虚拟行缓冲区164的操作的图。使用图5中所图示的方法,可一次对多于一个水平模版进行处理,以便改进图像信号数据处理吞吐量。换言之,可使用图5中所图示的方法来同时对垂直重叠模板和水平重叠模版二者进行处理。
在这样的方法中,可增加滑动缓冲区164的宽度以为给定图像处理级120缓冲输入像素数据流的像素的更宽片。为了防止对图像处理吞吐量的不利影响,这样的方法可以利用比例如关于图2所图示的方法更多的计算资源(例如,以便针对水平重叠模版和垂直重叠模版二者在相同时间量内计算更多的像素)。这样的方法为了不对图像信号处理吞吐量有不利影响,也可以导致滑动缓冲区164和全尺寸缓冲区162的期望读写带宽的增加。
在图5中,示出了单个3×3(S×S)模版168以供参考。在此示例中,滑动缓冲区164可(与缓冲在全尺寸缓冲区162和关联IPL 170中的(S-1)行像素数据相结合)用于对K个垂直重叠模版的J个水平重叠列的像素进行处理。换言之,与图像帧200相关联的图像的(K+(S-1))×(J+(S-1))个像素的图像数据可作为片被处理以产生高度为K个像素且宽度为J个像素的输出片。在此示例中,K=6并且J=2。在其它实施方式中,K和J可具有不同的值。例如,在一些实施方式中,K和J的值可以是相等的。在这样的方法中,K和J可大于1并且小于H,S可大于或者等于2,并且W可大于S。
如图5中所示,在此实施方式中,虚拟行缓冲区160可包括宽度为W且高度为(S-1)个数据像素行的全尺寸缓冲区162。图5的虚拟行缓冲区160也可包括宽度为SB且高度为K的滑动缓冲区164,其中SB大于或者等于S+(J-1)并且小于W。在此示例中,SB大于或者等于4,例如J=2并且S等于3。
可在图1A的ISP 100的图像处理级120中包括如关于图5所描述的虚拟行缓冲区160。ISP的其它图像处理级可包括使用K×(J+S-1)滑动缓冲区164来同样地为图像帧200的图像产生K×J个输出像素片的行缓冲区。在其它实施方式中,可使用具有其它配置的行缓冲区(诸如本文中所描述的那些)来实现ISP 100的其它图像处理级,例如,其中那些图像处理级产生不是K×J个像素的输出像素数据片。与本文中所描述的其它方法一样,图5的虚拟行缓冲区160可用于通过按照光栅扫描次序(从左向右和自顶向下)为图像帧200的图像产生输出像素片来产生片排。
图6是图示根据实施例的,使用不同的模版大小的连续图像处理级的虚拟行缓冲区的操作的图。如上面已经指出的,生产者计算内核和关联消费者计算内核的模版大小不必是相同的。换言之,模版大小及由生产者计算内核写入到消费者计算内核的行缓冲区的对应的像素输出片(图6中的片164a和164b)的宽度(和高度)以及由消费者计算内核从其行缓冲区读取的输入像素片(图6中的片165)的宽度(和高度)可以是不同的。应对这样的情况可能需要比生产者级的输出像素片和关联消费者级的输入像素片为相同大小的方法更复杂的行缓冲区FIFO控制逻辑。这样的控制逻辑的细节将取决于特定实施方式。
在图6的示例中,来自生产者级的输出片比消费者级的输入片165更高且更窄。在此示例中,生产者级可以产生高度为K且宽度为S或SB的输出片(例如,SB也可以是用于生产者级的滑动缓冲区的宽度)。消费者级可以读取高度为L且宽度为T或TB的输入片(例如,TB也可以是用于消费者级的滑动缓冲区的宽度)。在这样的方法中,消费者级可仅在输出片164a和164b两者已经由生产者写入到消费者的行缓冲区之后开始对其输入片165进行处理。
在一个一般方面中,一种装置可包括图像处理逻辑(IPL),所述IPL被配置成对与宽度为W个像素且高度为H个像素的图像相对应的像素数据执行图像处理操作以使用K个S×S像素的垂直重叠模板来在K个像素的垂直片中产生输出像素数据,其中K大于1并且小于H,S大于或者等于2,并且W大于S。所述装置也可包括与所述IPL操作地耦合的行缓冲区,所述行缓冲区被配置成为所述IPL缓冲像素数据。所述行缓冲区可包括宽度为W且高度为(S-1)的全尺寸缓冲区。所述行缓冲区也可包括宽度为SB且高度为K的滑动缓冲区,SB大于或者等于S并且小于W。
示例实施方式可包括以下特征中的一个或多个。例如,所述IPL可被配置成按照光栅次序产生所述输出像素数据的垂直片。所述IPL的图像处理功能可以是可编程的。所述IPL的图像处理功能可以是固定的。
所述IPL可以是第一IPL,所述行缓冲区可以是第一行缓冲区,所述图像处理操作可以是第一图像处理操作并且所述输出像素数据可以是第一输出像素数据。所述装置可包括第二IPL,所述第二IPL被配置成对所述第一输出像素数据执行第二图像处理操作以使用L个T×T像素的重叠模版来在L个像素的垂直片中产生第二输出像素数据,L大于1并且小于H,T大于或者等于2。所述装置可包括操作地耦合在所述第一IPL与所述第二IPL之间的第二行缓冲区,所述第二行缓冲区被配置成为所述第二IPL缓冲所述第一输出像素数据。所述全尺寸缓冲区可以是第一全尺寸缓冲区并且所述滑动缓冲区可以是第一滑动缓冲区。所述第二行缓冲区可包括宽度为W且高度为(T-1)的第二全尺寸缓冲区以及宽度为TB且高度为L的第二滑动缓冲区,TB大于或者等于T并且小于W。L可等于K并且T可等于S。L可不等于K并且T可不等于S。
所述装置可包括与所述行缓冲区操作地耦合的图像数据源。所述图像数据源可被配置成存储与所述图像相对应的像素数据。W可比S大至少一个数量级。所述全尺寸缓冲区可包括循环数据缓冲区。所述滑动缓冲区可包括先进先出(FIFO)数据缓冲区。
在另一一般方面中,一种装置可包括图像处理逻辑(IPL),所述IPL被配置成对与宽度为W个像素且高度为H个像素的图像相对应的像素数据执行图像处理操作以使用K×J个S×S像素的重叠模版来在高度为K个像素且宽度为J个像素的片中产生输出像素数据。K和J大于1并且小于H,S大于或者等于2,并且W大于S。所述装置也可包括与所述IPL操作地耦合的行缓冲区,所述行缓冲区被配置成为所述IPL缓冲像素数据。所述行缓冲区可包括宽度为W且高度为(S-1)的全尺寸缓冲区以及宽度为SB且高度为K的滑动缓冲区,SB大于或者等于S+(J-1)并且小于W。
示例实施方式可包括以下特征中的一个或多个。例如,所述IPL可以是第一IPL,所述行缓冲区可以是第一行缓冲区,所述图像处理操作可以是第一图像处理操作并且所述输出像素数据可以是第一输出像素数据。所述装置可包括:第二IPL,被配置成对所述第一输出像素数据执行第二图像处理操作以产生第二输出像素数据片;以及第二行缓冲区,操作地耦合在所述第一IPL与所述第二IPL之间,所述第二行缓冲区被配置成为第二IPL缓冲第一输出像素数据。由所述第二IPL产生的所述第二输出像素数据片中的片可具有K的高度和J的宽度。由所述第二IPL产生的所述第二输出像素数据片中的片可具有不等于K的高度和不等于J的宽度。所述IPL可被配置成按照光栅次序产生所述输出像素数据的所述片。
在另一一般方面中,图像信号处理器(ISP)可包括图像数据源,所述图像数据源被配置成缓冲与宽度为W个像素且高度为H个像素的图像相对应的像素数据。所述ISP也可包括具有第一图像处理逻辑(IPL)的第一图像处理级,所述第一IPL被配置成对与宽度为W个像素且高度为H个像素的图像相对应的像素数据执行第一图像处理操作以使用K个S×S像素的垂直重叠模板来在K个像素的垂直片中产生第一输出像素数据,K大于1并且小于H,S大于或者等于2,并且W大于S。所述第一图像处理级也可包括与所述第一IPL操作地耦合的第一行缓冲区,所述第一行缓冲区被配置成为所述第一IPL缓冲像素数据。所述第一行缓冲区可包括宽度为W且高度为(S-1)的第一全尺寸缓冲区以及宽度为SB且高度为K的第一滑动缓冲区,SB大于或者等于S并且小于W。所述ISP还可包括具有第二IPL的第二图像处理级,所述第二IPL被配置成对所述第一输出像素数据执行第二图像处理操作以使用L个T×T像素的重叠模版来在L个像素的垂直片中产生第二输出像素数据,L大于1并且小于H,T大于或者等于2。所述第二图像处理级也可包括操作地耦合在所述第一IPL与所述第二IPL之间的第二行缓冲区,所述第二行缓冲区被配置成为所述第二IPL缓冲所述第一输出像素数据。
示例实施方式可包括以下特征中的一个或多个。例如,所述第二行缓冲区可包括宽度为W且高度为(T-1)的第二全尺寸缓冲区以及宽度为TB且高度为L的第二滑动缓冲区,TB大于或者等于T并且小于W。T可等于S,并且L可等于K。
计算设备700包括处理器702、存储器704、存储设备706、连接到存储器704和高速扩展端口710的高速接口708、以及连接到低速总线714和存储设备706的低速接口712。组件702、704、706、708、710、和712中的每一个使用各种总线来互连,并且可以被安装在公共主板上或者视情况以其它方式安装。处理器702可处理在计算设备700内执行的指令,包括存储在存储器704中或在存储设备706上以将GUI的图形信息显示在外部输入/输出设备——诸如耦合到高速接口708的显示器716——上的指令。在其它实施方式中,可以视情况使用多个处理器和/或多条总线连同多个存储器和多种类型的存储器。另外,可以连接多个计算设备700,其中每个设备提供必要操作的一部分(例如,作为服务器组、刀片服务器的群组、或多处理器系统)。
存储器704存储计算设备700内的信息。在一个实施方式中,存储器704是一个或多个易失性存储器单元。在另一实施方式中,存储器704是一个或多个非易失性存储器单元。存储器704还可以是另一形式的计算机可读介质,诸如磁盘或光盘。
存储设备706能够为计算设备700提供大容量存储。在一个实施方式中,存储设备706可以是或者包含:计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备;闪速存储器或其它类似的固态存储器设备;或设备阵列,包括存储区域网络或其它配置中的设备。计算机程序产品可用信息载体有形地实施。计算机程序产品也可以包含指令,所述指令在被执行时执行一个或多个方法,诸如上述的那些方法。信息载体是计算机可读介质或机器可读介质,诸如存储器704、存储设备706、或处理器702上的存储器。
高速控制器708管理计算设备700的带宽密集型操作,而低速控制器712管理较低带宽密集型操作。这样的功能分配仅是示例性的。在一个实施方式中,高速控制器708耦合到存储器704、显示器716(例如,通过图形处理器或加速器),并且耦合到高速扩展端口710,该高速扩展端口710可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器712耦合到存储设备706和低速扩展端口714。可以包括各种通信端口(例如,USB、
Figure GDA0002814349550000231
以太网、无线以太网)的低速扩展端口可以耦合到一个或多个输入/输出设备——诸如键盘、指示设备、扫描器,或例如通过网络适配器耦合到诸如交换机或路由器的联网设备。
如该图中所示,可以以多个不同的形式实现计算设备700。例如,它可以作为标准服务器720被实现,或在这样的服务器群组中多次实现。它还可以作为机架式服务器系统724的一部分被实现。此外,它可以被实现在诸如膝上型计算机722的个人计算机中。替选地,来自计算设备700的组件可以与诸如设备750的移动设备(未示出)中的其它组件组合。这样的设备中的每一个可以包含计算设备700、750中的一个或多个,并且整个系统可以由彼此通信的多个计算设备700、750组成。
除其它组件之外,计算设备750还包括处理器752、存储器764、输入/输出设备——诸如显示器754、通信接口766、和收发器768。设备750也可以被设置有存储设备——诸如微型驱动器或其它设备——以提供附加储存器。组件750、752、764、754、766和768中的每一个都使用各种总线来互连,并且所述组件中的若干个可以被安装在公共主板上或者视情况以其它方式安装。
处理器752可执行计算设备750内的指令,包括存储在存储器764中的指令。处理器可以作为包括单独的和多个模拟和数字处理器的芯片的芯片组被实现。例如,处理器可以提供对设备750的其它组件的协调,诸如对用户界面、由设备750运行的应用、以及设备750所进行的无线通信的控制。
处理器752可以通过耦合到显示器754的控制接口758和显示接口756来与用户进行通信。例如,显示器754可以是TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其它适当的显示技术。显示接口756可以包括用于驱动显示器754以向用户呈现图形和其它信息的适当电路。控制接口758可以接收来自用户的命令并且对它们进行转换以用于提交给处理器752。此外,外部接口762可以被设置为与处理器752通信,以便实现设备750与其它设备的近区域通信。例如,外部接口762可以在一些实施方式中提供有线通信,或者在其它实施方式中提供无线通信,并且还可以使用多个接口。
存储器764存储计算设备750内的信息。存储器764可以作为一个或多个计算机可读介质、一个或多个易失性存储器单元、或者一个或多个非易失性存储器单元中的一个或多个被实现。扩展存储器774也可以通过扩展接口772来提供并连接到设备750,所述扩展接口772可以包括例如SIMM(单列直插内存模块)卡接口。这样的扩展存储器774可以为设备750提供额外的存储空间,或者也可以存储设备750的应用或其它信息。具体地,扩展存储器774可以包括用于执行或者补充上述的过程的指令,并且也可以包括安全信息。因此,例如,扩展存储器774可以作为设备750的安全模块被提供,并且可以被编程有许可对设备750的安全使用的指令。此外,可以经由SIMM卡连同附加信息一起提供安全应用,诸如以不可非法侵入的方式将识别信息放置在SIMM卡上。
如在下面所讨论的,例如,存储器可以包括闪速存储器和/或NVRAM存储器。在一个实施方式中,计算机程序产品用信息载体来有形地具体实施。该计算机程序产品包含指令,所述指令当被执行时执行一个或多个方法,诸如上述的那些方法。该信息载体是可以例如通过收发器768或外部接口762接收的计算机可读介质或机器可读介质,诸如存储器764、扩展存储器774、或处理器752上的存储器。
设备750可以通过通信接口766以无线方式通信,所述通信接口766必要时可以包括数字信号处理电路。通信接口766可以提供在各种模式或协议下的通信,所述各种模式或协议诸如GSM语音呼叫、SMS、EMS、或MMS消息传送、CDMA、TDMA、PDC、WCDMA、CMDA2000、或GPRS等。例如,这样的通信可以通过射频收发器768发生。此外,短距离通信可以诸如使用
Figure GDA0002814349550000251
WiFi或其它这样的收发器(未示出)来发生。此外,GPS(全球定位系统)接收器模块770可以将附加导航相关和位置相关的无线数据提供给设备750,所述无线数据可以视情况由在设备750上运行的应用使用。
设备750也可以使用音频编解码器760可听地通信,所述音频编解码器760可以从用户接收说出的信息并且将它转换为可使用的数字信息。诸如通过例如设备750的送受话器中的扬声器,音频编解码器760可以同样地为用户生成可听声音。这样的声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等),并且也可以包括由在设备750上操作的应用所生成的声音。
如该图中所示,可以以多个不同的形式实现计算设备750。例如,它可以作为蜂窝电话780被实现。它也可以作为智能电话782、个人数字助理、或其它类似的移动设备的一部分被实现。
这里所描述的系统和技术的各种实施方式可用数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件、和/或其组合来实现。这些各种实施方式可包括一个或多个计算机程序中的实施方式,所述一个或多个计算机程序可在包括至少一个可编程处理器、至少一个输入设备、和至少一个输出设备的可编程系统上执行和/或解释,所述至少一个可编程处理器可以是专用的或通用的,其被耦合以从存储系统接收数据和指令,并且向该存储系统传送数据和指令。
这些计算机程序(也被称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可用高级过程编程语言和/或面向对象的编程语言来实现,和/或用汇编/机器语言来实现。如本文中所使用的,术语“机器可读介质”、“计算机可读介质”指代用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),其包括接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指代用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可在计算机上实现这里所描述的系统和技术,所述计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可通过其将输入提供给该计算机的键盘和指示设备(例如,鼠标或轨迹球)。其它种类的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈、或触觉反馈);并且可按照包括声输入、话音输入、或触觉输入的任何形式接收来自用户的输入。
这里所描述的系统和技术可被实现在计算系统中,所述计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可通过其与这里所描述的系统和技术的实施方式交互的图形用户界面或Web浏览器的客户端计算机),或这样的后端组件、中间件组件、或前端组件的任何组合。本系统的组件可通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、和互联网。
计算系统可包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络交互。客户端和服务器的关系依靠在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
已经对多个实施方式进行了描述。然而,将理解的是,可以在不脱离本发明的精神和范围的情况下作出各种修改。
此外,图中所描绘的逻辑流程不要求所示的特定次序或顺序次序来实现所期望的结果。此外,可以提供其它步骤,或者可以从所描述的流程中消除步骤,并且其它组件可以被添加到所描述的系统,或者从所描述的系统中移除。因此,其它实施方式在所附权利要求书的范围内。

Claims (23)

1.一种用于图像处理的装置,包括:
图像处理逻辑IPL,被配置成对与具有W个像素的宽度和H个像素的高度的图像相对应的输入像素数据执行图像处理操作,以使用K个S×S像素的垂直重叠模版来在K个像素的垂直片中产生输出像素数据,K大于1并且小于H,S大于或者等于2,并且W大于S;以及
与所述IPL操作地耦合的行缓冲区,所述行缓冲区被配置成缓冲所述IPL的所述像素数据,其特征在于所述行缓冲区包括:
全尺寸缓冲区,具有W的宽度和S-1的高度;以及
滑动缓冲区,具有SB的宽度和K的高度,SB大于或者等于S并且小于W,
其中,所述图像处理操作包括在所述像素数据上的、所述模版的连续的多个扫描,以及
所述连续的多个扫描中的每个扫描对于该扫描的前S-1行使用来自所述全尺寸缓冲区的像素数据作为对模板的输入,并且对于该扫描的其余K行使用来自所述滑动缓冲区的像素数据作为对模板的输入。
2.根据权利要求1所述的装置,其中,所述IPL是第一IPL,所述行缓冲区是第一行缓冲区,所述图像处理操作是第一图像处理操作并且所述输出像素数据是第一输出像素数据,所述装置进一步包括:
第二IPL,被配置成对所述第一输出像素数据执行第二图像处理操作,以使用L个T×T像素的重叠模版来在L个像素的垂直片中产生第二输出像素数据,L大于1并且小于H,T大于或者等于2;以及
第二行缓冲区,所述第二行缓冲区操作地耦合在所述第一IPL与所述第二IPL之间,所述第二行缓冲区被配置成缓冲所述第二IPL的所述第一输出像素数据。
3.根据权利要求2所述的装置,其中,所述全尺寸缓冲区是第一全尺寸缓冲区并且所述滑动缓冲区是第一滑动缓冲区,所述第二行缓冲区包括:
第二全尺寸缓冲区,具有W的宽度和T-1的高度;以及
第二滑动缓冲区,具有TB的宽度和L的高度,TB大于或者等于T并且小于W。
4.根据权利要求3所述的装置,其中,L等于K并且T等于S。
5.根据权利要求1-4中的任一项所述的装置,所述装置被布置来使得所述多个扫描中的每个扫描将该扫描的像素数据的最后S-1行写入所述全尺寸缓冲区以供重用作接续的扫描的前S-1行。
6.根据权利要求1-4中的任一项所述的装置,其中,所述全尺寸缓冲区被用作循环缓冲区来在当前扫描期间不再被需要时持续地接收来自所述滑动缓冲区的最后S-1行的像素数据,以供重用作接续的扫描的前S-1行的像素数据。
7.根据权利要求1-4中的任一项所述的装置,其中,所述图像处理操作是按照顺序光栅扫描次序来在所述像素数据上的、所述模版的连续的每个扫描期间进行的。
8.根据权利要求1-4中的任一项所述的装置,其中,所述IPL被配置成按照光栅次序产生所述输出像素数据的垂直片。
9.根据权利要求1-4中的任一项所述的装置,其中,所述IPL的图像处理功能是以下中的一个:能够编程的和固定的。
10.根据权利要求1-4中的任一项所述的装置,进一步包括与所述行缓冲区操作地耦合的图像数据源,所述图像数据源被配置成缓冲与所述图像相对应的像素数据。
11.根据权利要求1-4中的任一项所述的装置,其中,所述全尺寸缓冲区包括循环数据缓冲区。
12.根据权利要求1-4中的任一项所述的装置,其中,所述滑动缓冲区包括先进先出(FIFO)数据缓冲区。
13.一种用于图像处理的装置,包括:
图像处理逻辑IPL,被配置成对与具有W个像素的宽度和H个像素的高度的图像相对应的像素数据执行图像处理操作,以使用K×J个S×S像素的重叠模版来在具有K个像素的高度和J个像素的宽度的片中产生输出像素数据,K和J大于1并且小于H,S大于或者等于2,并且W大于S;以及
与所述IPL操作地耦合的行缓冲区,所述行缓冲区被配置成缓冲所述IPL的所述像素数据,其特征在于所述行缓冲区包括:
全尺寸缓冲区,具有W的宽度和S-1的高度;以及
滑动缓冲区,具有SB的宽度和K的高度,SB大于或者等于S+(J-1)并且小于W,
其中,所述图像处理操作包括在所述像素数据上的、所述模版的连续的多个扫描,以及
所述连续的多个扫描中的每个扫描对于该扫描的前S-1行使用来自所述全尺寸缓冲区的像素数据作为对模板的输入,并且对于该扫描的其余K行使用来自所述滑动缓冲区的像素数据作为对模板的输入。
14.根据权利要求13所述的装置,其中,所述IPL是第一IPL,所述行缓冲区是第一行缓冲区,所述图像处理操作是第一图像处理操作并且所述输出像素数据是第一输出像素数据,所述装置进一步包括:
第二IPL,被配置成对所述第一输出像素数据执行第二图像处理操作以产生第二输出像素数据片;以及
第二行缓冲区,所述第二行缓冲区操作地耦合在所述第一IPL与所述第二IPL之间,所述第二行缓冲区被配置成缓冲所述第二IPL的所述第一输出像素数据。
15.根据权利要求14所述的装置,其中,由所述第二IPL产生的所述第二输出像素数据片中的片具有K的高度和J的宽度。
16.根据权利要求13-15中的任一项所述的装置,所述装置被布置来使得所述多个扫描中的每个扫描将该扫描的像素数据的最后S-1行写入所述全尺寸缓冲区以供重用作接续的扫描的前S-1行。
17.根据权利要求13-15中的任一项所述的装置,其中,所述全尺寸缓冲区被用作循环缓冲区来在当前扫描期间不再被需要时持续地接收来自所述滑动缓冲区的最后S-1行的像素数据,以供重用作接续的扫描的前S-1行的像素数据。
18.根据权利要求13-15中的任一项所述的装置,其中,所述图像处理操作是按照顺序光栅扫描次序来在所述像素数据上的、所述模版的连续的每个扫描期间进行的。
19.根据权利要求13-15中的任一项所述的装置,其中,所述IPL被配置成按照光栅次序产生所述输出像素数据的所述片。
20.根据权利要求13-15中的任一项所述的装置,其中,所述IPL的图像处理功能是以下中的一个:能够编程的和固定的。
21.根据权利要求13-15中的任一项所述的装置,进一步包括与所述行缓冲区操作地耦合的图像数据源,所述图像数据源被配置成缓冲与所述图像相对应的像素数据。
22.根据权利要求13-15中的任一项所述的装置,其特征在于以下中的至少一项:所述全尺寸缓冲区包括循环数据缓冲区;以及所述滑动缓冲区包括先进先出(FIFO)数据缓冲区。
23.一种图像信号处理器ISP,包括:
图像数据源,被配置成缓冲与具有W个像素的宽度和H个像素的高度的图像相对应的像素数据;以及
根据权利要求1-22中的任一项所述的装置,所述装置被布置来对所述图像的所述像素数据执行图像处理。
CN201580076696.9A 2015-01-22 2015-12-14 用于图像信号处理器的虚拟行缓冲区 Active CN107430759B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110147151.XA CN112801852B (zh) 2015-01-22 2015-12-14 处理器和用于图像处理的方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/603,354 2015-01-22
US14/603,354 US9749548B2 (en) 2015-01-22 2015-01-22 Virtual linebuffers for image signal processors
PCT/US2015/065564 WO2016118251A1 (en) 2015-01-22 2015-12-14 Virtual linebuffers for image signal processors

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110147151.XA Division CN112801852B (zh) 2015-01-22 2015-12-14 处理器和用于图像处理的方法

Publications (2)

Publication Number Publication Date
CN107430759A CN107430759A (zh) 2017-12-01
CN107430759B true CN107430759B (zh) 2021-02-09

Family

ID=55229810

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110147151.XA Active CN112801852B (zh) 2015-01-22 2015-12-14 处理器和用于图像处理的方法
CN201580076696.9A Active CN107430759B (zh) 2015-01-22 2015-12-14 用于图像信号处理器的虚拟行缓冲区

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110147151.XA Active CN112801852B (zh) 2015-01-22 2015-12-14 处理器和用于图像处理的方法

Country Status (8)

Country Link
US (4) US9749548B2 (zh)
EP (2) EP3667607B1 (zh)
JP (2) JP6415734B2 (zh)
KR (1) KR101972250B1 (zh)
CN (2) CN112801852B (zh)
DE (1) DE112015006042T5 (zh)
GB (2) GB2551922B (zh)
WO (1) WO2016118251A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
US9772852B2 (en) 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US10095479B2 (en) * 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US9785423B2 (en) 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
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
US10204396B2 (en) 2016-02-26 2019-02-12 Google Llc Compiler managed memory 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
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
US20180005059A1 (en) 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
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
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
WO2019010183A1 (en) * 2017-07-05 2019-01-10 Deep Vision, Inc. PROCESSOR OF DEEP VISION
CN108198125B (zh) * 2017-12-29 2021-10-08 深圳云天励飞技术有限公司 一种图像处理方法及装置
US11513847B2 (en) 2020-03-24 2022-11-29 Deep Vision Inc. System and method for queuing commands in a deep learning processor
KR20210150704A (ko) 2020-06-04 2021-12-13 삼성전자주식회사 라인 인터리빙 컨트롤러 및 이를 포함하는 이미지 신호 프로세서
US20220044386A1 (en) 2020-08-05 2022-02-10 Facebook, Inc. Hardware friendly fixed-point approximations of video quality metrics
CN113709494B (zh) * 2021-06-23 2024-04-09 珠海全志科技股份有限公司 用于超分重建的图像解压缩方法及装置
CN114005395A (zh) * 2021-10-11 2022-02-01 珠海亿智电子科技有限公司 图像实时显示容错系统、方法及芯片

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008192038A (ja) * 2007-02-07 2008-08-21 Mitsubishi Electric Corp 画像前処理装置

Family Cites Families (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1579918A (en) * 1922-01-30 1926-04-06 Goodrich Co B F Apparatus for gauging associated elements
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
FR2634084A1 (fr) 1988-07-08 1990-01-12 Labo Electronique Physique Circuit integre et dispositif de traitement d'images
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
US6049859A (en) 1996-01-15 2000-04-11 Siemens Aktiengesellschaft Image-processing processor
GB2318954B (en) 1996-10-29 2001-05-23 Daewoo Electronics Co Ltd Reed-solomon decoder for use in advanced television
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
JP3593439B2 (ja) * 1997-06-09 2004-11-24 株式会社日立製作所 画像処理装置
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
JP2000251065A (ja) 1999-03-02 2000-09-14 Fuji Xerox Co Ltd 画像処理装置
US6757019B1 (en) 1999-03-13 2004-06-29 The Board Of Trustees Of The Leland Stanford Junior University Low-power parallel processor and imager having peripheral control circuitry
AU2941600A (en) 1999-03-16 2000-10-04 Hamamatsu Photonics K.K. High-speed vision sensor
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
WO2003088033A1 (en) 2002-04-09 2003-10-23 University Of Rochester Multiplier-based processor-in-memory architectures for image and graphics processing
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
GB2395299B (en) 2002-09-17 2006-06-21 Micron Technology Inc Control of processing elements in parallel processors
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
JP4219887B2 (ja) 2004-12-28 2009-02-04 富士通マイクロエレクトロニクス株式会社 画像処理装置及び画像処理方法
CN100527099C (zh) * 2005-02-15 2009-08-12 皇家飞利浦电子股份有限公司 用于提高数据处理设备的存储单元的性能的装置和方法
JP4975016B2 (ja) * 2005-03-21 2012-07-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ サーキュラー・バッファ・メモリを用いて蛇行走査順序でデータ・アレイを処理する方法
CN1319276C (zh) * 2005-04-19 2007-05-30 展讯通信(上海)有限公司 一种减小在线图像压缩数据缓冲区大小的缓冲区读写方法
WO2006114642A1 (en) 2005-04-28 2006-11-02 The University Court Of The University Of Edinburgh Reconfigurable instruction cell array
US7882339B2 (en) 2005-06-23 2011-02-01 Intel Corporation Primitives to enhance thread-level speculation
JP2007034887A (ja) 2005-07-29 2007-02-08 Matsushita Electric Ind Co Ltd ハイレベル合成コンパイラ用のシフトレジスタファイルを自動生成するための方法および装置
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
US7834873B2 (en) 2006-08-25 2010-11-16 Intel Corporation Display processing line buffers incorporating pipeline overlap
US7737986B2 (en) * 2006-08-29 2010-06-15 Texas Instruments Incorporated Methods and systems for tiling video or still image data
US20080111823A1 (en) 2006-11-13 2008-05-15 Faraday Technology Corp. Graphics processing system
EP1927949A1 (en) 2006-12-01 2008-06-04 Thomson Licensing Array of processing elements with local registers
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 株式会社リコー 画像処理装置
WO2009145917A1 (en) 2008-05-30 2009-12-03 Advanced Micro Devices, Inc. Local and global data share
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
KR101572879B1 (ko) 2009-04-29 2015-12-01 삼성전자주식회사 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법
US8626810B2 (en) * 2009-05-15 2014-01-07 Texas Instruments Incorporated Method and system for finite impulse response (FIR) digital filtering
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
JP5185242B2 (ja) * 2009-12-04 2013-04-17 株式会社東芝 コンパイル装置
US8595428B2 (en) 2009-12-22 2013-11-26 Intel Corporation Memory controller functionalities to support data swizzling
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
US8508612B2 (en) 2010-09-30 2013-08-13 Apple Inc. Image signal processor line buffer configuration for processing ram image data
US8797323B2 (en) 2011-01-18 2014-08-05 Intel Corporation Shadowing dynamic volumetric media
WO2012105174A1 (ja) 2011-01-31 2012-08-09 パナソニック株式会社 プログラム生成装置、プログラム生成方法、プロセッサ装置及びマルチプロセッサシステム
US9092267B2 (en) 2011-06-20 2015-07-28 Qualcomm Incorporated Memory sharing in graphics processing unit
US9171239B2 (en) 2011-06-22 2015-10-27 Hewlett-Packard Development Company, L.P. Processing image data strips in columnar regions
US20130027416A1 (en) 2011-07-25 2013-01-31 Karthikeyan Vaithianathan Gather method and apparatus for media processing accelerators
CN102420931B (zh) * 2011-07-26 2013-08-21 西安费斯达自动化工程有限公司 一种基于fpga的全帧率图像处理方法
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
JP2013218654A (ja) * 2012-03-16 2013-10-24 Panasonic Corp 画像処理装置
TWI520598B (zh) 2012-05-23 2016-02-01 晨星半導體股份有限公司 影像處理裝置與影像處理方法
US8953882B2 (en) 2012-05-31 2015-02-10 Apple Inc. Systems and methods for determining noise statistics of image data
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
CN102802038A (zh) * 2012-07-25 2012-11-28 华中科技大学 一种基于并行比特流处理器的二值图像模板匹配系统
US9378181B2 (en) 2012-11-09 2016-06-28 Intel Corporation Scalable computing array
US9058673B2 (en) 2013-03-15 2015-06-16 Oracle International Corporation Image mosaicking using a virtual grid
US8954992B2 (en) 2013-03-15 2015-02-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Distributed and scaled-out network switch and packet processing
US9477999B2 (en) 2013-09-20 2016-10-25 The Board Of Trustees Of The Leland Stanford Junior University Low power programmable image processor
CN104240181B (zh) * 2014-08-29 2017-09-15 中国航天科工集团第三研究院第八三五七研究所 一种垂直滤波器的图像垂直尺寸缩小方法
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
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008192038A (ja) * 2007-02-07 2008-08-21 Mitsubishi Electric Corp 画像前処理装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Halide:A Language and Compiler for Optimizing Parallelism Locality and Recomputation in Image Processing Pipelines;Jonathan Ragan-Kelley 等;《PLDI "13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation》;20130630;第519-530页 *
Optimizing Data Intensive Window-based Image Processing on Reconfigurable Hardware Boards;Haiqian Yu 等;《IEEE Workshop on Signal Processing Systems Design and Implementation》;20060123;第491-496页 *

Also Published As

Publication number Publication date
US20200120287A1 (en) 2020-04-16
US10791284B2 (en) 2020-09-29
US9749548B2 (en) 2017-08-29
JP6415734B2 (ja) 2018-10-31
JP2018512633A (ja) 2018-05-17
CN107430759A (zh) 2017-12-01
WO2016118251A1 (en) 2016-07-28
GB2551922B (en) 2019-10-16
GB201905577D0 (en) 2019-06-05
DE112015006042T5 (de) 2017-11-09
CN112801852B (zh) 2022-05-31
GB201713255D0 (en) 2017-10-04
EP3248171B1 (en) 2020-02-05
US20170206627A1 (en) 2017-07-20
CN112801852A (zh) 2021-05-14
GB2551922A (en) 2018-01-03
US20190238758A1 (en) 2019-08-01
JP2019023900A (ja) 2019-02-14
JP6678218B2 (ja) 2020-04-08
EP3667607B1 (en) 2021-03-31
US10277833B2 (en) 2019-04-30
US10516833B2 (en) 2019-12-24
KR20170106434A (ko) 2017-09-20
GB2571461B (en) 2019-12-18
EP3248171A1 (en) 2017-11-29
EP3667607A1 (en) 2020-06-17
US20160219225A1 (en) 2016-07-28
KR101972250B1 (ko) 2019-04-24
GB2571461A (en) 2019-08-28

Similar Documents

Publication Publication Date Title
CN107430759B (zh) 用于图像信号处理器的虚拟行缓冲区
US20160267111A1 (en) Two-stage vector reduction using two-dimensional and one-dimensional systolic arrays
KR102009166B1 (ko) 영상 데이터 구동 장치, 이를 포함하는 디스플레이 장치, 및 영상 데이터 구동 장치의 구동 방법
KR102500625B1 (ko) 영상 처리 장치, 이를 포함하는 표시 장치 및 이의 영상 처리 방법
JP2011100453A (ja) イメージプロセッサ及びそれを含む電子装置及びイメージプロセッシング方法
US9363412B2 (en) Accelerator circuit and image processing apparatus
US9646570B2 (en) Mechanism for facilitating improved copying of graphics data on computing devices
KR102477932B1 (ko) 표시 장치 및 이를 포함하는 표시 시스템
EP3474224B1 (en) Graphics processing method and device
US10152766B2 (en) Image processor, method, and chipset for increasing intergration and performance of image processing
US10079004B2 (en) Display controller and display system including the same
US20170094190A1 (en) Processing display of digital camera readout with minimal latency
US11176720B2 (en) Computer program, image processing method, and image processing apparatus
US9754352B2 (en) Reconfigurable image scaling circuit
US7034840B2 (en) Method for an image reducing processing circuit
CN114862659A (zh) 图像直方图生成方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant