91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

采用硬件加速實(shí)現(xiàn)的基本思維有哪些

FPGA自習(xí)室 ? 來源:FPGA自習(xí)室 ? 作者:FPGA自習(xí)室 ? 2021-06-30 15:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

很多圖像算法不涉及對顏色的識別,僅需要識別灰度目標(biāo)的變化即可,因此很多時候需要將彩色圖像轉(zhuǎn)換為灰度圖像,在進(jìn)行進(jìn)一步的處理。彩色轉(zhuǎn)灰度計算公式如下:Y=0.299*R + 0.587*G + 0.144*B,作者以05年的嵌入式系統(tǒng)計算,采用640*480的圖像進(jìn)行試驗(yàn),一系列的圖像優(yōu)化如下(只是類比,不要太在意數(shù)據(jù)):

1)一維數(shù)組索引比三維快,因此先將RGB三維數(shù)組轉(zhuǎn)成一維數(shù)組,再直接用上述公式進(jìn)行計算,嵌入式系統(tǒng)計算時間為120秒;

2)由于Windows位圖是ARGB8888的精度,因此計算結(jié)果僅需要8bit整形,可忽略小數(shù),假定左右擴(kuò)大1000倍去轉(zhuǎn)定點(diǎn)計算,則新的公式如下:Y=(299R + 587*G + 144*B)/1000,此時嵌入式系統(tǒng)計算時間加快到45秒;

3)除法計算太慢,擴(kuò)大2N次方可轉(zhuǎn)移位操作,假定擴(kuò)大4096倍轉(zhuǎn)定點(diǎn),則新的公式如下:Y=(R*1224+G*2404+B*467)>>12,計算進(jìn)一步加快到30秒;

4)由于RGB的取值是固定的[0,255],因此公式中每一步運(yùn)算其實(shí)都可以提前計算好,然后直接索引——查找表,這樣將執(zhí)行計算轉(zhuǎn)換成了執(zhí)行索引,此時再測試計算速度驚人的提升到了2秒;

5)接著作者再馬力全開,采用2個ALU并行計算,并且將查找表從int型改成unsigned short型,以及函數(shù)聲明為inline,減少CPU的調(diào)用開銷,最后在嵌入式系統(tǒng)上將計算速度提升到了0.5秒。

以上為conquer 05年《讓你的軟件飛起來》中的相關(guān)數(shù)據(jù),通過軟件優(yōu)化的提升,從最初的120S提升到了0.5S,將近240倍,足以見得一個優(yōu)秀的軟件工程師的重要性,也許IOS和Windows的性能差距那么大,也由此方面原因吧。

8dcbbfca-d8d3-11eb-9e57-12bb97331649.png

目前多媒體視頻普遍到了2K/4K的分辨率,以4K視頻為例,其運(yùn)算量是640*480的30.7倍((4096*2304)/(640*480)≈30.7),那么0.5*30.7=15.35秒怎么做到實(shí)時視頻處理/顯示呢(60FPS下單幀16.667ms),差92000倍呢。PC采用GPU加速處理完成圖形運(yùn)算,但如果是終端產(chǎn)品,如果沒有昂貴的CPU,也沒有其他加速引擎,那簡直天方夜譚。那么,此時主角該上場了——硬件加速器,讓我們開始他的表演。
以4096*2304的4K60視頻RGB轉(zhuǎn)YUV為例,進(jìn)行硬件思維的加速計算解說。不管是FPGA還是ASIC,以門級電路并行加速運(yùn)算,時序邏輯每個時鐘翻轉(zhuǎn)完成一次計算。前面《讓你的軟件飛起來》中(2)已經(jīng)完成了定點(diǎn)化,然后(3)采用乘法+移位的方式實(shí)現(xiàn),(4)采用查找表再累加的方式實(shí)現(xiàn)。單從效率上考慮,兩者計算一個像素的灰度均耗用3個CLK(乘法、累加、移位,或給RAM地址、讀RAM數(shù)據(jù),累加);但從資源上對比,前者占用3個乘法器和2個加法器,乘法器數(shù)量不多,但是綜合速率受器件的限制,后者則需要3個19bit*256深度的RAM,占用了更多的面積,綜合速率上也受到RAM的限制。兩者都用了專用單元庫,但采用硬件乘法器面積更小,且靈活性更強(qiáng),工作量也更?。ú挥脤iT去生成),因此用硬件加速首選采用優(yōu)化方式(3),具體實(shí)現(xiàn)流水線如下:

