CN103136721A - 内联图像旋转 - Google Patents

内联图像旋转 Download PDF

Info

Publication number
CN103136721A
CN103136721A CN2012105041189A CN201210504118A CN103136721A CN 103136721 A CN103136721 A CN 103136721A CN 2012105041189 A CN2012105041189 A CN 2012105041189A CN 201210504118 A CN201210504118 A CN 201210504118A CN 103136721 A CN103136721 A CN 103136721A
Authority
CN
China
Prior art keywords
pixel
source images
block buffer
rotation
piece
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
CN2012105041189A
Other languages
English (en)
Other versions
CN103136721B (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 CN103136721A publication Critical patent/CN103136721A/zh
Application granted granted Critical
Publication of CN103136721B publication Critical patent/CN103136721B/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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/606Rotation of whole images or parts thereof by memory addressing or mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • G09G5/373Details of the operation on graphic patterns for modifying the size of the graphic pattern
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0492Change of orientation of the displayed image, e.g. upside-down, mirrored
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

实施例涉及内联图像旋转。用于执行图像的内联旋转的装置包括旋转单元,用于按基于要执行的指定旋转的顺序读取来自源图像的像素。源图像被分割为多个块,块基于它们将位于已旋转图像中的位置而被处理,每个块被存储在块缓冲器中。块缓冲器内的目标像素地址被计算并存储在查找表中,当像素通过旋转单元从源图像取回时,读取查找表以确定在对应的块缓冲器中将像素写到哪里。

Description

内联图像旋转
技术领域
本发明总体上涉及图像信息处理,更特别地,涉及用于旋转图像的方法和机构。
背景技术
计算设备且尤其是移动设备通常具有有限的存储资源和限量的电源例如电池。具有显示器的计算设备通常包括不同类型的图形硬件来操纵和显示视颜和图像。图形硬件能够执行许多不同类型的操作来生成和处理想要用于显示的图像。由图形硬件执行的一种常见操作是图像旋转。典型地,采用大缓冲器来旋转图像。然而,这些缓冲器需要大量硅面积并且会消耗额外的功率,增加图形硬件的成本并降低移动设备的电池寿命。
发明内容
提供旋转图像的系统和方法。
在各种实施例中,提供一种装置,其可以执行源图像的内联旋转以生成旋转了的图像。该装置可以是多级图像处理管线的一部分。该装置可以包括抓取单元,其用于从存储器抓取源图像像素的抓取单元,并可以配置为产生像素在储存于存储器中的源图像内的地址。该抓取单元还可以基于对源图像执行的旋转类型生成按顺序的像素地址。源图像可以被分割成多个块(tile),并且分割可以基于所执行的旋转。像素可以逐块从源图像抓取。
该装置还可包括一个或多个块缓冲器用于存储所取回的像素。像素可以储存在块缓冲器(或多个块缓冲器)内的目标位置中,该目标位置可以基于所执行的旋转。在一实施例中,每个块缓冲器可以包括多个分开独立的随机存取存储器(RAM)用于储存来自图像的给定旋转块的一部分数据。在各种实施例中,块缓冲器(或多个块缓冲器)中的像素可以由图形处理管线中的下一级(stage)来读取和处理。
通过下面对这里给出的方案的详细描述,这些和其他特征和优点将对本领域普通技术人员变得显而易见。
附图说明
通过结合附图参考下面的描述,可以更好地理解所述方法和机构的以上和其他优点,附图中:
图1是框图,示出旋转单元的一实施例;
图2是根据一个或多个实施例的查找表;
图3是框图,示出旋转块缓冲器的一实施例;
图4示出根据一个或多个实施例的三个分割图像;
图5是分割了的源图像和四个块缓冲器之间的对应关系的一实施例的框图;
图6是四个块缓冲器和一部分分割旋转图像的一实施例的框图;
图7是块缓冲器的一实施例的框图;
图8是可执行的各种旋转的一组框图;
图9是概括流程图,示出以内联方式旋转像素的方法的一实施例;
图10是概括流程图,示出执行图像的内联旋转的方法的一实施例;
图11是系统的一实施例的框图;以及
图12是计算机可读介质的一实施例的框图。
具体实施方式
在下面的说明中,阐述了许多特定细节以提供对这里给出的方法和机构的透彻理解。然而,本领域普通技术人员应认识到,可以实践各种实施例而无需这些特定细节。在一些例子中,已知的结构、部件、信号、计算机程序指令和技术未被详细示出以避免模糊了这里描述的方案。将理解,为了图示的简单和清楚,图中所示的元件不一定是按比例绘制的。例如,一些元件的尺寸可以相对于其他元件被夸大。
本说明书包括对“一实施例”的提及。在不同上下文中出现的短语“在一实施例中”并不一定指的是同一实施例。特定的特征、结构或特性可以以与本公开一致的任何合适方式组合。此外,贯穿本申请使用时,词语“可以”在允许的意义上使用(即,意味着有可能),而不是在强制性意义上使用(即,意味着必须)。类似地,词语“包括”、“包含”和“含有”意味着包括但不限于。
术语。下面的段落提供用于在本公开(包括所附权利要求)中出现的术语的定义和/或语境。
“包括”。该术语是开放式的。如在所附权利要求中使用时那样,该术语不排除其他结构或步骤。考虑描述“一种装置,包括抓取单元......”的权利要求,这样的权利要求并没有排除该装置包括其他部件(例如,处理器、高速缓冲存储器、存储器控制器)。
“配置为”。各种单元、电路或其他部件可以被描述或声称为“配置为”执行一项或多项任务。在这样的语境中,“配置为”被用于隐含结构,表明单元/电路/部件包括在操作期间执行该一项或多项任务的结构(例如,电路)。这样,可以说单元/电路/部件被配置为执行该任务,即使当特定的单元/电路/部件当前不运行时(例如,未开启)。与语言“配置为”一起使用的单元/电路/部件包括硬件,例如电路、存储可执行来实施该操作的程序指令的存储器等。描述单元/电路/部件被“配置为”执行一个或多个任务明确不意欲对该单元/电路/部件援引35U.S.C.§112第六款。另外,“配置为”可以包括一般结构(例如,一般电路),其由软件和/或固件操纵(例如,FPGA或执行软件的通用处理器),从而以能够执行当前的一项或多项任务的方式操作。“配置为”还可以包括使制造工艺(例如,半导体造设施)适于制造器件(例如,集成电路),该器件适于实施或执行一个或多个任务。
“第一”、“第二”等。这里使用时,这些术语用作以它们为前缀的名词的标签,不暗示任何类型的排序(例如空间、时间或逻辑上),除非明确地这样定义。例如,在具有四个块缓冲器的旋转单元中,术语“第一”和“第二”块缓冲器可用于指示四个块缓冲器中的任意两个。
“基于”。这里使用时,这个术语被用来描述影响决策的一个或多个因素。这个术语不排除可影响决策的其他因素。也就是说,决策可以单独基于那些因素或者至少部分地基于那些因素。考虑短语“基于B确定A”。虽然B可以是影响A的决策的因素,但是这样的短语不排除A的决策还基于C。在其他例子中,A可以是单独基于B被确定。
现在参考图1,示出示范旋转单元的一实施例的框图。在各种实施例中,旋转单元10可以包括在芯片上系统(SoC)内的图形处理管线中。在一实施例中,图形处理管线可以是单独的处理器芯片或协同处理器(co-processor)。在一些实施例中,图形处理管线可以传递图形数据给显示控制器或显示设备。在另一些实施例中,图形处理管线可以传递图形数据到存储器中的储存位置,用于进一步处理或者用于稍后由显示设备使用。在另一些实施例中,旋转单元10可以包括在集成电路(IC)、专用集成电路(ASIC)、装置或任意各种其他类型设备中。
源图像15可以是静态图像或视频流的帧。源图像15可以由称为像素的大量离散图像元素来表示。在数字成像中,图像或视频帧中最小的信息项是“像素”。像素一般布置成规则的二维网格。源图像15中的每个像素可以由一个或多个像素成分来表示。像素成分可以包括用于表现图像的颜色空间中的每种颜色的颜色值。例如,颜色空间可以是红-绿-蓝(RGB)颜色空间。每个像素因此可由红色成分,绿色成分和蓝色成分表示。成分值可以表示像素中对应颜色的明亮度或强度。还可以采用其他颜色空间,例如亮度和色度表示(YCrCb)。此外,可以包括其他像素成分。例如,用于混合的阿尔法值可以和RGB成分一起被包括以形成ARGB颜色空间。
旋转单元10可以配置为从源图像15中的源位置读取像素并将它们写入到与目标图像中的目标位对应的块缓冲器24-30中的位置。旋转单元10可以执行90度的倍数的旋转和/或沿水平或垂直方向的翻转。特定旋转可以由旋转配置位(bit)来指示,其可以被发送给旋转单元10的输入端(图1中未示出)。贯穿本公开使用时,术语“旋转”可以指的是该词的传统意义上的旋转,诸如90度、180度或270度旋转(顺时针或逆时针)。另外,“旋转”可以指翻转(即,图像的x-交换(x-swap)或y-交换方向变化)。
旋转单元10可包括抓取单元12来以特定顺序从存储于存储器16中的源图像15抓取像素。在一实施例中,抓取单元12可以产生像素在源图像15中的地址。抓取单元12可基于所执行的旋转类型确定地址产生的顺序。抓取单元12可使用所产生的地址发出读取请求,存储器管理单元(MMU)14可使用该地址来执行从存储器16读取的操作。在另一实施例中,在MMU14和存储器16之间可包括逻辑交织接口(logic fabric interface)(未示出)。在一实施例中,抓取单元12可执行直接存储器访问(DMA)读取操作来从源图像15读取像素。抓取单元12可包括DMA控制器来执行DMA读取操作。
MMU 14可以配置为执行存储器地址转换。在一实施例中,MMU 14可以利用虚拟编址来允许抓取单元12编址与源图像15对应的虚拟地址范围。MMU14可以执行虚拟到物理转换来将虚拟地址映射到存储器16的实际物理地址。在各种实施例中,MMU 14可以允许抓取单元12预取转换以避免因为等候抓取不中的命令的转换所引起的延时。在一实施例中,抓取单元12可以包括预取引擎(未示出)从而为预取(prefetch)生成虚拟地址。在该实施例中,MMU 14可包括预取单元(未示出)来处理来自抓取单元12的预取请求。在一实施例中,抓取单元12可以在正被抓取的当前块的一块之前发送预取请求。预取请求可以用来填充MMU 14内的流转换表(STT)(未示出)。当抓取单元12发出实际存储器请求时,可以利用STT立即转换该请求。
抓取单元12可以配置为从源图像15抓取像素以及将像素写到块缓冲器24-30中的适当位置。在一实施例中,抓取单元12可以发出具有与一个或更多像素对应的特定事务标识符(ID)的读取请求。抓取单元12可以计算一个或更多像素在旋转了的图像的块中的目标位置。然后,抓取单元12可以将事务ID存储在查找表单元18中的条目中,像素目标位置可以被包括在该条目中。当从存储器16收到用于该特定事务ID的像素时,查找表18中的对应条目可以被取回并且位置信息可以被用来确定在哪里将像素写入块缓冲器24-30的给定块缓冲器中。
在一实施例中,查找表单元18可以是随机存取存储器(RAM)。在各种实施例中,查找表18可以包括各种数量的条目。所抓取的像素可以基于存储在查找表18中的位置数据而存储在块缓冲器24-30中的目标位置中。由于像素被写入到块缓冲器24-30的给定块缓冲器中的目标位置,所以它们被有效地重新定位。
每个块缓冲器24-30可以存储旋转图像的给定块。源图像15和对应的旋转图像每个可以基于所指定的旋转分摊到多个块中。在一实施例中,旋转图像中的块可以是16行像素乘128列像素。然而,块大小在其他实施例中可以变化。源图像15的宽度可以大于块的宽度,从而多个块可以用来组成源图像15的每行。此外,源图像15的长度可以大于块的长度,从而多个块可以用来组成源图像15的每列。每个块缓冲器24-30可存储源图像15的给定旋转块,在块缓冲器已经被管线中的下一级读取之后,块缓冲器然后可以被填充源图像15的新块。在一实施例中,每种颜色成分可以包括四个块缓冲器用于存储旋转图像的四个块。例如,如果源图像15以ARGB格式表示,那么可以有四个块缓冲器用于阿尔法颜色成分,四个块缓冲器用于红色成分,四个块缓冲器用于绿色成分,四个块缓冲器用于蓝色成分。
在一实施例中,块缓冲器24-30中存储的块,其构成旋转图像的一部分,可以被传送到图像处理管线的下一级。在一实施例中,管线的下一级可以是缩放器单元(例如,缩放器32)以放大或缩小目标图像的旋转块。缩放器32表示任意数量的垂直和水平缩放器,其可以被利用在管线内。在另一实施例中,管线中的下一级可以是缩放器32之外的某些其他单元(例如,色彩空间转换单元、归一化单元、采样率缩降单元)。在又一实施例中,旋转单元10可以传送目标图像的旋转块给显示单元(未示出)。在再一实施例中,旋转单元10可以提供目标图像的旋转块给存储器16或另一储存位置。
在一实施例中,由抓取单元12生成的每个读取请求可以读取多达64字节的数据。在另一些实施例中,读取请求可以请求其他量的数据。在一实施例中,每个读取请求可以指向源图像15的块的一排(即,行)。如果用于旋转了的图像的目标块大小是16行乘128列,且所指定的旋转是90或270度,那么源图像15可以被分割为16列乘128行的块。抓取单元12可以抓取块的顶行并且然后逐行下移到块的底部。每个抓取可以请求来自源图像15的块的一行的像素。可以采用一个或多个抓取来取回整行16个像素,然后抓取将下移到下一行以取回下一个16像素,然后该过程可以继续,直到整个块的128行已经被取回。来自源图像15的一行的16个像素将形成所指定(90或270度)旋转的旋转图像的单个列。在另一些实施例中,可以采用其他块大小(例如,256乘24、64乘16、512乘32),且可执行其他类型的旋转。
在一实施例中,当像素被旋转单元10接收时,可以对在块缓冲器24-30中哪里储存像素作出实时决策。该决策可以基于查找表18中存储的位置信息。在一些实施例中,像素可以不按顺序返回,并且可以基于标签数据路由到块缓冲器24-30中的正确位置,其中标签包含像素目的地信息。
抓取单元12可以存储事务ID和像素目的地到查找表18中。像素数据可以不按顺序返回并且可以被传送给查找表18。查找表18可以传送像素给位扩展单元20从而根据源图像15的原生格式和旋转图像的目标格式扩充每像素的位(bit)数。如果从存储器取回的像素与管线中的下一级(即,缩放器32)使用的是相同大小的话,可以不包括位扩展单元。在一些实施例中,混合单元22可以重新排列所抓取的像素的顺序。例如,在一实施例中,像素可以按照蓝、绿、红和阿尔法颜色成分的顺序接收。混合单元22可以将像素重新排序为阿尔法、红、绿和蓝颜色成分的顺序。
用来存储每个像素的位数可取觉于所使用的特定格式。例如,一些系统中的像素可能需要8位,而另一些系统中的像素可能需要10位,等等,在各种系统中使用任意各种各样的每像素位数。在一实施例中,源图像15可以包括由8位表示的像素。图形管线可以采用10位的像素,因此从源图像15接收的像素可能需要通过位扩展单元20从8位扩展为10位。注意,在一些实施例中,位扩展单元20和混合单元22可以不被包括或者可以是通过单元(pass-throughunit)。在一些实施例中,所抓取的像素可以直接传送到块缓冲器24-30,而不通过位扩展单元20和混合单元22。
尽管查找表18、位扩展单元20以及混合单元22示为是抓取单元12的部件,但这仅用于示范,在另一些实施例中,单元可以通过其他适合的方式来布置。例如,在另一实施例中,查找表18、位扩展单元20和/或混合单元22可以是与抓取单元12不同的分开单元。
每个块缓冲器24-30可以对应于旋转图像的不同块。在另一些实施例中,除了4个以外,可以使用其他数量的块缓冲器来存储来自旋转块的像素。另外,每个块缓冲器可以包括多个RAM,每个RAM可以存储给定图像块的单行。例如,在一实施例中,每个块缓冲器可以包括16个单独的RAM,对应于图像块的16行。其他实施例可以使用16以外的其他行数的块大小。在这些实施例中,每个缓冲器中可以有与每块的行数对应的其他数量的RAM。例如,在另一实施例中,如果块大小为32行乘128列,那么每个块缓冲器可以有32个RAM。
图1所示的部件可以利用任何适合的总线和/或接口机构彼此耦接。在一些实施例中,这些部件可以采用高级微控制器总线架构
Figure BSA00000815186900071
协议(来自
Figure BSA00000815186900072
控股)或任何其他适合的用于逻辑块的连接和管理的芯片上互连规范而被连接。AMBA总线和/或接口的例子可以包括先进可扩展接口(AXI)、先进高性能总线(AHB)、先进系统总线(ASB)、先进外围总线(APB)以及先进跟踪总线(ATB)。
注意,另一些实施例可以包括部件的其他组合,包括图1所示部件和/或其他部件的子集或超集。虽然给定部件的一个实例可以示于图1中,但是其他实施例可以包括给定部件的一个或多个实例。类似地,贯穿本具体实施方式部分,可以包括给定部件的一个或多个实例,即使仅示出一个,和/或可以使用仅包括一个实例的实施例,即使多个实例被示出。
现在参照图2,示出查找表的一实施例。查找表18的每个条目可以包括多个数据域,包括事务标识符(ID)域、块缓冲器编号域、行(排)编号域和列编号域。事务ID域可以对应于针对源图像15内的一个或多个地址的特定读取请求。抓取单元12(图1)在发出针对一个或多个像素的读取请求时可以在查找表18中存储与读取请求对应的条目。每个条目可包括位置坐标,其指示源像素应位于旋转后图像的块中什么位置。在一实施例中,旋转后图像的块可以被存储在块缓冲器中,像素可以通过整个图形处理管线的下一级从块缓冲器读取。
当与读取请求对应的像素被从存储器取回时,查找表18中的对应条目可以被用来确定在块缓冲器中的什么位置存储所取回的像素。例如,当对应于读取事务ID43的数据从存储器返回时,旋转单元可使用用于事务ID43的条目以在0行24列的起始位置将像素存储到块缓冲器24中。在一实施例中,在单个事务中取回的像素数量可以是8。在另一实施例中,其他数量的像素可以在单个事务中被取回。
查找表18中示出的条目仅用于示范。在另一些实施例中,查找表18可以包括8个以下或者8个以上条目,并且查找表18可以按不同方式组织并包含其他信息域。例如,在一实施例中,表示旋转类型的旋转配置位可以存储在表18中。在另一实施例中,每个条目可以包括有效位来表示什么时候该条目被使用过且因此可以被用于随后事务ID的另一条目所覆盖。在另一些实施例中,其他信息类型可以被存储在查找表18中,查找表18可以按任何适合的方式组织。
现在参照图3,示出旋转块缓冲器的一实施例的框图。块缓冲器24可以包括16个单独的行,每行可以是单独的RAM。16个单独的RAM可以被用来存储图像块的单独行,例如行0、行1、行2等,直到行15。每个RAM可以存储与旋转图像的块的单独行关联的像素。在这个实施例中,块大小可以是16行乘128列。在另一些实施例中,可以使用其他大小的块,块缓冲器24可以包括与块中的行数对应的其他数量的RAM。
在一实施例中,图形管线中的下一级可以是垂直缩放器单元。垂直缩放器单元可以在单个时钟周期内从块缓冲器24抓取整列像素。在一些实施例中,块缓冲器24的每个RAM可以允许每时钟周期单次存取。因此,块缓冲器24布置为每行存储在单独的RAM中,从而垂直缩放器能够在每个时钟周期中从每行读取单个像素。在另一些实施例中,根据图形管线中的下一级如何从块缓冲器24读取数据,块缓冲器24可以按其他方式构造。
现在参照图4,示出三个分割的图像。如果没有执行旋转,源图像的分割由源图像50描绘。源图像50被分割成8个块,标记为(0,0)-(2,2),块被处理的顺序从左上角开始,沿最左列的块移动,开始是标记为(0,0)、(0,1)和(0,2)的框。然后,在最左列被抓取之后,可以抓取右边的下一列(块(1,0)、(1,1)和(1,2)),以此类推。
执行90度顺时针旋转的源图像分割由源图像框52描绘。在这种情况中,源图像的分割基于所指定的旋转,从而要被处理的第一块是源图像52的左下块。在执行90度旋转之后,源图像52的左下块将变为旋转图像54中的左上列,这是为什么源图像52的左下块是要被处理的第一块。源图像52的块将在底行的块上被处理,始于最左块(0,0)并且继续到块(0,1)、(0,2)、(0,3)以及(0,4)。然后顶行的块可以被处理,从块(1,0)到块(1,4)。源图像52的块的处理以90度旋转确定的方式进行,使得块可以如执行指定旋转之后它们所位于的那样被处理。所处理的第一块可以是将在旋转图像54的左上方结束的块。然后图像可以沿(旋转图像54的)第一列块继续被处理,然后进行到右边的下一列,以此类推。旋转图像54描绘了在源图像52已经被处理并且被旋转单元(例如,图1的旋转单元10)旋转之后目标图像所呈现的样子。针对其他类型的旋转(90度旋转之外的旋转)的源图像分割可以基于所执行的旋转的特定类型以类似方式实施。此外,图4所示的图像和块的大小仅用于示范,可以以类似方式处理具有其他块数量和大小的其他图像。
现在参照图5,示出分割源图像和块缓冲器之间的对应关系的一实施例。源图像52(针对90度顺时针旋转被分割)示于图5中,箭头连接被处理的首先四个块((0,0)、(0,1)、(0,2)和(0,3))和可存储块的对应块缓冲器24-30。例如,块(0,0)可以存储在块缓冲器24中,块(0,1)可以存储在块缓冲器26中,块(0,2)可以存储在块缓冲器28中,块(0,3)可以存储在块缓冲器30中。
图5示出将块路由到用于已分割源图像52的单个颜色成分的块缓冲器。已分割源图像52的每种颜色成分可以存储在单独的块缓冲器中。例如,对于ARGB格式,所有16个块缓冲器可以被用来存储图像52的首先四个块的所有颜色成分。
在块缓冲器24-30已经被图形管线的下一级读取之后,已分割源图像52的下一四个块可以被写入到块缓冲器24-30。在一实施例中,图形管线的下一级可以从块缓冲器24-30一次读取一个,从而如果块缓冲器24已经被读取,那么已分割源图像52的下一块可以被写到块缓冲器24,然后过程将停止直到块缓冲器26已经被读取,以此类推。
现在参照图6,示出四个块缓冲器以及一部分分割了的旋转图像。块缓冲器24-30可以存储如图5所示的来自源图像52的四个块。来自源图像52的这四个块可以对应于旋转图像54中所示的四个块((0,0)、(0,1)、(0,2)和(0,3))。像素从源图像52的原始块到旋转图像54的旋转可以在像素被写入到块缓冲器24-30时进行。旋转图像54的四个块可以被图形管线的下一级(未示出)从块缓冲器24-30读取。替选地,存储在已旋转图像54的四个块中的像素可以被传递给显示器(未示出)或传递到存储器(未示出)中的位置。
块可以被存储在已旋转图像54中,从图像的左上块开始,然后处理可以沿最左列的块进行,直到到达图像的底边缘。然后,块可以在第二最左列的顶部继续被存储,以这种方式继续进行贯穿图像的剩余部分。在另一实施例中,块可以按不同顺序存储在已旋转图像54中。
现在参照图7,示出块缓冲器的一实施例的框图。在各种实施例中,块缓冲器26的大小可以改变以匹配个体图像块的大小。在一实施例中,个体图像块可以是16行乘128列,从而每行包含128个像素。在另一实施例中,图像块的行可以通过抓取块右侧和左侧的额外七个像素而被扩展为142个像素。从块的左右边缘的相邻块中抓取像素可以被进行以便于图形管线的下一级中的15抽头多阶水平缩放过滤器。
块缓冲器26示为具有142行乘16列的大小。在一实施例中,这对应于16行乘142列的源图像块大小和90度或270度的指定旋转。每个方框中的标签指的是已旋转图像中的像素位置。像素可以从源图像抓取并基于所指定的旋转被存储在块缓冲器26中的适当位置。块缓冲器26的每个方框中的标签指的是已旋转图像的块中的像素位置。
可以利用块缓冲器26中所示的像素布置以允许多个像素在单个时钟周期中被写到块缓冲器26。例如,在一实施例中,块缓冲器26的像素的每个垂直布置可以对应于单独的RAM。这样,RAM 0-15中的每个可以仅允许单个像素在单个时钟周期中被写入或读取。因此,基于像素数据如何从原始的源图像被抓取,像素被布置在每个RAM中使得每个时钟周期最多仅一个像素可能需要被写入到RAM或从RAM读取。
在一实施例中,像素可以按每次抓取从单个行抓取的方式从原始源图像抓取,并且如果有旋转,那么每组所抓取像素可以被写入到块缓冲器26中的单个行(例如,0行-0列、1行-0列等),如果没有旋转,则可以被写入到块缓冲器26中的对角线(例如,0行-0列、0行-1列、0行-2列等)。此外,该像素布置允许图形管线的下一级在单个时钟周期中从块缓冲器26读出以旋转图像的单个列为目标的16个像素。注意,图7所示的块缓冲器26的大小仅用于示范,在另一些实施例中可以采用其他块大小。另外,在另一些实施例中,块缓冲器中的其他像素布置是可行的且是可预期的。
现在参照图8,示出可执行的各种类型的旋转的框图。对于每种类型的旋转有两个框,一个框显示标为“源”的原始源图像,第二框显示特定类型旋转(例如,90度、270度、X翻转)之后的最终图像。每个源图像旁边的两个箭头表示像素扫描方向(实线)和行扫描方向(虚线)。像素扫描方向表示将从源图像的每个块扫描(即,抓取)像素的方向。行扫描方向表示将从源图像的每个块扫描行的方向和块将被扫描的方向。像素以及行扫描方向确定抓取单元例如抓取单元12(图1中)生成读取地址的顺序。抓取单元12可以通过对图像的块进行操作而不是对整个图像或者全部行或列进行操作而旋转和/或翻转源图像。抓取单元12可以配置为以逐块方式从源图像抓取像素,从源图像的以旋转图像的左上块为目标的块开始。
对于16种不同的旋转和翻转的组合,示出8种独特的图像取向。旋转和翻转的一些组合产生相同的图像取向,因此图8中仅示出一次。例如,90度旋转接着沿x(水平)方向的翻转相当于270度旋转接着沿y(垂直)方向的翻转。
注意,图8所示的例子不是可以执行的旋转类型的穷举列表,可以执行其他类型的旋转。另外,图8所示的示例性图像是方形图像,然而矩形源图像也可以被此处公开的方法和机构使用。此外,在另一些实施例中,可以使用其他像素和行扫描方向。
现在参考图9,示出以内联方式旋转像素的方法的一实施例。为了论述方便,该实施例中的步骤按序列顺序示出。应注意,在下述方法的各种实施例中,所描述的一个或多个元素可以同时执行,以与所示不同的顺序执行,或者可以被完全省略。需要时,还可以执行其他额外元素。
在一实施例中,可以按照基于指定旋转的顺序对源图像的像素发出抓取请求(框60)。源图像可以被分割成块,像素可以从每个块抓取,从块的顶行开始并沿块逐行移动。将源图像分割为块可以基于所执行的指定旋转。例如,在块大小为16行乘128列的一实施例中,如果指定旋转为90度,那么源图像将被分割成具有128行乘16列的块。每行可包含16个像素,行可以从顶行开始被抓取,对于总共128行下移到底行。基于90度旋,从源图像读取的每行将变成已旋转图像中的一列。源图像的被抓取的第一块可以是将作为已旋转图像的左上块结束的块,然后可以沿沿已旋转图像的第一列块进行块的抓取。然后,右边的下一列块(因为他们将要出现在已旋转图像中)可以被抓取,以此类推,直到源图像的所有块都已被抓取。
接下来,可以计算像素的目标位置(框62)。目标位置可以基于指定旋转来计算。例如,如果指定旋转是90度,那么从源图像中的块读取的每行的目标是已旋转图像的对应块中的列。源图像中的块的顶行的目标将是已旋转图像中的对应块中的最右列,从源图像块的顶行起的第二行的目标是已旋转图像块的从最右列起的第二列,以此类推。
然后,所计算的目标位置可以存储在表中(框64)。在一实施例中,所计算的目标位置可以在发出抓取请求时同时存储到表中。当从源图像接收像素时,可以在表中查找对应的目标位置(框66)。表可以存储用于所发出的抓取请求的条目,条目可以基于请求的事务ID被识别。然后,所接收的像素可以在所计算的目标位置存储在块中(框68)。可以重复这些步骤,直到源图像的所有块的所有像素已经根据所指定的旋转被抓取并存储在块缓冲器的适当位置。块缓冲器可以由下一级读取或被存储到存储器,使得每个块缓冲器可以被再次用于存储来自源图像内的后续块的像素。
现在参照图10,示出用于执行图像的内联旋转的方法的一实施例。为了论述方便,本实施例中的步骤按序列顺序示出。注意,在下述方法的各种实施例中,所描述的一个或多个元素可以被同时执行,以与所示不同的顺序执行,或可以被完全省略。需要时也可以执行其他附加元素。
在一实施例中,源图像可以被分割为多个块(框70)。源图像的分割可以基于被执行的指定旋转。分割可以不是改变源图像内容或源图像存储在存储器中的位置的实际物理分割。分割可以是虚拟分割,将源图像虚拟分割为块的逻辑排列。可读取来自源图像的第一块的像素(框72)。在一实施例中,源图像的第一块可以基于所指定的旋转从源图像的多个块中选择。以旋转图像的左上块为目标的源图像的块可以是从源图像选择的第一块。接下来,像素可以被存储在块缓冲器中的目标位置(框74)。目标位置可以基于正被执行的指定旋转来计算。
接下来,响应于检测到块缓冲器已经被图形管线中的下一级读取(条件框76),像素可以从源图像的后面的块读取(框80)。然后,来自源图像的后面的块的像素可以被存储在块缓冲器中(框82)。如果块缓冲器没有被图形管线中的下一级读取(条件框76),那么旋转单元可以停止一个或多个时钟周期(框78)。在停止了一个或多个时钟周期之后,旋转单元可以再次确定块缓冲器是否已经被图形管线中的下一级读取(条件框76)。在一实施例中,图形管线中的下一级可以是用于对已旋转图像进行垂直和水平缩放的缩放单元。
第一块和后续块的顺序可以基于指定旋转来选择。例如,从源图像选择的第一块可以是将作为已旋转图像的左上块结束的块。然后,从源图像选择的第二块可以是将在已旋转图像的左上块下面结束的块。这个过程可以针对将要作为已旋转图像中的最左列块结束的块继续,然后右边的下一列可被处理,以此类推。如果最近处理的块是源图像的最后一块(条件框84),那么方法可以结束。源图像的最后一块可以以已旋转图像的右下块为目标。如果之前的块不是最后一块,那么方法可以返回到条件框76。
在另一些实施例中,基于各个块在已旋转图像中的位置读取各个块的顺序可以改变。例如,在另一实施例中,将位于已旋转图像中的右上块可以是所处理的第一块,然后沿已旋转图像的最右列继续对块进行处理。然后,可以按照从右到左的顺序处理块的列。基于块在已旋转图像中的位置将块写入到块缓冲器中的各种顺序是可行且可预期的。在一些实施例中,多个块缓冲器可以被用来同时存储已旋转图像的多个块。当一个或多个块缓冲器被下一级读取或者被传送给显示单元或存储位置时,每个块缓冲器可以被来自像素的另一块的像素填充。
下面参照图11,示出了系统90的一实施例的框图。如所示,系统90可以表示桌面计算机100、膝上型计算机110、平板计算机120、蜂窝电话130或其他电子设备的芯片、电路、部件等。在所示实施例中,系统90包括耦接到到外部存储器92的集成电路98的至少一个实例。集成电路98可以包括旋转单元10(图1中的)的一个或多个实例。在一些实施例中,集成电路98可以是具有一个或多个处理器以及一个或多个图形处理管线的SoC。
集成电路98耦接到一个或多个外围设备94以及外部存储器92。还提供电源96,其向集成电路98提供电源电压以及向存储器92和/或外围设备94提供一个或多个电源电压。在各种实施例中,电源96可以为电池(例如,智能手机、膝上型或平板计算机中的可再充电电池)。在一些实施例中,可以包括集成电路98的超过一个实例(也可以包括超过一个外部存储器92)。
存储器92可以是任何类型的存储器,例如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR、DDR2、DDR3等)SDRAM(包括诸如mDDR3等的移动版本的SDRAM和/或诸如LPDDR2等的低功率版本的SDRAM)、RAMBUS DRAM(RDRAM)、静态RAM(SRAM)等。一个或多个存储器可以耦接到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。替选地,设备能安装有芯片上芯片结构、封装上封装结构或多芯片模块结构的集成电路98。
根据系统90的类型,外围设备94可以包括任何所需电路。例如,在一实施例中,外围设备94可以包括用于各种类型的无线通信的设备,诸如wifi、蓝牙、蜂窝(cellular)、全球定位系统等。外围设备94还可以包括额外的储存器,包括RAM储存器、固态储存器或盘储存器。外围设备94可以包括用户接口设备诸如显示屏(包括触摸显示屏或多点触摸显示屏)键盘或其他输入设备、麦克风、扬声器等。
现在参照图12,示出包括表示旋转单元10(图1中的)中所包含的电路系统的一个或多个数据结构的计算机可读介质140的框图的一实施例。一般来说,计算机可读介质140可以包括任何非暂时性存储介质,诸如磁或光介质,例如盘、CD-ROM或DVD-ROM,易失性或非易失性存储介质诸如RAM(例如,SDRAM、RDRAM、SRAM等)、ROM等,以及经由传输媒介或通过通信媒介诸如网络和/或无线链路传输的信号(诸如为电磁信号或数字信号)可访问的介质。
通常,计算机可读介质140上的电路系统的数据结构(或多个结构)可以由程序读取并且直接或间接地用来制造包括电路系统的硬件。例如,数据结构(或多个结构)可以包括高水平设计语言(HDL)诸如Verilog或VHDL的对硬件功能性的一个或多个行为级说明或寄存器-传输级(RTL)说明。这些说明可以被合成工具读取,其可以合成说明以产生一个或多个网表(netlist),该网表包括来自合成库的门的列表。网表包括门的集合,门也可以表示包括电路系统的硬件的功能性。网表然后可以被安置和路由以产生描述将应用于掩模的几何形状的一个或多个数据集合。掩模然后可以在各种半导体制造步骤中使用以生产与电路系统对应的半导体电路或多个电路。替选地,需要时,计算机可读介质140上的数据结构(或多个结构)可以是网表(或多个网表)(具有或不具有合成库)或数据集合(或多个集合)。在另一替选方案中,数据结构可以包括示意性程序的输出或从其导出的网表或数据集合。
虽然计算机可读介质140包括对旋转单元10的表示,但是另一些实施例可以包括对旋转单元10的各部分(例如,抓取单元12、块缓冲器24-30、查找表18)的任何部分或组合的表示。
需要强调的是,上述实施例仅是实现方式的非限制性示例。一旦完全理解了上述公开,许多变化和修改将对本领域技术人员变得显然。所附权利要求旨在解释为涵盖所有这种变化和修改。

