【问题标题】:Porting PC video codec onto mobile environments?将 PC 视频编解码器移植到移动环境中?
【发布时间】:2009-07-22 14:52:53
【问题描述】:

我的任务是将编写为在 PC 上执行的视频编解码器移植到移动平台(在我的例子中为 OMAP3430 MDK)。虽然我的问题与特定平台或语言无关。

我要求在将编解码器移植到移动平台时牢记具体的线索/想法。 PC和移动环境的主要区别是什么。移动平台的常见瓶颈是什么?

如果您能参考与此类任务相关的学术出版物,我也将不胜感激。

【问题讨论】:

    标签: mobile embedded codec omap


    【解决方案1】:

    如果您要移植的只是一个编解码器,那么您就有了一个非常明确的任务,但范围有限 - 您正在处理的代码可以被很好地包含在对操作系统特性的依赖相对较少的情况下。

    您想提前了解的内容包括:

    • 您的编解码器是否需要浮点单元?你的目标平台有吗?
    • 您的编解码器是否针对英特尔指令集进行了高度优化?它是否包括汇编语言例程? MMX代码?上证所?如果是这样,您是否可以使用执行相同功能的 C 例程来构建它,只是为了开始,还是必须从头开始编写它们?
    • 目标平台是位字节序还是小字节序?您移植的代码可以同时处理这两种情况吗?

    【讨论】:

    • 实际上我拥有的代码不是特定于任何平台的。它可以很容易地在 Windows、Linux(PC 和 OMAP)下编译和运行。我主要关心的是性能,因为当代码在没有任何更改的情况下编译时对于 OMAP 来说它变得太重了。
    • 你做过分析吗? “太重”到底有多重?它甚至可以实时运行吗?它需要快多少?
    • 是的,我做了 profiling,最苛刻的函数消耗了大约 8% 的总执行时间,所以我不指望会非常显着地减少执行时间。使用我使用的视频分辨率和 2 个视图,结果不幸的是不超过 1 fps。所以我想知道在为移动平台编程时是否有一个我错过的特殊点。是否有任何众所周知的瓶颈?什么样的操作在移动架构上消耗更多时间?
    • 这真的取决于你的目标架构。移动 CPU 的时钟速度往往低于台式机 CPU,计算资源更少(单核、无 FPU,可能没有矢量单元),因此对其进行优化可能是一个挑战。如果不了解您的特定 CPU 和代码的更多信息,很难提出一般性建议。您使用的是哪个编译器?你确定你已经在编译器中开启了所有相关的优化吗?您使用的代码是否基于众所周知的编解码器? (ffmpeg 或类似的东西)- 知道您要移植的编解码器可能会有所帮助。
    • 顺便说一下,如果这个 (support.logicpd.com/products/som/ti/omap3430) 是您的目标平台,我猜 CPU 的功能有点不足,您应该考虑使用 DSP 内核,这需要一些工作。
    【解决方案2】:

    根据分辨率和帧速率、实时要求以及实际需要的视频处理,您可能希望在 omap soc 的 DSP 处理器上实现编解码器。

    从标准 PC 应用程序移植到 TI DSP 可能是一项相当重要的任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 2014-03-06
      • 2015-12-23
      • 1970-01-01
      • 2020-04-30
      相关资源
      最近更新 更多