嵌入式设计应用
异质架构的嵌入式运算正快速成为事实。今天,我们确实已经看到许多领先的IP与半导体业者正在开发异质运算的硬件。在本文中,将说明异质运算的一种典型使用案例,以及迈向异质的编程模型时会面临的挑战。
以异质架构执行计算机视觉算法
图一主要说明如何利用多个异质硬件与软件的元件来建置支持美化功能的视讯录像应用程序。在这个例子中,ISP/相机所撷取到的输入讯框会先被GPU 检视,以决定脸部的位置及其个别的特征(如眼睛、嘴唇、鼻子和其它),再将这些座标传送给CPU,而CPU的作用是追踪和自动调整相机的焦点与曝光,以便能取得高质量的视讯结果。
图一:利用多个异质硬件与软件元件来建置支持美化功能的视讯录像应用程序。
CPU还可用来决定脸部哪里些部位的肤色,然后GPU会利用双线性过滤器来使这些纹理变得更为平滑,并移除斑点和皱纹等假影(artefact),同时保留脸部轮廓的锐利度。
转换过的影像序列会被同时输出到硬件编码器以及显示的子系统,前者是用来录制到硬盘,而后者是在预览视窗中进行渲染。若要额外的最佳化处理,CPU 会指示硬件编码器以比背景还高的逼真度来编码脸部的多个座标,便能同时最佳化视讯质量与档案大小。在此案例中,至少会有5个不同的硬件元件需存取存储器中的影像资料。
存储器带宽的限制
许多SoC的一个重要特性是具备单一的统一系统存储器,象是芯片外部的DDR DRAM,而此外部存储器会被所有硬件元件所共享。这些元件通常会利用一个共享的汇流排或互连架构与其它的元件和存储器进行通讯,而此汇流排和互连架构的带宽由于考虑建置面积和成本,通常是非常有限的。
图二:行动嵌入式SoC的存储器带宽较桌上型计算机低了许多。
与配备PCI Express汇流排的桌上型计算机等级的装置相比,SoC的带宽通常会少了10倍,这是常见的效能瓶颈 ─ 在多个硬件元件都想要同时存取存储器和其它I/O的案例中更是如此。
此外,当应用程序将资料的所有权在不同的硬件元件间传递时,底层的操作系统会在存储器中产生重复的资料复本。在某些案例下,这可能是由于硬件的限制所造成,例如,GPU必须存取CPU配置在虚拟存储器中的资料,而此虚拟存储器是CPU可任意在硬盘中编页的空间。
在其它的案例中,这可能是与影像格式有关;例如,ISP是以YUV格式来产生影像传感器资料,但是CPU或GPU需要在RGB色彩空间中过滤此资料。
相反地,有些操作系统象是Android,能在将资料提供给开发人员之前自动把影像从YUV格式转换到RGB格式(例如:OGLES_TEXTURE_2D纹理);对许多仅需要处理影像亮度资料的视觉算法来说,这会降低它们的效率。当以视讯速率处理高分辨率影像资料时,这些幕后资料复本所导致的效率低落会变得更为严重。
为了解决这些问题,并协助开发人员开发高效能、低功耗的异质运算应用程序,Imagination已发表了专为SoC设计人员、OEM业者与开发人员所提供的影像架构。本文中所讨论的特性在OpenCL驱动程序中都能完整支持,而目前市场上多款的行动平台均已内建了OpenCL驱动程序。
Imagination的PowerVR影像架构能让开发人员利用精致的影像资料操作来打造各种新的使用者体验,从智能视觉系统、到扩增实境应用以及虚拟人物建立等等。设计人员可发挥无穷的创造力,唯一的限制只在于手机的处理能力了!
全部0条评论
快来发表一下你的评论吧 !