在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何設(shè)置I幀的QP提高I幀的質(zhì)量

劉芳 ? 來(lái)源:yfdsfqdqd ? 作者:yfdsfqdqd ? 2022-08-02 08:03 ? 次閱讀

介紹
在有些應(yīng)用中,發(fā)現(xiàn)I幀不夠大。MPSoC VCU CtrlSW可以設(shè)置每一幀的QP大小。因此,可以通過(guò)設(shè)置I幀的QP,提高I幀的大小,從而提高I幀的質(zhì)量。

代碼
下面是設(shè)置I幀的QP的示例代碼。

GOP長(zhǎng)度變量
在struct EncoderSink : IFrameSink的定義里添加GOP的成員變量,記錄GOP長(zhǎng)度。

#if USER_I_FRAME_QP
               // USER_I_FRAME_QP changes START 
               float uFrameRate = 0.0f;
               int uGopLength = 0; 
               // USER_I_FRAME_QP changes END 
			   
#endif  // USER_I_FRAME_QP

記錄GOP長(zhǎng)度
在EncoderSink 的EncoderSink函數(shù)設(shè)置GOP的變量的值。

    struct EncoderSink : IFrameSink
{
  EncoderSink(ConfigFile const& cfg, AL_IEncScheduler* pScheduler, AL_TAllocator* pAllocator
              ) :
    CmdFile(cfg.sCmdFileName, false),
    EncCmd(CmdFile.fp, cfg.RunInfo.iScnChgLookAhead, cfg.Settings.tChParam[0].tGopParam.uFreqLT),
    twoPassMngr(cfg.sTwoPassFileName, cfg.Settings.TwoPass, cfg.Settings.bEnableFirstPassSceneChangeDetection, cfg.Settings.tChParam[0].tGopParam.uGopLength,
                cfg.Settings.tChParam[0].tRCParam.uCPBSize / 90, cfg.Settings.tChParam[0].tRCParam.uInitialRemDelay / 90, cfg.MainInput.FileInfo.FrameRate),
    qpBuffers{cfg.Settings, cfg.RunInfo.eGenerateQpMode},
    pAllocator{pAllocator},
    pSettings{&cfg.Settings}
  {
 
#if USER_I_FRAME_QP
                 // USER_I_FRAME_QP changes STARTED ----------------------------------
                 uFrameRate = cfg.Settings.tChParam.tRCParam.uFrameRate;
                 uGopLength = cfg.Settings.tChParam.tGopParam.uGopLength;
                 // USER_I_FRAME_QP changes END --------------------------------------
#endif  // USER_I_FRAME_QP
 
    } 

設(shè)置QP
在EncoderSink 的ProcessFrame函數(shù)里,根據(jù)GOP長(zhǎng)度,確定每個(gè)GOP開(kāi)始的I幀。然后再設(shè)置QP的值。可以試試20-35之間的QP值。QP值是20時(shí),能帶來(lái)很好的圖像質(zhì)量。

void ProcessFrame(AL_TBuffer* Src) override
  {
    if(m_picCount == 0)
      m_StartTime = GetPerfTime();
 
    if(!Src)
    {
      LogVerbose("Flushing...\n\n");
 
      if(!AL_Encoder_Process(hEnc, nullptr, nullptr))
        throw std::runtime_error("Failed");
      return;
    }
 
    DisplayFrameStatus(m_picCount);
 
    if(twoPassMngr.iPass)
    {
      auto pPictureMetaTP = AL_TwoPassMngr_CreateAndAttachTwoPassMetaData(Src);
 
      if(twoPassMngr.iPass == 2)
        twoPassMngr.GetFrame(pPictureMetaTP);
    }
 
    AL_TBuffer* QpBuf = qpBuffers.getBuffer(m_picCount);
 
    std::shared_ptr QpBufShared(QpBuf, [&](AL_TBuffer* pBuf) { qpBuffers.releaseBuffer(pBuf); });
 
    if(pSettings->hRcPluginDmaContext != NULL)
      RCPlugin_SetNextFrameQP(pSettings, pAllocator);
 
#if   USER_I_FRAME_QP
    if( 0 == (m_picCount%uGopLength) )
    {
 
        AL_Encoder_SetQP(hEnc, 20 );
    }
#endif  // USER_I_FRAME_QP
 
    
    if(!AL_Encoder_Process(hEnc, Src, QpBuf))
      throw std::runtime_error("Failed");
 
    m_picCount++;
    m_picGopCount++;
  }

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4876

    瀏覽量

    69967
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    199

    瀏覽量

    24557
收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    如何在SJA1110中配置IEEE802.1CB復(fù)制和冗余消除 (FRER)?

