Re: [FFmpeg-devel] [PATCH 2/2] avcodec: loongson optimized mpegvideo dct unquantize with mmi
On Thu, Jul 09, 2015 at 04:34:09PM +0800, 周晓勇 wrote: From 86f901e61532d3c06dbd93e15d47a66b119c44f8 Mon Sep 17 00:00:00 2001 From: ZhouXiaoyong zhouxiaoy...@loongson.cn Date: Thu, 9 Jul 2015 14:34:21 +0800 Subject: [PATCH 2/2] avcodec: loongson optimized mpegvideo dct unquantize with mmi Signed-off-by: ZhouXiaoyong zhouxiaoy...@loongson.cn --- libavcodec/mips/Makefile | 1 + libavcodec/mips/mpegvideo_init_mips.c | 14 ++ libavcodec/mips/mpegvideo_mips.h | 35 libavcodec/mips/mpegvideo_mmi.c | 303 ++ 4 files changed, 353 insertions(+) applied thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Complexity theory is the science of finding the exact solution to an approximation. Benchmarking OTOH is finding an approximation of the exact signature.asc Description: Digital signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH 2/2] avcodec: loongson optimized mpegvideo dct unquantize with mmi
From 86f901e61532d3c06dbd93e15d47a66b119c44f8 Mon Sep 17 00:00:00 2001 From: ZhouXiaoyong zhouxiaoy...@loongson.cn Date: Thu, 9 Jul 2015 14:34:21 +0800 Subject: [PATCH 2/2] avcodec: loongson optimized mpegvideo dct unquantize with mmi Signed-off-by: ZhouXiaoyong zhouxiaoy...@loongson.cn --- libavcodec/mips/Makefile | 1 + libavcodec/mips/mpegvideo_init_mips.c | 14 ++ libavcodec/mips/mpegvideo_mips.h | 35 libavcodec/mips/mpegvideo_mmi.c | 303 ++ 4 files changed, 353 insertions(+) diff --git a/libavcodec/mips/Makefile b/libavcodec/mips/Makefile index c16c93a..9eb815a 100644 --- a/libavcodec/mips/Makefile +++ b/libavcodec/mips/Makefile @@ -59,3 +59,4 @@ MSA-OBJS-$(CONFIG_ME_CMP) += mips/me_cmp_msa.o MMI-OBJS-$(CONFIG_H264DSP)+= mips/h264dsp_mmi.o MMI-OBJS-$(CONFIG_H264CHROMA) += mips/h264chroma_mmi.o MMI-OBJS-$(CONFIG_H264PRED) += mips/h264pred_mmi.o +MMI-OBJS-$(CONFIG_MPEGVIDEO) += mips/mpegvideo_mmi.o diff --git a/libavcodec/mips/mpegvideo_init_mips.c b/libavcodec/mips/mpegvideo_init_mips.c index ee14b31..85a833c 100644 --- a/libavcodec/mips/mpegvideo_init_mips.c +++ b/libavcodec/mips/mpegvideo_init_mips.c @@ -19,6 +19,7 @@ */ #include h263dsp_mips.h +#include mpegvideo_mips.h #if HAVE_MSA static av_cold void dct_unquantize_init_msa(MpegEncContext *s) @@ -29,9 +30,22 @@ static av_cold void dct_unquantize_init_msa(MpegEncContext *s) } #endif // #if HAVE_MSA +#if HAVE_MMI +static av_cold void dct_unquantize_init_mmi(MpegEncContext *s) +{ +s-dct_unquantize_h263_intra = ff_dct_unquantize_h263_intra_mmi; +s-dct_unquantize_h263_inter = ff_dct_unquantize_h263_inter_mmi; +s-dct_unquantize_mpeg1_intra = ff_dct_unquantize_mpeg1_intra_mmi; +s-dct_unquantize_mpeg1_inter = ff_dct_unquantize_mpeg1_inter_mmi; +} +#endif /* HAVE_MMI */ + av_cold void ff_mpv_common_init_mips(MpegEncContext *s) { #if HAVE_MSA dct_unquantize_init_msa(s); #endif // #if HAVE_MSA +#if HAVE_MMI +dct_unquantize_init_mmi(s); +#endif /* HAVE_MMI */ } diff --git a/libavcodec/mips/mpegvideo_mips.h b/libavcodec/mips/mpegvideo_mips.h new file mode 100644 index 000..dbcea6a --- /dev/null +++ b/libavcodec/mips/mpegvideo_mips.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2015 Zhou Xiaoyong zhouxiaoy...@loongson.cn + * + * 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 + */ + +#ifndef MPEGVIDEO_MIPS_H +#define MPEGVIDEO_MIPS_H + +#include libavcodec/mpegvideo.h + +void ff_dct_unquantize_h263_intra_mmi(MpegEncContext *s, int16_t *block, +int n, int qscale); +void ff_dct_unquantize_h263_inter_mmi(MpegEncContext *s, int16_t *block, +int n, int qscale); +void ff_dct_unquantize_mpeg1_intra_mmi(MpegEncContext *s, int16_t *block, +int n, int qscale); +void ff_dct_unquantize_mpeg1_inter_mmi(MpegEncContext *s, int16_t *block, +int n, int qscale); + +#endif /* MPEGVIDEO_MIPS_H */ diff --git a/libavcodec/mips/mpegvideo_mmi.c b/libavcodec/mips/mpegvideo_mmi.c new file mode 100644 index 000..b3d58bd --- /dev/null +++ b/libavcodec/mips/mpegvideo_mmi.c @@ -0,0 +1,303 @@ +/* + * Loongson SIMD optimized mpegvideo + * + * Copyright (c) 2015 Loongson Technology Corporation Limited + * Copyright (c) 2015 Zhou Xiaoyong zhouxiaoy...@loongson.cn + *Zhang Shuangshuang zhangshuangshu...@ict.ac.cn + * + * 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 mpegvideo_mips.h + +void
[FFmpeg-devel] [PATCH 2/2] avcodec: loongson optimized mpegvideo dct unquantize with
From cc51287aa33d095595f1373de2b0191a2180428c Mon Sep 17 00:00:00 2001 From: ZhouXiaoyong zhouxiaoy...@loongson.cn Date: Mon, 6 Jul 2015 16:45:56 +0800 Subject: [PATCH 2/2] avcodec: loongson optimized mpegvideo dct unquantize with mmi Signed-off-by: ZhouXiaoyong zhouxiaoy...@loongson.cn --- libavcodec/mips/Makefile | 1 + libavcodec/mips/mpegvideo_init_mips.c | 14 ++ libavcodec/mips/mpegvideo_mips.h | 35 libavcodec/mips/mpegvideo_mmi.c | 303 ++ 4 files changed, 353 insertions(+) diff --git a/libavcodec/mips/Makefile b/libavcodec/mips/Makefile index 894ca28..03a1990 100644 --- a/libavcodec/mips/Makefile +++ b/libavcodec/mips/Makefile @@ -52,3 +52,4 @@ MSA-OBJS-$(CONFIG_MPEGVIDEO) += mips/mpegvideo_msa.o MMI-OBJS-$(CONFIG_H264DSP)+= mips/h264dsp_mmi.o MMI-OBJS-$(CONFIG_H264CHROMA) += mips/h264chroma_mmi.o MMI-OBJS-$(CONFIG_H264PRED) += mips/h264pred_mmi.o +MMI-OBJS-$(CONFIG_MPEGVIDEO) += mips/mpegvideo_mmi.o diff --git a/libavcodec/mips/mpegvideo_init_mips.c b/libavcodec/mips/mpegvideo_init_mips.c index ee14b31..85a833c 100644 --- a/libavcodec/mips/mpegvideo_init_mips.c +++ b/libavcodec/mips/mpegvideo_init_mips.c @@ -19,6 +19,7 @@ */ #include h263dsp_mips.h +#include mpegvideo_mips.h #if HAVE_MSA static av_cold void dct_unquantize_init_msa(MpegEncContext *s) @@ -29,9 +30,22 @@ static av_cold void dct_unquantize_init_msa(MpegEncContext *s) } #endif // #if HAVE_MSA +#if HAVE_MMI +static av_cold void dct_unquantize_init_mmi(MpegEncContext *s) +{ +s-dct_unquantize_h263_intra = ff_dct_unquantize_h263_intra_mmi; +s-dct_unquantize_h263_inter = ff_dct_unquantize_h263_inter_mmi; +s-dct_unquantize_mpeg1_intra = ff_dct_unquantize_mpeg1_intra_mmi; +s-dct_unquantize_mpeg1_inter = ff_dct_unquantize_mpeg1_inter_mmi; +} +#endif /* HAVE_MMI */ + av_cold void ff_mpv_common_init_mips(MpegEncContext *s) { #if HAVE_MSA dct_unquantize_init_msa(s); #endif // #if HAVE_MSA +#if HAVE_MMI +dct_unquantize_init_mmi(s); +#endif /* HAVE_MMI */ } diff --git a/libavcodec/mips/mpegvideo_mips.h b/libavcodec/mips/mpegvideo_mips.h new file mode 100644 index 000..dbcea6a --- /dev/null +++ b/libavcodec/mips/mpegvideo_mips.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2015 Zhou Xiaoyong zhouxiaoy...@loongson.cn + * + * 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 + */ + +#ifndef MPEGVIDEO_MIPS_H +#define MPEGVIDEO_MIPS_H + +#include libavcodec/mpegvideo.h + +void ff_dct_unquantize_h263_intra_mmi(MpegEncContext *s, int16_t *block, +int n, int qscale); +void ff_dct_unquantize_h263_inter_mmi(MpegEncContext *s, int16_t *block, +int n, int qscale); +void ff_dct_unquantize_mpeg1_intra_mmi(MpegEncContext *s, int16_t *block, +int n, int qscale); +void ff_dct_unquantize_mpeg1_inter_mmi(MpegEncContext *s, int16_t *block, +int n, int qscale); + +#endif /* MPEGVIDEO_MIPS_H */ diff --git a/libavcodec/mips/mpegvideo_mmi.c b/libavcodec/mips/mpegvideo_mmi.c new file mode 100644 index 000..b3d58bd --- /dev/null +++ b/libavcodec/mips/mpegvideo_mmi.c @@ -0,0 +1,303 @@ +/* + * Loongson SIMD optimized mpegvideo + * + * Copyright (c) 2015 Loongson Technology Corporation Limited + * Copyright (c) 2015 Zhou Xiaoyong zhouxiaoy...@loongson.cn + *Zhang Shuangshuang zhangshuangshu...@ict.ac.cn + * + * 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 mpegvideo_mips.h + +void