哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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提高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開始的I幀。然后再設(shè)置QP的值??梢栽囋?0-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)容及配圖由入駐作者撰寫或者入駐合作網(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

    文章

    4976

    瀏覽量

    74360
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    203

    瀏覽量

    25225
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    為什么 RBS 位可能無(wú)法設(shè)置?

    CAN 控制器配置正確 — 設(shè)置了位時(shí)序,它進(jìn)入正常模式,并且傳入可見。寄存 器CANxRFS、CANxRID和CANxRDA are updated correctly when a frame
    發(fā)表于 04-21 07:22

    NeurIPS 2024 | 絲滑視覺新極限:EPA 框架利用事件相機(jī)突破插偽影瓶頸

    核心提要:傳統(tǒng)視頻插在極高速運(yùn)動(dòng)下難逃“重影”與“撕裂”。北京理工大學(xué)團(tuán)隊(duì)提出的EPA(PerceptuallyAligned)框架,通過(guò)感知對(duì)齊學(xué)習(xí),將事件相機(jī)的微秒級(jí)軌跡精準(zhǔn)融入圖像紋理,實(shí)現(xiàn)
    的頭像 發(fā)表于 04-17 17:20 ?6694次閱讀
    NeurIPS 2024 | 絲滑視覺新極限:EPA 框架利用事件相機(jī)突破插<b class='flag-5'>幀</b>偽影瓶頸

    HT for Web 動(dòng)畫 | 3D 動(dòng)態(tài)渲染設(shè)計(jì)與實(shí)現(xiàn)

    動(dòng)畫憑借靈活的序列設(shè)計(jì)與精準(zhǔn)時(shí)序控制,成為圖撲軟件 HT 可視化項(xiàng)目的核心視覺能力。結(jié)合完善的動(dòng)畫體系與性能優(yōu)化方案,可打造高沉浸、高真實(shí)感的數(shù)字孿生場(chǎng)景,是實(shí)現(xiàn)虛實(shí)融合與創(chuàng)意表達(dá)的重要技術(shù)支撐。
    的頭像 發(fā)表于 03-24 11:05 ?185次閱讀
    HT for Web <b class='flag-5'>幀</b>動(dòng)畫 | 3D 動(dòng)態(tài)渲染設(shè)計(jì)與實(shí)現(xiàn)

    CAN總線報(bào)錯(cuò)看不懂?5種錯(cuò)誤+5步排查法一次講清

    CAN總線通信異常?錯(cuò)誤幀頻繁出現(xiàn)?本文詳解五種錯(cuò)誤類型,并提供五步排查法,助你快速定位問(wèn)題根源。錯(cuò)誤的作用錯(cuò)誤是CAN總線用于錯(cuò)誤通知的報(bào)文。當(dāng)任一節(jié)點(diǎn)檢測(cè)到通信錯(cuò)誤時(shí),會(huì)立即發(fā)送錯(cuò)誤
    的頭像 發(fā)表于 03-16 11:36 ?368次閱讀
    CAN總線報(bào)錯(cuò)看不懂?5種錯(cuò)誤<b class='flag-5'>幀</b>+5步排查法一次講清

    MediaTek天璣倍技術(shù)MFRC專區(qū)上線官網(wǎng)

    MediaTek 宣布在天璣開發(fā)者中心網(wǎng)站已正式上線「天璣倍技術(shù) MFRC 專區(qū)」(MediaTek Frame Rate Converter,MFRC)。
    的頭像 發(fā)表于 01-29 14:57 ?794次閱讀

    XC95108-15PQ100I 通信應(yīng)用實(shí)操:多協(xié)議解析與數(shù)據(jù)轉(zhuǎn)換技巧

    XC95108-15PQ100I不是什么神秘的黑科技,它其實(shí)就是Xilinx公司推出的一款高性能CPLD(復(fù)雜可編程邏輯器件)。簡(jiǎn)單說(shuō),這就像一個(gè)可以重新編程的"數(shù)字電路積木",讓工程師能夠按照需求搭建出各種數(shù)字邏輯功能。
    的頭像 發(fā)表于 01-28 09:59 ?524次閱讀
    XC95108-15PQ100<b class='flag-5'>I</b> 通信應(yīng)用實(shí)操:多協(xié)議<b class='flag-5'>幀</b>解析與數(shù)據(jù)轉(zhuǎn)換技巧

    中穎電子8位單片機(jī)的I/O設(shè)置介紹

    在嵌入式系統(tǒng)設(shè)計(jì)中,單片機(jī)的I/O端口設(shè)置是基礎(chǔ)且關(guān)鍵的一環(huán)。今天我們來(lái)詳細(xì)解析中穎電子8位單片機(jī)的I/O設(shè)置,幫助工程師更好地理解和應(yīng)用。
    的頭像 發(fā)表于 12-30 09:37 ?880次閱讀
    中穎電子8位單片機(jī)的<b class='flag-5'>I</b>/O<b class='flag-5'>設(shè)置</b>介紹

    CW32 UART的數(shù)據(jù)結(jié)構(gòu)有哪些特點(diǎn)?

    請(qǐng)問(wèn) CW32 UART 的數(shù)據(jù)結(jié)構(gòu)有哪些特點(diǎn)?
    發(fā)表于 12-15 06:58

    最新版K230IDE怎么打開緩存區(qū)?

    最新版K230IDE怎么打開緩存區(qū)
    發(fā)表于 08-08 06:01

    為什么無(wú)法在 USB3 Vision 上傳輸虛擬?

    /FX3-U3V-device-fails-to-build-genapi-no...中提供的代碼。但是我無(wú)法在 eBUS USB 播放器中傳輸視頻。 在 eBUS 播放器中,我獲取了 SiPayloadTransferSize
    發(fā)表于 07-16 06:42

    如何查找 TLE9881 接收的 DLC?

    我們的項(xiàng)目使用 TLE9881,并使用經(jīng)典 CAN 協(xié)議進(jìn)行通信。 您能幫我找到接收到的 CAN 的 DLC 嗎?
    發(fā)表于 07-15 06:42

    CYW20721如何在A2DP接收器中更改I2S時(shí)鐘設(shè)置

    CYW20721 DS 提到的主模式下的 I2S 時(shí)鐘可以是: 44.1 kHz x 每 32 位 = 1411.2 千赫 48 kHz x 每 32 位 = 1536 kHz 我能知道如何為這 2 個(gè)
    發(fā)表于 07-03 06:41

    如何評(píng)估CAN總線信號(hào)質(zhì)量

    絡(luò)中,數(shù)據(jù)通過(guò)雙絞線上的差分信號(hào)傳輸。信號(hào)質(zhì)量直接影響節(jié)點(diǎn)正確解讀數(shù)據(jù)的能力。信號(hào)質(zhì)量差可能表現(xiàn)為: 位錯(cuò)誤 :由于噪聲或信號(hào)失真導(dǎo)致的位誤判。 錯(cuò)誤 :CAN結(jié)構(gòu)錯(cuò)誤,導(dǎo)致接收節(jié)
    發(fā)表于 06-07 08:46

    CX3 I2C啟動(dòng)失敗的原因?

    I2C 啟動(dòng)。 使用邏輯分析儀測(cè)試 I2C 信號(hào)。您可以在開始時(shí)讀取第一數(shù)據(jù)。與AN76405相比,讀取數(shù)據(jù)正確。但奇怪的是,此后I2C接口就停止工作了。 邏輯分析儀測(cè)試
    發(fā)表于 05-28 07:46

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

    設(shè)置了CyU3PMipicsiSetPhyTimeDelay ( 1 , 18 ) ; 。 項(xiàng)目說(shuō)明: 大小不匹配: 根據(jù)配置的分辨率和格式,預(yù)期的大小應(yīng)為每4915200
    發(fā)表于 05-19 08:09
    黄大仙区| 当阳市| 潢川县| 荣昌县| 田东县| 桂林市| 博兴县| 吴江市| 娱乐| 祥云县| 道孚县| 万载县| 瓦房店市| 阿鲁科尔沁旗| 武宁县| 怀来县| 大渡口区| 博兴县| 房山区| 沾益县| 武平县| 图木舒克市| 织金县| 天台县| 永平县| 邵武市| 莫力| 舞钢市| 昂仁县| 扬州市| 松潘县| 奉新县| 呈贡县| 阿巴嘎旗| 百色市| 无极县| 绩溪县| 渝中区| 丰镇市| 繁昌县| 江油市|