• <acronym id="qmqcg"><cite id="qmqcg"></cite></acronym>
    <td id="qmqcg"><em id="qmqcg"></em></td>
    • 首頁 > 生活 >

      【2023 · CANN訓練營第一季】數據預處理-JPEG數據解碼

      【2023 · CANN訓練營第一季】數據預處理-JPEG數據解碼

      文檔參考:CANN文檔社區版: 6.0.RC1.alpha001

      我們的模型輸入是固定的圖片格式、大小,但是實際上我們的想要進行推理的圖片是各種各樣的,在應用中,我們常使用NV12的圖片作為模型的輸入。如果輸入是僅有Y分量的灰度圖,我們便可以通過將UV分量的部分補充為灰色而滿足我們的使用,但是如果我們的輸入為JPEG圖片,我們需要使用到ACL提供的媒體數據處理了相關API,對我們的圖片進行預處理,把jpg圖片進行解碼成YUV格式的內容,并且獲得其圖片信息。

      一、媒體數據處理API的V1

      note:媒體數據處理V1版本與媒體數據處理V2版本的接口功能范圍相同,都是描述處理媒體數據的接口,用于實現摳圖、圖片縮放、格式轉換等功能,但兩套接口不能混用


      (資料圖片)

      在Device側,我們對要進行媒體數據處理的相關數據的內存的申請和釋放,就不可以簡單的使用malloc,new或者aclrtmalloc等申請的內存了,我們需要使用dvpp接口。并且,從性能角度,為了減少拷貝,媒體數據處理的輸出作為模型推理的輸入,實現內存復用。我們盡量申請足夠大的內存進行反復使用,盡可能避免反復使用dvpp的接口申請內存和釋放,造成一定的性能損耗。

      1.dvpp內存和通道

      (1)內存申請與釋放

      note:調用該接口申請大頁內存失敗,僅表示系統內的大頁內存不夠

      (2)通道的創建與釋放

      2.JPEGD相關接口

      性能指標:

      JPEGD性能指標是基于硬件解碼的性能,JPEGD硬件解碼不支持3個SOS的圖片解碼,對于硬件不支持的格式,會使用軟件解碼,軟件解碼性能參考為1080P 15fps。JPEGD解碼的輸出圖片如果涉及旋轉,則性能指標低于軟件解碼的參考值,例如對于1080P的圖片,性能指標低于15fps。

      以下性能數據,是基于一個stream上下發1個異步媒體數據處理任務后,執行一次aclrtSynchronizeStream接口。

      在我們代碼使用的過程中,其實最先需要了解的是我們所用的接口的性能,這直接影響到我們的使用方案,可以防止我們的代碼設計直接超越了模塊處理的性能。實際和官方標量有的時候會有一點實測的出入,不過最好還是按照手冊中的描述進行預先規劃,以下為手冊中的指標:

      功能說明:

      JPEGD在解碼圖片時,支持對圖片進行旋轉。

      JPEGD在解碼圖片時,支持按源圖片格式解碼。

      圖片分辨率約束:

      輸入圖片分辨率:最大分辨率:8192x8192,最小分辨率:32x32。

      輸出圖片分辨率:JPEGD只對圖片解碼,不會改變圖片分辨率,因此輸出與輸入的圖片分辨率保持一致。

      輸出的寬高對齊:

      這里我僅寫出了我們下方代碼輸出的yuv420SP(NV12 8bit)的情況

      寬stride為寬128對齊后的值。

      高stride為高16對齊后的值。

      內存大小(單位Byte)≥ 寬stride * 高stride * 3/2

      接口說明:

      二、代碼驗證與學習

      代碼思路:

      1.初始化好后,讀取一個jpg圖片并獲得其圖像信息,存入aclrtMalloc存入的內存中

      2.創建dvpp通道,并將其解碼為獲取到的圖像信息大小的yuv圖片

      3.按照次序銷毀相關創建

      好啦!讓我們編譯它!

      有報錯,查看錯誤代碼,和該處代碼:

      發現是銷毀時銷毀順序有問題,把Device和context都銷毀了,才銷毀通道。

      所以,一定要注意銷毀順序!!!之前也提到過了,先創建->后銷毀,后創建->先銷毀!!!

      修改后:

      代碼:

      附上調試好的正確的代碼:

      runDecode.cpp(主函數文件)

      dvpp_decode.cpp(decode處理文件)

      dvpp_decode.h

      cmakelist可以參考我之前的文章里有。

      到這里就結束啦,想要存下來看看結果的同學也可以存成.yuv文件用yuvplayer打開看看哦!

      ps:該文僅是為了記錄CANN訓練營的學習過程所用,不參與任何商業用途,有任何代碼問題可以和我一起討論修改

      關鍵詞:

      責任編輯:Rex_14

      推薦閱讀

      西藏旅游強勁復蘇

      · 2023-05-14 18:08:39
      亚洲线精品久久一区二区三区,成人看片在线观看,草草视频手机在线观看视频,亚洲六月丁香色婷婷综合久久
    • <acronym id="qmqcg"><cite id="qmqcg"></cite></acronym>
      <td id="qmqcg"><em id="qmqcg"></em></td>
      • 主站蜘蛛池模板: 欧美国产激情二区三区| 两个人看的www免费视频| 男女一级做片a性视频| 精品69久久久久久99| 成人福利网址永久在线观看| 国产jizz在线观看| 久久综合久久美利坚合众国| 天天拍天天干天天操| 最近高清日本免费| 国产成人精品日本亚洲| 久久综合琪琪狠狠天天| 91麻豆高清国产在线播放| 欧美黑人疯狂性受xxxxx喷水| 国产麻豆精品免费密入口| 亚洲欧美日韩自偷自拍| 4444在线观看片| 波多野结衣作品在线观看| 夜夜爽免费888视频| 动漫人物桶动漫人物免费观看| 一级毛片在线播放免费| 禁忌2电影在线观看完整版免费观看 | 亚洲国产三级在线观看| jizz国产丝袜18老师美女| 男人桶女人爽羞羞漫画| 国内精品在线播放| 亚洲人成网站免费播放| 51国产偷自视频区视频| 欧美亚洲国产成人高清在线| 国产欧美在线观看一区| 亚洲一卡2卡3卡4卡国产网站| 91av在线导航| 欧美色图综合网| 大学生初次破苞免费视频| 亚洲欧美日韩天堂一区二区| 极品国产高颜值露脸在线| 日韩大片在线永久免费观看网站| 国产一级特黄aaa大片| 久久久久亚洲Av片无码v | 国产在线精品香蕉麻豆| 中文字幕亚洲综合久久| 男人边吃奶边激烈摸下面的视频 |