1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

lavc/vp9dsp: remove R-V I intra functions

At this point, they are identical to the C code, except for instruction
ordering. In fact, they are typically slower or no faster than the C code.
This commit is contained in:
Rémi Denis-Courmont 2024-07-22 21:09:59 +03:00
parent 7aa6510fe1
commit 7b24f96c87
4 changed files with 1 additions and 89 deletions

View File

@ -73,8 +73,7 @@ OBJS-$(CONFIG_VP8DSP) += riscv/vp8dsp_init.o
RV-OBJS-$(CONFIG_VP8DSP) += riscv/vp8dsp_rvi.o
RVV-OBJS-$(CONFIG_VP8DSP) += riscv/vp8dsp_rvv.o
OBJS-$(CONFIG_VP9_DECODER) += riscv/vp9dsp_init.o
RV-OBJS-$(CONFIG_VP9_DECODER) += riscv/vp9_intra_rvi.o \
riscv/vp9_mc_rvi.o
RV-OBJS-$(CONFIG_VP9_DECODER) += riscv/vp9_mc_rvi.o
RVV-OBJS-$(CONFIG_VP9_DECODER) += riscv/vp9_intra_rvv.o \
riscv/vp9_mc_rvv.o
OBJS-$(CONFIG_VORBIS_DECODER) += riscv/vorbisdsp_init.o

View File

@ -1,74 +0,0 @@
/*
* Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS).
*
* 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
*/
#include "libavutil/riscv/asm.S"
#if __riscv_xlen >= 64
func ff_v_32x32_rvi, zba
lpad 0
ld t0, (a3)
ld t1, 8(a3)
ld t2, 16(a3)
ld t3, 24(a3)
.rept 16
add a7, a0, a1
sd t0, (a0)
sd t1, 8(a0)
sd t2, 16(a0)
sd t3, 24(a0)
sh1add a0, a1, a0
sd t0, (a7)
sd t1, 8(a7)
sd t2, 16(a7)
sd t3, 24(a7)
.endr
ret
endfunc
func ff_v_16x16_rvi, zba
lpad 0
ld t0, (a3)
ld t1, 8(a3)
.rept 8
add a7, a0, a1
sd t0, (a0)
sd t1, 8(a0)
sh1add a0, a1, a0
sd t0, (a7)
sd t1, 8(a7)
.endr
ret
endfunc
func ff_v_8x8_rvi, zba
lpad 0
ld t0, (a3)
.rept 4
add a7, a0, a1
sd t0, (a0)
sh1add a0, a1, a0
sd t0, (a7)
.endr
ret
endfunc
#endif

View File

@ -60,12 +60,6 @@ void ff_dc_129_16x16_rvv(uint8_t *dst, ptrdiff_t stride, const uint8_t *l,
const uint8_t *a);
void ff_dc_129_8x8_rvv(uint8_t *dst, ptrdiff_t stride, const uint8_t *l,
const uint8_t *a);
void ff_v_32x32_rvi(uint8_t *dst, ptrdiff_t stride, const uint8_t *l,
const uint8_t *a);
void ff_v_16x16_rvi(uint8_t *dst, ptrdiff_t stride, const uint8_t *l,
const uint8_t *a);
void ff_v_8x8_rvi(uint8_t *dst, ptrdiff_t stride, const uint8_t *l,
const uint8_t *a);
void ff_h_32x32_rvv(uint8_t *dst, ptrdiff_t stride, const uint8_t *l,
const uint8_t *a);
void ff_h_16x16_rvv(uint8_t *dst, ptrdiff_t stride, const uint8_t *l,

View File

@ -74,13 +74,6 @@ static av_cold void vp9dsp_intrapred_init_riscv(VP9DSPContext *dsp, int bpp)
#if HAVE_RV
int flags = av_get_cpu_flags();
# if __riscv_xlen >= 64
if (bpp == 8 && (flags & AV_CPU_FLAG_RVB_ADDR)) {
dsp->intra_pred[TX_32X32][VERT_PRED] = ff_v_32x32_rvi;
dsp->intra_pred[TX_16X16][VERT_PRED] = ff_v_16x16_rvi;
dsp->intra_pred[TX_8X8][VERT_PRED] = ff_v_8x8_rvi;
}
# endif
#if HAVE_RVV
if (bpp == 8 && flags & AV_CPU_FLAG_RVV_I64 && ff_rv_vlen_least(128)) {
dsp->intra_pred[TX_8X8][DC_PRED] = ff_dc_8x8_rvv;