CN115210749A - 几何校正引擎中的错误处理 - Google Patents
几何校正引擎中的错误处理 Download PDFInfo
- Publication number
- CN115210749A CN115210749A CN202180018348.1A CN202180018348A CN115210749A CN 115210749 A CN115210749 A CN 115210749A CN 202180018348 A CN202180018348 A CN 202180018348A CN 115210749 A CN115210749 A CN 115210749A
- Authority
- CN
- China
- Prior art keywords
- block
- gce
- output
- input frame
- coordinates
- 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.)
- Pending
Links
- 238000012937 correction Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000009466 transformation Effects 0.000 claims description 41
- 238000013507 mapping Methods 0.000 claims description 37
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000003384 imaging method Methods 0.000 description 4
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 1
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 1
- 238000003705 background correction Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- 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/18—Image warping, e.g. rearranging pixels individually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
提供了一种用于在几何校正引擎(GCE)中进行错误处理的方法,该方法包括由GCE接收(800)配置参数,由GCE根据配置参数基于输入帧的对应块生成(802)输出帧的输出块,在生成期间由GCE检测(804)运行时错误,以及由GCE报告(806)与运行时错误相对应的事件。
Description
背景技术
具有广角镜头的相机,例如鱼眼相机,正被用于越来越多的应用中,例如监控、机器人视觉、汽车后视成像***、汽车环视成像***等,以提供180+°视野。虽然此类镜头提供了非常大的广角视图,但当将半球形场景投影到平面上观看时,所产生的图像可能会严重失真。因此,此类相机捕获的图像在呈现给观看者之前会被校正为近似直线的版本。在实时应用中,几何校正引擎(GCE)可以包含在片上***(SoC)中的视频加工加速器中,以对来自此类广角镜头的图像执行几何图像变换以校正失真。GCE还可以执行图像透视变化和立体纠正。
发明内容
本公开的实施例涉及几何校正引擎(GCE)中的错误处理。在一个方面,提供了一种用于在几何校正引擎(GCE)中进行错误处理的方法,该方法包括由GCE接收配置参数,由GCE根据配置参数基于输入帧的对应块生成输出帧的输出块,在生成期间由GCE检测运行时错误,以及由GCE报告与运行时错误相对应的事件。
在一个方面,提供了一种片上***(SoC),SoC包括几何校正引擎(GCE)、存储器和至少一个处理器,该几何校正引擎被配置为从用户提供的控制程序接收配置参数,根据配置参数基于输入帧的对应输入块生成输出帧的输出块,在生成输出块的同时检测运行时错误,以及向用户提供的控制程序报告与运行时错误相对应的事件,存储器被配置为存储实现用于GCE的用户提供的控制程序的软件指令,并且至少一个处理器耦合到存储器以执行软件指令。
在一个方面,提供了一种几何校正引擎(GCE),其包括变换部件和反向映射部件,该变换部件被配置为将透视变换应用于输出帧的输出块的角坐标以生成第一透视扭曲坐标,使用第一透视扭曲坐标计算网格(mesh)查找表(LUT)中的网格LUT块的角坐标,其中网格LUT块对应于输出块,以及当网格LUT块的大小大于为网格LUT块分配的内部存储时,检测并报告第一运行时错误,并且反向映射部件被配置为使用网格LUT块将第一透视扭曲坐标反向映射到输入帧中的坐标,基于输入帧中的坐标计算对应于输出块的输入帧块的边界框,以及当输入帧块的大小大于为输入帧块分配的GCE的内部存储时,检测并报告第二运行时错误。
附图说明
图1图示了几何校正引擎(GEC)的一般操作;
图2A-图2C是在GCE中发生运行时错误时输出图像中的伪影的示例;
图3是图示并入了GCE的视频加工加速器(VPAC)的示例的框图;
图4是示例GCE的框图;
图5是图示将输出帧划分为9个区域的示例,其中每个区域具有不同的块大小。
图6是图示图4的GCE的操作的示例;
图7是图示用于获取网格数据的边界块的示例;
图8是用于GCE中的错误处理的方法的流程图;和
图9是示例多处理器片上***(SoC)的高级框图。
具体实施方式
本文参考附图对本公开的具体实施例进行详细描述。为一致起见,各个图中的相同元件由相同的附图标记表示。
图1图示了根据本公开的实施例的几何校正引擎(GEC)104的一般操作。为了校正失真图像,GEC 104使用称为“反向映射”的技术,其中失真输入图像中的像素坐标被确定为未失真输出图像中像素坐标的函数。校正涉及将每个输出像素位置反向映射到输入失真图像中的像素位置。
GCE 104逐块地对输入图像进行操作。输出帧缓冲器102被划分为块,并且每个输出块由GCE 104使用网格查找表(LUT)107反向映射到输入帧缓冲器101中的输入帧块,该LUT 107提供输出图像中的像素位置到输入图像中的对应位置的映射。例如,GCE 104对输出块103的四个角的坐标执行透视扭曲,并使用扭曲的坐标在网格表107中定位对应的块106。然后GCE 104通过使用网格表块106对输出块103的透视扭曲角像素坐标应用反向映射来计算用于生成输出块103的输入块105的角的坐标。从输入帧缓冲器101中获取输入块105,并且GCE 104使用输入图像块105生成输出图像块103。
诸如GCE 104的GCE具有若干配置参数,用户可以通过模拟离线确定这些配置参数的值。由于内部存储器有限、GCE中整数运算精度有限和/或用户为GCE提供的不安全或激进的配置参数等问题,GCE可能会出现运行时错误。当发生运行时错误时,GCE可能会在输出图像中产生伪影。例如,如图2A所示,整数运算精度有限会影响输入图像的期望块的坐标的计算,使得一些需要的像素不在获取的输入图像块中。在另一示例中,如图2B所示,用户对参数的激进设置导致输出图像中的竖直伪影。在另一个示例中,如图2C所示,由用户参数设置的输出块的大小超过内部存储器的大小,导致输出图像中的水平伪影。
用户更喜欢使用更激进的GCE参数来节省内存带宽,而不用担心运行时的输出图像伪影。此外,用户希望允许实时更改GCE参数并能够快速确定参数更改是否安全,例如,允许驾驶员动态更改汽车环视***中的视角或提供汽车环视***中相机的实时校准。GCE的现有技术实施方式没有提供优雅的错误处理和错误影响的隐藏,即伪影隐藏。
本公开的实施例提供了由于诸如激进的参数值、由于视图改变(例如由驾驶员)引起的参数值的动态改变和/或实时相机校准等问题而在GCE中报告运行时错误,以及由一些运行时错误导致的伪影的自动隐藏。在一些实施例中,经由中断向用户指定的控制程序发信号通知导致错误的伪影,这允许控制程序实时修改GCE参数以避免未来的错误。此外,GCE可以通过将丢失的像素数据与最近的可用相邻像素数据近似来隐藏输出图像中由一些错误引起的视觉伪影。
图3是图示根据一些实施例的并入了GCE 303的视频加工加速器(VPAC)300的示例的框图。可以被包括在片上***(SoC)中的VPAC 300包括GCE303、标量部件308、噪声滤波器(NF)部件310、两个视觉成像子***(VISS)309、硬件线程调度器302、配置部件301、共享存储器互连件304、本地共享存储器305、直接存储器访问(DMA)端口306和主端口307。
如本文所述的,GCE 303经由主端口307读取输入图像并且对图像执行几何校正(例如几何失真校正)、透视变换和/或旋转视频稳定,以生成输出图像。GCE 303的输出可以被发送到外部存储器或其他硬件部件,例如标量部件308或噪声滤波器部件310,以经由本地共享存储器305进行进一步预加工。
标量部件308从共享存储器304读取数据并生成具有各种缩放比率的缩放输出。标量部件的输出存储在本地共享存储器305中,并且可以由噪声滤波器部件310滤波或写入外部存储器。
噪声滤波器部件310执行双边滤波以去除噪声。噪声滤波器部件的输出可以从本地共享存储器305发送到外部存储器,或者可以由标量部件308进一步调整大小。本地共享存储器305用于跨硬件部件(例如GCE 303、标量部件308和噪声滤波器部件310),以及到DMA端口306交换数据。
视觉成像子***309执行原始数据图像加工,例如缺陷像素校正、透镜阴影校正、全局/局部亮度和对比度增强、去马赛克和颜色转换。
硬件线程调度器302用于VPAC 300的各个硬件部件之间的通信。配置管理器301被在SoC中的处理器上执行的外部配置软件使用以设置各个硬件部件的参数值。VPAC 300还可包括诸如时钟、复位、网络、数据和调试信号的典型硬件输入以及诸如中断信号的硬件输出。
图4是根据一些实施例的示例GCE 400(例如图3的GCE 303)的框图。如本文参考图6更详细解释的,GCE 400被配置为报告可能在GCE加工中的各个点发生的运行时错误。此外,对于一些运行时错误,GCE 400被配置为隐藏由这些错误造成的输出帧中的伪影。
GCE 400对输入帧的块执行几何校正操作以生成输出帧的对应块。更具体地说,输出帧可以使用整个输出帧的单个用户指定的输出块大小来生成,或者可以经由用户指定的配置参数将输出帧划分为多达九个区域,并且每个区域可以具有也由用户指定的区域特定的输出块大小。图5是图示将输出帧划分为九个区域的示例,其中每个区域具有不同的块大小。在并入了GCE 400的片上***的处理器上执行的用户提供的控制程序提供指定区域数量、区域大小和每个区域中的输出块大小的配置参数值。例如,可以在2017年9月25日提交的美国专利公开号2019/0096041中找到关于将输出帧划分为多个区域和输出块大小以供GCE处理的附加信息,该专利通过引用并入本文。GCE 400以光栅扫描顺序对每个区域进行操作,以从输入帧中的对应块生成几何校正的输出块。
GCE 400包括计数器部件402、变换部件404、反向映射部件406、网格查找表(LUT)408、被配置为选择使用变换部件404还是反向映射部件406的输出的复用部件415、缓冲器409、插值部件410、耦合到并入输入帧的帧缓冲器的外部存储器401的帧缓冲器接口411,以及耦合到存储几何校正输出帧的外部共享存储器413的共享存储器接口414。本文提供了这些部件的简要说明。有关此类部件的示例的操作的附加细节可以在先前引用的美国专利公开号2019/0096041中找到。
计数器部件402被配置为计算正在加工的区域的输出帧中的输出块中的像素位置的坐标403。坐标的计算基于用户指定的区域中输出块的大小、用户指定的区域大小以及输出块在区域的光栅扫描顺序加工中的位置。
变换部件404和反向映射部件406被配置为生成输入帧中的位移像素的坐标407,该坐标对应于由计数器块402计算的输出块中的坐标。变换部件404被配置为将仿射和/或透视变换应用于输出块像素坐标,以在用户提供的控制程序启用的情况下生成透视扭曲输出块坐标405。如果未启用变换的应用,则变换部件块404输出由计数器部件生成的输出块的未改动坐标。
反向映射部件406被配置为生成与从变换部件404接收的输出块坐标相对应的输入帧中的位移像素的坐标407。输入图像中的对应坐标可以通过将接收到的输出坐标与来自基于接收到的输出块坐标定位的用户提供的网格查找表(LUT)408的偏移相结合来计算。网格LUT 408,也可称为偏移表,是将输出帧中像素的位置映射到输入帧中的对应位置的规则方格(grid),并且由用户提供。网格LUT 408为输出帧中的位置定义偏移向量(Δx,Δy)。方格可以被完全采样或降采样。完全采样的方格为每个输出像素定义了偏移向量,从而准确定义了从哪里获取输入数据以计算输出像素。如果对方格进行了下采样,则使用双线性插值对缺失的偏移向量进行插值。
缓冲器409被配置为经由帧缓冲器接口411接收从帧缓冲器检索的输入像素并将其存储在外部存储器401中。如果启用反向映射,则输入像素对应于由反向映射部件406生成的像素坐标,如果没有启用反向映射,则输入像素对应于变换部件404输出的像素坐标。
插值部件410被配置为使用用户提供的配置程序指定的双三次或双线性插值来插值从缓冲器部件409接收的输入像素值,以生成输出像素的值,即在由计数器部件402生成的坐标处的输出像素的值。在插值之后,几何校正的输出块经由SL2接口414被存储在SL2共享存储器413中的输出帧缓冲器中。
图6是图示GCE 400的操作的示例。为了简单的解释,该示例假设应用透视变换和反向映射被启用并且网格LUT被下采样。对于输出帧的区域中的输出块,计数器部件402计算输出块的四个角的坐标,并且变换部件404对这些坐标应用透视变换600以生成用于反向映射部件406的透视扭曲坐标。
变换部件404使用透视扭曲坐标来计算602对应于输出块的网格LUT块618的网格LUT 408中的角坐标。更具体地,变换部件404计算用于网格数据的矩形边界框740(例如图7的示例中所示的)以获取例如网格LUT块618,使得边界框740包含对应于四个透视扭曲角坐标的网格点,例如角711。图7显示了示例输出块720和给定输出块720的角的透视扭曲坐标的输出块720的边界框730。反向映射部件406使用双线性插值以将下采样网格点701、702、703、704上采样到像素坐标精度。对于网格点双线性插值,透视扭曲之后的边界框730向右扩展一列,底部扩展一行,形成矩形边界框740。
如果网格LUT块618的大小大于在缓冲器409中为网格LUT块分配的内部存储和/或块的任何边界超过硬件地址大小,则变换部件404导致报告网格块溢出事件。变换部件404将使得对于发生该错误的每个网格块连同对应输出块的左上角坐标一起报告该事件一次。该事件在本文中可以称为mesh_iblk_memovf。这种运行时错误情况可能会导致一个或多个输出块出现可见损坏。例如,由于输出块大小过大、仿射或透视变换的参数值不正确或网格LUT的下采样因子过小,可能会发生此错误。
再次参考图6,GCE 400获取604对应于由变换部件404计算的网格表边界块的网格LUT块618,并将网格LUT块618存储在缓冲器409中。反向映射部件406然后使用网格LUT块618将由变换部件404计算的输出块的透视扭曲角反向映射606到输入帧中的坐标,并使用反向映射的角坐标来计算608对应于输出块的输入帧块的边界框。反向映射部件406在反向映射坐标周围应用额外的填充,例如一个或多个额外的像素行和列,以计算输入边界框的最终坐标。填充的量和位置取决于要由插值部件410执行的插值类型。附加的用户定义的填充也可以在所有方向上应用以计算最终的边界框。GCE 400获取610由计算的输入边界块识别的输入帧块612并将输入帧块612存储在缓冲器409中。
如果输入帧块612的大小大于在缓冲器409中为输入帧块分配的内部存储和/或块的任何边界超过硬件地址大小,则反向映射部件406导致报告像素块溢出事件。反向映射部件406将使得对于发生错误的每个输入块连同对应输出块的左上角坐标一起报告该事件一次。该事件在本文中可以称为pix_iblk_memovf。这种运行时错误情况可能会导致一个或多个输出块出现可见损坏。例如,由于输出块大小太大,可能会发生此错误。
一旦生成输出块(即网格LUT块618和输入帧块612)所需的输入数据可用,GCE 400执行块加工以从输入帧块612的对应的几何校正像素生成输出块的像素值。计数器部件402以光栅扫描顺序计算输出块中每个像素位置的坐标,并将坐标提供给变换部件404。
变换部件404将透视变换614应用于这些坐标以生成用于反向映射部件406的透视扭曲坐标。如果仿射或透视变换操作的中间变量的值超过GCE硬件可以支持的值,则变换部件404导致在每帧中第一次出现该错误时报告内部精度错误事件。例如,由于用户指定的变换系数的值不正确,可能会发生此错误。当此类错误发生时,变换部件404将中间变量值裁剪为硬件支持的大小。该事件在本文中可以称为int_szovf。
此外,如果透视扭曲坐标在网格LUT的边界之外,即,在网格LUT中可用的网格数据的帧大小之外,则变换部件404将坐标裁剪616到网格LUT的边界。此外,变换部件404导致在每帧中第一次出现该错误时报告帧越界事件。该事件在本文中可称为ifr_outofbound。
此外,如果透视扭曲坐标在网格LUT块618的边界之外,则变换部件404将越界坐标裁剪616到网格LUT块618的边界。此外,变换部件404导致在每帧中第一次出现此错误时报告网格块越界事件。该事件在本文中可以称为mesh_iblk_outofbound。
反向映射部件406使用网格LUT块618将由变换部件404计算的输出像素位置的透视扭曲坐标反向映射620到输入帧块612中的坐标。此外,如果输入帧块坐标是在输入帧的边界之外,反向映射部件406将坐标裁剪622到输入帧的边界。此外,反向映射部件406导致在每帧中第一次出现此错误时报告帧越界事件。该事件在本文中可称为ifr_outofbound。
此外,如果输入块坐标在输入帧块612的边界之外,则p映射部件406将越界坐标裁剪622到输入帧块612的边界。越界坐标的裁剪具有隐藏输出块中由于此错误而将以某种方式发生的任何伪影的效果。此外,反向映射部件406导致在每帧中第一次出现该错误时报告输入块越界事件以及对应输出块的左上角坐标。该事件在本文中可以称为pix_iblk_outofbound。
待存储在输出块坐标处的像素值然后由插值部件410基于由反向映射部件提供的坐标进行插值624。例如,如果选择双三次插值,则输出像素值是根据输入块坐标指示的位置周围的4x4方格中的16个像素值进行插值的。如果选择双线性插值,则输出像素值是根据输入块坐标指示的位置周围的2x2方格中的四个像素值进行插值的。
图8是根据一些实施例的用于在GCE(例如,图4的GCE 400)中进行错误处理的方法的流程图。最初,GCE从用户提供的控制程序接收800配置参数,用于执行几何校正以生成输出帧。此类配置参数的示例在此之前已描述。然后GCE基于输入帧的输入块根据配置参数生成输出帧的输出块。输出块的生成在此之前已描述。在输出块的生成期间,GCE可以检测804运行时错误,如本文先前所述。当检测到运行时错误时,GCE向用户提供的控制程序报告806对应于运行时错误的事件。取决于特定的运行时错误,GCE还可以执行与本文先前描述的错误相适应的校正动作,例如,将坐标剪裁到边界,以隐藏输出图像中可能由运行时错误导致的潜在伪影。响应于特定的运行时错误,用户提供的控制程序可以修改一个或多个配置参数,并且GCE将接收808修改后的配置参数以用于生成另一个输出帧。
图9是可以被配置为执行如本文所述的GCE中的错误处理的实施例的示例多处理器片上***(SoC)900的高级框图。具体地,示例SoC 900是可从德克萨斯仪器有限公司获得的TDA4VM SoC的实施例。本文提供了对SoC900的部件的高级描述。示例部件的更详细描述可在德克萨斯仪器有限公司的SPRSP36E的2019年12月修订版的2019年2月期第1-311页的“TDA4VM JacintoTM Automotive Processors for ADAS and Autonomous VehiclesSilicon Revision 1.0”中找到,其内容通过引用并入本文。
SoC 900包括跨不同域的众多子***,例如一个双核64位 -A72微处理器子***904、基于两个双核-R5F MCU的微控制器单元(MCU)岛906、主域中的四个额外双核-R5FMCU 912、两个C66x浮点数字信号处理器(DSP)908、包括深度学习矩阵乘加速器(MMA)的一个C71x浮点向量DSP 910以及3D图形处理单元(GPU)913。SoC 900还包括存储器子***914,该子***包括高达8MB的片上静态随机存取存储器(SRAM)、内部DMA引擎、通用存储器控制器(GPMC)和外部存储器接口(EMIF)模块(EMIF)。此外,SoC 900包括具有两个相机流接口的捕获子***916、包括GCE的视觉加工加速器(VPAC)902、深度和运动加工加速器(DMPAC)918以及视频加速模块920。SoC 900还包括显示子***922、以太网子***924、导航子***926、各种安全加速器928、***服务支持930以及各种其他接口932。
实现如本文所述的用户提供的控制程序的软件指令可以存储在存储器子***914(例如,计算机可读介质)中并且可以在SOC 900的一个或多个可编程处理器(例如,DSP910)上执行。此外,VPAC 902中的GCE例如可以是图4的GCE 400的实施例。
其他实施例
虽然已经针对有限数量的实施例描述了本公开,但是受益于本公开的本领域技术人员将理解,可以设计出不脱离本文公开的范围的其他实施例。
例如,本文已经描述了其中针对一些错误事件报告发生错误的输出块的角坐标的实施例。在其他实施例中,可以针对一些错误事件(例如mesh_iblk_memovf、pix_iblk_memovf、int_szovf、pix_iblk_outofbound和ifr_outofbound)报告覆盖对应于错误事件的区域中的所有输出块的边界块,即,引发对应于错误事件的运行时错误。在一些这样的实施例中,提供选项使得用户程序可以选择为mesh_iblk_memovf、pix_iblk_memovf和int_szovf或所有五个事件报告边界块。在所有这样的实施例中,在GCE完成图像加工之后,用户提供的控制程序可以检查这样的边界框。用户提供的控制程序可以选择使GCE在由一个或多个边界框识别的一个或多个区上以不同的参数再次执行,在这种情况下,一个或多个区的GCE输出将替换GCE原始执行的输出。用户提供的控制程序还可以选择修改GCE的配置参数以加工下一个图像,而不是尝试更改当前图像的GCE输出。
因此,预期所附权利要求将涵盖落入本公开的真实范围内的实施例的任何此类修改。
Claims (28)
1.一种用于在几何校正引擎即GCE中进行错误处理的方法,所述方法包括:
由所述GCE接收配置参数;
由所述GCE根据所述配置参数基于输入帧的对应块生成输出帧的输出块;
由所述GCE检测所述生成期间的运行时错误;以及
由所述GCE报告与所述运行时错误相对应的事件。
2.根据权利要求1所述的方法,其中所述运行时错误能导致所述输出帧中的伪影。
3.根据权利要求1所述的方法,其中报告还包括报告对应于所述事件的输出块的左上角坐标。
4.根据权利要求1所述的方法,其中报告还包括报告覆盖在所述输出帧的引起所述运行时错误的区域中的所有输出块的边界框。
5.根据权利要求4所述的方法,还包括由所述GCE接收一个或多个修改参数,其中所述GCE根据所述一个或多个修改参数为所述边界框中的所述输出块生成新的输出块。
6.根据权利要求1所述的方法,其中
生成还包括对输出块的角坐标应用透视变换以生成透视扭曲角坐标,并基于所述透视扭曲角坐标计算与所述输出块相对应的网格查找表块即网格LUT块;并且
检测还包括当网格LUT块的大小大于为所述网格LUT块分配的所述GCE的内部存储时检测运行时错误。
7.根据权利要求6所述的方法,其中
生成还包括使用所述网格LUT块将所述透视扭曲角坐标反向映射到所述输入帧中的坐标,并基于所述输入帧中的所述坐标计算与所述输出块相对应的输入帧块的边界框;并且
检测还包括当输入帧块的大小大于为所述输入帧块分配的所述GCE的内部存储时检测运行时错误。
8.根据权利要求1所述的方法,其中
生成还包括对输出块中像素位置的坐标应用透视变换以生成透视扭曲坐标;并且
检测还包括当所述透视变换的中间变量的值超过所述GCE支持的大小时检测运行时错误,并将所述中间变量值裁剪为所述GCE支持的所述大小。
9.根据权利要求1所述的方法,其中
生成还包括对输出块中像素位置的坐标应用透视变换以生成透视扭曲坐标;并且
检测还包括当所述透视扭曲坐标在由所述配置参数中的一个指示的网格查找表即网格LUT中可用的网格数据的输出帧大小之外时检测运行时错误,并将所述透视扭曲坐标裁剪到所述网格LUT的边界。
10.根据权利要求9所述的方法,其中检测还包括:
当所述透视扭曲坐标在对应于所述输出块的网格LUT块的边界之外时检测运行时错误;并且
将所述透视扭曲坐标裁剪到所述网格LUT块的边界。
11.根据权利要求10所述的方法,其中
生成还包括使用所述网格LUT块将所述透视扭曲坐标反向映射到对应于所述输出块的输入帧块中的坐标;并且
检测还包括当所述输入帧块坐标在所述输入帧的边界之外时检测运行时错误,并且将所述输入帧块坐标裁剪到所述输入帧的边界。
12.根据权利要求11所述的方法,其中检测还包括:
检测还包括当所述输入帧块坐标在对应于所述输出块的所述输入帧块的边界之外时检测运行时错误;并且
将所述输入帧块坐标裁剪到所述输入帧块的边界。
13.一种片上***即SoC,其包括:
几何校正引擎即GCE,所述GCE被配置为:
从用户提供的控制程序接收配置参数;
根据所述配置参数,基于输入帧的对应输入块生成输出帧的输出块;
在生成所述输出块的同时检测运行时错误;以及
向所述用户提供的控制程序报告与所述运行时错误相对应的事件;
存储器,其被配置为存储实现用于所述GCE的所述用户提供的控制程序的软件指令;以及
至少一个处理器,其耦合到所述存储器以执行所述软件指令。
14.根据权利要求13所述的SOC,其中所述运行时错误能导致所述输出帧中的伪影。
15.根据权利要求13所述的SOC,其中所述GCE还被配置为报告对应于所述事件的输出块的左上角坐标。
16.根据权利要求13所述的SOC,其中所述GCE还被配置为报告覆盖在所述输出帧的引起所述运行时错误的区域中的所有输出块的边界框。
17.根据权利要求16所述的SOC,其中所述GCE还被配置为接收一个或多个修改参数,其中所述GCE根据所述一个或多个修改参数为所述边界框中的所述输出块生成新的输出块。
18.根据权利要求13所述的SOC,其中所述GCE还被配置为:
通过对输出块的角坐标应用透视变换以生成透视扭曲角坐标并基于所述透视扭曲角坐标计算与所述输出块相对应的网格查找表块即网格LUT块,来生成输出块;并且
当网格LUT块的大小大于为所述网格LUT块分配的所述GCE的内部存储时,检测运行时错误。
19.根据权利要求18所述的SOC,其中所述GCE还被配置为:
通过使用所述网格LUT块将所述透视扭曲角坐标反向映射到所述输入帧中的坐标并基于所述输入帧中的所述坐标计算与所述输出块相对应的输入帧块的边界框,来生成输出块;并且
当输入帧块的大小大于为所述输入帧块分配的所述GCE的内部存储时,检测运行时错误。
20.根据权利要求13所述的SOC,其中所述GCE还被配置为:
通过对输出块中像素位置的坐标应用透视变换以生成透视扭曲坐标,来生成输出块;并且
当所述透视变换的中间变量的值超过所述GCE支持的大小时检测运行时错误,并将所述中间变量值裁剪为所述GCE支持的所述大小。
21.根据权利要求13所述的SOC,其中所述GCE还被配置为:
通过对输出块中像素位置的坐标应用透视变换以生成透视扭曲坐标来生成输出块;并且
当所述透视扭曲坐标在由所述配置参数中的一个指示的网格查找表即网格LUT中可用的网格数据的输出帧大小之外时检测运行时错误,并将所述透视扭曲坐标裁剪到所述网格LUT的边界。
22.根据权利要求21所述的SOC,其中所述GCE还被配置为:
当所述透视扭曲坐标在对应于所述输出块的网格LUT块的边界之外时检测运行时错误;并且
将所述透视扭曲坐标裁剪到所述网格LUT块的边界。
23.根据权利要求22所述的SOC,其中所述GCE还被配置为:
通过使用所述网格LUT块将所述透视扭曲坐标反向映射到对应于所述输出块的输入帧块中的坐标来生成输出块;
当所述输入帧块坐标在所述输入帧的边界之外时检测运行时错误;并且
将所述输入帧块坐标裁剪到所述输入帧的边界。
24.根据权利要求23所述的SOC,其中所述GCE还被配置为:
当所述输入帧块坐标在对应于所述输出块的输入帧块的边界之外时检测运行时错误;并且
将所述输入帧块坐标裁剪到所述输入帧块的边界。
25.一种几何校正引擎即GCE,其包括:
变换部件,其被配置为:
将透视变换应用于输出帧的输出块的角坐标以生成第一透视扭曲坐标;
使用所述第一透视扭曲坐标计算网格查找表即网格LUT中的网格LUT块的角坐标,其中所述网格LUT块对应于所述输出块;以及
当网格LUT块的大小大于为所述网格LUT块分配的内部存储时,检测并报告第一运行时错误;以及
反向映射部件,其被配置为:
使用所述网格LUT块将所述第一透视扭曲坐标反向映射到输入帧中的坐标;
基于所述输入帧中的所述坐标计算对应于所述输出块的输入帧块的边界框;以及
当输入帧块的大小大于为所述输入帧块分配的所述GCE的内部存储时,检测并报告第二运行时错误。
26.根据权利要求25所述的GCE,其中:
所述变换部件还被配置为:
将所述透视变换应用于所述输出块中像素位置的坐标,以生成第二透视扭曲坐标;
当所述透视变换的中间变量的值超过所述GCE支持的大小时,检测并报告第三运行时错误,其中所述变换部件将所述中间变量值裁剪为所述GCE支持的所述大小;以及
当所述第二透视扭曲坐标在所述网格LUT中可用的网格数据的输出帧大小之外时检测并报告第四运行时错误,其中所述变换部件将所述第二透视扭曲坐标裁剪到所述网格LUT的边界;并且
所述反向映射部件还被配置为:
使用所述网格LUT块将所述第二透视扭曲坐标反向映射到所述输入帧块中的坐标;
当所述输入帧块坐标在所述输入帧的边界之外时检测并报告第五运行时错误,其中所述反向映射部件将所述输入帧块坐标裁剪到所述输入帧的边界;以及
当所述输入帧块坐标在所述输入帧块的边界之外时检测并报告第六运行时错误,其中所述反向映射部件将所述输入帧块坐标裁剪到所述输入帧块的边界。
27.根据权利要求26所述的GCE,还包括插值部件,所述插值部件被配置为基于所述输入帧块坐标对所述输出块中的所述像素位置的值进行插值。
28.根据权利要求26所述的GCE,其中所述反向映射部件还被配置为当所述第二透视扭曲坐标在所述网格LUT块的边界之外时检测并报告第七运行时错误,其中所述变换部件将所述透视扭曲坐标裁剪到所述网格LUT块的边界。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062956377P | 2020-01-02 | 2020-01-02 | |
US62/956,377 | 2020-01-02 | ||
US17/119,714 US11756169B2 (en) | 2020-01-02 | 2020-12-11 | Error handling in a geometric correction engine |
US17/119,714 | 2020-12-11 | ||
PCT/US2021/012041 WO2021138654A1 (en) | 2020-01-02 | 2021-01-04 | Error handling in a geometric correction engine |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115210749A true CN115210749A (zh) | 2022-10-18 |
Family
ID=76654012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180018348.1A Pending CN115210749A (zh) | 2020-01-02 | 2021-01-04 | 几何校正引擎中的错误处理 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11756169B2 (zh) |
CN (1) | CN115210749A (zh) |
WO (1) | WO2021138654A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240112472A1 (en) * | 2022-10-04 | 2024-04-04 | Nvidia Corporation | Image stitching with color harmonization for surround view systems and applications |
EP4390830A1 (en) * | 2022-12-23 | 2024-06-26 | ESG Elektroniksystem- und Logistik-GmbH | Stream based video frame correction |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7158668B2 (en) | 2003-08-01 | 2007-01-02 | Microsoft Corporation | Image processing using linear light values and other image processing improvements |
WO2007049266A1 (en) * | 2005-10-28 | 2007-05-03 | Hi-Key Limited | A method and apparatus for calibrating an image capturing device, and a method and apparatus for outputting image frames from sequentially captured image frames with compensation for image capture device offset |
JP5299383B2 (ja) * | 2010-08-20 | 2013-09-25 | 株式会社Jvcケンウッド | 画像補正装置および画像補正方法 |
US20190096041A1 (en) | 2017-09-25 | 2019-03-28 | Texas Instruments Incorporated | Methods and system for efficient processing of generic geometric correction engine |
US11145079B2 (en) | 2017-09-25 | 2021-10-12 | Texas Instruments Incorporated | Method and apparatus for arbitrary output shape processing of an image |
US10853923B2 (en) | 2017-09-25 | 2020-12-01 | Texas Instruments Incorporated | Method and apparatus for dynamic block partition of an image |
-
2020
- 2020-12-11 US US17/119,714 patent/US11756169B2/en active Active
-
2021
- 2021-01-04 WO PCT/US2021/012041 patent/WO2021138654A1/en active Application Filing
- 2021-01-04 CN CN202180018348.1A patent/CN115210749A/zh active Pending
-
2023
- 2023-09-12 US US18/465,250 patent/US20230419462A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11756169B2 (en) | 2023-09-12 |
WO2021138654A1 (en) | 2021-07-08 |
US20210209737A1 (en) | 2021-07-08 |
US20230419462A1 (en) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104917955B (zh) | 一种图像转换和多视图输出***及方法 | |
US11599975B2 (en) | Methods and system for efficient processing of generic geometric correction engine | |
EP2870585B1 (en) | A method and system for correcting a distorted image | |
US20230419462A1 (en) | Error handling in a geometric correction engine | |
US12020401B2 (en) | Data processing systems | |
WO2016065632A1 (zh) | 一种图像处理方法和设备 | |
US11050932B2 (en) | Using real time ray tracing for lens remapping | |
US11915442B2 (en) | Method and apparatus for arbitrary output shape processing of an image | |
EP2820593A1 (en) | Method and system for adaptive perspective correction of ultra wide-angle lens images | |
US10321054B2 (en) | Panoramic image stitching method for reducing geometric distortion by using an image registration process and system thereof | |
US11995806B2 (en) | Method and apparatus for dynamic block partition of an image | |
TWI443604B (zh) | 影像校正方法及影像校正裝置 | |
EP3101622B1 (en) | An image acquisition system | |
US20210152737A1 (en) | Apparatus and method for stitching together multiple images | |
US10223766B2 (en) | Image processing including geometric distortion adjustment | |
Mody et al. | Flexible and efficient perspective transform engine | |
JP5047915B2 (ja) | 車載用画像処理装置及びその画像処理方法 | |
US9781353B2 (en) | Image processing apparatus, electronic apparatus, and image processing method | |
JP6273881B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
CN117931120B (zh) | 一种基于gpu的摄像头图像视角调整方法 | |
JP2017017672A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
CN116777755A (zh) | 一种畸变矫正方法、装置、车载设备及车辆 |
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 |