Olivier Naudan | b28313f | 2012-04-16 08:10:18 -0400 | [diff] [blame] | 1 | |
Sebastian Dröge | 63e9201 | 2012-08-09 11:32:59 +0200 | [diff] [blame] | 2 | .function fieldanalysis_orc_same_parity_sad_planar_yuv |
Olivier Naudan | b28313f | 2012-04-16 08:10:18 -0400 | [diff] [blame] | 3 | .accumulator 4 a1 guint32 |
| 4 | .source 1 s1 |
| 5 | .source 1 s2 |
| 6 | # noise threshold |
| 7 | .param 4 nt |
| 8 | .temp 2 t1 |
| 9 | .temp 2 t2 |
| 10 | .temp 4 t3 |
| 11 | .temp 4 t4 |
| 12 | |
| 13 | convubw t1, s1 |
| 14 | convubw t2, s2 |
| 15 | subw t1, t1, t2 |
| 16 | absw t1, t1 |
| 17 | convuwl t3, t1 |
| 18 | cmpgtsl t4, t3, nt |
| 19 | andl t3, t3, t4 |
| 20 | accl a1, t3 |
| 21 | |
| 22 | |
Sebastian Dröge | 63e9201 | 2012-08-09 11:32:59 +0200 | [diff] [blame] | 23 | .function fieldanalysis_orc_same_parity_ssd_planar_yuv |
Olivier Naudan | b28313f | 2012-04-16 08:10:18 -0400 | [diff] [blame] | 24 | .accumulator 4 a1 guint32 |
| 25 | .source 1 s1 |
| 26 | .source 1 s2 |
| 27 | # noise threshold |
| 28 | .param 4 nt |
| 29 | .temp 2 t1 |
| 30 | .temp 2 t2 |
| 31 | .temp 4 t3 |
| 32 | .temp 4 t4 |
| 33 | |
| 34 | convubw t1, s1 |
| 35 | convubw t2, s2 |
| 36 | subw t1, t1, t2 |
| 37 | mulswl t3, t1, t1 |
| 38 | cmpgtsl t4, t3, nt |
| 39 | andl t3, t3, t4 |
| 40 | accl a1, t3 |
| 41 | |
| 42 | |
Sebastian Dröge | 63e9201 | 2012-08-09 11:32:59 +0200 | [diff] [blame] | 43 | .function fieldanalysis_orc_same_parity_3_tap_planar_yuv |
Olivier Naudan | b28313f | 2012-04-16 08:10:18 -0400 | [diff] [blame] | 44 | .accumulator 4 a1 guint32 |
| 45 | .source 1 s1 |
| 46 | .source 1 s2 |
| 47 | .source 1 s3 |
| 48 | .source 1 s4 |
| 49 | .source 1 s5 |
| 50 | .source 1 s6 |
| 51 | # noise threshold |
| 52 | .param 4 nt |
| 53 | .temp 2 t1 |
| 54 | .temp 2 t2 |
| 55 | .temp 2 t3 |
| 56 | .temp 2 t4 |
| 57 | .temp 2 t5 |
| 58 | .temp 2 t6 |
| 59 | .temp 4 t7 |
| 60 | .temp 4 t8 |
| 61 | |
| 62 | convubw t1, s1 |
| 63 | convubw t2, s2 |
| 64 | convubw t3, s3 |
| 65 | convubw t4, s4 |
| 66 | convubw t5, s5 |
| 67 | convubw t6, s6 |
| 68 | shlw t2, t2, 2 |
| 69 | shlw t5, t5, 2 |
| 70 | addw t1, t1, t2 |
| 71 | addw t1, t1, t3 |
| 72 | addw t4, t4, t5 |
| 73 | addw t4, t4, t6 |
| 74 | subw t1, t1, t4 |
| 75 | absw t1, t1 |
| 76 | convuwl t7, t1 |
| 77 | cmpgtsl t8, t7, nt |
| 78 | andl t7, t7, t8 |
| 79 | accl a1, t7 |
| 80 | |
| 81 | |
Sebastian Dröge | 63e9201 | 2012-08-09 11:32:59 +0200 | [diff] [blame] | 82 | .function fieldanalysis_orc_opposite_parity_5_tap_planar_yuv |
Olivier Naudan | b28313f | 2012-04-16 08:10:18 -0400 | [diff] [blame] | 83 | .accumulator 4 a1 guint32 |
| 84 | .source 1 s1 |
| 85 | .source 1 s2 |
| 86 | .source 1 s3 |
| 87 | .source 1 s4 |
| 88 | .source 1 s5 |
| 89 | # noise threshold |
| 90 | .param 4 nt |
| 91 | .temp 2 t1 |
| 92 | .temp 2 t2 |
| 93 | .temp 2 t3 |
| 94 | .temp 2 t4 |
| 95 | .temp 2 t5 |
| 96 | .temp 4 t6 |
| 97 | .temp 4 t7 |
| 98 | |
| 99 | convubw t1, s1 |
| 100 | convubw t2, s2 |
| 101 | convubw t3, s3 |
| 102 | convubw t4, s4 |
| 103 | convubw t5, s5 |
| 104 | shlw t3, t3, 2 |
| 105 | mullw t2, t2, 3 |
| 106 | mullw t4, t4, 3 |
| 107 | subw t1, t1, t2 |
| 108 | addw t1, t1, t3 |
| 109 | subw t1, t1, t4 |
| 110 | addw t1, t1, t5 |
| 111 | absw t1, t1 |
| 112 | convuwl t6, t1 |
| 113 | cmpgtsl t7, t6, nt |
| 114 | andl t6, t6, t7 |
| 115 | accl a1, t6 |
| 116 | |