From patchwork Thu Sep 5 08:52:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 14922 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id B849A44844C for ; Thu, 5 Sep 2019 11:58:41 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8B8FB687F6F; Thu, 5 Sep 2019 11:58:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E7586680C87 for ; Thu, 5 Sep 2019 11:58:34 +0300 (EEST) Received: by mail-wr1-f66.google.com with SMTP id s18so1773578wrn.1 for ; Thu, 05 Sep 2019 01:58:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=d+sFPtoycshUI04/sl9fcXMOdxCX0Nn21SzE5htXR3g=; b=Z48sQojb8YJ+gSLczODHZ4Ym/CIewYDfLpQs7gP03tW0de2YPSp03ooOt+22CQqhPh a0wExN1WT0eK7knfvpfbGapLynF42c71GGmKKFwnJvpZEMr4iZ/8QCniN5hx83yZKslX E1zuTxAood6bg9gS4gzb5Wz6cgu0L4rr45YYCxp/8PV8irVIYqcL1xOGFp+qO3TkZoc6 vGUFDgnHtUSO1NKs/6cFBzkeZr8uqrM/x/OG9ozkSvfQjpOcuXWkx3Lx8QJqeKErXeQb 7BCFOT9QP4qZV8x0tja4gtdGBp+XjwFWSH35UKz+74slGjOuaLidyWvxzT1UIQmvvyxs jA+Q== 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:in-reply-to :references; bh=d+sFPtoycshUI04/sl9fcXMOdxCX0Nn21SzE5htXR3g=; b=Gp+Y64jCsfNAh2+UqjyH69o6XnFqcPSs/E0muHpPUrop+4VjzkBuSfpGa58hczLkU2 eg+B4b6J2Ot5GEqaxPlz7D3l2IAdOJe8lNsrjbae3lCvNFr1/T4/U8q194xFiCKgWyhz NNYRPDkmnQ2q9wocKQXawS9LAyXv2iAGPRb/FXzxMK7YdeNlwHaUbxeLiWvi7e7xX5/Z tqd47hfrTUgcDyYKJtaFvk5slLq+PypI7WoC3q2R0lbnUelKDBAw2Z6fmqd8zX1TyIYr uWvKFjHejlm7lkkc7m7fYUxCQQqq+H9bPe19ZiDgdS06lP1riC8tf7RJQfc4XCUm1rjG aDSQ== X-Gm-Message-State: APjAAAVPbm2ofMWnYE4JIUU+IkOk6WVMGeX169F6VYfBVRrR4rmGWKQX 4YVwowghZF4IKlEU7WzeGo+edxuGrow= X-Google-Smtp-Source: APXvYqw2g+6TRY3YsG1br/C2ixLFZs+EILMjF/cUKLZX2ZpRmXGRR0dEAGnBDUCDegqiEUpSizq4lw== X-Received: by 2002:adf:ba0c:: with SMTP id o12mr1738872wrg.284.1567673590110; Thu, 05 Sep 2019 01:53:10 -0700 (PDT) Received: from localhost.localdomain ([77.237.106.98]) by smtp.gmail.com with ESMTPSA id u6sm1187440wrr.26.2019.09.05.01.53.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 05 Sep 2019 01:53:09 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Thu, 5 Sep 2019 10:52:55 +0200 Message-Id: <20190905085255.24699-5-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190905085255.24699-1-onemda@gmail.com> References: <20190905085255.24699-1-onemda@gmail.com> Subject: [FFmpeg-devel] [PATCH 5/5] avfilter/vf_v360: improve interpolation precision 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 --- libavfilter/vf_v360.c | 14 +++++++------- libavfilter/x86/vf_v360.asm | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index e69aa7e8c5..2c1a175d7d 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -263,7 +263,7 @@ static void remap##ws##_##bits##bit_line_c(uint8_t *dst, int width, const uint8_ } \ } \ \ - d[x] = av_clip_uint##bits(tmp >> (15 - ws)); \ + d[x] = av_clip_uint##bits(tmp >> 14); \ } \ } @@ -335,10 +335,10 @@ static void bilinear_kernel(float du, float dv, const XYRemap *r_tmp, } } - ker[0] = (1.f - du) * (1.f - dv) * 8192; - ker[1] = du * (1.f - dv) * 8192; - ker[2] = (1.f - du) * dv * 8192; - ker[3] = du * dv * 8192; + ker[0] = (1.f - du) * (1.f - dv) * 16384; + ker[1] = du * (1.f - dv) * 16384; + ker[2] = (1.f - du) * dv * 16384; + ker[3] = du * dv * 16384; } /** @@ -382,7 +382,7 @@ static void bicubic_kernel(float du, float dv, const XYRemap *r_tmp, for (j = 0; j < 4; j++) { u[i * 4 + j] = r_tmp->u[i][j]; v[i * 4 + j] = r_tmp->v[i][j]; - ker[i * 4 + j] = du_coeffs[j] * dv_coeffs[i] * 2048; + ker[i * 4 + j] = du_coeffs[j] * dv_coeffs[i] * 16384; } } } @@ -437,7 +437,7 @@ static void lanczos_kernel(float du, float dv, const XYRemap *r_tmp, for (j = 0; j < 4; j++) { u[i * 4 + j] = r_tmp->u[i][j]; v[i * 4 + j] = r_tmp->v[i][j]; - ker[i * 4 + j] = du_coeffs[j] * dv_coeffs[i] * 2048; + ker[i * 4 + j] = du_coeffs[j] * dv_coeffs[i] * 16384; } } } diff --git a/libavfilter/x86/vf_v360.asm b/libavfilter/x86/vf_v360.asm index e1efe2e3a3..3d05f02c75 100644 --- a/libavfilter/x86/vf_v360.asm +++ b/libavfilter/x86/vf_v360.asm @@ -84,7 +84,7 @@ cglobal remap2_8bit_line, 7, 8, 8, dst, width, src, in_linesize, u, v, ker, x pmulld m2, m1 phaddd m2, m2 phaddd m1, m2, m2 - psrld m1, m1, 0xd + psrld m1, m1, 0xe pshufb m1, m1, m5 vextracti128 xm2, m1, 1