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.

[参考译文] TDA2EXEVM:编码器强制 NAL 单元

Guru**** 2554390 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/612202/tda2exevm-encoder-force-nal-unit

器件型号:TDA2EXEVM

你(们)好

我使用的是 VISION SDK 2.12版。  我正在尝试捕获并编码为 h264位流。 我需要在每个 I 帧中使用 NAL 单元、但编码器在序列开始时提供。 如何强制编码器在每个 I 帧上设置 NAL 单元。

我尝试使用"staticParams->nalUnitControlParams.naluPresentMaskIntraPicture 值 0x2102

"ENCLINK_H264_SETNALU_MASK_SPS(staticParams->nalUnitControlParams.naluPresentMaskIntraPicture);
ENCLINK_H264_SETNALU_MASK_PPS (静态参数->nalUnitControlParams.naluPresentMaskIntraPicture);
ENCLINK_H264_SETNALU_MASK_SEI (staticParams->nalUnitControlParams.naluPresentMaskIntraPicture);"

有什么建议吗?

此致、

Raja Sekar M

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

    我已将您的问题转交给 VisonSDK 专家进行评论。

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

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

    您是否希望输出所有帧都是 IDR 帧?

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

    请在下面找到 H264编码器配置、以便仅输出 IDR 帧。

          createStaticPrm->格式         = IVIDEO_H264HP;
          createStaticPrm->配置文件         = 100;
          createStaticPrm->dataLayout       = field_sarated;
          createStaticPrm->fieldMergeEncodeEnable = false;
          createStaticPrm->enableAnalyticinfo  = 0;
          createStaticPrm->enableWaterMarking  = 0;
          createStaticPrm->maxBitRate       =-1;
          createStaticPrm->EncodingPreset     = XDM_USER_defined;
          createStaticPrm->rateControlPreset   = IVIDEO_LOW_DELAY;
          createStaticPrm->enableHighSpeed    = false;
          createStaticPrm->enableSVCExtensionFlag = false;
          createStaticPrm->numTemporalLayer   = 0;
          createStaticPrm->overrideInputScanForm=0;
          createStaticPrm->fieldPicEncode     = 0;
          createStaticPrm->IDRFrameInterval   = 30;

          createDynamicPrm->IntraFrameInterval  = 1;
          createDynamicPrm->targetBitRate     =10*1000*1000;
          createDynamicPrm->InterFrameInterval  = 1;
          createDynamicPrm->mvAccuracy       = IVIDENC2_MOTIONVECTOR_QUARTERPEEL;
          createDynamicPrm->inputFrameRate    = 30;
          createDynamicPrm->rcAlg         = 0;
          createDynamicPrm->qpMin         = 0;
          createDynamicPrm->qpMax         = 51;
          createDynamicPrm->qpInit         = 25;
          createDynamicPrm->vbrDuration      = 8;
          createDynamicPrm->vbrSensitivity    = 0;
          createDynamicPrm->maxPicSizeRatioI   = 1;


    此致、Shiju

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

    我尝试使用上述设置、但仍然有相同的问题。 我想控制此参数"IDRFrameInterval"。

    有什么建议吗?

    此致、
    Raja Sekar M
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我在 VSDK3.0基础上对此进行了评估、VSDK3.0仍然不支持将这些参数导出到应用层。 您可能需要在 encLink_h264.c 文件中硬编码这些值

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

    当将"encodingPreset"设置为"XDM_USER_defined"时、收到以下错误、

    [主机][IPU2] 30.705209 s:捕获:正在开始!!!
    [主机][IPU2] 30.708930 s:捕获:开始完成!!!
    [主机][IPU2] 30.769169 s:编码:调试 Enclink_H264编码帧 outArgs->videnc2OutArgs.encodedFrameType =-1
    [主机][IPU2] 30.769291 s:编码:错误:ALGPROCESS 失败(STATUS=0xffffffff)!!!
    [主机][IPU2] 30.769383 s:编码:Enclink_h264编码帧.Status[-1]中的错误
    [主机][IPU2] 30.769596:编码:调试 Enclink_H264EncodedFrame outArgs->videnc2OutArgs.encodedFrameType =-1
    [主机][IPU2] 30.769779 s:编码:错误:ALGPROCESS 失败(STATUS=0xffffffff)!!!
    [主机][IPU2] 30.769871 s:编码:Enclink_h264EncodeFrame.Status[-1]中的错误
    [主机][IPU2] 30.789239 s:编码:调试 Enclink_H264编码帧 outArgs->videnc2OutArgs.encodedFrameType =-1
    [主机][IPU2] 30.789361 s:编码:错误:ALGPROCESS 失败(status = 0xffffffff)!!!

    有什么建议吗?

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

    是否有适用于 h264编解码器的任何文档/链接?

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

    你(们)好

    是的、请找到用户指南 unde \ti_componences\codecs\ivahd_h264enc_02_00_09_01_production \packages/ti\sdocs\h264enc\docs

    此致、Shiju

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

    您能就上述问题提出建议吗?

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

    下面是当"encodingPreset"设置为"XDM_USER_Defined"时的错误消息,所有通道都会发生相同的错误(0,1&2)

    [主机][IPU2] 30.456475 s:编码:创建1280 x 720的 CH2,间距=(1280、1280)[1][0],比特率= 1048 Kbps ...
    [主机][IPU2] 30.529219 s:编码:CH2:H264EncCreated:H264ENC_TI dev.500.V.H264AVC .EIVAHD.02.00.09.01
    [主机][IPU2] 30.529768 s:编码:错误:ALGCONTROL 失败 CMD=0x00000001 (STATUS=ffFFFF)!!!
    [主机][IPU2] 30.529890 s:链路 ERR::LinkID:9000044::通道 ID:2:::错误代码:-5:::文件名:links_IPU/IVA/IVA_enc/ence_h264.c::linuNum:1145:::errorCondition:(algStatus = XDM_eok)
    [主机][IPU2] 30.530134 s:编码:错误:ALGCONTROL Failed CMD=0x00000000 (status=ffFFFF)!!!
    [主机][IPU2] 30.530256 s:
    [主机][IPU2] 30.537546 s:编码:错误:ALGCONTROL 失败 CMD=0x00000005 (STATUS=FFFFFF)!!!
    [主机][IPU2] 30.537668 s:LINK ERR::LinkID:9000044::通道 ID:2:::错误代码:-8:::文件名:LINK_IPU/IVA/IVA_enc/ence_h264.c::LINUNum:1163::::errorCondition:(algStatus = XDM_eok)
    [主机][IPU2] 30.537851 s:编码:所有通道创建... 完成了!!!
    [主机][IPU2] 30.539132 s:编码:创建... 完成了!!!

    有什么建议吗?

    此致、
    Raja Sekar M.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    请在下面找到 H264编码器配置、以便仅输出 IDR 帧。

    createStaticPrm->格式 = IVIDEO_H264HP;
    createStaticPrm->配置文件 = 100;
    createStaticPrm->dataLayout = field_sarated;
    createStaticPrm->fieldMergeEncodeEnable = false;
    createStaticPrm->enableAnalyticinfo = 0;
    createStaticPrm->enableWaterMarking = 0;
    createStaticPrm->maxBitRate =-1;
    createStaticPrm->EncodingPreset = XDM_USER_defined;
    createStaticPrm->rateControlPreset = IVIDEO_LOW_DELAY;
    createStaticPrm->enableHighSpeed =错误;
    createStaticPrm->enableSVCExtensionFlag = false;
    createStaticPrm->numTemporalLayer = 0;
    createStaticPrm->overrideInputScanForm=0;
    createStaticPrm->fieldPicEncode = 0;
    createStaticPrm->IDRFrameInterval = 30;

    createDynamicPrm->IntraFrameInterval = 1;
    createDynamicPrm->targetBitRate =10*1000*1000;
    createDynamicPrm->InterFrameInterval = 1;
    createDynamicPrm->mvAccuracy = IVIDENC2_MOTIONVECTOR_QUARTERPEEL;
    createDynamicPrm->inputFrameRate = 30;
    createDynamicPrm->rcAlg = 0;
    createDynamicPrm->qpMin = 0;
    createDynamicPrm->qpMax = 51;
    createDynamicPrm->qpInit = 25;
    createDynamicPrm->vbrDuration = 8;
    createDynamicPrm->vbrSensitivity = 0;
    createDynamicPrm->maxPicSizeRatioI = 1;


    此致、Shiju