    嗨,我如何在 SJA1110 中配置 IEEE802.1CB 復(fù)制和冗余消除 (FRER),我需要實(shí)施進(jìn)入端口 1 的數(shù)據(jù)的復(fù)制需要反映在端口 2 中,以及如何禁用進(jìn)入端口 1 的數(shù)據(jù)可以在端口
    發(fā)表于 03-26 08:02

    HarmonyOS應(yīng)用高負(fù)載場(chǎng)景分渲染

    ,可以采用分渲染技術(shù),將原本在一內(nèi)加載的數(shù)據(jù)分散到多中逐步加載,從而減輕單的渲染壓力。不過(guò),分渲染需要開(kāi)發(fā)者精確計(jì)算每
    的頭像 發(fā)表于 03-25 10:28 ?287次閱讀
    HarmonyOS應(yīng)用高負(fù)載場(chǎng)景分<b class='flag-5'>幀</b>渲染

    是否可以使用DMA和LPSPI的3字節(jié)大小?

    。如果我將大小配置為8位或32位、則傳輸工作正常、但我無(wú)法讓它工作于24位(AD5676 SPI DAC要求)。 當(dāng)我深入研究相關(guān)的 i.MX API 函數(shù)時(shí)[i
    發(fā)表于 03-17 06:47

    EtherCAT數(shù)據(jù)結(jié)構(gòu)解析

    物理層和常規(guī)的以太網(wǎng)卡,通過(guò)獨(dú)特的數(shù)據(jù)結(jié)構(gòu)和處理機(jī)制,實(shí)現(xiàn)了基于EtherNet的實(shí)時(shí)控制。本文將深入探討EtherCAT的數(shù)據(jù)結(jié)構(gòu),從的組成、子報(bào)文的結(jié)構(gòu)、工作計(jì)數(shù)器的功能到數(shù)據(jù)
    的頭像 發(fā)表于 02-02 17:42 ?797次閱讀

    基于Vector工具進(jìn)行CAN協(xié)議錯(cuò)誤的分析實(shí)踐

    廣播發(fā)送的短結(jié)構(gòu),還體現(xiàn)在其錯(cuò)誤檢測(cè)機(jī)制上。通過(guò)總線數(shù)據(jù)以及總線波形來(lái)分析總線故障時(shí),CAN協(xié)議錯(cuò)誤檢測(cè)機(jī)制中豐富的錯(cuò)誤類(lèi)型能讓定位問(wèn)題的效率更高。錯(cuò)誤是CA
    的頭像 發(fā)表于 01-15 10:03 ?371次閱讀
    基于Vector工具進(jìn)行CAN協(xié)議錯(cuò)誤<b class='flag-5'>幀</b>的分析實(shí)踐

    TVP5151是否是25的CVBS信號(hào)輸入,輸出是并口也是25,而不是50的?

    TVP5151這個(gè)芯片是否是25的CVBS信號(hào)(隔行掃描的)輸入,輸出是并口也是25,而不是50
    發(fā)表于 01-03 07:48

    CAN總線通信中的數(shù)據(jù)結(jié)構(gòu)解析

    CAN總線由Bosch公司在1980年代開(kāi)發(fā),旨在為汽車(chē)電子系統(tǒng)提供一個(gè)可靠的通信網(wǎng)絡(luò)。隨著技術(shù)的發(fā)展,CAN總線已經(jīng)被廣泛應(yīng)用于各種工業(yè)和自動(dòng)化領(lǐng)域。 2. CAN總線數(shù)據(jù)概述 CAN總線的數(shù)據(jù)
    的頭像 發(fā)表于 11-12 10:12 ?2400次閱讀

    I2C協(xié)議的基礎(chǔ)知識(shí)

    本文從I2C協(xié)議的概述開(kāi)始,描述協(xié)議的歷史、不同速度模式、物理層和數(shù)據(jù)結(jié)構(gòu),最后介紹I2C混合電壓系統(tǒng)中電平兼容性以及上拉電阻大小計(jì)算。
    的頭像 發(fā)表于 10-22 15:51 ?1220次閱讀
    <b class='flag-5'>I</b>2C協(xié)議的基礎(chǔ)知識(shí)

    以太網(wǎng)格式和功能詳解

    以太網(wǎng)(Ethernet Frame)是以太網(wǎng)(Ethernet)協(xié)議用于在局域網(wǎng)(LAN)中傳輸數(shù)據(jù)的基本單位。理解以太網(wǎng)的結(jié)構(gòu)和傳輸過(guò)程對(duì)于掌握局域網(wǎng)通信的原理至關(guān)重要。以下將從以太網(wǎng)的定義、格式以及功能三個(gè)方面進(jìn)行詳
    的頭像 發(fā)表于 10-08 10:03 ?3287次閱讀

    以太網(wǎng)結(jié)構(gòu)是怎樣的

    以太網(wǎng)(Ethernet Frame)是以太網(wǎng)(Ethernet)協(xié)議用于在局域網(wǎng)(LAN)中傳輸數(shù)據(jù)的基本單位。理解以太網(wǎng)的結(jié)構(gòu)對(duì)于掌握局域網(wǎng)通信的原理至關(guān)重要。
    的頭像 發(fā)表于 10-08 10:00 ?2233次閱讀

    can標(biāo)準(zhǔn)和擴(kuò)展能否共存

    CAN(Controller Area Network)是一種用于汽車(chē)和工業(yè)自動(dòng)化領(lǐng)域的現(xiàn)場(chǎng)總線通信協(xié)議。CAN協(xié)議具有多種格式,包括標(biāo)準(zhǔn)和擴(kuò)展。在實(shí)際應(yīng)用中,標(biāo)準(zhǔn)和擴(kuò)展
    的頭像 發(fā)表于 07-24 15:24 ?2543次閱讀

    can標(biāo)準(zhǔn)和擴(kuò)展的區(qū)別

    CAN(Controller Area Network)是一種用于汽車(chē)和工業(yè)領(lǐng)域的通信協(xié)議,它允許多個(gè)設(shè)備在同一總線上進(jìn)行通信。CAN協(xié)議有兩種類(lèi)型:標(biāo)準(zhǔn)和擴(kuò)展。這兩種類(lèi)型在結(jié)
    的頭像 發(fā)表于 07-24 15:20 ?2931次閱讀

    can網(wǎng)絡(luò)數(shù)據(jù)的特點(diǎn)

    特點(diǎn),在分布式系統(tǒng)中得到了廣泛應(yīng)用。 數(shù)據(jù)的重要性 :數(shù)據(jù)是CAN網(wǎng)絡(luò)中用于數(shù)據(jù)傳輸?shù)幕締卧浣Y(jié)構(gòu)設(shè)計(jì)和特性直接關(guān)系到整個(gè)網(wǎng)絡(luò)的通信效率和可靠性。 二、數(shù)據(jù)的結(jié)構(gòu) 基本構(gòu)成 :CAN數(shù)據(jù)
    的頭像 發(fā)表于 07-24 15:18 ?610次閱讀

