欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

設(shè)置I幀的QP的示例代碼

YCqV_FPGA_EETre ? 來源:博客園 ? 作者:HankFu ? 2021-10-20 11:35 ? 次閱讀

介紹

在有些應(yīng)用中,發(fā)現(xiàn)I幀不夠大。MPSoC VCU CtrlSW可以設(shè)置每一幀的QP大小。因此,可以通過設(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開始的I幀。然后再設(shè)置QP的值。可以試試20-35之間的QP值。QP值是20時(shí),能帶來很好的圖像質(zhì)量。

void ProcessFrame(AL_TBuffer* Src) override
  {
    if(m_picCount == 0)
      m_StartTime = GetPerfTime();
 
    if(!Src)
    {
      LogVerbose("Flushing...

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

    關(guān)注

    30

    文章

    4837

    瀏覽量

    69131
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28478

原文標(biāo)題:設(shè)置I幀的QP,提高I幀的質(zhì)量

文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    用于 SPI 絕對(duì)編碼器的 Arduino 示例代碼

    (SPI) 通信來配置和讀取 [Same Sky] 的 [AMT22 絕對(duì)編碼器] 的數(shù)據(jù)。該教程將提供所需的硬件和軟件、關(guān)鍵設(shè)置要求以及單圈和多圈輸出選項(xiàng)的示例代碼包和說明。以下是入門工作所需的物料清單
    的頭像 發(fā)表于 01-26 21:35 ?213次閱讀
    用于 SPI 絕對(duì)編碼器的 Arduino <b class='flag-5'>示例</b><b class='flag-5'>代碼</b>

    I2C總線設(shè)備地址設(shè)置方法

    通常是一個(gè)7位或10位的數(shù)字,用于標(biāo)識(shí)總線上的每個(gè)設(shè)備。在7位尋址模式下,地址范圍是0x00到0x7F,而在10位尋址模式下,地址范圍是0x000到0x3FF。I2C地址的最低位(LSB)通常用于指示讀/寫操作。 硬件地址設(shè)置 1. 地址引腳配置 許多
    的頭像 發(fā)表于 01-17 15:17 ?360次閱讀

    AN-840: 通過I2C接口更新代碼

    電子發(fā)燒友網(wǎng)站提供《AN-840: 通過I2C接口更新代碼.pdf》資料免費(fèi)下載
    發(fā)表于 01-15 16:04 ?0次下載
    AN-840: 通過<b class='flag-5'>I</b>2C接口更新<b class='flag-5'>代碼</b>

    TPS92682-Q1定義和示例

    電子發(fā)燒友網(wǎng)站提供《TPS92682-Q1定義和示例.pdf》資料免費(fèi)下載
    發(fā)表于 11-24 14:26 ?7次下載
    TPS92682-Q1<b class='flag-5'>幀</b>定義和<b class='flag-5'>示例</b>

    LP589x和TLC698x示例代碼用戶指南

    電子發(fā)燒友網(wǎng)站提供《LP589x和TLC698x示例代碼用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-13 15:57 ?0次下載
    LP589x和TLC698x<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>用戶指南

    TPS929xxx-Q1示例代碼

    電子發(fā)燒友網(wǎng)站提供《TPS929xxx-Q1示例代碼.pdf》資料免費(fèi)下載
    發(fā)表于 11-13 14:59 ?2次下載
    TPS929xxx-Q1<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>

    LP5891-Q1示例代碼用戶指南

    電子發(fā)燒友網(wǎng)站提供《LP5891-Q1示例代碼用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-12 14:08 ?1次下載
    LP5891-Q1<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>用戶指南

    UART串口通信示例:開啟通信寶藏之門的定位模組LuatOS入門

    今天我們要講解的是UART串口通信示例,關(guān)于Air201資產(chǎn)定位模組LuatOS入門,我會(huì)從搭建環(huán)境、代碼燒錄、示例效果等來細(xì)說:
    的頭像 發(fā)表于 11-03 19:55 ?1056次閱讀
    UART串口通信<b class='flag-5'>示例</b>:開啟通信寶藏之門的定位模組LuatOS入門

    BQ40Z80量產(chǎn)校準(zhǔn)代碼示例

    電子發(fā)燒友網(wǎng)站提供《BQ40Z80量產(chǎn)校準(zhǔn)代碼示例.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 09:34 ?1次下載
    BQ40Z80量產(chǎn)校準(zhǔn)<b class='flag-5'>代碼</b><b class='flag-5'>示例</b>

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

    CAN(Controller Area Network)是一種用于汽車和工業(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 ?2117次閱讀

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

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

    如何使用AURIX?將Erika操作系統(tǒng)移植到TC387-QP MCU中?

    如何使用AURIX?設(shè)計(jì)工作室將此 Erika OS 集成到 TC387-QP MCU 中? Erika OS文件夾已經(jīng)可用,并以 ZIP 文件的形式共享,以供參考。 設(shè)置如下 AURIX?設(shè)計(jì)工
    發(fā)表于 05-17 14:03

    關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼

    有人通過公眾號(hào)微信留言,詢問是否有關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼。同時(shí),個(gè)人也發(fā)現(xiàn),雖然STM32片內(nèi)的DMAMUX不是什么新模塊,似乎還是很多人并不太熟悉。這里借機(jī)聊聊這方面的內(nèi)容,重點(diǎn)演示相關(guān)功能的實(shí)現(xiàn),以供參考。
    的頭像 發(fā)表于 03-25 09:15 ?2601次閱讀
    關(guān)于STM32 DMAMUX模塊具體的應(yīng)用<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>

    TC387QP啟用HSm時(shí),PFlash被擦除而鎖定了怎么解決?

    你好, 我曾在 HSM 啟用狀態(tài)下進(jìn)行過 Pflash 擦除。 因此,鎖定微型 TC387QP。 請(qǐng)告訴我如何解鎖微控制器 TC387QP?
    發(fā)表于 03-04 06:05

    瑞薩Flash示例程序01型SC版本(代碼Flash)應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《瑞薩Flash示例程序01型SC版本(代碼Flash)應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 13:48 ?0次下載
    瑞薩Flash<b class='flag-5'>示例</b>程序01型SC版本(<b class='flag-5'>代碼</b>Flash)應(yīng)用說明