實作

     搭配DSP使用的軟體是Code Composer Studio(簡稱CCS),其語法和C語言類似,但一些在Visual C上能跑的程式,在CCS上會無法Compile過,或是CompileBuild過了卻無法正確執行,某些語法或函數CCS並不支援,無法將原程式直接移植到DSP上,此次專題主要目標便是把H.263C code移植到板子上,並能夠正常執行。

工作進度

 2月底~3月底

bullet

C語言的複習與加強

   複習久未使用的C語言,並開始練習使用以前未學到的東西,例如前置處理器、條件式編譯、檔案的開啟等

bullet

認識視訊壓縮編碼原理

   接觸視訊編碼的基礎,了解壓縮原理,視訊的組成,巨方塊、動作向量等

bullet

H.261視訊標準

bullet

接觸DSP,練習CCS的使用及其語法

    練習CCS的使用,了解其工作環境與基本使用方法。  back to top

3月底~4月中

bullet

H.263視訊標準

   因H.261太小,所以H.261升級為H.263

bullet

C語言

   繼續加強C語言能力

bullet

H.263 Codec(原始C Code)

   開始看H.263C code,首次接觸這種大程式,一時不知該如何下手,把原程式碼直接放到CCS上,針對其Compile錯誤之處開始著手。  back to top

4月中~5月中

bullet

H.263+

   因程式碼有支援到H.263+,所以也需大致了解H.263+

bullet

程式碼修改

   1.Encoder

      原本程式直接放上,有error:symbol _xxx  is defined multiple times,其原因是在某個Header file "sim.h"中,宣告了幾乎大部分會用到的變數,在其他的Source files裡,程式碼一開始幾乎都會把"sim.h" include進去,造成了CCS誤認變數重複定義(Visual C沒有此問題),使用"extern"把變數宣告成全域變數可解決此問題。將有error的變數直接在各個Source files裡宣告成 "extern int variables",唯獨在"main.c"以平常方式宣告,並把原本"sim.h"裡的刪掉,如此可以在CCSCompile&Build通過。

  Fig.1-1  sim.h裡宣告的變數

 

  Fig.1-2 修改後的main.c    Fig.1-3 修改後的coder.c

   2.Decoder

      沒有像encoder的錯誤,但是有個不能用的C的內建Header file,錯誤如下

  Fig.2  fcntl.h無法使用

    找出"fctnl.h",將裡面需要的內容直接改到有include "fctnl.h"的檔案,在CCSCompile&Build成功。

  3.使用cmd檔配置記憶體區塊

     雖然encoderdecoder都成功在CCSCompile&Build,但Load到板子上跑了卻沒有結果出現,使用cmd檔配置記憶體區塊可解決此問題,找出原本板子有關H.263example,仿照其設定來設定cmd檔,程式Load到板子可執行。   back to top

5月中~6月初

bullet

Load Sequence

   學習如何將video sequence讀進程式Visual C上使用相同程式碼測試成功後,到CCS上卻只能跑一張 I-Frame,即使從中間的frame開始編碼也是一樣,跑完一張後程式即卡住,CPU一直運轉,卡在算helf-pixel時...

   應該是此處程式寫法CCS跑不過,需針對此處演算法的執行直接加以修改。  back to top