1 @*****************************************************************************
2 @ deinterleave_chroma.S : ARM NEONv1 conversion of interleaved to planar chroma
3 @*****************************************************************************
4 @ Copyright (C) 2009-2011 Rémi Denis-Courmont
5 @ Copyright (C) 2013 Martin Storsjö
7 @ This program is free software; you can redistribute it and/or modify
8 @ it under the terms of the GNU Lesser General Public License as published by
9 @ the Free Software Foundation; either version 2.1 of the License, or
10 @ (at your option) any later version.
12 @ This program is distributed in the hope that it will be useful,
13 @ but WITHOUT ANY WARRANTY; without even the implied warranty of
14 @ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 @ GNU Lesser General Public License for more details.
17 @ You should have received a copy of the GNU Lesser General Public License
18 @ along with this program; if not, write to the Free Software Foundation,
19 @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
20 @****************************************************************************/
25 #if HAVE_AS_FPU_DIRECTIVE
42 function deinterleave_chroma_neon
44 ldmia r0, {U, V, OPITCH}
45 ldmia r1, {UV, IPITCH}
48 @ round the width up to a multiple of 8
52 sub IPAD, IPITCH, WIDTH, lsl #1
53 sub OPAD, OPITCH, WIDTH
60 vld2.u8 {d0, d1}, [UV,:128]!
62 vst1.u8 {d0}, [U,:64]!
63 vst1.u8 {d1}, [V,:64]!