    can數(shù)據(jù)有哪幾個(gè)域組成

    CAN(控制器局域網(wǎng)絡(luò))是一種基于消息傳遞的通信協(xié)議,廣泛應(yīng)用于汽車(chē)、工業(yè)自動(dòng)化和嵌入式系統(tǒng)等領(lǐng)域。CAN協(xié)議的數(shù)據(jù)是用于傳輸信息的基本單位。 1. CAN數(shù)據(jù)概述 CAN數(shù)據(jù)是一種用于在
    的頭像 發(fā)表于 07-24 15:14 ?1574次閱讀

    CAN數(shù)據(jù)的各個(gè)域及其作用

    CAN(Controller Area Network)是一種用于汽車(chē)電子系統(tǒng)中的通信協(xié)議,它具有高可靠性、實(shí)時(shí)性和靈活性等特點(diǎn)。在CAN通信中,數(shù)據(jù)是最基本的通信單元,用于傳輸信息。 概述
    的頭像 發(fā)表于 07-24 15:10 ?2370次閱讀
    主站蜘蛛池模板: 永久精品免费影院在线观看网站 | 天堂资源www天堂在线 | 91精品国产色综合久久不卡蜜 | 免费视频爱爱 | 香蕉视频在线观看国产 | 一级黄色毛片播放 | 天天搞一搞 | 69xxxx女人 | 日本一区二区三区不卡在线看 | 久久99久久精品97久久综合 | 久久婷婷婷 | 一本二卡三卡四卡乱码二百 | 黑粗硬大欧美视频 | 99久久伊人一区二区yy5099 | 日本成人小视频 | 日韩免费无砖专区2020狼 | 国产aaaaa一级毛片 | 久久久噜噜噜久久网 | 一级看片免费视频 | 天天草天天草 | 天天做天天操 | wwwww色| 欧美日韩一卡2卡三卡4卡新区 | 欧美性性性性性ⅹxxbbbb | 综合天天色 | 伊人久久大香线蕉综合高清 | www.五月婷| 日本人zzzwww色视频 | 国产三级国产精品 | 欧美成人精品一级高清片 | 亚洲vv| 中文字幕第十页 | 久久精品亚瑟全部免费观看 | 色视频线观看在线播放 | 色婷婷六月 | 午夜女上男下xx00xx00动态 | 天堂资源在线www中文 | 亚洲综合色丁香婷婷六月图片 | 国产精品资源在线观看网站 | 午夜影院在线观看免费 | 女主播扒开内衣让粉丝看个够 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品