Presentation is loading. Please wait.

Presentation is loading. Please wait.

Toward Optimized MPEG-4 Decoder 羅仲耘 吳方荃楊士萱教授 指導. Outline 專題方向簡介 改善項目 改善方法 未來工作.

Similar presentations


Presentation on theme: "Toward Optimized MPEG-4 Decoder 羅仲耘 吳方荃楊士萱教授 指導. Outline 專題方向簡介 改善項目 改善方法 未來工作."— Presentation transcript:

1 Toward Optimized MPEG-4 Decoder 羅仲耘 吳方荃楊士萱教授 指導

2 Outline 專題方向簡介 改善項目 改善方法 未來工作

3 專題方向 將 reference software 簡化為 Simple Profile 版本 利用 MMX 指令集加快解碼速度

4 改善階段 Trace decoding 流程 刪除 Simple Profile 不需要的部份 分析 decoding 時主要部份花費比率 將佔 decoding 比率比較大的部分以 MMX 去 做改善

5 Simplified Video Decoding Process Shape Decoding Motion Decoding Motion Compen- sation Texture Decoding VOP Recon- struction Previous Reconstructed VOP Demultiplexer Video_object_layer_shape Coded Bit Stream (Motion) Coded Bit Stream (texture)

6 Cost time analysis 各部份佔程式總執行時間

7 Cost time analysis (cont.) PVOP 佔 decode 的 99% 以上 Decode PVOP 各部份所佔時間

8 MMX 介紹 SIMD ( Single Instruction Multiple Data) 57 條新的 operand code 8 個 64 bits 暫存器 對於 8bits, 16 bits, 32 bits 的資料處理優異

9 MMX 提供的資料型態 Packed byte Eights bytes packed into one 64-bit quantity Packed word Four words packed into one 64-bit quantity Packed doubleword Two doublewords packed into one 64-bit quantity Quandword one 64-bit quantity

10 MMX 指令組 拷貝指令 (movq /movd) 分組指令 –punpcklbw / punpcklwd / punpckldq –packuswb –packsswb/packssdw 運算指令

11 MMX 優點 提升程式速度 50~400% 可一次擷取 64-bit 記憶體資料 MMX 與 standard integer code 可同時執行 MMX 指令集完全管線化( pipelined ),每次執行 時間在 1 clock cycle 之內。 MMX 指令中的 multiple instruction 亦可在 1 clock cycle 內執行完畢

12 MMX 缺點 MMX code 和 floating point code 不能同時執行 MMX registers 不可以存放 address 不是所有的處理器都支援 MMX 指令集

13 如何利用 MMX 做加速 兩個 block 相加的程式用 MMX 取代 一次可處理兩筆資料

14 Block 資料型態 m_ppxlcPredMBY -- unsigned short m_ppxliErrorMBY -- int

15 處理方法 從 m_ppxlcPredMBY 的位置搬兩筆資料到 MMX register 將 m_ppxlcPred 在 MMX register 的資料做對齊 從 m_ppxlcErrorMBY 的位置搬兩筆資料到 MMX register 相加後結果 pack 後放回記憶體

16 處理方法 (cont.) 63 5655 4847 4039 3231 2423 1615 87 0 0 9 f 63 5655 4847 4039 3231 2423 1615 87 0 0 9 f0 9 f 63 5655 4847 4039 3231 2423 1615 87 0 0 9 f0 9 f punpcklbw m_ppxlcPred

17 處理方法 (cont.) 63 5655 4847 4039 3231 2423 1615 87 0 0 9 f 0 0 0 63 5655 4847 4039 3231 2423 1615 87 0 0 0 00 1 0 0 00 2 M_ppxlcPredMBY M_ppxlcErrorMBY 63 5655 4847 4039 3231 2423 1615 87 0 0 0 0A 0A 0 0 0 0A 0 相加後的結果

18 處理方法 (cont.) 63 5655 4847 4039 3231 2423 1615 87 0 0 0 0A 0 0 0 0 63 5655 4847 4039 3231 2423 1615 87 0 0A 0A 0 0A 0 0 0 A 0 63 5655 4847 4039 3231 2423 1615 87 0 A 0A 0A 0 packusbw 相加的結果

19 目前進度 Code size Cost time ( AddErrorAndPredToCurrQ) 版本檔案大小 (bytes) Microsoft-FDAMI-2.3- 001213(demo) 458,752 Microsoft-FDAMI-2.3-001213638,976 Our version233,472 版本 cost time (ms) Microsoft-FDAMI-2.3-001213359.16 Our version333.84

20 未來工作 判斷 Half Block 及 Full Block 用 MMX 加速 Fast IDCT 資料搬移用 MMX 加速 執行檔減少至 200KB 以下


Download ppt "Toward Optimized MPEG-4 Decoder 羅仲耘 吳方荃楊士萱教授 指導. Outline 專題方向簡介 改善項目 改善方法 未來工作."

Similar presentations


Ads by Google