From patchwork Wed Sep 28 15:29:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= X-Patchwork-Id: 34824 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp309048pzh; Wed, 28 Sep 2022 08:29:32 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7Gn2d/EK7Udy3HYZMeOqjysjplLTV11DoVq5KlJwpPfyV3xaBbWtQCkEqnj7DGqBDGber5 X-Received: by 2002:a05:6402:190d:b0:44e:98b9:3d7b with SMTP id e13-20020a056402190d00b0044e98b93d7bmr34583181edz.259.1664378972667; Wed, 28 Sep 2022 08:29:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664378972; cv=none; d=google.com; s=arc-20160816; b=Gglily4vZfdEGePnKRRigMXrXwKLHIJN5BODw2ETCJ814ASwG5p2+3EvLYwDiPV525 /KY08+/cnV9NwJPPlIcOndZsMMyeueOpnIcoSKoR2f1SQmwqf0/eRvEDlgFrIKT/rRVR +7UYf7R63R5wLa9R6m7mWUfYrmUs37Am2Zk5WaYrQpz4yiNkukHffZkWJJFYaJ+ZspAk d7c+Y2wpDYbb6zE8q96G3rTuc2Ksk3GfFzKdLkKsD222OqfvN2q0kxcWmSnLmScltKEh RJh362zyV3fZeXOgcbAZ/9gSVihfFsGS1dZCj6/kVbyVmT9SjrlOlRKPZeHc1P+aEuLD ym8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:organization:message-id:date:to :from:delivered-to; bh=+3h5JFD1Fc5nZIZILW//POz80gvnvta9HMqi4m4u54Q=; b=TQa8VEKOPEAQm+K9M9etJWkLHGyNy0P18ClfhHqPeHt045dgAWF7HbIDt0Caub7VCA VXMAfBP7YAbIQ2lXohbmSjQY4Nh6Mou9DU6sXzbOpms/+oHt0oNVkPEujDT/ZIlVeeqF MdCcplg/LJ08KgnbaX3fezg/Hmq/zr+SBcSfjXH7KumvBJpSdOQ83ICSKh5NmmIqxPcW dgSojpGFQNVZ3vNO6QfmLvPmjU1P9aGsoZ2ledQYgWOOgX0Tf8mCoJJATrScZXxrxTTi +IVW5hswHYX6olL9nKTbWd1npmul564UaBetPORUe2Dw6HXVsCrxi7NSnL+GPhiP2Vv3 1vmQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h11-20020a05640250cb00b004483a12fba9si5798257edb.210.2022.09.28.08.29.32; Wed, 28 Sep 2022 08:29:32 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4F3CE68BB73; Wed, 28 Sep 2022 18:29:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1C3E068BB63 for ; Wed, 28 Sep 2022 18:29:23 +0300 (EEST) Received: from ursule.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id BEEFEC003A for ; Wed, 28 Sep 2022 18:29:22 +0300 (EEST) Received: from basile.remlab.net ([2001:14ba:a080:a501:23a6:ebae:8f2a:4d73]) by ursule.remlab.net with ESMTPSA id KeT6K1JoNGPGCAkAwZXkwQ (envelope-from ) for ; Wed, 28 Sep 2022 18:29:22 +0300 From: =?iso-8859-1?q?R=E9mi?= Denis-Courmont To: ffmpeg-devel@ffmpeg.org Date: Wed, 28 Sep 2022 18:29:22 +0300 Message-ID: <12088142.O9o76ZdvQC@basile.remlab.net> Organization: Remlab MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 0/3] RISC-V V swscale pixel format conversions 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: WHAcd9Ou8VUM Hello, This adds the pixel format conversions that appear to covered by checkasm (plus YUYV to I422 for which a patch was sent already). RVV has no register-register interleaving/deinterleaving instructions, so this uses strided loads or stores instead. Another option would be full register move then segmented store, but that is presumably slower. The following changes since commit d31013166ac3727ae7c7ebbb756e1e5800bc2b40: lavc/pixblockdsp: RISC-V diff_pixels & diff_pixels_unaligned (2022-09-28 11:46:11 +0200) are available in the Git repository at: git.remlab.net:git/ffmpeg.git rvv-swscale for you to fetch changes up to 18edd2c3108b126fc478635ac1048db60b9d7fc4: sws/rgb2rgb: RISC-V 64-bit V packed YUYV/UYVY to planar 4:2:2 (2022-09-28 18:23:53 +0300) ---------------------------------------------------------------- RĂ©mi Denis-Courmont (3): sws/rgb2rgb: RISC-V V shuffle_bytes_xxxx functions sws/rgb2rgb: RISC-V V interleaveBytes sws/rgb2rgb: RISC-V 64-bit V packed YUYV/UYVY to planar 4:2:2 libswscale/rgb2rgb.c | 2 + libswscale/rgb2rgb.h | 1 + libswscale/riscv/Makefile | 2 + libswscale/riscv/rgb2rgb.c | 61 ++++++++++++++++ libswscale/riscv/rgb2rgb_rvv.S | 157 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 223 insertions(+) create mode 100644 libswscale/riscv/Makefile create mode 100644 libswscale/riscv/rgb2rgb.c create mode 100644 libswscale/riscv/rgb2rgb_rvv.S