Claims (26)

1.一种电子装置,包括:
抓取单元;以及
存储器,耦接到该抓取单元;
其中,该抓取单元配置为产生多个读取操作以从存储在所述存储器中的源图像读取像素,
其中,该多个读取操作是按照基于正在对该源图像执行的旋转的顺序产生的。
2.如权利要求1所述的电子装置,还包括一个或多个块缓冲器,其中该抓取单元还配置为将像素写入到给定块缓冲器的特定位置,其中该特定位置是基于正在对该源图像执行的旋转确定的。
3.如权利要求2所述的电子装置,其中,该源图像包括多个块,其中每个块缓冲器配置为存储源图像的单个块。
4.如权利要求3所述的电子装置,其中,每个块的宽度小于源图像的宽度,且其中每个块的长度小于源图像的长度。
5.如权利要求4所述的电子装置,其中,每个块缓冲器包括用于块的每行的单独的随机存取存储器RAM。
6.如权利要求3所述的电子装置,还包括表,所述表配置为存储目标像素位置,其中该目标像素位置对应于给定的块缓冲器中的位置,且其中该抓取单元配置为:
响应于产生对应的读取操作,将目标像素位置写入到该表中;
响应于从给定的读取操作接收到像素,从该表取回目标像素位置;以及
将所接收的像素写入到给定的块缓冲器内的目标像素位置。
7.如权利要求6所述的电子装置,其中,该表被配置为存储用于表中的每个条目的事务标识符ID,其中该事务ID对应于特定读取操作,且其中响应于从特定读取操作接收到像素,该抓取单元配置为使用该表中的对应的条目来确定给定的块缓冲器中的目标像素位置。
8.如权利要求6所述的电子装置,其中,该抓取单元配置为产生给定的读取操作,并且同时将对应的目标像素位置写入到该表中。
9.如权利要求1所述的电子装置,还包括存储器管理单元MMU,其中该抓取单元配置为产生用于多个读取操作的虚拟地址,且其中该MMU配置为:
将该虚拟地址转换为存储器内的物理地址;
对该物理地址执行读取操作;以及
将所取回的像素传递到抓取单元。
10.如权利要求9所述的电子装置,其中,该抓取单元还配置为产生预取请求以预加载虚拟地址转换。
11.一种图形信息处理方法,包括:
接收配置位,该配置位表明将要对源图像执行的选定旋转;
发出对源图像的读取请求,其中该读取请求按基于该选定旋转的顺序发出;
对于每个读取请求,计算在已旋转图像中的对应像素的目标位置,其中该已旋转图像是已执行该选定旋转之后的源图像;
将所计算的目标位置存储在表中;
接收来自源图像的像素;以及
取回所计算的目标位置并且将所接收的像素储存在块缓冲器内的所计算的目标位置处。
12.如权利要求11所述的图形信息处理方法,还包括:
将源图像分割为多个块,其中接收像素的步骤包括按基于该选定旋转的顺序从源图像读取块,且其中块缓冲器被用来存储已旋转图像的单独块。
13.如权利要求12所述的图形信息处理方法,还包括,响应于图形管线的下一级从块缓冲器抓取像素,发出对源图像的下一块的读取请求。
14.一种图形信息处理方法,包括:
发出对来自源图像的像素的抓取请求,其中发出该抓取请求的顺序基于指定旋转;
计算像素的目标位置,其中该目标位置是基于该指定旋转计算的,且其中该目标位置对应于源图像的旋转变体内的位置;以及
接收像素并在块缓冲器中将像素存储在所计算的目标位置。
15.如权利要求14所述的图形信息处理方法,还包括:
响应于发出抓取请求,将所计算的目标位置存储在表中;以及
响应于接收到像素,在表中查找所计算的目标位置。
16.如权利要求15所述的图形信息处理方法,其中,每个像素包括多种颜色成分,且其中该多种颜色成分中的每种颜色成分被存储在单独的块缓冲器中。
17.如权利要求14所述的图形信息处理方法,其中,该源图像被分割成多个块,且其中对于来自给定块的像素,抓取请求的发出从该给定块的顶行开始并且沿该给定块逐行移动。
18.一种图形信息处理方法,包括:
将源图像分割为多个块,其中该分割是基于指定旋转的;
读取来自源图像的第一块的像素;
将来自第一块的像素存储在块缓冲器内的目标位置中,其中该目标位置是基于该指定旋转计算的;
响应于检测到块缓冲器已经被图形管线中的下一级读取:
从源图像的第二块读取像素;以及
将来自第二块的像素存储在块缓冲器中。
19.如权利要求18所述的图形信息处理方法,其中,该源图像内的该第一和第二块的顺序是基于该指定旋转的。
20.如权利要求18所述的图形信息处理方法,其中,该块缓冲器包括多个单独的随机存取存储器RAM,且其中缩放单元被配置为在单个时钟周期中从每个RAM读取单个像素。
21.一种图形信息处理系统,包括:
用于接收配置位的装置,该配置位表明将要对源图像执行的选定旋转;
用于发出对源图像的读取请求的装置,其中该读取请求是按基于该选定旋转的顺序发出的;
用于对每个读取请求计算已旋转图像中的对应像素的目标位置的装置,其中该已旋转图像是已执行该选定旋转之后的源图像;
用于将所计算的目标位置存储在表中的装置;
用于接收来自源图像的像素的装置;以及
用于取回所计算的目标位置并且在块缓冲器中将所接收的像素储存在所计算的目标位置的装置。
22.如权利要求21所述的图形信息处理系统,还包括:用于将该源图像分割为多个块的装置,其中用于接收来自源图像的像素的装置按基于该选定旋转的顺序从该源图像读取块,且其中该块缓冲器被用来存储已旋转图像的单独块。
23.如权利要求22所述的图形信息处理系统,还包括,用于响应于图形管线的下一级从块缓冲器抓取像素,发出对源图像的下一块的读取请求的装置。
24.一种旋转单元,包括:
输入端,用于接收配置位,该配置位表明将要对源图像执行的选定旋转;
抓取单元,用于发出对源图像的读取请求,其中该读取请求按基于选定旋转的顺序发出,并且用于对每个读取请求计算已旋转图像中的对应像素的目标位置,其中该已旋转图像是已执行选定旋转之后的源图像;
查找表单元,用于存储所计算的目标位置;以及
多个块缓冲器,
其中,该抓取单元还配置为接收来自源图像的像素并且将所接收的像素存储到块缓冲器内的所计算的目标位置。
25.如权利要求24所述的旋转单元,还包括位扩展单元,用于根据源图像的原生格式和已旋转图像的目标格式扩展每像素的位数。
26.如权利要求24所述的旋转单元,还包括混合单元以重新排列像素的顺序。
CN201210504118.9A 2011-11-29 2012-09-28 内联图像旋转 Active CN103136721B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/306,429 US8797359B2 (en) 2011-11-29 2011-11-29 Inline image rotation
US13/306,429 2011-11-29

