ZHCAB26 September   2020 DRA710 , DRA712 , DRA714 , DRA716 , DRA718 , DRA722 , DRA724 , DRA725 , DRA726 , DRA745 , DRA746 , DRA74P , DRA750 , DRA756 , DRA75P , DRA76P , DRA77P , DRA780 , DRA781 , DRA782 , DRA783 , DRA785 , DRA786 , DRA787 , DRA788 , DRA790 , DRA791 , DRA793 , DRA797 , TDA2EG-17 , TDA2HF , TDA2HG , TDA2HV , TDA2LF , TDA2P-ABZ , TDA2P-ACD , TDA2SA , TDA2SG , TDA2SX

 

  1.   商标
  2. 1当前用例中的 IVA-HD 共享问题
  3. 2IVA-HD 共享设计
  4. 3IVA-HD 共享实现
    1. 3.1 启动流程
    2. 3.2 uboot 中的 IVA-HD DPLL 配置
    3. 3.3 配置 IPU 以同时支持 IPUMM 和解码链接
    4. 3.4 IVA-HD 配置
      1. 3.4.1 编解码器引擎和 IPUMM 设置
      2. 3.4.2 框架组件
      3. 3.4.3 编解码器
      4. 3.4.4 IVA-HD 启动参数
    5. 3.5 RPMSG 启动
  5. 4早期解码演示
  6. 5参考文献

当前用例中的 IVA-HD 共享问题

越来越多的客户考虑使用在单个 Jacinto/TDA 中支持信息娱乐功能以及 RVC 或动画的系统。最近,需要实时解码 H264 流的系统引入了基于以太网的 RVC,同时,部分客户要求播放带有启动动画的标识视频。

只有 Jacinto/TDA 具有 IVA-HD 硬件实例,因此使用两种不同的软件框架和编解码器驱动器来控制 IVA-HD,但这会发生资源冲突。

GUID-20200825-CA0I-LR3P-TWBN-8BLBM7K9D1LR-low.gif图 1-1 在 VISION SDK 和 PSDKLA 之间共享 IVA-HD 问题

假设有一个支持这些功能的系统,如图 1-1 所示:

  • 用例 A:动画或 RVC

    考虑到快速启动的要求,大多数客户选择 VISION SDK 框架来开发 RVC 或动画。具有链接和链概念的 VISION SDK 设计用于实现任何用例。

    当视频数据(通常为 h264)通过 NullSource 链接从引导分区读取为视频文件或从以太网帧中提取为原始流时,NullSource 链接或 Autosar 链接会将这些流发送到解码链接进行解码。如图 1-2 所示,解码链接会通过 VISION SDK 编解码器(它位于 M4 内核中,用于配置 IVA-HD 硬件模块来实现解码)调用驱动器,然后将解码帧发送到下一个链接。

    GUID-20200825-CA0I-B0M6-L0BV-L7JTN59LNF6N-low.gif图 1-2 VISION SDK 编解码器
  • 用例 B:多媒体播放器

    默认情况下,TI PSDKLA 将开源 gstreamer 框架用于任何多媒体播放器用例。TI 提供了 gstreamer 插件:ducatiH264 和 ducaitiMJPEG。这些插件可以在 gstreamer 流水线中工作,以处理多媒体文件。如图 1-3 所示,gstreamer 会调用 ducatiH264 插件,以在 M4 内核上配置 IPUMM(编解码器),从而与 IVAHD 进行通信来解码 H.264 帧。解码插件会调用位于 M4 内核上的 TI IPUMM 驱动器,从而控制 IVA-HD 硬件模块,以实现解码/编码。然后,将帧发送到下一个插件。

    GUID-20200825-CA0I-W52S-N0KW-9R2XRQMDPKLF-low.gif图 1-3 PSDKLA 编解码器

    如果 A 和 B 用例同时发生,则将有一个用例失败,因为单个 IVA-HD 硬件实例无法同时由 M4 上的解码链接和 IPUMM 控制。实际上,同时需要 M4 具有解码链接和 IPUMM 支持功能以在 A15 上解码的任何用例都将失败。