新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于C6000系列DSP的MPEG-4編碼器實現

        基于C6000系列DSP的MPEG-4編碼器實現

        作者: 時間:2008-11-27 來源:網絡 收藏

          ·可以將兩個16位數據或者四個8位數據合并成一個32位數據,以提高存取效率;

          ·必須靜態地知道每條操作指令執行需要的時鐘周期,這樣才能取得該操作的正確結果;

          ·這種結構的處理器不能處理動態事件,例如Cache突然消失;

          ·對于多周期才能完成的指令,在正確計算的基礎上,一定要提前執行,以免出現一條指令必須等上一條指令執行結束才能執行的情況。

          下面結合C6000系列的指令及其具體資源情況,以中的算法為例說明如何利用這兩種結構設計出高效的代碼。

          3.1 利用流水線結構設計程序

          流水線是指指令的處理可分為幾個子操作,每個子操作由不同的單元完成。對每個單元來說,每隔一個時鐘周期可進入一條新指令,在同一時間內不同單元可以同時處理多條指令。在C6000中B(.unit)lable是一條跳轉指令,它的執行周期為7個時鐘周期,也就是說,在安排這條指令之后6個時鐘周期才能使程序轉移到lable處執行,以程序1為例說明如何利用流水線結構設計程序。該程序的執行順序如下:0000→0004→0008→000C-0010→0014→0008→000C...從程序執行順序知道,要想在執行完0014處的指令后跳轉到LOOP處,就應該在0014的前6個時鐘周期處安排這條指令;如果不提前安排好這條指令,而是在0014后放置這條指令,就需要使CPU等待6個時鐘周期才能跳到LOOP處,從而使程序運行效率降低。從這個程序的執行順序可以看出,必須提前知道每一條指令的運行周期數,并提前安排該指令,才能達到減少等待周期、提高程序效率的效果。C6000系列指令集包括許多多時鐘周期的指令,如跳轉指令、數據訪問指令等。編碼算法需要頻繁地訪問大量數據,并且有很多循環,無論是數據訪問還是循環都要用到多時鐘周期指令。以MEPG-4的DCT算法為例,每一個8×8的塊變換需要用16次的跳轉指令和256次數據訪問指令,由此可見流水線在程序優化中所起的作用。



        關鍵詞: DSP MPEG-4 視頻編碼

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泸水县| 商丘市| 合水县| 神农架林区| 卓资县| 安塞县| 唐山市| 元阳县| 金平| 孟津县| 中方县| 平乐县| 通州区| 富平县| 尼玛县| 理塘县| 玉环县| 朝阳县| 威宁| 赫章县| 丰顺县| 鄱阳县| 西城区| 普兰县| 公主岭市| 正宁县| 福鼎市| 榆中县| 巢湖市| 类乌齐县| 泗洪县| 潮安县| 呈贡县| 金平| 枣强县| 玉环县| 上饶市| 德清县| 横峰县| 富阳市| 鸡泽县|