大家好、
我有一个捕获到的图像、需要在 DM36x 上进行去交叉处理。
我从这里的先前文章(E2E)中了解到、已经为 DM36x 开发了硬件加速算法、但该算法并未随 DVSDK 一起分发、必须通过本地 TI FAE 获取。 我已经联系了我们当地的 TI FAE (Ian Hunter)、他建议我提出一个新问题、以便获得访问此算法的批准。
我使用的是 DVSDK 版本4.02.00.06。
谢谢、
Martin
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.
大家好、
我有一个捕获到的图像、需要在 DM36x 上进行去交叉处理。
我从这里的先前文章(E2E)中了解到、已经为 DM36x 开发了硬件加速算法、但该算法并未随 DVSDK 一起分发、必须通过本地 TI FAE 获取。 我已经联系了我们当地的 TI FAE (Ian Hunter)、他建议我提出一个新问题、以便获得访问此算法的批准。
我使用的是 DVSDK 版本4.02.00.06。
谢谢、
Martin
尊敬的 Martin:
[引用 USER="Martins1980]]我从这里的前几篇文章(E2E)中了解到、已经为 DM36x 开发了一种硬件加速算法、但该算法不随 DVSDK 一起发布、必须通过本地 TI FAE 获得。 我已经联系了我们当地的 TI FAE (Ian Hunter)、他建议我提出一个新问题、以便获得访问此算法的批准。
如您所回答。 一旦您获得了 DeInterlacer、我们可以关闭它吗?
尊敬的 Martin:
[引用用户="Martin1980"] Ian Hunter (当地 FAE -英国北安普敦)建议您无权授权向我发布软件、因此他无法将其交付给我们!!![/引用]
是的、我不是授权人员、可以向您共享此软件。
[引用用户="Martin1980"]我是否可以通过其他方式获得此软件的保留?![/引用]
通常的步骤是、您的 FAE 应向您提供。 如果他无法访问该文件、他应在 TI 内部进行检查并为您获取该文件。 在您的案例 中
Martin1980 说:Ian Hunter (本地 FAE -英国北安普敦)[/quot]应向您提供该软件包。
尊敬的 Martin:
[引用 user="Martin1980]1)如何判断我提供了哪个版本? 这些文件位于一个名为 dei-1.9.zip 的 zip 文件中、但我无法在其中找到任何明确告诉我它的版本。 我想知道版本的原因是为了确保我们拥有最新的工作代码/algo。
您获得的版本可能是1.9。 为此、您还可以参阅版本说明。 它应该为您提供您正在使用的版本。
[引用 user="Martin1980]2)运行 alogirthm 时,它在使用1个[其他] H264ENC 实例对 H.264视频进行编码的应用程序中运行,使用1个 JPEGENC 实例将帧编码为 JPEG。 我将编解码器和算法都放在同一个暂存组中、并使用互斥量来保护(创建、删除、控制和处理)对算法/编解码器的调用。 deinterlacer 的结果为-1、扩展错误值为0x8000、没有明显的原因。 我使用了算法提供的 testBench 代码作为驱动它的示例。[/quot]
当两个编解码器都位于同一组 ID 中时、H264编码器+ JPEG 编码器+ DEI 应该可以正常工作。 我没有 DEI 的源代码。 使用指南显示0x8000致命错误。 您能不能尝试在 h264编码器参数中设置 enableDDRbuff = 1;还要确保 将 XDM_YUV_420SP 馈送到 h264编码器。 h264编码器不支持其他格式。
由于我没有 DEI 的来源,我不确定您是如何构建测试台的! 您可能会检查 rules.make 中的路径。 也可能需要编辑 config.bld。3)我也无法编译测试台:
如果使用 DVSDK 软件包构建测试 台、您也应该能够编译测试台。 您能否检查差异?
Prashanth、您好!
感谢您的回复。
我询问版本编号的原因是 zip 文件被称为1.9、test台式 机文件夹中的 README.TXT 讨论解压缩版本1.8、并且我可以在库中找到的唯一版本号-类似-字符串是1.0.0 -向导文件、 通常包含版本号的版本号中只包含"version"一词。 我在这里阅读了几篇文章(E2E)、其中较旧版本(早于1.9)导致-1、从算法返回0x8000、只需更新编解码器即可将其修复。
我在 zip 文件中找不到任何发行说明。
我已经启用了 enableDDRBuff = 1。 实际上、这里是我的 H.264参数设置(请注意、我使用 Capture (包括 Deinterlacer)之间的调整器在422和420SP 之间进行转换、以馈入 H.264和 JPEG 编码器-所有这些都在介绍 DEI 之前工作):
/*创建算法实例所需参数的初始化*/
params.videncParams.size = sizeof (IH264VENC_Params);
Params.videncParams.encodingPreset = XDM_HIGH_SPEED;
Params.videncParams.rateControlPreset = IVIDEO_LOW_DELAY;
Params.videncParams.reconchromaFormat = XDM_Chroma_NA;
Params.videncParams.maxInterFrameInterval = 0;
Params.videncParams.dataEndeals= XDM_BYTE;
params.videncParams.inputChromaFormat = XDM_YUV_420SP;
params.videncParams.inputContentType = IVIDEO_Progressive;
Params.videncParams.maxBitRate = output_bit_RATE _MAX;
Params.videncParams.maxFrameRate =(int) output_frame_rate_MAX * 1000;
params.videncParams.maxHeight =*argsp->高度;
params.videncParams.maxWidth =*argsp->width;
/*扩展类参数*/
params.enableVUIparams=1;
params.encQuality = 3;
params.meAlgo = 1;
params.enableDDRbuff = 1;
/*动态/运行时参数*/
dynParams.videncDynamicParams.size = sizeof (IH264VENC_DynamicParams);
dynParams.videncDynamicParams.captureWidth = Roundupd(*argsp->width,32);
dynParams.videncDynamicParams.forceFrame = IVIDEO_NA_FRAME;
dynParams.videncDynamicParams.generateHeader = XDM_encode_AU;
dynParams.videncDynamicParams.inputWidth =*argsp->width;
dynParams.videncDynamicParams.inputHeight =*argsp->height;
dynParams.videncDynamicParams.interFrameInterval = 0;
dynParams.videncDynamicParams.intraFrameInterval =*argsp->GOP;
dynParams.videncDynamicParams.mbDataFlag = 0;
dynParams.videncDynamicParams.refFrameRate =(* argsp->fps)* 1000;
dynParams.videncDynamicParams.targetBitRate = argsp->bitrate;
dynParams.videncDynamicParams.targetFrameRate =(* argsp->fps)* 1000;
/*扩展类参数*/
dynParams.CVBRminbitrate = output_bit_rate;
dynParams.CVBRsensitivity = dynParams.videncDynamicParams.targetBitRate;
dynParams.VUI_Buffer =&vui_params;
dynParams.enablePicTimSEI=1;
dynParams.idrFrameInterval =*argsp->IDR_INTERVAL;
dynParams.resetHDVICPeveryFrame = 1;
以下是我的 DEI 参数:
/*设置 deinterlacer 的基本参数*/
memset (dei_params、0、sizeof (IDEI_Params));
DEI_params.videncParams.size = sizeof (IDEI_Params);
dei_params.videncParams.inputChromaFormat = XDM_YUV_422ILE;
DEI_params.videncParams.maxHeight =*argsp->input_height;
DEI_params.videncParams.maxWidth =*argsp->input_line_length;
/*设置 deinterlacer 的扩展参数*/
DEI_params.subWindowHeight =*argsp->input_height;
DEI_params.subWindowWidth =* argsp->input_width;
DEI_params.outputFormat = XDM_YUV_422ILE;
DEI_params.threshold = 5;
DEI_params.q_num = 1;
DEI_params.askIMCOPRes=0;
DEI_params.sysBaseAddr = dm365mm_mmap (REG_base_ADDR、REG_base_size);
/*设置 deinterlacer 的动态参数- GETBUFINFO*/不需要使用
memset (.di_dyn_params、0、sizeof (IDEI_DynamicParams));
DEI_dyn_params.videncDynamicParams.size = sizeof (IDEI_DynamicParams);
dei_dyn_params.videncDynamicParams.captureWidth =*argsp->input_line_length;
dei_dyn_params.videncDynamicParams.inputHeight =*argsp->input_height;
dei_dyn_params.videncDynamicParams.inputWidth =*argsp->input_width;
下面是 JPEG 编码器的参数:
/*创建算法实例所需参数的初始化*/
params.imgencParams.size = sizeof (IJPEGENC_Params);
params.imgencParams.maxWidth = Roundup (* argsp->width、frame_width_MEM_align);
params.imgencParams.maxHeight = Roundup (* argsp->height、frame_height_MEM_align);
Params.imgencParams.forceChromaFormat = XDM_YUV_422P;
Params.imgencParams.dataEndeals= XDM_BYTE;
Params.imgencParams.maxScans = XDM_DEFAULT;
params.halfBufCB =空;
params.halfBucBarg =空;
/*动态/运行时参数*/
dyn_params.imgencDynamicParams.size = sizeof (IJPEGENC_DynamicParams);
dyn_params.imgencDynamicParams.inputWidth =*argsp->width;
dyn_params.imgencDynamicParams.inputHeight =*argsp->height;
dyn_params.imgencDynamicParams.captureWidth = params.imgencParams.maxWidth;
dyn_params.imgencDynamicParams.inputChromaFormat = XDM_YUV_420SP;
dyn_params.imgencDynamicParams.generateHeader = XDM_encode_AU;
dyn_params.imgencDynamicParams.numAU = XDM_DEFAULT;
dyn_params.imgencDynamicParams.qValue =*argsp->jpeg;
dyn_params.rotation =* argsp-> rotation;
dyn_params.rstInterval = 84;
dyn_params.disableEOI = 0;
dyn_params.customQ =空;
这是我的引擎配置:
utils.importFile ("../../app_common.cfg);
utils.importFile ("../../fc_common.cfg);
var VICPSYNC = xdc.useModule('ti.sdo.fc.vicpsync.VICPSYNC');
var HDVICPPSYNC = xdc.useModule('ti.sdo.fc.hdvicpsync.HDVICPSYNC');
var MEMUTILs = xdc.useModule('ti.sdo.fc.memutils.MEMUTILS');
var EDMA3 = xdc.useModule('ti.sdo.fc.edma3.Settings');
EDMA3.maxvar
var var = 128;var HDVACE = xdc.useModule('ti.sdo.fc.ires.hdvicp.HDVICP'); xdc.useModule('ti.sdo.linuxutils.edma.EDMA');
xdc.useModule('ti.sdo.fc.ires.memtcm.MEMTCM'); var VICP = var EDMA3 = xdc.useModule('ti.sdo.fc.ires.vicp.VICP2'); xdc.useModule('ti.sdo.fc.ires.addrspace.ADDRSPACE');= xdc.useModule('ti.sdo.fc.ires.edma3chan.EDMA3CHAN'); EDMA3 = xdc.useModule('ti.sdo.linuxutils.cmem.CMEM'); var EDMACs =。var EDMACs =。var EDMAICP =
MEMTCM.cmemBlockId = 1;
/*
=== 引擎配置====
//
var jpeg 编码器= xdc.useModule('ti.sdo.codecs.jpegenc.ce.JPEGENC');
var h264_encoder = xdc.useModule('ti.sdo.codecs.h264enc.ce.H264ENC');
var h264_encoder_dei = xdc.useModule('ti.sdo.codecs.dei.ce.DEI');
var Engine = xdc.useModule('ti.sdo.ce.Engine');
var myEngine = Engine.create ("CodecEngine"、[
{name:"jpegen"、mod:JPEG_encoder、local:true、groupId:0}、
{name:"h264enc"、mod:h264_encoder、local:true、groupId:0}、
{name:"h264enc_dei"、mod:h264_encoder_dei、local:true、groupId:0}、
]);
我觉得问题可能与 JPEG 编码器有关...?
噢、我现在已经设法让 testBench 立即编译(需要一些 Makefile 修改和 libpng……)
此致、
Martin
尊敬的 Martin:
是否可以尝试将 MJPEG 的组 ID 更改为1。
DEI 可以与 H.264并行运行、但不能与 MJPEG 并行运行。 这是因为它们都共享资源。 此外,如果必须将 MJPEG 与 DEI 一起使用(即使是按顺序),则必须 设置 askImCopRes = 0并在应用程序中使用信标,以便 DEI 和 MJPEG 的 VIDENC1_PROCESS()相互排斥。
DEI 文档对此进行了说明。
请浏览此主题。 e2e.ti.com/.../31516
Prashanth、
好的、我毫无疑问收到了发送的消息、但是 FAE 自己说他不知道他是给我发送什么...
这里是我的库中的 MD5SUM -有工作的 DEI 的人能比较吗?
1c075a5d4edd5691626640ffbb284f96 libdee.a
925c8485b327261811975775af2314ae libalgfw.a
7bb0446d3a9e4d856a968aefeaadc51d libimx.a
Martin、
按照这个 e2e 线程、 e2e.ti.com/.../450058
您能否请您的 FAE 联系 Anshuman Saxena 和/或 Anand Kulkarni。 应提供最新的 DEI 下载链接。 您也可以询问 md5sum 并在得到它们后进行检查。 希望这对您有所帮助!
最新推出的版本是2012年10月发布的2.0.0。