Page 34 - VSDC_JulAug2017_eMag
P. 34

应用与解决方案 Applications & Solutions





                  Scheduling                                                        以优化流程。一旦实现,可以使用
                                                                             CPU 0
                                                                             CPU 1  Sourcery Analyzer 再次执行和分析结
                                                                             CPU 2  果代码(见图 8)。
                                                                             CPU 3
                      87.5405k 87.5410k 87.5415k 87.5420k 87.5425k 87.5430k 87.5435k 87.5440k  然而,使用这种技术并不是没有
                                              Time (s)
                                                                                    限制的。将代码并行化以在多个 CPU
                 图8:通过在Mentor Embedded Sourcery Analyzer上使用缩放追踪器,可以确定使用的SoC上的ALU数量。
                 如果处理能力未得到充分利用,则可以优化程序的执行,使得可以调度多个线程或Euronote应用程序的组                 上运行,系统的性能可能仍然不到最
                 件并行运行。
                                                                                    佳。图像不是通过流水线,而是被复
                          Frames per sec Latency (msec)    Gstreamer change         制到队列中,这个过程本身引入了
                 Base          20           45                                      一些耗费。这可以通过使用 Sourcery
                                                     Videoscale ! video/x-raw, width=800
                 Resized       50           20                                      Analyzer 中的内存分配器追踪器进行
                                                               height=600
                 Queue         60           400                 Queue               验证,并查看分配给进程的内存量。
                 Size=1       100           35           Queue max-size-buffers=1       然而,通过 Sourcery Analyzer 返
                                                                                    回到 Euronote 代码,并确保在执行
                 图9:在优化之前,系统能以20fps的速率捕获图像,而图像采集和处理输出之间的延迟为45ms。调整了
                 图像数据的大小后,图像捕获速率提高到50fps,延迟20ms。通过在进程中引入队列,系统吞吐量提高到                 Euronote 应用程序期间,没有图像数
                 60fps,延迟400ms。最后,通过限制缓冲区的最大大小,系统以100fps的帧率、35ms的延迟拍摄图像。
                                                                                    据存储在队列中,可以轻松解决此问
                     在这种情况下,使用 Gstreamer           线程和线程迁移速率,或系统调度程                 题。一旦已实现,程序可以保存、再
                 来实施,这是一种多媒体框架,将各                  序在内核之间移动软件线程的频率。                 次执行,并使用 Sourcery Analyzer 查
                 种定制或现成的称为插件的媒体处理                                                   看执行结果。
                 元素链接到软件流程中。因此,分析                  吞吐量分析
                 过程的第一步涉及将图像处理软件转                     Sourcery Analyzer 可   以  在    优化系统
                 换成标记为“Euronote”的 GStreamer        Euronote Gstreamer 应用程序上执行           通过使用 Mentor 嵌入式工具优
                 插件。                               吞吐量分析。如果系统不符合应用                  化系统性能实现的结果总结在图 9
                     使用 Gstreamer,现有的              程序要求的图像捕获速率,可以从                  中。在优化之前,系统只能以 20fps
                 Video4Linux 插件用于从 200 万像          Sourcery Analyzer 环境访问 Euronote  的速率捕获图像,而图像采集和处
                 素相机将图像提取到流程中,并将                   软件程序。这样可以将所获取的图像                 理输出之间的延迟为 45ms。调整了
                 帧率设置为 100fps。然后,使用另               的尺寸在应用于 Euronote 应用程序之           图像数据的大小后,图像捕获速率提
                 一个 Gstreamer 插件将图像发送到             前进行缩放以进行处理,从而提高可                 高到 50fps,延迟 20ms。通过在进程
                 Euronote 插件,之后可以将其缩放为             以获取的每秒帧数。                        中引入队列,可以将系统吞吐量进一
                 1024×768 的 I420 格式,在这里图像             然而,如果缩放图像尺寸仍然                 步提高到 60fps,延迟 400ms。最后,
                 以 YUV 显示。                         不能有效地提高系统的速度,则可以                 通过限制缓冲区的最大大小,系统以
                     一旦写入应用程序,Mentor 的             通过确保嵌入式处理器中的所有四个                 100fps 的速率、35ms 的延迟拍摄图像。
                 源分析器被用来确定执行速度。为                   ALU 全部被利用,来进一步提高性能。                  毫无疑问,使用开源操作系统软
                 此, 复 制 代 码 到 Mentor Embedded      通过在 Mentor Embedded Sourcery     件,免费提供的图像处理软件库,加
                 Sourcery CodeBench 中,从而可以将        Analyzer 上使用缩放跟踪器,可以确            上使用先进的系统诊断工具和便宜
                 二进制代码传输到目标 AMD 处理                 定使用的 SoC 上的 ALU 数量。              的模块化相机硬件,将继续为开发人
                 器、并在此执行二进制代码。然后                      如果正在使用处理能力,则可以                员提供经济的方式来开发机器视觉应
                 Sourcery Analyzer 以图形方式突出显        优化程序的执行,使得可以并行运行                 用。事实上,这种硬件和软件的扩
                 示 CPU 统计信息,显示每个核心在                多个线程或 Euronote 应用程序的组            散,可能最终为依赖于专有架构的许
                 给定状态下花费的时间,调度统计数                  件。为此,可以从分析器和软件中创                 多现有软件 - 硬件供应商提出了重大
                 据,突出显示每个核心上运行的软件                  建的队列再次访问 Gstreamer 代码, 挑战。


                 32 Jul/Aug  2017                                                  视觉系统设计   Vision Systems Design China
   29   30   31   32   33   34   35   36   37   38   39