色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何設置I幀的QP提高I幀的質量

劉芳 ? 來源:yfdsfqdqd ? 作者:yfdsfqdqd ? 2022-08-02 08:03 ? 次閱讀

介紹
在有些應用中,發現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...\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++;
  }

審核編輯:郭婷

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

    關注

    30

    文章

    4891

    瀏覽量

    70339
  • MPSoC
    +關注

    關注

    0

    文章

    200

    瀏覽量

    24646
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    Denebola RDK上配置的大小與實際大小不一致是怎么回事?

    設置了CyU3PMipicsiSetPhyTimeDelay ( 1 , 18 ) ; 。 項目說明: 大小不匹配: 根據配置的分辨率和格式,預期的大小應為每4915200
    發表于 05-19 08:09

    HarmonyOS應用高負載場景分渲染

    ,可以采用分渲染技術,將原本在一內加載的數據分散到多中逐步加載,從而減輕單的渲染壓力。不過,分渲染需要開發者精確計算每
    的頭像 發表于 03-25 10:28 ?423次閱讀
    HarmonyOS應用高負載場景分<b class='flag-5'>幀</b>渲染

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

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

    EtherCAT數據結構解析

    物理層和常規的以太網卡,通過獨特的數據結構和處理機制,實現了基于EtherNet的實時控制。本文將深入探討EtherCAT的數據結構,從的組成、子報文的結構、工作計數器的功能到數據
    的頭像 發表于 02-02 17:42 ?1135次閱讀

    基于Vector工具進行CAN協議錯誤的分析實踐

    廣播發送的短結構,還體現在其錯誤檢測機制上。通過總線數據以及總線波形來分析總線故障時,CAN協議錯誤檢測機制中豐富的錯誤類型能讓定位問題的效率更高。錯誤是CA
    的頭像 發表于 01-15 10:03 ?497次閱讀
    基于Vector工具進行CAN協議錯誤<b class='flag-5'>幀</b>的分析實踐

    TVP5151是否是25的CVBS信號輸入,輸出是并口也是25,而不是50的?

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

    CAN總線通信中的數據結構解析

    CAN總線由Bosch公司在1980年代開發,旨在為汽車電子系統提供一個可靠的通信網絡。隨著技術的發展,CAN總線已經被廣泛應用于各種工業和自動化領域。 2. CAN總線數據概述 CAN總線的數據
    的頭像 發表于 11-12 10:12 ?2984次閱讀

    I2C協議的基礎知識

    本文從I2C協議的概述開始,描述協議的歷史、不同速度模式、物理層和數據結構,最后介紹I2C混合電壓系統中電平兼容性以及上拉電阻大小計算。
    的頭像 發表于 10-22 15:51 ?1853次閱讀
    <b class='flag-5'>I</b>2C協議的基礎知識

    以太網格式和功能詳解

    以太網(Ethernet Frame)是以太網(Ethernet)協議用于在局域網(LAN)中傳輸數據的基本單位。理解以太網的結構和傳輸過程對于掌握局域網通信的原理至關重要。以下將從以太網的定義、格式以及功能三個方面進行詳
    的頭像 發表于 10-08 10:03 ?3709次閱讀

    以太網結構是怎樣的

    以太網(Ethernet Frame)是以太網(Ethernet)協議用于在局域網(LAN)中傳輸數據的基本單位。理解以太網的結構對于掌握局域網通信的原理至關重要。
    的頭像 發表于 10-08 10:00 ?2660次閱讀

    can標準和擴展能否共存

    CAN(Controller Area Network)是一種用于汽車和工業自動化領域的現場總線通信協議。CAN協議具有多種格式,包括標準和擴展。在實際應用中,標準和擴展
    的頭像 發表于 07-24 15:24 ?2769次閱讀

    can標準和擴展的區別

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

    can網絡數據的特點

    特點,在分布式系統中得到了廣泛應用。 數據的重要性 :數據是CAN網絡中用于數據傳輸的基本單元,其結構設計和特性直接關系到整個網絡的通信效率和可靠性。 二、數據的結構 基本構成 :CAN數據
    的頭像 發表于 07-24 15:18 ?729次閱讀

    can數據有哪幾個域組成

    CAN(控制器局域網絡)是一種基于消息傳遞的通信協議,廣泛應用于汽車、工業自動化和嵌入式系統等領域。CAN協議的數據是用于傳輸信息的基本單位。 1. CAN數據概述 CAN數據是一種用于在
    的頭像 發表于 07-24 15:14 ?1800次閱讀

    CAN數據的各個域及其作用

    CAN(Controller Area Network)是一種用于汽車電子系統中的通信協議,它具有高可靠性、實時性和靈活性等特點。在CAN通信中,數據是最基本的通信單元,用于傳輸信息。 概述
    的頭像 發表于 07-24 15:10 ?2676次閱讀
    主站蜘蛛池模板: 欧美做真爱欧免费看 | 97国产精品视频在线观看 | 特黄特色大片免费播放器9 特黄特黄aaaa级毛片免费看 | YELLOW在线观看高清视频免费 | 亚洲444777KKK在线观看 | 麻美ゆま夫の目の前で犯 | 亚洲国产精品无码中文字满 | 久久久久久久尹人综合网亚洲 | 99热只有这里有精品 | 亚洲国产在线午夜视频无 | 欧美一区二区影院 | 菠萝视频高清版在线观看 | 97免费视频观看 | 欧美疯狂做受xxxxx喷水 | 中文字幕在线永久 | 色四房播播 | 国产精品系列在线观看 | 在线观看免费av网站 | 免费观看视频成人国产 | 黑人巨摘花破女处 | 国产一卡在线观看完整版 | 俄罗斯人与动ZOOZ | 在线播放真实国产乱子伦 | 国产欧美日韩视频怡春院 | 国产成人亚洲精品老王 | va亚洲va天堂va视频在线 | 一一本之道高清视频在线观看中文字幕 | 黑色丝袜在线观看 | 苍井空a 集在线观看网站 | 麻豆精品传媒一二三区 | 美女视频秀色福利视频 | 99日影院在线播放 | 亚洲AV蜜桃永久无码精品无码网 | 久久国产精品福利影集 | 东北真实仑乱 | 日本艳妓BBW高潮一19 | 国产在线精品亚洲视频在线 | 美艳人妻在厨房翘着屁股 | 中文字幕亚洲无线码高清不卡 | 性色AV乱码一区二区三区视频 | 午夜伦理电影在线观免费 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品