關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > H.264視頻解碼芯片中與濾波相關的存儲器的設計

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

        作者: 時間:2011-03-30 來源:網絡 收藏

          4 SRAM 的規劃與設計

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

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

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

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

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

         各個模塊之間的時序關系圖

        圖4 各個模塊之間的時序關系圖

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

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

          (2)垂直濾波后的數據的存儲

          我們都知道濾波過程是一個先垂直后水平的過程,因此我們需要有一片SRAM 來存儲水平濾波的結果。這片SRAM 就叫SRAM_BUFFER。因為水平濾波時正在從SRAM_MB 中讀取數據,同一時間不能同時向SRAM 中讀取、寫入數據。因此我們用SRAM_BUFFER 來暫存垂直濾波結束后的數據。水平濾波時則從SRAM_BUFFER 中讀取數據, 濾波后存儲到SRAM_MB 中。

          5 總結

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


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平昌县| 余姚市| 东阿县| 手游| 水富县| 海宁市| 应城市| 奇台县| 正镶白旗| 和龙市| 巫溪县| 桐梓县| 思南县| 芒康县| 东兰县| 济阳县| 宜都市| 射阳县| 开鲁县| 留坝县| 洞口县| 泰和县| 屏边| 昭平县| 山阴县| 府谷县| 红安县| 通道| 社旗县| 开原市| 电白县| 张家川| 成武县| 从江县| 天峻县| 闸北区| 江西省| 莲花县| 浠水县| 红安县| 定陶县|