<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > H.264視頻解碼芯片中與濾波相關(guān)的存儲器的設計

H.264視頻解碼芯片中與濾波相關(guān)的存儲器的設計

作者: 時(shí)間:2011-03-30 來(lái)源:網(wǎng)絡(luò ) 收藏

  4 SRAM 的規劃與設計

  在H.264 解碼過(guò)程中,數據由熵解碼經(jīng)過(guò)運動(dòng)補償后再通過(guò)環(huán)路最終送到中,之后顯示解碼芯片從中不斷的提取數據送到顯示器上,最終完成數據的解碼,如圖3 所示。在的過(guò)程中,宏塊中的數據頻繁地被調用。而SRAM 的讀寫(xiě)速度快的特點(diǎn)能很好地適用這一要求。因為在H.264 中最小的單元為block,運動(dòng)矢量等都是以block 為單位來(lái)進(jìn)行傳遞。因此以block 為單位來(lái)進(jìn)行數據的存取會(huì )帶來(lái)很大的方便。本設計中各個(gè)SRAM 每一個(gè)地址存放一個(gè)block 單元的數據(16 個(gè)像素點(diǎn)),即采用128bit 的SRAM。

DRAM 與其它模塊之間的數據交互

圖3 DRAM 與其它模塊之間的數據交互

  在H.264 中運動(dòng)補償結束后的數據交由環(huán)路運算后寫(xiě)入DRAM, 我們把寫(xiě)入DRAM 的這一過(guò)程稱(chēng)為Store 過(guò)程,由Store 模塊負責。由圖3 可以看出MC 與Deblock 是一個(gè)串聯(lián)的關(guān)系。為了提高解碼的速度,我們將運動(dòng)補償與環(huán)路濾波并行執行,即當前解碼的結束并不以環(huán)路濾波的結束為標志,而當前宏塊的運動(dòng)補償一結束我們就可以開(kāi)始下一個(gè)宏塊的解碼。經(jīng)過(guò)大量的實(shí)驗發(fā)現:MC 的時(shí)間遠比block的時(shí)間大很多,當后一個(gè)模塊要進(jìn)行濾波時(shí)濾波模塊早已準備完畢。最后對存儲模塊我們也同樣的用并行的思想來(lái)加快解碼的速度。結果當作MBx 的MC 時(shí),做MB(x-1)的濾波,同時(shí)MB(x-2)存儲。此時(shí)需要注意MB(x-1)的濾波和MB(x-2)的存儲并不是同時(shí)開(kāi)始。因為做MB(x-1)的濾波時(shí)也會(huì )影響到MB(x-2)中的數據。

  因此我們要等MB(x-1)的第一條垂直邊濾波結束后才開(kāi)始MB(x-2)的存儲。具體的時(shí)間關(guān)系如圖4 所示。

 各個(gè)模塊之間的時(shí)序關(guān)系圖

圖4 各個(gè)模塊之間的時(shí)序關(guān)系圖

 ?。?)濾波前數據的存儲及濾波結束后數據的存儲

  由于設計中采用此種流程,我們需要3 片SRAM來(lái)存儲MC 的運算結果。這3 片SRAM 交替地進(jìn)行MC、Deblock 和Store。我們稱(chēng)這3 片SRAM 為SRAM_M(jìn)B,濾波結束后的數據也存儲在此SRAM 中,在經(jīng)Store 模塊將此數據存儲到DRAM 中去。因為濾波結束時(shí),恰好原來(lái)SRAM_M(jìn)B 中的數據也已經(jīng)成為無(wú)效數據。這里需要注意,由于有幀場(chǎng)自適應的情況存在,濾波結束后的數據如果幀場(chǎng)情況不一樣,我們還需要根據數據不同的情況進(jìn)行適當的幀場(chǎng)轉化,之后再將數據存入DRAM。

 ?。?)垂直濾波后的數據的存儲

  我們都知道濾波過(guò)程是一個(gè)先垂直后水平的過(guò)程,因此我們需要有一片SRAM 來(lái)存儲水平濾波的結果。這片SRAM 就叫SRAM_BUFFER。因為水平濾波時(shí)正在從SRAM_M(jìn)B 中讀取數據,同一時(shí)間不能同時(shí)向SRAM 中讀取、寫(xiě)入數據。因此我們用SRAM_BUFFER 來(lái)暫存垂直濾波結束后的數據。水平濾波時(shí)則從SRAM_BUFFER 中讀取數據, 濾波后存儲到SRAM_M(jìn)B 中。

  5 總結

  本文對H.264 解碼芯片中的濾波、存儲模塊作了深入的分析。并根據各個(gè)時(shí)間數據的特點(diǎn)作相應的的設計, 這種設計方法經(jīng)過(guò)驗證能很好地處理H.264 中濾波及存儲時(shí)的數據的調度。整個(gè)濾波過(guò)程約52 個(gè)周期就可以完成。在MBAFF 情況時(shí)各種數據的轉化時(shí)鐘周期控制在70 個(gè)以?xún)?。這種設計符合要求,并在FPGA 上驗證后能夠正常的運行,運行時(shí)鐘達到60MHz,能實(shí)時(shí)地完成對高清圖像的解碼。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 視頻解碼芯片 濾波 存儲器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>