首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
通过开源API进行DSP视频处理
来源:本站整理  作者:佚名  2011-09-21 18:48:04



缓冲器创建

  基于DaVinci技术的DM644x器件上ARM926的MMU(存储器管理单元)具有虚拟/物理寻址能力。然而,C64x+DSP内核只能够处理物理地址。因此,用于DSP处理的输入和输出缓冲器必须驻存在物理上连续的存储器中。

  虚拟到物理地址的转换由编解码引擎处理。通过复用(指针指向)某些由驱动器分配的缓冲器,可获得物理上连续的存储器,这里使用了Linux中的一些技术,比如DMA_alLOC_coherent(),来在内核空间中分配这类存储器。由TI开发的库/内核模块CMEM,允许从用户空间应用来分配物理上连续的存储器。

  例如,我们利用前面提到的CMEM驱动器来分配物理上连续的“输出”缓冲器。编解码引擎对帧进行解码,并把解码后的帧放在输出缓冲器中。

  接下来,指向输出缓冲器的指针被传递给fbvideosink(通过 GstBuffer)。这个videosink必须把解码后的数据mEMCpy(复制)到帧缓存中,然后才能显示。由于mEMCpy操作是一种成本很高的GPP使用,这种方法使得ARM 和DDR接口的负载很重,因而增加了功耗,且效率极低。

  这种技术对非常小的缓冲器是可行的,但在开发人员使用D1(和更高)大小的缓冲器时,将开始降低系统性能。一种更有效的方案是复用已经驱动器分配了的物理连续缓冲器,并在编解码器引擎和videosink插件之间把指向这些缓冲器的指针来回传递。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:127,242.20000 毫秒