Publications (2)

Publication Number Publication Date
CN103136721A true CN103136721A (zh) 2013-06-05
CN103136721B CN103136721B (zh) 2015-12-09

Family

ID=47262973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210504118.9A Active CN103136721B (zh) 2011-11-29 2012-09-28 内联图像旋转

Country Status (8)

Country Link
US (1) US8797359B2 (zh)
EP (1) EP2600337A3 (zh)
JP (1) JP5632891B2 (zh)
KR (1) KR101490556B1 (zh)
CN (1) CN103136721B (zh)
AU (1) AU2012227210B2 (zh)
TW (1) TWI482122B (zh)
WO (1) WO2013081715A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111263085A (zh) * 2020-01-21 2020-06-09 中国航空无线电电子研究所 基于块式存储操作的航空显示任务旋转处理系统
CN114866855A (zh) * 2022-04-29 2022-08-05 陕西科技大学 一种异型显示屏像素数据组织与传输方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120272180A1 (en) * 2011-04-20 2012-10-25 Nokia Corporation Method and apparatus for providing content flipping based on a scrolling operation
CN103377030B (zh) * 2012-04-26 2016-12-21 华为技术有限公司 图像旋转控制方法及装置
US9934735B2 (en) * 2012-11-13 2018-04-03 Beijing Lenovo Software Ltd. Display control method and electronic device
KR102069857B1 (ko) * 2013-02-28 2020-01-23 삼성전자주식회사 자체-학습을 통해 원래 이미지를 회전하는 방법과 상기 방법을 수행할 수 있는 장치들
JP6161400B2 (ja) * 2013-05-17 2017-07-12 キヤノン株式会社 動画再生装置及びその制御方法
US20150042669A1 (en) * 2013-08-08 2015-02-12 Nvidia Corporation Rotating displayed content on an electronic device
US9571846B2 (en) * 2013-09-27 2017-02-14 Apple Inc. Data storage and access in block processing pipelines
GB2527033A (en) 2014-06-02 2015-12-16 Nokia Technologies Oy A method and technical equipment for image processing
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
KR102491622B1 (ko) * 2015-11-17 2023-01-25 삼성전자주식회사 가상 어드레스 생성기의 동작 방법과 이를 포함하는 시스템의 동작 방법
US10457066B2 (en) * 2015-11-30 2019-10-29 Hewlett-Packard Development Company, L.P. Image transformations based on defects
GB2545398B (en) * 2015-12-08 2020-02-19 Advanced Risc Mach Ltd Advance loading of memory page access data in data processing systems
KR102531741B1 (ko) 2016-01-12 2023-05-11 삼성전자 주식회사 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법
TWI786497B (zh) 2020-12-22 2022-12-11 宏正自動科技股份有限公司 影像輸出裝置、影像接收裝置及影像傳輸方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5670982A (en) * 1995-02-08 1997-09-23 International Business Machines Corporation System for fast 90-degree rotation of bi-level images
US5990912A (en) * 1997-06-27 1999-11-23 S3 Incorporated Virtual address access to tiled surfaces
US6628294B1 (en) * 1999-12-31 2003-09-30 Intel Corporation Prefetching of virtual-to-physical address translation for display data
US20050052441A1 (en) * 2003-08-12 2005-03-10 Arm Limited Display controller
CN1685363A (zh) * 2002-09-18 2005-10-19 皇家飞利浦电子股份有限公司 任意形状图像的基于块的旋转
US20070195113A1 (en) * 2006-02-15 2007-08-23 Sigmatel, Inc. Image processor and method of image rotation
US7512287B2 (en) * 2005-07-25 2009-03-31 Seiko Epson Corporation Method and apparatus for efficient image rotation

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111192A (en) * 1989-12-20 1992-05-05 Xerox Corporation Method to rotate a bitmap image 90 degrees
JP3924792B2 (ja) * 1995-02-08 2007-06-06 ソニー株式会社 画像編集装置
JPH08258344A (ja) 1995-03-23 1996-10-08 Canon Inc 印刷装置
JPH096323A (ja) * 1995-06-16 1997-01-10 Fuji Xerox Co Ltd 画像データ記憶方法および画像データ回転処理装置
US5854641A (en) 1996-09-27 1998-12-29 Apple Computer, Inc. Method and apparatus for display image rotation
JPH10208031A (ja) 1997-01-17 1998-08-07 Fuji Xerox Co Ltd 画像処理装置
JPH11146159A (ja) 1997-11-10 1999-05-28 Ricoh Co Ltd 画像形成装置
JP2001183940A (ja) 1999-12-24 2001-07-06 Canon Inc 画像形成装置および画像形成方法
JP2003338922A (ja) 2002-05-21 2003-11-28 Sony Corp 画像処理装置及び方法
US6847385B1 (en) 2002-06-01 2005-01-25 Silicon Motion, Inc. Method and apparatus for hardware rotation
TWI266228B (en) * 2004-05-07 2006-11-11 Realtek Semiconductor Corp Dynamic image display device and its method
US7576758B2 (en) 2005-03-08 2009-08-18 Texas Instruments Incorporated Using super-pixels for efficient in-place rotation of images
US7791611B1 (en) * 2006-08-24 2010-09-07 Nvidia Corporation Asynchronous reorder buffer
JP2008085450A (ja) 2006-09-26 2008-04-10 Kyocera Mita Corp 画像形成装置
US7924296B2 (en) 2007-02-20 2011-04-12 Mtekvision Co., Ltd. System and method for DMA controlled image processing
US8195008B2 (en) * 2007-06-28 2012-06-05 Broadcom Corporation Method and system for processing video data in a multipixel memory to memory compositor
JP5007272B2 (ja) 2008-05-15 2012-08-22 理想科学工業株式会社 画像形成方法および画像形成システム
JP2010114576A (ja) 2008-11-05 2010-05-20 Seiko Epson Corp 画像処理装置
US20110227920A1 (en) * 2010-03-19 2011-09-22 James Adams Method and System For a Shader Processor With Closely-Coupled Peripherals
US8405668B2 (en) * 2010-11-19 2013-03-26 Apple Inc. Streaming translation in display pipe

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5670982A (en) * 1995-02-08 1997-09-23 International Business Machines Corporation System for fast 90-degree rotation of bi-level images
US5990912A (en) * 1997-06-27 1999-11-23 S3 Incorporated Virtual address access to tiled surfaces
US6628294B1 (en) * 1999-12-31 2003-09-30 Intel Corporation Prefetching of virtual-to-physical address translation for display data
CN1685363A (zh) * 2002-09-18 2005-10-19 皇家飞利浦电子股份有限公司 任意形状图像的基于块的旋转
US20050052441A1 (en) * 2003-08-12 2005-03-10 Arm Limited Display controller
US7512287B2 (en) * 2005-07-25 2009-03-31 Seiko Epson Corporation Method and apparatus for efficient image rotation
US20070195113A1 (en) * 2006-02-15 2007-08-23 Sigmatel, Inc. Image processor and method of image rotation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111263085A (zh) * 2020-01-21 2020-06-09 中国航空无线电电子研究所 基于块式存储操作的航空显示任务旋转处理系统
CN114866855A (zh) * 2022-04-29 2022-08-05 陕西科技大学 一种异型显示屏像素数据组织与传输方法
CN114866855B (zh) * 2022-04-29 2024-01-19 陕西科技大学 一种异型显示屏像素数据组织与传输方法

