From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id DAD37461CA for ; Tue, 9 May 2023 09:50:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4922268C060; Tue, 9 May 2023 12:50:55 +0300 (EEST) Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ADBC068BF5C for ; Tue, 9 May 2023 12:50:48 +0300 (EEST) Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-643a1656b79so3539437b3a.3 for ; Tue, 09 May 2023 02:50:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1683625846; x=1686217846; h=message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W8+uqIaM2pzXNz2BcDdmVlhDGEVSfrpomhJpPCBZ0ZY=; b=b+wJ4n/z1/5pNGt6xy6qJar0GLRahiDr5kKtYtIzYtyjB/IRU7cRYNkpQSojGXYJeq Z15hERPfAq0odcufaMAkEn+b17cZY/0/x5ZzbOUzuF6xH/Pg9VmjzAVvX518nAnejIX/ REtBnMiVKB5oiWYKBzTc1yD3H1ZsLc8B7ZvQoS0woOKes3xs0FetgEMUvxet1QoQ4Xkb 2w/Ae2mjQhdIVknuMcERohgAiSu+wx06BSJONN2n2xwKJle02hVAp1mOEaYA85xvtrOM M+OFowUlRkXldYmLkpdapg8K5/wKGEiBaLn71cnxyfSS+AC/elLxxnWm+cWWI34dhXCB lSUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683625846; x=1686217846; h=message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W8+uqIaM2pzXNz2BcDdmVlhDGEVSfrpomhJpPCBZ0ZY=; b=kyGWRDYK56BangiaEPbmsVPnYUF3dL33uLDVsSztx3C49CFhfR2vaCA/F5A4fWatN5 Rh7ZvoT72+feZ1ctvKfIZZ9YUogPktzh0yIrmFLGI2cXWe1hwAe0aOr9L/qDjv3epR82 8igLB1xG+P06dq72EMieDHBygoo2sgaI81IrYn1iZATp7iLpJbyZ1ncIVJhvPdnomX9H r0oSGhjDvmzqDrCLpJB/t5GZeZadaCvgarFhTZI3twvK/UjsBiVApnKaYb7JS2LTSzWx sOWRJOG1bz60NZk5M8UjDkOufThMocFrYnEB9ApeiIYAEEcDscAR4TPwpVf2diT0SYzi pPww== X-Gm-Message-State: AC+VfDww+++UAckcMnlkV2ck42JPzhyDOZe4iIQVEArbHfpRneQL3Csn pvF5iMhEIawTXYKQawDiAnQcBdn7YEK3ltA/Vpq5M9p/agkO6aCklunFcaCV1PqNTQBqWyHCP4f FPPnpfMb7icPTY6N35myF9d5jBFniLsGQtXhymAFi743/uV4uNqxkOtYTfQji87chBcnBROm2oz 1+5B9H X-Google-Smtp-Source: ACHHUZ4LGVkEmiIscTuZSd08KiZJ6eqvwQR2ZuDWoTMvJrX2dY2Df4HlxplWI4bax7qHDvB+x1SiyA== X-Received: by 2002:a05:6a00:c89:b0:63b:5609:3bb5 with SMTP id a9-20020a056a000c8900b0063b56093bb5mr17337471pfv.18.1683625845695; Tue, 09 May 2023 02:50:45 -0700 (PDT) Received: from arnie-ThinkPad-T480s.localdomain (61-230-13-76.dynamic-ip.hinet.net. [61.230.13.76]) by smtp.gmail.com with ESMTPSA id x10-20020aa784ca000000b0064394d63458sm465875pfn.78.2023.05.09.02.50.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 May 2023 02:50:45 -0700 (PDT) From: Arnie Chang To: ffmpeg-devel@ffmpeg.org Date: Tue, 9 May 2023 17:50:25 +0800 Message-Id: <20230509095030.25506-1-arnie.chang@sifive.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH 0/5] RISC-V: Improve H264 decoding performance using RVV intrinsic X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Arnie Chang MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: We are submitting a set of patches that significantly improve H.264 decoding performance by utilizing RVV intrinsic code. The average speedup(FPS) achieved by these patches is more than 2x, as experimented on 720P videos running on an internal FPGA board. Patch1: add support for RVV intrinsic code in the configure file Patch2: optimize chroma motion compensation Patch3: optimize luma motion compensation Patch4: optimize dsp functions, such as IDCT, in-loop filtering, and weighed filtering Patch5: optimize intra prediction Arnie Chang (5): configure: Add detection of RISC-V vector intrinsic support lavc/h264chroma: Add vectorized implementation of chroma MC for RISC-V lavc/h264qpel: Add vectorized implementation of luma MC for RISC-V lavc/h264dsp: Add vectorized implementation of DSP functions for RISC-V lavc/h264pred: Add vectorized implementation of intra prediction for RISC-V configure | 2 + libavcodec/h264chroma.c | 2 + libavcodec/h264chroma.h | 1 + libavcodec/h264dsp.c | 2 + libavcodec/h264dsp.h | 3 +- libavcodec/h264pred.c | 2 + libavcodec/h264pred.h | 3 +- libavcodec/h264qpel.c | 2 + libavcodec/h264qpel.h | 1 + libavcodec/riscv/Makefile | 11 + libavcodec/riscv/h264_chroma_init_riscv.c | 45 + libavcodec/riscv/h264_dsp_init_riscv.c | 68 ++ libavcodec/riscv/h264_idct.c | 482 +++++++++ libavcodec/riscv/h264_idct.h | 46 + libavcodec/riscv/h264_inloop.c | 669 ++++++++++++ libavcodec/riscv/h264_inloop.h | 47 + libavcodec/riscv/h264_lowpass.h | 249 +++++ libavcodec/riscv/h264_mc_chroma.c | 821 ++++++++++++++ libavcodec/riscv/h264_mc_chroma.h | 40 + libavcodec/riscv/h264_mc_luma.c | 412 +++++++ libavcodec/riscv/h264_mc_luma.h | 101 ++ libavcodec/riscv/h264_mc_luma_avg16.h | 1183 +++++++++++++++++++++ libavcodec/riscv/h264_mc_luma_avg8.h | 773 ++++++++++++++ libavcodec/riscv/h264_mc_luma_put16.h | 963 +++++++++++++++++ libavcodec/riscv/h264_mc_luma_put8.h | 648 +++++++++++ libavcodec/riscv/h264_pred.c | 884 +++++++++++++++ libavcodec/riscv/h264_pred.h | 53 + libavcodec/riscv/h264_pred_init_riscv.c | 67 ++ libavcodec/riscv/h264_qpel_init_riscv.c | 107 ++ libavcodec/riscv/h264_utility.h | 75 ++ libavcodec/riscv/h264_weighted_sum.c | 273 +++++ libavcodec/riscv/h264_weighted_sum.h | 47 + 32 files changed, 8080 insertions(+), 2 deletions(-) create mode 100644 libavcodec/riscv/h264_chroma_init_riscv.c create mode 100644 libavcodec/riscv/h264_dsp_init_riscv.c create mode 100644 libavcodec/riscv/h264_idct.c create mode 100644 libavcodec/riscv/h264_idct.h create mode 100644 libavcodec/riscv/h264_inloop.c create mode 100644 libavcodec/riscv/h264_inloop.h create mode 100644 libavcodec/riscv/h264_lowpass.h create mode 100644 libavcodec/riscv/h264_mc_chroma.c create mode 100644 libavcodec/riscv/h264_mc_chroma.h create mode 100644 libavcodec/riscv/h264_mc_luma.c create mode 100644 libavcodec/riscv/h264_mc_luma.h create mode 100644 libavcodec/riscv/h264_mc_luma_avg16.h create mode 100644 libavcodec/riscv/h264_mc_luma_avg8.h create mode 100644 libavcodec/riscv/h264_mc_luma_put16.h create mode 100644 libavcodec/riscv/h264_mc_luma_put8.h create mode 100644 libavcodec/riscv/h264_pred.c create mode 100644 libavcodec/riscv/h264_pred.h create mode 100644 libavcodec/riscv/h264_pred_init_riscv.c create mode 100644 libavcodec/riscv/h264_qpel_init_riscv.c create mode 100644 libavcodec/riscv/h264_utility.h create mode 100644 libavcodec/riscv/h264_weighted_sum.c create mode 100644 libavcodec/riscv/h264_weighted_sum.h -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".