Added gst-plugins-base-subtitles0.10-0.10.34 for Meego Harmattan 1.2
[mafwsubrenderer] / gst-plugins-base-subtitles0.10 / gst / videoscale / gstvideoscaleorc.orc
1
2 .init gst_videoscale_orc_init
3
4 .function orc_merge_linear_u8
5 .dest 1 d1
6 .source 1 s1
7 .source 1 s2
8 .param 1 p1
9 .temp 2 t1
10 .temp 2 t2
11 .temp 1 a
12 .temp 1 t
13
14 loadb a, s1
15 convubw t1, s1
16 convubw t2, s2
17 subw t2, t2, t1
18 mullw t2, t2, p1
19 addw t2, t2, 128
20 convhwb t, t2
21 addb d1, t, a
22
23
24
25 .function orc_merge_linear_u16
26 .dest 2 d1
27 .source 2 s1
28 .source 2 s2
29 .param 2 p1
30 .param 2 p2
31 .temp 4 t1
32 .temp 4 t2
33
34 # This is slightly different thatn the u8 case, since muluwl
35 # tends to be much faster than mulll
36 muluwl t1, s1, p1
37 muluwl t2, s2, p2
38 addl t1, t1, t2
39 shrul t1, t1, 16
40 convlw d1, t1
41
42
43 .function orc_splat_u16
44 .dest 2 d1
45 .param 2 p1
46
47 copyw d1, p1
48
49
50 .function orc_splat_u32
51 .dest 4 d1
52 .param 4 p1
53
54 copyl d1, p1
55
56
57 .function orc_splat_u64
58 .dest 8 d1
59 .longparam 8 p1
60
61 copyq d1, p1
62
63
64 .function orc_downsample_u8
65 .dest 1 d1 guint8
66 .source 2 s1 guint8
67 .temp 1 t1
68 .temp 1 t2
69
70 splitwb t1, t2, s1
71 avgub d1, t1, t2
72
73
74 .function orc_downsample_u16
75 .dest 2 d1 guint16
76 .source 4 s1 guint16
77 .temp 2 t1
78 .temp 2 t2
79
80 splitlw t1, t2, s1
81 avguw d1, t1, t2
82
83
84 .function gst_videoscale_orc_downsample_u32
85 .dest 4 d1 guint8
86 .source 8 s1 guint8
87 .temp 4 t1
88 .temp 4 t2
89
90 splitql t1, t2, s1
91 x4 avgub d1, t1, t2
92
93
94 .function gst_videoscale_orc_downsample_yuyv
95 .dest 4 d1 guint8
96 .source 8 s1 guint8
97 .temp 4 yyyy
98 .temp 4 uvuv
99 .temp 2 t1
100 .temp 2 t2
101 .temp 2 yy
102 .temp 2 uv
103
104 x4 splitwb yyyy, uvuv, s1
105 x2 splitwb t1, t2, yyyy
106 x2 avgub yy, t1, t2
107 splitlw t1, t2, uvuv
108 x2 avgub uv, t1, t2
109 x2 mergebw d1, yy, uv
110
111
112
113 .function gst_videoscale_orc_resample_nearest_u8
114 .dest 1 d1 guint8
115 .source 1 s1 guint8
116 .param 4 p1
117 .param 4 p2
118
119 ldresnearb d1, s1, p1, p2
120
121
122 .function gst_videoscale_orc_resample_bilinear_u8
123 .dest 1 d1 guint8
124 .source 1 s1 guint8
125 .param 4 p1
126 .param 4 p2
127
128 ldreslinb d1, s1, p1, p2
129
130
131 .function gst_videoscale_orc_resample_nearest_u32
132 .dest 4 d1 guint8
133 .source 4 s1 guint8
134 .param 4 p1
135 .param 4 p2
136
137 ldresnearl d1, s1, p1, p2
138
139
140 .function gst_videoscale_orc_resample_bilinear_u32
141 .dest 4 d1 guint8
142 .source 4 s1 guint8
143 .param 4 p1
144 .param 4 p2
145
146 ldreslinl d1, s1, p1, p2
147
148
149 .function gst_videoscale_orc_resample_merge_bilinear_u32
150 .dest 4 d1 guint8
151 .dest 4 d2 guint8
152 .source 4 s1 guint8
153 .source 4 s2 guint8
154 .temp 4 a
155 .temp 4 b
156 .temp 4 t
157 .temp 8 t1
158 .temp 8 t2
159 .param 4 p1
160 .param 4 p2
161 .param 4 p3
162
163 ldreslinl b, s2, p2, p3
164 storel d2, b
165 loadl a, s1
166 x4 convubw t1, a
167 x4 convubw t2, b
168 x4 subw t2, t2, t1
169 x4 mullw t2, t2, p1
170 x4 convhwb t, t2
171 x4 addb d1, t, a
172
173
174
175 .function gst_videoscale_orc_merge_bicubic_u8
176 .dest 1 d1 guint8
177 .source 1 s1 guint8
178 .source 1 s2 guint8
179 .source 1 s3 guint8
180 .source 1 s4 guint8
181 .param 4 p1
182 .param 4 p2
183 .param 4 p3
184 .param 4 p4
185 .temp 2 t1
186 .temp 2 t2
187
188 mulubw t1, s2, p2
189 mulubw t2, s3, p3
190 addw t1, t1, t2
191 mulubw t2, s1, p1
192 subw t1, t1, t2
193 mulubw t2, s4, p4
194 subw t1, t1, t2
195 addw t1, t1, 32
196 shrsw t1, t1, 6
197 convsuswb d1, t1
198
199