Imported Debian version 1.0~trusty
[deb_vid.stab.git] / src / orc / motiondetectorc.orc
CommitLineData
80f575fc
DM
1################################################################################
2# Optimized functions
3################################################################################
4
5# Image Difference
6#
7# for (j = 0; j < field->size; j++) {
8# for (k = 0; k < field->size * bytesPerPixel; k++) {
9# sum += abs((int) *p1 - (int) *p2);
10# p1++;
11# p2++;
12# }
13# p1 += (width - field->size) * bytesPerPixel;
14# p2 += (width - field->size) * bytesPerPixel;
15# }
16
17.function image_difference_optimized
18.flags 2d
19.source 1 s1 uint8_t
20.source 1 s2 uint8_t
21.accumulator 4 sum uint32_t
22accsadubl sum, s1, s2
23
24
25.function image_line_difference_optimized
26.source 1 s1 uint8_t
27.source 1 s2 uint8_t
28.accumulator 4 sum uint32_t
29accsadubl sum, s1, s2
30
31
32
33# Image Contrast
34# SUM
35# p = pstart;
36# for (j = 0; j < field->size; j++) {
37# for (k = 0; k < field->size; k++, p++) {
38# sum+=*p;
39# }
40# p += (width - field->size);
41# }
42# mean=sum/numpixel;
43# p = pstart;
44# VARIANCE
45# for (j = 0; j < field->size; j++) {
46# for (k = 0; k < field->size; k++, p++) {
47# var+=abs(*p-mean);
48# }
49# p += (width - field->size);
50# }
51
52
53# Image Contrast functions
54# Sum of all pixels (used to calculate mean)
55.function image_sum_optimized
56.flags 2d
57.accumulator 4 sum int
58.source 1 s uint8_t
59.temp 2 t1
60.temp 4 t2
61convubw t1 s
62convuwl t2 t1
63accl sum, t2
64
65# this implementation appears to be slower
66# .function image_sum_optimized
67# .flags 2d
68# .accumulator 4 sum int
69# .source 1 s uint8_t
70# .const 1 c1 0
71# accsadubl sum, s, c1
72
73# Variance of the image in Manhattan-Norm (absolute value)
74.function image_variance_optimized
75.flags 2d
76.accumulator 4 var int
77.source 1 s uint8_t
78.param 1 mean uint8_t
79accsadubl var, s, mean
80
81
82
83
84