From patchwork Mon Jul 1 12:16:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 50242 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:cc64:0:b0:482:c625:d099 with SMTP id k4csp1745286vqv; Mon, 1 Jul 2024 05:27:53 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWN3ytI9keAeNJ3BYAc9UFBQnHiUMWiVn7k1+DszVxnaZIRn0caccXaE9YZ5F4mkf8r+HKdGRl4XZmkWk41QYIwHUvjh3quymtEkw== X-Google-Smtp-Source: AGHT+IHcHfIVQKDK8YECBf6Uui/drRjcwAU4f4KPHi/cDgjackIARdkVpmKBrBNivUplLcl1ftXU X-Received: by 2002:a05:6402:42ca:b0:574:f27a:b3ec with SMTP id 4fb4d7f45d1cf-5879f3ac927mr5148277a12.16.1719836872784; Mon, 01 Jul 2024 05:27:52 -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 4fb4d7f45d1cf-58613720922si3700554a12.134.2024.07.01.05.27.51; Mon, 01 Jul 2024 05:27:52 -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=lPyrjhIW; 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 1293968D7E2; Mon, 1 Jul 2024 15:17:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02olkn2037.outbound.protection.outlook.com [40.92.50.37]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C229068D34E for ; Mon, 1 Jul 2024 15:17:34 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VCyy0yZjA7Oy3TiZZRQzbfEZXR7cdzIpPvsfurTmcyhqLnXqDUkXe7pj4QJkYw9lhLjTgpmXOuML10LZ9eDE4pWONZxXw/pttNP/Tpc/NDTJ6+ezmalWIEiEV6HJu25z+uA3plVHLtxayvaTKX6L+wZ2HZsFCCL7j1qe6HBD+kZJW/dS3U3h73+5SbGvLRe8736ecAaYNglh/FZ1BhGTNNwP0KLkcMVdZphUGbjbV3nS4HiFQ37mMxKxYs4nOi4CJYuC4amH7DAzBZ+1NKxUZN2/Hrvf4e3+3e5vDm+b5JbaAzMssOsji2bKNxji2TUfzmZ/STVKY8JNHvb5OCzicw== 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=aDxQ8rZkinqFEqzeKe/VB56PY0RHbXsFTJ4VJMtDbtQ=; b=a2QJwTM8JlAfy7+3LAgRNsETVmWNiCNMB35agPKqk6rfW1lHmhKSTiqjy04vh7E7mdnlzAS0J0cF70Ix6sMgRh1M3jklKAg+LUT9ERBLfr2PNN7l03KYvZMpJ1CXG5lZ97J6F88U0eB1A78Oa3x+rk8JvVTWeaaha8cqc9psbUlCt3tCR9dlX5UHvoQuGM3wVME/qlYmPXVcEcNABPdoUylTokZuot6YCf4B8x8dOvpzeQ7UZpy2eqcwWcyUrLO+2ErO/L7FBMpjXsJUJTeYRUEiOAWplLfNq9KgExNAKVJ1UffV7F2H6zNUtFoE/AAgHlDwvpQhSUSQUMTjzkyd5A== 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=aDxQ8rZkinqFEqzeKe/VB56PY0RHbXsFTJ4VJMtDbtQ=; b=lPyrjhIWL8XyiG5eNCvXAXNbvIG9OKgTAxEj+LC5aPLpuq+TPXQ8evWJ672rMP0sBV14UaGNYumQPrK3MlOFs3CFb6Y8DZZJflzJNEUA48Q23j3CB7bHvyNzPlGGqr65/wMo2/q9MoT3aLm0QmzPfTzbjJS3u5wVwFl1bt4/+mrojClLBXgLtPVRRXmmzD4BKA3lCxatLxc9zeVebAnMP2g6qg4ETJ5LJ2comx+4DnI1S22YHoqdt7EYQCutNaRFxnL/6CpkuKksiB5CFVkku3wcu4+zE4pHl2IX0gZ5AVM5coRjJrHxqtwm0xCtWr1gVoUh85/tRGTKNKk3Z65AIA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU0P250MB0481.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:349::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.32; Mon, 1 Jul 2024 12:17:32 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%5]) with mapi id 15.20.7719.029; Mon, 1 Jul 2024 12:17:32 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 1 Jul 2024 14:16:07 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [ks8hH5xlVaHGuWMwixrxw5Lnu3A+OOPiDo6iIGQ7OQ4=] X-ClientProxiedBy: ZR0P278CA0149.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::11) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240701121610.3560848-9-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU0P250MB0481:EE_ X-MS-Office365-Filtering-Correlation-Id: 38c8db9c-c95b-4c24-6eb1-08dc99c7c872 X-Microsoft-Antispam: BCL:0; ARA:14566002|8060799006|461199028|440099028|3412199025|1710799026; X-Microsoft-Antispam-Message-Info: Ldhj2rNacDbqzDIQlbXNx0Ab6SvoA/dF8rzjM5t2ZpEC02wBWYpsqABR+ov6NgX7yzVzrViP5RT74TYnMbuvvPhPJzrezGVTXUPIdbTg4ywevSq2b+8yjatZjcmzcKClrbWeeWRddztI3+aF1nwvv0muIpIu5+aU3jrpXF2VX8/plBmADtcTMvn8EiQx9lF90x2CMebzfNUatDtZESJS+JM4mfPv8kGbL2WSXIe4MEncZWQ4qweNbHldBkYNKxhXNyxpweC/7yjQpZsbLMVQnanERyRPzK190GcHlerh97cF6glLwE7WQTvQy4jZw+D8h8J5fFyL6gXFDhsPHeCzT/SAaePT8MqG/zHCXNwmlzKIXCTBjLN9dPH+Uf84x9ju3wtnhq+H5kbDfmzZ82YTWOe7npRt5ttSiMutJkC9golTF0jfphDj+9NSWDZpUuHFF/8dtQjrfdUU6oCBU6tl4KHll32bg8dhPLsi7GlyB7Fc+93w72rUtX+caqQEWMZMI7yxw0JYf5Pf5EwS/osOVPXx85oQeCrauubK+x+Jenkmvk3IB5SukbADTYr2WHarO1eXj3xPsBhF9bOFBACBbNt9tFDzExwhb16WM0NWmlx4slSdLnkOwlXE7G4cEVjjtdPOrHB0HpfH0JVQvlvxVA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: I1VBnTMp5VMj+2JVhpbmeHw/vIrwgyAW0+amhhUtENZ+AzFknoDbehz9ELV2kfnkFFHFPkzgYmWPVH/hMKmWeIis/Sk+JM7+sbdawEbuc7Yc3relCgr2D6lueCtQn8138M9nredpFCYqFRprzWOYTGvxj6irtfBxeKGyDP0057ika41uFUqw/EL2DwOZ20ht16z6NX266pKjZLJ+bicT7LA7Sk0CTW265dE/35h4smofA7aCOk7OLy/yJlgJBK+KuNMHJbDJVK+I3WCjtaCOxn7sxifU3dP5By/KWRrq0uh67hWcGjGfKGdIJHw1lggwCR+LLtHdZiNYx6PIRWW9TdSO9MDhWwbuzS/WKlDwr2gB/9thWeSazAJArbMWmseyCnUdrUxEqqG5V56oryXnNsj6PI9/Fo4tGl+4Nkv1B2LTBPSBn/MF71zVwhMqIX6CD/yivB2Ju3Ph2lIVKR6vHmwNgC514wWuRWkRHE/vbLMt0zqykdBVZ6fvJde4rvtD7l/jux500y3Qwo/CU+//O4eqm5twYv5x5IMmzhHs4i9v+GpbyMn+mrz0spUZmNxp/19CUzHBktrT7DL7PevSD3lRnn4N0pO9TlUm+eYWOkbrw1F8rTNVAAOmb/HLiOXGRo0sAJkMUtEGNJemZY9D1xbtcXu3Tr9lrE5cTSftiNzAzlqHdeCNxIoNAUeol4mBTJaBBcMLqxUdkZyTbWfNUtzhxB3xJ+PRt1gVjJlZ52V8HUMmGM5VuxElKAZyk/HnbRCG6/4uTwo3AAoX3W/cjxFlE3yBX8ms3zD6RavLSV72p8ODI/m7JFC1I2jDBLbAsrrxHtWtdGN6p4wHPfJksdwPifPl2XLHhzd5TtqIXBAL1lTJP/01U3/XQHNXTTKJA7eQWeAPXxsCD1gKpQGBR26hEFsfKp/PdTxjQpURJEs7UqAnQUQniaS6VKmLVDjQdPNCn41oqSXiRnCvPI8SUPJBqlzkNceAQ+LKAHreOCcyI/fJIsRWqX/n217SmCimg440w8bLFjrcVMjtYcM2KndSFVfMQORjaS4vadmYTFWFQpwH8bApG1zoebwtuTrIfxsVHpzFybc3K1e5RhqIdM+BJbu1cPLZKFnosB+x87mfRZRiRmP02bGG4ZlosExZDiyVyCm0USY/n/IlyAq6yMJ4nDWqgy0FhjkWK++AiAKP6U7uvmnXxtKHef52xeElv2+7JMEXiN4+ai9ZayK4figlkcv7W+M1xk4a9kwr3gGnd/XVudgqbAYihcPGbaPbcmmVVxQ+uPrCJJ2sJ6YMwA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38c8db9c-c95b-4c24-6eb1-08dc99c7c872 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2024 12:17:32.1987 (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: DU0P250MB0481 Subject: [FFmpeg-devel] [PATCH 10/13] avcodec/motion_est: Avoid branches for put(_no_rnd) selection 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: 7mGz6K7fEz7b Signed-off-by: Andreas Rheinhardt --- libavcodec/motion_est.c | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c index 554fc9780e..b9576e61bf 100644 --- a/libavcodec/motion_est.c +++ b/libavcodec/motion_est.c @@ -661,18 +661,12 @@ static inline int h263_mv4_search(MpegEncContext *s, int mx, int my, int shift) const uint8_t *ref = c->ref[block][0] + (mx4>>2) + (my4>>2)*stride; dxy = ((my4 & 3) << 2) | (mx4 & 3); - if(s->no_rounding) - s->qdsp.put_no_rnd_qpel_pixels_tab[1][dxy](dest_y, ref, stride); - else - s->qdsp.put_qpel_pixels_tab[1][dxy](dest_y, ref, stride); + c->qpel_put[1][dxy](dest_y, ref, stride); }else{ const uint8_t *ref = c->ref[block][0] + (mx4>>1) + (my4>>1)*stride; dxy = ((my4 & 1) << 1) | (mx4 & 1); - if(s->no_rounding) - s->hdsp.put_no_rnd_pixels_tab[1][dxy](dest_y , ref , stride, h); - else - s->hdsp.put_pixels_tab [1][dxy](dest_y , ref , stride, h); + c->hpel_put[1][dxy](dest_y, ref, stride, h); } dmin_sum+= (mv_penalty[mx4-pred_x4] + mv_penalty[my4-pred_y4])*c->mb_penalty_factor; }else @@ -713,13 +707,8 @@ static inline int h263_mv4_search(MpegEncContext *s, int mx, int my, int shift) offset= (s->mb_x*8 + (mx>>1)) + (s->mb_y*8 + (my>>1))*s->uvlinesize; - if(s->no_rounding){ - s->hdsp.put_no_rnd_pixels_tab[1][dxy](c->scratchpad , s->last_pic.data[1] + offset, s->uvlinesize, 8); - s->hdsp.put_no_rnd_pixels_tab[1][dxy](c->scratchpad + 8, s->last_pic.data[2] + offset, s->uvlinesize, 8); - }else{ - s->hdsp.put_pixels_tab [1][dxy](c->scratchpad , s->last_pic.data[1] + offset, s->uvlinesize, 8); - s->hdsp.put_pixels_tab [1][dxy](c->scratchpad + 8, s->last_pic.data[2] + offset, s->uvlinesize, 8); - } + c->hpel_put[1][dxy](c->scratchpad , s->last_pic.data[1] + offset, s->uvlinesize, 8); + c->hpel_put[1][dxy](c->scratchpad + 8, s->last_pic.data[2] + offset, s->uvlinesize, 8); dmin_sum += c->mb_cmp[1](s, s->new_pic->data[1] + s->mb_x * 8 + s->mb_y * 8 * s->uvlinesize, c->scratchpad, s->uvlinesize, 8); dmin_sum += c->mb_cmp[1](s, s->new_pic->data[2] + s->mb_x * 8 + s->mb_y * 8 * s->uvlinesize, c->scratchpad + 8, s->uvlinesize, 8); @@ -825,11 +814,7 @@ static int interlaced_search(MpegEncContext *s, int ref_index, const uint8_t *ref = c->ref[field_select+ref_index][0] + (mx_i>>1) + (my_i>>1)*stride; dxy = ((my_i & 1) << 1) | (mx_i & 1); - if(s->no_rounding){ - s->hdsp.put_no_rnd_pixels_tab[size][dxy](c->scratchpad, ref , stride, h); - }else{ - s->hdsp.put_pixels_tab [size][dxy](c->scratchpad, ref , stride, h); - } + c->hpel_put[size][dxy](c->scratchpad, ref , stride, h); dmin = c->mb_cmp[size](s, c->src[block][0], c->scratchpad, stride, h); dmin+= (mv_penalty[mx_i-c->pred_x] + mv_penalty[my_i-c->pred_y] + 1)*c->mb_penalty_factor; }else