From patchwork Mon Sep 19 21:27:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38059 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1507404pzh; Mon, 19 Sep 2022 14:28:09 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7uZ78AEsKHRFqS0XtV8luB+6y7U/fxSt1aesV5f67ywH3HT5BMi+hH0CtzPi56E6cdT4Ek X-Received: by 2002:a05:6402:1f15:b0:453:a795:4c60 with SMTP id b21-20020a0564021f1500b00453a7954c60mr11003423edb.75.1663622889658; Mon, 19 Sep 2022 14:28:09 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hd38-20020a17090796a600b00781b880f465si420185ejc.720.2022.09.19.14.28.08; Mon, 19 Sep 2022 14:28:09 -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=@outlook.com header.s=selector1 header.b=cXp0Pm7i; arc=fail (body hash mismatch); 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=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E25FA68BA76; Tue, 20 Sep 2022 00:28:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2057.outbound.protection.outlook.com [40.92.89.57]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A78B468B984 for ; Tue, 20 Sep 2022 00:27:59 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JKPFG4AD2QYxBjHseyz/zrExb3EB8S7nFPmjFLL5Q1dhc6oPndghMJp6uigXnukLN2qOkpyo52IEKuB0SU3VkhQqN8D9a2TriRZvyZ/DLx83x1NGvqqCObJFrGGMdlJMYkCd1OCfqueKyhwm+1lTF9NDgnvbCkeyQSm8/0iTgUKvuts4g7Xu0YAvLa+YmCK2N3ZNasD/eq53CN64L+1vlmZ5+1cl8Ge4BUBfX4JXUVGuAl3dlOenEFUVvyW66ERLhbGLStzE80ig0OByp93kzeByH5g9K2lLKB5S2nSkMFEn03q5crzYQGweC9YPgSriSR0hcVl/j+X8Js3pJwXdrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mjEWa3xnVzYvJNKA+nzJ62sApo2y/L+5hHCeOwpbIRE=; b=mmTNbioxyE4wnX8utPmkIbrzC2HQvuJZU4nEK9wRS8P/xFV8OpLzneWKCCa7g27odlJy9NqlNr1X8NBDWOXzjTUcvUJ0bi3EOaRbwKS3c55BqKDeXtvpRS5NeyNX3VA4iuR/SBLpPF3LDMFz3tbbjkotkFE7O6YUTibtz9a3CPEqjZ8bxBmxoBTp4yAQmvCvUVm+mvNJAvzcUsLVfCR+6WHjhZVI8uwyIkxRdNVb+plX1OoXuY4yi2qBZwsXWsA772a13jebfIf8O7iGhSvdVAH8KCZLOb1/u2zTHh6zgeAw2AvsC6MuB/RLhiPGgpQEvwJEIFIxsiXDeoT6lMq0/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mjEWa3xnVzYvJNKA+nzJ62sApo2y/L+5hHCeOwpbIRE=; b=cXp0Pm7iiBIr1BnrTlVG6n++hr5zn5/tgz6JlLuz2Y4soX8XI6tcUNTNhjfwpkl0csAbC2ay/tAzNKvjPsuX+xsSryZ33WfC137JoNfu+r2plVZh+bXOnG8m8zh1R0E1//UY0FuLL0e8m0njHQNMAgjcteA0qaGWplBcNUaI3KTiz7L8t3Veo6CbrOe7gixYrIjWqvqoIglFiFcd1OJ/Cup8HrGQYdTTB6k3bIdGWhQ6mbRK+Lsh3pOmzuxNX0SP8kcWpkfLm++wYvX4S7DsTqm49OQYMo9cHj0Y6hm0sbh7IaThQUtIiVT4Sk2wtSA85jXSLAmSBx8kKMBtRZ10cg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0188.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37b::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.19; Mon, 19 Sep 2022 21:27:57 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785%8]) with mapi id 15.20.5632.019; Mon, 19 Sep 2022 21:27:56 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Sep 2022 23:27:49 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [+/OrVcROs7hQzCJDZ2aTrlBql/dQx4XDRXhNEyGHAhA=] X-ClientProxiedBy: AS9PR06CA0385.eurprd06.prod.outlook.com (2603:10a6:20b:460::27) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20220919212752.2937794-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0188:EE_ X-MS-Office365-Filtering-Correlation-Id: c07da0cf-6965-48d7-f5e8-08da9a85d1d0 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKyNVnLBfCRsxcs8q+QOzp/w+Gg9TUMx4pNRxUV69/cxzFMndJIi1SwGSTo97+Xmb96B9MEMn6NnJtx27xhymWa8mFJVMwAkf14I65miWQEhCNnCIWLkzwcs/Ur40pWb2lOZBktrzkmyQ4csazNvOhcElk4aCvVgM7WOG068FeoL2qiCPAnZ0f8pmMU4Tx2HFV4lYwf8ZOvDRbQoC+2jfeO3510yOiA31BQ2kCpdlgjuo0gIQFbe0ppyfGiUcrsfHE6RH65Dv2Er77mosfxm5+LPfutRdJzM+Oy+tN/BDnGuluV5MTK6m85Mgu6tqDpsOFjBSHo+xjUWNlOyzRZO1e2Hpf7BtgzY7AmorL5rin9oclvSvUP7VN2nM8B/iMRni7HXVa3qY+i6q/LwLYYrbmxcdsF3NZgxsEPw5R9wa0qfZox1Vn6XTqhxo583QuxbiRI8BivGh1QCYErT+yRCFH/tC92ytg2JtFVBfl6nriUuw5F+LAIh3B+fM+vWRanmeNE1hy2W7C+sovqvvbO+VxZpXp9LK0vtaTmJPOS3cgcfK0rBJ1R64O+54VhHLhbr5HPm9UIoBeK3JyFeyxvgA1wykk/U44W/bOmcchaFJYZQkakiuD4agu+lpugasHLiD9eYVK3TQEgNywjwtC9k7XM4HW1dmfuofwG9mTfc3DgxBk0117KDwpcOypfYCSGcfXbvE1D68Z1tOtzqKPNUmxYV1dqzz5grg1Q= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6ebyKZLTFdm5pe5qOY/EVA5H4POvDVq2/P9KH8Zw2xTnyaHGUn8QZJgt9phVB1j1JgdubePk+Lcqp3lxwRJvTFIoXmdjIAV1s+a6NlPhEtX9n4Dq8wxVW953xf5TQAuHWIMw59sOSQYgv9TIFGtpRY539BqA5665QXVsLrP+asJxpxE8aAhVQKB6YGQpKYYC84JH+FPPJgNm0TlO1km9qC1KbgFHyDkNq8m9qEwGkJ8sCSdJRxCR87t9us7IL1VzMNynmkNGdzrSHno+wSco/3gBpVPg0hZtBqNdX+ufPQuFVSLgBiuGXkRv/H2O4ZQYJFZ1xqjwTryfwUkHz1cZP8CxH5UPsC1mychUbc1qpjTWx0WYI8gAjN2jkSFSLJITSTV+kbhsQmrpgPHvAJhpLPvH8tudB99VAmqFgpgQfCHfhnyv13w1qqlPwc4xleBJ8y7RAsCIAf+mSRKTnTSdKHr6BPA4w2nficyRecQjb/2zeRtjmDW418kjsD/yuWybrG0EClg4s0i0qjScnQar/O1rshPYJmE0ozBlYHRjGdCYm0rpGUBXfPZyNUH9gsIW7Bzs10svFLH3d1/FMEukT9xWLh2i3ElZqWv1sUCdb7lLt+QAnSjQL2pHYdT0EsmwzsPb+tozwUNIEel5ErN1gw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: fSAs4TmW0zJiZhfdmegvwvPHiVlZRvRa0z/5roIRPQ4nhDVexBMQm6I42KcekZgmuAZ5cESrzfyvAsdCS+x5yTP3O2HbuMh4D60R7c/bWGatB6hp8K2Jv+BQEDMepGWPPS13uhuwBoBDZU774tPcfThrw71S1trnj5oh3sHka8wLMaB3uUxBTUhKjf5tMN09VzVjL1l5n3w8ZAD99kvvP3GlH2bpPZtRM+2sce0ZsZBNu1NW1swWzIGiPEwVE+45ZStpNY/zcpoXUdiWGxybUGVCLL2YRe+gDLguDhHgfdvQoNQCYQa51m99DuzbjIdemHl/X0qIHPaAE3s08yZrIl3rBWciCDVblDhqZKTVEOeBrqiN8UFZB/ttae00eBSrzzdkXUiNN0QgEUHRmoxn2zPLXdzCdVBRkU6PNABEhTIlNVm5kjDK1MDnVO8KB4O0K9vaRWZylUZJooEBSNIvD+QCckHRe2FBqJpVGUYSU0ymyXeV18QpkWUtwWQtHwLl67RpDZP8n7dq5fgpObozceB35gLs8/f7c7UywrcC/CiTU7A0jMswqnhzj9ioEY71TzSGPJFykesDf5T81kJadC2wvpeU6a4z95qd2KjDNVzAJ2a0PJQuHPn3H703UILpHlfGtIQmF+AH5ReDnP0uUvgl/mcTYrodpsLsAoZVtXb3deITqsJzIcd4oIL370jDJMLse/JKJzwmNoAMwcCLk+SoJBjpV0HtJHfP8axRBpD5O3haKc+MRBXXwg5l6MghMHRc7RNJ6EJVbRKeiPDoRtNcWdfchRU2hK4BeVEmUOBfps3S/uWfKD5q1y9n+3C2zlBuE8YO7kxZt75zli11W5jNODnmxW7bQIKH3x/jT+QoMGD9j2IDnTOSZ6MPUks25IdOGIDgyGE3KUXUr+4ryvES9uzgj3faLR5MJw68yNNepPDj/XcA36n9ANMx5o8UW4NOAUqX0KHH4Qv9uF3XGGh8CVb3D9gpHxEz/DCuerupCek54Bpprd4H2pHxNP2j3bEC+sHX3RtgY+lKYKcMYftiKBu5oEktKa3ksozgw+B0P2Lkp5P/wX9PHx4OhQDfrlSdmWQG8LFEM8LQQoHE2aXTBoCPfUPzFOdm20nos6cDTeCb8vmmw3FPPFuXSpERHX2ZkAEr135YpVzPXUiPjKf3sL4E97YWgGNSietsvLYOC11Fw6Pk9et9S8Q/qyxCepFP9HTTxjjP45vCpi8swBa44qYvxhrpZijiCKDsPIChchst3WtD57Y2eqRznnyXOXsMnAgnXBsRhTN5OMOlUkn8XTDxq6E3sV2tgMEY3WACZRN6NM1GXjrZ8s4ILvu2 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c07da0cf-6965-48d7-f5e8-08da9a85d1d0 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2022 21:27:56.9681 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8P250MB0188 Subject: [FFmpeg-devel] [PATCH 1/4] avcodec/snow: Move ff_snow_inner_add_yblock() to snow_dwt.c 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 8Mz7ECI29ouU Only used there and by x86 snow asm code as fallback. Signed-off-by: Andreas Rheinhardt --- libavcodec/snow.c | 33 --------------------------------- libavcodec/snow.h | 3 --- libavcodec/snow_dwt.c | 32 ++++++++++++++++++++++++++++++++ libavcodec/snow_dwt.h | 3 +++ 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/libavcodec/snow.c b/libavcodec/snow.c index aa15fccc42..85ad6d10a1 100644 --- a/libavcodec/snow.c +++ b/libavcodec/snow.c @@ -29,39 +29,6 @@ #include "snowdata.h" -void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, - int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8){ - int y, x; - IDWTELEM * dst; - for(y=0; y>1); - const uint8_t *obmc3= obmc1+ obmc_stride*(obmc_stride>>1); - const uint8_t *obmc4= obmc3+ (obmc_stride>>1); - dst = slice_buffer_get_line(sb, src_y + y); - for(x=0; x>= 8 - FRAC_BITS; - } - if(add){ - v += dst[x + src_x]; - v = (v + (1<<(FRAC_BITS-1))) >> FRAC_BITS; - if(v&(~255)) v= ~(v>>31); - dst8[x + y*src_stride] = v; - }else{ - dst[x + src_x] -= v; - } - } - } -} - int ff_snow_get_buffer(SnowContext *s, AVFrame *frame) { int ret, i; diff --git a/libavcodec/snow.h b/libavcodec/snow.h index ed0f9abb42..1c976b9ba7 100644 --- a/libavcodec/snow.h +++ b/libavcodec/snow.h @@ -45,11 +45,8 @@ #define QSHIFT 5 #define QROOT (1<> 1); + const uint8_t *obmc3 = obmc1 + obmc_stride * (obmc_stride >> 1); + const uint8_t *obmc4 = obmc3 + (obmc_stride >> 1); + IDWTELEM *dst = slice_buffer_get_line(sb, src_y + y); + for (int x = 0; x < b_w; x++) { + int v = obmc1[x] * block[3][x + y*src_stride] + + obmc2[x] * block[2][x + y*src_stride] + + obmc3[x] * block[1][x + y*src_stride] + + obmc4[x] * block[0][x + y*src_stride]; + + v <<= 8 - LOG2_OBMC_MAX; + if (FRAC_BITS != 8) + v >>= 8 - FRAC_BITS; + if (add) { + v += dst[x + src_x]; + v = (v + (1 << (FRAC_BITS - 1))) >> FRAC_BITS; + if (v & (~255)) v= ~(v>>31); + dst8[x + y*src_stride] = v; + } else + dst[x + src_x] -= v; + } + } +} + int ff_slice_buffer_init(slice_buffer *buf, int line_count, int max_allocated_lines, int line_width, IDWTELEM *base_buffer) diff --git a/libavcodec/snow_dwt.h b/libavcodec/snow_dwt.h index 15b8a3007b..132e01f9ce 100644 --- a/libavcodec/snow_dwt.h +++ b/libavcodec/snow_dwt.h @@ -29,6 +29,9 @@ struct MpegEncContext; typedef int DWTELEM; typedef short IDWTELEM; +#define FRAC_BITS 4 +#define LOG2_OBMC_MAX 8 + #define MAX_DECOMPOSITIONS 8 typedef struct DWTCompose {