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 @****************************************************************************/
38 .global deinterleave_chroma_neon
39 .type deinterleave_chroma_neon, %function
40 deinterleave_chroma_neon:
42 ldmia r0, {U, V, OPITCH}
43 ldmia r1, {UV, IPITCH}
46 @ round the width up to a multiple of 8
50 sub IPAD, IPITCH, WIDTH, lsl #1
51 sub OPAD, OPITCH, WIDTH
57 vld2.u8 {d0, d1}, [UV,:128]!
59 vst1.u8 {d0}, [U,:64]!
60 vst1.u8 {d1}, [V,:64]!