/****************************************************************************
* quant.S: arm quantization and level-run
*****************************************************************************
- * Copyright (C) 2009-2014 x264 project
+ * Copyright (C) 2009-2015 x264 project
*
* Authors: David Conrad <lessen42@gmail.com>
+ * Janne Grunau <janne-x264@jannau.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
function x264_coeff_last\size\()_neon
.if \size == 15
sub r0, r0, #2
- vld1.64 {d0-d3}, [r0]
-.else
- vld1.64 {d0-d3}, [r0,:128]
.endif
+ vld1.64 {d0-d3}, [r0,:128]
vtst.16 q0, q0
vtst.16 q1, q1
vshrn.u16 d0, q0, #8
movlt r0, #0
bx lr
endfunc
+
+function x264_denoise_dct_neon
+1: subs r3, r3, #16
+ vld1.16 {q0, q1}, [r0]
+ vld1.32 {q12, q13}, [r1]!
+ vld1.32 {q14, q15}, [r1]
+ sub r1, #32
+ vabs.s16 q8, q0
+ vabs.s16 q9, q1
+ vld1.16 {q2, q3}, [r2]!
+ vclt.s16 q10, q0, #0
+ vclt.s16 q11, q1, #0
+ vaddw.u16 q12, q12, d16
+ vaddw.u16 q13, q13, d17
+ vqsub.u16 q0, q8, q2
+ vqsub.u16 q1, q9, q3
+ vaddw.u16 q14, q14, d18
+ vaddw.u16 q15, q15, d19
+ vneg.s16 q8, q0
+ vneg.s16 q9, q1
+ vbsl q10, q8, q0
+ vbsl q11, q9, q1
+ vst1.32 {q12, q13}, [r1]!
+ vst1.32 {q14, q15}, [r1]!
+ vst1.16 {q10, q11}, [r0]!
+ bgt 1b
+ bx lr
+endfunc