CN110998660B - 用于优化流水线执行的方法、系统和装置 - Google Patents
用于优化流水线执行的方法、系统和装置 Download PDFInfo
- Publication number
- CN110998660B CN110998660B CN201880047888.0A CN201880047888A CN110998660B CN 110998660 B CN110998660 B CN 110998660B CN 201880047888 A CN201880047888 A CN 201880047888A CN 110998660 B CN110998660 B CN 110998660B
- Authority
- CN
- China
- Prior art keywords
- pixel
- descriptor
- cost
- disparity
- value
- 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 title claims abstract description 60
- 230000002776 aggregation Effects 0.000 claims abstract description 155
- 238000004220 aggregation Methods 0.000 claims abstract description 155
- 230000004044 response Effects 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 abstract description 4
- 239000000872 buffer Substances 0.000 description 101
- 238000005457 optimization Methods 0.000 description 46
- 238000012545 processing Methods 0.000 description 32
- 230000009466 transformation Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 28
- 238000004891 communication Methods 0.000 description 25
- 238000003860 storage Methods 0.000 description 18
- 238000003384 imaging method Methods 0.000 description 11
- 239000003595 mist Substances 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012384 transportation and delivery Methods 0.000 description 4
- 238000002601 radiography Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 235000012571 Ficus glomerata Nutrition 0.000 description 1
- 244000153665 Ficus glomerata Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000012387 aerosolization Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000009428 plumbing Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/77—Determining position or orientation of objects or cameras using statistical methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/128—Adjusting depth or disparity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- 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/20228—Disparity calculation for image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
公开了用于优化流水线执行的方法、装置、系统和制品。示例装置包括成本计算管理器,其用于通过计算第一图像的第一像素的第一位置和第二图像的第二像素的第二位置之间的匹配成本确定与第一位置和第二位置相关联的值,以及聚合生成器,其用于生成包括该值的视差图,并基于与第一位置和第二位置之间的水平坐标之差相对应的视差图来确定最小值。
Description
相关申请
该专利源自于要求2017年5月19日提交的美国临时专利申请序列号62/508,891的权益的申请,美国临时专利申请序列号62/508,891在此通过引用将其全部条款并入本文。特此要求美国临时专利申请序列号62/508,891的优先权。
技术领域
本公开总体上涉及图像处理,并且更具体地涉及用于优化流水线执行的方法、系统和装置。
背景技术
近年来,图像处理应用已经出现在更多的设备上。尽管在桌面型计算机上已经存在诸如面部识别、对象识别等的图像处理,但是最近出现了移动设备图像处理特征的增加。与桌面型计算机平台相比,移动设备趋向于具有相对能力较低的处理器、相对低的存储器容量以及相对低的功率保持。
附图说明
图1是根据本公开的教导构造的示例流水线优化系统的示例硬件架构的示意示出。
图2A是图1的示例流水线优化系统的示例普查变换引擎的示意示出。
图2B是图1的示例流水线优化系统的示例描述符缓冲区引擎的示意示出。
图2C是图1的示例流水线优化系统的示例成本匹配引擎的示意示出。
图2D是图1的示例流水线优化系统的示例成本合并引擎的示意示出。
图2E是图1的示例流水线优化系统的示例SGBM聚合引擎的示意示出。
图3是根据本公开的教导构造的示例串接逻辑的示意示出。
图4是由图2A的示例描述符缓冲区引擎、图2C的示例成本匹配引擎、以及图2D的示例成本合并引擎执行的示例相关操作的示意示出。
图5是示例SGBM聚合单元的示意示出。
图6是用于实现本文公开的示例的示例立体声流水线数据流的示意示出。
图7是示例SIPP加速器700的示例实现的框图。
图8是表示可以被执行以实现图1的示例流水线优化系统和/或图7的示例SIPP加速器以加速图像特征匹配操作的示例机器可读指令的流程图。
图9描绘了可以被执行以实现图1的示例流水线优化系统和/或图7的示例SIPP加速器以确定具有与第一图像中的第一像素和第二图像中的第二像素相关联的最小成本的视差的示例机器可读指令。
图10描绘了可以被执行以实现图1的示例流水线优化系统和/或图7的示例SIPP加速器以确定与传播路径相关联的成本的示例机器可读指令。
图11描绘了示例时序图。
图12是示例处理器平台的框图,该示例处理器平台被构造为执行图8-图10的示例机器可读指令来实现图1的示例流水线优化系统和/或图7的示例SIPP加速器。
附图未按比例绘制。通常,在整个附图和随附的书面描述中将使用相同的附图标记来指代相同或相似的部分。
具体实施方式
计算成像是一种新的成像范例,能够基于图像和视频提供空前的用户体验和信息。例如,计算成像可以处理图像和/或视频以提供场景的深度图,提供场景的全景视图,从图像和/或视频中提取面部,从图像和/或视频中提取文本、特征和元数据,甚至基于对象和场景识别特征提供自动视觉感知能力。
计算成像可以改变机器捕获物理世界并与之交互的方式。例如,经由计算成像,机器可以捕获使用传统成像技术很难捕获的图像。作为另一个示例,经由计算成像,机器可以理解和/或以其他方式导出与它们的周围环境相关联的特性,并根据它们的周围环境做出反应。
将计算成像推向大众市场的挑战中的一个是计算成像本质上在计算上是昂贵的。计算成像通常使用高分辨率的大量图像和/或具有高帧频的大量视频。因此,计算成像通常需要强大的计算平台的支持。此外,由于计算成像通常用于移动套件中,例如使用智能电话或平板电脑,因此计算成像通常需要能够以低功率预算运行的强大计算平台的支持。
本文公开的示例改进了通常需要大量计算资源能力的不同类型的图像处理任务。本文公开的示例辅助立体匹配任务,该立体匹配任务指的是拍摄两个或更多个图像并且通过在两个或更多个图像中找到匹配的像素并将二维图像(2D)位置转换为3D深度来估计场景的三维(3D)模型的过程。换句话说,立体匹配拍摄两张(或更多张)2D图像来创建一张3D图像。立体成像包括用于确定对象可能与相对应的捕获设备(例如照相机)相距多远的计算。
在一些示例中,与输入图像(例如,照片、视频帧等)相关联的图像数据从两个或更多个照相机(例如,照相机对、立体照相机对,等)和/或任意数量的多个照相机对被接收和/或以其他方式取回。本文公开的示例促进了用于加速立体视觉算法的流水线且灵活的硬件架构,并且在一些示例中,每个像素实现了两个时钟周期。这样的性能能力实现对例如30Hz的720p分辨率的四个照相机对、60Hz的720分辨率的两个照相机对或60Hz的VGA分辨率的八个照相机对进行实时处理。本文公开的示例支持8和10像素数据,并且具有64或96的可配置视差搜索范围。一般而言,搜索范围指示与支持的深度范围相对应的度量。
如本文所使用的,术语“视差”是指立体图像对的第一图像中的第一像素和第二图像中的第二像素的坐标(例如,水平坐标、垂直坐标等)的差异。在一些示例中,第一像素和第二像素是位于不同图像中的相同像素。因为视差与深度成反比,所以视差值对于较近的距离将较高,而对于较远的距离将较低。当在右图像中观看时,通常将两个立体图像之间的特征视差(例如,一个或多个像素)计算为图像特征向左的偏移。例如,出现在左图像的X坐标t(以像素为单位)上的单个点可能出现在右图像的X坐标t-3处,其中右图像中的位置的视差为3像素。
本文公开的示例实现了一种灵活的架构,其中任何单元(例如,处理单元、模块等)都可以单独或者与一个或多个其他分层单元组合使用或以其他方式实现,在下面进一步详细描述。在一些示例中,特别是当某些输入数据可能已经被其他引擎预处理时,可以绕开特定的操作单元以提高流水线传播效率。
本文公开的示例实现了灵活的普查变换(CT)(Census Transform)成本函数,该函数也可以在没有一个或多个架构的操作单元的情况下使用(例如,以独立为基础)。本文公开的示例实现半全局块匹配(SGBM)算法成本聚合(例如,SGBM3),并且可以在两个或更多个遍中对两个或更多个平面图像进行操作。本文公开的示例包括灰度图像输入模式和/或与预先计算的成本相关联的输入模式。本文公开的示例包括但不限于视差输出模式、视差加误差输出模式、最佳和次佳视差模式和/或原始聚合成本输出模式。
图1示出了示例流水线优化系统100的示例硬件架构。示例流水线优化系统100表示与用于加速立体视觉算法或其他图像处理算法的流水线化且灵活的硬件架构相对应的一个或多个硬件加速器。示例流水线优化系统100是流式图像处理流水线(SIPP)加速器。例如,流水线优化系统100可以完全以硬件、软件或其组合来实现。然而,在一些示例中,用软件或基于软件的实现来代替流水线优化系统100的一个或多个硬件组件会导致性能降低。在图1的所示示例中,流水线优化系统100包括示例普查变换(CT)引擎102、示例描述符缓冲区引擎104、示例描述符选择器106、示例成本匹配引擎108、示例成本合并引擎110和示例SGBM聚合引擎112。示例CT引擎、示例描述符缓冲区引擎104、示例成本匹配引擎108、示例成本合并引擎110和示例SGBM聚合引擎112共同构成示例流水线114,其中每个组件都是有时在本文中称为示例流水线114的“级”。
为了提高示例流水线114中每级的清晰度,图2A中示出了示例CT引擎102,图2B中示出了示例描述符缓冲区引擎104,图2C中示出了示例成本匹配引擎108,图2D中示出了示例成本合并引擎110,而图2E中示出了示例SGBM聚合引擎112。
在操作中,通常在来自图1的示例输入接口116的示例流水线的开始处将原始图像数据馈送到示例CT引擎102。在一些示例中,图1的输入接口116与图像源(例如,照相机、多个照相机、照相机等)或存储图像数据的存储器相对应。在一些示例中,图1的输入接口116可以是加速器存储器控制器(AMC)接口(例如,AMC读取客户端接口等)。可替换地,示例输入接口116可以是存储器映射的处理器总线。例如,输入接口116用作伪直接存储器存取(DMA)控制器,该伪直接存储器存取(DMA)控制器将数据从存储器流送到流水线114中。
在图1的所示示例中,输入接口116获得与示例左图像118和/或示例右图像120相对应的图像数据。在一些示例中,输入接口116从示例主存储器122取回图像数据。图1的示例主存储器122是动态随机存取存储器(DRAM)。替代地,示例主存储器122可以是静态随机存取存储器(SRAM)、连接矩阵(CMX)存储器等。
在图1的所示示例中,存储在主存储器122中的图像数据包括示例像素的像素值,诸如包括在左图像118中的示例左像素124和/或包括在右图像120中的示例右像素126。例如,像素值可以与像素的像素亮度(例如,像素强度)相对应。示例左图像118和示例右图像120中的每个具有1280像素的宽度X和1920像素的高度Y,但是本文公开的示例不限于此。例如,图像118、120的每一行对应于1280个像素,并且每一列对应于1920个像素。
原始图像数据(例如,示例左像素124、示例右像素126的像素值等)由示例流水线114处理以执行一个或多个图像处理任务,例如示例立体匹配任务,如上所述。示例流水线114的每个级消耗相对应量的资源(例如,计算资源、带宽、存储器资源等),并因此消耗相对应量的功率。在一些示例中,示例流水线114的一个或多个级可以与示例流水线114的一个或多个其他级独立地操作。这样,在不需要特定级的情况下,一个或多个级可以停用和//或以其他方式被旁路以减小示例流水线114的功率,提高操作的效率或速度等。
在一些示例中,不需要一个或多个级,因为另一(外部)过程可能已经执行了与该级有关的特定任务。这样,就处理时间和功耗而言,重新处理数据馈送的尝试是浪费的。在本文公开的一些示例中,为了节省功率,一个或多个级从处理输入数据过程中延迟。例如,成本合并引擎110可执行位对齐操作,如果位对齐操作太大(例如,超过一个或一个以上位宽度阈值),则可能消耗相对大量的处理功率。这样,本文公开的示例分析流水线114以识别延迟减少机会,以使一个或多个级以替代顺序进行操作,避免进行操作或修改要由各个级处理的输入数据的数量,以努力实现功率节省。在本文公开的一些示例中,去除了通常与传统流水线相关联的时间依赖性,从而在适当的地方促进了效率捷径和功率节省。
在图1的所示示例中,流水线优化系统100包括CT引擎102,用于将与像素相关联的像素值转换成描述符,例如块描述符或位描述符。示例CT引擎102从示例输入接口116获得与包括在示例左图像118、示例右图像120等中的像素相对应的原始图像数据。示例CT引擎102通过比较包括在原始图像数据中的像素值与比较值来生成位描述符。原始图像数据可以包括与示例像素核128相关联的像素值。图1的示例像素核128包括被组织和/或以其他方式布置为5×5像素核的25个像素。替代地,原始图像数据可以对应于7×7像素核、7×9像素核等,或任何其他像素核大小。图1的示例右像素126包是示例像素核128的中心像素(例如,中心的像素)。
在一些示例中,CT引擎102将像素核128的中心像素126的像素值与像素核128的周围像素的像素值进行比较,以基于比较生成位描述符(例如32位描述符、64位描述符等)。例如,CT引擎102可以输出与位描述符相对应的右描述符,所述位描述符与右图像120中的中心像素126相关联。替换地,示例CT引擎102可以生成位描述符,其中比较值是像素核128的平均像素值,基于比中心像素值大阈值的值的阈值等。响应于处理示例像素核128,示例CT引擎102处理第二像素核,其中第二像素核可以与图1中描绘的像素核128相邻(例如,在像素核128的右侧上,在像素核128下方等)。可替换地,第二像素核可以包括图1的像素核128的一个或多个像素,其中像素核128和第二像素核重叠一个或多个列、索引,行等和/或其组合。
在图1的所示示例中,CT引擎102将右描述符发送到描述符缓冲区引擎104。在图1的所示示例中,CT引擎102耦合至成本匹配引擎108(例如,CT引擎102的写客户端耦合至成本匹配引擎108的读取客户端)。可替换地,示例CT引擎102可以不耦合到成本匹配引擎108。示例描述符缓冲区引擎104取回左描述符并将其从第一示例写接口130发送到示例成本匹配引擎108。在一些示例中,图1的第一写接口130是加速器存储器控制器(AMC)接口(例如AMC写客户端接口等)。可替换地,第一示例写接口130可以是存储器映射的处理器总线。左描述符对应于与来自示例左图像118的示例左像素124周围和/或接近的像素的像素值相关联的位描述符。响应于取回左描述符和/或右描述符,示例描述符缓冲区引擎104将左描述符发送到示例成本匹配引擎108,并将一个或多个包括由CT引擎102生成的右描述符的一个或多个右描述符发送到示例描述符选择器106。
在图1的所示示例中,流水线优化系统100包括描述符选择器106,用于基于视差压扩(companding)从描述符缓冲区引擎104中选择右描述符的子集。差异压扩使得示例流水线优化系统100能够通过获取范围上的稀疏差异点来扩展有效立体深度范围。差异压扩将有效标称范围压缩为具有较小分辨率的较小有效范围。例如,在较浅范围值上分辨率较高,而在较深范围上分辨率则逐渐降低。例如,描述符缓冲区引擎104可以输出176个右描述符。示例描述符选择器106可以通过对176个右描述符执行稀疏匹配操作来选择176个右描述符中的96个。在一些示例中,描述符选择器106由一个或多个2:1多路复用器实现。
在图1的所示示例中,流水线优化系统100包括成本匹配引擎108,用于计算和/或以其他方式确定每个像素处的每个候选视差的匹配成本或匹配参数。在一些示例中,与第一图像中的第一像素相关联的匹配成本是一个参数(例如,裁剪在0至128、0至255等的整数值等),所述参数是基于第一像素的强度和第二图像中的可疑对应关系或潜在匹配的像素来计算和/或以其他方式确定的。例如,匹配成本可以表示第一图像中的第一像素的第一位置与第二图像中的第二像素的第二位置的相似程度的量化。图1的示例成本匹配引擎108基于从描述符缓冲区引擎104和/或描述符选择器106取回和/或以其他方式获得的位描述符来确定匹配成本。示例成本匹配引擎108识别像素强度值并计算视差值,将其输出至示例成本合并引擎110。例如,成本匹配引擎108可以基于与左像素124相关联的左描述符的8个最低有效位(LSB)确定左像素124的像素强度值。在其他示例中,成本匹配引擎108基于左描述符和多个右描述符的比较来确定左像素124和像素核128的像素之间的视差。视差是指左图像118和右图像120中的两个对应点之间的坐标(例如,水平坐标、垂直坐标等)的距离或差,其中左图像118和右图像120形成示例立体图像对132。
在图1的所示示例中,流水线优化系统100包括成本合并引擎110,用于由于由CT引擎102、描述符缓冲区引擎104和成本匹配引擎108中的至少一个由于使用循环缓冲区策略而重新对齐处理后的图像数据。在一些示例中,示例成本合并引擎110的输入相当高,例如具有128个数据集,每个数据集具有32位。不是在示例描述符缓冲区引擎104开始时立即对该数量的数据执行对齐,而是在执行重新对齐之前,本文公开的示例在接收和/或以其他方式取回每个数据集较少位数的情况下等待。换句话说,将重新调整工作推迟到示例流水线114的替代级,例如示例成本合并引擎110,以努力提高流水线优化系统100的效率。
在图1的所示示例中,流水线优化系统100包括SGBM聚合引擎112,用于基于从成本合并引擎110接收的输入来执行匹配成本和成本匹配引擎108所生成的对应的视差的对应关系的聚合和细化。可替代地,示例SGBM聚合引擎112可以在独立地(例如,在示例流水线114的外部)使用,并且可以从示例主存储器122取回输入。在一些示例中,SGBM聚合引擎112包括输入成本缓冲区和多个聚合单元,所述多个聚合单元通信地耦合到一个或多个控制信号以生成与立体图像对132中每个感兴趣的像素的最终视差值相关的输出聚合缓冲区。示例SGBM聚合引擎112将输出聚合缓冲区传输到第二示例写接口134。图1的第二示例写接口134是加速器存储器控制器(AMC)接口(例如AMC写客户端接口等)。可替换地,第二示例写接口134可以是存储器映射的处理器总线。
在一些示例中,图1的流水线114的一个或多个组件和/或更一般地图1的流水线优化系统100在输出模式下操作。例如,输出模式可以是视差模式,视差加误差模式、最佳和次佳视差模式或聚合成本模式(例如,原始聚合成本模式)。在这样的示例中,当以视差模式操作时,流水线优化系统100输出每个像素的整个成本图或视差图。当以最佳和次佳视差模式操作时,示例流水线优化系统100输出最佳(例如,最小)和次佳(例如,第二最小)视差。当以聚合成本模式操作时,示例流水线优化系统100输出一个或多个聚合成本。
当以视差加误差模式操作时,示例流水线优化系统100输出视差和相对应的置信度度量(例如,置信度比)。例如,流水线优化系统100可以使用置信度度量来确定和/或以其他方式使来自视差图的错误或不正确的视差预测无效。在这样的示例中,流水线优化系统100可以使用不同的后处理过滤器(例如,间隙填充过滤器、中值过滤器等)用相关值或替换值替换这种不准确的视差值。在一些示例中,置信度度量是比率置信度(例如,比率置信度度量)。比率置信度使用来自匹配成本(例如,匹配成本向量)中的第一最小值(c(p,d0))和第二最小值(c(p,d1),并按下面的公式(1)中所述确定比率置信度):
在以上公式(1)的示例中,比率置信度度量的值在0至1([0,1])的范围内。在上面的公式(1)的示例中,较小的值(例如,r(p)接近0)对应于高的置信度,确定的视差与同比率置信度度量的较大值(例如,r(p)接近1)相关联的视差相比,是准确的估计或者确定。例如,当全局最小值比第二最小值小(例如,小2、5、10等倍)时,较高的置信度与视差相关联。
在一些示例中,当置信度比率度量不满足阈值时,流水线优化系统100确定与感兴趣的像素相关联的所计算的视差是无效的、不准确的、不用于图像处理任务等。例如,流水线优化系统100(例如,流水线优化系统100的组件中的一个,例如SGBM聚合引擎112)可以将置信度比率与比率阈值进行比较,并且当置信度比率大于比率阈值时使相关联的视差无效。响应于基于比较确定相关联的视差无效,示例流水线优化系统100用与无效值识别符相关联的值替换成本匹配向量中的视差值。示例流水线优化系统100或流水线优化系统100的外部组件可以使用一个或多个后处理过滤器(例如,间隙填充过滤器、中值过滤器等)用相关或替换值来天幻与无效值识别符相关联的值。
尽管图1示出了实现图1的示例流水线114的示例方式,但是图1中示出的元件、过程和/或设备中的一个或多个可以可以以任何其他方式组合、划分、重新排列、省略、消除和/或实现。此外,示例CT引擎102、示例描述符缓冲区引擎104、示例描述符选择器106、示例成本匹配引擎108、示例成本合并引擎110、示例SGBM聚合引擎112和/或更一般地,图1的示例流水线114可以通过硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现图1的示例流水线114。因此,例如,示例CT引擎102、示例描述符缓冲区引擎104、示例描述符选择器106、示例成本匹配引擎108、示例成本合并引擎110、示例SGBM聚合引擎112和/或更一般地,图1的示例流水线114中的任一个可以由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(GPU),数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件)(FPLD)来实现。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实现时,示例CT引擎102、示例描述符缓冲区引擎104、示例描述符选择器106、示例成本匹配引擎108、示例成本合并引擎110、示例SGBM聚合引擎112中的至少一个被明确定义为包括非暂时性计算机可读存储设备或存储磁盘,例如存储器、数字通用磁盘(DVD)、光盘(CD),蓝光光盘等,包括软件和/或固件。更进一步地,除了图1所示的那些元件、过程和/或设备之外,图1的示例流水线114包括一个或多个元件、过程和/或设备和/或可以包括所示出的元件、过程和/或设备中的所有或全部的更多个。如本文所使用的,短语“进行通信”,包括其变体,包括通过一个或多个中间组件的直接通信和/或间接通信,并且不需要直接的物理(例如,有线)通信和/或恒定的通信,而是此外,它还包括定期间隔、计划间隔、非周期性间隔和/或一次性事件的选择性通信。
图2A是图1的示例流水线优化系统100的示例CT引擎102的示意示出。示例CT引擎102生成位描述符输出,诸如示例右描述符202,并将其发送至示例描述符缓冲区引擎104。在图2A的所示示例中,CT引擎102通过处理与立体图像对的图像相关联的示例像素核206的示例像素204来生成右描述符202。在图2A的图示示例中,每个像素204是8位。替代地,每个示例像素204可以是10位或任何其他数量的位。图2A的示例像素核206可以对应于图1的示例像素核128。
在图2A的所示示例中,CT引擎102从输入接口116获得图像数据。在图2A的所示示例中,图像数据包括与立体图像对的图像相关联的像素204的像素值。例如,像素204的像素值可以对应于包括在立体图像对132的右图像120的图1的像素核128中的像素的像素值。像素值对应于像素的亮度分量或强度。
在图2A的所示示例中,在每个操作时间实例(例如,时钟周期)期间,CT引擎102从输入接口116获得像素值的示例列208。在图2A的所示示例中,像素核206包括五列208,其包括5个像素,每个列形成5×5像素核。可替换地,示例CT变换引擎102可以处理7×7像素核,7×9像素核或任何其他像素核大小。
在图2A的所示示例中,CT引擎102使用示例像素和运算器210来计算像素核206的列208的像素值之和。在图2A的所示示例中,每个列208耦合到像素和运算器210中的一个。每个像素和运算器210计算与像素和运算器210耦合的列208的5个像素值的和。
在图2A的所示示例中,CT引擎102使用示例像素平均运算器212来计算像素核206的列208的像素值的平均值。在图2A的所示示例中,每个像素平均运算器212耦合到像素和运算器210和示例模N计数器214中的一个。当被命令和/或以其他方式指示时,每个示例像素平均运算器212计算该像素平均运算器212耦合的列208的5个像素值的平均值。
在图2A的所示示例中,CT引擎102基于循环缓冲区实现或方法在每个时钟周期取回像素204的新列。例如,CT引擎102将最旧的列替换为新的列,同时将其余像素核206保持在适当的位置,以避免额外的切换或数据移动。图2A的示例CT引擎102使用示例模N计数器214来保持跟踪和/或以其他方式维持与要替换列208中的哪一个相对应的索引。例如,当模N计数器214具有的值为零(例如,==0)时,列208中的第一个被替换;当模N计数器214具有的值为一时(例如,==1),列208中的第二个被替换。例如,可以使用一个或多个触发器(例如,D型触发器)来实现模N计数器214。
在操作中,示例CT变换引擎102在第一时钟周期内取回并存储列208a中的第一个。耦合到第一列208a的示例像素和运算器210中的第一个计算包括在第一列208a中的五个像素值的和。耦合到示例像素和运算器210中的第一个的示例像素平均运算器212中的第一个基于由像素和运算器210计算出的和与包括在第一示例列208a中的示例像素204的数量来计算五个像素值的平均值。。例如,基于模N计数器214的值为0,触发耦合到第一列208a的像素和运算器210和像素平均运算器212。例如,像素和运算器210和像素平均运算器212中的第一个可以每五个时钟周期触发一次。示例像素平均运算器212中的第一个将所计算的平均值发送到示例函数(FN)216以进行处理。
在第二时钟周期期间,示例CT转换引擎102取回并存储列208b中的第二列。耦合到第二示例列208b的第二示例像素和运算器210的第二个计算包括在第二列208b中的五个像素值的和。耦合到示例像素和运算器210中的第二个的示例像素平均运算器212中的第二个基于由像素和运算器210计算出的和与包括在第二列208b中的像素204的数量来计算五个像素值的平均值。例如,基于模N计数器214的值1来触发耦合到第一列208a的像素和运算器210和像素平均运算器212。示例像素平均运算器212的第二个将计算出的平均值发送到示例功能216进行处理。
响应于示例功能216接收到与示例像素核206的五个示例列208相对应的五个像素平均值(例如,模块N计数器214的值为5),功能216基于由示例像素平均运算器212计算出的部分平均值来计算像素核206的最终平均值。示例函数216还取回包括示例普查变换220的第一示例中心像素218a,第二示例中心像素218b和第三示例中心像素218c的示例中心像素以执行比较。例如,CT引擎102将正在处理的输入图像(例如,图1的右图像120)的一部分或窗口(例如,图1的像素核128)的中心像素关联起来,以在每个时钟周期内跟踪像素核206的当前中心像素。例如,第一中心像素218a对应于像素核206的中心像素。例如,图2A的第一中心像素218a可以对应于图1的右像素126,而图2A的像素核206可以对应于图1的像素核128。当窗口移动时,第二示例中心像素218b对应于输入图像的下一个像素核206的中心像素。例如,第二中心像素218b可以对应于图1的像素核128的相邻像素核的中心像素。
在图2A的所示示例中,普查变换220将像素204的每个像素值与像素核206的中心像素进行比较。例如,普查变换220可以将第一中心像素218a与像素核206的每个像素值进行比较,并基于比较生成示例掩码前位描述符222。在图2A的图示示例中,掩码前位描述符222是基于具有25个像素(例如25个像素值)的像素核206的25位描述符。在一些示例中,当像素核206是7×7像素核时,掩码前位描述符222可以是49位描述符。在其他示例中,当像素核206是7×9像素核时,掩码前位描述符222可以是63位描述符。
在图2A的所示示例中,当对应像素值小于或少于比较点时,普查变换220将0分配给像素204中的一个。例如,比较点可以是中心像素218a、218b、218c的像素值或正在处理的像素核206的像素值的平均值。替代地,比较点可以是基于将值与中心像素的像素值相加而计算出的阈值,以确保被比较的像素值比中心像素值大限定的(阈值)余量。在图2A的所示示例中,当对应的像素值大于或多于比较点时,普查变换220将1分配给像素204中的一个。
图2的示例普查变换220将示例掩码前位描述符222发送到示例串接逻辑224以生成右描述符202。图2A的示例右描述符202是32位描述符,其包括示例中心像素218a、218b、218c中的相应一个(例如8位中心像素)和基于示例掩码前位描述符222的示例后掩码描述符226。
在图图2A的所示示例中,串接逻辑224对应于零延迟、随机位串接逻辑。例如,串接逻辑224可以对应于在处理输入时具有可忽略的延迟的硬件逻辑。图2A的示例串接逻辑224通过将示例串接掩码228应用于示例掩码前位描述符222,将示例掩码前位描述符222的25位处理为示例右描述符202的24位。示例CT引擎102使用示例串接掩码228执行示例串接逻辑224中包括的按位运算。使用示例串接掩码228,示例CT引擎102可以基于在掩码掩码228中放置1的位置将示例掩码前位描述符222的位设置为开或关(例如,选择一个位或不选择一个位)。图2A的示例串接掩码228是64位。替代地,示例串接掩码228可以是32位或任何其他数量的位。
在一些示例中,串接逻辑224将第一组位(例如,0位的串)串接到与秩等于串接掩码228中的位置1的掩码前位描述符222中的位相对应的第二组位。对于示例16位输入流和示例对应的16位掩码流,以下描述了串接逻辑224的逻辑:
示例输入流:0 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1
示例掩码流:0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0
示例输出流:0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0
例如,输入流的索引1、2、5、6、9和13具有的秩(例如,位位置)等于掩码流中1的位置。例如,与掩码流中的1相同秩的输入流的值是1 0 0 0 10。示例串接逻辑224将为零的串串接到1 0 0 0 1 0的值以生成如上所述的输出流。图2A的示例串接逻辑224可以针对25位、49位、63位等的输入流以及64位的对应掩码流(例如,串接掩码)来实现上述示例过程。替代地,示例串接掩码228可以包括不同数量的位(例如32位)。图2A的示例串接逻辑224和/或更一般地,示例CT引擎102将示例右描述符202发送到图1的示例描述符缓冲区引擎104。
图2B是图1的示例流水线优化系统100的示例描述符缓冲区引擎104的示意示出。示例描述符缓冲区引擎104是在(1)图1和图2A的示例CT变换引擎102或图1的第一示例写接口130中的至少一个与(2)图1的示例描述符选择器106和/或示例成本匹配引擎108之间传输和/或以其他方式促进数据交换的缓冲区。
在图2B的所示示例中,描述符缓冲区引擎104从CT引擎102获得右描述符202。图2B的示例右描述符202是对应于最后由CT引擎102处理的中心像素218a、218b、218c中的一个的32位描述符。可替代地,示例右描述符202可以是64位或任何其他数量的位。
在图2B的所示示例中,描述符缓冲区引擎104从第一写接口130获得示例左描述符230。在图2B的所示示例中,左描述符230是与图1的左像素124相对应的32位描述符。可替换地,示例左描述符230可以是64位或任何其他数量的位。示例描述符缓冲区引擎104将示例左侧描述符230传递到示例成本匹配引擎108。可替换地,示例描述符缓冲区引擎104可以临时存储(例如,对于一个时钟周期,两个时钟周期等)示例左描述符230,直到被请求发送到示例成本匹配引擎108。
在操作中,在第一级期间,示例描述符缓冲区引擎104获得并存储如由示例CT引擎102所产生的图2A的掩码后位描述符202。例如,在第二级中,描述符缓冲区引擎104存储与图1的右图像120的像素相关联的如由示例CT引擎102所产生的一个或多个右描述符。示例描述符缓冲区引擎104将示例掩码后位描述符202存储在示例循环缓冲区232中。图2B示例循环缓冲区232存储1280个字,其中每个字为32位,但是本文公开的示例不限于此。示例循环缓冲区232保持1280个字,以便能够存储中的示例右图像120的一行中的每个像素的位描述符。可替换地,示例循环缓冲区232可以存储少于或多于1280个字和/或每个字可以少于或大于32位。
在第二级期间,对于每个时钟周期,示例描述符缓冲区引擎104获得与图1的左图像118的像素(例如,图1的左像素124)相对应的示例左描述符230。在第二级期间,示例描述符缓冲区引擎104将示例左描述符230发送到示例成本匹配引擎108。可替换地,示例描述符缓冲区引擎104可发送从CT引擎102接收的左描述符。在第二时钟周期期间,示例描述符缓冲区引擎104向实例描述符选择器106发送176个实例右描述符234,其中右描述符234中的每个是32位,但是本文公开的实例不限于此。例如,描述符缓冲区引擎104可以从第一索引(RD_X)到第176索引(RD_X-175)开始从循环缓冲区232中读取176个所存储的描述符,并且在示例输出缓冲区233中输出所存储的描述符以进行传输。例如,项X表示当前时钟周期。例如,在第一个时钟周期X=1,在第二时钟周期X=2,等等。在当前时钟周期使索引为负的示例(例如,X=2使索引RD_X-175等于RD_-173),描述符缓冲区引擎104用最低的非负索引替换负索引。例如,当时钟周期为2时,描述符缓冲区引擎104读取RD_0、RD_1和RD_2,其中剩余索引(例如,RD_X-174、RD_X-175等)被与RD_0相关联的描述符替换。在这样的示例中,描述符缓冲区引擎104基于700兆赫兹(MHz)的频率每个时钟周期传送5664个位(例如5664位/时钟周期=((1个左描述符x 32位/左描述符)+(176个右描述符x 32位/右描述符)),其对应于大约每秒4GB。
在第二级期间,对于每个时钟周期,示例描述符选择器106基于公式(2)执行压扩操作(例如,视差压扩操作)以将176个示例右描述符234压缩和/或以其他方式减少至96个右描述符234:
D=N+M+T
公式(2)
在上面的公式(2)的示例中,示例描述符选择器106确定要由示例成本匹配引擎108计算的视差量(D)(在本文中也称为视差的量(D))。在图2B的所示示例中,描述符选择器106确定D为96。示例描述符选择器106基于D=96、第一压扩参数N=48、第二压扩参数M=32、第三压扩参数T=16从示例描述符缓冲区引擎104中选择176个右描述符234中的96个。例如,如下所述,描述符选择器106可以通过针对N个视差逐个像素匹配,针对M个视差对每个第二像素进行匹配以及针对T个视差对每个第四像素进行匹配来将176个右描述符234压缩为96个右描述符234,如下所述:
基于N=48选择176个右描述符234中的从描述符1到描述符48的每个描述符,以产生48个描述符;
基于M=32,从176个右描述符234的描述符49到描述符112中的每个第二描述符产生32个描述符;以及
基于T=16,从176个右描述符234的描述符113到描述符176的每第4个描述符产生16个描述符。如上所述,示例描述符选择器106可以基于N、M和T的值来选择176个右描述符234中的96个(例如,96=48+32+16)。替代地,可以使用N、M和T的任何其他值。响应于在176个右描述符234中选择96个,示例描述符选择器106将96个描述符发送到示例成本匹配引擎108。
在第二级期间,对于每个时钟周期,示例描述符缓冲区引擎104存储和/或传输与包括在图1的左图像118中的第二像素相对应的另一左描述符230。例如,第二像素可以是左图像118中左像素124的右侧的相邻像素,或者是左像素124下方的相邻线上的像素。在第二级期间,示例描述符缓冲区引擎104将另一示例右描述符202存储在示例循环缓冲区232中。例如,描述符缓冲区引擎104可以将右描述符202存储在循环缓冲区232中的空的或未被占用的位置中,或者可以替换在循环缓冲区232中存储的最早的描述符。
图2C是图1的示例流水线优化系统100的示例成本匹配引擎108的示意示出。示例成本匹配引擎108识别和/或以其他方式确定与图1的示例左像素124相关联的示例像素强度236,并且基于图2B的示例左描述符230和示例右描述符234确定与左像素124相关联的示例视差238。
在图2C的所示示例中,成本匹配引擎108使用示例成本匹配单元240来识别像素强度236并确定视差238。在图2C的所示示例中,存在96个成本匹配单元240。替代地,示例成本匹配引擎108可以使用少于或多于96个示例成本匹配单元240。每个示例成本匹配单元240获得左描述符230和RD[0]、RD[1]、RD[127]等指示的示例右描述符234中的一个。示例成本匹配单元240通过计算左像素124与包括在图1的右图像120中的像素核128中的对应像素之间的视差来确定指示左像素124距相机源有多近/远的匹配成本。示例成本匹配单元240基于下面在公式(3)和(4)中描述的示例成本函数来计算视差:
COMB_COST=α*AD+β*(CTC<<3)
公式(3)
CLAMP(COMB_COST>>5,127)
公式(4)
在以上公式(3)的示例中,匹配成本(COMB_COST)表示用于测量和/或量化立体图像对的第一图像中的第一像素的图像位置和第二图像中的第二像素的图像位置的相似性的参数。上面的公式(3)的示例是减小(例如,最小化)两个像素之间的相关性的算术函数。例如,COMB_COST的值越小,来自两个平面的两个像素之间的相关性越好(例如,图1的左图像118和右图像120)。
在以上公式(3)的示例中,项α和β是可编程值(例如,恒定值)。在一些示例中,α和β的值可以在0到15的范围内。例如,α可以具有8的值,β可以具有12的值。在上面的公式(3)的示例中,AD是两个像素值之间的绝对差异。例如,成本匹配单元240可以通过计算左描述符230的前8位与对应的右描述符234的前8位之间的差来确定绝对差。在以上公式(3)的示例中,CTC是基于汉明距离的两个像素之间的普查转换成本。例如,CTC是基于左描述符230和对应的右描述符234之间的按位XOR运算中的1的数目的汉明距离。在以上公式(3)的示例中,“<<”是指左移操作。这样,“CTC<<3”表示将CTC向左移动3位。
在以上公式(4)的示例中,“>>”是指右移操作。这样,“COMB_COST>>5”表示将COMB_COST向右移位5位。在以上公式(4)的示例中,示例成本匹配单元240将移位的COMB_COST值裁剪(clamp)为0至127范围内的整数。在图2C的所示示例中,成本匹配单元240通过使用以上公式(3)和(4)的示例来产生视差238。例如,每个成本匹配单元240生成96个视差238中的一个,其中96个视差对应于左图像118中的像素中的一个(例如,左像素124)。示例成本匹配引擎108将示例像素强度236或每个左像素的96个视差238中的至少一个发送到示例成本合并引擎110。
图2D是图1的示例流水线优化系统100的示例成本合并引擎110的示意示出。在图2D的所示示例中,成本合并引擎110从图2C的成本匹配引擎108接收和/或以其他方式获得图2D的像素强度236。在图2D的所示示例中,成本合并引擎110从成本匹配引擎108接收和/或以其他方式获得图2D的96个视差238。
在图2D的所示示例中,成本合并引擎110通过减少示例桶形移位器241中的数据移动来减少流水线优化系统100的操作所需的功率。图2D的示例成本合并引擎110包括8个示例桶形移位器241。替换地,示例成本合并引擎110可以包括少于或多于8个桶形移位器241。例如,成本合并引擎110以循环方式替换包括在桶形移位器241中的数据。在这样的示例中,成本合并引擎110替换桶形移位器241中的一个(例如,#0桶形移位器,#1桶形移位器等)中的数据,该桶形移位器241中的一个对应于桶形移位器241中的包括桶形移位器241中最旧的数据的一个桶形移位器。每个示例桶形移位器241存储96个位,其中每个位对应于从成本匹配引擎108取回的视差238中的一个,但是本文公开的示例不限于此。例如,96个视差238中的每一个都是一位(例如,96个视差对应于总共96位),并且可以完全存储在桶形移位器241中的一个中。
在图2D的所示示例中,成本合并引擎110将从成本匹配引擎108接收到的视差238进行从最新数据到最旧数据的重新排列。例如,成本合并引擎110可以重新排列96个差异238,其中与最新像素数据相关联的视差被设置为等级0,而最旧像素数据被设定为秩95。响应于经由示例桶形移位器241重新排列来自示例成本匹配引擎108的数据,成本合并引擎110将示例重排数据242发送到示例SGBM聚合引擎112。示例重排数据242包括存储在每个示例桶形移位器241中的数据,包括基于从示例成本匹配引擎108取回的96个视差238的最新的重排数据。图2D的所示示例的示例重排数据242为96字节(例如96字节=(12字节/桶形移位器)x 8桶形移位器)。
图2E是图1的示例流水线优化系统100的示例SGBM聚合引擎112的示意示出。示例SGBM聚合引擎112使用半全局技术来聚合成本图或视差图。视差图(例如,图形、曲线图、表格等)可以对应于视差值的映射作为深度的函数。例如,视差图可用于生成确定照相机到由照相机捕获的场景中的图像特征(例如,杯子、动物、面部等)的距离的函数,其中照相机和图像特征之间的距离称为深度。例如,SGBM聚合引擎112基于示例左图像118中的每个像素的一组视差值来生成视差图。在这样的示例中,SGBM聚合引擎112可以通过计算对应于深度范围的视差量(例如,深度范围为64视差、96视差等),并将该视差映射为左像素124和相机源之间的深度或距离来生成针对左像素124的视差图。响应于生成视差图,示例SGBM聚合引擎112可以确定视差图的最小值。在一些示例中,最小值对应于左像素124与右图像120的匹配像素中的一个之间的坐标(例如,水平坐标、垂直坐标等)之差。在其他示例中,最小值对应于左像素124相对于相机源的深度。
半全局技术与称为动态规划或信念传播的一类算法相关联。在信念传播中,信念或边际成本(例如,估计值)沿着特定路径传播,其中所考虑的先前像素(例如,图1的左像素124)影响在当前像素(例如,左像素124的右侧附近的相邻像素)处所做出的选择。示例SGBM聚合引擎112基于左像素124与包括在图1的右像素核128中的像素之间的视差来减少和/或最小化全局二维(2D)能量函数以生成路径成本Lr,其中r是评估路径的数量。示例SGBM聚合引擎11 2确定针对每个路径的路径成本,如以下公式(5)中所述:
Lr(x,y,d)=C(x,y,d)+min[E(x-1,y,d),
E(x-1,y,d-1)+P1,
E(x-1,y,d+1)+P1,
示例SGBM聚合引擎112使用上面的公式(5)的示例来搜索最小路径成本,包括路径中的先前像素的位置处的可能添加的惩罚P1和P2(例如,路径方向),并且在当前像素x与差异d处将最小路径成本添加到成本值C(x,y,d)。
在上面的公式(5)的示例中,第一项C(x,y,d)表示第一图像(例如,图1的左像素124)中的第一像素(x)和第二图像(例如,图1的右像素126)中的第二像素(y)之间的具有视差(d)的匹配成本。例如,第一项表示路径r中像素的匹配成本。第二项(E(x-1,y,d))表示与第一像素(x-1)的相邻像素和第二像素之间的具有第一视差的匹配成本相对应的第一能量。例如,第二项将路径r中前一个像素(x-1)的最低匹配成本相加。第三项(E(x-1,y,d-1)+P1)表示第二能量,该第二能量对应于相邻像素与第二像素之间的具有与相邻像素(d-1)相关联的视差值的匹配成本,其中将第一惩罚值P1添加到针对视差更改的匹配成本中。将第一惩罚值添加到匹配成本以节流和/或增加当前像素结果E(x,y,d)中先前聚合结果(E(x-1,y,d))的影响。第四项(mini(E(x-1,y,i)+P2)通过从整个项中减去前一个像素的最小路径匹配成本来防止路径匹配成本不断增加。
示例SGBM聚合引擎112计算针对每个路径的能量之和,如以下公式(6)中所述:
在以上公式(6)的示例中,示例SGBM聚合引擎112计算三(3)个路径成本的总和。可替换地,示例SGBM聚合引擎112可以基于图1的示例流水线114的一个或多个组件的配置来计算少于或多于三个路径成本。示例SGBM聚合引擎112通过搜索和/或以其他方式确定针对每个路径的最小视差来确定图1的左像素124与图1的右像素126之间的最终视差。示例SGBM聚合引擎112存储针对图1的左图像118的每个像素最终视差以生成视差图。
在一些示例中,考虑多个路径作为进入每个像素的输入路径。在图2E的所示示例中,SGBM聚合引擎112实现与当前像素的向左移动相对应的第一路径(例如,水平路径)、与当前像素的向右移动相对应的第二路径(例如,水平路径),或与当前像素上方的垂直移动相对应的第三条路径(例如,垂直路径)中的至少一个。在这样的示例中,所考虑的路径量是由SGBM聚合引擎112用于处理图像数据的参数。
图2E的示例SGBM聚合引擎112可以使用示例输入成本缓冲区250和示例成本聚合单元252。示例输入成本缓冲区250包括第一示例像素缓冲区254和第二示例像素缓冲区256。示例像素缓冲区254、256中的每个是与从示例成本合并引擎110取回的示例像素强度236的位数量相对应。替换地,当示例像素强度236是10位时,第一和第二示例像素缓冲区254、256可以是10位。第一示例像素缓冲区254获得并存储正在处理的当前像素值(例如,图1的左像素124)。第二示例像素缓冲区256获得并存储先前处理的像素值(例如,左侧像素124的左侧的相邻像素)。第二示例像素缓冲区256将先前处理的像素值(8BIT Y)映射和/或以其他方式输出到第一示例查找表(LUT)258和第二示例LUT 260。示例SGBM聚合引擎112经由第一示例旁路路径262将示例像素强度236发送到第一和第二示例LUT 258、260。
在图2E的所示示例中,第一LUT 258对应于水平输出。例如,SGBM聚合引擎112可以经由第一旁路路径262将当前像素的像素强度236发送至第一LUT 258,并经由第二像素缓冲区256将先前处理的像素的像素强度发送至第一LUT 258。在这样的示例中,第一LUT 258计算当前像素值和先前处理的像素值之间的绝对差,并将该绝对差映射为第一惩罚值(P1)或第二惩罚值(P2)中的至少一个。响应于映射,第一示例LUT 258将第一惩罚值或第二惩罚值中的至少一个发送给每个示例成本聚合单元252。
在图2E的所示示例中,第二LUT 260对应于垂直输出。例如,SGBM聚合引擎112可以经由第一旁路路径262将当前像素值发送到第二LUT 260,并且经由第二像素缓冲区256将先前处理的像素值发送到第二LUT 260。在这样的示例中,第二LUT 260计算当前像素值和先前处理的像素值之间的绝对差,并将该绝对差映射为第一惩罚值(P1)和第二惩罚值(P2)中的至少一个。响应于映射,第二示例LUT 260将第一惩罚值或第二惩罚值中的至少一个发送给每个示例成本聚合单元252。
在图2E的所示示例中,输入成本缓冲区250包括示例输入成本存储264。图2E的示例输入成本存储264包括1280个字,其中每个字为768位,但是本文公开的示例不限于此。例如,每个字对应于从示例成本合并引擎110接收的示例重排数据242的接收到的一个。例如,重排数据242的实例是96字节或768位。示例输入成本存储264将先前处理的一组示例重排数据242发送到每个示例成本聚合单元252。示例SGBM聚合引擎112经由第二示例旁路路径266将当前一组示例重排数据242发送到每个成本聚合单元252。
在图2E的示出的示例中,SGBM聚合引擎112包括96个成本聚合单元252,以评估和/或以其他方式改进与每个感兴趣的路径相关联的匹配成本,然而,为清楚起见,仅示出了96个中的4个。例如,每个成本聚合单元252计算与当前像素的水平路径或垂直路径中的至少一个相关联的匹配成本。每个示例成本聚合单元252计算示例垂直汇聚合成本(TOP_AGR)268和示例水平汇聚合成本(HOR_AGR)270。例如,成本聚合单元252中的第一个生成与T[K+3][X]相关联的垂直汇聚合成本,其中X是输入流的像素,而K是X像素的96个成本匹配集的索引。例如,聚合方向(例如,从左至右方向,右到左方向等)的输入流是具有图像行(例如,左图像118的行的宽度)的宽度的像素的阵列,其中每个像素都有96个对应的位,代表该像素的匹配成本。例如,[K+3][X]代表输入流索引X的96个匹配成本中的K+3索引。在此类示例中,成本聚合单元252中的第一个生成与A[K+3][X]相关联的水平汇聚合成本(A)。
在图2E的示出的示例中,每个成本聚合单元252经由示例中间垂直聚合缓冲区274和示例垂直聚合缓冲区276将垂直聚合成本268输出到示例输出聚合缓冲区272。图2E的示例输出聚合缓冲区272存储了1280个字,其中每个字为768位,但是本文公开的示例不限于此。示例输出聚合缓冲区272存储来自示例成本聚合单元252的每个示例垂直聚合成本268。图2E的示例输出聚合缓冲区272包括1280个字,其中每个字为768位,但是本文公开的示例不限于此。
在图2E的所示示例中,示例垂直聚合缓冲区276在将垂直聚合成本268发送到示例垂直最小成本确定器278之前存储示例垂直聚合成本268中的每一个。示例垂直最小成本确定器278识别和/或以其他方式确定在96个成本中的最小值,96个成本包括示例成本聚合单元252生成的四个示例垂直汇聚合成本268,其中96个成本与96个视差相关联。响应于确定最小垂直聚合成本,示例垂直最小成本确定器278将最小垂直聚合成本发送到每个示例成本聚合单元252的相应输入。
在图2E的所示示例中,每个成本聚合单元252经由示例中间水平聚合缓冲区282将水平聚合成本270输出到成本聚合单元252、示例水平最小成本确定器280和示例输出聚合缓冲区272的各个输入。图2E的示例水平最小成本确定器280识别和/或以其他方式确定96个成本中的最小值,96个成本包括由示例成本聚合单元252生成的四个示例水平汇聚合成本270,其中96个成本与96个视差相关联。响应于确定最小水平聚合成本,示例水平最小成本确定器280将最小水平聚合成本发送到每个示例成本聚合单元252的相应输入。
图3是图2A的示例串接逻辑224的示意示出。为了清楚起见,图3描绘了用于16位示例的示例串接逻辑224。例如,串接逻辑224可以获得并处理24位描述符输入、49位描述符输入、63位描述符输入等。示例串接逻辑224表示具有最小log(N)+1级深度的排序树方法,其中N是输入流的长度。在图3的图示示例中,用示例选择掩码304来处理示例输入位流302。图3的示例输入位流302是16位。替代地,示例输入位流302可以是任何其他数量的位,例如但不限于24位、49位或63位。图3的示例选择掩码304是16位。替代地,示例选择掩码304可以是任何其他数量的位,例如但不限于32位或64位。示例选择掩码304可以对应于图2A的示例串接掩码228。
在图3的所示示例中,在第一示例级308期间用示例逻辑与门306处理输入位流302的第一位和选择掩码的第二位。可替换地,可以去除第一示例级308。在图3的所示示例中,第二示例级310包括一系列2位排序树,其通过值1的掩码位与输入位流302的最低有效位(LSB)对齐,同时还计算每个2位对所需的移位量。
在图3的所示示例中,第三示例级312包括基于第二级310的先前的2位对的4位分类树。在图3的所示示例中,第四示例级314包括基于第三级312的先前的4位对的8位排序树。在图3的所示示例中,第五示例级316对先前的8位对执行按位或运算以生成示例最终结果318。图3的示例最终结果318可以对应于图2A的示例后掩码描述符226。
图4是由图1的示例描述符缓冲区引擎104、示例成本匹配引擎108和示例成本合并引擎110执行的示例相关操作400的示意示出。在图4的所示示例中,相关运算400被分成至少三个级以增加和/或以其他方式提高功率效率。例如,相关操作400通过使用循环缓冲区减少数据移动,而减少了图1的流水线114的功耗。
在图4的所示示例中,描述符缓冲区引擎104存储图2A的右描述符202中的176个,图2A的右描述符202与要处理的像素的R行指定的包括在图1的右图像120中的像素相对应。示例描述符缓冲区引擎104存储与L行指定的包括在图1的左图像118中的像素相对应的示例左描述符230。
在图4的所示示例中,描述符缓冲区引擎104将右描述符234的176个输出到描述符选择器106,以选择176个右描述符234中的96个。示例描述符选择器106将选择的96个右描述符234输出到示例成本匹配引擎108以计算与左描述符230和右描述符234中的相应一个相关联的匹配成本。图4的示例成本匹配引擎108计算由C0、C1等指定的96个示例成本402,其中96个成本402中的每一个对应于右描述符234中的一个与左描述符230之间的视差。例如,成本402可以对应于图2C的视差238。
在图4的所示示例中,成本匹配引擎108将96个成本402输出到成本合并引擎110以重新排列成本402。示例成本合并引擎110以将成本402中的最新一项识别为秩0(例如,第一索引)并且将成本402中的最旧一项识别为秩95(例如,最后索引)的顺序来组织示例成本402。
图4的示例相关操作400表示包括在正在处理(例如迭代处理)的图1的左图像118中的多个像素。例如,相关操作400描绘了正在处理的第一示例像素(PIXEL 0)404。第一示例像素404可以对应于图1的示例左像素124。示例描述符缓冲区引擎104将右描述符234和左描述符230的176个加载到图2B的示例循环缓冲区232中。示例描述符选择器106选择176个右描述符234中的96个,示例成本匹配引擎108计算与96个选择的右描述符234相关联的96个示例成本402,并且示例成本合并引擎110重新排列96个成本402。
响应于处理第一示例像素404,示例相关操作400处理第二示例像素(PIXEL 1)406,在此期间,示例描述符缓冲区引擎104将与第一示例像素404相关联的示例右描述符234替换为与相邻像素相关联的右描述符234,同时保持剩余的右描述符234以减少数据移动,并因此减少图1的示例流水线114的功耗。例如,当包围像素核128的窗口向右移动一个索引时,描述符缓冲区引擎104可以将包括在图1的像素核128中的最左边的像素替换为相邻像素(例如,像素核128的右边的下一个像素)。示例描述符缓冲区引擎104将包括相邻像素的右描述符234的176个示例右描述符234输出到示例描述符选择器106,示例描述符选择器106从176个右描述符234中选择96个到示例成本匹配引擎108。示例成本匹配引擎108通过将成本402(C0)中的第一个成本替换为与右图像120中的相邻像素相关联的新成本(C95),来计算96个示例成本402。示例相关操作400对多个像素(例如,PIXEL 2、PIXEL 3等)执行以上操作。
图5是图2E的示例SGBM聚合单元(K)502的示意示出。示例SGBM聚合单元502是第一示例SGBM聚合单元。在图5的图示示例中,第一SGBM聚合单元502可以对应于图2E的成本聚合单元252中的一个。图5的第一示例SGBM聚合单元502包括第一示例流水线(PIPE 1)504(例如,流水线),其经由示例匹配成本寄存器508取回并存储示例匹配成本506。示例匹配成本寄存器508存储要处理并转发到第一示例SGBM聚合单元502的下一级的匹配成本。例如,匹配成本寄存器508可以存储从输入成本存储264输出的图2E的96字节视差。
图5的第一示例流水线504可以经由示例旁路标志寄存器512取回示例旁路标志510。示例旁路标志510被设置用于每个聚合方向图像行中的第一成本(例如,与图1的左图像118的行中的第一像素相关联的成本),因此第一成本将按原样推过示例SGBM聚合单元500,因为作为第一成本,没有要与之聚合的先前的成本或数据。对于图像行中的后续成本,未设置示例旁路标志510。
图5的第一示例流水线504可以取回示例像素强度514并将其存储在示例像素强度寄存器516中。示例像素强度寄存器516将像素强度值发送到示例绝对差计算器518,以计算两个连续像素(例如,当前像素(Y_IN)和先前像素(Y_IN))之间的差。例如,两个连续像素可以是图1的左像素124,并且可以是左像素124的右侧的相邻像素。示例绝对差计算器518将绝对差发送到示例惩罚查找表(LUT)520中,以将连续像素之间的绝对差映射为第一示例惩罚值(P1)522和第二示例惩罚值(P2)524。
在操作中,图5的第一示例SGBM聚合单元502可以计算由第二示例聚合单元(K+1)530计算的第一示例聚合成本528和第一示例惩罚值522的第一示例总和526。图5的第一示例SGBM聚合单元502包括第一SGBM聚合单元502计算的第二示例聚合成本(K+1)530和第一示例惩罚值522的第二示例总和532。图5的第一示例SGBM聚合单元502计算由第三示例SGBM聚合单元(K-1)540计算的第三示例聚合成本538和第三示例罚值522的第三示例总和536。
图5的第一示例SGBM聚合单元502计算第二示例惩罚值524和第四示例聚合成本544的第四示例总和542,其中第四聚合成本544是由示例分类树546计算的最小值。示例分类树546确定多个水平聚合成本和/或垂直聚合成本中的最小值。例如,排序树546可以对应于垂直最小成本确定器278、水平最小成本确定器280和/或它们的组合。例如,排序树546表示用于执行排序算法的硬件和/或机器可读指令,该排序算法从要排序的元素构建二进制搜索树,然后遍历该树(按顺序),以使这些元素以排序顺序输出。示例排序树546通过将96个存储的成本(例如,水平成本、垂直成本等)分类为对应于96个存储的成本中的一个的最小值,从而将示例SGBM聚合单元502、530、540的延迟缩短为1个时钟周期。
在图5的所示示例中,示例SGBM聚合单元502、530、540中的每个在两个连续的周期中执行三个聚合路径中的每个。例如,在第一周期期间,每个SGBM聚合单元502、530、540执行和/或以其他方式促进从左到右的聚合路径。在第二周期期间,每个示例SGBM聚合单元502、530、540执行和/或以其他方式促进从右到左的聚合路径和从上到下的聚合路径。每个示例SGBM聚合单元502、530、540负责针对一个像素聚合96个视差或成本集中的一个。
在图5的所示示例中,第一至四个聚合成本528、534、538、544表示一种方法,该方法通过沿聚合方向或路径从相邻像素传播趋势从图1的成本匹配引擎108输出的初始值提高每个像素的相关成本的质量。例如,第一聚合成本528可以对应于从左到右的第一水平路径,其中第一水平路径表示从左到右的图1的左图像118中的处理像素,其中,右边的像素(例如,像素的匹配成本)受其左邻居的先前聚合结果影响。对于路径r,示例SGBM聚合单元502可以计算匹配成本,该匹配成本以图像边缘处的像素开始并且以感兴趣的像素结束。例如,对于图1的右图像120的从左到右的路径,SGBM聚合单元502确定从右图像120的左边缘处的第一像素到右图像120的中心像素126开始的路径中的每个像素的匹配成本。
在其他示例中,第三聚合成本538可以对应于从右到左的第二水平路径,其中第二水平路径表示从右到左的图1的左图像118中的处理像素,其中左侧的像素(例如,像素的匹配成本)受其右侧邻居的先前聚合结果影响。例如,对于图1的右图像120的从右到左的路径,SGBM聚合单元502确定从右图像120的右边缘处的第一像素到右图像120的中心像素126开始的路径中的每个像素的匹配成本。
在图5的所示示例中,第一示例最小值函数548确定第一和第四总和526、532、536,542的第一最小值。示例SGBM聚合单元502包括第二示例最小值函数550,用于确定(1)示例匹配成本K 506与第四示例聚合成本544之和与(2)第一最小值之间的差的第二最小值。例如,第二最小值函数550确定与当前像素(例如,图1的左像素124)相关联的匹配成本是否是最小视差。例如,每个SGBM聚合单元502、530、540经由第一最小值函数548和第二最小值函数550执行和/或以其他方式实现以上公式(5)和/或(6)的示例。
图5的所示示例的第二示例最小值函数550可以将第二最小值输出到包括在第二示例流水线(PIPE 2)554中的示例集合成本寄存器552,以存储第二最小值。尽管结合图1中的描述针对第一示例SGBM聚合单元502,但是该描述也适用于第二示例SGBM聚合单元530和第三示例SGBM聚合单元540。例如,第二和第三SGBM聚合单元530、540包括基本相似的组件(例如,组件的一部分或全部)并执行与第一SGBM聚合单元502基本相同的功能(例如,功能的部分或全部)。
图6是用于实现本文公开的示例的示例立体声流水线数据流600的示意示出。在第一时间实例期间,图1的示例CT引擎102可以读取第一右行(RL_0)602。在第二时间实例期间,示例CT引擎102生成第一右行602的第一CT(CT RL_0)604。例如,CT引擎102生成图1的右描述符202。在第二时间实例期间,示例CT引擎102读取第一左行(LL_0)606。在第三时间实例期间,图1的示例描述符缓冲区引擎104读取第一CT 604并将其存储在图2B的示例循环缓冲区232中,被存储为第一示例右描述符行(BUFF RDL_0)608。
在第四时间实例期间,示例描述符缓冲区引擎104将第一示例右描述符行608发送到示例描述符选择器106和/或示例成本匹配引擎108。在第四时间实例期间,示例成本匹配引擎108获得第一左行606以执行成本匹配操作。在第五时间实例期间,示例成本匹配引擎108生成第一示例从左到右成本匹配行(L2R CML_0)610。
在第六时间实例期间,示例成本匹配引擎108将第一从左到右成本匹配行610发送到示例成本合并引擎110,以对包括第一从左到右成本匹配行610的图像数据进行排序。在第七时间实例期间,示例成本合并引擎110将排序的图像数据发送到图1的SGBM聚合引擎112,以确定第一示例从左到右成本聚合行(L2R CAL_0)612、第一示例右到左聚合行(R2LAL_0)614和第一示例从上到下聚合行(T2B AL_0)616。在第八时间实例期间,示例SGBM聚合引擎112生成第一示例输出视差行(ODL_0)618。
响应于生成针对输入图像(例如,图1的左图像118)的每一行的输出视差行,示例流水线数据流600包括转储普查变换描述符(DCTD)620,转储成本图(DCM)622,并转储聚合的成本图(DACM)624。示例流水线数据流600在针对输入图像的每行确定输出视差行时结束。例如,图1的流水线114可以基于输出视差行执行包括在图1的左图像118中的像素与包括在图1的右图像120中的像素的立体匹配。
图7是示例SIPP加速器700的示例实现的框图。示例SIPP加速器700执行诸如立体匹配的图像处理操作。例如,SIPP加速器700可以通过拍摄两个或更多个图像(例如照片、视频帧等)并识别两个图像中的匹配像素,并将像素的2D位置转换为3D深度来估计和/或以其他方式确定环境、场景等的3D模型。例如,SIPP加速器700可以利用立体视差图来估计环境中的点的相对深度,该立体视差图是通过匹配两个或更多个图像(例如,一对立体图像)中的对应点而构造的。示例SIPP加速器700从具有相对应的相当大的吞吐量的对齐的图像加速和/或以其他方式提高视差计算的速度。
在图7的所示示例中,SIPP加速器700包括示例普查变换处理器702、示例描述符管理器704、示例成本计算管理器706和示例聚合生成器。图7的示例SIPP加速器700包括示例普查变换处理器702,用于执行和/或以其他方式促进普查变换操作。例如,普查变换处理器702可以对应于和/或以其他方式实现图1的CT引擎102。示例普查变换处理器702包括用于以下操作的单元:取回与包括在输入图像中的像素核或评估窗口的像素相关联的像素值,将像素值与中心像素的像素值、阈值、平均值等进行比较,并基于比较来生成描述符。
在一些示例中,普查变换处理器702基于将5x5像素核的像素与比较值进行比较来生成25位的掩码前位描述符(例如,图2A的掩码前位描述符222)。在其他示例中,普查变换处理器702基于7x7核生成49位的掩码前位描述符,基于7x9核生成63位掩码前位描述符,等等。示例普查变换处理器702将零延迟、随机位串接逻辑应用到掩码前位描述符,以生成掩码后位描述符(例如,图2A的掩码后位描述符202)。例如,普查变换处理器702可以实现图2A和/或图3的串接逻辑224,以生成掩码后位描述符。
图7的示例SIPP加速器700包括示例描述符管理器704,用于处理和/或以其他方式准备用于成本相关操作的描述符(例如,图2A的掩码后位描述符202)。例如,描述符管理器704可以对应于和/或以其他方式实现图1的描述符缓冲区引擎104或描述符选择器106中的至少一个。示例描述符管理器704包括用于以下操作的单元:取回由示例普查变换处理器702生成的一个或多个掩码后位描述符,并基于压扩逻辑来选择一个或多个掩码后位描述符。例如,描述符管理器704可以取回由普查变换处理器702生成的掩码后位描述符,经由一个或多个循环缓冲区以循环方式存储掩码后位描述符,并且基于压扩逻辑选择所存储的掩码后位的子集。
图7的示例SIPP加速器700可以包括示例成本计算管理器706,用于生成和/或以其他方式确定与包括在不同图像中的像素的图像位置的差异相对应的匹配成本。例如,成本计算管理器706可以对应于和/或以其他方式实现图1的成本匹配引擎108或成本合并引擎110中的至少一个。示例成本计算管理器706包括用于以下操作的单元:取回与第一图像的第一像素相关联的第一描述符(例如,图2C的示例左描述符230)和与第二图像的第二像素相关联的描述符(例如,图2C的96个右描述符234),并确定第一像素的像素强度值或与第一像素相关联的视差中的至少一个。例如,成本计算管理器706可以通过评估和/或以其他方式执行以上公式(4)或公式(5)中的至少一个来计算视差。
在一些示例中,成本计算管理器706确定针对每个感兴趣的像素的多个视差。例如,成本计算管理器706可以选择图1的左像素124来进行处理。示例成本计算管理器706选择图1的像素核128来进行处理。示例成本计算管理器706计算包括在像素核128中的每个像素相对于左像素124的视差。响应于计算视差,示例成本计算管理器706可以选择示例右图像120的另一像素核来进行处理。例如,成本计算管理器706可以处理右图像120的像素核,直到已经处理了整个右图像120。
图7的示例SIPP加速器700包括示例聚合生成器708,用于生成包括一个或多个视差的视差图,并基于视差图确定最小视差,其中最小视差对应于坐标(例如,水平坐标、垂直坐标等和/或它们的组合)的差。示例聚合生成器708包括用于以下操作的单元:确定与一个或多个传播路径相关联的聚合成本,基于该聚合成本生成视差图,和/或基于聚合成本、一个或多个视差或视差图中的至少一项,来识别图1的示例右图像120中的像素与示例左图像118中的一个匹配。
在一些示例中,聚合生成器708计算与第一传播路径相关联的第一聚合成本,第一传播路径与从第二像素到第一像素的从左到右输入路径相对应。示例集合生成器708计算与第二传播路径相关联的第二集合成本,第二传播路径与从第二像素到第一像素的从右到左输入路径相对应。示例聚合生成器708计算与第三传播路径相关联的第三聚合成本,第三传播路径与从第二像素到第一像素的上下输入路径相对应。响应于确定第一、第二和第三聚合成本,示例聚合生成器708确定第一至第三聚合成本中的最小值,并且生成针对多个像素的视差图以匹配立体图像对的不同图像中的像素。
图7的所示示例的示例普查变换处理器单元、示例描述符管理器单元、示例成本计算管理器单元和/或集合生成器单元由在硬件处理器上执行的软件来实现。附加地或替代地,示例普查变换处理器单元、示例描述符管理器单元、示例成本计算管理器单元和/或聚合生成器单元可以替代地由逻辑电路来实现,所述逻辑电路被构造为执行逻辑操作以实现期望功能,例如ASIC,FPGA等,和/或这些电路与软件和/或固件的组合。
尽管在图7中图示了实现图7的示例SIPP加速器700的示例方式,但是在图7中示出的元件、过程和/或设备中的一个或多个可以以任何其他方式组合、划分、重新布置、省略、消除和/或实现。此外,图7的示例普查变换处理器702、示例描述符管理器704、示例成本计算管理器706、示例聚合生成器708和/或更一般而言,示例SIPP加速器700可以通过硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。因此,例如,示例普查变换处理器702、示例描述符管理器704、示例成本计算管理器706、示例聚合生成器708和/或更一般而言,示例SIPP加速器700中的任一个可以由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)实现。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实现时,示例普查变换处理器702、示例描述符管理器704、示例成本计算管理器706、示例聚合生成器708中的至少一个由此明确定义为包括非暂时性计算机可读存储器设备或存储磁盘,例如存储器、数字多功能磁盘(DVD)、光盘(CD)、蓝光盘等,包括软件和/或固件。更进一步地,除了图7所示的那些之外元件或者替代图1所示的元件,图7的示例SIPP加速器700可以包括一个或多个元件、过程和/或设备,和/或任何一个或全部所示的元件、过程和设备中的更多个。如本文所使用的,短语“进行通信”,包括其变体,包括通过一个或多个中间组件的直接通信和/或间接通信,并且不需要直接的物理(例如,有线)通信和/或恒定的通信,而是此外,它还包括定期间隔、计划间隔、非周期性间隔和/或一次性事件的选择性通信。
在图8-图10中示出了流程图,其表示用于实现图7的示例SIPP加速器700的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合。机器可读指令可以是可执行程序或可执行程序的一部分,以由计算机处理器执行,所述计算机处理器诸如下文结合图12讨论的示例处理器平台1200中所示的处理器1212。程序可以体现在存储在非暂时性计算机可读存储介质中的软件中,例如CD-ROM、软盘、硬盘驱动器、DVD、蓝光磁盘或与处理器1212关联的存储器(一个或多个),但是整个程序和/或其部分可以替代地由除(一个或多个)处理器1212之外的设备执行和/或体现在固件或专用硬件中。此外,尽管参照图8-图10所示的流程图描述了示例程序,但是可以替代地使用实现示例SIPP加速器700的许多其他方法。例如,可以改变框的执行顺序,和/或可以改变、消除或组合所描述的一些框。附加地或替代地,任何或所有框可以由一个或多个硬件电路(例如,离散和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)实现,所述硬件电路被构造为执行相对应的操作而不执行软件或固件。
如上所述,图8-图10的示例过程可以使用存储在非暂时性计算机和/或机器可读介质(例如,硬盘驱动器、闪存、只读存储器、光盘、数字多功能磁盘、高速缓存、随机存取存储器和/或任何其他存储器设备或存储磁盘,其中,存储了任意持续时间(例如,对于延长的时间段、永久地、对于短暂地缓存,和/或对于信息的高速缓存))上的可执行指令(例如,计算机和/或机器可读指令)来实现。如本文所使用的,术语“非暂时性计算机可读介质”被明确定义为包括任何类型的计算机可读存储器设备和/或存储盘,并且排除传播信号并排除传输介质。
“包括”和“包含”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求采用任何形式的“包括”或“包含”(例如,包括、包括了、含有、包含了、具有等)作为序言或在任何种类的权利要求叙述中时,应理解为在不超出相对应权利要求或陈述的范围的情况下,可以存在其他要素、术语等。如本文所使用的,当例如在权利要求的序言中使用短语“至少”作为过渡术语时,其以与术语“包括”和“包含”是开放式的相同的方式是开放式的。术语“和/或”例如以诸如A、B和/或C的形式使用时,是指A、B、C的任何组合或子集,例如(1)仅A、(2)仅B、(3)仅C、(4)A与B、(5)A与C、(6)B与C,以及(7)A与B和C。
图8是表示可以被执行以实现图1的示例流水线优化系统100和/或图7的示例SIPP加速器700以加速图像特征匹配操作的示例机器可读指令800的流程图。图8的示例机器可读指令800包括:图8开始于框802,在框802,示例SIPP加速器700获得第一图像中的第一像素的像素值和第二图像中的第二像素的像素值。例如,图7的普查变换处理器702可以获得左图像118的左像素124的像素强度值和图1的右图像120的像素核128的像素的像素强度值。
在框804处,示例SIPP加速器700对像素值执行普查变换以生成第一描述符和第二描述符。例如,普查变换处理器702可以将左像素124的相邻像素(例如,在像素核内)的像素值与左像素124的像素值进行比较,以生成图2B的左描述符230。在其他示例中,普查变换处理器702比较图1的像素核128的像素值与比较值,所述比较值诸如但不限于中心像素126的像素值、像素核128的像素值的平均值、阈值等,以生成图2A的掩码前位描述符222。在这样的示例中,普查变换处理器702将图2A的串接掩码228以及图2A的连接逻辑224应用于前掩码位描述符222以生成图2A的掩码后位描述符202。示例掩码后位描述符202可以基于包括在像素核128中的像素的像素强度值与比较值的比较来表征与像素核128相关联的图像特征。例如,掩码后位描述符202可以对应于与右图像120的像素相关联的右描述符。
在框806,示例SIPP加速器700将第二描述符存储在描述符缓冲区中。例如,描述符管理器704可以将右描述符202存储在图2B的循环缓冲区232中。示例描述符管理器704可以从示例循环缓冲区232读取并输出176个右描述符202。
在框808,示例SIPP加速器700从描述符缓冲区中选择所存储的描述符的子集。例如,描述符管理器704可以基于压扩逻辑来选择176个右描述符202中的96个。
在框810,示例SIPP加速器700计算与第一描述符和所存储的描述符的子集相关联的视差。例如,成本计算管理器706可以计算与左描述符230和96个所选右描述符202中的各个描述符相关联的96个视差。
在框812,示例SIPP加速器700计算与从第二像素到第一像素的传播路径相关联的聚合成本。例如,聚合生成器708可以计算与从左到右传播路径相关联的第一聚合成本,与从右到左传播路径相关联的第二聚合成本以及与从上到下传播路径相关联的第三聚合成本。
在框814,示例SIPP加速器700确定最小聚合成本。例如,聚合生成器708从第一、第二和第三聚合成本中确定最小聚合成本。例如,聚合生成器708确定针对示例左像素124计算的每个视差(例如,针对96个视差238中的每个视差)的最小聚合成本。
在框816,示例SIPP加速器700基于最小聚合成本将第二像素中的一个与第一像素匹配。例如,聚合生成器708基于96个视差中的每个视差的最小聚合成本来生成视差图(例如,每像素64或96个匹配成本的二维向量)。在这样的示例中,聚合生成器708基于视差图确定最小视差。示例聚合生成器708可以基于最小视差来识别右图像120中的与示例左像素124的匹配像素。例如,聚合生成器708可以确定包括在图1的像素核128中的像素中的一个在右图像120中具有第一位置,该第一位置基于最小聚合成本基本匹配(例如,在视差阈值内匹配)左图像118中的左像素124的第二位置。响应于该匹配,图8的示例机器可读指令800可以结束。例如,示例SIPP加速器700可以确定将左图像118中的另一个像素与包括在图1的右图像120中的像素中的一个进行匹配。
图9描绘了表示可以被执行以实现图1的示例流水线优化系统100和/或图7的示例SIPP加速器700以确定具有与第一图像中的第一像素和第二图像中的第二像素相关联的最小成本的视差的示例计算机可读指令的示例源代码900。图9的示例源代码900可以由图1的SGBM聚合引擎112、图2E的示例SGBM聚合单元252、图5的SGBM聚合单元502、530、540、或者图7的聚合生成器708中的至少一个实现和/或以其他方式执行。
例如,聚合生成器708针对输入图像(例如,图1的左图像118、图1的右图像120等)的一行中的每个像素执行图9的源代码900。图9的示例源代码900处理来自输入成本缓冲区(ICB)和部分成本缓冲区(PCB)的图像数据。例如,ICB可以对应于图2E的输入成本缓冲区250。示例PCB可以对应于图5的示例聚合成本寄存器552。
在图9的示例源代码900中,对于行中的每个像素,示例聚合生成器708确定三个路径的更新路径成本(PathCostNew[n][x]),其中三个路径是对应于n=0的从左到右,对应于n=1的从上到下,对应于n=2的从右到左。在图9的示例源代码900中,PathCostNew是由路径(n)、像素(x)和视差(d)索引的3D数组(例如PathCostNew[0][x][d])。示例聚合生成器708将每个路径的总和计算为聚合成本(AGV)。在图9的示例源代码900中,AGV是按像素和视差索引的聚合成本2D数组。响应于计算每个视差的聚合成本,示例聚合生成器708确定和/或以其他方式识别具有最小成本值的视差,并将每个路径的路径成本存储在临时缓冲区或存储器中。
图10描绘了表示可以被执行以实现图1的示例流水线优化系统100和/或图7的示例SIPP加速器700以确定与传播路径相关联的成本的示例计算机可读指令的示例源代码1000。图1的示例源代码1000可以图1的SGBM聚合引擎112、图2E的示例SGBM聚合单元252、图5的SGBM聚合单元502、530、540、或者图7的聚合生成器708中的至少一个实现和/或以其他方式执行。
例如,聚合生成器708确定与当前像素相关联的所有视差上的即时或当前像素(x)的最小成本(MIN_2)。例如,聚合生成器708可以确定针对图1的左像素124计算的和/或与之相关联的96个视差中的最小视差值。示例集合生成器708将当前像素和先前像素的强度值之间的差(intensityDiff)映射为第一惩罚值(P1)和第二惩罚值(P2)。示例集合生成器708确定针对每个视差的新成本。示例集合生成器708通过确定(例如,迭代地确定)所选择的视差加上第一损失值是否小于当前成本来确定新成本。响应于确定所选择的视差加上第一惩罚值小于当前成本,则将当前成本设置为所选择的视差加上第一惩罚值。
图11描绘了对应于图1的示例SGBM聚合引擎112和/或图7的示例集合生成器708的示例数据路径波形的示例时序图1100。示例时序图1100描绘了与对应于从左到右路径的第一示例路径1102和对应于自上而下或自上而下的路径的第二示例路径1104相关联的操作。
在图11的示例时序图1100中,示例SGBM聚合引擎112和/或示例聚合生成器708每2个时钟周期吞吐量获得1个路径成本集(例如,每条路径一组64个聚合成本,每条路径一组96个聚合成本,等等)。例如,SGBM聚合引擎112可以每2个时钟周期处理与针对给定聚合路径的像素相关联的96个视差。例如,在第一路径1102中,在第一时钟周期(周期0)期间,SGBM聚合引擎112获得第一像素的第一组匹配成本(匹配成本K=成本0,K)(例如,由图1的示例成本匹配引擎108确定的96个成本),第一像素的第一像素强度值(Y0)和旁路值1。在第一时钟周期中设置旁路值,因为从左到右移动时,最左边的像素不具有以前聚合的数据。在第二时钟周期(周期1)期间,SGBM聚合引擎112获得第二像素的第二组匹配成本(匹配成本K=成本1),第二像素的第二像素强度值(Y1),并且像素强度延迟寄存器被设置为在第一时钟周期期间获得的第一像素强度值(Y0)。在第三时钟周期(周期2)期间,示例SGBM聚合引擎112将第一像素强度值和第二像素强度值的差映射为惩罚值(读惩罚LUT)。在第三时钟周期期间,示例SGBM聚合引擎112计算A0的第一路径成本集(Path_cost[n])并验证第一路径成本集。例如,SGBM聚合引擎112在第二时钟周期和第三时钟周期期间基于与像素相关联的处理96成本来计算像素的感兴趣的路径的聚合成本。
在图11的示例时序图1100中,在第二路径1104中,在第一时钟周期(周期0)期间,示例SGBM聚合引擎112获得TA0的第一聚合成本(Previews_Top_Aggr)并确定第一最小聚合成本(Top_Aggr_Min),min(TA0)。在第二时钟周期(周期1)期间,示例SGBM聚合引擎112确定LUT_0的第一惩罚值(p1/p2 LUT)。在第三时钟周期(周期2)期间,示例SGBM聚合引擎112获得第二聚合成本TA1,并确定第二最小聚合成本min(TA1)。在第三时钟周期期间,示例SGBM聚合引擎112确定第一路径成本A0,并将路径成本写输出缓冲区。示例SGBM聚合引擎112处理(例如,迭代地处理)与输入图像的像素相关联的聚合成本,以实现2个时钟周期到1个路径成本组吞吐量(例如,针对路径的一组64个聚合成本,针对路径的一组96个聚合成本等)。
图12是示例处理器平台1200的框图,该示例处理器平台2800被构造为执行图8-图10的指令以实现图7的示例SIPP加速器700。处理器平台1200可以是例如服务器、个人计算机、工作站、自学习机(例如,神经网络)、移动设备(例如,电话、智能电话、平板电脑(例如iPadTM))、个人数字助理(PDA)、互联网设备、DVD播放器、CD播放器、数字录像机、蓝光播放器、游戏机、个人录像机、机顶盒盒、耳机或其他可穿戴设备,或任何其他类型的计算设备。
所示示例的处理器平台1200包括处理器1212。所示示例的处理器1212是硬件。例如,处理器1212可以由任何期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或控制器来实现。硬件处理器可以是基于半导体(例如,基于硅)的设备。在该示例中,处理器1212实现示例SIPP加速器700、示例普查变换处理器702、示例描述符管理器704、示例成本计算管理器706、示例聚合生成器708。
所示示例的处理器1212包括本地存储器1213(例如,高速缓存)。所示示例的处理器1212经由总线1218与包括易失性存储器1214和非易失性存储器1216的主存储器通信。易失性存储器1214可以由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、动态随机存取存储器/>和/或任何其他类型的随机存取存储器设备实现。非易失性存储器1216可以由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器1214、1216的访问由存储器控制器控制。
所示示例的处理器平台2800还包括接口电路1220。接口电路1220可以通过任何类型的接口标准来实现,例如以太网接口、通用串行总线(USB)、接口、近场通信(NFC)接口和/或快速PCI接口。
在示出的示例中,一个或多个输入设备1222连接到接口电路1220。输入设备1222准许用户向处理器1212输入数据和/或命令。输入设备(一个或多个)1222可以由例如音频传感器、麦克风、照相机(静止或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint设备和/或语音识别系统来实现。
一个或多个输出设备1224也连接到所示示例的接口电路1220。输出设备1224可以例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管显示器(CRT))、就地开关(IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器实现。因此,所示示例的接口电路1220通常包括图形驱动器卡、图形驱动器芯片和/或图形驱动器处理器。
所示示例的接口电路1220还包括通信设备,例如发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口,以促进经由网络1226与外部机器(例如,任何种类的计算设备)的数据交换。通信可以经由例如以太网连接、数字用户线(DSL)连接、电话线连接、同轴电缆系统、卫星系统、现场线无线系统、蜂窝电话系统等。
所示示例的处理器平台1200还包括用于存储软件和/或数据的一个或多个大容量存储器设备1228。此类大容量存储器设备1228的示例包括软盘驱动器、硬盘驱动器、光盘驱动器、蓝光盘驱动器、独立磁盘冗余阵列(RAID)系统和数字多功能磁盘(DVD)驱动器。
图8至图10的机器可执行指令1232可以存储在大容量存储器设备1228中、在易失性存储器1214中、在非易失性存储器1216中和/或在诸如CD或DVD的可移动非暂时性计算机可读存储介质上。
根据前述内容,将意识到的是,已经公开了优化流水线执行的示例方法、装置和制品。本文公开的示例使用包括一个或多个流水线组件的流水线优化系统来执行立体匹配,以促进确定与匹配立体图像中的像素相关联的差异和/或路径成本。本文公开的示例促进了处理和/或以其他方式促进每1个时钟周期吞吐量1个像素的普查变换功能的架构。本文公开的示例通过在一个或多个公开的缓冲区或存储结构中使用循环缓冲区方案来减少数据移动来减少资源的功耗。本文公开的示例生成通过使用加速与包括在立体图像中的像素相关联的差异计算的架构来匹配立体对中的对应点而构建的立体视差图。
示例1包括一种用于执行立体匹配的装置,该装置包括成本计算管理器,用于通过计算第一图像的第一像素的第一位置和第二图像的第二像素的第二位置之间的匹配成本确定与第一位置和第二位置相关联的值,以及聚合生成器,其用于生成包括该值的视差图,并基于与第一位置和第二位置之间的水平坐标之差相对应的视差图来确定最小值。
示例2包括示例1的装置,还包括普查变换处理器,用于生成位描述符,该位描述符将包括第二像素的像素核的一组像素的强度值映射为位串。
示例3包括示例2的装置,其中普查变换处理器通过将一组像素的强度值与像素核的中心像素的强度值、强度值的平均值或阈值进行比较来生成位串。
示例4包括示例2的装置,其中,位描述符是掩码后位描述符,普查变换处理器通过将串接掩码和一个或多个排序树应用于掩码前位描述符以生成掩码后位描述符来生成位串。
示例5包括示例2的装置,其中位描述符是第一位描述符,成本计算管理器通过计算第一像素的第一像素强度值与第二像素的第二像素强度值之间的绝对差、计算第一像素的第一位描述符和第二像素的第二位描述符之间的汉明距离、计算绝对差和汉明距离的总和来确定视差,并通过将总和裁剪为整数来确定视差。
示例6包括示例1的装置,其中匹配成本是第一匹配成本,成本计算管理器使用桶形移位器重新排列包括第一匹配成本的匹配成本。
示例7包括示例1的装置,其中聚合生成器计算与第一传播路径相关联的第一聚合成本,所述第一传播路径与从第二像素到第一像素的从左到右输入路径相对应,计算与第二传播路径相关联的第二聚合成本,所述第二传播路径与从第二像素到第一像素的从右到左输入路径相对应,计算与第三传播路径相关联的第三聚合成本,所述第三传播路径与从第二像素到第一像素的从上到下输入路径相对应,并基于计算第一聚合成本、第二聚合成本和第三聚合成本的总和,来确定视差图。
示例8包括一种非暂时性计算机可读存储介质,其包括指令,所述指令当被执行时使机器至少通过计算第一图像的第一像素的第一位置和第二图像的第二像素的第二位置之间的匹配成本确定与第一位置和第二位置相关联的值,以及生成包括该值的视差图,并基于与第一位置和第二位置之间的水平坐标之差相对应的视差图来确定最小值。
示例9包括示例8的非暂时性计算机可读存储介质,还包括指令,所述指令当被执行时使机器至少生成位描述符,该位描述符将包括第二像素的像素核的一组像素的强度值映射为位串。
示例10包括示例9的非暂时性计算机可读存储介质,还包括指令,所述指令当被执行时,使机器至少通过将一组像素的强度值与像素核的中心像素的强度值、强度值的平均值或阈值进行比较来生成位串。
示例11包括示例9的非暂时性计算机可读存储介质,其中,位描述符是掩码后位描述符,还包括指令,所述指令当被执行时使机器至少通过将串接掩码和一个或多个排序树应用于掩码前位描述符以生成掩码后位描述符来生成位串。
示例12包括示例9的非暂时性计算机可读存储介质,其中,位描述符是第一位描述符,还包括指令,所述指令当被执行时使机器至少计算第一像素的第一像素强度值与第二像素的第二像素强度值之间的绝对差、计算第一像素的第一位描述符和第二像素的第二位描述符之间的汉明距离、计算绝对差和汉明距离的总和,并通过将总和裁剪为整数来确定视差。
示例13包括示例8的非暂时性计算机可读存储介质,其中匹配成本是第一匹配成本,还包括指令,所述指令当被执行时使机器至少使用桶形移位器重新排列包括第一匹配成本的匹配成本。
示例14包括示例1的非暂时性计算机可读存储介质,还包括指令,所述指令当被执行时使机器至少计算与第一传播路径相关联的第一聚合成本,所述第一传播路径与从第二像素到第一像素的从左到右输入路径相对应,计算与第二传播路径相关联的第二聚合成本,所述第二传播路径与从第二像素到第一像素的从右到左输入路径相对应,计算与第三传播路径相关联的第三聚合成本,所述第三传播路径与从第二像素到第一像素的从上到下输入路径相对应,并基于计算第一聚合成本、第二聚合成本和第三聚合成本的总和,来确定视差图。
示例15包括一种用于执行立体匹配的方法,该方法包括通过计算第一图像的第一像素的第一位置和第二图像的第二像素的第二位置之间的匹配成本确定与第一位置和第二位置相关联的值,以及生成包括该值的视差图,并基于与第一位置和第二位置之间的水平坐标之差相对应的视差图来确定最小值。
示例16包括示例15的方法,还包括生成位描述符,该位描述符将包括第二像素的像素核的一组像素的强度值映射为位串。
示例17包括示例16的方法,其中生成位串包括将一组像素的强度值与像素核的中心像素的强度值、强度值的平均值或阈值进行比较。
示例18包括示例16的方法,其中,位描述符是掩码后位描述符,通过将串接掩码和一个或多个排序树应用于掩码前位描述符以生成掩码后位描述符来生成位串。
示例19包括示例16的方法,其中,位描述符是第一位描述符,并且计算第一像素的第一像素强度值与第二像素的第二像素强度值之间的绝对差、计算第一像素的第一位描述符和第二像素的第二位描述符之间的汉明距离、计算绝对差和汉明距离的总和来确定视差,并通过将总和裁剪为整数来确定视差。
示例20包括示例15的方法,其中,匹配成本是第一匹配成本,还包括使用桶形移位器重新排列包括第一匹配成本的匹配成本。
示例21包括示例15的方法,还包括计算与第一传播路径相关联的第一聚合成本,所述第一传播路径与从第二像素到第一像素的从左到右输入路径相对应,计算与第二传播路径相关联的第二聚合成本,所述第二传播路径与从第二像素到第一像素的从右到左输入路径相对应,计算与第三传播路径相关联的第三聚合成本,所述第三传播路径与从第二像素到第一像素的从上到下输入路径相对应,并基于计算第一聚合成本、第二聚合成本和第三聚合成本的总和,来确定视差图。
示例22包括一种用于执行立体匹配的装置,该装置包括用于通过计算第一图像的第一像素的第一位置和第二图像的第二像素的第二位置之间的匹配成本确定与第一位置和第二位置相关联的值的第一单元,以及用于生成包括该值的视差图,并基于与第一位置和第二位置之间的水平坐标之差相对应的视差图来确定最小值的第二单元。
示例23包括示例22的装置,该装置还包括用于生成位描述符的第三单元,该位描述符将包括第二像素的像素核的一组像素的强度值映射为位串。
示例24包括示例23的装置,其中第三单元用于通过将一组像素的强度值与像素核的中心像素的强度值、强度值的平均值或阈值进行比较来生成位串。
示例25包括示例23的装置,其中,位描述符是掩码后位描述符,所述第三单元用于通过将串接掩码和一个或多个排序树应用于掩码前位描述符以生成掩码后位描述符来生成位串。
示例26包括示例23的装置,其中,位描述符是第一位描述符,并且所述第一单元用于通过计算第一像素的第一像素强度值与第二像素的第二像素强度值之间的绝对差、计算第一像素的第一位描述符和第二像素的第二位描述符之间的汉明距离、计算绝对差和汉明距离的总和来确定视差,并通过将总和裁剪为整数来确定视差。
示例27包括示例22的装置,其中,匹配成本是第一匹配成本,所述第一单元用于使用桶形移位器重新排列包括第一匹配成本的匹配成本。
示例28包括示例22的装置,其中第二单元用于计算与第一传播路径相关联的第一聚合成本,所述第一传播路径与从第二像素到第一像素的从左到右输入路径相对应,计算与第二传播路径相关联的第二聚合成本,所述第二传播路径与从第二像素到第一像素的从右到左输入路径相对应,计算与第三传播路径相关联的第三聚合成本,所述第三传播路径与从第二像素到第一像素的从上到下输入路径相对应,并基于计算第一聚合成本、第二聚合成本和第三聚合成本的总和,来确定视差图。
本文公开的示例可以应用于通过链接耦合到相应网关的物联网(IoT)网络。物联网(IoT)是一个概念,其中大量计算设备彼此互连并互连到互联网,以提供非常低的级别的功能和数据采集。因此,如本文中所使用的,IoT设备可以包括半自治设备,其与其他IoT设备和更广泛的网络(例如,互联网)通信来执行诸如感测或控制等功能。
通常,物联网设备在存储器、大小或功能上受到限制,从而允许以与较小数量的较大设备相似的成本部署较大数量的IoT设备。但是,IoT设备可以是智能电话、笔记本电脑、平板电脑或PC,或其他更大的设备。此外,IoT设备可以是虚拟设备,例如智能电话或其他计算设备上的应用。IoT设备可以包括IoT网关,用于将IoT设备耦合到其他IoT设备和云应用,以进行数据存储、过程控制等。
IoT设备的网络可以包括商业和家庭自动化设备,例如水分配系统、电力分配系统、管道控制系统、工厂控制系统、电灯开关、恒温器、锁、照相机、警报器、运动传感器等等。可以通过远程计算机、服务器和其他系统访问IoT设备,例如,以控制系统或访问数据。
互联网和类似网络的未来发展可能涉及非常大量的IoT设备。因此,在本文讨论的技术的上下文中,这种未来联网的许多创新将解决所有这些层不受阻碍地增长、发现并制造可访问的连接资源以及支持隐藏和分隔连接资源的能力的需求。可以使用任何数量的网络协议和通信标准,其中每种协议和标准被设计为解决特定目标。此外,协议是支持人类可访问服务的结构的一部分,人类可访问服务无论位置、时间或空间如何都可以运行。创新包括服务交付和相关联的基础设施,例如硬件和软件;以及安全增强;以及基于服务级别和服务交付协议中指定的服务质量(QoS)条款提供服务。
骨干链路可以包括任何数量的有线或无线技术,包括光网络,并且可以是局域网(LAN)、广域网(WAN)或互联网的一部分。此外,此类通信链路可促进IoT设备和网关之间的光信号路径,包括使用有助于各种设备互连的MUXing/deMUXing组件。
网络拓扑可以包括任何类型的IoT网络,例如使用蓝牙低功耗(BLE)链路随网络提供的网格网络。可能存在的其他类型的IoT网络包括用于通过IEEE 802.11链路与IoT设备进行通信的无线局域网(WLAN)网络、用于通过LTE/LTE-A(4G)或5G蜂窝网络与IoT设备进行通信的蜂窝网络,以及低功率广域(LPWA)网络,例如,与LoRa联盟发布的LoRaWan规范兼容的LPWA网络,或与Internet工程任务组(IETF)颁布的规范兼容的低功耗广域网(LPWAN)网络上的IPv6。此外,各个IoT网络可以使用任何数量的通信链路(例如LTE蜂窝链路、LPWA链路或基于IEEE 802.15的链路,例如/>)与外部网络提供商(例如,第2层或第3层提供商)进行通信。各个IoT网络还可以使用诸如约束应用协议(CoAP)之类的各种网络和互联网应用协议来操作。各个IoT网络也可以与协调器设备集成在一起,该协调器设备提供形成链接设备和网络的群集树的链接链。
这些IoT网络中的每一个都可以提供针对新技术特征(诸如,本文所述的那些)的机会。改进的技术和网络可以实现设备和网络的指数增长,包括将IoT网络用作雾设备或系统。随着此类改进技术的使用不断增长,可以开发IoT网络以进行自我管理、功能演进和协作,而无需直接的人工干预。改进的技术甚至可以使IoT网络在没有集中控制系统的情况下起作用。因此,本文所描述的改进技术可以被用于自动化和增强远远超出当前实现的网络管理和操作功能。
在示例中,可以通过用于认证、授权和计费(AAA)的分散系统来保护IoT设备之间的通信,例如通过骨干链路。在分散的AAA系统中,可以在互连的异构网络基础设施上实现分布式支付、信用、审计、授权和认证系统。这使系统和网络能够朝着自主操作的方向发展。在这些类型的自治操作中,机器甚至可能会签约人力资源并与其他机器网络协商伙伴关系。这样可以实现共同的目标,并根据概述的计划的服务水平协议实现均衡的服务交付,并实现提供计量、测量、可追溯性和可追踪性的解决方案。新的供应链结构和方法的创建可以使大量服务被创建、挖掘价值并停止而无需人工干预。
通过将诸如声音、光、电子交通、面部和模式识别、气味、振动之类的感测技术集成到IoT设备之间的自治组织中,可以进一步增强这种IoT网络。感测系统的集成可以允许针对合同服务目标、业务流程和基于服务质量(QoS)的群集和资源融合来进行服务交付的系统的、自主的通信和协调。
IoT设备的集群可以被配备成与其他IoT设备以及云网络通信。这可以允许IoT设备在设备之间形成自组织网络,从而使它们可以充当单个设备,可以称为雾设备。
与IoT设备的网格网络通信的云计算网络可以在云计算网络的边缘作为雾设备运行。物联网设备的网格网络可以称为雾,在云的边缘运行。
雾可以被认为是大规模互连的网络,其中许多IoT设备例如通过无线电链路彼此通信。作为示例,可以使用由开放连接基金会TM(OCF)发布的互连规范来促进该互连网络。该标准允许设备发现彼此并建立互连的通信。也可以使用其他互连协议,包括例如,优化的链路状态路由(OLSR)协议、更好的移动自组织网络(BATMAN)路由协议或OMA轻量级M2M(LWM2M)协议等。
尽管可以使用IoT设备和功能的任何组合,但是三种类型的IoT设备包括网关、数据聚合器和传感器。网关可以是边缘设备,其提供云和雾之间的通信,并且还可以提供从传感器获得的数据的后端处理功能,所述数据例如运动数据、流量数据、温度数据等。数据聚合器可以从任何数量的传感器收集数据,并执行后端处理功能以进行分析。结果,原始数据或两者都可以通过网关传递到云中。传感器可以是完整的IoT设备,例如,既可以收集数据并且处理数据。在某些情况下,传感器的功能可能会受到更多限制,例如,收集数据并允许数据聚合器或网关处理数据。
来自任何IoT设备的通信可以沿着任何IoT设备之间的便利路径(例如,最便利的路径)传递以到达网关。在这些网络中,互连的数量提供了大量的冗余,即使丢失了许多IoT设备,也可以保持通信。此外,由于连接到另一个IoT设备的范围可能比连接到网关的范围小得多,因此使用网格网络可以允许使用功率非常低或与要使用的基础设施一定距离的IoT设备。
从这些IoT设备提供的雾可以表现为云中的设备,例如服务器,作为位于云边缘的单个设备(例如雾设备)。在该示例中,来自雾设备的警报可以被发送而没有被识别为来自雾内的特定IoT设备。以这种方式,雾可以被认为是分布式平台,其提供计算和存储资源以执行处理或数据密集型任务,例如数据分析、数据聚集和机器学习等。
在一些示例中,可以使用命令式编程样式来配置IoT设备,例如,每个IoT设备具有特定功能和通信伙伴。但是,可以以声明性编程样式配置构成雾设备的IoT设备,从而允许IoT设备重新配置其操作和通信,例如响应于条件、查询和设备故障来确定所需的资源。作为示例,来自位于服务器处的用户的关于由IoT设备监视的设备的子集的操作的查询可以导致雾设可替换择回答该查询所需的IoT设备,例如特定传感器。来自这些传感器的数据然后可以由传感器、数据聚合器或网关的任意组合进行聚合和分析,然后再由雾化设备发送到服务器以回答查询。在此示例中,雾中的IoT设备可以基于查询选择使用的传感器,例如添加来自流量传感器或温度传感器的数据。此外,如果某些IoT设备无法运行,则雾设备中的其他IoT设备(如果可用)可能会提供类似数据。
尽管本文已经公开了某些示例方法、装置和制品,但是该专利的覆盖范围不限于此。相反,该专利涵盖了完全落入本专利权利要求范围内的所有方法,设备和制造物品。
Claims (17)
1.一种用于执行立体匹配的硬件流水线,所述硬件流水线包括:
第一逻辑电路,其用于:
确定与包括在不同图像中的像素的位置的差相关联的视差值,所述视差值包括与对应于(A)第一图像的第一像素的第一位置和(B)第二图像的第二像素的第二位置的第一差值相关联的第一视差值,所述第一视差值是基于所述第一像素的第一强度和所述第二像素的第二强度的比较的;以及
使用桶形移位器重新排列所述视差值中的多个视差值;
第二逻辑电路,所述第二逻辑电路在具有所述第一逻辑电路的电路中,所述第二逻辑电路用于:
生成视差图,所述视差图表示所述像素的位置的差,所述视差图包括所述第一视差值;以及
基于确定所述第一像素与所述第二像素相对应来使立体图像生成,所述确定是基于所述视差图的。
2.根据权利要求1所述的硬件流水线,还包括第三逻辑电路,所述第三逻辑电路在具有所述第一逻辑电路和所述第二逻辑电路的电路中,所述第三逻辑电路用于生成位描述符,所述位描述符将像素核的一组像素的强度值映射为位串,所述一组像素包括所述第一像素。
3.根据权利要求2所述的硬件流水线,其中,所述第三逻辑电路用于基于对所述一组像素的强度值与所述像素核的中心像素的第一强度值、所述一组像素的强度值的平均值或阈值中的至少一个的比较来生成所述位串。
4.根据权利要求2所述的硬件流水线,其中,所述位描述符是具有第一数量的位的掩码后位描述符,所述第三逻辑电路用于基于将串接掩码应用于掩码前位描述符来生成所述掩码后位描述符,所述串接掩码具有第二数量的位和一个或多个排序树,所述掩码前位描述符具有第三数量的位,并且所述第一数量的位、所述第二数量的位、以及所述第三数量的位彼此不同。
5.根据权利要求2所述的硬件流水线,其中,所述位描述符是第一位描述符,并且所述第一逻辑电路用于:
计算所述第一强度与所述第二强度之间的绝对差;
计算所述第一像素的第一位描述符和所述第二像素的第二位描述符之间的汉明距离;
计算所述绝对差和所述汉明距离的总和;以及
将所述总和裁剪为整数,所述第一视差值是基于所述整数的。
6.根据权利要求1所述的硬件流水线,其中,所述第二逻辑电路用于:
计算与第一传播路径相关联的第一聚合成本,所述第一传播路径与从所述第二像素到所述第一像素的从左到右输入路径相对应;
计算与第二传播路径相关联的第二聚合成本,所述第二传播路径与从所述第二像素到所述第一像素的从右到左输入路径相对应;
计算与第三传播路径相关联的第三聚合成本,所述第三传播路径与从所述第二像素到所述第一像素的从上到下输入路径相对应;以及
基于所述第一聚合成本、所述第二聚合成本以及所述第三聚合成本的总和,来确定所述视差图。
7.一种用于执行立体匹配的方法,所述方法包括:
确定与包括在不同图像中的像素的位置的差相关联的视差值,所述视差值包括与对应于(A)第一图像的第一像素的第一位置和(B)第二图像的第二像素的第二位置的第一差值相关联的第一视差值,所述第一视差值是基于所述第一像素的第一强度和所述第二像素的第二强度的比较的,确定所述第一视差值包括:
确定所述第一强度与所述第二强度之间的绝对差;
确定所述第一像素的第一位描述符和所述第二像素的第二位描述符之间的汉明距离;
确定所述绝对差和所述汉明距离的总和;以及
将所述总和裁剪为整数;
生成视差图,所述视差图表示所述像素的位置的差,所述视差图包括所述第一视差值;以及
响应于确定所述第一像素与所述第二像素相对应,基于所述第一像素和所述第二像素来生成立体图像。
8.根据权利要求7所述的方法,还包括生成所述位描述符,所述位描述符将所述第一强度的第一强度值映射为位串。
9.根据权利要求8所述的方法,其中,还包括通过将所述第一像素的所述第一强度与包括所述第一像素的像素核的中心像素的第一强度值、所述像素核的第三强度值的平均值或阈值中的至少一个进行比较来生成所述位描述符。
10.根据权利要求8所述的方法,其中,所述位描述符是具有第一数量的位的掩码后位描述符,并且还包括通过将串接掩码应用于掩码前位描述符来生成所述掩码后位描述符,所述串接掩码具有第二数量的位和一个或多个排序树,所述掩码前位描述符具有第三数量的位,并且所述第一数量的位、所述第二数量的位、所述第三数量的位彼此不同。
11.根据权利要求7所述的方法,还包括使用至少一个桶形移位器重新排列所述视差值中的多个视差值。
12.根据权利要求7所述的方法,还包括:
生成与第一传播路径相关联的第一聚合成本,所述第一传播路径与从所述第二像素到所述第一像素的从左到右输入路径相对应;
生成与第二传播路径相关联的第二聚合成本,所述第二传播路径与从所述第二像素到所述第一像素的从右到左输入路径相对应;
生成与第三传播路径相关联的第三聚合成本,所述第三传播路径与从所述第二像素到所述第一像素的从上到下输入路径相对应;以及
基于所述第一聚合成本、所述第二聚合成本和所述第三聚合成本的总和,来确定所述视差图。
13.一种用于执行立体匹配的硬件流水线,所述硬件流水线包括:
用于基于将串接掩码应用于掩码前位描述符来生成掩码后位描述符的单元,所述掩码后位描述符将第一图像的像素核的第一像素的强度值映射为位串,所述掩码后位描述符具有第一数量的位,所述串接掩码具有第二数量的位和一个或多个排序树中的至少一个,所述掩码前位描述符具有第三数量的位,并且所述第一数量的位、所述第二数量的位、以及所述第三数量的位彼此不同;
用于确定的单元,其在具有所述用于生成的单元的电路中,所述用于确定的单元用于确定与所述第一像素和第二图像的第二像素中的多个像素的位置的差相关联的视差值,所述视差值包括与对应于(A)所述第一像素的第三像素的第一位置和所述第二像素的第四像素的第二位置的第一差值相关联的第一视差值,所述第一视差值是基于所述第三像素的第一强度和所述第四像素的第二强度的比较的,以及
在具有所述用于确定的单元的电路中的用于聚合的单元,所述用于聚合的单元用于:
生成视差图,所述视差图表示所述像素的位置的差,所述视差图包括所述第一视差值;以及
响应于确定所述第三像素与所述第四像素相对应来使立体图像生成,所述确定是基于所述视差图的。
14.根据权利要求13所述的硬件流水线,其中,所述用于生成的单元用于基于对所述第一像素的强度值与所述像素核的中心像素的第一强度值、所述第一像素的强度值的平均值或阈值中的至少一个的比较来生成所述位串。
15.根据权利要求13所述的硬件流水线,其中,所述掩码后位描述符是第一掩码后位描述符,所述用于确定的单元用于:
确定所述第一强度与所述第二强度之间的绝对差;
确定所述第三像素的第一掩码后位描述符和所述第四像素的第二掩码后位描述符之间的汉明距离;
确定所述绝对差和所述汉明距离的总和;以及
将所述总和裁剪为整数。
16.根据权利要求13所述的硬件流水线,其中,所述用于确定的单元用于使用桶形移位器重新排列所述视差值。
17.根据权利要求13所述的硬件流水线,其中,所述用于聚合的单元用于:
计算与第一传播路径相关联的第一聚合成本,所述第一传播路径与从所述第四像素到所述第三像素的从左到右输入路径相对应;
计算与第二传播路径相关联的第二聚合成本,所述第二传播路径与从所述第四像素到所述第三像素的从右到左输入路径相对应;
计算与第三传播路径相关联的第三聚合成本,所述第三传播路径与从所述第四像素到所述第三像素的从上到下输入路径相对应;以及
基于所述第一聚合成本、所述第二聚合成本和所述第三聚合成本的总和,来确定所述视差图。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762508891P | 2017-05-19 | 2017-05-19 | |
US62/508,891 | 2017-05-19 | ||
PCT/EP2018/063229 WO2018211127A1 (en) | 2017-05-19 | 2018-05-18 | Methods, systems and apparatus to optimize pipeline execution |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110998660A CN110998660A (zh) | 2020-04-10 |
CN110998660B true CN110998660B (zh) | 2024-04-26 |
Family
ID=62530189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880047888.0A Active CN110998660B (zh) | 2017-05-19 | 2018-05-18 | 用于优化流水线执行的方法、系统和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11380005B2 (zh) |
KR (1) | KR102655086B1 (zh) |
CN (1) | CN110998660B (zh) |
DE (1) | DE112018002572T5 (zh) |
WO (1) | WO2018211127A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062239B (zh) | 2016-11-09 | 2020-06-16 | 华为技术有限公司 | 一种加速器加载方法、系统和加速器加载装置 |
CN108073423B (zh) * | 2016-11-09 | 2020-01-17 | 华为技术有限公司 | 一种加速器加载方法、系统和加速器加载装置 |
DE112018002572T5 (de) * | 2017-05-19 | 2020-06-04 | Movidius Ltd. | Verfahren, systeme und vorrichtungen zur optimierung der pipeline-ausführung |
US11182914B2 (en) * | 2018-05-21 | 2021-11-23 | Facebook Technologies, Llc | Dynamic structured light for depth sensing systems based on contrast in a local area |
US11024037B2 (en) | 2018-11-15 | 2021-06-01 | Samsung Electronics Co., Ltd. | Foreground-background-aware atrous multiscale network for disparity estimation |
KR102219561B1 (ko) * | 2018-11-23 | 2021-02-23 | 연세대학교 산학협력단 | 대응점 일관성에 기반한 비지도 학습 방식의 스테레오 매칭 장치 및 방법 |
FR3094122A1 (fr) * | 2019-03-22 | 2020-09-25 | Stmicroelectronics (Grenoble 2) Sas | Dispositif électronique de traitement d’images |
CN111260711B (zh) | 2020-01-10 | 2021-08-10 | 大连理工大学 | 一种弱监督可信代价传播的视差估计方法 |
US11356827B2 (en) * | 2020-07-31 | 2022-06-07 | King Abdulaziz University | Compressive sensing-aided LPWAN MAC layer |
CN116489289B (zh) * | 2023-06-16 | 2023-11-21 | 浙江芯劢微电子股份有限公司 | 一种同轴视频信号数字预钳位方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE68923052D1 (de) * | 1988-10-25 | 1995-07-20 | Ezel Inc | Bildverarbeitungsverfahren. |
JP2010232878A (ja) * | 2009-03-26 | 2010-10-14 | Toshiba Corp | ステレオ画像符号化方法、及び、ステレオ画像復号化方法 |
JP2011048416A (ja) * | 2009-08-25 | 2011-03-10 | Konica Minolta Holdings Inc | 画像処理装置および画像処理方法 |
JP2013131929A (ja) * | 2011-12-21 | 2013-07-04 | Toshiba Corp | 画像処理装置、方法、及びプログラム、並びに、画像表示装置 |
JP2015162156A (ja) * | 2014-02-28 | 2015-09-07 | オリンパス株式会社 | 画像処理装置、画像処理方法及びプログラム |
CN104902254A (zh) * | 2014-03-03 | 2015-09-09 | 诺基亚公司 | 用于立体图像的视差图估计的方法、装置及计算机程序产品 |
JP2016099318A (ja) * | 2014-11-26 | 2016-05-30 | 国立研究開発法人産業技術総合研究所 | ステレオマッチング装置とステレオマッチングプログラムとステレオマッチング方法 |
JP2016139355A (ja) * | 2015-01-29 | 2016-08-04 | 富士通株式会社 | 画像探索装置、画像探索方法および画像探索プログラム |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215898B1 (en) * | 1997-04-15 | 2001-04-10 | Interval Research Corporation | Data processing system and method |
US8855405B2 (en) * | 2003-04-30 | 2014-10-07 | Deere & Company | System and method for detecting and analyzing features in an agricultural field for vehicle guidance |
KR100603603B1 (ko) * | 2004-12-07 | 2006-07-24 | 한국전자통신연구원 | 변위 후보 및 이중 경로 동적 프로그래밍을 이용한 스테레오 변위 결정 장치 및 그 방법 |
JP4767595B2 (ja) * | 2005-06-15 | 2011-09-07 | パナソニック株式会社 | 対象物検出装置及びその学習装置 |
JP4402025B2 (ja) * | 2005-08-29 | 2010-01-20 | 富士フイルム株式会社 | 複眼撮像装置及び複眼撮像装置の制御プログラム |
JP5561781B2 (ja) * | 2008-01-29 | 2014-07-30 | トムソン ライセンシング | 2d画像データを立体画像データに変換する方法およびシステム |
US8947534B2 (en) * | 2009-06-11 | 2015-02-03 | Google Technology Holdings LLC | System and method for providing depth imaging |
US8488870B2 (en) * | 2010-06-25 | 2013-07-16 | Qualcomm Incorporated | Multi-resolution, multi-window disparity estimation in 3D video processing |
US8478076B2 (en) * | 2010-07-05 | 2013-07-02 | Apple Inc. | Alignment of digital images and local motion detection for high dynamic range (HDR) imaging |
US8867790B2 (en) * | 2010-08-03 | 2014-10-21 | Panasonic Corporation | Object detection device, object detection method, and program |
JP2012253666A (ja) * | 2011-06-06 | 2012-12-20 | Sony Corp | 画像理装置および方法、並びにプログラム |
US8897546B2 (en) * | 2011-09-29 | 2014-11-25 | Texas Instruments Incorporated | Semi-global stereo correspondence processing with lossless image decomposition |
US9107213B2 (en) | 2011-11-09 | 2015-08-11 | Samsung Electronics Co., Ltd. | Reference signal for time and/or frequency tracking in a wireless network |
WO2013072212A1 (en) * | 2011-11-15 | 2013-05-23 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for real-time capable disparity estimation for virtual view rendering suitable for multi-threaded execution |
US8605993B2 (en) * | 2011-11-21 | 2013-12-10 | Robo-team Ltd. | Methods and systems of merging depth data from a plurality of disparity maps |
EP2848000B1 (en) * | 2012-05-11 | 2018-09-19 | Intel Corporation | Systems and methods for row causal scan-order optimization stereo matching |
US8687892B2 (en) * | 2012-06-21 | 2014-04-01 | Thomson Licensing | Generating a binary descriptor representing an image patch |
RU2639686C2 (ru) * | 2012-07-20 | 2017-12-21 | Конинклейке Филипс Н.В. | Метаданные для фильтрации глубины |
WO2014037603A1 (en) * | 2012-09-06 | 2014-03-13 | Nokia Corporation | An apparatus, a method and a computer program for image processing |
US9247237B2 (en) * | 2012-12-12 | 2016-01-26 | Intel Corporation | Techniques for wavelet-based image disparity estimation |
US10074179B2 (en) * | 2013-05-07 | 2018-09-11 | Sharp Kabushiki Kaisha | Image measurement device |
WO2015025073A1 (en) * | 2013-08-19 | 2015-02-26 | Nokia Corporation | Method, apparatus and computer program product for object detection and segmentation |
US9547838B2 (en) * | 2013-11-06 | 2017-01-17 | Oracle International Corporation | Automated generation of a three-dimensional space representation and planogram verification |
KR20150053438A (ko) * | 2013-11-08 | 2015-05-18 | 한국전자통신연구원 | 스테레오 매칭 시스템과 이를 이용한 시차 맵 생성 방법 |
JP5999127B2 (ja) * | 2014-03-12 | 2016-09-28 | トヨタ自動車株式会社 | 画像処理装置 |
WO2015138737A1 (en) * | 2014-03-12 | 2015-09-17 | Brass Roots Technologies, LLC | Bit plane memory system |
TWI538476B (zh) * | 2014-03-24 | 2016-06-11 | 立普思股份有限公司 | 立體攝影系統及其方法 |
US9407896B2 (en) * | 2014-03-24 | 2016-08-02 | Hong Kong Applied Science and Technology Research Institute Company, Limited | Multi-view synthesis in real-time with fallback to 2D from 3D to reduce flicker in low or unstable stereo-matching image regions |
JP6314628B2 (ja) | 2014-04-28 | 2018-04-25 | 株式会社デンソー | 演算処理装置 |
US9619933B2 (en) * | 2014-06-16 | 2017-04-11 | Occipital, Inc | Model and sizing information from smartphone acquired image sequences |
US9754377B2 (en) * | 2014-08-15 | 2017-09-05 | Illinois Institute Of Technology | Multi-resolution depth estimation using modified census transform for advanced driver assistance systems |
KR101622344B1 (ko) * | 2014-12-16 | 2016-05-19 | 경북대학교 산학협력단 | 적응적 영역 가중치가 적용된 센서스 변환 기반 스테레오 정합을 통한 시차 계산 방법 및 그 시스템 |
JP2016197795A (ja) * | 2015-04-03 | 2016-11-24 | 日立オートモティブシステムズ株式会社 | 撮像装置 |
US10586345B2 (en) * | 2015-05-17 | 2020-03-10 | Inuitive Ltd. | Method for estimating aggregation results for generating three dimensional images |
US11423311B2 (en) | 2015-06-04 | 2022-08-23 | Samsung Electronics Co., Ltd. | Automatic tuning of artificial neural networks |
US10460230B2 (en) | 2015-06-04 | 2019-10-29 | Samsung Electronics Co., Ltd. | Reducing computations in a neural network |
US10554947B1 (en) * | 2015-12-16 | 2020-02-04 | Marvell International Ltd. | Method and apparatus for stereo vision matching including disparity refinement based on matching merit values |
US10080007B2 (en) * | 2016-03-17 | 2018-09-18 | Texas Instruments Incorporated | Hybrid tiling strategy for semi-global matching stereo hardware acceleration |
US10764561B1 (en) * | 2016-04-04 | 2020-09-01 | Compound Eye Inc | Passive stereo depth sensing |
KR102442594B1 (ko) * | 2016-06-23 | 2022-09-13 | 한국전자통신연구원 | 조명기를 구비한 스테레오 매칭 시스템에서의 코스트 볼륨 연산장치 및 그 방법 |
US10462445B2 (en) * | 2016-07-19 | 2019-10-29 | Fotonation Limited | Systems and methods for estimating and refining depth maps |
DE112018002572T5 (de) | 2017-05-19 | 2020-06-04 | Movidius Ltd. | Verfahren, systeme und vorrichtungen zur optimierung der pipeline-ausführung |
JP6986683B2 (ja) * | 2018-01-05 | 2021-12-22 | パナソニックIpマネジメント株式会社 | 視差値算出装置、視差値算出方法及びプログラム |
CN110220493B (zh) * | 2018-03-02 | 2023-11-10 | 北京图森智途科技有限公司 | 一种双目测距方法及其装置 |
-
2018
- 2018-05-18 DE DE112018002572.1T patent/DE112018002572T5/de active Pending
- 2018-05-18 CN CN201880047888.0A patent/CN110998660B/zh active Active
- 2018-05-18 WO PCT/EP2018/063229 patent/WO2018211127A1/en active Application Filing
- 2018-05-18 KR KR1020197037037A patent/KR102655086B1/ko active IP Right Grant
- 2018-05-18 US US16/614,737 patent/US11380005B2/en active Active
-
2022
- 2022-06-24 US US17/849,118 patent/US11954879B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE68923052D1 (de) * | 1988-10-25 | 1995-07-20 | Ezel Inc | Bildverarbeitungsverfahren. |
JP2010232878A (ja) * | 2009-03-26 | 2010-10-14 | Toshiba Corp | ステレオ画像符号化方法、及び、ステレオ画像復号化方法 |
JP2011048416A (ja) * | 2009-08-25 | 2011-03-10 | Konica Minolta Holdings Inc | 画像処理装置および画像処理方法 |
JP2013131929A (ja) * | 2011-12-21 | 2013-07-04 | Toshiba Corp | 画像処理装置、方法、及びプログラム、並びに、画像表示装置 |
JP2015162156A (ja) * | 2014-02-28 | 2015-09-07 | オリンパス株式会社 | 画像処理装置、画像処理方法及びプログラム |
CN104902254A (zh) * | 2014-03-03 | 2015-09-09 | 诺基亚公司 | 用于立体图像的视差图估计的方法、装置及计算机程序产品 |
JP2016099318A (ja) * | 2014-11-26 | 2016-05-30 | 国立研究開発法人産業技術総合研究所 | ステレオマッチング装置とステレオマッチングプログラムとステレオマッチング方法 |
JP2016139355A (ja) * | 2015-01-29 | 2016-08-04 | 富士通株式会社 | 画像探索装置、画像探索方法および画像探索プログラム |
Non-Patent Citations (2)
Title |
---|
Processing of Façade Imagery;Dipl.-Mediensystemwiss. Przemyslaw Musialski;《 Eurographics DL Home—Graphics Dissertation Online》;1-120 * |
Yi Shan et.al.Hardware Acceleration for an Accurate Stereo Vision System Using Mini-Census Adaptive Support Region.《ACM Transactions on Embedded Computing Systems》.2014,第13卷(第4期),1-24. * |
Also Published As
Publication number | Publication date |
---|---|
DE112018002572T5 (de) | 2020-06-04 |
CN110998660A (zh) | 2020-04-10 |
KR20200020705A (ko) | 2020-02-26 |
US20200226776A1 (en) | 2020-07-16 |
KR102655086B1 (ko) | 2024-04-08 |
WO2018211127A1 (en) | 2018-11-22 |
US20230084866A1 (en) | 2023-03-16 |
US11380005B2 (en) | 2022-07-05 |
US11954879B2 (en) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110998660B (zh) | 用于优化流水线执行的方法、系统和装置 | |
US11521024B2 (en) | Cascade convolutional neural network | |
US11462036B2 (en) | Automated semantic inference of visual features and scenes | |
JP5996013B2 (ja) | 立体画像の視差マップ推定のための方法,装置及びコンピュータプログラム製品 | |
KR102636925B1 (ko) | 픽셀 커널들을 페치할 때 메모리 레이턴시를 감소시키기 위한 방법들, 시스템들, 및 장치 | |
KR102210693B1 (ko) | 경계 비트맵을 이용하는 이미지 분류 개선 기법 | |
Wu et al. | Hybrid mobile vision for emerging applications |
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 |