STEP1:采用三個乘法器,并行計算當(dāng)前輸入像素的RGB通道乘法,即R*1224,G*2404, B*467;

STEP2:將上述三個結(jié)果直接進(jìn)行累加;同時計算下一個像素的STEP1操作;

STEP3:將累加后的結(jié)果向右移動12bit,取低8bit得到最后的結(jié)果;同時計算下一個像素的STEP1,STEP2。

8e206b9c-d8d3-11eb-9e57-12bb97331649.png

以流水線式循環(huán)操作完一副完整的圖像,如果是輸入到下一級算法處理,則整體的延時僅為3個CLK,因?yàn)槿齻€時鐘后得到灰度圖像的1個像素,立馬可以進(jìn)行下一級運(yùn)算;如果圖像寫回緩存,我們再來精算一下:以主頻250MHz為例(事實(shí)上28nm ASIC跑500MHz甚至1GHz都不是問題,F(xiàn)PGA 45nm的250MHz也沒有問題),則需要(4096*2304+2)*4ns=37.75ms>16.667ms。

8e46f8e8-d8d3-11eb-9e57-12bb97331649.png

直接流水線實(shí)現(xiàn),貌似這還不夠滿足我們實(shí)時的需求,畢竟很多運(yùn)算需要從內(nèi)存中來,回到內(nèi)存中去,還得給別的算法預(yù)留時間,彩色轉(zhuǎn)灰度這只是算法的第一步而已,復(fù)雜的還沒來呢。那我們繼續(xù)想辦法突變限制,充分利用硬件加速,挑戰(zhàn)不可能。既然采用門級電路,那不存在線程的約束,然而我們已經(jīng)采用了流水線并行計算灰度值,那進(jìn)一步想是否可以同時計算n個像素的灰度值呢?答案是肯定的,如下圖所示:

8e840436-d8d3-11eb-9e57-12bb97331649.png

假設(shè)DDR控制器位寬是256bit,則一次性可以讀取32個pixel的數(shù)據(jù),32個像素同時計算需要96個乘法器,64個加法器,這些資源的需求甚至對低端的FPGA都不是問題,對于ASIC來說沒有太大的面積影響。因此還是在主頻250MHz,DDR控制器帶寬256bit條件下,我們處理一副4096*2304彩轉(zhuǎn)灰圖像的時間為:37.35/32≈1.17ms<16.667ms,采用并行運(yùn)算提升32倍效率后,4K圖像僅需要1.17ms,完全能夠滿足實(shí)時性,甚至還給后續(xù)算法預(yù)留了90%以上的時間,可以滿足系統(tǒng)的需求。

綜上,采用硬件加速實(shí)現(xiàn)的幾種基本思維,總結(jié)如下:

1)浮點(diǎn)轉(zhuǎn)定點(diǎn),硬件乘法+移位實(shí)現(xiàn)加速;

2)資源夠的前提下,充分利用并行計算,在單位時間提升計算量;

3)充分利用流水線特性,算法采用Pipeline的方式進(jìn)行計算,能不回內(nèi)存就不回內(nèi)存,能用localbuffer就用localbuffer;

4)盡量少用CPU參與計算,硬件自動完成狀態(tài)跳轉(zhuǎn),除非最終結(jié)果浮點(diǎn)等復(fù)雜的運(yùn)算;

文章出處:【微信公眾號:FPGA自習(xí)室】

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22415

    瀏覽量

    636526
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17795

    瀏覽量

    193359
  • 分辨率
    +關(guān)注

    關(guān)注

    2

    文章

    1127

    瀏覽量

    43347

原文標(biāo)題:圖像處理硬件加速引擎——不斷突破限制(下)

