From patchwork Wed Sep 12 10:42:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 10302 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:12c4:0:0:0:0:0 with SMTP id 65-v6csp4690054jap; Wed, 12 Sep 2018 03:43:15 -0700 (PDT) X-Google-Smtp-Source: ANB0VdbfAWpObG08GQJOwBa15TqagxcWso8529l+KlbkRIGFtCbfeh8MyqFVDLse4GzzK1PUFNgY X-Received: by 2002:adf:9031:: with SMTP id h46-v6mr1018291wrh.248.1536748995285; Wed, 12 Sep 2018 03:43:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536748995; cv=none; d=google.com; s=arc-20160816; b=oLQwG/0pSgYjyDc2rgt57kfPkSuiVzHmfelOugofo2fXHPTniYyih6R8m3wEs7w4Pw 2oj8Yd29WBNofAqPnZfXO0JlQJ86EzCpnP3Rp97MN10gXPL2z/lK26nEVleEkaVN6FJe Akjj5pyC9WKc/c/gRVGu8AjG8ZHhyl6Yd/IOac/2pSLoRrDhntv66PMIWNINe7kKuioL zFaq7pquVcjxj/Bggf+i4pKxjokVB8288ddvNYaE9XF6z/FAR1hF8WQY65j5OsK++bZC 3xzmNe66V2Xe1UVGK0yMX2Byp8wtDyuURqCIZfEkdOhDbceDJRokiS6aaoJhYVEIahxv 7pzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to; bh=B7/vXpYTQLpb0sbX/Wh0oIrCHR0JnI19Zd4lSvvsVuI=; b=SK25dE9qjh35HvWRsuDyAnqM6xBbqjpUKr9QxuvpyOf31TifYG7kF57EevGlKPY/Lu IYDpi4EMPm8pCBbjtmRap01n+akWjaZaHrI2H3LFkGwhgg05SjCwUx/jEnS/VEtEn0yG Lt1EiPMeKPlk9x8QL5xkPdf8jh+cSU4XBmVD/wLNd1FRM27E7bcKZZwbRwVVOuQEQnko PaPdRTB6vz56RnNMFT06I5i7mlQLNMZei7MLBtVREIHa9nF9Gr+ZVzZ1kRVQssOpuPtC 0K1rfVZm4TaeHV3t2M0hWJiJivbdmlqcVOtsSXVzlOK0JM26vYAWUITxtbSw7kQXOMrx s//g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=MEgTzp5u; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 134-v6si866191wmm.100.2018.09.12.03.43.14; Wed, 12 Sep 2018 03:43:15 -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=20161025 header.b=MEgTzp5u; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9CC8B68A50D; Wed, 12 Sep 2018 13:43:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A330668A532 for ; Wed, 12 Sep 2018 13:42:55 +0300 (EEST) Received: by mail-ed1-f48.google.com with SMTP id y20-v6so1383665edq.2 for ; Wed, 12 Sep 2018 03:43:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=ewse5Ay3m3FApFhlnJTyG0b2BJkrYkrmTnmo5Icn8HI=; b=MEgTzp5u8WdsLQK8WrK+ybFE3ViNOISf79azcv28O/TSqEc2BzJm907XGal+s7S0hZ 2MpXBXNT8ZOCC8hrEi8LgnuEDv3sip+KalTSpb6oUdft2sxM77SPL78IQU5E46g0W1Dx 6ha8AIJr9aJzZIMXhnNM62Hfd6bBvTl0aMQrqdH4xsfZtfWjuTfCFyVW+Xx0B8KZALni VxNYyydjNJSUYOQv36PFLVb54dWRdSuxJ4EBbVgxPoVlGqBRoj0GV8awYYcQcfE5Vfue lxDSlDZg7cpEGhKSyBeXaGA8tSzqoZVDZRDaz/5dMr1kvHhmmKslumoTzhMEWmKQnrNJ Xa7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=ewse5Ay3m3FApFhlnJTyG0b2BJkrYkrmTnmo5Icn8HI=; b=qbYBXu2ee5R6F963DDGxA54YEIHypdAXql2us61PaqhbsZP/dWFgM0KakijYdyiJTb 68SL1N204oonNA+kJHUWeuCN+SVv3xQzjNAu+1wY2NC5aVggh+YNvov57Fm8Yi2rxU40 X9/D1PXC75cZlM0sohMEqd9DnHjAshzNiES7HHfi+gdZakR16Tqli5dpMFlGI0JnT7F7 9eMiAdCoVTZB4Zn2ca060Vz4Bm2pKkoNJFpuSrqmt7BNv38gkYa/78iYJgNCzx3fbpoY vSYKOZW02NM4JFLJdhOcjmI/cTkCd1F1vlg9fS2087wagptmzRS16FAGDAMRTecIiv7o STNQ== X-Gm-Message-State: APzg51BLqxM+y/nQXyJiQeIg7rzXvJjFppZYc4M+X7yqFtrKVEuydZ8L h96s8mkKJOtHCRnm0TDhuEr71hS2 X-Received: by 2002:aa7:dc49:: with SMTP id g9-v6mr2008520edu.115.1536748985219; Wed, 12 Sep 2018 03:43:05 -0700 (PDT) Received: from localhost.localdomain ([94.250.174.60]) by smtp.gmail.com with ESMTPSA id v14-v6sm496043edm.97.2018.09.12.03.43.04 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 12 Sep 2018 03:43:04 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Sep 2018 12:42:43 +0200 Message-Id: <20180912104245.5326-1-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH 1/2] avutil: add float_dsp.vector_dmul X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Paul B Mahol --- libavutil/float_dsp.c | 9 +++++++++ libavutil/float_dsp.h | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/libavutil/float_dsp.c b/libavutil/float_dsp.c index 1d4911d815..6e28d71b57 100644 --- a/libavutil/float_dsp.c +++ b/libavutil/float_dsp.c @@ -32,6 +32,14 @@ static void vector_fmul_c(float *dst, const float *src0, const float *src1, dst[i] = src0[i] * src1[i]; } +static void vector_dmul_c(double *dst, const double *src0, const double *src1, + int len) +{ + int i; + for (i = 0; i < len; i++) + dst[i] = src0[i] * src1[i]; +} + static void vector_fmac_scalar_c(float *dst, const float *src, float mul, int len) { @@ -131,6 +139,7 @@ av_cold AVFloatDSPContext *avpriv_float_dsp_alloc(int bit_exact) return NULL; fdsp->vector_fmul = vector_fmul_c; + fdsp->vector_dmul = vector_dmul_c; fdsp->vector_fmac_scalar = vector_fmac_scalar_c; fdsp->vector_fmul_scalar = vector_fmul_scalar_c; fdsp->vector_dmac_scalar = vector_dmac_scalar_c; diff --git a/libavutil/float_dsp.h b/libavutil/float_dsp.h index 2c24d93471..9c664592bd 100644 --- a/libavutil/float_dsp.h +++ b/libavutil/float_dsp.h @@ -173,6 +173,22 @@ typedef struct AVFloatDSPContext { * @return sum of elementwise products */ float (*scalarproduct_float)(const float *v1, const float *v2, int len); + + /** + * Calculate the entry wise product of two vectors of doubles and store the result in + * a vector of doubles. + * + * @param dst output vector + * constraints: 32-byte aligned + * @param src0 first input vector + * constraints: 32-byte aligned + * @param src1 second input vector + * constraints: 32-byte aligned + * @param len number of elements in the input + * constraints: multiple of 16 + */ + void (*vector_dmul)(double *dst, const double *src0, const double *src1, + int len); } AVFloatDSPContext; /**