CN103473735A - 并行缩放器处理 - Google Patents

并行缩放器处理 Download PDF

Info

Publication number
CN103473735A
CN103473735A CN2013101752805A CN201310175280A CN103473735A CN 103473735 A CN103473735 A CN 103473735A CN 2013101752805 A CN2013101752805 A CN 2013101752805A CN 201310175280 A CN201310175280 A CN 201310175280A CN 103473735 A CN103473735 A CN 103473735A
Authority
CN
China
Prior art keywords
pixel
vertical scaler
vertical
horizontal scaling
scaler
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
Application number
CN2013101752805A
Other languages
English (en)
Other versions
CN103473735B (zh
Inventor
B·崔帕西
N·巴伽瓦
C·M·欧科鲁里卡
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN103473735A publication Critical patent/CN103473735A/zh
Application granted granted Critical
Publication of CN103473735B publication Critical patent/CN103473735B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Television Systems (AREA)

Abstract

本公开涉及并行缩放器处理。并行缩放单元,用于同时缩放源图像的多个像素。该缩放单元包括多个垂直缩放器和多个水平缩放器。来自源图像的像素列被提供给多个垂直缩放器,每个垂直缩放器从像素列中选择用于缩放的合适像素。每个垂直缩放器在垂直方向上缩放所选择的像素,然后将经垂直缩放的像素传送到对应的水平缩放器。每个水平缩放器在水平方向上缩放所接收的像素。

Description

并行缩放器处理
技术领域
本发明总体上涉及图形信息处理,尤其涉及用于缩放图像的方法和机制。
背景技术
近年来具有图形处理能力的电子设备变得越来越大众化,主要是因为对于普通消费者而言,这些设备变得越来越可承受。许多的不同元件和功能单元(例如缩放器(scaler)单元)被用于在这些电子设备内执行图形处理。缩放单元或缩放器通常被用来缩放图像或视频帧的尺寸。例如,在一种特定情况下,源图像可以是800×600像素的原始格式大小,并且需要被缩放到1024×768像素以适合特定的显示器类型。通常缩放器每时钟一个像素地串行操作,并且缩放常常包括取出和重取每个像素所需的数据。这种缩放类型是低效的,并且给图形处理系统的存储器施加了过多的压力。
发明内容
在一个实施例中,设想一种包括缩放单元的图形处理系统,其中该缩放单元可包括多个垂直缩放器和水平缩放器。该图形处理系统可包括多级的流水线(pipeline),其中在每级可以执行对源图像的不同类型的处理。可以在源图像被传送到缩放单元之前由一个或多个流水线级对源图像进行处理或操作(例如,旋转)。在一个实施例中,垂直缩放器可以位于缩放单元的前端。垂直缩放器可从旋转单元取出或接收源图像像素,旋转单元可以是图形处理流水线中先于缩放单元的处理级。
在一个实施例中,缩放单元可包括四个垂直缩放器,四个垂直缩放器中的每一个可被配置为在垂直方向上缩放像素。每个垂直缩放器可包括用于执行垂直缩放的多抽头多相滤波器。每个垂直缩放器可包括对应于多抽头多相滤波器的每个抽头的多路复用器,并且该多路复用器可被配置为从提供给垂直缩放器的像素列中选择合适的像素。
每个垂直缩放器的输出可被传送到对应的水平缩放器。水平缩放器可被配置为对从垂直缩放器接收的像素执行水平缩放。在一个实施例中,对于缩放单元中的每个垂直缩放器,可以有一个水平缩放器。每个水平缩放器可包括多抽头多相滤波器和耦合至该多抽头多相滤波器的各个抽头的移位寄存器链。可以通过水平缩放器中的移位寄存器链将对应垂直缩放器输出的每个经垂直缩放的像素进行移位。
在一个实施例中,源图像可被划分为多个片。缩放单元可被配置为逐片地处理源图像。垂直缩放器可取出跨一个或多个片的像素列,从图像左上片的最左边的列开始。然后,在取出该片最左边的列之后,可取出右边的下一列,依此类推,直至到达该片的右侧边缘。接着可以处理左上片下面的片,并且可以在图像内从最左边一列的片往下一直继续这种模式。然后,可以处理右边的下一列的片,并且可继续这种处理直到已经处理完图像的所有列的片。
对本领域普通技术人员而言,结合此处给出的方法的下列详细说明,这些以及其它特征和优点将更加清楚。
附图说明
通过结合附图参照下列描述,可以更透彻地理解这些方法和机制的上述优点和更进一步的优点,其中:
图1是示出了图形处理流水线的一个实施例的框图。
图2是依照一个或多个实施例被划分为多个片的源图像。
图3是依照一个或多个实施例的垂直缩放器的前端的框图。
图4是示出了依照一个或多个实施例的垂直多抽头多相滤波器的框图。
图5是水平多抽头多相滤波器的一个实施例的框图。
图6是工作片集合的一个实施例的框图。
图7是提供给垂直缩放单元的像素列的一个实施例的框图。
图8是在第一遍水平扫描中垂直缩放器对像素的选择的一个实施例的框图。
图9是在第二遍水平扫描中垂直缩放器对像素的选择的一个实施例的框图。
图10是垂直缩放器与水平缩放器之间的连接的一个实施例的框图。
图11是示出了用于缩放源图像的方法的一个实施例的一般化流程图。
图12是示出了用于缩放像素的方法的一个实施例的一般化流程图。
图13是系统的一个实施例的框图。
图14是计算机可读介质的一个实施例的框图。
具体实施方式
在下面的描述中,提出了很多具体细节,以便提供对此处所给出的方法和机制的全面理解。然而,本领域普通技术人员将认识到的是,可以在没有这些具体细节的情况下实现各种实施例。在某些情况下,没有详细示出公知的结构、组件、信号、计算机程序指令和技术,以避免混淆此处所述的方法。可以理解的是,为了示例的简单和清楚起见,附图中示出的元件不必按比例描绘。例如,一些元件的尺寸可能相对于其它元件进行放大。
本说明书包括“一个实施例”的提及。不同上下文中短语“在一个实施例中”的出现未必指的是同样的实施例。特定的特征、结构或特性可以采用与本公开一致的任何适当方式进行组合。此外,按照整个本申请所使用的,词语“可(may)”用作允许的含义(即,意为有可能),而不是强制性的含义(即,意为必须)。同样地,词语“包括”意为包括但不限于此。
术语。下列段落为本公开(包括权利要求)中存在的术语提供定义和/或上下文:
“包括(Comprising)”。这个术语是开放性的。按照权利要求中所使用的,这个术语不妨碍附加的结构或步骤。考虑表述为“一种装置,包括多个垂直缩放器...”的权利要求。这种权利要求不妨碍该装置包括附加的组件(例如,处理器、高速缓存、存储器控制器)。
“被配置为(Configured To)”。各种单元、电路或其他组件可以被描述或主张为“被配置为”执行单个任务或多个任务。在这样的上下文中,“被配置为”用于通过指出单元/电路/组件包括在操作期间执行单个任务或多个任务的结构(例如电路)来隐含结构。因而,即使当规定的单元/电路/组件目前不可操作(例如,未开启)的时候,单元/电路/组件也可以说成是被配置为执行任务。与“被配置为”语言一起使用的单元/电路/组件包括硬件——例如,电路、存储可执行来实现操作的程序指令的存储器等。单元/电路/组件“被配置为”执行一个或多个任务的叙述明确地意指对于单元/电路/组件来说不引用35U.S.C.§112,第6段。此外,“被配置为”可包括通用结构(例如通用电路),其可由软件和/或固件(例如,FPGA或执行软件的通用处理器)操作以便以能够执行一个或多个所涉及的任务的方式进行操作。“被配置为”也可以包括修改制造过程(例如,半导体制造设备),以制造适于实现或执行一个或多个任务的器件(例如,集成电路)。
“基于(Based On)”。如此处使用的,这个术语用于描述影响确定的一个或多个因素。这个术语不妨碍可能影响确定的附加因素。也就是说,确定可以仅仅基于那些因素或至少部分基于那些因素。考虑短语“基于B确定A”。虽然B是影响A的确定的因素,但是这一短语不妨碍还基于C来确定A。在其它情况下,可以仅仅基于B确定A。
现在参考图1,示出了图形处理流水线的一个实施例的框图。在各种实施例中,流水线10可以被并入芯片上系统(SoC)、专用集成电路(ASIC)、装置、处理器、处理器核或任何各种其他类似设备中。在一些实施例中,流水线10的一个或多个实例可以被包括在SoC或其他设备内。
源图像34可以被存储在存储器12中,并且源图像34可以是静态图像或是视频流的帧。在其它实施例中,源图像34可以被存储在其他位置。源图像34表示可以被存储在存储器12中并由流水线10处理的任意数目的图像、视频或图形数据。存储器12表示任意数目和类型的存储器设备(例如,动态随机存取存储器(DRAM),高速缓存)。
源图像34可以由大量离散图像元素(称为像素)来表示。在数字成像中,在图像或视频帧中的最小信息项可以被称为“像素”。像素一般地被排列为规则的二维网格。源图像34中的每个像素可以由一个或多个像素分量表示。像素分量可包括在其中表示图像的色彩空间中每种颜色的颜色值。例如,色彩空间可以是红-绿-蓝(RGB)色彩空间。因此每个像素可用红色分量、绿色分量和蓝色分量来表示。在一个实施例中,颜色分量的值可以在0到2N-1的范围内变化,其中‘N’是用于表示该值的位数。每个颜色分量的值可表示该像素中对应颜色的亮度或强度。也可以使用其他色彩空间,例如亮度和色度表示(YCrCb)。此外,可以包括附加的像素分量。例如,可以包括用于混合的alpha值,其与RGB分量一起形成ARGB色彩空间。用于存储每个像素的位数可取决于使用的特定格式。例如,在一些系统中像素可能需要8位,而在其他系统中像素可能需要10位,诸如此类,其中在各种系统中可使用每像素任何各种位数。
流水线10可包括四个单独的通道14-20,以处理每像素最多四个颜色分量。每个通道可包括旋转单元、片缓冲器集合、垂直缩放器集合和水平缩放器集合。在一个实施例中,通道14可处理alpha通道。在其它实施例中,可能不使用通道14,而是只使用对应于三个颜色分量的三个通道16-20。读直接存储器存取(RDMA)单元22可以被配置为从存储器12读取图形数据(例如,源图像34)。RDMA单元22可包括四个旋转单元、四个片缓冲器和一个DMA缓冲器(未示出)。四个片缓冲器可被用于存储源图像34的已旋转的片。
对于源图像的每个颜色分量可以有多个垂直缩放器和水平缩放器。每个垂直缩放器集合可从对应的片缓冲器集合中取出一个像素列。在另一个实施例中,可以从片缓冲器将像素传送到垂直缩放器。每一通道的每个垂直缩放器集合可包括任意数目的垂直缩放器。在一个实施例中,在流水线10内对于每个颜色分量通道可以有四个单独的垂直缩放器。在其它实施例中,每一颜色分量通道可以使用其他数量的垂直缩放器。
源图像34可以被划分为多个片,并可以由旋转单元逐片地进行处理,已旋转的片可被存储在每个颜色分量通道中的片缓冲器之一中。在一个实施例中,每一通道可以有四个片缓冲器,不过在其它实施例中,可以使用其他数量的片缓冲器。在一个实施例中,垂直缩放器可从对应的片缓冲器中取出一个像素列。该像素列可延伸到源图像的一个或多个片。
该像素列可以被传送到处于垂直缩放器前端的多路复用器。每个垂直缩放器可包括多个多路复用器,其中垂直缩放器的多抽头多相滤波器的每个抽头配有一个多路复用器。每个多路复用器可从像素列选择合适的像素,基于要执行的缩放类型来确定该合适的像素。垂直缩放器集合的每个垂直缩放器可以被配置为处理一个或多个像素并输出单个经垂直缩放的像素。
在处理源图像34的过程中,垂直缩放器可以被配置为使用数字微分分析仪(DDA)来跟踪源图像中的当前位置。DDA可包括初始位置和步长,其中步长确定在通过图像的每一步期间DDA移动了源图像34的多少个像素或子像素。术语“子像素”指的是像素的一部分,用于当步长大小小于单个像素或如果DDA因步长大小具有小数点后的小数部分而落在像素之间的某处时的情况。步长大小控制缩放因子,从而小于1的步长对应于放大,而大于1的步长对应于缩小。
源图像34可以被划分为多个片,在一个实施例中,片可以是16行像素乘128列像素。然而,在其他实施例中,片的尺寸可以不同。源图像34的宽度可以大于片宽度,使得多个片可以用来组成源图像34的每行。同时,源图像34的长度可以大于片长度,使得多个片可以用来组成源图像34的每列。
每个垂直缩放器集合可每次处理源图像34的一个片,由源图像34的左上方片开始。在一个实施例中,垂直缩放器可在单个时钟周期内从源图像34的单个列中取出像素。垂直缩放器可执行所需要的取出次数以便从单个列取出所需的像素量。所需的像素量可基于垂直缩放器的数目、每个垂直缩放器中多抽头多相滤波器的抽头数目以及执行的缩放类型。在一些实施例中,所需的像素量可以跨源图像34的多于一个片。
在缩放来自片中的一列的所有像素后,垂直缩放器可在片内向右移动一列并从该列取出像素。垂直缩放器可继续向右移动,直到已经到达该片的右侧边缘。然后,垂直缩放器可沿着片向下移动到达下方的行,继续这种处理直到已经取出整个片。在某些情况下,如果第一遍(pass)所处理的像素数目等于或大于片的一列中的像素数目,则只需要对该片进行一遍扫描。在垂直地缩放片后,垂直缩放器可移到直接位于刚刚完成的片之下的片,除非刚刚完成的片是图像的底部片。在那种情况下,在已经取出并垂直地缩放图像的一整列的片之后,垂直缩放器可向右移到下一列的片,并且继续这种模式直到已经取出并垂直地缩放了整个图像的所有像素。
每个垂直缩放器可以被配置为在每个时钟周期内生成经垂直缩放的像素,并将该像素传送到对应的水平缩放器。在一个实施例中,在流水线内对于每个颜色分量通道可以有四个单独的水平缩放器,而在其它实施例中,每个颜色分量通道可以使用其他数量的水平缩放器。在各种实施例中,对应于在流水线10的每个颜色分量通道内的每个垂直缩放器可以有一个水平缩放器。
每个水平缩放器可从对应的垂直缩放器接收经垂直缩放的像素,经垂直缩放的像素可以耦合至移位寄存器链的输入。水平缩放器的多抽头多相滤波器的每个抽头可以有一个移位寄存器。水平缩放器可从所接收的像素生成经水平缩放的像素。
在每个颜色分量通道中,水平缩放器可输出经垂直和水平缩放的像素到规格化单元24。在一个实施例中,规格化单元24可以被配置为将所接收的像素值转换到0.0到1.0的范围内。例如,在一个实施例中,从水平缩放器输出的10位像素值可具有从0到1023的值。在这个实施例中,规格化单元24可将从水平缩放器接收的值除以1023来改变值的范围。在其它实施例中,规格化单元24可除以其他值,取决于用于表示像素值的位数。同时,规格化单元24可以被配置为从一个或多个像素值中去除可选的偏移量。如图1所示,通道14中的水平缩放器被耦合至抖动单元32。在一个实施例中,通道14可处理alpha通道,通道14中水平缩放器的输出可被传送到抖动单元32。
规格化单元24可将已规格化的像素值传送到色彩空间转换(CSC)单元26。CSC单元26可以被配置为在两个不同色彩空间之间进行转换。例如,在一个实施例中,在源图像34中可以用RGB色彩空间表示像素值。在此实施例中,流水线10的输出可能需要处于YCbCr色彩空间中,因此CSC单元26可将像素从RGB色彩空间转换到YCbCr色彩空间。其他实施例可以使用各种其他色彩空间,并且CSC单元26可以被配置为在这些各种色彩空间之间转换像素。
在一个实施例中,CSC单元26可将像素传送到色度下采样单元28。色度下采样单元28可以被配置为基于要执行的下采样类型(例如,4:2:2,4:2:0)对像素的色度分量进行下采样。例如,在一个实施例中,如果规定目标图像使用4:2:0结构,则色度下采样单元28可对源图像的色度像素分量执行垂直和水平下采样。在一些情况下,如果没有对色度像素分量进行下采样,则色度下采样单元28可以是直通单元。
色度下采样单元28可以耦合至重新格式化单元30。重新格式化单元30可以被配置为逆转规格化单元24执行的规格化。相应地,像素值可以恢复到在像素被规格化单元24规格化之前使用的先前的值范围。在被重新格式化之后,像素可被传递通过抖动单元32,抖动单元32可插入噪声以随机化量化误差。抖动单元32的输出可以是已处理的目标图像。在各种实施例中,已处理的目标图像可以被写入到帧缓冲器、存储器12、显示控制器、显示器、或另一位置。在其它实施例中,图形处理流水线10可包括其他级或单元,并且/或者图1示出的单元中的一些可被设置为不同顺序。流水线10是图形处理流水线的一个例子,此处所述的方法和机制可供不同类型的其他图形处理流水线使用。
应注意的是,其他实施例可能包括其他分量组合,包括图1示出的分量和/或其他分量的子集或扩展集。虽然图1中示出的可能是给定分量的一个实例,但是其他实施例可包括给定分量的两个或更多实例。同样地,在整个具体实施方式部分中,可以包括给定分量的两个或更多实例,即使只示出了一个实例,和/或可以使用仅包括一个实例的实施例,即使示出了多个实例。
现在转向图2,示出了被划分为多个片的源图像的一个实施例的框图。在一个实施例中,源图像34可以被划分成水平方向为M个片、垂直方向为N个片。第一列中的片标号为(0,0),(0,1),依此类推,向下到(0,N-1)。第一行中的片标号为(0,0),(1,0),依此类推,直到(M-1,0)。
实施例与实施例之间单个片的尺寸可以是不同的。例如,在一个实施例中,单个片可以是16行乘128列,如此使得每行包含128个像素。在另一个实施例中,通过从片左侧和右侧的相邻片取出附加的7个像素,图像片的行可以被扩展为142个像素。在源图像34的左边缘,最左边的像素可以被重复7次,在源图像34的右边缘,最右边的像素可以被重复7次。从片的右边缘和左边缘的相邻片取出像素(或重复边缘像素),可以帮助实现每个水平缩放器中的15抽头多相滤波器,使得当处于片边缘的像素被水平地缩放时,在左侧存在七个额外的像素用于该片的左边缘,并且在右侧存在七个额外的像素用于该片的右边缘。这样允许15抽头多相滤波器按照一致的方式缩放边缘像素。在其它实施例中,对于水平多相滤波器中的其他数量的抽头,在片边缘可以取出或重复其他数量的像素。
在一个实施例中,缩放单元的体系结构可开始于多个垂直缩放器,后面是多个水平缩放器。在一个实施例中,可以有四个垂直缩放器对像素数据并行操作。在其它实施例中,其他数量的垂直缩放器可以用来对输入的像素数据并行操作。垂直缩放器体系结构/块可对片进行操作,开始于图像的左上方,沿着第一列向下直到到达片(0,N-1)。在对第一列进行操作之后,垂直缩放器可移到下一列的顶部,片(1,0)。垂直缩放器可遍历第二列的片到该列底部,并且继续这种模式直到到达图像的右下片(M-1,N-1)。
现在参考图3,示出了垂直缩放器的前端的一个实施例的框图。垂直缩放器的前端可包括用于从源图像取出像素的取出单元36。在一个实施例中,取出单元36可从片缓冲器取出像素,片缓冲器可存储图形流水线的前一级处理过的像素。在另一个实施例中,源图像可以被存储在存储器中,取出单元36可从存储器中取出像素。术语“源图像”可以指存储在存储器中的图像或者从图形处理流水线的前一级(例如,旋转单元)接收的图像。此外,术语“源图像”可以指实际图像或来自视频流的帧。此外,整个本公开中可互换地使用术语“取出单元”和“取逻辑”。
在一个实施例中,对于整个缩放单元内的所有垂直缩放器可以有单个取出单元36。在另一个实施例中,每个垂直缩放器可以具有单独的取出单元。取出单元36可取出像素列并将该像素列提供给多路复用器40A-E。多路复用器40A-E表示可在垂直缩放器内使用的任意数目的多路复用器。在一个实施例中,垂直缩放器内的多相滤波器的每个抽头可以有一个多路复用器。每个多路复用器40A-E的输出可以被传送到多相滤波器的对应抽头。
控制逻辑38可控制提供给多路复用器40A-E的选择信号。控制逻辑38可使用数字微分分析仪(DDA)来跟踪源图像中的当前像素位置。DDA具有初始位置和步长,其中步长确定对于工作片集合的每一遍扫描,DDA移动了源图像的多少个像素或子像素。在一个实施例中,DDA值和步长大小可以被存储在位于控制逻辑38中的寄存器中。步长大小控制缩放因子。小于1的步长引起放大,大于1的步长引起缩小。
在一个实施例中,可以从24位寄存器中读取4.20二进制补码格式的初始DDA值。4.20格式可以被定义为4位整数部分和20位小数部分,“.”表示将值的整数部分与小数部分分隔的小数点。初始DDA值的4.20格式可表示相对于源图像的像素(0,0)从-8到+7的最小或最大初始DDA值。当缩放器迭代经历源图像的输入像素时,步长值可以被加到当前DDA值,以生成下一DDA值。在一个实施例中,可以进行舍入使得如果DDA值的小数部分的位15是‘1’,则4位系数索引(位19:16)可以向上舍入。同样,如果DDA值的最高小数位(19)是‘1’,则该值的4位整数部分可以向上舍入。在一个实施例中,最大步长值可以是4。在此实施例中,步长值可以是3.20格式的23位无符号数,并且该步长值可以零扩展到4.20格式,供二进制补码运算之用。在其它实施例中,最大步长值可以是其他值。
在另一个实施例中,DDA值可以是16.20格式的36位二进制补数。在其它实施例中,可以使用DDA值的其他尺寸和表示。当16.20格式用于表示DDA值时,16位整数部分(在舍入之后)可以用来确定源图像的像素位置。这个值,在垂直情况下除以8,在水平情况下除以128,还可表示在引用哪个片。20位小数分量可以用作到系数表中的索引。在一个实施例中,可以有存储在系数表中的对应于16个相位的16个值。在此实施例中,小数分量的高4位(在舍入之后)可以用来在每个抽头的16个系数之间进行选择。在其它实施例中,其他数量的相位可以被存储在系数表中,并且小数部分的其他数量的位可以用来在这些相位之间进行选择。
垂直缩放器的输出可供给到水平缩放器的输入,水平缩放器可使用15抽头多相滤波器。水平缩放器的抽头可以如同移位寄存器一样被馈给。为了解释这种滤波器,在一个实施例中,通过在片左侧重复每行的第一像素得到7个像素和在片右侧重复每行的最后像素得到7个像素,可以在水平方向扩展片。在一个实施例中,控制逻辑38可以被配置为在源图像边缘选择边缘像素作为所需数量的多路复用器的输出。
现在转向图4,示出了垂直多抽头多相滤波器的一个实施例的框图。每个垂直缩放器可包括一个垂直多抽头多相滤波器50。在一个实施例中,多抽头多相滤波器50可以是5抽头垂直缩放器,五个抽头中的每一个可包括系数表。在一个实施例中,每个系数表可包括16个条目。像素值的中心可位于像素变量Y,并且输入到滤波器50的像素值可包括Y-2、Y-1、Y、Y+1和Y+2。每一像素可以乘以表52-60中的对应系数表中的系数。接着加法器66可以将来自5个乘法器62A-E的输出和舍入项64加在一起,然后可以由钳位单元68对结果进行钳位。来自钳位单元68的输出可以是经垂直缩放的像素,并且该值可以被传送到对应水平缩放器的输入。在一个实施例中,可以使用流水线逻辑来实现乘法器62A-E和加法器66。
在一个实施例中,到垂直缩放器的输入像素分量可以是10.0无符号格式的10位。在一些实施例中,10.0分量可以被扩展为11位(11.0)二进制补码值。在一个实施例中,(系数表中的)系数可以是4.12二进制补码格式的16位。可以在滤波器的每个抽头处将分量输入和对应系数相乘在一起,产生27位(15.12)的二进制补数。可以将5个抽头乘法器的输出(连同舍入分量)加在一起以生成30位(18.12)的二进制补数。然后,小于零或大于1的像素值可以被钳位回到14位(10.4)无符号数。小于零的值可以被钳位到全部为零,而大于或等于(≥)1023的值可以被钳位到1023(Ox3FF0)。
现在参考图5,示出了水平多抽头多相滤波器的一个实施例的框图。每个水平缩放器可包括一个多抽头多相滤波器90。在一个实施例中,滤波器90可以是15抽头多相滤波器。在其它实施例中,滤波器90可包括其他数量的抽头。每个抽头可包括一个对应系数表84-98。在一个实施例中,每个系数表可包括16个系数条目。在其它实施例中,每个系数表可包括其他数量的系数条目。
如图5中所示那样,像素值可以以变量X为中心,并且像素值可包括X+7,...,X+1,X,X-1,...,X-7。移位寄存器70-82链中的每一像素可以乘以来自对应系数表84-98的系数。系数可以被存储在系数表84-98内的可编程寄存器中。在加法器104中可以将来自乘法器100A-I的输出和舍入项102加在一起,然后来自加法器104的结果可以在钳位单元106中被钳位。来自钳位单元106的输出可以是经水平缩放的像素,并且该值可以被传送到规格化单元(未示出)的输入、另一流水线级、或另一位置。在一个实施例中,水平缩放器可使用流水线逻辑来实现乘法器100A-I和加法器104。
在一个实施例中,可以有4个水平缩放器。在其它实施例中,可以使用其他数量的水平缩放器。4个水平缩放器可以都工作于同样的水平DDA值,但是针对不同的垂直像素。在某些情况下,当垂直缩放器将一行的最左像素传送到水平缩放器时,水平缩放器可将像素闪写(flash-write)到水平滤波器的所有15个抽头中。水平缩放器也可以设置中间抽头为指向列起始像素-7,以确保在负的初始DDA X值的情况下的正确像素复制。在其它情况下,可以从相邻的片中取出额外的像素,以允许水平缩放器对边缘像素进行操作而无需为多个抽头重复边缘像素。
当垂直缩放器处理像素并将像素传送到水平缩放器时,像素被移位经过各个抽头,从而增加中间抽头的指针。水平缩放器可将中间抽头与当前DDA值所需的像素进行比较,一旦该值匹配,则水平缩放器可开始生成输出像素。在水平缩放器正在生成经缩放的输出像素的任何给定时钟,如果下一DDA值还匹配当前中间抽头值,则水平缩放器可以不移入新的像素,并且可使对应的垂直缩放器停止推入新的像素。
在第一遍扫描一列新的片时,水平缩放器可抓取DDA值的拷贝,因为水平缩放器在对该相同列的后续遍扫描的开始可能需要重新加载这个值。在一个实施例中,如果开始新的列,垂直缩放器可通知水平缩放器。对于后续的列,下一DDA值可以是当前DDA值加上DDA步长大小。
在一个实施例中,水平缩放器可以被配置为确定一个或多个边界条件。水平移位链中的第一抽头可检测其是否具有源图像的最右像素,并且响应于检测到这个条件,水平移位寄存器链可以不再从垂直缩放器接受像素。水平缩放器可继续递增DDA值,并且该缩放器可继续移位抽头值,但是既然新的像素没有被移入移位寄存器链中,可以在移位寄存器链的输入处复制图像的最右像素。在一个实施例中,每个水平缩放器也可以检测所生成的像素数目是否等于经缩放的输出图像中的预期量。当水平缩放器检测到这个条件时,水平缩放器可停止生成输出像素并设置表示已经到达图像末端的标志。然后,水平缩放器可等待垂直缩放器开始新的一遍扫描。
在一个实施例中,到水平缩放器的输入像素分量可以是10.4无符号格式的14位,并且这些分量可以被扩展为15位(11.4)二进制补码值。抽头系数可以是16位(4.12)二进制补码值。可以将输入和系数相乘以产生31位(15.16)二进制补码值。可以将15个抽头乘法器的输出连同舍入分量加在一起,以生成35位(19.16)二进制补数。然后像素值可以被钳位回到14位10.4无符号数。
上述例子和不同分量和值的不同格式和位长度表示一个可能的实施例。应注意的是,在其它实施例中,可以改变垂直和水平缩放器内的各种不同值的格式和位长度。
现在转向图6,示出了符合一个或多个实施例的工作片集合。在一个实施例中,一个片的尺寸可以是128×8像素,并且工作片集合可以包括三个片(片112、120和128)。在一个实施例中,工作片集合可以被存储在处于旋转单元输出级的片缓冲器中。片缓冲器还可以被耦合至缩放单元的输入级。在一个实施例中,片112、120和128中的每个片可以被存储在单独的片缓冲器中。图6所示例子仅仅是出于说明性目的,在其它实施例中,工作片集合可以包括其他数量的片,并且可以改变片尺寸。
在其它实施例中,工作片集合的选择和尺寸可取决于每个垂直缩放器的多抽头多相滤波器的抽头数目,并且可取决于缩放单元中垂直缩放器的数目。工作片集合的选择和尺寸还可以取决于缩放单元执行的垂直放大或缩小的量。这些因素可以确定在每个时钟周期有多少像素需要被取出并提供给缩放单元中的多个垂直缩放器。例如,在一个实施例中,缩放单元中可以有4个垂直缩放器,每个垂直缩放器可包括一个5抽头多相滤波器,并且垂直缩放器可以按照因子4进行缩小。在此实施例中,在单个时钟周期中可能需要从单个列取出至少17个像素,以取出足够的像素用于缩放单元中的垂直缩放器的所有抽头。在这个实施例中,既然每个片包括每列8个像素,则需要取出至少三个片。
4个单独的垂直缩放器可以被提供以来自3个片的24个像素的整个垂直列。每个垂直缩放器可以是5抽头多相滤波器,使得每个垂直缩放器可以选择和使用5个像素来生成单个经垂直缩放的像素。24个像素的垂直列可以被提供给垂直缩放器,并且4个多相滤波器的20个抽头的每一个可以选出其需要哪个像素来生成经缩放的输出。在一个实施例中,多抽头多相滤波器的每个抽头可以包括一个多路复用器以从像素列中进行选择。顶部的垂直缩放器可处理上部的像素,然后三个剩余的垂直缩放器的每一个可在相邻的垂直缩放器下面工作一步,从而每一时钟生成总共4个连续的经垂直缩放的像素。
在缩小情况的一个例子中,对应于步长大小为4,每个垂直缩放器每个时钟可消耗4个像素并且每一时钟可生成一个经垂直缩小的像素。同样地,每个水平缩放器可以每4个时钟生成一个像素,使得源图像以每一时钟16个像素的净速率被消耗,并且经缩放的输出图像将以每一时钟1个像素的净速率被生成。
在放大情况的一个例子中,每个垂直缩放器每一时钟可消耗0.25个像素,从而每一时钟生成一个经垂直放大的像素。每个水平缩放器可以每一时钟生成一个像素,使得输入图像以每一时钟1个像素的净速率被消耗,并且经缩放的输出图像可以以每一时钟4个像素的净速率被生成。
在图像的起始,垂直缩放器可以等待取逻辑用像素填充三个128×8的缓冲器,并将它们提供给垂直缩放器作为24个像素的列。缩放器控制逻辑可以为4个垂直缩放器计算第一4个DDA值。第一垂直缩放器可以在第一DDA值(DDA-Init)处开始操作,第二垂直缩放器可以在(DDA-Init+1个步长)处开始操作,第三垂直缩放器可以在(DDA-Init+2个步长)处开始操作,而第四垂直缩放器可以在(DDA-Init+3个步长)处开始操作。
取逻辑可以每一时钟向垂直缩放器提供24个像素的一列,并水平地步进通过片直到遇到最右的像素。在对4个DDA步长的当前集合进行操作时,缩放器逻辑可以考虑下一步长集合。如果在下一次迭代中不需要当前前沿的片缓存器,则缩放器逻辑可断言不再需要缓冲器的信号给取逻辑。响应于该信号被断言,当取逻辑已经提供了最右的像素给垂直缩放器时,取逻辑可取出源图像的下一片并将该片添加到工作片集合中。如果该信号没有被断言,则取逻辑可为工作片集合的下一遍水平扫描继续提供当前缓冲器集合给缩放器控制逻辑。
该处理可继续,直到缩放器控制逻辑检测到源图像的底部边缘。缩放器控制逻辑可以检测许多不同的边界条件。一种条件可以是如果任何一个垂直缩放器抽头需要超出源图像的最后一个像素的像素。如果检测到这种条件,则缩放器控制逻辑可通过将底部像素馈送到需要它的任何抽头中而复制该底部像素。在一个实施例中,缩放器控制逻辑还可以跟踪已经生成了多少经垂直缩放的像素。如果在下一次迭代时,全部垂直缩放器将会生成超出经缩放的输出图像末端的像素,则缩放器控制逻辑会断言“done with current column(当前列已完成)”信号给取逻辑。
当移到下一列的片时,垂直缩放器DDA可以重新载入DDA-Init值(对于4个单独的垂直缩放器,+0、1、2和3个步长),因为它们将再次处于下一列中的图像顶端。垂直缩放器可继续处理各列直到水平缩放器控制逻辑确定已经到达图像的右侧边缘。当到达源图像的底部右侧片时,垂直缩放器可断言“donewith image source(图像源已完成)”信号。在某些情况下,取逻辑可能能够不依赖于垂直和水平缩放器而确定这一点。
工作片集合还可以分别在片112、120和128左侧的部分114、122和130中包括额外的像素。额外的7个像素可以被取出并被包括作为工作片集合的一部分,以适应水平缩放器的多抽头多相滤波器。在一个实施例中,水平缩放器可包括15抽头多相滤波器。在这种实施例中,片左侧的额外的7个像素可以被包括在工作片集合中。当水平缩放器的中心位于片112的最左边像素时,在部分114中的7个额外像素可允许该15抽头滤波器被填充以足够的像素来执行正常方式的水平缩放。在其它实施例中,当片左侧的额外像素不被取出或包括在工作片集合中时,缩放器取逻辑可重复边缘像素。当15抽头滤波器的中心分别位于片112、120和128的最右像素时,在右侧部分116、124和132中的额外的7个像素可服务于同样的目的。
工作片集合的更右侧部分(包括部分118、126和134)可以被包括在工作片集合中以适应图形处理流水线的后一级的缩小处理。如果在后一级使能色度缩小,则缩放单元生成的每个片都可能需要每行具有偶数个像素以便色度缩小单元能正确地工作。在色度下采样的一个例子中,例如从4:4:4转换到4:2:2,两个水平像素被用于生成一个像素。因此,每行将需要具有偶数个像素。可执行的缩放类型相据各个实施例而变化,在很多情况下的缩放类型可能生成奇数个像素。在这些情况下,部分118、126和134中的额外像素可以用来生成额外像素,以便每行经缩放的片具有偶数个像素。在其它实施例中,可以从工作片集合中省略部分118、126和134。一旦垂直缩放器已经使用片112的所有像素,片112就可以被弃置。然后,取出单元可取出下一片并将该片与片120、128包括在一起作为新的工作片集合。
现在参考图7,示出了提供给垂直缩放单元的像素列的一个实施例的框图。垂直缩放器142处于垂直缩放单元140的顶端,其他三个垂直缩放器144-148可分别在相邻垂直缩放器下面一个DDA步长。列中的像素可跨片(X,Y)、(X,Y+1)和(X,Y+2)。图7所示像素来自于源图像的单个列,并且该单个列可来自一工作片集合,诸如图6所示的工作片集合。在一个实施例中,来自工作片集合的整列可包括24个像素。在其它实施例中,来自工作片集合的整列可包括其他数量的像素。例如,在另一个实施例中,可以采用4个片的工作片集合,每个片可以具有16行,因此本实施例的像素的整列可以是64个像素。
现在转向图8,示出了在第一遍水平扫描中垂直缩放器选择像素的一个实施例的框图。垂直缩放单元140包括4个垂直缩放器142-148,虚线表示每个垂直缩放器将使用哪些像素。垂直缩放器142的中心位于来自片(X,Y)的行0的像素,垂直缩放器144的中心位于来自片(X,Y)的行2的像素,垂直缩放器146的中心位于来自片(X,Y)的行4的像素,垂直缩放器148的中心位于来自片(X,Y)的行6的像素。在此例子中,初始DDA值是0,步长大小是2。在一个实施例中,片(X,Y-1)的底部两个像素可以被包括在像素列中且处于列的顶端,以适应中心位于来自片(X,Y)的行0的像素的垂直缩放器142的5抽头滤波器。在另一个实施例中,来自片(X,Y)的行0的像素可以重复并由垂直缩放器142的顶端三个多路复用器选择,并由5抽头多相滤波器的顶端三个抽头使用。
在一个实施例中,垂直缩放器142-148的每个垂直缩放器可包括一个5抽头多相滤波器。垂直缩放器142-148中的每个垂直缩放器还可以包括5个多路复用器,其中每个多路复用器被配置为选择用于多相滤波器的对应抽头的像素。在图8给出的示例中,每个垂直缩放器选择的5个像素将被顺次分配给5个抽头。例如,来自片(X,Y-1)的行6的像素将由耦合至垂直缩放器142的多相滤波器的顶端抽头的多路复用器选择,来自片(X,Y-1)的行7的像素将由耦合至多相滤波器的从顶端起的第二个抽头的多路复用器选择,依此类推。其他垂直缩放器的每一个可按类似方式使用耦合至它们的多相滤波器的抽头的多路复用器来选择像素。
图8示出的例子表明的是用于垂直缩小因子为2的从像素列中选择像素。垂直缩小因子2表示已缩小图像中的行数将是源图像中行数的一半。这个例子仅仅是出于说明性目的,并且在其它实施例中,垂直缩放器142-148可以被分配给不同像素,并且缩放器之间的间隔可根据要执行的缩小或放大的类型而变化。
在一个实施例中,垂直缩放器142-148可在第一遍水平扫描中从工作片集合的左侧边缘开始并且水平地向右经过工作片集合,从而处理像素列。在从左侧边缘一直到右侧边缘移动经过工作片集合之后,每个垂直缩放器142-148可沿工作片集合向下移动4倍DDA步长大小。例如,对于这个特定的缩小例子,DDA步长大小为2,从而在到达工作片集合的右侧边缘之后,垂直缩放单元140中的每个垂直缩放器可在像素列中向下移动8个像素并在对工作片集合的第二遍水平扫描中从那些位置选择像素。
现在参考图9,示出了在对工作片集合的第二遍水平扫描期间从工作片集合选择像素的一个实施例的框图。在第二遍水平扫描中,垂直缩放单元140的每个垂直缩放器可从它们的前一位置沿像素列向下4个DDA步长大小的位置选择像素。对于该第二遍扫描,垂直缩放器142的中心位于来自片(X,Y+1)的行0的像素,垂直缩放器144的中心位于来自片(X,Y+1)的行2的像素,垂直缩放器146的中心位于来自片(X,Y+1)的行4的像素,垂直缩放器148的中心位于来自片(X,Y+1)的行6的像素。这种对工作片集合水平扫描的处理可继续沿着源图像向下移动直到已经缩放一整列的片。然后该处理可向右移到下一列的片的顶端,沿该列向下移动,依此类推,直到已经垂直地缩放整个图像。这个例子是图8所示例子的延续,DDA步长大小2对应于垂直缩小因子2。其他实施例可使用其他步长大小、缩小或放大因子、取出像素的其他数量、以及垂直缩放器的其它数量。
现在转向图10,示出了垂直缩放器与水平缩放器之间连接的一个实施例的框图。在一个实施例中,垂直缩放单元140的每个垂直缩放器142-148可以耦合至水平缩放单元150的对应的水平缩放器152-158。每一时钟周期垂直缩放器142可输出单个经垂直缩放的像素至水平缩放器152,每一时钟周期垂直缩放器144可输出单个经垂直缩放的像素至水平缩放器154,每一时钟周期垂直缩放器146可输出单个经垂直缩放的像素至水平缩放器156,每一时钟周期垂直缩放器148可输出单个经垂直缩放的像素至水平缩放器158。
水平缩放器152-158可输出经缩放的像素给图形流水线的下一级(未示出)。在一个实施例中,下一级可以是规格化单元。在另一个实施例中,水平缩放器152-158可输出经缩放的像素至显示单元或显示控制器。在进一步的实施例中,水平缩放器152-158可输出经缩放的像素至存储器。在其它实施例中,可以有其他数量的垂直和水平缩放器。
现在转向图11,示出了用于缩放源图像的方法的一个实施例。为了讨论的目的,本实施例的步骤是顺序显示的。应该注意的是,在如下所述方法的各种实施例中,所描述的一个或多个元素可以被同时执行、以与所示顺序不同的顺序执行或可以被整个地省略。其他附加元素也可以根据需要来执行。
在一个实施例中,可以由缩放单元(块160)接收源图像的多个像素。在各种实施例中,源图像可以被存储在存储器中、存储在片缓冲器中、由图形处理流水线的前一级传送到缩放单元、或存储在各种其他位置的任何一个中或由各种其他单元中的任何一个传送。接下来,像素列可以被提供给多个垂直缩放器(块162)。然后,每个垂直缩放器可基于DDA值和DDA步长大小从像素列中选择像素(块164)。在一个实施例中,每个垂直缩放器可包括一个5抽头多相滤波器,并且每个垂直缩放器可选择5个像素用于多相滤波器的5个抽头。
在块164之后,多个垂直缩放器中的每一个可以垂直地缩放所选择的像素(块166)。在一个实施例中,可以使用4个垂直缩放器,不过在其它实施例中,可以使用其他数量的垂直缩放器。然后,经垂直缩放的像素可以被传送给多个水平缩放器(块168)。在一个实施例中,每个垂直缩放器可以耦合至一个对应的水平缩放器。在一个实施例中,对于4个垂直缩放器,可以有4个水平缩放器。
接下来,多个水平缩放器可以水平地缩放经垂直缩放的像素(块170)。多个水平缩放器中的每一个可将经垂直缩放的像素移入并通过移位寄存器链,并且在该链已经被填满经垂直缩放的像素之后,水平缩放器可生成经水平缩放的像素。然后,经垂直和水平缩放的像素可以被传送到图形处理流水线的下一级(块172)。在一个实施例中,流水线的下一级可以是规格化单元。作为另选,在其它实施例中,经垂直和水平缩放的像素可以被传送到存储单元、显示控制器、或显示单元。
现在参考图12,示出了用于缩放像素的方法的一个实施例。为了讨论的目的,本实施例中的步骤是顺序显示的。应该注意的是,在如下所述方法的各种实施例中,所描述的一个或多个元素可以被同时执行、以与所示顺序的不同顺序执行或可以被整个地省略。其他附加元素也可以根据需要来执行。
在一个实施例中,可以从一个或多个片缓冲器中取出多个像素(块180)。源图像可以被划分为多个片,并且每个片缓冲器可存储来自源图像的单个片。在一个实施例中,多个已取出的像素可以位于源图像的单个列中。接下来,多个垂直缩放器(块182)可以在垂直方向上缩放多个所取出的像素。多个垂直缩放器可以被配置为同时缩放多个所取出的像素。多个垂直缩放器中的每个垂直缩放器可包括用于缩放所取出的像素的一个多抽头多相滤波器。
在每个时钟周期,可以将一个或多个经垂直缩放的像素从每个垂直缩放器传送到相应的水平缩放器(块184)。然后,多个水平缩放器可以在水平方向上缩放多个经垂直缩放的像素(块186)。每个水平缩放器可包括用于缩放所接收像素的一个多抽头多相滤波器。每个水平缩放器还可以包括用于移入所接收像素的移位寄存器链,并且对应于多抽头多相滤波器的每个抽头可以有一个移位寄存器。
接下来转向图13,示出了系统190的一个实施例的框图。如图所示,系统190可表示台式计算机200、膝上型计算机210、平板计算机220、蜂窝电话230或其他装置的芯片、电路、部件等。在所举例说明的实施例中,系统190包括耦合至外部存储器192的集成电路198的至少一个实例。集成电路198可包括流水线10的一个或多个实例(或图1)或流水线10的一个或多个部分。
集成电路198被耦合至一个或多个外围设备194和外部存储器192。还提供有电源196,其提供电源电压给集成电路198,还提供一个或多个电源电压给存储器192和/或外围设备194。在各种实施例中,电源196可以表示电池(例如,智能电话、膝上型电脑或平板计算机中的可充电电池)。在一些实施例中,可包括集成电路198的一个以上实例(也可包括多于一个的外部存储器192)。
存储器192可以是任何类型的存储器,例如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据率(DDR、DDR2、DDR3等)SDRAM(包括诸如mDDR3的SDRAM的移动版本等,和/或诸如LPDDR2的SDRAM的低功率版本等)、RAMBUS DRAM(RDRAM)、静态RAM(SRAM)等。一个或多个存储器设备可以耦合到电路板上以形成存储器模块,例如单个内嵌存储器模块(SIMM)、双列直插存储器模块(DIMM)等。作为另选,设备可以采用芯片上芯片配置、封装上封装配置或多芯片模块配置而与集成电路198一起安装。
根据系统190的类型,外围设备194可包括任何希望的电路。例如,在一个实施例中,外围设备194可包括用于各种类型无线通信的设备,例如wifi、蓝牙、蜂窝、全球定位系统等。外围设备194还可以包括附加的存储设备,包括RAM存储设备、固态存储设备或存储盘。外围设备194可包括用户接口设备,例如显示屏(包括触摸显示屏或多点触摸显示屏)、键盘或其他输入设备、麦克风、扬声器等。
现在转向图14,示出了计算机可读介质240的框图的一个实施例,计算机可读介质240包括表示包括在(图1的)流水线10中的电路的一个或多个数据结构。一般说来,计算机可读介质240可包括任何非暂态的存储介质,例如磁或光介质(例如,磁盘、CD-ROM或DVD-ROM)、易失性或非易失性存储介质(例如RAM(例如SDRAM、RDRAM、SRAM等)、ROM等),以及通过传输介质或经由通信介质(例如网络和/或无线链路)传送的信号(例如电信号、电磁信号或数字信号)可访问的介质。
一般地,计算机可读介质240上的电路的数据结构(一个或多个)可以由程序读取并且直接或间接地使用以制造包括该电路的硬件。例如,数据结构可包括高级设计语言(HDL)(例如Verilog或VHDL)形式的对硬件功能的一个或多个行为级描述或寄存器传输级(RTL)描述。可以由可合成描述的合成工具读取该描述,以生成包括来自合成库的门电路列表的一个或多个网表。一个或多个网表包括门电路集合,其也表示包括电路的硬件的功能。然后可以将该一个或多个网表进行放置和布线由以生成描述要施加到掩模上的几何形状的一个或多个数据集。然后可以将掩模用于各种半导体制造步骤,以生成半导体电路或对应于该电路的电路。作为另选,计算机可读介质240上的一个或多个数据结构可以根据需要是一个或多个网表(有或者没有合成库)或一个或多个数据集。在另一种另选例中,该数据结构可包括原理程序的输出、或从其导出的一个或多个网表或数据集。
虽然计算机可读介质240包括流水线10的表示,其他实施例可包括流水线10的任一部分或一些部分的组合的表示(例如,垂直缩放器、水平缩放器)。
应该强调的是,上述实施例仅仅是实现方式的非限制性的例子。一旦完全地理解了上述公开,对于本领域技术人员而言许多变化和修改都是显而易见的。意在将权利要求解释为包含所有这些变化和修改。

Claims (24)

1.一种装置,包括:
多个垂直缩放器,其中向所述多个垂直缩放器并行提供像素,并且每个垂直缩放器被配置为从所提供的像素中选择用于垂直缩放的像素并生成经垂直缩放的像素;以及
多个水平缩放器,其中每个水平缩放器耦合至相应的垂直缩放器的输出端并被配置为对从相应的垂直缩放器接收的像素执行水平缩放。
2.如权利要求1所述的装置,其中所述多个水平缩放器中的每个水平缩放器包括用于存储从相应的垂直缩放器接收的经垂直缩放的像素的移位寄存器链。
3.如权利要求1所述的装置,还包括取出单元,其中所述取出单元被配置为:
从一个或多个片缓冲器中取出像素列,其中每个片缓冲器存储源图像的给定片;以及
将所述像素列传送到所述多个垂直缩放器。
4.如权利要求1所述的装置,其中所述像素位于源图像的单个列内,并且所述单个列跨源图像的一个或多个片。
5.如权利要求4所述的装置,其中源图像的一个或多个片被存储在一个或多个片缓冲器中。
6.如权利要求4所述的装置,其中每个垂直缩放器还被配置为使用数字微分分析仪(DDA)值和DDA步长大小来缩放源图像。
7.如权利要求6所述的装置,其中所述多个垂直缩放器被布置为垂直列以处理每个像素列的不同垂直部分,并且每个垂直缩放器与相邻的垂直缩放器相距单个DDA步长。
8.如权利要求1所述的装置,还包括旋转单元,其中源图像在被传送到所述多个垂直缩放器之前由旋转单元进行旋转。
9.如权利要求1所述的装置,其中多个垂直和水平缩放器中的每一个包括用于缩放像素的多抽头多相滤波器,并且所述多抽头多相滤波器的每个抽头包括系数表,并且所述系数表包括多个可编程寄存器。
10.一种装置,包括多个垂直缩放器,其中所述多个垂直缩放器中的每个垂直缩放器被配置为:
从一个或多个片缓冲器接收多个像素;
从所述多个像素中选择合适的像素;以及
垂直缩放所选择的像素。
11.如权利要求10所述的装置,其中所述合适的像素是基于该垂直缩放器在所述多个垂直缩放器当中的位置来选择的。
12.如权利要求10所述的装置,其中所述多个垂直缩放器中的每个垂直缩放器被配置为在每个时钟周期生成一个经垂直缩放的像素。
13.如权利要求10所述的装置,其中所述装置还包括多个水平缩放器,所述装置被配置为将经垂直缩放的像素传送到所述多个水平缩放器,并且所述多个水平缩放器被配置为水平缩放经垂直缩放的像素。
14.如权利要求10所述的装置,其中源图像包括多个片,并且每个片缓冲器被配置为存储源图像的单个片。
15.如权利要求14所述的装置,其中每个片的宽度小于源图像的宽度,并且每个片的长度小于源图像的长度。
16.一种方法,包括:
从源图像接收多个像素;以及
使用多个垂直缩放器和多个水平缩放器生成经垂直和水平缩放的像素。
17.如权利要求16所述的方法,其中生成经垂直和水平缩放的像素包括:
使用所述多个垂直缩放器垂直缩放像素列;
将经垂直缩放的像素传送到所述多个水平缩放器;以及
使用所述多个水平缩放器水平缩放经垂直缩放的像素。
18.如权利要求17所述的方法,还包括:在垂直缩放像素列之前,所述多个垂直缩放器中的每个垂直缩放器基于直接微分分析仪(DDA)值和DDA步长大小从多个所接收的像素中选择像素。
19.如权利要求17所述的方法,其中每个垂直缩放器耦合至相应的水平缩放器。
20.一种方法,包括:
从一个或多个片缓冲器中取出多个像素;
使用多个垂直缩放器在垂直方向上缩放多个取出的像素;
在每个时钟周期将一个或多个经垂直缩放的像素从每个垂直缩放器传送到相应的水平缩放器;以及
使用多个水平缩放器在水平方向上缩放多个经垂直缩放的像素。
21.如权利要求20所述的方法,其中所述多个取出的像素位于源图像的单个列中。
22.如权利要求20所述的方法,其中所述多个垂直缩放器被配置为同时缩放所述多个取出的像素。
23.如权利要求20所述的方法,其中每个垂直缩放器和每个水平缩放器包括一个多抽头多相滤波器。
24.如权利要求23所述的方法,其中所述多个水平缩放器中的每个水平缩放器包括连接成链的多个移位寄存器,并且所述链包括对应于多抽头多相滤波器的每个抽头的移位寄存器。
CN201310175280.5A 2012-02-24 2013-02-22 图形处理装置和方法 Active CN103473735B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/404,850 2012-02-24
US13/404,850 US8687922B2 (en) 2012-02-24 2012-02-24 Parallel scaler processing

Publications (2)

Publication Number Publication Date
CN103473735A true CN103473735A (zh) 2013-12-25
CN103473735B CN103473735B (zh) 2016-04-20

Family

ID=47722182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310175280.5A Active CN103473735B (zh) 2012-02-24 2013-02-22 图形处理装置和方法

Country Status (7)

Country Link
US (1) US8687922B2 (zh)
EP (1) EP2631869B1 (zh)
JP (1) JP5991722B2 (zh)
KR (1) KR101494957B1 (zh)
CN (1) CN103473735B (zh)
TW (1) TWI489443B (zh)
WO (1) WO2013126330A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767910A (zh) * 2015-04-27 2015-07-08 京东方科技集团股份有限公司 视频图像拼接系统及方法
CN105491268A (zh) * 2014-10-07 2016-04-13 三星电子株式会社 应用处理器、片上系统及操作方法
CN107016643A (zh) * 2015-11-11 2017-08-04 德州仪器公司 在计算机视觉系统中按比例缩小图像
CN111182305A (zh) * 2018-11-12 2020-05-19 亚德诺半导体国际无限责任公司 图像缩放
CN115150566A (zh) * 2022-09-01 2022-10-04 杭州雄迈集成电路技术股份有限公司 一种多路多分辨率视频实时输出方法和系统

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI447828B (zh) * 2011-06-22 2014-08-01 Inotera Memories Inc 製程原始資料的壓縮方法及壓縮系統
KR102023501B1 (ko) * 2013-10-02 2019-09-20 삼성전자주식회사 설정가능한 이미지 처리 파이프라인을 포함하는 시스템 온 칩과, 상기 시스템 온 칩을 포함하는 시스템
KR102114233B1 (ko) * 2013-12-13 2020-05-25 삼성전자 주식회사 영상 처리 장치
KR102117075B1 (ko) 2014-03-11 2020-05-29 삼성전자주식회사 재구성 가능한 이미지 스케일링 회로
KR102254676B1 (ko) * 2014-10-31 2021-05-21 삼성전자주식회사 이미지를 실시간으로 처리할 수 있는 이미지 처리 회로와 이를 포함하는 장치들
US20160132284A1 (en) * 2014-11-07 2016-05-12 Qualcomm Incorporated Systems and methods for performing display mirroring
KR102317789B1 (ko) 2015-02-12 2021-10-26 삼성전자주식회사 하나의 이미지로부터 다양한 해상도를 갖는 이미지들을 생성할 수 있는 스케일러 회로와 이를 포함하는 장치들
US9679356B2 (en) * 2015-03-19 2017-06-13 Xerox Corporation Vectorized two stage tile-based scaling
CN105243966A (zh) * 2015-11-03 2016-01-13 京东方科技集团股份有限公司 一种图像显示装置及图像显示方法
GB2551745B (en) * 2016-06-29 2020-04-08 Advanced Risc Mach Ltd Data processing systems
US11386644B2 (en) * 2017-10-17 2022-07-12 Xilinx, Inc. Image preprocessing for generalized image processing
KR102459652B1 (ko) * 2018-03-08 2022-10-28 엘지전자 주식회사 표시장치와 그 영상 처리 방법
US20190139184A1 (en) * 2018-08-01 2019-05-09 Intel Corporation Scalable media architecture for video processing or coding
US11042735B2 (en) * 2018-09-25 2021-06-22 Drägerwerk AG & Co. KGaA System and method for verifying whether text will be properly rendered in a target area of a user interface and/or a graphics file

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236648B2 (en) * 1999-12-27 2007-06-26 Intel Corporation Scaling images for display
CN101183521A (zh) * 2007-11-16 2008-05-21 炬力集成电路设计有限公司 一种图像缩放装置、方法及图像显示设备
US20090256859A1 (en) * 2008-04-09 2009-10-15 Harris Corporation Video multiviewer system with switcher and distributed scaling and related methods

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384912A (en) 1987-10-30 1995-01-24 New Microtime Inc. Real time video image processing system
US5204916A (en) 1991-08-06 1993-04-20 Eastman Kodak Company Tile-oriented technique for collectively performing image rotation, scaling and digital halftone screening
US5353056A (en) * 1992-10-27 1994-10-04 Panasonic Technologies, Inc. System and method for modifying aberration and registration of images
US5574572A (en) * 1994-09-07 1996-11-12 Harris Corporation Video scaling method and device
JPH10133643A (ja) * 1996-10-29 1998-05-22 Shimadzu Corp デジタル画像処理装置
JPH10134176A (ja) * 1996-10-29 1998-05-22 Sony Corp 画像信号処理方法及び装置
JPH10304184A (ja) * 1997-05-02 1998-11-13 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
US6903733B1 (en) * 1997-11-24 2005-06-07 Pixelworks, Inc. Ultra-high bandwidth multi-port memory system for image scaling applications
JP3763394B2 (ja) * 2000-10-31 2006-04-05 株式会社デジタル 画像縮小方法およびその装置
EP1304650B1 (en) * 2001-10-10 2009-12-16 Texas Instruments Incorporated Image scaling system and method
US6924948B2 (en) * 2003-08-21 2005-08-02 Arc Design, Inc. Multifocal lens system for digital cameras
FI20045157A (fi) * 2004-04-29 2005-10-30 Nokia Corp Menetelmä ja laitteisto digitaalisen matriisikuvan alaspäin skaalaamiseksi
TWI267031B (en) * 2004-12-14 2006-11-21 Vxis Technology Corp Image scaling controller and method thereof
US20070041662A1 (en) * 2005-08-22 2007-02-22 Eric Jeffrey Efficient scaling of image data
US7477323B2 (en) * 2005-11-07 2009-01-13 Kolorific, Inc. Method and system for digital image magnification and reduction
TWI370439B (en) * 2007-05-18 2012-08-11 Au Optronics Corp Video scaling apparatus and method of the same
US8195008B2 (en) * 2007-06-28 2012-06-05 Broadcom Corporation Method and system for processing video data in a multipixel memory to memory compositor
US7852531B2 (en) * 2007-12-12 2010-12-14 Xerox Corporation Digital correction for alignment of a plurality of color channels of a color image forming device
TWI351873B (en) * 2007-12-13 2011-11-01 Magima Digital Information Co Ltd A picture scaling device and a picture scaling met
US8121434B2 (en) * 2008-06-13 2012-02-21 Microsoft Corporation Multi-pass image resampling
US8593483B2 (en) * 2009-10-20 2013-11-26 Apple Inc. Temporal filtering techniques for image signal processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7236648B2 (en) * 1999-12-27 2007-06-26 Intel Corporation Scaling images for display
CN101183521A (zh) * 2007-11-16 2008-05-21 炬力集成电路设计有限公司 一种图像缩放装置、方法及图像显示设备
US20090256859A1 (en) * 2008-04-09 2009-10-15 Harris Corporation Video multiviewer system with switcher and distributed scaling and related methods

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491268A (zh) * 2014-10-07 2016-04-13 三星电子株式会社 应用处理器、片上系统及操作方法
CN105491268B (zh) * 2014-10-07 2020-06-12 三星电子株式会社 应用处理器、片上系统及操作方法
CN104767910A (zh) * 2015-04-27 2015-07-08 京东方科技集团股份有限公司 视频图像拼接系统及方法
US9973712B2 (en) 2015-04-27 2018-05-15 Boe Technology Group Co., Ltd. Video image mosaic system and method
CN107016643A (zh) * 2015-11-11 2017-08-04 德州仪器公司 在计算机视觉系统中按比例缩小图像
CN107016643B (zh) * 2015-11-11 2022-06-24 德州仪器公司 在计算机视觉系统中按比例缩小图像的设备和方法
CN111182305A (zh) * 2018-11-12 2020-05-19 亚德诺半导体国际无限责任公司 图像缩放
CN111182305B (zh) * 2018-11-12 2022-03-01 亚德诺半导体国际无限责任公司 图像缩放装置和方法
US11463715B2 (en) 2018-11-12 2022-10-04 Analog Devices International Unlimited Company Image scaling
CN115150566A (zh) * 2022-09-01 2022-10-04 杭州雄迈集成电路技术股份有限公司 一种多路多分辨率视频实时输出方法和系统

Also Published As

Publication number Publication date
WO2013126330A1 (en) 2013-08-29
KR101494957B1 (ko) 2015-02-23
US20130223764A1 (en) 2013-08-29
KR20130097689A (ko) 2013-09-03
TW201342358A (zh) 2013-10-16
US8687922B2 (en) 2014-04-01
TWI489443B (zh) 2015-06-21
CN103473735B (zh) 2016-04-20
JP5991722B2 (ja) 2016-09-14
EP2631869B1 (en) 2017-12-20
JP2015513837A (ja) 2015-05-14
EP2631869A1 (en) 2013-08-28

Similar Documents

Publication Publication Date Title
CN103473735B (zh) 图形处理装置和方法
CN100530343C (zh) 多屏合成显示装置及方法
KR101894651B1 (ko) 데이터 취득 모듈과 방법, 데이터 처리 유닛, 구동기 및 디스플레이 디바이스
EP3333842A1 (en) Shift register, gate driving circuit, display panel and driving method therefor, and display device
US8989509B2 (en) Streaming wavelet transform
US20120306926A1 (en) Inline scaling unit for mirror mode
US9858635B2 (en) Application processor sharing resource based on image resolution and devices including same
CN105976749A (zh) 一种移位寄存器、栅极驱动电路及显示面板
CN105574804B (zh) 应用处理器、片上系统及移动计算装置
US9001160B2 (en) Frame timing synchronization for an inline scaler using multiple buffer thresholds
US11710213B2 (en) Application processor including reconfigurable scaler and devices including the processor
US20160012802A1 (en) Method of operating display driver integrated circuit and method of operating image processing system having the same
US9191551B2 (en) Pixel normalization
US10474408B2 (en) Image data processing pipeline bypass systems and methods
US9123278B2 (en) Performing inline chroma downsampling with reduced power consumption
WO2007099950A1 (ja) 高速pe間データ再配置機能を有するプロセッサアレイシステム
US20160163020A1 (en) Image processor, method of operating the same, and application processor including the same
WO2020167360A1 (en) Image processor complex transfer functions
JP4894218B2 (ja) 半導体集積回路
KR20240141075A (ko) 게이트 구동 회로 및 이를 포함하는 표시 장치
KR101351558B1 (ko) 데이터 변환 장치 및 방법
JP2006173876A (ja) 画像処理装置および画像処理方法
JP2012165305A (ja) 画像処理装置および画像形成装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant