From patchwork Mon Mar 20 16:49:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Darnley X-Patchwork-Id: 40729 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp1933829pzb; Mon, 20 Mar 2023 09:51:45 -0700 (PDT) X-Google-Smtp-Source: AK7set/A7C5rfyIlK6VOuWw+sfGvCWyPpkyFQJKZVia/NYdxzl1QoAH0PzIFTIz3/jhl/jz/HsuW X-Received: by 2002:a05:6402:742:b0:4fa:56dc:b6e6 with SMTP id p2-20020a056402074200b004fa56dcb6e6mr185769edy.16.1679331105783; Mon, 20 Mar 2023 09:51:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679331105; cv=none; d=google.com; s=arc-20160816; b=ZTh1RuFDavsvpBnnOrNkLAZHUYR2bk/uz+ysmWtlHKYs7MZbTL3Q/xrFU0Ydbw4Vv/ fTp0HP6kMcZsiHUT6HCmsZcwriOOKUIp6qDkphis7sGJfALCxkWAhhHZYlB0b5Hlfind TLTFwnPWemANMnIYwClMKDsRAJgZ89kLwof8jof9DVAzUgXUkm3ip4i2fA8LW+lYvKvo JRYmZIiwrmP+hD3BvD8r9bQfy7eaCVxfhlcXMMjrFjKOHEVLbzdgWJHMZ6kUCf1OTaks ywFocdrMERIRJWpXAQd/twbUsEnNPxBFOv06cc0d4aYnXbMtnWEOlAq5WGhT2wXpG/zL a1AA== 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=nooedw9gw8XdXufVaIJDM9bR0zTJfC0qQcIjb7pbVA8=; b=PFQ9tTJoGVpXBtsZV1q4qgZiT1ut+MBzlIUyh2vwF9uKNCwnGI3UNztgJmQ1vDASLP a5HgGlLdyRDbr7DI+ipx8qU1WQSKaW+CZcB0kiS1zJS7W3GV9E3YiMlXMipj5vq0kcSS qtHqtBPbeaEsWkOCj1sCb/hmkWZAwjp0rulqZ+eirFNyrK5wnogXZJp9pFGQCNS8eN40 c4cbsFfku/5CFzidyroqGs+Xp1dJ5biDffFW2M3qEhm5EX+x6X9YnHwuDuAReojefUki Il8kGOCipJwoAz5HNKuymsiTwrNFhDc498y3WN5N6wPK+uB/EZlHXVSPYP/RzFJ/NxFf Mncg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=F8tBRqDc; 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 d24-20020aa7d698000000b004c056644702si10811645edr.400.2023.03.20.09.51.44; Mon, 20 Mar 2023 09:51:45 -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=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=F8tBRqDc; 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 6EEE768C3A5; Mon, 20 Mar 2023 18:51:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vs1-f42.google.com (mail-vs1-f42.google.com [209.85.217.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1DC5168C3A5 for ; Mon, 20 Mar 2023 18:51:34 +0200 (EET) Received: by mail-vs1-f42.google.com with SMTP id c10so3898580vsh.12 for ; Mon, 20 Mar 2023 09:51:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=obe-tv.20210112.gappssmtp.com; s=20210112; t=1679331092; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=WElLzVKXn1Kv/7XJYT8UeM3+2MMKgaLLC+PWt3IWRxY=; b=F8tBRqDcjzSWnxSx053KChO1eUukvmAUDAVIwSOdDO9okEUOHBFXMWM0bl0Kfafjt7 5trlN1s9LvPSABwf4DlmaYaRMKj8dVlx3GM5x42XeLWfDaRZ7oy2IsGyAwS10bpb21Py 0Z6TXo0QHsNULUB/+t4EngtETvxfTbQFF584h5SjAZvk/WW2yDXRqdXDyzM912vV8GjR Apb+T4uJMuAaO7pESVkoAiB/MqiUm2CAfg/8v6kUw2XUer3ZzeGQM4ueBYvQ0JoAzNy0 VsPEn2CQXhmS12mhwdbq9cn2rwL1xNOXxDc/afSo10x5z1Ow2qtxdigNzZwFMcl7hN+w wCQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679331092; 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=WElLzVKXn1Kv/7XJYT8UeM3+2MMKgaLLC+PWt3IWRxY=; b=3dmGBtRUloOG5YX+RgsqAwvlAGGRLIpEnRBhlDsAoV2c7Pw08qxgbBBAepVwyGS60l S3NepnLCf3HxLSm73qdgcI0wxZihyWecc0OXry1mp0XbT06aMMQkotSU3dl1voAPTD0a AYpVRh4n+NuTvvs2b0MlLNO8tXUP9auEJK1uOgplcKG3CAaNYeb1HjnjSipWERjK31nR vXs0shsr1LtX3/6lQkqMcjT6Y/vY7/mnJmwtpzRpUjJM11Y7rbJx7RraZVS6l8wvN9VP GrZ48VQcj7202JtS0Wkay2P8wSchnJmLKYKYTfKxAW0a4CLm6yMEquZRCA5JzYgo2TrS adQA== X-Gm-Message-State: AO0yUKVHHCvLUjpJM46o6gW8iLQbE5xFPFvbTqHP9lSsCwPNc02PVkSr ikqUWM7GKpKKN7lO5Ne0QcALPQB1FnFLxpvh78M= X-Received: by 2002:a05:6102:2045:b0:425:de64:c614 with SMTP id q5-20020a056102204500b00425de64c614mr2890570vsr.8.1679331092190; Mon, 20 Mar 2023 09:51:32 -0700 (PDT) Received: from Dana.systemlords.lan (d51A44418.access.telenet.be. [81.164.68.24]) by smtp.gmail.com with ESMTPSA id q11-20020a056102100b00b0042590870708sm1219171vsp.0.2023.03.20.09.51.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 09:51:31 -0700 (PDT) From: James Darnley To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 Mar 2023 17:49:21 +0100 Message-Id: <20230320164925.299207-1-jdarnley@obe.tv> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 1/5] avfilter/bwdif: move filter_line init to a dedicated function 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: MP/GDirUHMXw --- No changes libavfilter/bwdif.h | 3 ++- libavfilter/vf_bwdif.c | 13 +++++++++---- libavfilter/x86/vf_bwdif_init.c | 4 +--- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/libavfilter/bwdif.h b/libavfilter/bwdif.h index 889ff772ed..5749345f78 100644 --- a/libavfilter/bwdif.h +++ b/libavfilter/bwdif.h @@ -37,6 +37,7 @@ typedef struct BWDIFContext { int parity, int clip_max, int spat); } BWDIFContext; -void ff_bwdif_init_x86(BWDIFContext *bwdif); +void ff_bwdif_init_filter_line(BWDIFContext *bwdif, int bit_depth); +void ff_bwdif_init_x86(BWDIFContext *bwdif, int bit_depth); #endif /* AVFILTER_BWDIF_H */ diff --git a/libavfilter/vf_bwdif.c b/libavfilter/vf_bwdif.c index 65c617ebb3..34e8c5e234 100644 --- a/libavfilter/vf_bwdif.c +++ b/libavfilter/vf_bwdif.c @@ -340,7 +340,14 @@ static int config_props(AVFilterLink *link) yadif->csp = av_pix_fmt_desc_get(link->format); yadif->filter = filter; - if (yadif->csp->comp[0].depth > 8) { + ff_bwdif_init_filter_line(s, yadif->csp->comp[0].depth); + + return 0; +} + +av_cold void ff_bwdif_init_filter_line(BWDIFContext *s, int bit_depth) +{ + if (bit_depth > 8) { s->filter_intra = filter_intra_16bit; s->filter_line = filter_line_c_16bit; s->filter_edge = filter_edge_16bit; @@ -351,10 +358,8 @@ static int config_props(AVFilterLink *link) } #if ARCH_X86 - ff_bwdif_init_x86(s); + ff_bwdif_init_x86(s, bit_depth); #endif - - return 0; } diff --git a/libavfilter/x86/vf_bwdif_init.c b/libavfilter/x86/vf_bwdif_init.c index e24e5cd9b1..ba7bc40c3d 100644 --- a/libavfilter/x86/vf_bwdif_init.c +++ b/libavfilter/x86/vf_bwdif_init.c @@ -42,11 +42,9 @@ void ff_bwdif_filter_line_12bit_ssse3(void *dst, void *prev, void *cur, void *ne int mrefs2, int prefs3, int mrefs3, int prefs4, int mrefs4, int parity, int clip_max); -av_cold void ff_bwdif_init_x86(BWDIFContext *bwdif) +av_cold void ff_bwdif_init_x86(BWDIFContext *bwdif, int bit_depth) { - YADIFContext *yadif = &bwdif->yadif; int cpu_flags = av_get_cpu_flags(); - int bit_depth = (!yadif->csp) ? 8 : yadif->csp->comp[0].depth; if (bit_depth <= 8) { if (EXTERNAL_SSE2(cpu_flags)) From patchwork Mon Mar 20 16:49:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Darnley X-Patchwork-Id: 40730 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp1933916pzb; Mon, 20 Mar 2023 09:51:54 -0700 (PDT) X-Google-Smtp-Source: AK7set+Jby3YnDwq9JMN4Vtu3qLP4p/V3RHU0wwwFHXzgGi0xRhPhPoPbxxQNivRJA4verq1HxzO X-Received: by 2002:aa7:d489:0:b0:4fd:2127:a8bc with SMTP id b9-20020aa7d489000000b004fd2127a8bcmr129100edr.29.1679331114557; Mon, 20 Mar 2023 09:51:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679331114; cv=none; d=google.com; s=arc-20160816; b=hOrLlA9m21noBLlb6NXHUVoe3014HO0lWd+QEjoBZh0r5G1nc7rJoxgEDKrKnHb7jG OGSrhAz42COaK8u/rANyfR3LK0bZX+9YYLDKqx2vlcU8GxOqg8ebTG+HSd9ADW3K4eHS 4I+c8OwEbcCYj79PaJTrSJOLCUkIRzr5QrlZGSocwlltAuwHSVwri+amJZn0dcbw4zUX 4KSoVSoqy6ZLNmNY2mB4eC6HadLBdt8YHczyLeRLSVdFF/TQQwomBbbwgDOvCwQ3DSlV 2h0KEmOCfHTWfGXNg3u21EhwMxgOcYY7F5E8hPyYAUU7A8HzOtE1WDE+p3PRHeXHHxoC Idwg== 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:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=tHFdvGKF1rsXC6PoAK5adi65LsCpS107o/hKkAZbHLQ=; b=hOD21o21jA65o8XRtX0gUw1S8GtrK9VFU6d7n2vjjIIx270r9VBisATgy7QjmjhfhK GzJ1cOZL9muS51bg09KVHuqjRQDYuyAYlerUoB0xDt3mv0K1FAE1CMLQsiooB2EKM8FT h6jShpXp+O7J+olU0xni5n8I9SlCrFpkLqHTeaatgryP8dB1qmiCjJ0WnxIjXECufgBD L+m2g2ju8Mnuwl7jmoBYk5FwHvDejmjfk7HtzorZmMc5jQHi9hDQMlMrMcZPIfy1gMN0 iXF8m91Rci+UYpU342utwX+IxeSh/eMt/uxsHt/X/SlJrfqu1K0idUPKJuuFm4lwD1Nh CFcw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=XigMbJ4o; 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 d12-20020a056402516c00b0048e82d753a3si10858793ede.227.2023.03.20.09.51.54; Mon, 20 Mar 2023 09:51:54 -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=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=XigMbJ4o; 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 5812568C4EE; Mon, 20 Mar 2023 18:51:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vs1-f54.google.com (mail-vs1-f54.google.com [209.85.217.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 04C7468C487 for ; Mon, 20 Mar 2023 18:51:35 +0200 (EET) Received: by mail-vs1-f54.google.com with SMTP id cz11so4633418vsb.6 for ; Mon, 20 Mar 2023 09:51:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=obe-tv.20210112.gappssmtp.com; s=20210112; t=1679331093; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=MuAH5FtrGJPACqSyPSMtJvri5uBmlOXLQpioN+cLU20=; b=XigMbJ4ooQf9aeZcqR1idOqZu07BXpbPCYwBgOrIFVGt+qDDE9h24LStEHAiRoSGrB WXzzkz1lD4gUjK1IDq5G6Ep9wVQTPWaQPdwUB6KOJdy+81XN7Qlt1ptEAaUSI9vXujF+ qAxl4O3Pxpw4HxJWUwnNMavOg+h4e8JUVFiSuxXczICf8GsdA4DmXMDw+sa61Zz3zNkp bMZmOffPdv3T64SZZsLKaIrGXmft0eXEZdmHLuqGpIF2YKQaMnFnQkjRnjTcwMCIYX+n rGgJhOwyDnU8T8mKBn8W1cqkN/E5BfHO349Ena116rc0W/jA92/r+X2tzDmyhFdee7pB VcxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679331093; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MuAH5FtrGJPACqSyPSMtJvri5uBmlOXLQpioN+cLU20=; b=BeOHiA0MamDVqxtidfphl1jQi03QW6lZMyMjuV2N/WqHvjgEC8JkWm75P9UxMzPNsW +pmAe8EJuIxCb6Z26FVhJOKOHiahMdkwqfRVevQ2hleB+iSz9uGbDPA0kLiyLJI2EkZ3 cz9re0x4v4VrTiZxlZd/4XPAL3QdT2GSO6SLqi+BsIKeGqG8KGp+2Dld4XueOeePdhaP p2DHk4npTAkAAK8O2ELD/P/i9dbYM5pRWpAZ2B1cStpag+BGsYpFFKzntV3BnEmQ2oqy ec61x98ygANP1XlYUzAx/ezbJQY47KyRcZkC8ECdkxlMP/5icInP2hMA9GbYTEZZGNbG vzAw== X-Gm-Message-State: AO0yUKUpredK7KFAO6YVkviqRvmWrvhNHXV+eEyWUktnqAaRfJyObSSt oQ1pkuAmqWp4WdiG8CsPtOKgOFNJJ9GhSjeX4l8= X-Received: by 2002:a67:f4c3:0:b0:421:db47:ced0 with SMTP id s3-20020a67f4c3000000b00421db47ced0mr3363200vsn.4.1679331093308; Mon, 20 Mar 2023 09:51:33 -0700 (PDT) Received: from Dana.systemlords.lan (d51A44418.access.telenet.be. [81.164.68.24]) by smtp.gmail.com with ESMTPSA id q11-20020a056102100b00b0042590870708sm1219171vsp.0.2023.03.20.09.51.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 09:51:32 -0700 (PDT) From: James Darnley To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 Mar 2023 17:49:22 +0100 Message-Id: <20230320164925.299207-2-jdarnley@obe.tv> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320164925.299207-1-jdarnley@obe.tv> References: <20230320164925.299207-1-jdarnley@obe.tv> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 2/5] checkasm: add test for bwdif 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: A9qKQvVVvusm --- Fixed a small bug tests/checkasm/Makefile | 1 + tests/checkasm/checkasm.c | 3 ++ tests/checkasm/checkasm.h | 1 + tests/checkasm/vf_bwdif.c | 69 +++++++++++++++++++++++++++++++++++++++ tests/fate/checkasm.mak | 1 + 5 files changed, 75 insertions(+) create mode 100644 tests/checkasm/vf_bwdif.c diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile index a6f06c7007..b6a43f181f 100644 --- a/tests/checkasm/Makefile +++ b/tests/checkasm/Makefile @@ -40,6 +40,7 @@ CHECKASMOBJS-$(CONFIG_AVCODEC) += $(AVCODECOBJS-yes) # libavfilter tests AVFILTEROBJS-$(CONFIG_AFIR_FILTER) += af_afir.o AVFILTEROBJS-$(CONFIG_BLEND_FILTER) += vf_blend.o +AVFILTEROBJS-$(CONFIG_BWDIF_FILTER) += vf_bwdif.o AVFILTEROBJS-$(CONFIG_COLORSPACE_FILTER) += vf_colorspace.o AVFILTEROBJS-$(CONFIG_EQ_FILTER) += vf_eq.o AVFILTEROBJS-$(CONFIG_GBLUR_FILTER) += vf_gblur.o diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c index e96d84a7da..5e729cf0e0 100644 --- a/tests/checkasm/checkasm.c +++ b/tests/checkasm/checkasm.c @@ -179,6 +179,9 @@ static const struct { #if CONFIG_BLEND_FILTER { "vf_blend", checkasm_check_blend }, #endif + #if CONFIG_BWDIF_FILTER + { "vf_bwdif", checkasm_check_vf_bwdif }, + #endif #if CONFIG_COLORSPACE_FILTER { "vf_colorspace", checkasm_check_colorspace }, #endif diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h index 8744a81218..e9e73c6fa0 100644 --- a/tests/checkasm/checkasm.h +++ b/tests/checkasm/checkasm.h @@ -82,6 +82,7 @@ void checkasm_check_utvideodsp(void); void checkasm_check_v210dec(void); void checkasm_check_v210enc(void); void checkasm_check_vc1dsp(void); +void checkasm_check_vf_bwdif(void); void checkasm_check_vf_eq(void); void checkasm_check_vf_gblur(void); void checkasm_check_vf_hflip(void); diff --git a/tests/checkasm/vf_bwdif.c b/tests/checkasm/vf_bwdif.c new file mode 100644 index 0000000000..5c2e16cffc --- /dev/null +++ b/tests/checkasm/vf_bwdif.c @@ -0,0 +1,69 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 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 General Public License for more details. + * + * You should have received a copy of the GNU 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 +#include "checkasm.h" +#include "libavcodec/internal.h" +#include "libavfilter/bwdif.h" + +#define WIDTH 256 + +#define randomize_buffers(buf0, buf1, mask, count) \ + for (size_t i = 0; i < count; i++) \ + buf0[i] = buf1[i] = rnd() & mask + +void checkasm_check_vf_bwdif(void) +{ + BWDIFContext ctx_8, ctx_10; + + ff_bwdif_init_filter_line(&ctx_8, 8); + ff_bwdif_init_filter_line(&ctx_10, 10); + + if (check_func(ctx_8.filter_line, "bwdif8")) { + uint8_t prev0[9*WIDTH], prev1[9*WIDTH]; + uint8_t next0[9*WIDTH], next1[9*WIDTH]; + uint8_t cur0[9*WIDTH], cur1[9*WIDTH]; + uint8_t dst0[WIDTH], dst1[WIDTH]; + + declare_func(void, void *dst, void *prev, void *cur, void *next, + int w, int prefs, int mrefs, int prefs2, int mrefs2, + int prefs3, int mrefs3, int prefs4, int mrefs4, + int parity, int clip_max); + + randomize_buffers(prev0, prev1, 0xff, 9*WIDTH); + randomize_buffers(next0, next1, 0xff, 9*WIDTH); + randomize_buffers(cur0, cur1, 0xff, 9*WIDTH); + + call_ref(dst0, prev0 + 4*WIDTH, cur0 + 4*WIDTH, next0 + 4*WIDTH, WIDTH, + WIDTH, -WIDTH, 2*WIDTH, -2*WIDTH, 3*WIDTH, -3*WIDTH, 4*WIDTH, -4*WIDTH, + 0, 0xff); + call_new(dst1, prev1 + 4*WIDTH, cur1 + 4*WIDTH, next1 + 4*WIDTH, WIDTH, + WIDTH, -WIDTH, 2*WIDTH, -2*WIDTH, 3*WIDTH, -3*WIDTH, 4*WIDTH, -4*WIDTH, + 0, 0xff); + + if (memcmp(dst0, dst1, WIDTH) + || memcmp(prev0, prev1, sizeof prev0) + || memcmp(next0, next1, sizeof next0) + || memcmp(cur0, cur1, sizeof cur0)) + fail(); + bench_new(dst1, prev1 + 4*WIDTH, cur1 + 4*WIDTH, next1 + 4*WIDTH, WIDTH, + WIDTH, -WIDTH, 2*WIDTH, -2*WIDTH, 3*WIDTH, -3*WIDTH, 4*WIDTH, -4*WIDTH, + 0, 0xff); + } + report("bwdif8"); +} diff --git a/tests/fate/checkasm.mak b/tests/fate/checkasm.mak index a4e95541f5..6a7d4a1226 100644 --- a/tests/fate/checkasm.mak +++ b/tests/fate/checkasm.mak @@ -37,6 +37,7 @@ FATE_CHECKASM = fate-checkasm-aacpsdsp \ fate-checkasm-v210enc \ fate-checkasm-vc1dsp \ fate-checkasm-vf_blend \ + fate-checkasm-vf_bwdif \ fate-checkasm-vf_colorspace \ fate-checkasm-vf_eq \ fate-checkasm-vf_gblur \ From patchwork Mon Mar 20 16:49:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Darnley X-Patchwork-Id: 40731 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp1933985pzb; Mon, 20 Mar 2023 09:52:03 -0700 (PDT) X-Google-Smtp-Source: AK7set8/ZBnoUBHXalvWV49z99Tc4u0B9V0XPS2pNqRY/xAI8CU6DA+ztGQLlkenEjqVpIVctKCY X-Received: by 2002:a05:6402:4cf:b0:4fb:223a:76e7 with SMTP id n15-20020a05640204cf00b004fb223a76e7mr13816002edw.18.1679331123474; Mon, 20 Mar 2023 09:52:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679331123; cv=none; d=google.com; s=arc-20160816; b=Ssfa/erNHAFQyOmHvo0MCeH7Uh+HUZ/GRz4h0/rVlhWZbdrbXyWHWSK0B2fZXVwa3l Xid7XI3MVIJnlf0EZPO4z1hyeSO3TKP+inz4LCfa9rSyIr3wXvPp2NDxA/Sm/D1qckka 69XCb6N6OuwCYqTZbg1g3T35FV1MwqEJQD0eO7bJkKmb++SR2OH/rJjoG9ReaEiXmmPt +X6m70/3dnnlDiM9Wrb3Ho4d6R9GLh/lnyyGXKawwzPiJwaHcdGsyKnRsdciQBtzDWxW VZFDa58VvePHP61Bf35PEE9jUbZ+S8VuQqBlCRpJKVRJufgzGAcqHWU/VdfBo6gxrPKf nsdg== 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:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=PlPakB8BUsEx8MR5RpbFAei8EtPB48l0xcEAtfyjZ0A=; b=t9pQ4Qkfp7DnOteA47NNvv2VKk7DuPTTiuw4m4phK3w6T2iJrzFcb/AO4k+87DBpR5 U37GxyYa53KzvklCS0WZjGrRQsLJZBvArA3VVS3TW1Bkbzp/ZHuI0BEzTAnCtpBYjQIi c9eH+lD1Os0aHKDMvCS5zz76IadRF/klAmF5FsMse3sC/6rYDQgqgbVIU6seyslCw2Ig IZ0UsuEhzGQVDhR3tqc6l7eHVpv2Z87b5VEYCthSBo/NQVJGtav4Ek+9jOutFmQs/MOh C7cZrWzVqz7hrB6BOLjZB63X3b57DAw8UraBRJYP9B2/XpHP615WCGgkSJRXAB2E/bqE wWxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=iaCcOBJd; 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 hf8-20020a1709072c4800b009313e7b7273si9575698ejc.649.2023.03.20.09.52.03; Mon, 20 Mar 2023 09:52:03 -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=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=iaCcOBJd; 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 25D2268C506; Mon, 20 Mar 2023 18:51:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vs1-f51.google.com (mail-vs1-f51.google.com [209.85.217.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DE38C68C4E6 for ; Mon, 20 Mar 2023 18:51:35 +0200 (EET) Received: by mail-vs1-f51.google.com with SMTP id cu36so2354688vsb.7 for ; Mon, 20 Mar 2023 09:51:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=obe-tv.20210112.gappssmtp.com; s=20210112; t=1679331094; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=to5PYp3iXIkClyMW3J9pDras2y8qj2i6nJGDOeDuD30=; b=iaCcOBJdAdzmCZdOp0/TJMihXOfj4WlrbIicF2YryXKzMyhXpvWthO7Xo8kJeFnGbW nE2puYJyrrwnsivqNJKUp0UzH1K7qaoID3g17rYw4n/iIEXYIsHCMB8huu4qggRwY/7y OtP3tk9mgujQgEO++XmG0Q2r7UPdeRTj1KqVwG2ZpO9AapbebaJHksQ3KXqkK6yi4UnF 02cTcoG8csr7SbEJqKtiYacUs71I33/na+DKoUnbyzCFhuumqMAN5Vyq3fObhDjmSLFZ IUeG0rIJOLOHc5yoRCGn/MOQgMEDIEJiEa3aqafO6cam+6y3LJFo6+F003+FhCl/4B34 PNrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679331094; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=to5PYp3iXIkClyMW3J9pDras2y8qj2i6nJGDOeDuD30=; b=w63WDXY9bYB2MYdga7/mmsF3qYt88FhvPR/sFpWgDmClE9j3VkhbIXmVKJoiL/FI0S agOB/oUjziSR1hD9aVtbwhEinf1U1K/qx5vE1W7Fl6Ku0aHcx0vPimLXiYHw9MvyPMJG Io0KxQdUbKZIZ9hCBDm3LfbOEbMcvU3V+in4yRmDTIoZnJ9H+X3b6aYxx8MJIDtr52kV Qk7m7VYD18HgtAtQ5MdhpGZ5+qzHd8yuAjLdEaFQUQ+zkp8lozGWezVAhrekM8Jp7Uxa 4djcM24WZgDhwLxMLc7B3srKaIzwNF8UZBNopz0oqT7NESkuS5G6kFFX05axSATfSARC 8fgw== X-Gm-Message-State: AO0yUKXH2eDtD0i9CotBMGClqnGuLIVrS8C+px5tvQsROjPDjtxym1VG AaRo/OmtWJpHbfPP7rY5Tt8EpGhPcM8kWaT9Chg= X-Received: by 2002:a67:f90d:0:b0:425:d05e:af1 with SMTP id t13-20020a67f90d000000b00425d05e0af1mr2972510vsq.16.1679331094418; Mon, 20 Mar 2023 09:51:34 -0700 (PDT) Received: from Dana.systemlords.lan (d51A44418.access.telenet.be. [81.164.68.24]) by smtp.gmail.com with ESMTPSA id q11-20020a056102100b00b0042590870708sm1219171vsp.0.2023.03.20.09.51.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 09:51:34 -0700 (PDT) From: James Darnley To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 Mar 2023 17:49:23 +0100 Message-Id: <20230320164925.299207-3-jdarnley@obe.tv> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320164925.299207-1-jdarnley@obe.tv> References: <20230320164925.299207-1-jdarnley@obe.tv> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 3/5] tests: add bwdif to fate filter tests 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: K6da8zLBYFxq --- tests/fate/filter-video.mak | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak index 444adc6be6..c588286c38 100644 --- a/tests/fate/filter-video.mak +++ b/tests/fate/filter-video.mak @@ -11,6 +11,15 @@ fate-filter-owdenoise-sample: CMP = oneoff FATE_FILTER_SAMPLES-$(call FILTERDEMDEC, PERMS DELOGO, RM, RV30) += fate-filter-delogo fate-filter-delogo: CMD = framecrc -i $(TARGET_SAMPLES)/real/rv30.rm -vf perms=random,delogo=show=0:x=290:y=25:w=26:h=16 -an +FATE_BWDIF-$(call FILTERDEMDEC, BWDIF, MPEGTS, MPEG2VIDEO) += fate-filter-bwdif-mode0 fate-filter-bwdif-mode1 +fate-filter-bwdif-mode0: CMD = framecrc -flags bitexact -idct simple -i $(TARGET_SAMPLES)/mpeg2/mpeg2_field_encoding.ts -frames:v 30 -vf bwdif=send_frame +fate-filter-bwdif-mode1: CMD = framecrc -flags bitexact -idct simple -i $(TARGET_SAMPLES)/mpeg2/mpeg2_field_encoding.ts -frames:v 59 -vf bwdif=send_field + +FATE_BWDIF-$(call FILTERDEMDEC, BWDIF SCALE, MPEGTS, MPEG2VIDEO) += fate-filter-bwdif10 +fate-filter-bwdif10: CMD = framecrc -flags bitexact -idct simple -i $(TARGET_SAMPLES)/mpeg2/mpeg2_field_encoding.ts -flags bitexact -pix_fmt yuv420p10le -frames:v 30 -vf scale,bwdif=0 + +FATE_FILTER_SAMPLES-yes += $(FATE_BWDIF-yes) + FATE_YADIF-$(call FILTERDEMDEC, YADIF, MPEGTS, MPEG2VIDEO) += fate-filter-yadif-mode0 fate-filter-yadif-mode1 fate-filter-yadif-mode0: CMD = framecrc -flags bitexact -idct simple -i $(TARGET_SAMPLES)/mpeg2/mpeg2_field_encoding.ts -frames:v 30 -vf yadif=0 fate-filter-yadif-mode1: CMD = framecrc -flags bitexact -idct simple -i $(TARGET_SAMPLES)/mpeg2/mpeg2_field_encoding.ts -frames:v 59 -vf yadif=1 From patchwork Mon Mar 20 16:49:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Darnley X-Patchwork-Id: 40732 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp1934096pzb; Mon, 20 Mar 2023 09:52:13 -0700 (PDT) X-Google-Smtp-Source: AK7set948N+QasMzFauyQ80NLKEXTOd/IYFXww47JvDE2FlU5NeW+en4Xo5vnPqbO2tftY+V0GdZ X-Received: by 2002:a17:906:a254:b0:872:b17a:9b59 with SMTP id bi20-20020a170906a25400b00872b17a9b59mr9821993ejb.38.1679331133531; Mon, 20 Mar 2023 09:52:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679331133; cv=none; d=google.com; s=arc-20160816; b=sEfN/W08+9xQmvoQfphhayFmwnndPvvu82bai8TpB48egFZI5nDxM5BXUK05kLYfrC TAWCkMyn57B4UM/ma26hzlE6zc6s2u5gh4Z8uRr0L0klae89MXnYyA4KkoQjyL0fif7a ZLQ1De8gXntho+oNmpKebouZiiOTBIV0hMxbJ1of2LxO22qimKRF2EtWGKnHus2zm6dh Gq17HSqZXMyY64qy3LOhi6sB5DdVkhan4CbzRbbksvmRh1mUCDhm1huwkUNqMrrNBnc6 v/Y6oDrV7/glmv6FTMNI8ZD6q41ysozO4H9Dx+dS3xWWsLrkskEplrkwgOhYCqaDuqQq feOA== 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:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=WOnqNCuSP84FCXifEM6YmZVWlgAA01J0FtnDkzBSF90=; b=JpjuQjCPBTVQvmdQ78+RkCc6yH0/A6CJvZ8kIxo4KLVHMf6z3whRZ2y9IXpLJMdC7Z 4DwTHy6yxsTdT4EPVSHFsV9jPsuEk5+/m0lhFFeD48w9fzDFJgtQ6tIWtQeqTdcJT3Ns EjxC0gEHIUiSmWPqQQ0Px1mG9hgNR021zWE+0NmyXYXo45obA+zy23Iuxa97AHa2C0AL 86eW/DfbvxGFnm/eF6qPy7XrOzuc88Tx81uWFv3JCCTRr+k6wB3/eOF4bQgNNzqJXKZo 6WghfMCnersAHrcZwf7X4VHt6vYgKZTc9BCad4phCzlD6ZnUrqTcp1f/PwzM9c5yow6o X7wg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=t0dvlaRI; 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 i24-20020a1709061cd800b008c1d4ed00d3si10444996ejh.792.2023.03.20.09.52.13; Mon, 20 Mar 2023 09:52:13 -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=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=t0dvlaRI; 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 0744A68C516; Mon, 20 Mar 2023 18:51:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vs1-f54.google.com (mail-vs1-f54.google.com [209.85.217.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B0E0668C4E5 for ; Mon, 20 Mar 2023 18:51:37 +0200 (EET) Received: by mail-vs1-f54.google.com with SMTP id a3so11095665vsi.0 for ; Mon, 20 Mar 2023 09:51:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=obe-tv.20210112.gappssmtp.com; s=20210112; t=1679331096; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=IYzIWpfCsY5z7gIBEJeGHg/W9GRrPLnfaiSZo86xiF0=; b=t0dvlaRImJKgen2heS7V0FfRetLigeayw5tK+fz5UF1TebWzs1edA4eRGdvIi7/biO IIxiQ2yX1kqaKCzgBZ/ZgXW81GKazIhAEGxMoQeiqwIiRc0EmceX2XG02KZqKtnD1jg9 uGx3aWFCeq7tKvjTh0tHuQNPfrupVu0ruspCcwjVG7LDizz0skX3jXmJ2yDwwIfT5oHD Xas3RyEUiSzK3aFUfx+rJSrTweEm2yRn5PF2fYOaLUfqD3z3jLQuQPMrgxZeCMOCqjRx aanFAbxQZ41FTWFodE1TFYNYI92A+aQ+vEB3Czv8N+f3P2pB7XYaKQuY7vBef2FVvaUV azuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679331096; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IYzIWpfCsY5z7gIBEJeGHg/W9GRrPLnfaiSZo86xiF0=; b=ff6fulvAegZuDGuBlGMYPTN5R6z31mn71K3cC9GytN6Djk1mU0ELL28iwQwU52h7x/ gVYZY6Vf96V1T2XuTt8p+H0ZLxoF+2SfUiS+6deBGG/ACFGKNKjMdXoEn5ZtqrbSJ32o 1IknmxF6egVDKvy2GwkuJ252aFwiUEUElJcgyi65IZvLg8z/XWvXiMD1NHpJq5QrDQXx JirXgXiV3vnBMtT0MUEHtRGoKQ/TVOivD1/A72FqWdmlW8QYsWSYRsdRvuN6zPV89m7t ZzujiTsawsFUJkU5U3ucyg6LjOP/CRUoY4aqZZZC9swQdkmb673g0NrGhfr8BLKjTfDD gxkw== X-Gm-Message-State: AO0yUKVaLCCB26HAyTy7DyBXokUYWrgXBj41FQEPzrVBP2oHLzLUfzHv PnSJ4ahm/Kt82FDO0NJJbTEtwsGTBhKMdDIsTKw= X-Received: by 2002:a67:f153:0:b0:426:2a37:4a64 with SMTP id t19-20020a67f153000000b004262a374a64mr1449219vsm.33.1679331095517; Mon, 20 Mar 2023 09:51:35 -0700 (PDT) Received: from Dana.systemlords.lan (d51A44418.access.telenet.be. [81.164.68.24]) by smtp.gmail.com with ESMTPSA id q11-20020a056102100b00b0042590870708sm1219171vsp.0.2023.03.20.09.51.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 09:51:35 -0700 (PDT) From: James Darnley To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 Mar 2023 17:49:24 +0100 Message-Id: <20230320164925.299207-4-jdarnley@obe.tv> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320164925.299207-1-jdarnley@obe.tv> References: <20230320164925.299207-1-jdarnley@obe.tv> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 4/5] checkasm: add a test for 10-bit data 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: mMvMqxwL/oZs Also deduplicate to share with the 8-bit test. --- Should I squash this into the commit adding the checkasm test? tests/checkasm/vf_bwdif.c | 73 +++++++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 29 deletions(-) diff --git a/tests/checkasm/vf_bwdif.c b/tests/checkasm/vf_bwdif.c index 5c2e16cffc..46224bb575 100644 --- a/tests/checkasm/vf_bwdif.c +++ b/tests/checkasm/vf_bwdif.c @@ -27,6 +27,44 @@ for (size_t i = 0; i < count; i++) \ buf0[i] = buf1[i] = rnd() & mask +#define BODY(type, depth) \ + do { \ + type prev0[9*WIDTH], prev1[9*WIDTH]; \ + type next0[9*WIDTH], next1[9*WIDTH]; \ + type cur0[9*WIDTH], cur1[9*WIDTH]; \ + type dst0[WIDTH], dst1[WIDTH]; \ + const int stride = WIDTH; \ + const int mask = (1< X-Patchwork-Id: 40733 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp1934182pzb; Mon, 20 Mar 2023 09:52:23 -0700 (PDT) X-Google-Smtp-Source: AK7set/7Qr6OXCOR70dIr4+xQQYi+g/iOakPTVkQRLUiIIY2QmoqT9Kfb4Zn7IxMCFfk1MlI0ikG X-Received: by 2002:a17:906:9f14:b0:92b:e1ff:be30 with SMTP id fy20-20020a1709069f1400b0092be1ffbe30mr10288234ejc.4.1679331143065; Mon, 20 Mar 2023 09:52:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679331143; cv=none; d=google.com; s=arc-20160816; b=JUzX2BQ+Pe9DkEQx83jGmthy5YLqZlRlrfGy9sXLP3erqLJUAtW+g2Lr7UhRQ1vXRx 9VxjLXtaOyX9+PDKh1lfPqVAX9ljRToCTG+iikpQB7cu5W8a/pRK4hUG8aPMmS80tTbM jO16LKAQM+SUlNtUz7K45kOVzh1qeTgq7xaWXWDS5EM3f/tmGD3Ggnn8QMAq4Ad/Uyi6 iQfxKz3RmQRF48Do/S1ffrfOFcEHj0fr6zf+i3cttAHZHHrQKrfxtSakuR8nKaRBcX+5 gf3TAyD6TaS8eqJ3M/6amXSP/L1H3CEibDWdqRu8d4XKlgjFPru8lzXp5O3aoXrzgg9i d8nw== 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:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=YXwzJAJavDL6wqievbFyMP+MpsZtKko94kU4wwwdcKM=; b=B+RRMZ3y8KVmvIC8ZDR/46Ttif+K++41gWF+Qof21xQ9j2sj4cpbjMm+wUxh+4apI8 md587xRp4B6Lk33zm8UVdcTyYHq8zt/0B9uql8gmLd9RB2O6pFqNqHva5IE3xDSeokfH j/kPIdiLcYPN+9z6BV7XVCX9MqsmgatIQE1YIalssADgMHOXXPlPaL5iQ4givjAuxSa2 YZ7rwaY7dO1TPHk7yTekHkgUv4aydnrhcrjvF+tDxs3tqbP2P65OB9PHLJeieAoHKjOd tvoGEEgc3oyChV19GzrBRTH5T9seUbYODnVs9HjEnLrJSMB+/eR6Y75O0VNZHOTjqrlT ORUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=tMle5Mrx; 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 e16-20020a50fb90000000b004bd0d14881dsi10545869edq.90.2023.03.20.09.52.22; Mon, 20 Mar 2023 09:52:23 -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=@obe-tv.20210112.gappssmtp.com header.s=20210112 header.b=tMle5Mrx; 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 2D58068C527; Mon, 20 Mar 2023 18:51:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vs1-f42.google.com (mail-vs1-f42.google.com [209.85.217.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D954368C506 for ; Mon, 20 Mar 2023 18:51:37 +0200 (EET) Received: by mail-vs1-f42.google.com with SMTP id d18so6062364vsv.11 for ; Mon, 20 Mar 2023 09:51:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=obe-tv.20210112.gappssmtp.com; s=20210112; t=1679331096; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=31s57943+0+xsq74PT0PLrcsZWJFV7gxxoqU6rH3w7A=; b=tMle5MrxsHiastEyzka4KDm2UBAnS3U5AIn7QnwexV3Lm4iyPhBaKkpPq7BiQdrRbH cXczwxZxQALHi/PqKjzfH7bbinqDwoEcq4jyml7oJtyV8nzWQHKxj5nkaUwrA3tLZAsN lBXfXjEou4+G97EyolvCq8/8VaOeYdWPfzkoTKzeP5dIoarqQAi9FUljrEMw7WZE8YZ2 U1vwjiZcab0T9kUqDVRAltmCg5WUL/Gr3PQvsSYKFjbemgTmvkWDyQmERCG82UzGuwXs WWm6AV9aM97s3+64xkq6FWUSPECk+imYdOM2SqxjSaWhYOX6CqNcGmIX4K7jg3rZTfIr FcBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679331096; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=31s57943+0+xsq74PT0PLrcsZWJFV7gxxoqU6rH3w7A=; b=sMWxzrzZ72eYKjjfQwMEsf87ZThqMr7yOhppWQLeRktkYJiOsmY9u2fHuDJgUy5z0y LqTcnvUVRTfvPXW1FdbjTCJ0A6T9HXwNTXmh1YodhEooS59hIRDsjloVJsTRyrTKNg9x CjPRgAEam03sxLRw5mloRgS/LRTaTJ2yEwgsV98QGQLu+xD6QZhC0IkJUwJ/uvc3LuMO iEn4Wr5KBrY+j0hoR9oWsXNxSMfXuB9gNvRfCA+Tqq8v3qNfZ73Xb0qPUTyk9mMBDeSz 33AHqWsScNI5TcSkf9kanB3cA+QKDlIr7RA3RBfWioLQI3s6U7utE4qP+tYhGFknM67a Uxpw== X-Gm-Message-State: AO0yUKXmRs1EbAGYezMjbZqTC8AILMbon4gYrmOcC1vlykxt18boffxc no7JbG/O8+Ao3UGX8jE+Izz72pqOWUDgPdnybuI= X-Received: by 2002:a67:fc97:0:b0:412:2edf:5239 with SMTP id x23-20020a67fc97000000b004122edf5239mr2902178vsp.34.1679331096639; Mon, 20 Mar 2023 09:51:36 -0700 (PDT) Received: from Dana.systemlords.lan (d51A44418.access.telenet.be. [81.164.68.24]) by smtp.gmail.com with ESMTPSA id q11-20020a056102100b00b0042590870708sm1219171vsp.0.2023.03.20.09.51.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Mar 2023 09:51:36 -0700 (PDT) From: James Darnley To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 Mar 2023 17:49:25 +0100 Message-Id: <20230320164925.299207-5-jdarnley@obe.tv> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230320164925.299207-1-jdarnley@obe.tv> References: <20230320164925.299207-1-jdarnley@obe.tv> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 5/5] avfilter/bwdif: add avx2 filter_line function 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: NS7r+970SHYR 8-bit: 2.24x faster (1925±1.3 vs. 859±2.2 decicycles) compared with ssse3 10-bit: 2.00x faster (1703±1.7 vs. 853±2.0 decicycles) compared with ssse3 --- Fixed the word broadcast libavfilter/x86/vf_bwdif.asm | 29 ++++++++++++++++++++++++----- libavfilter/x86/vf_bwdif_init.c | 12 ++++++++++++ 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/libavfilter/x86/vf_bwdif.asm b/libavfilter/x86/vf_bwdif.asm index 0b453da53b..c93b41ec48 100644 --- a/libavfilter/x86/vf_bwdif.asm +++ b/libavfilter/x86/vf_bwdif.asm @@ -26,18 +26,22 @@ %include "libavutil/x86/x86util.asm" -SECTION_RODATA +SECTION_RODATA 32 -pw_coefhf: times 4 dw 1016, 5570 -pw_coefhf1: times 8 dw -3801 -pw_coefsp: times 4 dw 5077, -981 -pw_splfdif: times 4 dw -768, 768 +pw_coefhf: times 8 dw 1016, 5570 +pw_coefhf1: times 16 dw -3801 +pw_coefsp: times 8 dw 5077, -981 +pw_splfdif: times 8 dw -768, 768 SECTION .text %macro LOAD8 2 + %if mmsize == 32 + pmovzxbw %1, %2 + %else movh %1, %2 punpcklbw %1, m7 + %endif %endmacro %macro LOAD12 2 @@ -45,8 +49,14 @@ SECTION .text %endmacro %macro DISP8 0 + %if mmsize == 32 + vextracti128 xm1, m2, 1 + packuswb xm2, xm1 + movu [dstq], xm2 + %else packuswb m2, m2 movh [dstq], m2 + %endif %endmacro %macro DISP12 0 @@ -244,8 +254,12 @@ cglobal bwdif_filter_line_12bit, 4, 9, 13, 0, dst, prev, cur, next, w, \ prefs, mrefs, prefs2, mrefs2, \ prefs3, mrefs3, prefs4, \ mrefs4, parity, clip_max + %if mmsize == 32 + vpbroadcastw m12, WORD clip_maxm + %else movd m12, DWORD clip_maxm SPLATW m12, m12, 0 + %endif %else cglobal bwdif_filter_line_12bit, 4, 6, 8, 80, dst, prev, cur, next, w, \ prefs, mrefs, prefs2, mrefs2, \ @@ -264,3 +278,8 @@ INIT_XMM ssse3 BWDIF INIT_XMM sse2 BWDIF + +%if HAVE_AVX2_EXTERNAL && ARCH_X86_64 +INIT_YMM avx2 +BWDIF +%endif diff --git a/libavfilter/x86/vf_bwdif_init.c b/libavfilter/x86/vf_bwdif_init.c index ba7bc40c3d..f833318c10 100644 --- a/libavfilter/x86/vf_bwdif_init.c +++ b/libavfilter/x86/vf_bwdif_init.c @@ -32,6 +32,10 @@ void ff_bwdif_filter_line_ssse3(void *dst, void *prev, void *cur, void *next, int w, int prefs, int mrefs, int prefs2, int mrefs2, int prefs3, int mrefs3, int prefs4, int mrefs4, int parity, int clip_max); +void ff_bwdif_filter_line_avx2(void *dst, void *prev, void *cur, void *next, + int w, int prefs, int mrefs, int prefs2, + int mrefs2, int prefs3, int mrefs3, int prefs4, + int mrefs4, int parity, int clip_max); void ff_bwdif_filter_line_12bit_sse2(void *dst, void *prev, void *cur, void *next, int w, int prefs, int mrefs, int prefs2, @@ -41,6 +45,10 @@ void ff_bwdif_filter_line_12bit_ssse3(void *dst, void *prev, void *cur, void *ne int w, int prefs, int mrefs, int prefs2, int mrefs2, int prefs3, int mrefs3, int prefs4, int mrefs4, int parity, int clip_max); +void ff_bwdif_filter_line_12bit_avx2(void *dst, void *prev, void *cur, void *next, + int w, int prefs, int mrefs, int prefs2, + int mrefs2, int prefs3, int mrefs3, int prefs4, + int mrefs4, int parity, int clip_max); av_cold void ff_bwdif_init_x86(BWDIFContext *bwdif, int bit_depth) { @@ -51,10 +59,14 @@ av_cold void ff_bwdif_init_x86(BWDIFContext *bwdif, int bit_depth) bwdif->filter_line = ff_bwdif_filter_line_sse2; if (EXTERNAL_SSSE3(cpu_flags)) bwdif->filter_line = ff_bwdif_filter_line_ssse3; + if (ARCH_X86_64 && EXTERNAL_AVX2(cpu_flags)) + bwdif->filter_line = ff_bwdif_filter_line_avx2; } else if (bit_depth <= 12) { if (EXTERNAL_SSE2(cpu_flags)) bwdif->filter_line = ff_bwdif_filter_line_12bit_sse2; if (EXTERNAL_SSSE3(cpu_flags)) bwdif->filter_line = ff_bwdif_filter_line_12bit_ssse3; + if (ARCH_X86_64 && EXTERNAL_AVX2(cpu_flags)) + bwdif->filter_line = ff_bwdif_filter_line_12bit_avx2; } }