2009.09.18 - Progress update
‧改完第20個動態宣告,這一部分到目前先告一個段落。
[繼續閱讀]‧接下來要把程式放到VisualDSP++上面去跑,預計還會遇到一些記憶體空間不足的問題。
2009.09.11 - Progress update
‧改完第19個動態宣告。
2009.09.04 - Progress update
‧改完第18個動態宣告。
2009.09.01 - Progress update
‧改完第16、17個動態宣告。
//////////////////////////////////////////////////////////
↓↓↓↓↓↓↓↓↓↓ 歷史紀錄 ↓↓↓↓↓↓↓↓↓↓
//////////////////////////////////////////////////////////
2009.02.24 - AAC decoder porting progress
- 這次的工作是把AAC Decoder porting到2191上面,這原本應該是很久以前的工作。
- AAC的版本是HimaxDecoder20080408_V870(Final),然後不包含SBR和PS的部分。
- 目前先移除原本程式中Fixed Point的部分以及測量用的時間標籤,然後先把程式中動態宣告的資料改成靜態宣告的方式,不過這部分還沒有全部改完。
- 有一些之前已經知道會遇到的問題之後得再去想辦法解決包括:
a.記憶體大小、配置的問題。
b.CCE的問題。
[ 投影片 ]
--------------------------------------------------------------------------------
2009.02.27 - Some previous AAC related things
01 - Tree of function call
這是 Himax Decoder V870 的 Function Call 的樹狀結構,內容為各個function之間的呼叫關係。使用投影片放映模式,區塊代表function。其中:藍色區塊代表該function下層沒有呼叫其他function,而紅色區塊代表該function下層還有呼叫其他function。藍色向右的箭號會跳到下一層function所在的投影片,而橘色向左的箭號則會跳回上層function所在的投影片。至於左下角的房子則會跳到最上層的投影片。
[ 投影片 ]
02 - AAC function analysis 1
這是當時想知道哪些function比較耗計算時間所做的第一次測試,不過當時不曉得,所以把寫檔的時間(OutputToPcm)也算了進去。
[ 投影片 ]
03 - AAC function analysis 2
這是後來做的第二次測試結果,選了一首兩分半流行樂以及AAC的一些Testing Bitstream當作測試音檔。主要針對RawDataBlockCheckCCE、RawDataBlock、IndividualChannelStream還有一些其他的function(例如:ms、is)去測試。測試結果中的Time代表的是每個function跑的時間,單位是ms;Ratio1代表的是該function在上層呼叫的function中所佔的比率;Ratio2代表的則是該function在全部時間中所佔的比率。
[ 投影片1 - Testing bitstream and partial results ]
[ 投影片2 - Total testing results ]
04 - AAC decoder v870 about CCE
這部分簡介了一下CCE(Coupling Channel Element),CCE主要是用於多聲道時,可將多個聲道中共同的部分擷取出來一起編碼,然後於解碼還原時再分別疊加回原本的各個聲道中。程式中須透過RawDataBlackcheckCCE這個function來得知哪些地方使用了CCE,並且將其資訊儲存於hDecoder這個指標指向的struct中,當還原時若需要CCE資訊,再到該struct中讀取。
[ 投影片 ]
05 - Known problems on 2191
這部分放上2191的記憶體分配,以及在2191上已經知道會遇到的一些問題,包括:a.不能使用malloc動態配置記憶體空間,須使用靜態宣告。b.在AAC Decoder V870中的struct Decoder_Struct光宣告就占掉了45K的大小,但是2191上的記憶體空間(DM1+DM2)大概只有27K多。c.若要使用外部記憶體,須透過external _memory_read和external _memory_write這兩個function。
[ 投影片 ]
--------------------------------------------------------------------------------
2009.03.11 - Progress update
之前原本打算先把程式中動態宣告的部分改成靜態宣告,程式中一共有21的地方有使用到動態宣告,目前只改完其中2個。因為在改第3個的時候,有其他2個動態宣告和它有相關,所以當時一起改,不過改完之後,compile雖然有過,可是執行時就是會有問題。
2009.04.02 – Progress update
-
把之前執行時會有問題的版本先回復到前一版,修改完第3個使用動態宣告的地方。
2009.04.08 – Progress update
- 改完第4個動態宣告。
2009.04.13 – Progress update
- 總共有二十個地方要改,目前改完第五個。
- 修改的原因是因為VisualDSP++不支援動態宣告的方式,所以必須改為靜態宣告。
2009.04.16 – Progress update
- 改完第6個動態宣告。
2009.07.03 – Progress update
- 這部分停了一陣子沒動,之前改的也有點忘記 @@,現在繼續改之前沒改完的部分,希望能盡快改完。
- 目前改完第7個動態宣告。
2009.07.10 - Progress update
- 改完第8個動態宣告。
2009.07.17 - Progress update
- 改完第9個動態宣告。
2009.07.24 - Progress update
- 改完第10個動態宣告。
2009.07.31 - Progress update
- 改完第11個動態宣告。
2009.08.07 - Progress update
- 改完第12個動態宣告。
2009.08.14 - Progress update
- 改完第13個動態宣告。
- 目前這部分要修改的地方一共有20個。
- 修改後的結果和原本的比較應該是一樣的,並沒有比較好。
2009.08.21 - Progress update
- 改完第14個動態宣告。
2009.08.28 - Progress update
- 改完第15個動態宣告。
2009.09.01 - Progress update
- 改完第16、17個動態宣告。
2009.09.04 - Progress update
- 改完第18個動態宣告。
2009.09.11 - Progress update
- 改完第19個動態宣告。
--------------------------------------------------------------------------------
11 則留言:
很好, 要回到常軌了嗎?
請不要用進度報告一詞, 誰知道你講什麼? 過去的那串怎麼沒連過來, 這樣沒頭沒尾的不太好.
請立即改善, 希望此後每周都可以看到你的進展.
因為之前是講pac,我想說不太一樣,
所以另外開了一篇。
還是說要把這兩串併在一起?
AAC. Not PAC.
Don't you have any previous AAC related things?
1. 針對第二點, 當時我們release給Himax的AAC fixed point decoder, 因為CCE的部份是由學長自己加進去的, 是故這個部份所使用到的定點數運算, 我是自己修改而非根據FAAD2裡面定義之格式, 後來的SBR和PS, 則是使用原本FAAD2裡面所定義的格式, 我印象中這個final的版本, 我好像偷懶沒把兩個合併起來><
所以皓鈞可以使用原來CCE那版再加上PNS之前我修改好的部分應該就可以了^^(應該較快orz)
2. 上面提到PNS的部份可能要請皓鈞注意一下在Quantization那裡, 印象中有稍稍做一些化簡
3. 針對第四點, 在之前做的時候應該就把可以用到的記憶體空間, 大致上都用得差不多了>"<
3.1 在CCE的部份, 需要使用到DM的部份, 就是因為定點數運算而所需要暫存的表格! (印象中好像是120個word大小) 這個應該是還可以塞到DM裡面的~
3.2 在寫給Himax的程式中, 為了方便, 所以有多出一些定點數浮點數轉換的暫存空間, 這個部份是可以移除不用使用的!
3.3 剩下來的會需要比較大空間的印象中是cc_gain和gain_element, 這個是否兩個可以合併成一個(當時為了方便所以使用了兩個陣列去存)
3.4 至於上面3.3提到的cc_gain的部份==>
3.4.1 如同皓鈞在第四點提到的是否可以用配置上的方式來使用DM中未用到的空間
3.4.2 SCREAM DSP-16在internal memory中除了PM, DM外另外尚有stack和heap的空間, 這兩個部份是目前程式幾乎完全沒有使用到的部份.
heap不推薦使用, 而stack的部份, 根據學長的說法是有bug產生的話很不好去debug, 所以當時並未去使用這個部份, 是否在cc_gain這裡可以利用一下這段空間, 或許這樣就可以把CCE放進去了~
手邊沒有程式, 憑印象寫的, 或許有些地方不同, 就請皓鈞再對照一下程式了! 加油^^
1.喔,我原本可能誤解老師的意思了,
那我整理一下,晚一點再補上來。
2.謝謝小鄔學長的關心,打了那麼多字,
真的非常感謝您。 ^^
你可以把總共有多少地方要改, 改了多少, 以及改後產生的改進說明一下嗎?
20個, 那你一星期改一兩個可能要改到下半年了, 可以加速嗎?
另外不知道你改是有改對還是沒? 事不是這一關過了就ok? 我很擔心呢!!
1.好的,我會加快速度。
2.有沒有改對的話?我是做RMS,不過我只有用其中兩個bitstream做,然後結果相同我就先假設它是對的。
3.這部分改完後,還會有一個問題,就是記憶體的配置和記憶體空間不足的問題。
1. 我不知道總共有幾個要改, 假如有50個要改, 哪我要等上一年耶!
2. 我不知道改後的結果是變好還是一樣, 可以說明一下嘛?
3. 每週可以增加其他的material嗎?
請用分隔方式, 以免你的Post佔據太大頁面.
另外是否該開始你的Reverberation paper與cuda的報告了呢?
改完後, 你可以分享一下是否可以正常在2191環境下執行了嗎? 效果如何?
張貼留言