Download presentation
Presentation is loading. Please wait.
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 以下
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.