文章出處:【微信號:FPGA_Study,微信公眾號:FPGA自習(xí)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    FPGA硬件加速卡設(shè)計原理圖:1-基于Xilinx XCKU115的半高PCIe x8 硬件加速卡 PCIe半高 XCKU115-3-FLVF1924-E芯片

    FPGA硬件加速, PCIe半高卡, XCKU115, 光纖采集卡, 信號計算板, 硬件加速
    的頭像 發(fā)表于 02-12 09:52 ?397次閱讀
    FPGA<b class='flag-5'>硬件加速</b>卡設(shè)計原理圖:1-基于Xilinx XCKU115的半高PCIe x8 <b class='flag-5'>硬件加速</b>卡 PCIe半高 XCKU115-3-FLVF1924-E芯片

    一文掌握瑞芯微RK系列NPU算子支持全景:覆蓋6大平臺,新增硬件加速算子,嵌入式AI開發(fā)不踩坑

    Operator List v2.0.0-beta》文檔,不僅更新了 6 大主流平臺的算子支持細(xì)節(jié),還新增了exSDPAttention、exMatMul 等硬件加速算子,為開發(fā)者提供了更清晰的開發(fā)指引。
    的頭像 發(fā)表于 02-06 16:33 ?1062次閱讀
    一文掌握瑞芯微RK系列NPU算子支持全景:覆蓋6大平臺,新增<b class='flag-5'>硬件加速</b>算子,嵌入式AI開發(fā)不踩坑

    長距傳輸,安全無憂——探秘NPB 2.0中的硬件MACsec技術(shù)

    本文介紹NPB 2.0如何利用交換芯片內(nèi)置的MACsec硬件能力,實(shí)現(xiàn)對長距離鏡像流量的鏈路層加密。MACsec通過硬件加速提供線速安全傳輸,對比TLS與IPsec,其在第二層實(shí)現(xiàn)全流
    的頭像 發(fā)表于 01-04 14:27 ?387次閱讀
    長距傳輸,安全無憂——探秘NPB 2.0中的<b class='flag-5'>硬件</b>MACsec技術(shù)

    復(fù)雜的軟件算法硬件IP核的實(shí)現(xiàn)

    硬件加速 IP 核 HDL 文件的生成分為兩個步驟,首先根據(jù)將要接入的 SOPC 系統(tǒng)的總線的特性,將算法做適當(dāng)?shù)陌b、暴露相關(guān)的接口以及調(diào)用方法,即適配總線接口。不同的 SOPC 總線不同的時序以及
    發(fā)表于 10-30 07:02

    常用硬件加速的方法

    之前總結(jié)了一些常用硬件加速方法 1)面積換速度:也就是串轉(zhuǎn)并運(yùn)算,可以多個模塊同時計算; 2)時間換空間:時序收斂下通過頻率提高性能,雖然面積可能稍微加大點(diǎn); 3)流水線操作:流水線以面積換性能,以
    發(fā)表于 10-29 06:20

    硬件協(xié)同技術(shù)分享 - 任務(wù)劃分 + 自定義指令集

    ),基于CPU的純軟件計算時間長達(dá)10秒以上。這意味著該模塊需要通過硬件加速器來實(shí)現(xiàn)。 我們的設(shè)計將硬件加速器掛載到SoC外圍總線上,自動獲取麥克風(fēng)的數(shù)值計算并輸出數(shù)據(jù)到FIFO中,實(shí)現(xiàn)
    發(fā)表于 10-28 08:03

    RSA加速實(shí)現(xiàn)思路

    1 關(guān)于RSA算法 RSA為非對稱加密算法(也稱為公開密鑰算法),是當(dāng)前比較普遍使用的非對稱加密算法之一,常用于密鑰交換和數(shù)字簽名。RSA是一種較為高級、可基于硬件和軟件實(shí)現(xiàn)的加密算法,安全性能高
    發(fā)表于 10-28 07:28

    硬件加速模塊的時鐘設(shè)計

    硬件加速模塊需要四個時鐘,分別為clk_l , clk_r , clk_c , clk_n 。 clk_l : 整個硬件加速模塊為了最大化的節(jié)約時間成本而采用了類似處理器的流水線設(shè)計,具體上將每一層
    發(fā)表于 10-23 07:28

    睿擎SDK V1.5.0重磅升級:EtherCAT低抖動,AMP虛擬網(wǎng)卡,LVGL硬件加速,多核調(diào)試等性能大幅提升|產(chǎn)品動態(tài)

    )。AMP模式下虛擬網(wǎng)卡驅(qū)動支持,雙系統(tǒng)通信更加便利,更完善的Perfetto多核性能調(diào)試工具,AIUVC人臉識別示例,優(yōu)化LVGL支持硬件加速等。并提供對應(yīng)的教
    的頭像 發(fā)表于 09-29 17:36 ?1w次閱讀
    睿擎SDK V1.5.0重磅升級:EtherCAT低抖動,AMP虛擬網(wǎng)卡,LVGL<b class='flag-5'>硬件加速</b>,多核調(diào)試等性能大幅提升|產(chǎn)品動態(tài)

    如何驗(yàn)證硬件加速是否真正提升了通信協(xié)議的安全性?

    驗(yàn)證硬件加速是否真正提升通信協(xié)議的安全性,需從 安全功能正確性、抗攻擊能力增強(qiáng)、安全性能適配、合規(guī)一致性 等核心維度展開,結(jié)合實(shí)驗(yàn)室測試與真實(shí)場景驗(yàn)證,避免 “硬件參與即安全提升” 的表面判斷。以下
    的頭像 發(fā)表于 08-27 10:16 ?1158次閱讀
    如何驗(yàn)證<b class='flag-5'>硬件加速</b>是否真正提升了通信協(xié)議的安全性?

    哪些方法可以確保硬件加速與通信協(xié)議的兼容性?

    ? 確保硬件加速與通信協(xié)議的兼容性,核心是從 硬件選型、協(xié)議標(biāo)準(zhǔn)匹配、軟硬件接口適配、全場景測試驗(yàn)證 四個維度建立閉環(huán),避免因硬件功能缺失、接口不兼容或協(xié)議特性支持不全導(dǎo)致的性能損耗、
    的頭像 發(fā)表于 08-27 10:07 ?1101次閱讀

    如何利用硬件加速提升通信協(xié)議的安全性?

    產(chǎn)品實(shí)拍圖 利用硬件加速提升通信協(xié)議安全性,核心是通過 專用硬件模塊或可編程硬件 ,承接軟件層面難以高效處理的安全關(guān)鍵操作(如加密解密、認(rèn)證、密鑰管理等),在提升性能的同時,通過硬件
    的頭像 發(fā)表于 08-27 09:59 ?992次閱讀
    如何利用<b class='flag-5'>硬件加速</b>提升通信協(xié)議的安全性?

    RISC-V 的平臺思維和生態(tài)思維

    RISC-V 的平臺思維時指出,平臺思維指的是硬件(CPU、加速器、總線等)、固件和軟件的整體集成。標(biāo)準(zhǔn)化 ISA 配置文件是必要的
    發(fā)表于 07-17 14:04 ?4187次閱讀

    國際首創(chuàng)新突破!中國團(tuán)隊以存算一體排序架構(gòu)攻克智能硬件加速難題

    2025 年 6 月 25 日,北京大學(xué)團(tuán)隊在智能計算硬件方面取得領(lǐng)先突破,國際上首次實(shí)現(xiàn)了基于存算一體技術(shù)的高效排序硬件架構(gòu) (A fast and reconfigurable
    的頭像 發(fā)表于 07-02 16:50 ?841次閱讀
    國際首創(chuàng)新突破!中國團(tuán)隊以存算一體排序架構(gòu)攻克智能<b class='flag-5'>硬件加速</b>難題

    2D圖形渲染緩慢怎么加快?

    到 glReadPixels (慢!):沒有可用的 GL 實(shí)現(xiàn)” 搜索表明這可能是因?yàn)槲磫⒂?b class='flag-5'>硬件加速。 有誰知道如何檢查是否啟用了硬件加速?或者,如果我可能缺少一些應(yīng)該包含的 Yocto 軟件包? 謝謝。
    發(fā)表于 04-02 06:46