From patchwork Wed Oct 6 12:05:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 30957 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:6506:0:0:0:0:0 with SMTP id z6csp307345iob; Wed, 6 Oct 2021 05:05:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxiF9/DDStQbTXrQEb9vWmRzYz+PiSsO+gH1B5ZIRKuCnrUWGuNFR2ueBOVxW8jWYDvmDYv X-Received: by 2002:adf:c70f:: with SMTP id k15mr15771295wrg.98.1633521926257; Wed, 06 Oct 2021 05:05:26 -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 dg13si24344667edb.604.2021.10.06.05.05.25; Wed, 06 Oct 2021 05:05:26 -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="r/3ijDpa"; 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 0380A68AC6D; Wed, 6 Oct 2021 15:05:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-oln040092067040.outbound.protection.outlook.com [40.92.67.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 15C9068A783 for ; Wed, 6 Oct 2021 15:05:15 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LXT4D3346Op6wUxZmuNIoVW2WU+E9yr8aVvyBXTtVYiorPi2ODlA4vSp2cc4ZnYP3hwMY6bSKcImn0FCFlM4V+ilUIy5vAoG1OcruwMBrk2gw/3L9y2udUelEXWr1Up24FhDG+SNKtIhZuYiAy6iuSlSozDhja5wo6HBH8AK9mc170Olix0srxMVkZijcZXMgu22YgcID8IYov9/ND/ckzgWO4F+70rpIrRjlBTdzg6f9RHTZe/hlgqcPtklyHkuDcWnktOwaNXfAcSvJ64UGKb5neJ4WP1I7CXwmsJnYm0BGulGA5DY90z17t9GxPZoZmkpMt6ALDe09s6Wdm4spQ== 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=D/sw2TlH361QfrJy3XH/OeLj9zYHviYKK33fLK696wI=; b=Evg4sf/ZmN4ozaqdVFTTrYYEMu6FLKBJ2lVIxBLXKikzIwxfGqwkFgU290+3Sko+41paruFFv9JT2IcUeSXGP3SSdgZ4MsSm6Uhtlfe5N0Jm/6jNI+5ZF/HRnjgQgrOhiFBJVt/k09PPh2Z7PVwKTrKI180urAZXXFq6tX2zgF7L1cR4a6c1TOcMLrqmPsvDJNPvLNcXg3c7+r/Jp30FBg5Z3SolLBkYuZSYYDv6Ix+lX9aGqrhXgQGzGs0pYumKvEnFxLj7NCQiIj+lcUh1K3VQujog5x9lEqdb9VvxsUrngzKW6MfLc0uwCcsg4Lf6JDAzNjHAYs3q5hySxTqWPg== 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=D/sw2TlH361QfrJy3XH/OeLj9zYHviYKK33fLK696wI=; b=r/3ijDpa1jH3uiCvKUftEFU1gAQV5uFhAZH2UUCUipVhHMHEaylJnzTaM9ll/M0x4w6JfNjhvkEaPNtJQYg/M8COBLE2BeEfts98kC8Kkh7TNgCsdoktL+VaK9JfrDZDGQamkz6I8ZLOj17UuU5D5Euf16RdsnPK45TGDmGYRVlRDEvSyODsSGgFTATvreV0I8EdNWO21DP7VwXTlSIUrlhko9W2SswTCF4DV9euAezPQrETX0EjXSpbn9X447K8fo951kPpNPrKVIDPTHbcLcP+csQ70hYet1EqgTqP3XrVprk/WnMW+zrYJBQ/CVpltL0l8A1xnqF4kGN8z7Ym/w== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB7351.eurprd03.prod.outlook.com (2603:10a6:20b:2eb::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.22; Wed, 6 Oct 2021 12:05:13 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::700f:d70b:3bb8:4d51]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::700f:d70b:3bb8:4d51%7]) with mapi id 15.20.4566.022; Wed, 6 Oct 2021 12:05:13 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 6 Oct 2021 14:05:04 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [pYrQwDAxE8y+N9bTHn32h0Mh0orr8fKD] X-ClientProxiedBy: AM0PR10CA0054.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::34) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211006120504.542845-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM0PR10CA0054.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Wed, 6 Oct 2021 12:05:13 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b8501f6f-547f-43b8-fec3-08d988c18d73 X-MS-Exchange-SLBlob-MailProps: pxu8rxgqUgjMfRsv5IJahVV7IwzEunafOekGOl1jMBz2wyYYsS+A2mHcqDY+cDJ5LJjIy2y0sspDtLEa0KzsceaD/1e8FcMfkVtVVppqWDGTd6vByvjjMC2JOtxU6h7V0FecKRqXYOB0mhYsYzF4jzPAidqsAkJ4ub0uqeN6Kf8/TF6jde190fjQeI4GF6d7B9BXzV4MG56huVjka4C4vwsAk0Qm3/gBhjrutnBU11h2hf//H7m17aPNO56ZLBA54ljQMtIsFhtrF0kxI2g5y8J0KHVaTnjQnmIHWGnU5gRHWHU20BB/nt1dEIIxDkbjSrjtz1d/+CbZfBlH60fdaVydl4nrlrdTHORo89Npv0/LBP1EE7dcU/8rCiXqvJVH11TfOS5Q5mAYhw7ua+A9uYkK26W49Za+m//LcL/d7aL3XYvSzJA5fPZ8kaA9aoLX2cfdvlXZ5Eoh+vlRh+90AB312es1vvyOq7W2ipE1Eoyt8jCHUsAGsdrne44DeFi9PFJYYCmvAwAQcYYYl7j6La1sVdPWW6aw0kwHkqesftjk30jevyaqZPJuAeMhbBlx2XEvHy57QquhW1vPIu2Rw3Af9uujPiv2E9cdEGCk2mxiK/hx+KKNLNdMdmFz3IfJ8CvH7AMk+u6RsbswmcR/d//g23Dd4/9pPraxCic4rpFLp3lnCigVQKjJqBoZOi0Lh729uOmDMdys9cBS8AEABQ== X-MS-TrafficTypeDiagnostic: AS8PR03MB7351: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: di9h10cX0j0kdRIvTY8j6yLvJjokS/2i2cXno2m4S153pR8p4Er3I7TAxYeykXmJbaZu5/kYPNv02T7EQbjxQLdHe/dIBEIbXkgRUrYLau0H0m0OiH2JLBVizFJAmFX3qvBUUWr3NyZ+1P8iIeWXyuqz0xjW6xIqPm7tFTA5m0iThgP28JOw/t7MoKpHxx2VILnge48vJL8GoghJqagm25kGb+5edqA2VbDTKcxLtJmylCGWj3nYhiropaTPLGjyfwJWw3LHwJtD97/GsSfm9A95vAosKK7j1oeHNo2hrJ3nTzofzVR1iL9RSyhiWp2Dm6H86FVPI4zXtA4AuDcG/qSyLgnm+iLZH+rotC1RblhgXsVI2HZKfk7aUZmrWkzUJ+BqBV/g2y0xzO+K2OT0B4ITABRd33WZh0WK5fIQx+dL0ZjIEl0813B8trKm7KvZ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7cFFwyzwU+759HWIPU+NAMmikxLaZ7mRMF3Nocqwo6V2zdz/JQY0+oP/tFNPn78UNnTN7UqxbMZdT53/dyrTP1PHUae77hOlj6k6VktOnlTSGKrS4FVaYO3iS6xemWjjO50H1rkQpS4vrCvWobABVA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8501f6f-547f-43b8-fec3-08d988c18d73 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2021 12:05:13.6166 (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: AS8PR03MB7351 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/aliaspixenc: Remove redundant counter 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: iBfIL75xSPVE Improves performance by 33.8% for BGR24 and by 26.4% for GRAY8. Signed-off-by: Andreas Rheinhardt --- libavcodec/aliaspixenc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/aliaspixenc.c b/libavcodec/aliaspixenc.c index 01461c984b..fa273df9c2 100644 --- a/libavcodec/aliaspixenc.c +++ b/libavcodec/aliaspixenc.c @@ -31,8 +31,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet) { - int width, height, bits_pixel, i, j, length, ret; - uint8_t *in_buf, *buf; + int width, height, bits_pixel, length, ret; + uint8_t *buf; width = avctx->width; height = avctx->height; @@ -66,15 +66,16 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, bytestream_put_be32(&buf, 0); /* X, Y offset */ bytestream_put_be16(&buf, bits_pixel); - for (j = 0; j < height; j++) { - in_buf = frame->data[0] + frame->linesize[0] * j; - for (i = 0; i < width; ) { + for (int j = 0, bytes_pixel = bits_pixel >> 3; j < height; j++) { + const uint8_t *in_buf = frame->data[0] + frame->linesize[0] * j; + const uint8_t *const line_end = in_buf + bytes_pixel * width; + while (in_buf < line_end) { int count = 0; int pixel; if (avctx->pix_fmt == AV_PIX_FMT_GRAY8) { pixel = *in_buf; - while (count < 255 && count + i < width && pixel == *in_buf) { + while (count < 255 && in_buf < line_end && pixel == *in_buf) { count++; in_buf++; } @@ -82,7 +83,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, bytestream_put_byte(&buf, pixel); } else { /* AV_PIX_FMT_BGR24 */ pixel = AV_RB24(in_buf); - while (count < 255 && count + i < width && + while (count < 255 && in_buf < line_end && pixel == AV_RB24(in_buf)) { count++; in_buf += 3; @@ -90,7 +91,6 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, bytestream_put_byte(&buf, count); bytestream_put_be24(&buf, pixel); } - i += count; } }