|
FFmpeg
|
#include <float.h>#include "libavutil/avassert.h"#include "libavutil/mem.h"#include "libavutil/x86/cpu.h"#include "../ops_chain.h"#include "../uops.h"#include "../uops_macros.h"Go to the source code of this file.
Macros | |
| #define | REF_ENTRY(EXT, NAME, ...) &uop_##NAME##EXT, |
| #define | DECL_ENTRY(EXT, CHECK, SETUP, NAME, ...) |
| #define | DECL_OPS_COMMON(EXT, TYPE) |
| #define | REF_OPS_COMMON(EXT, TYPE) |
| #define | DECL_TABLE_U8(EXT, SIZE, FLAG) |
| #define | DECL_TABLE_U16(EXT, SIZE, FLAG) |
| #define | DECL_TABLE_U32(EXT, SIZE, FLAG) |
| #define | DECL_TABLE_F32(EXT, SIZE, FLAG) |
| #define | ASSIGN_SHUFFLE_FUNC(CPU, EXT, NAME, ...) |
Variables | |
| static const SwsUOpTable *const | tables [] |
| const SwsOpBackend | backend_x86 |
| #define DECL_OPS_COMMON | ( | EXT, | |
| TYPE | |||
| ) |
| #define REF_OPS_COMMON | ( | EXT, | |
| TYPE | |||
| ) |
| #define ASSIGN_SHUFFLE_FUNC | ( | CPU, | |
| EXT, | |||
| NAME, | |||
| ... | |||
| ) |
|
static |
Copyright (C) 2025-2026 Niklas Haas.
This file is part of FFmpeg.
FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
FFmpeg is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with FFmpeg; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
static |
|
static |
Definition at line 66 of file ops.c.
Referenced by setup_filter_h(), and setup_filter_h_4x4().
|
static |
|
static |
Otherwise, prefer it above a certain filter size. Empirically, this kernel seems to be faster whenever the reference/gather kernel crosses a breakpoint for the number of gathers needed, but this filter doesn't.
Tested on a Lunar Lake (Intel Core Ultra 7 258V) system.
|
static |
Desired memory layout: [w][taps][pixels_align][taps_align]
Example with taps_align=8, pixels_align=4: [a0, a1, ... a7] weights for pixel 0, taps 0..7 [b0, b1, ... b7] weights for pixel 1, taps 0..7 [c0, c1, ... c7] weights for pixel 2, taps 0..7 [d0, d1, ... d7] weights for pixel 3, taps 0..7 [a8, a9, ... a15] weights for pixel 0, taps 8..15 ... repeat for all taps, then move on to pixels 4..7, etc.
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 288 of file ops.c.
Referenced by compile_uops_x86().
| SWS_DECL_FUNC | ( | ff_sws_process1_x86 | ) |
| SWS_DECL_FUNC | ( | ff_sws_process2_x86 | ) |
| SWS_DECL_FUNC | ( | ff_sws_process3_x86 | ) |
| SWS_DECL_FUNC | ( | ff_sws_process4_x86 | ) |
|
static |
Definition at line 497 of file ops.c.
Referenced by compile_uops_x86(), and compile_x86().
|
static |
Definition at line 510 of file ops.c.
Referenced by translate_shuffle().
|
static |
Definition at line 519 of file ops.c.
Referenced by compile_uops_x86().
|
static |
Definition at line 586 of file ops.c.
Referenced by normalize_clear().
|
static |
Definition at line 597 of file ops.c.
Referenced by compile_uops_x86().
|
static |
Definition at line 603 of file ops.c.
Referenced by compile_x86().
|
static |
|
static |
Definition at line 475 of file ops.c.
Referenced by compile_uops_x86().
| const SwsOpBackend backend_x86 |
1.8.17