CN112970048B - 指令列表生成 - Google Patents
指令列表生成 Download PDFInfo
- Publication number
- CN112970048B CN112970048B CN201880099395.1A CN201880099395A CN112970048B CN 112970048 B CN112970048 B CN 112970048B CN 201880099395 A CN201880099395 A CN 201880099395A CN 112970048 B CN112970048 B CN 112970048B
- Authority
- CN
- China
- Prior art keywords
- triangle
- coordinate system
- point
- coordinates
- boundary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 71
- 230000009466 transformation Effects 0.000 claims abstract description 9
- 238000013507 mapping Methods 0.000 claims description 25
- 239000000872 buffer Substances 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 15
- 238000009877 rendering Methods 0.000 description 12
- 238000012937 correction Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005452 bending Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 238000004020 luminiscence type Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008646 thermal stress Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
Abstract
一种用于生成包括像素坐标列表的有序指令列表的系统和方法,像素坐标是参考输入图像(33’;图11)的条带(50)中的三角形(51)在源坐标系(30;图11)中的顶点(53),使得顶点到目标坐标系(32;图11)中的对应输出图像(33;图10)的变换导致三角形被映射到图像数据块(47),图像数据块映射到行存储器的块(或“纹理缓存”)。该方法包括:在目标坐标系中将参考输出图像划分为多个拼接部分(35;图11)。该方法包括:对于每个部分,通过将部分划分为行存储器的块来限定部分中像素(46)的条带(50)的阵列的第一边界和第二边界。该方法包括:对于每个条带,将被包含在每个条带中的每个像素集划分为一系列有序三角形,为条带中每个三角形的每个顶点生成目标坐标和源坐标的集,以及将顶点(53)在源坐标系和目标坐标系(30,32)中的坐标存储在有序指令列表中。
Description
技术领域
本发明涉及生成有序指令列表,诸如用于基于纹理映射的图像失真校正的显示列表。
背景技术
机动车辆越来越多地配备有能够馈送实时视频的多个摄像机系统,其可用于在驾驶或停车时辅助车辆驾驶员。例如,用例包括用于道路标志检测、道路车道检测、停车车道标记和行人检测等的前部摄像机或环绕视图。广角或鱼眼镜头通常与这些系统一起使用,以利用单个摄像机尽可能捕获最宽的视野。然而,使用这些类型的镜头拍摄的图像是失真的,使它们难以解释和/或处理。例如,在机动车辆上使用的许多视觉和后处理算法依赖于“相同比例”的对象,以确定到行人的距离。优选地实时执行图像失真校正。图像失真校正的示例可以在JP2009267603A中找到。
纹理映射可以用于校正图像失真。镜头失真校正可以是“标准”直线投影镜头(消除与完美纠正的图像的偏差)和图像纠正(对于“鱼眼(FishEye)”镜头尤其重要,其与标准镜头相比通常具有不同的投影)的形式。附加地,可以应用不同的映射,例如圆柱映射,以及不同的投影,例如通常使用3D“碗”或图像平面的“3D”投影或环绕视图(“人类视觉”)。对于某些任务(例如全景重建),只有失真校正可以应用于某些镜头,而没有纠正。
纹理映射涉及在失真校正的多边形网格与变形的多边形网格之间执行变换。源坐标系中变形的网格的多边形的顶点的纹理坐标在未失真的目标坐标系中被分配了相应的坐标。这些坐标以及关联的命令被存储为有序指令列表。指令的有序集可以采用显示列表的形式。显示列表可以包括命令代码和数据,其可以包括写入寄存器(“寄存器设置”)、同步(诸如缓存刷新、中断和IP间同步等)和三角形命令(后面是N个坐标)。
可以在线(即在运行时期间)或离线生成有序指令列表(诸如显示列表),在线可以实时或接近实时发生。生成的时间可以取决于用例或供应商。例如,用于前部摄像机的显示列表可以每隔几分钟或几十分钟重新生成,以调整由于热应力和道路影响等而引起的镜头失真的变化。有序指令列表可以用于确定新的失真图像的哪些像素要加载到缓存存储器中,并映射到未失真的图像中。
图像数据可以使用缓存行存储器来处理。图像的区域按需(即在缓存未命中时)加载到缓存行存储器中,或它们可以被预加载。区域由硬件隐式地(implicitly)加载。例如,硬件可以请求(u、v)坐标中的纹理数据,映射到2×16个各256字节的缓存行。
在某些示例中,不使用多路缓存,并且不存在随机替换。可以执行纹理映射功能,并且存储输出图像的未失真的区域。纹理映射的示例可以在US2015/0254820A1中找到。
然而,将纹理映射图像数据存储在缓冲存储器中可能具有一个或多个缺点。源缓存未对准可能是一个问题,尤其是对于高失真镜头(例如,广角镜头)。例如,如果多边形条带跨越图像的多个区域(即,线),其映射到纹理缓存中的非常相同的缓存线,则可能发生缓存损坏。这可能超出内存带宽,导致过度的性能损失。
发明内容
根据本发明的第一方面,提供了一种生成指令有序列表的方法。有序指令列表包括像素坐标列表,像素坐标是参考输入图像的条带中的三角形在源坐标系中的顶点,使得顶点到目标坐标系中的对应输出图像的变换导致三角形被映射到图像数据块,图像数据块映射到行存储器的块(在本文被称为“纹理缓存”)。该方法包括:在目标坐标系中将参考输出图像划分为多个拼接部分。该方法包括:对于每个部分,通过将部分划分为行存储器的块来限定部分中像素的条带的阵列的第一边界和第二边界。该方法包括:对于每个条带,将被包含在每个条带中的每个像素集划分为一系列有序三角形,为条带中每个三角形的每个顶点生成目标坐标和源坐标的集,以及将顶点在源坐标系和目标坐标系中的坐标存储在有序指令列表中。
因此,顶点到目标坐标系中的对应输出图像的变换可能导致三角形被映射到图像数据块,图像数据块映射到行存储器的块,使得当被读出时,减少或不存在缓存损坏。
该方法可以进一步包括通过将目标坐标系中的多个拼接部分中的每一个的拐角变换到源坐标系中以生成多个变换后部分来确定每个部分中的条带的数量。该方法可以进一步包括:对于每个变换的部分,确定像素中v维度的最宽跨越,并将跨越v维度的像素的数量除以行存储器的块的高度。
该方法可以进一步包括通过基于部分的边缘在源坐标中的最高v坐标和最低v坐标之间的最宽跨越来确定起点和终点,从而为每个部分限定条带阵列中每个条带的边界。该方法可以进一步包括从起点开始顺时针和逆时针朝向终点移动,迭代地创建初始命中点对,其中,边缘上的相邻初始命中点之间的距离由三角形尺寸来确定。该方法可以进一步包括在每对初始命中点之间生成初始命中线,以形成条带的边界。
该方法可以进一步包括通过沿着边缘迭代地移动初始命中点来限定每个条带的边界,以生成精细命中点,并且在成对精细命中点之间生成精细命中线。
该方法可以进一步包括通过沿着精细命中线生成一系列中间线点来限定每个条带的边界,其中精细命中点与中间线点之间的距离由三角形尺寸来确定。该方法可以进一步包括与精细命中线正交地移动中间线点,以匹配精细命中点在源坐标系中的v坐标,以生成最终位置中间命中点,以及在与最终位置中间命中点相交的每对精细命中点之间生成最终位置命中线。
该方法可以进一步包括在顺时针方向或逆时针方向上将第一线加入与起点相邻的边缘,以限定部分的第一条带的边界。
该方法可以进一步包括在顺时针方向或逆时针方向上将最后一条线加入与终点相邻的边缘,以限定部分的最后一个条带的边界。
该方法可以进一步包括在生成三角形之前,将部分的每个拐角加入到包含这些拐角作为顶点的条带。
该方法可以进一步包括通过将第一边界上的第一点与第二边界上的第二点之间的第一距离L1与第二边界上的第一点与第一边界上的第二点之间的第二距离L2进行比较来确定在每个条带中生成的第一三角形的顶点,其中当第一距离L1大于或等于第二距离L2时,第一边界的前两个点作为三角形顶点,并且在第二距离L2大于第一距离L1的情况下,第二边界的前两个点用作三角形顶点。
该方法可以进一步包括通过从第一三角形的第一顶点到第二顶点的向量与从第一顶点到第一三角形的第三顶点的向量的叉积来确定条带中的第一三角形的剔除方向,其中正叉积得到顺时针剔除方向,并且负叉积得到逆时针剔除方向。
该方法可以进一步包括条带中的连续渲染的三角形的剔除方向在第一三角形剔除方向与相反剔除方向之间交替。
该方法可以进一步包括保持条带中相邻三角形的相同剔除方向相同。
有序指令列表可以是显示列表。
有序指令列表可以是GPU的最佳纹理访问网格。
有序指令列表可以是OpenGL Draw命令。
有序指令列表可以是微软命令。
有序指令列表可以被存储为网格。
根据本发明的第二方面,提供了一种校正失真图像的方法。该方法包括:将失真图像从系统存储器接收到纹理缓存中;使用存储在系统存储器中的有序指令列表中的、失真图像的三角形的顶点的坐标,将三角形纹理映射到失真校正图像;以及将其存储在目标缓存中。有序指令列表包括像素坐标列表,像素坐标是参考输入图像的条带中的三角形在源坐标系和目标坐标系中的顶点,使得源坐标系中的顶点到目标坐标系中的对应输出图像的变换导致三角形被映射到图像数据块,图像数据块映射到行存储器的块或“纹理缓存”,使得当被读出时,不存在限制于行存储器块内的缓存损坏。有序指令列表通过在目标坐标系中将参考输出图像划分为多个拼接部分而生成。该方法包括:对于每个变换后部分,通过将变换区域分配到行存储器的块中来限定像素的条带的阵列的第一边界和第二边界。该方法包括:对于每个条带,将被包含在每个条带中的每个像素集划分为一系列有序三角形,为条带中每个三角形的每个顶点生成目标坐标和源坐标的集,以及将顶点在源坐标系和目标坐标系中的坐标存储在有序指令列表中。
根据本发明的第三方面,提供了一种包括指令的计算机程序,当指令由一个或多个处理器执行时,使一个或多个处理器执行根据第一方面的方法。
根据本发明的第四方面,提供了一种计算机程序产品,包括存储根据第三方面的计算机程序的计算机可读介质。
根据本发明的第五方面,提供了一种被配置成执行根据第二方面的方法的模块。
模块可以是硬件模块。
根据本发明的第六方面,提供了一种单片集成电路,包括处理器子系统,该处理器子系统包括至少一个处理器和存储器;以及根据第五方面的模块。
根据本发明的第七方面,提供了一种系统,包括:用于提供失真图像数据的至少一个摄像机和根据第六方面的集成电路,该集成电路被配置成从至少一个摄像机接收失真图像数据。
根据本发明的第八方面,提供了一种包括根据第七方面的系统的机动车辆。
机动车辆可以是摩托车、汽车(有时称为“轿车”)、小型公共汽车、公共汽车、卡车或货车。机动车辆可以由内燃机和/或一个或多个电动机驱动。
根据本发明的第九方面,提供了一种用于生成包括像素坐标列表的有序指令列表的计算机系统,像素坐标是参考输入图像的条带中的三角形在源坐标系[u、v]中的顶点,使得顶点到目标坐标系[x、y]的对应输出图像的变换导致三角形被映射到图像数据块,图像数据块映射到行存储器的块(或“纹理缓存”),使得当被读出时,不存在被限制于行存储器块内的缓存损坏。计算机系统包括至少一个处理器和存储器。至少一个处理器被配置成执行根据第一方面的方法。
根据本发明的第十方面,提供了一种显示列表,包括像素坐标列表和目标坐标系中的相应坐标列表,像素坐标是参考输入图像的条带中的三角形在源坐标系中的顶点。像素坐标列表被配置成使得源坐标系中的单个条带中的顶点被映射到图像数据块,图像数据块映射到行存储器的块(或“纹理缓存”),并且当源坐标系中的顶点被渲染到目标坐标系中的三角形中时,它们形成参考输出图像,而没有不必要的缓存损坏。
根据本发明的第十一方面,提供了一种存储第十方面的显示列表的计算机可读介质。
附图说明
现在将参考附图通过示例的方式描述本发明的某些实施例,其中:
图1图示出包括生成失真图像的一个或多个摄像机和失真补偿模块的机动车辆;
图2是失真补偿模块的第一示意性框图;
图3是失真补偿模块的第二示意性框图;
图4示意性地图示出在图像失真补偿期间显示列表的使用;
图5图示出具有源坐标u、v的失真图像的示例;
图6图示出具有目标坐标x、y的失真校正图像的示例;
图7是生成有序坐标列表的方法的过程流程图;
图8是显示列表生成模块的示意性框图;
图9图示出目标坐标x、y中的参考输入图像的被映射到源坐标u、v中的一部分;
图10图示出在目标坐标x、y中被划分为各部分的参考图像;
图11图示出在源坐标为u、v中被划分为各部分的与图10中所示图像相对应的参考图像;
图12图示出目标坐标x、y中的参考图像的部分;
图13图示出图12中所示的参考图像的部分,其中已经确定开始拐角点和结束拐角点;
图14图示出图12中所示的参考图像的部分,其中已经加入命中点和命中线;
图15图示出图12中所示的参考图像的部分,其中已经加入命中点和命中线;
图16图示出在源坐标u、v中被划分为块行存储器的条带的参考输入图像的一部分;
图17图示出块行存储器的示例;
图18图示出在目标坐标x、y中的部分和初始命中点以及初始命中线的示例;
图19图示出图18中所示的第一对命中点的精细化的示例;
图20图示出图19中所示的精细命中点和精细命中线的示例;
图21图示出中间线点的增加和精细化,以及图20中所示的精细命中线的进一步精细化;
图22图示出最终位置中间命中点和最终位置命中线的示例;
图23图示出在图22中所示的条带中生成以形成第一三角形条带的三角形的示例;
图24图示出在已经生成最终位置命中线和最终位置命中点之后的图18中所示的部分的示例;
图25图示出在图24中所示的部分中沿三角形条带生成第一三角形;
图26图示出如何确定剔除方向;
图27图示出从图24中所示的部分生成完整的三角形条带;
图28图示出在图24中所示的部分中的三角形条带中生成三角形之前加入额外点;
图29图示出在图24中所示的部分中生成三角形条带时所要求的交换;
图30图示出从图24中所示的部分生成的完整的三角形条带的示例;
图31图示出最终位置命中线和覆盖目标坐标系中参考图像的一部分的三角形条带的示例;以及
图32图示出最终位置命中线和覆盖源坐标系中参考图像的一部分的三角形条带的示例。
具体实施方式
系统概况
参考图1,示出机动车辆1。
机动车辆1包括高级驾驶者辅助系统2。系统2包括连接到车载通信总线5的多个数字或模拟摄像机3、头部单元(head unit)4。系统2可以包括连接到头部单元4的显示器6。显示器6可以采用位于例如中控台(未示出)或仪表板(未示出)中的平板显示器的形式。
每个数字或模拟摄像机3包括镜头7(例如,广角镜头)和图像传感器8。每个摄像机3能够以例如60fps的速率捕获图像帧(或“图片”)序列中的图像数据9(或“图像帧”)。图像数据9在一个或多个数据帧中经由车载通信接口5被传输到头部单元4。车载通信接口可以是例如通信总线、经由并行接口、串行接口的MIPI CSI-2、以太(Ether)/AVB或快速PCI(PCI-Express)。
头部单元4包括微控制器10或其他类似的基于微处理器的系统。微控制器10包括包含CPU 12的中央处理单元(CPU)子系统11、失真补偿模块13、系统存储器14和总线系统15。微控制器10包括其他外围模块(未示出),诸如其他通信网络控制器(用于其他不同类型的通信网络)和定时器等。
图像数据9被临时存储在系统存储器14中,并且可以由失真补偿模块13实时处理。
如将在下文中更详细地说明,失真补偿模块13使用纹理映射对失真图像数据9执行图像失真校正,并且经由总线系统15将校正图像23(图6)输出到系统存储器14。校正图像23(图6)可以显示在显示器6上。
图像失真补偿处理
参考图2,更详细地示出失真补偿模块13。
失真补偿模块13包括主机接口16、总线接口17、显示列表缓冲器18、图像滤波器19、三角形设置引擎20和纹理缓存21。
总线接口17从系统存储器14接收显示列表22,并且将显示列表22馈送到显示列表缓冲器18中。显示列表22然后被馈送到三角形设置引擎20。从系统存储器14接收的失真图像数据9在被传递到图像滤波器19之前被馈送到纹理缓存21中。CPU 12可以经由主机接口16配置和控制失真补偿模块。
参考图3,可以使用多个失真补偿模块131、132、133、134来同时处理图像数据。每个模块131、132、133、134具有各自的纹理缓存211、212、213、214和目标缓存251、252、253、254。失真补偿模块中的每一个可以在输入/输出上共享AXI主接口。
显示列表22包含有序命令列表。这些可以包括指示模块读入形成然后被渲染的三角形条带的N个随后的顶点的渲染开始命令(或“TRI命令”)、写入寄存器命令和同步命令。每个TRI命令可以包含源坐标系30(图5)中的有序坐标集、目标坐标系32(图6)中的对应的有序坐标集或颜色和/或发光校正值中的一个。
源坐标系30(图5)中的有序坐标集限定了失真图像数据9的一部分。目标坐标系32(图6)中的有序坐标列表限定了失真校正图像数据23的一部分。
显示列表22被存储在系统存储器14中,准备通过总线15经由显示列表缓冲器18(图2)被馈送到失真补偿模块13中。当缓冲器为空时,显示列表缓冲器18请求新数据。由显示列表22限定的每个三角形引用的图像数据9被馈送到纹理缓存21,并且然后被纹理映射到失真校正的目标坐标系32(图6)中,以形成失真校正图像数据23。失真校正图像数据23被馈送到可以容纳最终图像的矩形部分的本地SRAM或目标缓存25。例如,本地SRAM可以提供256行的存储,每行由512字节组成,形成所得到的图像的矩形部分,其在每像素16位模式下为256×256像素,或在每像素8位模式下为512×256像素。
使用缓存行驱逐或使用特殊命令来刷新缓存或将SRAM传送到系统存储器,将失真校正图像数据23存储在系统存储器14中。
可以创建其他有序命令列表。例如,可以估计用于GPU(即,OpenGL显示列表)缓存布局的最佳纹理访问网格(TAG创建和可以被保存而不损坏缓存的区域)。可以创建OpenGLDraw命令和微软命令。有序命令列表可以被存储为网格,例如,包含纹理坐标的3D模型。
参考图4,失真补偿模块13还可以具有寄存器设置27。寄存器设置27设置在显示列表22中的有序命令列表的一种或多种格式。格式可以包括图像平面I/O设置,其包括物理存储器地址、宽度、高度和步幅。格式可以包括颜色格式、三角形格式、渲染标志和控制寄存器。可以使用某些命令来改变底层状态机,例如,可以在OpenGL中改变剔除方向(顺时针还是逆时针)。
失真补偿模块13可能要求图像数据9的每一行必须在对齐的存储器位置上开始(即,对于256字节的倍数的输入,因此低8位需要全部为零)。例如,由于缓存实现或其他原因,可能会出现这种情况。例如,每像素2字节(每像素16位)格式的1080×1920像素的图像可能需要128像素的附加的“填充”,以使下一行在对齐的位置(256字节的倍数)上开始。在这种情况下,步幅(即,行之间的偏移)需要设置为2048字节。
参考图5,示出了在源坐标系(u、v)30中的由摄像机3所拍摄的失真图像9的示例。失真由叠加的网格线31图示出,通常由广角和鱼眼镜头引起。矩形图像9通常具有1920×1080像素的尺寸。然而,图像9可以更大或更小,和/或具有不同的纵横比。
参考图6,示出了目标坐标系(x、y)32中的失真校正图像23的示例。叠加的网格线31’对应于源坐标系30中的网格线31(图5)。网格线31’在图像23上表现为直的并且均匀地间隔开,指示失真已经被校正。
显示列表创建
参考图7至图30,现在将描述生成显示列表22的方法。
映射
具体参考图7至图11,目标坐标系32中的参考图像33(还可以被称为“校准图像”)用于生成部分35的顶点341、342、343、344(步骤S1)。每个部分35的顶点341、342、343、344中的每一个被映射到源坐标系30(步骤S2)。参考图像33可以具有与失真图像数据9相同的尺寸。然而,参考图像33还可以具有输入图像数据9的感兴趣区域(ROI)的尺寸、纵横比和分辨率。例如,尺寸为1536像素×512像素的参考输入图像33可以用于隔离尺寸为1920像素×1080像素的输入图像数据9的特定ROI。每个参考图像33是真实世界校准图案的完美图像,也就是说,在目标坐标系32中具有已知的尺寸并且没有失真。
映射由映射功能(map function)37执行,映射功能37提供失真校正公式,并且还可以提供图像投影(例如,环绕视图)。可能的失真校正公式包括逆布朗-康拉迪(Brown-Conrady)公式、“OpenCV”失真公式或使用查找表38。然而,可以使用其他图像失真补偿模型。映射功能37优选地由CPU 12(图1)执行。映射在源坐标系30中生成顶点341’、342’、343’、344’和部分35’。映射的部分35’被馈送到显示列表生成器39,显示列表生成器39生成可以被存储为显示列表22的有序命令列表。
每个部分35具有四个侧。然而,每个部分35可以具有三个或多个侧。当剪切图像时,例如,当单个摄像机未映射到整个屏幕时,可以使用具有不同数量的侧的部分。
具体参考图10,目标坐标系32中的参考图像33被划分为32个相等的正方形部分35。参考图像33可以被划分为任意数量的部分35。部分35可以具有任何形状。每个部分35可以具有等于或小于参考图像33的任何尺寸。部分35可以具有相等的尺寸和形状。部分35可以具有64×64像素或128×64像素的尺寸。然而,部分35可以具有其他尺寸,例如,256×256像素、512×128像素或512字节×256行。参考图像33可以是矩形,并且可以具有1920×1080像素的尺寸。
通过评估拐角点34处的映射功能37,参考图像33的每个部分35从目标坐标(x、y)32被映射到源坐标(u、v)30中。
具体参考图11,使用映射功能37将参考图像33中的每个部分35从目标坐标32映射到源坐标30中。为了清楚起见,在图10中,源坐标30中的映射部分35’被示为彼此相邻,图示出源坐标30中的整个映射图像33’。参考图像33’可以是矩形,并且可以具有1920×1080像素的尺寸。
命中点和命中线生成
参考图12和图13,为每个部分35确定起点41和终点42(步骤S3)。起点41和终点42沿着每个部分35的边缘44位于最小或最大v坐标处。每个部分35的最大和最小v坐标通过沿着边缘44将每个像素46从目标坐标系[x、y]32映射到源坐标系[u、v]30中并且评估每个像素46的v坐标值来确定。
如果起点41位于最小v值处,则终点42位于最大v值处。如果起点41位于最大v值处,则终点42位于最小v值处。对于沿着边缘44的多个极值(即多个最小值或多个最大值v坐标)的情况,选取一个最小点和一个最大点作为起点41,并且一个作为终点42。
起点41和终点42均包括源坐标(u、v)30和目标坐标(x、y)32。
顺时针路径80和逆时针路径81从起点41沿着边缘44移动直到到达终点42而生成。当沿着顺时针路径80和逆时针路径81行进时,在每个顶点处加入拐角点82(步骤S4)。如果最小或最大v坐标在顶点34处,则在该顶点34处不加入拐角点82。
具体参考图13,生成的顺时针路径从起点41沿着边缘44移动到第一个遇到的顶点341,然后沿着边缘44移动到下一个遇到的顶点342,然后沿着边缘44移动到最后遇到的顶点343,并且然后沿着边缘44移动直到到达终点42。逆时针路径从起点41沿着边缘44移动到第一个遇到的顶点344,并且然后沿着边缘44移动直到到达终点42。
现参考图14至图16,初始命中点43(也被称为“初始相交点”)迭代地成对被加入到目标坐标32中的区域35的边缘44(步骤S4和S5)。从起点41开始,成对初始命中点中的一个初始命中点4311沿着顺时针路径80被加入到边缘44,并且成对初始命中点的另一初始命中点4322沿着逆时针路径81被加入到边缘44。沿着边缘44的成对初始命中点(4311,4322)在源坐标系30中具有相同的v坐标。初始命中点43之间的间距由行存储器的块47的像素46中的高度45来确定。
可选地,随着生成每对初始命中点43,在每对初始命中点43之间迭代地生成初始命中线48(步骤S6)。然而,初始命中线可以在初始命中点43的位置的一些精细化之后首先生成。在该阶段,初始命中线48是直的。
具体参考图16,块行存储器47(或“缓存存储器”)被划分为u坐标的奇数位7或位8的128个像素或256像素和偶数的128像素或256像素,允许u维中的256像素的“安全重叠区域”。一个缓存行可以刚好容纳256字节的图像数据。根据每个像素的字节数(BPP),这导致每个缓存行128像素(2BPP)或256像素(1BPP)。因此,偶数/奇数缓存行由x坐标的位8(1BPP)或位7(2BPP)决定。如果源坐标30中的部分35’以像素46为单位的尺寸大于行存储器的块47的长度49,则可以增加附加行存储器块47,直到它们覆盖部分35’的整个区域。
可以进一步精细化部分35中的初始命中线48,这将在下文中更详细地说明(步骤S7至S10)。
参考图17,示出了并排的行存储器(即,缓存存储器)的两个块47的示例。每个行存储器块47可以包括16行的256字节。然而,行存储器块47可以具有更少或更多的行,和/或在每行中可以包括更少(例如,64字节)或更多的字节。
可以存在2×16行的256字节,包括行存储器的一个“偶数”块47和行存储器的一个“奇数”块47。行存储器的相邻块47不一定容纳图像数据9的相邻行,然而,顶点53的坐标以通过行存储器的相邻块47的连续的方式来创建。行存储器的块47中的“先前”行和“当前”行之间的活动块可以围绕图像数据9,例如,当使用从24到34的v坐标时,缓存存储器行8-15将利用图像数据9的“上部”进行填充,行0-2利用图像数据9的“下部”进行填充。
使用的行数保持为比可用行数少两行,以允许双线性滤波以及舍入误差余量。例如,跨越一个条带50的高度45的行存储器块47可以是可用行数的一半减二。
再次参考图16和图18,相邻的初始命中线48在部分35中形成条带50的第一边界和第二边界。条带50被划分为三角形51以形成三角形条带52(步骤S11)。第一三角形条带可以在第一初始命中线48与边缘44的相邻部分之间生成。从与起点40相邻的条带开始并且朝向终点42移动生成三角形条带52。沿着边缘44与所生成的最终命中线48之间的条带50生成三角形条带52。在源坐标系30和目标坐标系32两者中的三角形51的顶点53的坐标与可以被存储为显示列表22的一部分的TRI指令一起被存储为有序坐标列表(步骤S12)。单个三角形51可以跨越行存储器的多个块47。
利用这样的显示列表22,可以以这样的方式布局三角形51:纹理坐标30访问最佳地利用纹理缓存21,保持在“工作集”内,直到所有加载的像素46被提取、处理或访问。当未命中发生时,处理(或加载)由缓存硬件(HW)完成。能够以这种方式有效地将部分35’的条带50提取、处理或访问到纹理缓存21中,减少了加载图像数据9的一个条带所需的行存储器的块47数量,减少了不必要的缓存损坏。缓存损坏的减少降低了硬件开销,节省了内存(例如,DRAM)带宽,从而得到更快和更有效率的过程。
显示列表22还允许生成三角形条带52形式的访问模式,访问模式可以使用类似“双缓冲器”的技术来获取、处理或访问失真图像数据9。利用某些硬件应用处理器,可以发出“预取”指令,允许硬件提前注意到在给出初始指令后不久将开始访问特定范围的像素。
在下文中将解释三角形条带52生成的进一步细节。
命中点和命中线精细化
具体参考图18、图19和图20,为更好地使用源坐标系30中的块行存储器47,每对初始命中点43和(可选的)初始命中线48可以被精细化55,生成精细命中点56和精细命中线57,使得精细命中线之间的跨越与源坐标系30中的块行存储器47的高度45匹配(步骤S7和S8)。初始命中点43和初始命中线48以由起点41和终点42之间的顺时针路径80和逆时针路径81所确定的顺序而被迭代地生成和精细化。如果未生成可选的初始命中线48,则精细命中线57(也称为“直的命中线”)是要生成的第一命中线。这些命中线57在成对精细命中点56之间生成。图18示出所有初始命中点43和初始命中线48,仅用于图示。可以使用任何合适的精细化过程,例如割线(Secant)法。
参考图21、图22和图23,精细命中线57是成对精细命中点56之间的线。精细命中线57可以生成块行存储器48的边界,其无法在源坐标中有效地加载整个部分35’。因此,多个中间线点58沿着每个精细命中线57而生成。沿着精细命中线57以与期望的三角形51尺寸的边缘相匹配的距离加入中间线点58(步骤S9)。
仍具体参考图21、图22和图23,在每个部分35中的第一次迭代期间,沿着起点41与第一精细命中点56之间的边缘44在目标坐标系32中以顺时针方向或逆时针方向生成第一线61。如果在沿着顺时针路径80或逆时针路径81移动时,在起点41与遇到的第一个拐角点82之间的边缘44上不存在精细命中点56,则在起点与遇到的第一拐角点82(图22中的342)之间生成第一线61。在图18至图24中,顺时针路径80从起点41(也被标识为顶点343)沿着边缘44移动到第一拐角点82(也被标识为顶点344),并且然后沿着边缘44移动直到到达终点42(也被标识为顶点341)。逆时针路径81从起点41(也被标识为顶点343)沿着边缘44移动到第一拐角点82(也被标识为顶点344),并且然后沿着边缘44移动直到到达终点42(也被标识为顶点341)。
在第一次迭代期间,中间线点58与精细命中线57正交地移动,随着它们移动将精细命中线57弯曲,直到在被主动处理的命中线与部分35的第一线61之间的条带50具有与三角形51尺寸相匹配的以像素46为单位的尺寸(步骤S10)。最终位置中间命中点62沿着最终位置命中线63放置。最终位置命中线63可以是弯曲的。
具体参考图22,第一线点(first-line-points)64在第一线61生成。第一线点64沿着第一线61均匀间隔。第一线点64的数量等于沿着距起点41最近的最终位置命中线62的最终位置命中点61的数量。
在从第二次迭代到倒数第二次迭代的每次迭代期间,中间线点58再次与精细命中线57正交地移动,随着它们移动将精细命中线57弯曲,直到在被主动处理的精细命中线与前一次迭代中处理的最终位置命中线63之间的条带50具有与三角形51尺寸相匹配以像素46为单位的尺寸(步骤S10)。
参考图24,在最终迭代期间,在以顺时针方向或逆时针方向到达终点42之前,沿着终点42和最后精细命中点56之间的边缘44,最后一条线65被生成,用于目标坐标系32中的每个部分35。如果当沿着顺时针路径80或逆时针路径81移动时,在终点42与遇到的最后一个拐角点82之间的边缘44上不存在精细命中点56,则沿着从终点42到遇到的最后一个拐角点82的边缘44的整个长度生成最后一条线65。
如果顶点34与条带50相邻,则顶点34也用作三角形顶点53。
仍参考图24,为每对最终位置命中点56绘制最终位置命中线62。仅出于图示目的,在条带504中绘制三角形条带52。
三角形条带生成
参考图23,在第一线61与最终位置命中线63之间在目标坐标系32中的部分35的条带50内生成三角形51,从而创建三角形条带52。三角形51的顶点53由最终位置命中点62、第一线点64和精细命中点56确定。
参考图24,从最靠近起点41的最终位置命中线62开始并且朝向终点42移动,为每个条带50迭代地生成三角形条带52。被划分为三角形条带52的第一条带50由最靠近起点41的最终位置命中线62、第一线63和边缘44所界定。被划分为三角形条带52的第二条带50由最靠近起点41的第一最终位置命中线和第二最终位置命中线62以及边缘44所界定。迭代继续直到到达界定终点42的条带50。要被划分为三角形条带52的最终条带50界定终点42,并且由最终位置命中线62、最后一条线65和边缘44所界定。
对于每次迭代,存在构成第二边界的当前最终位置命中线62,以及构成第一边界的先前最终位置命中线62。对于第一条带50,第一线63用作先前命中线。对于最终迭代,最后一线65用作当前最终位置命中线。
参考图25,第一三角形在第二条带502中确定。三角形条带52的前三个点通过比较两个距离L1和L2来确定。L1是当前最终位置命中线上的第一点与沿着先前最终位置命中线的第二点之间的距离。L2是先前最终位置命中线上的第一点与当前最终位置命中线上的第二点之间的距离。如果L1大于或等于L2,则三角形条带52中的第一三角形51被绘制在沿着当前最终位置命中线的前两点与沿着先前最终位置命中线的第一点之间。
参考图26,在三角形渲染期间,剔除是三角形渲染硬件(HW)和应用编程接口(API)上通常使用的过程,以允许移除具有特定方向的三角形。该过程通常被称为“背面剔除”,并且例如与3D图形硬件一起用于检查2D中的投影三角形。在一些实现中,为了确保正确渲染三角形条带,需要相应地调整所渲染的三角形的三角形方向(剔除=从渲染管线中移除三角形)。为此,在所要求的剔除方向不同于先前设置的方向的情况下,可能需要在TRI命令之前通过“短写入寄存器(write register short)”(WTS)指令来更新硬件配置寄存器中的特定位。
如果实现背面剔除过程,则剔除方向73可以基于三角形条带52中的第一三角形51来确定。剔除方向73可能需要由显示列表22相应地更新,以允许图像失真补偿模块13成功地渲染失真图像数据9。剔除方向73基于由三角形条带52中的前三个三角形顶点53限定的三角形51。一些三角形渲染过程可能不具有背面剔除。三角形渲染过程的实现可能取决于坐标系(例如,右手侧与左手侧)。渲染技术可以使用例如平面几何。
从三角形带52中的第一点到同一三角形带中的第二点的向量被标记为从三角形带52中的第一点到同一三角形带中的第三点的向量被标记为/>叉积/>等于由/>和/>组成的平行四边形的面积。/>的符号决定剔除方向73。剔除方向73可以是顺时针或逆时针(即使用右手规则)。/>的符号通过计算向量/>和/>的行列式来确定。
参考图27,条带50被划分为三角形,剔除方向73通常在顺时针与逆时针之间交替,直到在当前或先前的最终位置命中线上没有点保留,生成三角形条带52。只有条带50中的第一三角形51的剔除方向需要由硬件来确定,并且剔除方向不需要利用条带中的每个后续三角形来更新。
参考图28,沿着边缘44加入额外点66,以避免三角形退化。形成三角形条带52,在迭代中并入额外点66。
参考图29,“交换”被加入到三角形条带52,以保持连接先前的最终位置命中线和下一个最终位置命中线的三角形边缘的长度尽可能短。平均连接边缘应该或多或少地正交于当前和先前的最终位置命中线62,这给出了最短的边缘。这是为了避免由于长距离非线性映射的线性插值而导致的图像质量下降。
在两种情况下可以加入交换。第一种情况是,如果已经使用当前或先前的最终位置命中线的所有点,或者最后一个点之间的距离用于形成三角形51。第二种情况是,如果用于形成先前三角形的先前的点与先前最终位置命中线上的下一个点之间的距离(L3)大于或等于先前最终位置命中线上的先前的点与当前最终位置命中线上的下一点之间的距离(L4)。在三角形渲染的过程期间,每次插入交换都引入惩罚,以避免频繁的交换。通过再次加入先前的点来加入交换,得到尺寸为零的三角形,其通常被渲染硬件丢弃,从而有效地交换三角形的方向。使用该加入的点作为三角形中的第二点来生成三角形条带52中的下一个三角形51。
仍参考图29,在这里所图示的情况下,使三角形边缘的长度最小化将意味着选择L4,因为它比L3短。L4成为三角形条带52内的两个三角形51的三角形边缘。
参考图30,目标坐标中的部分35的条带50被划分为三角形51以形成三角形条带52。条带52包括一个交换和额外点66。
由于例如硬件约束,最大三角形51的尺寸可以被限制为128像素。然而,最大三角形尺寸可以更小或更大。还可以存在决定最大或最小三角形51的尺寸的其他约束。
显示列表实现
参考图31,目标坐标32中的失真校正图像数据23的示例部分图示出重叠的最终位置命中线63的示例。最终位置命中线63可能在部分的接口处不相遇。对于部分中的条带,图示出包括顶点53的三角形条带52的示例。
在目标坐标系32中,失真补偿模块13使用有序指令列表(例如,显示列表22)设置形成在三角形条带52中的三角形51。该过程生成外部边缘44,生成扫描线式的“运行”,其相对于目标部分35(剪辑坐标)被剪辑,丢弃外部扫描线和/或像素以及任何零像素扫描线。
目标坐标系32中的每个像素46进入一个或多个像素46处理级,其中使用源坐标系30与目标坐标系32之间的映射技术来确定实际纹理坐标。映射技术可以是例如线性插值、重心坐标或其他方法。
像素46处理级的另一示例是OpenGL中的像素着色器,但具有由寄存器设置确定的固定功能。
这些过程可以在其他硬件(例如,消费类3D图形卡)上实现。
参考图32,源坐标系30中失真图像数据9的示例部分。最终位置命中线63重叠以用于图示出。图23中的三角形条带52也在本文示出。条带50是行存储器块47的高度45。
其他实现
以上生成的有序指令列表可以用于不同应用的各种实现,例如将表面纹理映射到3D网格(也被称为“纹理图谱创建”)或利用大纹理图谱快速渲染3D网格。
以与这里所描述类似的方式来优化的这种有序指令列表可以用于允许大数据集的高效渲染,例如地震图像,其中需要将一部分数据加载到随机存取存储器(RAM)中并进行渲染,从而使渲染整个数据集所要求的加载次数最小化,因此使渲染时间最小化。
修改
应当理解,可以对上文描述的实施例进行各种修改。这样的修改可以涉及在图像失真校正模块及其组成部分的设计、制造和使用中公知的等效和其他特征,并且其可以用于替换或补充本文已描述的特征。一个实施例的特征可以由另一实施例的特征替换或补充。
可以存在多个CPU。
尽管权利要求书在本申请中已对特征的特定组合进行了阐述,但是应当理解,本发明的公开范围还包括本文中明确或隐含公开的任何新颖性特征或特征的任何新颖性组合,或其任何概括,无论它是否涉及任何权利要求中当前请求保护的相同发明,也无论它是否减轻了与本发明相同的任何或所有技术问题。申请人特此声明,在本申请或由其衍生的任何进一步申请的实施过程中,可以对这样的特征和/或这样的特征的组合提出新的权利要求。
Claims (20)
1.一种生成包括像素坐标列表的有序指令列表的方法,所述像素坐标是参考输入图像(33’)的条带(50)中的三角形(51)在源坐标系(30)中的顶点(53),使得所述顶点到目标坐标系(32)中的对应输出图像(33)的变换导致所述三角形被映射到图像数据块,所述图像数据块映射到行存储器的块(47),所述方法包括:
在所述目标坐标系中将参考输出图像划分为多个拼接部分(35);
对于每个部分:
通过将所述部分划分为行存储器的块来限定所述部分中像素(46)的条带(50)的阵列的第一边界和第二边界,其中,每个部分(35)中的条带(50)的数量通过将所述目标坐标系(32)中的多个拼接部分(35)中的每一个的拐角(34)变换到所述源坐标系(30)中以生成多个变换后部分(35’)来确定;
对于每个变换后部分:
确定像素(46)中v维度的最宽跨越(46);
将跨越所述v维度的像素(46)的数量除以所述行存储器的块(47)的高度(45);以及
对于每个条带:
将被包含在每个条带中的每个像素集划分为一系列有序三角形;
为所述条带中每个三角形的每个顶点生成目标坐标和源坐标的集;以及
将所述顶点(53)在源坐标系和目标坐标系(30,32)中的所述坐标存储在所述有序指令列表中。
2.根据权利要求1所述的方法,其中对于每个部分(35)限定所述条带的阵列中的每个条带(50)的所述边界包括:
基于部分(35’)的边缘(44)在源坐标中的最高v坐标和最低v坐标之间的最宽跨越来确定起点(41)和终点(42);
从所述起点开始顺时针和逆时针朝向所述终点移动,迭代地创建成对初始命中点(43);
其中,所述边缘(44)上的相邻初始命中点(43)之间的距离由三角形尺寸来确定;
在每对初始命中点之间生成初始命中线(48),以形成所述条带(50)的边界。
3.根据权利要求2所述的方法,其中,限定每个条带(50)的所述边界进一步包括:
沿着边缘(44)迭代地移动初始命中点(43)以生成精细命中点(56);以及
在成对精细命中点(56)之间生成精细命中线(57)。
4.根据权利要求3所述的方法,其中,限定每个条带(50)的所述边界进一步包括:
沿着所述精细命中线(57)生成一系列中间线点(58),其中,所述精细命中点(56)与所述中间线点之间的距离由所述三角形(51)尺寸来确定;
与所述精细命中线(57)正交地(59)移动中间线点,以匹配精细命中点(56)在源坐标系(30)中的所述v坐标,以生成最终位置中间命中点(62);以及
在与最终位置中间命中点相交的每对精细命中点之间生成最终位置命中线(63)。
5.根据权利要求2至4中任一项所述的方法,其中,第一线(61)在顺时针方向或逆时针方向上被加入与所述起点(41)相邻的边缘(44),以限定所述部分(35)的第一条带(50)的边界。
6.根据权利要求2至4中任一项所述的方法,其中最后一条线(65)在顺时针方向或逆时针方向上被加入与所述终点(42)相邻的所述边缘(44),以限定所述部分(35)的最后一个条带(50)的边界。
7.根据权利要求1所述的方法,其中,在生成所述三角形之前,将所述部分(35)的每个拐角(34)加入到包含这些拐角作为顶点(53)的条带(50)。
8.根据权利要求1所述的方法,其中,通过将第一边界上的第一点与第二边界上的第二点之间的第一距离L1与所述第二边界上的所述第一点与所述第一边界上的第二点之间的第二距离L2进行比较来确定在每个条带(50)中生成的第一三角形(51)的顶点(53);
其中,当所述第一距离L1大于或等于所述第二距离L2时,所述第一边界上的前两个点用作三角形顶点;并且
在所述第二距离L2大于所述第一距离L1的情况下,所述第二边界上的前两个点用作三角形顶点。
9.根据权利要求1所述的方法,其中,条带(50)中的第一三角形(51)的剔除方向(73)通过从第一三角形的第一顶点到第二顶点的向量与从所述第一顶点到所述第一三角形的第三顶点的向量的叉积来确定,其中,正叉积得到顺时针剔除方向,并且负叉积得到逆时针剔除方向。
10.根据权利要求9所述的方法,其中,条带(50)中的连续渲染的三角形(51)的所述剔除方向(73)在所述第一三角形剔除方向与相反剔除方向之间交替。
11.根据权利要求9至10中任一项所述的方法,其中,条带(50)中的相邻三角形(51)的所述剔除方向(73)是相同的。
12.根据权利要求1所述的方法,其中,所述有序指令列表是显示列表(22)。
13.一种校正失真图像(9)的方法,所述方法包括:
将失真图像从系统存储器(14)接收到纹理缓存(24)中;
使用存储在系统存储器(14)中的有序指令列表中的、所述失真图像的三角形的顶点(53)的坐标,将所述三角形(51)纹理映射到失真校正图像上;以及
将其存储在目标缓存(25)中;
其中,所述有序指令列表包括像素坐标列表,所述像素坐标是参考输入图像(36’)的条带(52)中的三角形(51)在源坐标系(30)和目标坐标系(32)中的顶点(53),使得所述源坐标系中的所述顶点到所述目标坐标系(32)中的对应输出图像(36)的变换导致所述三角形被映射到图像数据块,所述图像数据块映射到行存储器的块(47),所述有序指令列表通过以下方式生成:
在所述目标坐标系中将参考输出图像划分为多个拼接部分(35);
对于每个部分:
通过将所述部分划分为行存储器的块的来限定所述部分中像素(46)的条带(50)的阵列的第一边界和第二边界,其中,每个部分(35)中的条带(50)的数量通过将所述目标坐标系(32)中的多个拼接部分(35)中的每一个的拐角(34)变换到所述源坐标系(30)中以生成多个变换后部分(35’)来确定;
对于每个变换后部分:
确定像素(46)中v维度的最宽跨越(46);
将跨越所述v维度的像素(46)的数量除以所述行存储器的块(47)的高度(45);以及
对于每个条带:
将被包含在每个条带中的每个像素集划分为一系列有序三角形;
为所述条带中每个三角形的每个顶点生成目标坐标和源坐标的集;以及
将所述顶点(53)在源坐标系和目标坐标系(30,32)中的所述坐标存储在所述有序指令列表中。
14.一种计算机程序产品,包括存储计算机程序的计算机可读介质,所述计算机程序当由一个或多个处理器执行时,使所述一个或多个处理器执行根据权利要求1或13所述的方法。
15.一种被配置成执行权利要求13所述的方法的模块。
16.根据权利要求15所述的模块,所述模块是硬件模块。
17.一种单片集成电路,包括:
处理器子系统,包括至少一个处理器和存储器;以及
根据权利要求15或16所述的模块。
18.一种生成有序指令列表的系统,包括:
至少一个摄像机,用于提供失真图像数据(9);以及
根据权利要求17所述的集成电路,被布置成从所述至少一个摄像机接收失真图像数据。
19.一种机动车辆,包括:
根据权利要求18所述的系统。
20.一种用于生成包括像素坐标列表的有序指令列表的计算机系统,所述像素坐标是参考输入图像(33’)的条带(52)中的三角形(51)在源坐标系[u、v](30)中的顶点(53),使得所述顶点到目标坐标系[x、y](30)中的对应输出图像(33)的变换导致所述三角形被映射到图像数据块,所述图像数据块映射到行存储器的块(47)或“纹理缓存”,使得当被读出时,不存在缓存损坏,所述计算机系统包括:
至少一个处理器;
存储器;
其中,所述至少一个处理器被配置成执行根据权利要求1所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2018/082661 WO2020108738A1 (en) | 2018-11-27 | 2018-11-27 | Instruction list generation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112970048A CN112970048A (zh) | 2021-06-15 |
CN112970048B true CN112970048B (zh) | 2024-04-19 |
Family
ID=64559670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880099395.1A Active CN112970048B (zh) | 2018-11-27 | 2018-11-27 | 指令列表生成 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11481976B2 (zh) |
EP (1) | EP3888063A1 (zh) |
JP (1) | JP7190574B2 (zh) |
CN (1) | CN112970048B (zh) |
WO (1) | WO2020108738A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048531B (zh) * | 2023-03-30 | 2023-08-08 | 南京砺算科技有限公司 | 指令编译方法及图形处理装置、存储介质、终端设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6577310B1 (en) * | 1998-12-01 | 2003-06-10 | Samsung Electronics Co., Ltd. | 3D mesh coding/decoding method and apparatus for error resilience and incremental rendering |
JP2009231936A (ja) * | 2008-03-19 | 2009-10-08 | Sanyo Electric Co Ltd | 画像処理装置及び方法、運転支援システム、車両 |
CN102184522A (zh) * | 2010-06-17 | 2011-09-14 | 威盛电子股份有限公司 | 顶点数据储存方法、图形处理单元及细化器 |
CN102254340A (zh) * | 2011-07-29 | 2011-11-23 | 北京麒麟网信息科技有限公司 | 一种基于gpu加速的环境光遮挡图像绘制方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1932885B (zh) | 2002-10-15 | 2012-02-29 | 诺基亚公司 | 三维图像处理 |
US8194071B2 (en) * | 2004-05-24 | 2012-06-05 | St-Ericsson Sa | Tile based graphics rendering |
JP5173552B2 (ja) | 2008-04-23 | 2013-04-03 | アルパイン株式会社 | 車両周辺監視装置およびこれに適用される歪み補正値の設定修正方法 |
JP2010257357A (ja) | 2009-04-28 | 2010-11-11 | Renesas Electronics Corp | 画像処理装置、半導体データ処理装置及びデータ処理システム |
US9818201B2 (en) * | 2014-12-22 | 2017-11-14 | Lucasfilm Entertainment Company Ltd. | Efficient lens re-distortion |
US11043028B2 (en) * | 2018-11-02 | 2021-06-22 | Nvidia Corporation | Reducing level of detail of a polygon mesh to decrease a complexity of rendered geometry within a scene |
-
2018
- 2018-11-27 WO PCT/EP2018/082661 patent/WO2020108738A1/en unknown
- 2018-11-27 JP JP2021529818A patent/JP7190574B2/ja active Active
- 2018-11-27 CN CN201880099395.1A patent/CN112970048B/zh active Active
- 2018-11-27 US US17/269,049 patent/US11481976B2/en active Active
- 2018-11-27 EP EP18811493.8A patent/EP3888063A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6577310B1 (en) * | 1998-12-01 | 2003-06-10 | Samsung Electronics Co., Ltd. | 3D mesh coding/decoding method and apparatus for error resilience and incremental rendering |
JP2009231936A (ja) * | 2008-03-19 | 2009-10-08 | Sanyo Electric Co Ltd | 画像処理装置及び方法、運転支援システム、車両 |
CN102184522A (zh) * | 2010-06-17 | 2011-09-14 | 威盛电子股份有限公司 | 顶点数据储存方法、图形处理单元及细化器 |
CN102254340A (zh) * | 2011-07-29 | 2011-11-23 | 北京麒麟网信息科技有限公司 | 一种基于gpu加速的环境光遮挡图像绘制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US11481976B2 (en) | 2022-10-25 |
JP2022510894A (ja) | 2022-01-28 |
WO2020108738A1 (en) | 2020-06-04 |
EP3888063A1 (en) | 2021-10-06 |
US20210183145A1 (en) | 2021-06-17 |
JP7190574B2 (ja) | 2022-12-15 |
CN112970048A (zh) | 2021-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3444775B1 (en) | Single pass rendering for head mounted displays | |
US20040075654A1 (en) | 3-D digital image processor and method for visibility processing for use in the same | |
US8009172B2 (en) | Graphics processing unit with shared arithmetic logic unit | |
US9218686B2 (en) | Image processing device | |
US20040246260A1 (en) | Pixel cache, 3D graphics accelerator using the same, and method therefor | |
EP1994506B1 (en) | Texture unit for multi processor environment | |
TWI503791B (zh) | 針對各向異性過濾運算細節位準之技術 | |
CN110582797A (zh) | 用于多级绘制后图像变换的方法和系统 | |
US7898549B1 (en) | Faster clears for three-dimensional modeling applications | |
US7710424B1 (en) | Method and system for a texture-aware virtual memory subsystem | |
CN111275621A (zh) | 一种行车环视系统中全景图生成方法、系统及存储介质 | |
CN115330986B (zh) | 一种分块渲染模式图形处理方法及系统 | |
JP5893445B2 (ja) | 画像処理装置、および画像処理装置の動作方法 | |
CN112970048B (zh) | 指令列表生成 | |
US7808512B1 (en) | Bounding region accumulation for graphics rendering | |
US8068120B2 (en) | Guard band clipping systems and methods | |
WO2001029818A1 (en) | Atomic operation in system with burst mode memory access | |
CN111652937A (zh) | 车载相机标定方法和装置 | |
US10096135B2 (en) | Image processing LSI and image processing program | |
CN109685715B (zh) | 一种显示系统中高精度图像无级旋转处理方法 | |
CN113658262A (zh) | 相机外参标定方法、装置、系统及存储介质 | |
US7646385B2 (en) | Computer graphics rendering method and apparatus | |
US20100277488A1 (en) | Deferred Material Rasterization | |
US20240087078A1 (en) | Two-level primitive batch binning with hardware state compression | |
KR20080064528A (ko) | 3차원 그래픽 가속기 그리고 텍스쳐 데이터 패치 방법 |
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 |