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

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

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

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

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

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

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

代碼
下面是設(shè)置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函數(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長度,確定每個GOP開始的I幀。然后再設(shè)置QP的值。可以試試20-35之間的QP值。QP值是20時,能帶來很好的圖像質(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)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68612
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    198

    瀏覽量

    24282
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

    can標準和擴展能否共存

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

    can標準和擴展的區(qū)別

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

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

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

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

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

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

    CAN(Controller Area Network)是一種用于汽車電子系統(tǒng)中的通信協(xié)議,它具有高可靠性、實時性和靈活性等特點。在CAN通信中,數(shù)據(jù)是最基本的通信單元,用于傳輸信息。 概述
    的頭像 發(fā)表于 07-24 15:10 ?1334次閱讀

    EtherCAT 數(shù)據(jù)格式和尋址方式簡介

    EtherCAT是一個高實時性,高速和高效率的工業(yè)以太網(wǎng)技術(shù),數(shù)據(jù)根據(jù)自身獨有的數(shù)據(jù)格式進行可靠傳輸,本文主要針對EtherCAT的數(shù)據(jù)格式和尋址方式進行簡單描述。EtherCAT的數(shù)據(jù)格式
    的頭像 發(fā)表于 04-12 08:25 ?942次閱讀
    EtherCAT 數(shù)據(jù)<b class='flag-5'>幀</b>格式和尋址方式簡介

    AMD HYPR-RX支持AMD生成技術(shù),助力即刻提升游戲性能

    AMD Fluid Motion Frames(AFMF)—AMD生成技術(shù),助力AMD Radeon用戶在數(shù)千款DirectX 11和DirectX 12游戲中,使用插值技術(shù)來提高
    的頭像 發(fā)表于 03-15 11:35 ?4900次閱讀
    AMD HYPR-RX支持AMD<b class='flag-5'>幀</b>生成技術(shù),助力即刻提升游戲性能

    為了提高應(yīng)用的安全性,TLD7002-16ES的間延遲應(yīng)該更長還是更短?

    問題:為了提高應(yīng)用的安全性,TLD7002-16ES的間延遲應(yīng)該更長還是更短? 答案:根據(jù)數(shù)據(jù)表,https://www.infineon.com/dgdl
    的頭像 發(fā)表于 03-04 09:45 ?469次閱讀

    CAN總線上可以同時存在標準和擴展嗎?

    今天做實驗,can總線上同時存在標準和擴展,從上位機上觀察到這樣的現(xiàn)象:標準可以正常接收,但是擴展時斷時時好??請大神們拍磚解釋啊
    發(fā)表于 02-05 07:41

    CAN總線的標準和擴展有什么區(qū)別呢?分別適用于什么工況?

    CAN總線的標準和擴展是CAN協(xié)議中的兩種類型。
    的頭像 發(fā)表于 01-30 09:41 ?6214次閱讀
    CAN總線的標準<b class='flag-5'>幀</b>和擴展<b class='flag-5'>幀</b>有什么區(qū)別呢?分別適用于什么工況?

    使用MODBUS協(xié)議的時候可以不用設(shè)置數(shù)據(jù)格式了嗎?

    在使用MODBUS協(xié)議進行串口通訊時,通常需要設(shè)置數(shù)據(jù)格式。
    的頭像 發(fā)表于 01-30 09:32 ?787次閱讀

    CAN通信協(xié)議中有哪幾種類型?CAN通信中格式的作用

    CAN通信協(xié)議中有四種類型,分別是數(shù)據(jù)、遠程、錯誤和過載
    的頭像 發(fā)表于 01-30 09:18 ?5497次閱讀

    MODBUS通訊之數(shù)據(jù)格式解讀

    /slave方式通信。本文主要介紹的MODBUS-RTU。二.MODBUS數(shù)據(jù)組成首先我們要知道一正常的MODBUS數(shù)據(jù)包含的內(nèi)容有:地址域+功能碼+數(shù)據(jù)+差錯校
    的頭像 發(fā)表于 01-20 08:00 ?2059次閱讀
    MODBUS通訊之數(shù)據(jù)<b class='flag-5'>幀</b>格式解讀
    主站蜘蛛池模板: 天天做天天爽爽快快 | 国产亚洲情侣久久精品 | 久久精品免费观看视频 | 狠狠干在线观看 | 欧美一区二区三区免费看 | 午夜免费啪在线观看视频网站 | 久久黄色录像 | 欧美五月激情 | a黄色网| 久久午夜精品视频 | 三级网站在线免费观看 | 乱好看的的激情伦小说 | 1000又爽又黄禁片在线久 | 色婷婷六月 | 91免费网站在线看入口黄 | 91久久澡人人爽人人添 | 蝌蚪自拍网二区 | 自拍偷拍综合网 | xxxxbbbb欧美 | 狠狠色丁香婷婷综合久久来 | 美女扒开内裤让男人桶 | 欧美干色| 国产aaa级一级毛片 国产ar高清视频+视频 | 色老成人精品视频在线观看 | 欧美三级视频网站 | 台湾一级毛片永久免费 | 成人www视频| 午夜精品久久久久久 | 午夜看片网 | 国产精品三级 | 国产午夜精品理论片免费观看 | 男人的天堂一区二区视频在线观看 | av2014天堂网| 欧美深深色噜噜狠狠yyy | 在线观看深夜观看网站免费 | 性色在线视频精品 | 给个网站可以在线观看你懂的 | bt 电影天堂 | 亚洲第一在线视频 | 国产午夜毛片一区二区三区 | 天天干天天操天天插 |