2 * Copyright (c) 2010 Mans Rullgard
4 * This file is part of FFmpeg.
6 * FFmpeg is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * FFmpeg is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with FFmpeg; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 #include "libavutil/arm/asm.S"
22 #include "asm-offsets.h"
24 function ff_dct_unquantize_h263_inter_neon, export=1
25 add r12, r0, #BLOCK_LAST_INDEX
26 ldr r12, [r12, r2, lsl #2]
27 add r0, r0, #INTER_SCANTAB_RASTER_END
35 function ff_dct_unquantize_h263_neon, export=1
36 vdup.16 q15, r0 @ qmul
37 vdup.16 q14, r2 @ qadd
43 vld1.16 {q0}, [r0,:128]!
45 vld1.16 {q8}, [r0,:128]!
54 vadd.s16 q10, q10, q11
58 vst1.16 {q0}, [r1,:128]!
59 vst1.16 {q8}, [r1,:128]!
65 vld1.16 {d0}, [r0,:64]
72 vst1.16 {d0}, [r1,:64]
76 function ff_dct_unquantize_h263_intra_neon, export=1
78 add r12, r0, #BLOCK_LAST_INDEX
79 ldr r6, [r0, #AC_PRED]
80 add lr, r0, #INTER_SCANTAB_RASTER_END
85 ldr r12, [r12, r2, lsl #2]
87 1: ldr r5, [r0, #H263_AIC]
98 ldr r6, [r0, #Y_DC_SCALE]
103 bl X(ff_dct_unquantize_h263_neon)
105 vst1.16 {d0[0]}, [r5]