Menu

Using MMX accelerators in CamView 2.3

The primary motivation is to render 4k video. It seems to be very demanding for resources.
A new version of CamView 2.3. detects presence of MMX unit and can use vectorised CPU instructions for some operations. This can decrease CPU load a little bit. Some time critical functions are embedded in wx widgets library and they are not accelerated yet.
This feature has been introduced in pictures library version >=2.81.

See benchmarks, some operations are accelerated 10 times:

Conversions with acceleration [ns/px]:  ---> pixels
       1024     2048 
4_8MMX 0.19892  0.19164   << assembly using MMX  
4_8SSE 0.12028   0.1147   << assembly using SSE
4_8     1.1268   1.1225   << assembly

4_16MMX 0.27328  0.26847 
4_16SSE 0.25549   0.2503 
4_16     1.2623   1.2605 

4_32MMX 0.42591  0.41045 
4_32SSE 0.36241  0.35036 
4_32      1.522   1.3988 

4_64MMX 0.84434  0.84255 
4_64SSE 0.59195  0.56987 
4_64     1.8203   1.8134 

8_4MMX 0.13851  0.13349 
8_4SSE 0.08088 0.075732 
8_4     1.6861   1.6781 

8_16MMX 0.21718  0.21442 
8_16SSE0.078661 0.074269 
8_16    0.60235   0.5982 

8_32MMX 0.28832  0.28499 
8_32SSE 0.18398  0.17923 
8_32    0.60642  0.59906 

8_64MMX 0.63823   0.6349 
8_64SSE 0.35909  0.35522 
8_64     1.9668   1.9706 

16_4MMX 0.18526  0.17967 
16_4SSE   0.176  0.17093 
16_4      1.829   1.8199 

16_8MMX 0.22262  0.21589 
16_8SSE0.078867 0.074076 
16_8    0.42805  0.42355 

16_32MMX 0.42612  0.42341 
16_32SSE 0.14825  0.14474 
16_32     2.2409   2.2619 

16_64MMX 0.52237  0.51741 
16_64SSE 0.43138  0.42866 
16_64     2.5221   2.5195 

32_16MMX  0.4264  0.42371 
32_16SSE 0.21717  0.21424 
32_16     0.5005  0.52249 

32_64MMX  1.4113   1.4045 
32_64SSE 0.57021  0.56276 
32_64      2.551   2.5241 
Posted by Jaroslav Fojtik 2025-08-05

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.