天天看點

WinCE6.0下TCPMP的BenchMark彙總

      這兩天在論壇裡看到有人在問WinCE6.0下繪圖較慢的問題。現象很奇怪,同一個程式在WinCE5.0下運作得很好,但到某些WinCE6.0的平台上卻很慢,而在另外一些6.0的平台上似乎又沒有問題。看起來,應該跟硬體平台或者系統有關系。在我們的平台上也存在類似的問題,界面有點慢。這是為什麼呢?又應該如何解決?是24位色導緻系統變慢?使用DirectDraw能否有效的提高速度?為了尋找答案,今天利用TCPMP在我們的平台上做了一個詳細的檢測,希望能從中找到一些線索。

      測試的方法如下,采用同一個MP4檔案,分别在16位色和24位的系統上進行BenchMark,ZOOM都標明為100%,渲染方式分别為GDI、Direct、DDraw-RGB和DDraw-YUY2。

      先看看16位色下的四組資料。

      16位色GDI渲染時的報告結果:

 1 Average Speed                  268.84%

 2 Video Frames                   1933

 3 Audio Samples                  3504097

 4 Amount of Data                 11401 KB

 5 

 6 Bench. Time                    0:28.760

 7 Bench. Frame Rate              67.21

 8 Bench. Sample Rate             121835

 9 Bench. Data Rate               3.2 Mbit/s

10 

11 Original Time                  1:17.319

12 Original Frame Rate            25.00

13 Original Sample Rate           44100

14 Original Data Rate             1.2 Mbit/s

15 

16 URL                            \NAND\123.avi

17 Size                           11675460

18 Platform                       PLATFORM_TYPE

19 OS Version                     6.00

20 OEM Info                       PLATFORM_OEM

21 Clock speed                    480 Mhz

22 Video output                   GDI 解碼 800x480 16bits Lookup

23 Video zoom                     320x240 -> 320x240

24 Audio output                   Wave Output 44100Hz 16Bits 2Ch.

       16位色Direct渲染時的報告結果:

 1 Average Speed                  299.64%

 3 Audio Samples                  3504350

 6 Bench. Time                    0:25.803

 7 Bench. Frame Rate              74.91

 8 Bench. Sample Rate             135813

 9 Bench. Data Rate               3.6 Mbit/s

22 Video output                   Direct 800x480 16bits Lookup

       16位色DDraw-RGB渲染時的報告結果: 

 1 Average Speed                  297.27%

 3 Audio Samples                  3504501

 6 Bench. Time                    0:26.009

 7 Bench. Frame Rate              74.32

 8 Bench. Sample Rate             134739

22 Video output                   DirectDraw 800x480 16bits Lookup

       16位色DDraw-YUY2渲染時的報告結果:

 1 Average Speed                  363.65%

 3 Audio Samples                  3512737

 6 Bench. Time                    0:21.261

 7 Bench. Frame Rate              90.91

 8 Bench. Sample Rate             165215

 9 Bench. Data Rate               4.4 Mbit/s

      從上面可以看出,在16位色的WinCE6.0系統上,使用GDI渲染最慢,Direct和DDraw-RGB相差不多,都比GDI要好一點,DDraw-YUY2效果最好。 

      24位色下的四組資料如下。

      24位色GDI渲染時的報告結果:

 1 Average Speed                  186.47%

 3 Audio Samples                  3501248

 6 Bench. Time                    0:41.464

 7 Bench. Frame Rate              46.62

 8 Bench. Sample Rate             84440

 9 Bench. Data Rate               2.3 Mbit/s

22 Video output                   GDI 解碼 800x480 32bits Lookup

       24位色Direct渲染時的報告結果:

 1 Average Speed                  298.94%

 3 Audio Samples                  3507276

 6 Bench. Time                    0:25.864

 7 Bench. Frame Rate              74.73

 8 Bench. Sample Rate             135607

22 Video output                   Direct 800x480 32bits Lookup

       24位色DDraw-RGB渲染時的報告結果: 

 1 Average Speed                  295.10%

 3 Audio Samples                  3504242

 6 Bench. Time                    0:26.200

 7 Bench. Frame Rate              73.78

 8 Bench. Sample Rate             133749

22 Video output                   DirectDraw 800x480 32bits Lookup

       24位色DDraw-YUY2渲染時的報告結果: 

 1 Average Speed                  358.64%

 3 Audio Samples                  3513320

 6 Bench. Time                    0:21.558

 7 Bench. Frame Rate              89.66

 8 Bench. Sample Rate             162971

 9 Bench. Data Rate               4.3 Mbit/s

21 Clock speed                    482 Mhz

       可以看到,在24位色模式下,GDI依然是最慢的,Direct和DDraw-RGB還是不相上下,但比使用GDI高了很多,DDraw-YUY2依舊傲視群雄,幾乎是GDI的2倍。

      再看16位色和24位色,雖然同是使用GDI渲染,但24位色的系統顯然慢了很多。而位色深度似乎對Direct和DDraw影響很小,幾組值都相差無幾。

      最後再看看DDraw内部的差别,使用RGB和YUY2顯然效果大不一樣,幾乎提高了20%。這可能主要是因為使用YUY2解碼時不需要做顔色轉換,進而省了很多時間。對于界面開發來說,我們大概可以使用Direct或者DDraw-RGB來提高繪制的效率。具體采用哪一種看具體情況,簡單友善易實作是宗旨。

      以上列舉的這些應該可以說明一些問題,但不能以偏概全,最後的答案還得繼續尋找。

      為啥WinCE6.0有時那麼慢?