1 ;*****************************************************************************
2 ;* x86-optimized functions for yadif filter
4 ;* Copyright (C) 2006 Michael Niedermayer <michaelni@gmx.at>
5 ;* Copyright (c) 2013 Daniel Kang <daniel.d.kang@gmail.com>
7 ;* This file is part of FFmpeg.
9 ;* FFmpeg is free software; you can redistribute it and/or modify
10 ;* it under the terms of the GNU General Public License as published by
11 ;* the Free Software Foundation; either version 2 of the License, or
12 ;* (at your option) any later version.
14 ;* FFmpeg is distributed in the hope that it will be useful,
15 ;* but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ;* GNU General Public License for more details.
19 ;* You should have received a copy of the GNU General Public License along
20 ;* with FFmpeg; if not, write to the Free Software Foundation, Inc.,
21 ;* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 ;******************************************************************************
24 %include "libavutil/x86/x86util.asm"
34 movu m2, [curq+mrefsq+%1]
35 movu m3, [curq+prefsq+%2]
100 LOAD 0, [curq+mrefsq]
101 LOAD 1, [curq+prefsq]
112 LOAD 3, [prevq+mrefsq]
113 LOAD 4, [prevq+prefsq]
122 LOAD 3, [nextq+mrefsq]
123 LOAD 4, [nextq+prefsq]
139 movu m2, [curq+mrefsq-1]
140 movu m3, [curq+prefsq-1]
169 LOAD 2, [%2+mrefsq*2]
170 LOAD 4, [%3+mrefsq*2]
171 LOAD 3, [%2+prefsq*2]
172 LOAD 5, [%3+prefsq*2]
216 cglobal yadif_filter_line, 7, 7, 8, 16*5, dst, prev, cur, next, w, prefs, \
220 movsxdifnidn prefsq, prefsd
221 movsxdifnidn mrefsq, mrefsd
225 FILTER 1, prevq, curq
229 FILTER 0, curq, nextq