From patchwork Wed Aug 21 14:55:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ramiro Polla X-Patchwork-Id: 35169 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:612c:4062:b0:48e:c0f8:d0de with SMTP id kz34csp688914vqb; Wed, 21 Aug 2024 14:31:19 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUYEvBjnCCDIXTdItjSDCTijOMjX2Euj/Se4KT2Nm5eyLulfMwvhKrtkWz1yYiu14cO/96jPoKKNyjcKKYOU3IZ@gmail.com X-Google-Smtp-Source: AGHT+IGw7A1j/VpGvSput8G7ZALMguR81qMk3Ci6jw+78q/xMtjbvqFXf0FbFsK0nOGdxY4ZRECO X-Received: by 2002:a2e:812:0:b0:2ef:24a0:c176 with SMTP id 38308e7fff4ca-2f3f88ae4e6mr26296861fa.28.1724275879221; Wed, 21 Aug 2024 14:31:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1724275879; cv=none; d=google.com; s=arc-20160816; b=SvOgvhdipsxdgwQ9uCSpGdQ/2burOXjcNQ5AuL3fRSzZ20hnxB1GEeW/9xY4G3jWw9 INimcTJ6ksSXoBQpjhb6WwU0GiaOtuXmrmqHJ0UsvMb4hfVCGH7B7S4QkNmfSVsanWLM dTYSwGeRVSbFCCG6IVY+LLTpMseeyIHnNGlEz1Wgbjiy0/SjaEM6VArlFyd8oSJDI5EV Zfw9omYWja20HDIjD8brr5mSfuY5EXdubmLq5OiLmz2THkP14NeLYLX/5QmsZ1Vjl4uI 7C/EpQf2y38xhhI5hObOK7lgh6EpzkcSlvNM44qdtJsTTC+i/4jgI+NtxLHQynMqLB9n Lm3Q== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=1d26d9Obf7d2n912mq7KLxr0+33yojLYr9GbsWM+S2I=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=oNy3DYA3O76njwoARst7jDEjmqgjVgjSftEOFACivHGn5VLHeJaFzDoV1ScpHkmBIm ZNWqfvMqzdOjBnd+AJHCvoqLhb1kP0JGPJhDZIN9GB1rBmXVRKVypHT8Yrek1EZAKwzb DH1OJBZvEVjCRLbOAIeNwOgVqTq7rFGhWstQFOUAmcy9BrKXaQDtS8ZklcwlsV2IzxxV 8BbEwbHRbVJQElR+qXYOk7yNVLq+fFw+rPVToukz26Mf/xoaxDNzASXQpzIg2DdEc4Ni qiPIxjaJatoIJXmBVt+umC2jdjF9HIHjtfv4VGS13tWCcRWs5UfnPsTz1WXuHwiT0B9C 4XOw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b="YC+t2i6/"; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5c0516010d9si71284a12.579.2024.08.21.14.31.18; Wed, 21 Aug 2024 14:31:19 -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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b="YC+t2i6/"; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EFC8668DC0D; Wed, 21 Aug 2024 17:56:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DB46468DAF8 for ; Wed, 21 Aug 2024 17:55:58 +0300 (EEST) Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-4280ee5f1e3so55318695e9.0 for ; Wed, 21 Aug 2024 07:55:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724252158; x=1724856958; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=yqYtkZ7IKu2Xgm/A/Ep+NTQrNClGehUCNHjG6gPOx+8=; b=YC+t2i6/fmkG83rEdO+ILnwzzX2CC1/PQwiVuyildsbGBVFFsre3OvFIxowWfWm0th 4WwpytriLJ5uQP5PPAiDUaooa4duQRXjzy/1dyqaOpswj8GSjG+6UfvJUX/ap5w0zr3s prLA+OYmJYj1UGzJ3uUWYx2gGJLuFFB2uAfJVq2noUu7uhTY7TUdi0MIRP6aKDcZzL5x YcK/v7yhh+vJ3O73LgemZ3w/3OoujX1B1bU2GStXpA1+5K7VLcxjkiSN41YgyKYfuRFa QZ9Ou/CotE/5Ybf+xr7snbOYyADilaJlf8fAMJ5ImmhgyUlde0XtMjD44dO0UN+Gcf6B vUeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724252158; x=1724856958; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yqYtkZ7IKu2Xgm/A/Ep+NTQrNClGehUCNHjG6gPOx+8=; b=d46E6UUoo+oE9huxg59X4ti06hAD4+0nVN4J5G+CJKySPmRh0OQxHcVxwXk4PGtddU c9Lv5ln8fMJQVtNzOh0H3LO/iLlUvM0DToZg1GcXrqK9l476vKRvlc3YCX0sElFewlvH ItZXk80bTNq0+9Gjm+IW6eEA1gQz6B0xK3fS8oMd9oRIpKU+2Oy8n0R2q8Gt8lD25sgu rnGiIyWObKL5svPsZmTlSa2KANi+kFwasjwjIcc/Gy0AS61Wdcxc5taantOLtOz63jrL n+15rouOAS2HNAL8OkGea0PEBUjMFV0HED6WyvkK8gTlOpwfm8zxNhXECyXLJLvmzKcX n8Fw== X-Gm-Message-State: AOJu0YzX1E7iLDo1zH8L1a2eMMwbzpRDO0ChDQOOBpDDaVFDVQELZ2e0 vxC+ytIfDpobVi2PU4RD+NcAXZlEmm64XkiITyi7hVQP8maud/dvmu9Aq4jd X-Received: by 2002:a5d:525a:0:b0:371:7009:c26f with SMTP id ffacd0b85a97d-372fd8319a9mr1665008f8f.63.1724252157442; Wed, 21 Aug 2024 07:55:57 -0700 (PDT) Received: from localhost.localdomain (196.105-180-91.adsl-dyn.isp.belgacom.be. [91.180.105.196]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-37189896c50sm15873554f8f.85.2024.08.21.07.55.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Aug 2024 07:55:56 -0700 (PDT) From: Ramiro Polla To: ffmpeg-devel@ffmpeg.org Date: Wed, 21 Aug 2024 16:55:48 +0200 Message-Id: <20240821145555.235323-1-ramiro.polla@gmail.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 0/7] avcodec/mpegvideoencdsp improvements 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: bnbCt74c2JQV The tests have now been run on an A55 instead of an A53 (the RK3588 has both in-order A55 and out-of-order A76, so it makes testing easier). Changes: - draw_edges_mmx: support negative strides - draw_edges_mmx: removed redundant variable assignment (last_line) - checkasm: merged commits adding mpegvideoencdsp tests - checkasm: add new tests to fate - checkasm: test for negative strides - neon: remove spaces inside {} - neon: do two lines per loop in pix_sum (faster on A55, slower on A76, but a good compromise) Ramiro Polla (7): avcodec/x86/mpegvideoencdsp: support negative strides in draw_edges_mmx() checkasm/mpegvideoencdsp: add pix_sum, pix_norm1, and draw_edges avcodec/aarch64/mpegvideoencdsp: add neon implementations for pix_sum and pix_norm1 avcodec/aarch64/mpegvideoencdsp: add dotprod implementation for pix_norm1 avcodec/x86/mpegvideoencdsp: fix comment for draw_edges_mmx avcodec/x86/mpegvideoencdsp: speed up draw_edges_mmx by using memcpy() avcodec/mpegvideoencdsp: speed up draw_edges_8_c by inlining it for all used edge widths libavcodec/aarch64/Makefile | 2 + libavcodec/aarch64/mpegvideoencdsp_init.c | 49 ++++++++ libavcodec/aarch64/mpegvideoencdsp_neon.S | 97 ++++++++++++++ libavcodec/mpegvideoencdsp.c | 26 +++- libavcodec/mpegvideoencdsp.h | 2 + libavcodec/x86/mpegvideoencdsp_init.c | 61 +++------ tests/checkasm/Makefile | 1 + tests/checkasm/checkasm.c | 3 + tests/checkasm/checkasm.h | 1 + tests/checkasm/mpegvideoencdsp.c | 147 ++++++++++++++++++++++ tests/fate/checkasm.mak | 1 + 11 files changed, 338 insertions(+), 52 deletions(-) create mode 100644 libavcodec/aarch64/mpegvideoencdsp_init.c create mode 100644 libavcodec/aarch64/mpegvideoencdsp_neon.S create mode 100644 tests/checkasm/mpegvideoencdsp.c