Also Published As

Publication number Publication date
US8797359B2 (en) 2014-08-05
US20130135351A1 (en) 2013-05-30
AU2012227210A1 (en) 2013-06-13
JP5632891B2 (ja) 2014-11-26
TWI482122B (zh) 2015-04-21
TW201322181A (zh) 2013-06-01
KR20130060114A (ko) 2013-06-07
KR101490556B1 (ko) 2015-02-05
JP2013114675A (ja) 2013-06-10
CN103136721B (zh) 2015-12-09
WO2013081715A1 (en) 2013-06-06
EP2600337A3 (en) 2017-03-08
AU2012227210B2 (en) 2013-12-12
EP2600337A2 (en) 2013-06-05

Similar Documents

Publication Publication Date Title
CN103136721B (zh) 内联图像旋转
US11190718B2 (en) Line buffer unit for image processor
US6952214B2 (en) Method for context switching a graphics accelerator comprising multiple rendering pipelines
US6985150B2 (en) Accelerator control unit configured to manage multiple hardware contexts
TWI437507B (zh) 具有多線程執行單元之繪圖處理裝置及其記憶體存取方法
US20230237313A1 (en) Layout Parasitics and Device Parameter Prediction using Graph Neural Networks
WO2006026647A2 (en) Cache efficient rasterization of graphics data
US20130145107A1 (en) Idle power control in multi-display systems
CN106575442A (zh) 使用通过自适应着色的纹理查找的带宽缩减
US20150357009A1 (en) High-density latch arrays
CN104025185A (zh) 用于使用gpu控制器来预加载缓存的机制
US10733956B2 (en) Macro I/O unit for image processor
JP2006515939A (ja) 表示システムのためのベクトルグラフィックス回路
US9940689B2 (en) Latency-resistant sparse simulation technique, system and method
CN1132121C (zh) 图形处理器和应用该处理器的数据处理系统
CN102763071A (zh) 仅取回帧的活动区域的用户接口单元
US6771271B2 (en) Apparatus and method of processing image data
CN105072342B (zh) 图像合成装置及方法
US20140237195A1 (en) N-dimensional collapsible fifo

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