CN107209926A - 具有拜耳映射的图形处理单元 - Google Patents
具有拜耳映射的图形处理单元 Download PDFInfo
- Publication number
- CN107209926A CN107209926A CN201680007098.0A CN201680007098A CN107209926A CN 107209926 A CN107209926 A CN 107209926A CN 201680007098 A CN201680007098 A CN 201680007098A CN 107209926 A CN107209926 A CN 107209926A
- Authority
- CN
- China
- Prior art keywords
- data
- texel
- raw bayer
- bayer data
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims description 31
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000003491 array Methods 0.000 claims abstract description 30
- 238000013507 mapping Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 24
- 230000015654 memory Effects 0.000 claims description 90
- 238000001914 filtration Methods 0.000 claims description 6
- 238000004382 potting Methods 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 29
- 239000000872 buffer Substances 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 7
- 238000004040 coloring Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000011049 filling Methods 0.000 description 6
- 238000011068 loading method Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 208000001970 congenital sucrase-isomaltase deficiency Diseases 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4015—Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
一种用于图形处理的方法和制品,其中接收第一排原始拜耳数据和第二排原始拜耳数据。将所述第一排原始拜耳数据和所述第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独的对应纹素,以提供多个纹素。对所述多个纹素中的至少一者执行至少一个操作。
Description
本申请案主张2015年1月28日申请的第62/108,986号美国临时申请案的权益,所述申请案的全部内容借此以引用的方式并入本文中。
技术领域
本发明涉及图形处理,且明确地说涉及通过图形处理单元(GPU)来处理原始图像数据。
背景技术
数码相机所使用的CMOS图像传感器的输出通常为拜耳原始数据。拜耳原始数据是从包含通常为50%绿色、25%红色和25%蓝色的滤波器图案的拜耳滤波器捕获的未经进一步处理的原始图像数据。拜耳数据是“原始”的,因为在例如去马赛克的进一步处理之前,所述数据处于传感器所提供的格式。图像传感器通常仅感测任何给定位置中的一个色彩,如上文所述,拜耳滤波器通常使用滤波器图案,其为50%绿色传感器、25%红色传感器和25%蓝色传感器。在显示图像之前,其通常进行各种处理,例如去马赛克,藉此从来自在每一位置中仅捕获一个色彩的传感器的图像重构全色图像。
拜耳原始图像数据还可处于MIPI格式,其为原始传感器数据在6到14个位的深度中的标准化紧密填充,不具有填补,直到每一行的结尾(此处,“每一行”表示图像数据的每一行,其中图像数据是成行和列存在的二维阵列)。MIPI格式的数据较紧凑,但缺乏通常用以数据结构对准的目的的填补。“数据结构对准”是指存取数据且将其布置在存储器中,使得有可能确定存储器中的特定数据结构何时开始和结束的方式。标准数据格式使用填补来确保数据结构对准;因为MIPI格式的数据不具有填补,直到每一行的结尾,MIPI格式数据的跨距长度必须是预定的(例如128或256位对准)。
发明内容
在一些实例中,一种用于图形处理的装置包括:高速缓冲存储器;以及纹理管线,其被布置成:接收来自高速缓冲存储器的第一排原始拜耳数据,以及来自高速缓冲存储器的第二排原始拜耳数据;将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独的对应纹素,以提供多个纹素;以及对所述多个纹素中的至少一者执行至少一个操作。
在一些实例中,一种用于图形处理的方法包括:接收第一排原始拜耳数据和第二排原始拜耳数据;将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素,以提供多个纹素;以及对所述多个纹素中的至少一者执行至少一个操作。
在一些实例中,一种用于图形处理的装置包括:用于接收第一排原始拜耳数据和第二排原始拜耳数据的装置;用于映射第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列作为单独对应纹素以提供多个纹素的装置;以及用于对所述多个纹素中的至少一者执行至少一个操作的装置。
在附图和以下描述中陈述本发明的一或多个方面的细节。本发明中所描述的技术的其它特征、目标和优点将从描述和图式且从所附权利要求书显而易见。
附图说明
图1是示出相机传感器的概念图。
图2是示出原始传感器数据的处理的概念图。
图3是示出MIPI10、MIPI12和MIPI 14格式的位填充的实例的概念图。
图4是示出拜耳数据的实例布局的概念图。
图5是说明根据本发明的技术的实例装置的框图。
图6是说明根据本发明的技术的实例过程的流程图。
图7是说明可实施本发明的技术的实例系统的框图。
图8是说明可实施本发明的技术的图7的系统的实例的框图。
图9是说明根据本发明的技术的根据图6的过程的动作中的一者的实例来将每一拜耳图案映射到纹素的实例的概念图。
图10是说明根据本发明的技术的用于寻址图9的所映射纹素的过程的概念图。
图11是说明根据本发明的技术的根据图6的过程的动作中的一者的实例对纹素执行搜集操作的实例的概念图。
图12是说明根据本发明的技术的图8的系统的一部分的实例的框图。
图13是根据本发明的技术示出图7的装置的实例的功能框图。
具体实施方式
在一些实例中,一种用于图形处理的装置包括高速缓冲存储器和纹理管线。纹理管线(例如GPU的纹理管线)被布置成接收来自高速缓冲存储器的第一排原始拜耳数据和来自高速缓冲存储器的第二排原始拜耳数据。纹理管线进一步被布置成将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素,以提供多个纹素。“二乘二”是指图像数据的两个维度,使得所述二乘二阵列包含一排中的两个邻近像素(例如第一排中的两个邻近像素)以及邻近排中的两个邻近像素(例如第二排中的两个邻近像素)。下文更详细地论述二乘二图案,例如相对于下文的图9到11,其说明此类二乘二阵列纹素。
将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素意味着在所述映射之后,原始拜耳数据的每一二乘二阵列中的四个像素捆绑在一起,使得所述二乘二矩阵中的每一束四个像素被视为对所述数据执行的操作的基本单元,与被视为对所述数据执行的操作的基本单元的每一个别像素形成对照。将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素以提供多个纹素按照定义被称作“拜耳搅和”,作为涉及将二乘二阵列映射到纹素的较短方法。(下文在图9中说明且相对于图9更详细地阐述拜耳搅和的具体实例)。纹理管线进一步被布置成对所述多个纹素中的至少一者执行至少一个操作。
所述纹理管线执行所述操作,以便为某些定制传感器应用程序实现某些预处理任务,例如相位检测自动聚焦(PDAF)传感器、红-蓝-绿-透明(RGBC)传感器、交错式高动态范围(iHDR)传感器、计算摄影以及光场计算,如将更详细地阐述。拜耳搅和允许对此类定制传感器应用程序执行的某些操作更加高效,因为所述操作是在各自对应于二乘二像素阵列的纹素层级,并不是在个别像素的层级执行。可在一次读取中实现读取操作,其原本将需要四次读取,因为在拜耳搅和之后,所存取的每一纹素含有四个拜耳像素。出于类似原因,在拜耳搅和之后对纹素的搜集操作可在一次加载中实现,其原本将需要四次加载。
另外,出于下文更详细地阐述的原因(本文后续部分中阐述的双线性滤波),在拜耳搅和之后,纹素非常适合纹理管线中的双线性滤波的高效性能。以此方式,在拜耳搅和之后,可使用纹理管线的双线性滤波能力,在纹理管线中非常高效地执行若干应用程序,包含拜耳像素合并(Bayer binning)。另外,拜耳搅和将拜耳数据绑定在一起,使得图形处理单元(GPU)中的着色器处理器上的负载减少,其中在一些实例中,纹理管线和着色器处理器两者均包含于GPU中。下文更详细地论述着色器处理器。纹理管线对纹素执行的操作的具体实例以及此类实例操作的更多细节在本文后续部分中详细描述。
所述纹理管线还可用以解封装原始MIPI数据。可能有利的是,在执行定制应用程序所需的操作之前,某些定制传感器应用程序(包含例如,相位检测自动聚焦(PDAF)传感器、红-蓝-绿-透明(RGBC)传感器、交错式高动态范围(iHDR)传感器、计算摄影和光场计算)具有对解封装的MIPI数据的存取权。解封装纹理管线中的MIPI数据可具有由于解封装MIPI数据的常规方法的显著速度优点。
如上文所阐释,MIPI数据紧密封装,MIPI数据中不存在填补,直到每一行的结尾。因为MIPI数据缺乏正常填补,所以数据结构对准较难,且MIPI数据的跨距长度必须是预定的。“解封装”数据是指将MIPI数据转换成具有足够数据结构填补的格式,使得数据可恰当地对准以供处理器存取,而不需要预定跨距长度。最标准数据格式是“解封装”。所述格式为仅紧密封装数据格式,例如需要解封装的MIPI(其缺乏标准量的数据结构填补)。本文在后续部分中论述由根据本发明的纹理管线的实例执行的MIPI解封装的较多细节。
在描述的此阶段,进一步阐释各种类型原始数据格式可能是有帮助的,例如拜耳数据和MIPI数据,使得可较好地理解本发明的某些方面。
此部分中的描述给出本文所论述的图像数据格式(例如拜耳和MIPI)的更详细阐释。数码相机可包含镜头和相机传感器,其经配置以检测光并产生彩色像素值(例如值)。图1示出相机传感器的所得彩色像素值的实例,其中通过传感器检测可见光来产生色彩像素值。传感器所产生的所得彩色像素值常常被称作原始传感器数据。如下文中更详细地解释,原始传感器数据通常处于紧密封装格式,例如拜耳滤波器马赛克像素格式,或以MIPI数据格式(例如MIPI10、MIPI12和MIPI14)封装的原始传感器数据,包含拜耳滤波器马赛克像素格式。
所述相机可进一步包含图像信号处理器。在一些实例中,所述图像信号处理器一起包含在与镜头和相机传感器相同的封装中。在其它实例中,图像信号处理器可与镜头和相机传感器分开封装。在某一实例中,图像信号处理器可包含在包含图形处理单元(GPU)的芯片上系统(SoC)上。所述图像信号处理器可经配置以接收原始传感器数据,将原始传感器数据转换为经压缩数据格式(例如JPEG文件),并将所得经压缩数据存储在图片文件中。在其它实例中,图像信号处理器可经配置以保持原始传感器数据,并将原始传感器数据保存在单独文件中。图2示出具有图像处理器的实例相机系统。
通常,在(例如通过图像信号处理器)执行额外处理之前,解封装处于紧密封装格式的原始传感器数据。原始拜耳滤波器马赛克传感器数据通常为每像素10或12位,且紧密封装(即,无任何填补地封装,直到每一行的结尾)。
现在论述MIPI数据格式。MIPI联盟是为移动行业开发接口规范的组织。MIPI联盟所开发的实例规范包含相机串行接口(CSI)规范和显示器串行接口(DSI)规范。CSI规范指定用于相机传感器与图像信号处理器之间的接口的协议。CSI的常用版本是CSI-2。DSI规范指定用于显示器处理器与显示面板之间的接口的协议。
MIPI格式使深度为6到14个位的原始传感器数据的紧密填充标准化。原始传感器数据的MIPI格式包含10位、12位和14位格式。图3示出MIPI10、MIPI12和MIPI 14格式中的位填充的实例。对于MIPI格式中的每一者,每一行像素数据在所述行的结尾与填补紧密封装。
使用10位格式的一个实例被称作RAW10格式,或MIPI10。如图3中所示,在MIPI10格式中,将每4个像素(40个位)封装到5字节组块中。首先封装每一像素的8个最高有效位(MSB),且接着将2个最低有效位(LSB)串接到最终字节中。包数据大小是5个字节中的4个像素。
使用12位格式的一个实例被称作RAW12格式或MIPI12。如图3中所示,在MIPI12格式中,将每2个像素(24个位)封装到3字节组块中。首先封装每一像素的8个最高有效位(MSB),且接着将4个最低有效位(LSB)串接到最终字节中。包数据大小是3个字节中的2个像素。
使用14位格式的一个实例被称作RAW14格式,或MIPI14。如图3中所示,在MIPI14格式中,将每4个像素(56个位)封装到7字节组块中。首先封装每一像素的8个最高有效位(MSB),且接着将6个最低有效位(LSB)串接到最终字节中。包数据大小是7个字节中的4个像素。
图4示出MIPI格式的实例布局。对于MIPI10格式,如下执行寻址计算。在结尾填补每一行或扫描线(例如“BGBGBG…”或“GRGRGR…”)。由此,跨距必须是预定的(例如128或256位对准)。在每一行内,对于像素i:
(i/4)*5=5字节段的字节地址
可使用加法器和组合逻辑来实施此计算。然而,如果需要跨越5字节边界的2个像素,那么执行所述计算的复杂性增加。在那种情况下,必须提取两个5字节组块。
现在已经论述了相关图像数据格式,本文描述根据本发明的装置和方法的实例的高级描述。因为此部分的意图是给出实例装置和方法的高级描述,所以此部分中不论述可包含实例装置和方法其中的特定环境的实例以及图5的装置501内的具体实例元件的进一步细节,以及实例装置和方法所实现的益处,而是在本文揭示内容的其它部分中论述。
图5是说明用于图形处理的装置501的实例的框图。装置501包含高速缓冲存储器530和纹理管线523。纹理管线523被布置成接收来自高速缓冲存储器530的第一排原始拜耳数据,以及来自高速缓冲存储器530的第二排原始拜耳数据。纹理管线523进一步被布置成将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素,以提供多个纹素。纹理管线523进一步被布置成对所述多个纹素中的至少一者执行至少一个操作。
在某一实例中,纹理管线523是GPU的一部分。在一些实例中,所述第一和第二排数据是图像传感器所产生的邻近排原始图像数据,且“二乘二”是指图像数据的两个维度,使得二乘二阵列包含一个排中的两个邻近像素(例如第一排中的两个邻近像素),以及邻近排中的两个邻近像素(例如第二排中的两个邻近像素)。
图6是说明用于图形处理的过程630的实例的流程图。在开始框之后,纹理管线(例如图5的纹理管线523)接收第一排原始拜耳数据和第二排原始拜耳数据(631)。在一些实例中,所述第一和第二排数据是图像传感器所产生的邻近排原始图像数据。接下来,纹理管线将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列的每一二乘二阵列映射作为单独对应纹素,以提供多个纹素(632)。纹理管线所执行的将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素以提供多个纹素的映射在本文定义为“拜耳搅和”。在拜耳搅和之后,纹理管线对所述多个纹素中的至少一者执行至少一个操作(633)。过程接着前进到返回框,其中恢复其它处理。
图7是说明可经配置以实施本发明的一或多个方面的实例系统/装置的框图。如图7中所示,系统/装置2可为个人计算机、桌上型计算机、膝上型计算机、平板计算机、计算机工作站、视频游戏平台或控制台、移动电话(例如,蜂窝式或卫星电话、陆线电话、因特网电话)、手持式装置(例如,便携式视频游戏装置或个人数字助理(PDA)、个人音乐播放器、视频播放器)、显示装置、电视机、电视机顶盒、服务器、中间网络装置、主机计算机、任何移动装置,或处理和/或显示图形数据的任何其它类型的装置。在图7的实例中,装置2可包含中央处理单元(CPU)6、系统存储器10和GPU 12。装置2还可包含显示处理器14、收发器模块3、用户接口4和显示器8。收发器模块3和显示处理器14两者可为与CPU 6和/或GPU 12相同的集成电路(IC)的部分,两者可在包含CPU 6和/或GPU 12的一或多个IC的外部,或可形成于在包含CPU 6和/或GPU 12的IC外部的IC中。
为清楚起见,装置2可包含图7中未图示的额外模块或单元。举例来说,装置2可包含扬声器和麦克风(其均未在图7中示出),以在装置2为移动无线电话或扬声器(其中装置2为媒体播放器)的实例中实现电话通信。装置2还可包含摄像机。装置2还可包含图像信号处理器(ISP)。此外,装置2中所示的各种模块和单元可能不是装置2的每个实例中必需的。举例来说,在装置2为台式计算机或经配备以与外部用户接口或显示器介接的其它装置的实例中,用户接口4和显示器8可在装置2外部。
用户接口4的实例包含(但不限于)轨迹球、鼠标、键盘和其它类型的输入装置。用户接口4还可为触摸屏,且可并入作为显示器8的部分。收发器模块3可包含电路以允许计算装置2和另一装置或网络之间的无线或有线通信。收发器模块3可包含调制器、解调器、放大器和用于有线或无线通信的其它此类电路。
CPU 6可为经配置以处理计算机程序的指令以供执行的微处理器,例如中央处理单元(CPU)。CPU 6可包括控制装置2的操作的通用或专用处理器。用户可提供输入到装置2,以使CPU 6执行一或多个软件应用程序。在CPU 6上执行的软件应用程序可包含(例如)操作系统、字处理器应用程序、电子邮件应用程序、电子数据表应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,CPU 6可执行用于控制GPU12的操作的GPU驱动程序22。用户可经由一或多个输入装置(未图示),例如键盘、鼠标、麦克风、触摸垫或经由用户接口4耦合到装置2的另一输入装置来将输入提供到装置2。
在CPU 6上执行的软件应用程序可包含指令CPU 6向显示器8渲染图形数据的一或多个图形渲染指令。在一些实例中,软件指令可符合图形应用编程接口(API),例如开放图形库API、开放图形库嵌入系统(OpenGL ES)API、Direct3D API、X3D API、RenderMan API、WebGL API或任何其它公共或专有标准图形API。为了处理所述图形渲染指令,CPU 6可将一或多个图形渲染命令发布到GPU 12(例如,通过GPU驱动程序22),以致使GPU 12执行图形数据的渲染的一些或全部。在一些实例中,待渲染的图形数据可包含例如点、线、三角形、四边形、三角形带等图形基元的列表。
在其它实例中,在CPU 6上执行的软件指令可致使GPU 12执行通用着色器,其用于执行适用于由GPU硬件的高度并行性质执行的更一般计算。此类通用应用可为所谓的通用图形处理单元(GPGPU)且可符合通用API,例如OpenCL。
GPU 12可经配置以执行图形运算来将一或多个图形基元渲染到显示器8。因此,当CPU 6上执行的软件应用程序中的一者需要图形处理时,CPU 6可将图形命令和图形数据提供到GPU 12以向显示器8渲染。所述图形数据可包含(例如)绘制命令、状态信息、基元信息、纹理信息等。在一些情况下,GPU 12可内置有高度并行结构,所述高度并行结构提供比CPU6更高效的复杂图形相关操作的处理。举例来说,GPU 12可包含经配置成以并行方式对多个顶点或像素进行操作的多个处理元件,例如着色器单元。在一些情况下,相比于使用CPU 6直接将场景绘制到显示器8上,GPU 12的高度并行性质可允许GPU 12更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器8上。
在一些情况下,可将GPU 12集成到装置2的主板中。在其它情况下,GPU 12可存在于安装在装置2的主板中的端口内的图形卡上,或可以其它方式并入在经配置以与装置2交互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU 12还可包含一或多个处理器核心,使得GPU 12可被称作多核处理器。
GPU 12可直接耦合到图形存储器40。因此,GPU 12可在不使用总线的情况下从图形存储器40读取数据且将数据写入到图形存储器40。换句话说,GPU 12可使用本地存储装置而不是芯片外存储器在本地处理数据。此类图形存储器40可被称作芯片上存储器。这允许GPU 12通过消除GPU 12经由总线读取和写入数据的需要而以更高效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU 12可不包含单独的存储器,而是经由总线利用系统存储器10。图形存储器40可包含一或多个易失性或非易失性存储器或存储装置,比如(例如)随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。图形存储器40可包含和/或耦合到高速缓冲存储器30。高速缓冲存储器30可为用作图5的高速缓冲存储器530的实例。在一些实例中,高速缓冲存储器30是GPU 12所执行得存储器提取操作的层级二高速缓冲存储器(即,GPU 12中的高速缓冲存储器未中可导致对高速缓冲存储器30的存取)。在其它实例中,高速缓冲存储器30可为三级高速缓冲存储器或类似者。
在一些实例中,GPU 12可将完全形成的图像存储在系统存储器10中。显示处理器14可从系统存储器10检索图像,并且输出致使显示器8的像素照亮以显示所述图像的值。显示器8可为显示由GPU 12产生的图像内容的装置2的显示器。显示器8可为液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。
根据本发明的技术,GPU 12可被布置成接收原始拜耳数据,并将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素,以提供多个纹素。另外,根据本发明的技术,GPU 12可进一步经配置以在相机传感器数据处于紧密封装格式(例如MIPI)时,解封装相机传感器数据。
举例来说,GPU 12可包含纹理管线523,且因此可经配置以执行本发明中所描述的实例技术。GPU 12提供用于图形处理(其包含纹素处理)的机制。因此,GPU 12可非常适合执行本发明中描述的技术,使得可将多个像素原始拜耳数据处理为单个基本单元(例如处理为用于GPU 12的纹素)。以此方式,可利用GPU 12将纹素处理为基本单元的能力来处理拜耳图像数据的四个不同像素。
图8是进一步详细说明系统800的实例的框图,其包含图7的CPU 6、GPU 12和系统存储器10的实例实施方案。如图8中所示,CPU 6可包含至少一个软件应用程序18、图形API20和GPU驱动程序22,其中的每一者可为在CPU 6上执行的一或多个软件应用程序或服务。
可用于CPU 6和GPU 12的存储器可包含系统存储器10和帧缓冲器16。帧缓冲器16可为系统存储器10的一部分或可与系统存储器10分离。帧缓冲器16可存储经渲染图像数据。
软件应用程序18可为利用GPU 12的功能性的任何应用程序。举例来说,软件应用程序18可为GUI应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用程序,或使用2D或3D图形的另一类型的软件应用程序。
软件应用程序18可包含指令GPU 12渲染图形用户接口(GUI)和/或图形场景的一或多个绘图指令。举例来说,绘图指令可包含界定将由GPU 12渲染的一组一或多个图形基元的指令。在一些实例中,绘图指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘图指令可共同地定义图形场景的全部或部分,所述图形场景包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
软件应用程序18可经由图形API 20调用GPU驱动程序22,以将一或多个命令发布到GPU 12,以用于将一或多个图形基元渲染为可显示的图形图像。在一些实例中,图元可存储在图形存储器40中。
当GPU 12从CPU 6接收命令时,图形处理管线24解码命令,且配置图形处理管线24以执行命令中指定的操作。
帧缓冲器16存储GPU 12的目的地像素。每一目的地像素可与唯一屏幕像素位置相关联。在一些实例中,帧缓冲器16可存储每一目的地像素的色彩分量和目的地阿尔法值。
在一些实例中,GPU 12包含着色器单元46、图形处理管线24、纹理管线23和图形存储器40。在一些实例中,纹理管线23可用作图5的纹理管线523的实例。一或多个着色器程序可在GPU 12中的着色器单元46上执行。着色器单元46可包含着色器处理器48,其中的每一者可包含用于提取和解码操作的一或多个组件、用于进行算术计算的一或多个算术逻辑单元、一或多个存储器、高速缓冲存储器和寄存器。
通过将执行图形处理管线24中的顶点着色器级、外壳着色器级、域着色器级、几何着色器级和像素着色器级中的一或多者的命令发送到着色器单元46,GPU 12可指定着色器单元46执行各种着色操作,例如顶点着色、外壳着色、域着色、几何着色、像素着色及类似者。在一些实例中,GPU驱动程序22可经配置以将着色器程序下载到GPU 12内包含的一或多个可编程着色器单元上。可使用高级着色语言来编写着色器程序,所述语言例如OpenGL着色语言(GLSL)、高级着色语言(HLSL)、图形C(Cg)着色语言等。经编译着色器程序可包含控制GPU 12内的着色器单元46的操作的一或多个指令。举例来说,着色器程序可包含:顶点着色器程序,其可由着色器单元46执行以执行顶点着色器级的功能;外壳着色器程序,其可由着色器单元46执行以执行外壳着色器级的功能;域着色器程序,其可由着色器单元46执行以执行域着色器级的功能;几何着色器程序,其可由着色器单元46执行以执行几何着色器级的功能;和/或像素着色器程序,其可由着色器单元46执行以执行像素着色器的功能。顶点着色器程序可控制可编程顶点着色器单元或统一着色器单元的执行,且包含指定一或多个每顶点操作的指令。
在一些实例中,可将原始拜耳图像数据传送到系统存储器10。在一些实例中,装置800可为具有提供原始拜耳图像数据的图像传感器的数码相机的一部分,可包含所述数码相机,或可耦合到所述数码相机,其中可将所述原始拜耳图像数据发射到系统存储器10。在某一实例中,可将系统存储器10中的原始拜耳图像数据发射到高速缓冲存储器30,并存储在高速缓冲存储器30中。
纹理管线23是执行纹理化功能的硬件单元的可编程管线。纹理管线23与着色器处理器48通信。在一些实例中,纹理管线23可包含本地高速缓冲存储器31。在一些实例中,本地高速缓冲存储器31是一级高速缓冲存储器。在此实例中本地高速缓冲存储器31是“一级高速缓冲存储器”意味着当执行存储器传送操作时,首先检查本地高速缓冲存储器31,只有在一级高速缓冲存储器中存在高速缓冲存储器未中的情况下,才检查其它位置。
在一些实例中,纹理管线23可执行动作,例如图6的过程630的动作。在一些实例中,纹理管线23可接收来自高速缓冲存储器30的第一排原始拜耳数据,以及来自高速缓冲存储器30的第二排原始拜耳数据,将第一排原始拜耳数据和第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素以提供多个纹素,且在一些实例中,根据图6的过程,对所述多个纹素中的至少一者执行至少一个操作。
举例来说,在一些实例中,纹理管线23从高速缓冲存储器30读取两排原始拜耳图像数据,以存取原始拜耳图像数据的若干组二乘二像素。接下来,纹理管线23可将来自高速缓冲存储器30的原始数据中的像素的每一2×2BGGR(蓝色绿色绿色红色)图案映射到“RGBA”格式的单个纹素中,例如以图9中所说明(且在紧接在前的部分中结合图9到11更详细地论述)的方式。以此方式,将每一2×2拜耳图案视为单个“RGBA”色彩。
图9是说明将拜耳图案映射到纹素中的实例的概念图。在一些实例中,输入数据是原始拜耳MIPI数据,且在其它实例中,输入数据是不处于MIPI格式的原始拜耳数据,例如改为处于八位格式或16位格式。在一些实例中,来自2×2拜耳图案的数据总是以相同方式映射,例如在一些实例中,总是将左上映射为“R”,总是将右上映射为“G”等等,如图9中所示。
如所示出,为了执行拜耳搅和,纹理管线一次接收两排数据,使得可将像素的每一二乘二图案映射到单独的纹素。相比之下,按照惯例,每一像素为单独纹素,使得按照惯例一次仅需要接收一排数据。
所述纹理管线执行2×2阵列的拜耳搅和,因为拜耳数据在二乘二阵列功能中图案化,例如在典型拜耳格式中,每二乘二阵列两个绿色像素、一红色像素,以及一个蓝色像素,如图9中说明且也在图1中说明的实例中示出,被称为2×2BGGR(蓝色绿色绿色红色)拜耳图案的格式。然而,可根据本发明的技术使用其它拜耳图案,包含但不限于RGGB(红色绿色绿色蓝色)、GBRG(绿色蓝色红色绿色)、GRBG(绿色红色蓝色绿色)、RGBC(红色蓝色绿色透明),以及RGBW(红色蓝色绿色白色)。在二乘二阵列中就像BGGR拜耳图案那样图案化RGBC和RGBW拜耳格式,且因此这些格式中的每一者受益于拜耳搅和,以根据本发明的技术,如本文所论述,将拜耳像素的每一二乘二阵列映射到单个纹素中。
图10是说明图9的所映射纹素的寻址的概念图。在一些实例中,图10中示出在拜耳排序的情况下的图像坐标(i,j)寻址。如所说明,纹素的纹理的宽度和高度可为标准拜耳纹素格式的一半。每一纹素索引包含四个色彩值的2×2矩阵。
在将2×2拜耳像素映射到对应RGBA纹素中之后,在一些实例中,纹理管线对所述纹素中的至少一者执行至少一个操作。纹理管线每存储器提取返回四个色彩值的2×2矩阵。
作为另一个实例,可使用纹理管线的双线性滤波能力来执行拜耳像素合并,其中所述拜耳像素合并可包含纹理管线所执行的双线性滤波操作。所述纹理管线也可对RGBA纹素执行例如读取的操作。在其它实例中,纹理管线可执行自适应拜耳滤波和/或拜耳统计,其中自适应拜耳滤波和/或拜耳统计可包含搜集操作,例如可对RGBA纹素中的一或多者执行的“搜集4”。在一些实例中,搜集4操作可用于在一次加载并非四次加载中提取所要的信道。图11中说明此类搜集操作的实例。
图11是说明对纹素执行搜集操作的纹理管线的实例的概念图。图11说明纹理管线操作搜集的实例对从2×2拜耳阵列搅和的“RGBA”纹素的效应。明确地说,图11说明对B信道执行的搜集操作。如上文所论述,每一单独纹素是单独的2×2拜耳阵列,每一组地址坐标指向整个2×2拜耳阵列纹素,而不是单个拜耳像素,使得在纹素层级而不是个别拜耳像素层级执行操作。如所说明的实例中示出,搜集操作的实例从四个相邻2×2拜耳阵列纹素中的每一者提取2×2拜耳图案的单个信道。纹理管线还可执行能够对拜耳数据执行的任何其它功能,包含可以常规方式对2×2拜耳阵列执行的最近和点取样等,不同之处在于在2×2像素阵列层级而不是在个别像素层级操作拜耳数据,这使得操作更高效。
如上文和下文所论述,还可对从2×2拜耳阵列搅和的“RGBA”纹素执行双线性滤波。双线性滤波是基于相同色彩的相邻像素值来求像素值的平均值的过程。线性滤波是指基于同一排中的相邻像素值的求平均(并且水平相邻像素或垂直相邻像素将在线性滤波中求平均)。双线性滤波是指基于垂直相邻者和水平相邻者两者来求像素值的平均值。双线性滤波的使用通过借助于基于相邻像素求平均值并且降低具有离群值的错误像素的效应产生较不严重的假影来实现视觉假影的减少。
双线性滤波对于从2×2拜耳阵列搅和的“RGBA”纹素显著更高效,因为当求相邻像素的平均值来利用纹理管线的双线性滤波功能时,需要显著较少的负载。
图12是说明实例装置1200的功能框图,其可用作图8的系统800的一部分。装置1200包含层级2高速缓冲存储器1230、纹理管线1223和着色器处理器1248,其可分别用作图8的高速缓冲存储器30、管线23和着色器处理器48的实例。纹理管线1223包含解封装和拜耳搅和块1271、层级1高速缓冲存储器1231、格式转换块1272和双线性最近搜集4块1273。高速缓冲存储器1231可用作图8的高速缓冲存储器31的实例。如图12中所示,解封装和拜耳搅和块1271、层级1高速缓冲存储器1231、格式转换块1272和双线性最近搜集4块1273全部驻存在纹理管线1223中。
在一些实例中,块1271包含硬件,其被布置成辨别提供到块1271的图像数据是否为MIPI数据(即,做出关于所述图像数据是否处于MIPI格式的确定),且如果所述图像数据是MIPI原始数据,那么经由块1271中的硬件来解封装MIPI原始数据。块1271可为包含硬件的解封装电路。结合能够发送原始拜耳数据作为MIPI封装的拜耳数据或解封装的拜耳图像的相机来使用装置1200的一些实例,并且装置1200高效地支持MIPI封装的拜耳数据和解封装的拜耳数据两者。在一些实例中,块1271支持归一化的和整数数据类型两者。在一些实例中,块1271将MIPI原始数据解封装为16位数据格式(即,每像素16位)。以此方式,在块1271执行解封装和拜耳搅和之后,将原始拜耳MIPI数据解封装为每纹素64位(四个16位像素)。在其它实例中,块1271可将MIPI原始数据解封装为不同于16位格式的合适格式。
在一些实例中,纹理管线1223利用被称作“纹理数据类型”或简称“纹理类型”的类型来识别不同类型纹理来进行不同类型的处理,且根据纹理来为各种纹理指派适当的纹理类型,且随后基于所识别的纹理数据类型来执行图形处理功能。然而,在一些实例中,可通过将纹理数据类型指派给并不实际表示纹理的数据来接入纹理管线1223中的硬件所执行的功能性,使得纹理管线1223中的硬件可基于所指派的纹理数据类型来对所述数据执行功能。在一些实例中,为纹理管线1223指派新的纹理数据类型,以对原始图像数据执行处理。举例来说,在一些实例中,MIPI原始数据是一个(或更多)单独纹理数据类型。纹理管线1223经配置以提供读存取作为所有数据格式的纹理。
在一些实例中,块1271包含块1271内的内置高速缓冲存储器。在一些实例中,来自层级2高速缓冲存储器1230的对将来的层级1高速缓冲存储器未中的响应存储在块1271的内置高速缓冲存储器中。在一些实例中,层级1高速缓冲存储器1231中的高速缓冲存储器未中将首先使用地址作为标记来检查块1271中的内置高速缓冲存储器。以此方式,在一些实例中,块1271的内置高速缓冲存储器有效地充当层级1.5高速缓冲存储器,因为其为层级1高速缓存与层级2高速缓存之间的中间物。1271中的高速缓冲存储器的使用增加了效率,因为在一些实例中,层级2高速缓冲存储器1230包含解封装的MIPI数据。如果不使用块1271中的层级1.5高速缓冲存储器,那么在层级1本地高速缓冲存储器1231的高速缓冲存储器未中时,可需要对层级二高速缓冲存储器1230中的高速缓存线的多个存取,因为层级二高速缓冲存储器1230中的数据处于紧密封装格式,且因此未对准。通过使用块1271中的层级1.5高速缓冲存储器,其中解封装块1271的层级1.5高速缓冲存储器中的数据,且对层级二高速缓冲存储器1230中的未对准数据的提取次数减少。并且,按照惯例,层级二高速缓冲存储器1230将处置对分裂的请求(例如使未对准数据对准的请求)。然而,因为块1271执行解封装,所以层级二高速缓冲存储器1230无需处置对分裂的请求,这增加了层级二高速缓冲存储器1230的效率。
有可能使用(图8的)图形存储器40来解封装原始MIPI数据,但这需要额外同步,因为MIPI数据紧密封装且因此未对准。具有保持解封装的像素的层级1高速缓冲存储器1231的纹理管线1223执行的MIPI解封装允许跨纹理管线1223中的多个工作项目共享原始MIPI图像数据的解封装的像素,而无需与(图8的)图形存储器40同步来确保数据是可用的。特定从层级1高速缓冲存储器1231接收数据允许保持解封装的像素,以供纹理管线1223中的多个工作项目存取,使得对原始图像数据的处理可并行发生,这允许增加的效率。并且,出于上文所陈述的原因,上文所论述层级高速缓冲存储器结构允许增加的效率。
在一些实例中,格式转换块1272将数据转换成FP(浮点)格式。块1273可对例如双线性、最近、点取样和搜集4功能的纹素执行各种功能,如上文在关于图11的论述中所论述。
在各种实例中,纹理管线1223可使用对所映射的拜耳RGBA纹素的纹理搜集操作,来提取仅B、仅G和仅R像素。另外,纹理管线1223可应用双线性滤波,其可独立地应用于B、G和R信道。
如上文所论述,归因于拜耳搅和,单个操作可有效地允许一次对四个拜耳像素执行操作(通过纹理管线1223)。举例来说,在拜耳搅和之后对RGBA纹素的读取操作一次有效地读取四个拜耳像素而不是一个拜耳像素,搜集4操作可用于在一次加载而不是四次加载中提取所要的信道,等等。
在一些实例中,装置1200提供API(例如经由框架延伸部分),藉此有可能经由API来执行块1271的各种功能,包含块1271所执行的解封装功能以及拜耳2×2像素到RGBA纹素映射(即,拜耳搅和),使得可经由API存取各种功能。因此,在一些实例中,块1271可响应于API而不是经由纹理类型来执行解封装。在一些实例中,可使用API来代替纹理类型,而在其它实例中,可使用纹理类型和API延伸部分两者,其中API延伸部分包含纹理数据。在其它实例中,纹理管线1223将纹理数据类型用于解封装功能和拜耳搅和功能。在一些实例中,可使用API来代替纹理类型,而在其它实例中,可使用纹理类型和延伸部分两者,其中API延伸部分包含纹理数据。其它实例可使用纹理类型但不使用API。在一些实例中,着色器处理器1248可提取所述纹素来执行去马赛克操作。
在一些实例中,着色器处理器1248可随后将图像数据发射到图像信号处理器(ISP)(未图示),以供进一步处理。纹理管线1223中的硬件所执行的各种功能,包含MIPI解封装和拜耳搅和,以及对解封装的“RGBA”纹素执行的各种操作(包含搜集功能和双线性滤波,等等)可充当在ISP所执行的图像信号处理之前执行的图像预处理。如本文所述的纹理管线1223中的硬件所执行的预处理可结合PDAF(相位检测自动聚焦)、RGBC(红绿蓝透明)、交错式高动态范围(iHDR)、计算摄影和光场计算等等特别有用,因为这些应用程序使用或得益于MIPI解封装和/或双线性滤波器,且因此得益于更高效的MIPI解封装和/或更高效的双线性滤波。纹理管线1223中的硬件所执行的各种功能也可作为后处理进行。也就是说,在ISP执行的功能之后,可将图像数据发送到纹理管线1223,以供上文所论述的各种操作执行。
图13是示出实例装置1302的功能方面的实例的功能框图,其可用作图7的装置2的一部分以及更详细地说相机1323的实例。GPU 1312可用作图7的GPU 12的实例。在一些实例中,原始缓冲器1354和YUV缓冲器1358各自是图8的系统存储器10的一部分的实例。图13是示出实例功能过程流而不是准确结构的功能框图,例如在图13中示出1312两次,不是因为存在两个GPU,而是因为在所说明的具体实例中,图13是功能框图,且同一GPU 1312在功能过程流中的两个不同点处执行功能。
相机1323可包含一或多个相机传感器,包含主要传感器1350和正面传感器1352(例如如布置在现代智能电话上)。传感器1350和/或传感器1352所产生的原始传感器数据(例如处于MIPI10拜耳图案格式)可存储在原始缓冲器1354中。可通过一或多个相机串行接口(CSI)解码器CSID,将原始传感器数据投送到原始缓冲器1354。CSI解码器CSID可并入有统计和按比例缩小器单元。根据本发明的技术,GPU 1312,使用GPU 1312中的纹理管线,可经配置以解封装和/或滤波所述原始传感器数据,并将解封装的数据存储回到原始缓冲器1354中。解封装的数据接着可由图像信号处理器1356用来产生处于压缩格式(例如JPEG)的图像文件。经压缩的相机数据接着可存储在YUV缓冲器1358中。此类数据接着可由GPU1312、图7的显示处理器23或图7的CPU 6操控,和/或在图7的显示器18上显示(如上文所论述,图13的装置可用作图13的装置2的一部分)。
将认识到,取决于实例,本文中描述的技术中的任一者的某些动作或事件可用不同顺序来执行,可添加、合并或全部省略(例如,实践所述技术未必需要所有所描述动作或事件)。此外,在某些实例中,可(例如)通过多线程处理、中断处理或多个处理器同时而不是依序地执行动作或事件。
在一或多个实例中,所描述的功能可用硬件、软件、固件,或其任何组合来实施。如果用软件实施,那么所述功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体;或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。
以此方式,计算机可读媒体通常可对应于(1)有形的计算机可读存储媒体,其并不包含传播信号本身,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
借助于实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。
然而,应理解,计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号等等,而是针对有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在经配置以用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可在广泛多种装置或设备中实施,包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了各种实例。这些和其它实例属于所附权利要求书的范围内。
Claims (27)
1.一种用于图形处理的方法,其包括:
接收第一排原始拜耳数据和第二排原始拜耳数据;
将所述第一排原始拜耳数据和所述第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素以提供多个纹素;以及
对所述多个纹素中的至少一者执行至少一个操作。
2.根据权利要求1所述的方法,其中所述至少一个操作包含拜耳像素合并操作、双线性滤波操作、读取操作或搜集操作中的至少一者。
3.根据权利要求1所述的方法,其中所述多个纹素中的每一纹素处于RGBA格式。
4.根据权利要求1所述的方法,其进一步包括在对所述多个纹素中的至少一者执行所述至少一个操作之后,将所述多个纹素发射到图像信号处理器。
5.根据权利要求1所述的方法,其中所述将第一排原始拜耳数据和所述第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素以提供所述多个纹素可经由应用编程接口来存取。
6.根据权利要求1所述的方法,其进一步包括:
做出关于所述原始拜耳数据是否处于MIPI格式的确定
如果确定所述原始拜耳数据处于MIPI格式,那么使用图形处理单元的纹理管线中的硬件来解封装所述原始拜耳数据。
7.根据权利要求6所述的方法,其中所述纹理管线中的所述硬件所执行的所述原始拜耳数据的所述解封装具有对应的纹理数据类型。
8.根据权利要求6所述的方法,其中可经由应用编程接口来存取所述纹理管线中的所述硬件所执行的所述原始拜耳数据的所述解封装。
9.一种用于图形处理的装置,其包括:
高速缓冲存储器;以及
纹理管线,其被布置成:
接收来自所述高速缓冲存储器的第一排原始拜耳数据和来自所述高速缓冲存储器的第二排原始拜耳数据;
将所述第一排原始拜耳数据和所述第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素以提供多个纹素;以及
对所述多个纹素中的至少一者执行至少一个操作。
10.根据权利要求9所述的装置,其中所述纹理管线被布置成使得所述至少一个操作包含拜耳像素合并操作、双线性滤波操作、读取操作或搜集操作中的至少一者。
11.根据权利要求9所述的装置,其中所述纹理管线被布置成使得所述多个纹素中的每一纹素处于RGBA格式。
12.根据权利要求9所述的装置,其进一步包括图像信号处理器,其中所述图像信号处理器被布置成在纹理处理器对所述多个纹素中的至少一者执行所述至少一个操作之后,接收所述多个纹素。
13.根据权利要求9所述的装置,其中所述纹理管线被布置成将所述第一排原始拜耳数据和所述第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素,以便以可经由应用编程接口存取的方式提供所述多个纹素。
14.根据权利要求9所述的装置,其中所述纹理管线进一步被布置成:
做出关于所述原始拜耳数据是否处于MIPI格式的确定
如果确定所述原始拜耳数据处于MIPI格式,那么解封装所述原始拜耳数据。
15.根据权利要求14所述的装置,其中所述纹理管线被布置成使得实现所述原始拜耳数据的解封装,使得所述解封装具有对应的纹理数据类型。
16.根据权利要求14所述的装置,其中所述纹理管线被布置成使得可经由应用编程接口来存取所述原始拜耳数据的解封装。
17.根据权利要求9所述的装置,其中所述高速缓冲存储器是二级高速缓冲存储器,且
其中所述纹理管线包含:
本地高速缓冲存储器;以及
解封装电路,其被布置成接收来自所述二级高速缓冲存储器的所述第一排原始拜耳数据以及来自所述二级高速缓冲存储器的所述第二排原始拜耳数据,且将所述第一排原始拜耳数据和所述第二排原始拜耳数据的所述多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独的对应纹素以提供所述多个纹素,且将所述多个纹素发射到所述本地高速缓冲存储器。
18.根据权利要求17所述的装置,其中所述解封装电路进一步被布置成:
做出关于所述原始拜耳数据是否处于MIPI格式的确定;以及
如果确定所述原始拜耳数据处于MIPI格式,那么解封装所述原始拜耳数据。
19.根据权利要求17所述的装置,其中所述解封装电路包含单独的高速缓冲存储器。
20.一种用于图形处理的装置,其包括:
用于接收第一排原始拜耳数据和第二排原始拜耳数据的装置;
用于将所述第一排原始拜耳数据和所述第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素以提供多个纹素的装置;以及
用于对所述多个纹素中的至少一者执行至少一个操作的装置。
21.根据权利要求20所述的装置,其中所述至少一个操作包含拜耳像素合并操作、双线性滤波器操作、读取操作或搜集操作中的至少一者。
22.根据权利要求20所述的装置,其中所述多个纹素中的每一纹素处于RGBA格式。
23.根据权利要求20所述的装置,其进一步包括用于在对所述多个纹素中的至少一者执行所述至少一个操作之后将所述多个纹素发射到图像信号处理器的装置。
24.根据权利要求20所述的装置,其中所述将第一排原始拜耳数据和所述第二排原始拜耳数据的多个不重叠二乘二阵列中的每一二乘二阵列映射作为单独对应纹素以提供所述多个纹素可经由应用编程接口来存取。
25.根据权利要求20所述的装置,其进一步包括:
用于做出关于所述原始拜耳数据是否处于MIPI格式的确定的装置;以及
用于在确定所述原始拜耳数据处于MIPI格式的情况下使用图形处理单元的纹理管线中的硬件来解封装所述原始拜耳数据的装置。
26.根据权利要求25所述的装置,其中所述纹理管线中的所述硬件所执行的所述原始拜耳数据的所述解封装具有对应的纹理数据类型。
27.根据权利要求25所述的装置,其中可经由应用编程接口来存取所述纹理管线中的所述硬件所执行的所述原始拜耳数据的所述解封装。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562108986P | 2015-01-28 | 2015-01-28 | |
US62/108,986 | 2015-01-28 | ||
US14/836,449 US10013735B2 (en) | 2015-01-28 | 2015-08-26 | Graphics processing unit with bayer mapping |
US14/836,449 | 2015-08-26 | ||
PCT/US2016/013468 WO2016122896A1 (en) | 2015-01-28 | 2016-01-14 | Graphics processing unit with bayer mapping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107209926A true CN107209926A (zh) | 2017-09-26 |
CN107209926B CN107209926B (zh) | 2020-11-17 |
Family
ID=56432721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680007098.0A Expired - Fee Related CN107209926B (zh) | 2015-01-28 | 2016-01-14 | 具有拜耳映射的图形处理单元 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10013735B2 (zh) |
EP (1) | EP3251081B1 (zh) |
JP (1) | JP2018503919A (zh) |
CN (1) | CN107209926B (zh) |
WO (1) | WO2016122896A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3249604B1 (en) * | 2016-05-23 | 2019-06-26 | Sony Mobile Communications Inc | Methods, devices and computer program products for demosaicing an image captured by an image sensor comprising a color filter array |
CN106604001B (zh) | 2016-11-29 | 2018-06-29 | 广东欧珀移动通信有限公司 | 图像处理方法、图像处理装置、成像装置及电子装置 |
CN106507068B (zh) | 2016-11-29 | 2018-05-04 | 广东欧珀移动通信有限公司 | 图像处理方法及装置、控制方法及装置、成像及电子装置 |
US11983062B2 (en) * | 2022-07-27 | 2024-05-14 | Qualcomm Incorporated | Power control for a decoder |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101568039A (zh) * | 2009-06-03 | 2009-10-28 | 广东威创视讯科技股份有限公司 | 一种白平衡调整方法、调整装置及摄像装置 |
CN101702753A (zh) * | 2008-07-18 | 2010-05-05 | 索尼株式会社 | 固体成像元件和相机系统 |
US20110091101A1 (en) * | 2009-10-20 | 2011-04-21 | Apple Inc. | System and method for applying lens shading correction during image processing |
US7986358B1 (en) * | 2003-02-25 | 2011-07-26 | Matrox Electronic Systems, Ltd. | Bayer image conversion using a graphics processing unit |
CN102547120A (zh) * | 2010-12-23 | 2012-07-04 | 三星电子株式会社 | 用于图像处理流水线的全局启动方法 |
JP2012178158A (ja) * | 2005-12-19 | 2012-09-13 | Nvidia Corp | グラフィックスプロセッサの並列アレイアーキテクチャ |
US8452090B1 (en) * | 2005-04-25 | 2013-05-28 | Apple Inc. | Bayer reconstruction of images using a GPU |
CN103155567A (zh) * | 2010-10-20 | 2013-06-12 | 松下电器产业株式会社 | 图像处理装置以及图像处理方法 |
US20140022268A1 (en) * | 2012-07-18 | 2014-01-23 | Samsung Electronics Co. Ltd. | Method and apparatus for data processing using graphic processing unit |
CN104143176A (zh) * | 2013-05-10 | 2014-11-12 | 富士通株式会社 | 图像放大方法和装置 |
US8904138B2 (en) * | 2011-09-28 | 2014-12-02 | Microsoft Corporation | Global distributed memory reshape operations on range-partitioned arrays |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6919895B1 (en) * | 1999-03-22 | 2005-07-19 | Nvidia Corporation | Texture caching arrangement for a computer graphics accelerator |
US6844881B1 (en) | 2002-03-29 | 2005-01-18 | Apple Computer, Inc. | Method and apparatus for improved color correction |
US6954204B2 (en) * | 2002-07-18 | 2005-10-11 | Nvidia Corporation | Programmable graphics system and method using flexible, high-precision data formats |
ITMI20031449A1 (it) | 2003-07-15 | 2005-01-16 | St Microelectronics Srl | Metodo per classificare una immagine digitale |
US8643659B1 (en) * | 2003-12-31 | 2014-02-04 | 3Dlabs Inc., Ltd. | Shader with global and instruction caches |
US8817035B2 (en) * | 2005-12-21 | 2014-08-26 | Nvidia Corporation | Texture pipeline context switch |
US8120608B2 (en) * | 2008-04-04 | 2012-02-21 | Via Technologies, Inc. | Constant buffering for a computational core of a programmable graphics processing unit |
US8854384B2 (en) * | 2010-04-06 | 2014-10-07 | Broadcom Corporation | Method and system for processing pixels utilizing scoreboarding |
US9508185B2 (en) * | 2011-05-02 | 2016-11-29 | Sony Interactive Entertainment Inc. | Texturing in graphics hardware |
US9250060B2 (en) * | 2011-08-15 | 2016-02-02 | The Johns Hopkins University | Optical coherence tomography system having real-time artifact and saturation correction |
CN103713891B (zh) * | 2012-10-09 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种在移动设备上进行图形渲染的方法和装置 |
US10158858B2 (en) * | 2012-12-27 | 2018-12-18 | Nvidia Corporation | Method and system for index compression for fixed block size texture formats and for non-linear interpolation of index values along an edge in a tile |
EP2994749A4 (en) * | 2013-01-17 | 2017-07-19 | Edico Genome Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
US9153065B2 (en) * | 2013-02-05 | 2015-10-06 | Google Technology Holdings LLC | System and method for adjusting image pixel color to create a parallax depth effect |
KR102061069B1 (ko) * | 2013-02-28 | 2020-01-02 | 삼성전자주식회사 | 텍스쳐 맵핑 파이프라인을 위한 논블로킹 방식의 텍스쳐 캐쉬 메모리 시스템 및 논블로킹 방식의 텍스쳐 캐쉬 메모리의 동작 방법 |
US9448935B2 (en) * | 2013-09-25 | 2016-09-20 | Nvidia Corporation | Surface resource view hash for coherent cache operations in texture processing hardware |
US9595075B2 (en) * | 2013-09-26 | 2017-03-14 | Nvidia Corporation | Load/store operations in texture hardware |
US10032246B2 (en) * | 2013-10-09 | 2018-07-24 | Nvidia Corporation | Approach to caching decoded texture data with variable dimensions |
-
2015
- 2015-08-26 US US14/836,449 patent/US10013735B2/en not_active Expired - Fee Related
-
2016
- 2016-01-14 CN CN201680007098.0A patent/CN107209926B/zh not_active Expired - Fee Related
- 2016-01-14 JP JP2017539400A patent/JP2018503919A/ja not_active Ceased
- 2016-01-14 EP EP16705340.4A patent/EP3251081B1/en active Active
- 2016-01-14 WO PCT/US2016/013468 patent/WO2016122896A1/en active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7986358B1 (en) * | 2003-02-25 | 2011-07-26 | Matrox Electronic Systems, Ltd. | Bayer image conversion using a graphics processing unit |
US8452090B1 (en) * | 2005-04-25 | 2013-05-28 | Apple Inc. | Bayer reconstruction of images using a GPU |
JP2012178158A (ja) * | 2005-12-19 | 2012-09-13 | Nvidia Corp | グラフィックスプロセッサの並列アレイアーキテクチャ |
CN101702753A (zh) * | 2008-07-18 | 2010-05-05 | 索尼株式会社 | 固体成像元件和相机系统 |
CN101568039A (zh) * | 2009-06-03 | 2009-10-28 | 广东威创视讯科技股份有限公司 | 一种白平衡调整方法、调整装置及摄像装置 |
US20110091101A1 (en) * | 2009-10-20 | 2011-04-21 | Apple Inc. | System and method for applying lens shading correction during image processing |
CN103155567A (zh) * | 2010-10-20 | 2013-06-12 | 松下电器产业株式会社 | 图像处理装置以及图像处理方法 |
CN102547120A (zh) * | 2010-12-23 | 2012-07-04 | 三星电子株式会社 | 用于图像处理流水线的全局启动方法 |
US8904138B2 (en) * | 2011-09-28 | 2014-12-02 | Microsoft Corporation | Global distributed memory reshape operations on range-partitioned arrays |
US20140022268A1 (en) * | 2012-07-18 | 2014-01-23 | Samsung Electronics Co. Ltd. | Method and apparatus for data processing using graphic processing unit |
CN104143176A (zh) * | 2013-05-10 | 2014-11-12 | 富士通株式会社 | 图像放大方法和装置 |
Non-Patent Citations (1)
Title |
---|
MORGAN MCGUIRE: ""Effcient, High-Quality Bayer Demosaic Filtering on GPUs"", 《JOURNAL OF GRAPHICS TOOLS,ASSOCIATION FOR COMUPTING MACHINERY》 * |
Also Published As
Publication number | Publication date |
---|---|
EP3251081B1 (en) | 2020-03-04 |
JP2018503919A (ja) | 2018-02-08 |
US20160217548A1 (en) | 2016-07-28 |
CN107209926B (zh) | 2020-11-17 |
US10013735B2 (en) | 2018-07-03 |
EP3251081A1 (en) | 2017-12-06 |
WO2016122896A1 (en) | 2016-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106471545B (zh) | 作为图像处理引擎的纹理单元 | |
US7612783B2 (en) | Advanced anti-aliasing with multiple graphics processing units | |
TWI733808B (zh) | 用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構 | |
CN110291563A (zh) | 图形处理中的多个着色器进程 | |
CN107209926A (zh) | 具有拜耳映射的图形处理单元 | |
CN108563517A (zh) | 系统接口的调用方法及装置 | |
WO2019040222A1 (en) | RENDERING AN IMAGE FROM COMPUTER GRAPHICS USING TWO COMPUTER RESTITUTION DEVICES | |
EP1306810A1 (en) | Triangle identification buffer | |
CN107251133A (zh) | 用于使用低质量块来减少存储器带宽的系统和方法 | |
US10121264B2 (en) | Clustered palette compression | |
JP6470766B2 (ja) | 現在の状態に基づいてシェーダプログラムをアップデートするための方法および装置 | |
US9659402B2 (en) | Filtering multi-sample surfaces | |
US10593095B2 (en) | Facilitating increased precision in mip-mapped stitched textures for graphics computing devices | |
WO2017082973A2 (en) | Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices | |
CN105321142A (zh) | 经由计算流水线进行的采样、错误管理和/或上下文切换 | |
CN107426606A (zh) | 录制屏幕的方法、装置、电子设备和系统 | |
CN101097710A (zh) | 图像处理器和图像处理方法 | |
CN105898272A (zh) | 360度图像加载方法、加载模块及移动终端 | |
US20080055326A1 (en) | Processing of Command Sub-Lists by Multiple Graphics Processing Units | |
CN102682465B (zh) | 3d格式转换系统和方法 | |
CN105163128B (zh) | 一种利用gpu并行加速图像转换的屏幕图像获取方法 | |
US10269168B2 (en) | Graphics processing systems | |
WO2022089504A1 (zh) | 一种数据处理方法及相关装置 | |
CN117453170B (zh) | 一种显示控制方法、装置及存储介质 | |
US20220060708A1 (en) | Image-space function transmission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201117 Termination date: 20220114 |
|
CF01 | Termination of patent right due to non-payment of annual fee |