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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

設置I幀的QP的示例代碼

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

介紹

在有些應用中,發現I幀不夠大。MPSoC VCU CtrlSW可以設置每一幀的QP大小。因此,可以通過設置I幀的QP,提高I幀的大小,從而提高I幀的質量。

代碼

下面是設置I幀的QP的示例代碼。

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

#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長度
在EncoderSink 的EncoderSink函數設置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
 
    }

設置QP

在EncoderSink 的ProcessFrame函數里,根據GOP長度,確定每個GOP開始的I幀。然后再設置QP的值。可以試試20-35之間的QP值。QP值是20時,能帶來很好的圖像質量。

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++;
  }
責任編輯:haq
責任編輯:haq
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4798

    瀏覽量

    68726
  • 變量
    +關注

    關注

    0

    文章

    613

    瀏覽量

    28404

原文標題:設置I幀的QP,提高I幀的質量

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發圈】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TPS92682-Q1定義和示例

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

    LP589x和TLC698x示例代碼用戶指南

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

    TPS929xxx-Q1示例代碼

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

    LP5891-Q1示例代碼用戶指南

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

    BQ40Z80量產校準代碼示例

    電子發燒友網站提供《BQ40Z80量產校準代碼示例.pdf》資料免費下載
    發表于 09-27 09:34 ?0次下載
    BQ40Z80量產校準<b class='flag-5'>代碼</b><b class='flag-5'>示例</b>

    can標準和擴展的區別

    CAN(Controller Area Network)是一種用于汽車和工業領域的通信協議,它允許多個設備在同一總線上進行通信。CAN協議有兩種類型:標準和擴展。這兩種類型在結
    的頭像 發表于 07-24 15:20 ?1983次閱讀

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

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

    關于STM32 DMAMUX模塊具體的應用示例代碼

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

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

    你好, 我曾在 HSM 啟用狀態下進行過 Pflash 擦除。 因此,鎖定微型 TC387QP。 請告訴我如何解鎖微控制器 TC387QP
    發表于 03-04 06:05

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

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

    如何使用Arduino設置熱敏電阻來創建溫度計

    在本教程中,我們將指導您如何使用Arduino設置熱敏電阻以創建基本溫度計。提供的原理圖、試驗板圖和示例代碼將使熱敏電阻工作變得簡單明了。
    的頭像 發表于 02-11 10:37 ?2608次閱讀
    如何使用Arduino<b class='flag-5'>設置</b>熱敏電阻來創建溫度計

    淺析MIMO的結構思路

    對于非配對頻段,GP位置需要對齊,以避免DL/UL交叉鏈路干擾,簡化共存。圖2列出了具有對齊GP位置的未配對頻譜中多配置共存的示例
    發表于 02-01 14:30 ?621次閱讀
    淺析MIMO的<b class='flag-5'>幀</b>結構思路

    使用MODBUS協議的時候可以不用設置數據格式了嗎?

    在使用MODBUS協議進行串口通訊時,通常需要設置數據格式。
    的頭像 發表于 01-30 09:32 ?809次閱讀

    bluetooth_le_HelloSensor使用OTA復制Battery Server示例的相同設置時,SPI卡住了是怎么回事?

    我最初創建了示例項目 bluetooth_le_HelloSensor 并添加了我的 SPI 驅動程序代碼。 它運作良好。 當我使用 OTA 復制 Battery Server 示例的相同設置
    發表于 01-19 07:56

    西門子博途示例:如何為下載設置內存保留而不重新初始化

    示例:在塊上設置內存保留
    的頭像 發表于 01-15 10:41 ?1571次閱讀
    西門子博途<b class='flag-5'>示例</b>:如何為下載<b class='flag-5'>設置</b>內存保留而不重新初始化
    主站蜘蛛池模板: 操视频网站 | 免费看黄色小视频 | 婷婷激情小说网 | 啪啪免费视频 | 国产三级a三级三级天天 | 91精品国产亚洲爽啪在线影院 | 视频在线观看免费网站 | 一本高清在线视频 | 国产成人精品男人的天堂538 | 青青伊人91久久福利精品 | 国产精品va一区二区三区 | 巨乳色最新网址 | 久久久免费 | 欧美成人午夜精品一区二区 | 亚洲人成一区 | 久操视频在线观看免费 | 成年女人在线观看 | 久久婷婷五综合一区二区 | 色五月情| 一级毛片真人免费播放视频 | 永久免费精品影视网站 | 国产午夜免费视频片夜色 | 成人福利在线视频 | 欧美黄色免费看 | 欧美综合一区二区三区 | 欧美三四级片 | 亚洲地址一地址二地址三 | 欧美特黄一免在线观看 | 久久思re热9一区二区三区 | 天天干天天操天天 | 在线观看日本亚洲一区 | 国产精品主播在线观看 | 亚洲高清视频一区 | 2021久久精品国产99国产精品 | 在线观看一级片 | 国产精品欧美一区二区三区不卡 | 性色在线观看 | 婷婷六月在线 | 午夜影院0606 | 欧美性黑人极品1819hd | 国产乱码精品一区二区 |