This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/LINUXDVSDK-DM36x:DM368 dvsdk4.02.00.06视频和图像编码器同时运行?

Guru**** 2618835 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/579284/linux-linuxdvsdk-dm36x-dm368-dvsdk4-02-00-06-video-and-image-encoder-at-the-same-time

器件型号:LINUXDVSDK-DM36x

工具/软件:Linux

大家好、我正在使用 dvsdk4.02.00.06来开发我的 dm368 board.no、我想同时使用 h264编码器和 jpeg 图像编码器。但我遇到了一些错误。只需使用 h264编码器或 jpeg 图像编码器独立工作就更好了。

错误如下所示:

1. TI.sdo.ce.ALG.Algorithm - Algorithm_create>通过 RMAN 分配 ALG 资源失败(0x7)。

2. cv - VISA _ create2>无法创建本地编解码器。

TI.sdo.ce.image1.IMGENC1 - IMGENC_CREATE >返回(0x0)
 TI.sdo.dmai -[Ienc1]无法打开成像编码算法
无法创建图像编码器:jpegenc

我的 cfg 如下所示:

/*加载对编解码器引擎 OSAL 的支持*/

VAR osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');

osalGlobal.runtimeEnv = osalGlobal. linux;

/*加载对'DAVINGI Multimedia Application Interface'模块的支持*/

VAR DMAI = XDC.loadPackage ("ti.sdo.dmai");

环境['xdc.cfg.check.fatal']='fals';

VAR RMAN = xdc.useModule('ti.sdo.fc.rman.RMAN');

RMAN.useDSKT2 = false;

RMAN.persistentAllocFxn ="_ALG_LOLOADMemory";

RMAN.persistentFreeFxn ="_ALG_FREEMemory ";

RMAN.semCreateFxn ="Sem_create";

RMAN.semDeleteFxn ="sem_delete ";

RMAN.semPendFxn ="Sem_pend";

RMAN.semPostFxn ="Sem_post;

RMAN.tableSize = 10;

VAR EDMA3 = xdc.useModule('ti.sdo.fc.edma3.Settings');
EDMA3.maxRequests = 128;

VAR VICP = xdc.useModule('ti.sdo.linuxutils.vicp.VICP');

VAR HDVICP = xdc.useModule('ti.sdo.fc.ires.hdvicp.HDVICP');

VAR VICP2 = xdc.useModule('ti.sdo.fc.ires.vicp.VICP2');

VAR VICPSYNC = xdc.useModule('ti.sdo.fc.vicpsync.VICPSYNC');

VAR HDVICPSYNC = xdc.useModule('ti.sdo.fc.hdvicpsync.HDVICPSYNC');

VAR MEMUTILLS= xdc.useModule('ti.sdo.fc.memutils.MEMUTILS');

VAR ADDRSPACE = xdc.useModule('ti.sdo.fc.ires.addrspace.ADDRSPACE');

VAR EDMA3CHAN = xdc.useModule('ti.sdo.fc.ires.edma3chan.EDMA3CHAN');

VAR EDMA = xdc.useModule('ti.sdo.linuxutils.edma.EDMA');

VAR CMEM = xdc.useModule('ti.sdo.linuxutils.cmem.CMEM');

VAR MEMTCM = xdc.useModule('ti.sdo.fc.ires.memtcm.MEMTCM');

MEMTCM.cmemBlockId = 1;//因为我们在 insmod 命令中使用_1。

xdc.loadPackage ("ti.sdo.ce.video");

xdc.loadPackage ("ti.sdo.fc.hdvicpsync");

/*

 * ==== 引擎配置====

 *

VAR MPEG4ENC = xdc.useModule('ti.sdo.codecs.mpeg4enc.ce.MPEG4ENC');

VAR H264ENC = xdc.useModule('ti.sdo.codecs.h264enc.ce.H264ENC');

VAR MPEG2ENC = xdc.useModule('ti.sdo.codecs.mpeg2enc.ce.MPEG2ENC');

VAR G711ENC = xdc.useModule('ti.sdo.ce.examples.codecs.g711.G711ENC');

VAR AACENC = xdc.useModule('ittiam.codecs.aaclc_enc.ce.AACLC_ENC');
VAR JPEGENC = xdc.useModule('ti.sdo.codecs.jpegenc.ce.JPEGENC');

VAR Engine = xdc.useModule('ti.sdo.ce.Engine');

VAR myEngine = Engine.create ("编码"、[

   {name:"mpeg4en"、mod:MPEG4ENC、local:true、groupId:1}、

   {name:"h264enc"、mod:h264ENC、local:true、groupId:1}、

   {name:"mpeg2enc"、mod:MPEG2ENC、local:true、groupId:1}、
   {name:"jpegen"、mod:JPEGENC、local:true、groupId:2}、

   {name:"g711enC"、mod:g711ENC、local:true}、

   {name:"aacenc、mod:AACENC、local:true}、

]]);

/*

 *在运行 AAC 编码器时打开高速缓存以实现更好的性能。

 *其余编解码器不受影响。

 *

AACENC.useCache = true;

/*

xdc.loadPackage ('ti.sdo .fc.ires.vicp').profile ="Debug_trace";

xdc.loadPackage ('ti.sdo .fc.ires.edma3chan').profile ="Debug_trace";

xdc.loadPackage ('ti.sdo .fc.RMAN').profile ="Debug_trace";

xdc.loadPackage ('ti.sdo .fc.edma3').profile ="Debug_trace";

EDMA3CHA.TRACE = true;

EDMA3CHAN.debug = true;

*

program.main =空;

是否有人给我一些建议?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jery、

    H.264编码器和 JPEG 编码器在两种不同的硬件引擎上运行。 但它们共享相同的资源、例如 EDMA 通道和一些存储器。 因此、您可能必须按顺序运行它。

    但是、如果您想并行运行它们、

    1.使用不同的暂存组 ID。  对于 H.264编码器、暂存组 ID = 1;对于.cfg 文件中的 JPEG、暂存组 ID = 2

    2.释放少量 EDMA 通道。  

    3.在 h264中设置 enableDDRbuff = 1

    希望您使用的是最新的编解码器。 推荐升级到最新版本: software-dl.ti.com/.../index_FDS.html

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