新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于TMS320DM3730的H.264編碼器移植與優化方法研究

        基于TMS320DM3730的H.264編碼器移植與優化方法研究

        作者: 時間:2013-05-18 來源:網絡 收藏
        該指令的作用是將對象symbol排列到constant指定的列邊界上以方便讀取。例如DM3730是支持對非對齊雙字的一次性讀取,但是如果內存地址對齊,同一個時鐘周期內可以同時進行兩組雙字的讀取,而如果不對齊則只能讀取一組。因此在定義數組時使用DATA_ALIGN指令,可以大大減少數據讀取時內存地址不對齊的情況,增加程序的并行性。
        3)使用最小循環次數指令MUST_ITERATE
        最小循環次數指令的完整語法是:
        #pragma MUST_ITERATE(min,max,multiple)
        其中min和max分別代表了循環的最小和最大迭代次數,multiple表明了循環次數是其倍數。使用最小循環次數程序指令可以通過通知編譯器至少進行多少次循環,那樣編譯器可以將min次循環進行展開進行軟件流水,進行循環之間并行處理,提高程序運行速度。
        3.4 匯編代碼的優化
        C語言編譯器通常只能完成大部分的工作,這個階段的C語言代碼在DSP端運行的效率并不是很高,為了進一步改善性能,對那些算法簡單但計算量大且使用很頻繁的函數使用匯編語言進行編寫實現,可以大大提高程序運行速度。例如快速DCT變換、SAD、量化等算法過程可以考慮用匯編語言來編寫。
        線性匯編是TI公司簡化C6000系列DSP的匯編語言而開發設計的,介于高級語言和機器語言之間。線性匯編語言的指令系統和普通的匯編語言的指令系統基本相同。在編寫線性匯編語言的時候是不需要考慮到指令的延時、寄存器的使用和功能單元的分配,C6000編譯器提供了匯編優化器進行匯編優化,會綜合指令的延時、寄存器的使用和功能單元的分配進行優化,讓線性匯編語言盡量的進行軟件流水和指令的并行處理,提高匯編的運行速度。DM3730的DSP核為C64x+系列,線性匯編在上面是可以完美運行的。

        d.JPG


        表2所示為使用CCS中的profile工具測量的一些函數的C語言函數和線性匯編函數在DM3730上運行時鐘周期對比。

        4 實驗結果分析
        x264移植成功后,使用標準CIF格式視頻序列對移植和優化后的x264在DM3730上進行測試,測試結果如下表3所示。

        e.JPG


        從表3可以看出,x264程序經過優化后,峰值信噪比有略微的下降,但該下降不影響整體視頻效果,而編碼速度得到了大大的提高。

        5 結束語
        文中基于DM3730平臺,描述了進行x264移植應該注意的主要問題,然后通過編譯選項優化、內存優化、C語言代碼的優化和匯編代碼的優化等優化方法對x264編碼器進行了優化。最后視頻編碼測試表明,優化的效果顯著,且均值信噪比下降不多。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 文化| 安阳市| 灵丘县| 沅江市| 韶山市| 茶陵县| 桐梓县| 兴和县| 巴塘县| 临桂县| 西乡县| 温州市| 石阡县| 合川市| 堆龙德庆县| 枣庄市| 城市| 济南市| 革吉县| 天长市| 车致| 元阳县| 南木林县| 兴国县| 馆陶县| 阿勒泰市| 北海市| 封开县| 和林格尔县| 亚东县| 交口县| 揭阳市| 磐石市| 江北区| 错那县| 塘沽区| 饶阳县| 临海市| 邛崃市| 蒙山县| 璧山县|