亚洲线精品久久一区二区三区,成人看片在线观看,草草视频手机在线观看视频,亚洲六月丁香色婷婷综合久久

首頁 > 生活 >

【2023 · CANN訓(xùn)練營(yíng)第一季】數(shù)據(jù)預(yù)處理-JPEG數(shù)據(jù)解碼

【2023 · CANN訓(xùn)練營(yíng)第一季】數(shù)據(jù)預(yù)處理-JPEG數(shù)據(jù)解碼

文檔參考:CANN文檔社區(qū)版: 6.0.RC1.alpha001

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

一、媒體數(shù)據(jù)處理API的V1

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


(資料圖片)

在Device側(cè),我們對(duì)要進(jìn)行媒體數(shù)據(jù)處理的相關(guān)數(shù)據(jù)的內(nèi)存的申請(qǐng)和釋放,就不可以簡(jiǎn)單的使用malloc,new或者aclrtmalloc等申請(qǐng)的內(nèi)存了,我們需要使用dvpp接口。并且,從性能角度,為了減少拷貝,媒體數(shù)據(jù)處理的輸出作為模型推理的輸入,實(shí)現(xiàn)內(nèi)存復(fù)用。我們盡量申請(qǐng)足夠大的內(nèi)存進(jìn)行反復(fù)使用,盡可能避免反復(fù)使用dvpp的接口申請(qǐng)內(nèi)存和釋放,造成一定的性能損耗。

1.dvpp內(nèi)存和通道

(1)內(nèi)存申請(qǐng)與釋放

note:調(diào)用該接口申請(qǐng)大頁內(nèi)存失敗,僅表示系統(tǒng)內(nèi)的大頁內(nèi)存不夠

(2)通道的創(chuàng)建與釋放

2.JPEGD相關(guān)接口

性能指標(biāo):

JPEGD性能指標(biāo)是基于硬件解碼的性能,JPEGD硬件解碼不支持3個(gè)SOS的圖片解碼,對(duì)于硬件不支持的格式,會(huì)使用軟件解碼,軟件解碼性能參考為1080P 15fps。JPEGD解碼的輸出圖片如果涉及旋轉(zhuǎn),則性能指標(biāo)低于軟件解碼的參考值,例如對(duì)于1080P的圖片,性能指標(biāo)低于15fps。

以下性能數(shù)據(jù),是基于一個(gè)stream上下發(fā)1個(gè)異步媒體數(shù)據(jù)處理任務(wù)后,執(zhí)行一次aclrtSynchronizeStream接口。

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

功能說明:

JPEGD在解碼圖片時(shí),支持對(duì)圖片進(jìn)行旋轉(zhuǎn)。

JPEGD在解碼圖片時(shí),支持按源圖片格式解碼。

圖片分辨率約束:

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

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

輸出的寬高對(duì)齊:

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

寬stride為寬128對(duì)齊后的值。

高stride為高16對(duì)齊后的值。

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

接口說明:

二、代碼驗(yàn)證與學(xué)習(xí)

代碼思路:

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

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

3.按照次序銷毀相關(guān)創(chuàng)建

好啦!讓我們編譯它!

有報(bào)錯(cuò),查看錯(cuò)誤代碼,和該處代碼:

發(fā)現(xiàn)是銷毀時(shí)銷毀順序有問題,把Device和context都銷毀了,才銷毀通道。

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

修改后:

代碼:

附上調(diào)試好的正確的代碼:

runDecode.cpp(主函數(shù)文件)

dvpp_decode.cpp(decode處理文件)

dvpp_decode.h

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

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

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

關(guān)鍵詞:

責(zé)任編輯:Rex_14

推薦閱讀
亚洲线精品久久一区二区三区,成人看片在线观看,草草视频手机在线观看视频,亚洲六月丁香色婷婷综合久久
  • <acronym id="qmqcg"><cite id="qmqcg"></cite></acronym>
    <td id="qmqcg"><em id="qmqcg"></em></td>
    • 主站蜘蛛池模板: 国产又爽又黄的激情精品视频| 日韩电影在线观看中文字幕 | 成人激情黄色网| 国产99久久精品一区二区永久免费 | 一区国产精品视频| 中文字幕久热精品视频在线| 亚洲性生活视频在线观看| 中文字幕精品影院| 欧美乱人伦中文字幕在线| 欧美电影在线观看完整版| 国产精品成人免费视频| 91在线观看欧美日韩| 亚洲美女中文字幕| 欧美精品亚州精品| 欧美国产精品va在线观看| 久久久久久久久久久成人| 国产成人+综合亚洲+天堂| 亚洲国产91色在线| www.欧美免费| 欧美精品videosex性欧美| 国产日产欧美a一级在线| 日韩高清a**址| 久久国产色av| 欧亚精品中文字幕| 亚洲综合色av| 日韩色av导航| 欧美最猛性xxxxx免费| 亚洲激情小视频| 九九九久久久久久| 国产不卡av在线免费观看| 日韩激情视频在线| 大量国产精品视频| 国产成人一区二| 一区二区av在线| 国内外成人免费激情在线视频网站| 国产免费成人av| 色噜噜亚洲精品中文字幕| 91sao在线观看国产| 亚洲女人被黑人巨大进入| 欧美极品少妇与黑人| 日韩www在线|