From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 23851 invoked from network); 23 Apr 2021 13:51:16 -0000 Received: from 1ess.inri.net (216.126.196.35) by inbox.vuxu.org with ESMTPUTF8; 23 Apr 2021 13:51:16 -0000 Received: from mail-lj1-f171.google.com ([209.85.208.171]) by 1ess; Fri Apr 23 09:42:49 -0400 2021 Received: by mail-lj1-f171.google.com with SMTP id o5so22655358ljc.1 for <9front@9front.org>; Fri, 23 Apr 2021 06:42:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=eMZOWfv4pArjGa5yJOZKhLTL4o7ScvMR0JyxX6Jzsts=; b=F6hz5B22i9NSfPmYxTH408TcdffQyiyeAqqBE+TaKxXtUX9jGLGYYyuUXgIynBc+bK q5dEUcRjEfNLjWi1yOI6lDJu8TsthnELyUdpMthaCwz5LuSKvKnKUQ+EoJorhMo9+CjJ bV2RYDVTPFQzVmtO1xSmxMHcrU8eZVeiGepEf/b6ZfzNqjtgrSEwSS/36Ui63NUrS4sg 8NiX3RCinBW+oT9Gym9vSH+H7KRf0g37GgTlV8fFqD+eSi0+ai2ZkiBZJ8uJKRYyw50r KJdXLMqAQYxXRP3feGplMrHg2IWc8Pd55D/nc78jHGOGHCs9EJpvegEfe71nKzS+ezyM TBZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=eMZOWfv4pArjGa5yJOZKhLTL4o7ScvMR0JyxX6Jzsts=; b=bvptjMQgV5RG5h7x8N8iN8I0A4qlMLsyLpDX9yYsv9C6b06RK1viCer6oT7uX+Uagl 7rDPqXh9DiwLhHlzw/FC08fAMKzehHtnnO+Db2aQndY9IYjHWPqMiPhvzhtrD9SWj6IZ CZtDU9ULzgLi2StSR0aZ0iDNqoUpE8f9yO55CYcxvQio3McHLLTV7xvGriwjA4q+qePZ 82QJs0veFsJTA3l9o7rV1RuLp5omkmy0JePnOy3tRWHENvNkZS20/Vqik44p35C3bk95 31BDoq4RdIXM2rEyKvyBK3i7eF1CuO9kub8my2SvcddtOkq/H7UXbOHzri31rS0bmqM2 F68A== X-Gm-Message-State: AOAM5334bER7kGA0NXcfSOOjRNB2+jhuU7txMUvBd5wVhBmT8zOuiQDQ AeX4qi0bsBnbrL/JGx+R9PFKVlQ4CBOoqGTCPHqoxHe/zz0= X-Google-Smtp-Source: ABdhPJzxgiISgNtwgUFYFh+5OEM5pyuqiGlmg49kZ8BQy2+oYbVHgzuIsMgXK3RO9JtIUT2qnMBlhIil42MIcMx3+40= X-Received: by 2002:a2e:3307:: with SMTP id d7mr2836431ljc.314.1619184908416; Fri, 23 Apr 2021 06:35:08 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?B?Sm9zw6kgTWlndWVsIFPDoW5jaGV6IEdhcmPDrWE=?= Date: Fri, 23 Apr 2021 15:34:56 +0200 Message-ID: To: 9front@9front.org Content-Type: multipart/mixed; boundary="0000000000004b0c4d05c0a3dd29" List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: webscale proven cache GPU CSS framework Subject: [9front] resample: improve performance Reply-To: 9front@9front.org Precedence: bulk --0000000000004b0c4d05c0a3dd29 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Resample is well known for taking a long time to resize an image. This patch brings an important performance boost (in my test image, time was reduced from ~2850ms to ~500ms). It does that by extracting FP multiplication and division out of the innermost loop of resamplex/resampley. The results differ slightly from the current implementation: in my test: ~0.3% of the bytes had a =C2=B12 difference in their value, which I attribute to rounding errors. I'm personally not concerned with that deviation, given the performance gains. However, I recommend testing it just to be sure I didn't overlook anything. Jos=C3=A9 Miguel S=C3=A1nchez Garc=C3=ADa --0000000000004b0c4d05c0a3dd29 Content-Type: application/octet-stream; name="resample-optimize-fpmath.diff" Content-Disposition: attachment; filename="resample-optimize-fpmath.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_knuculdm0 LS0tIGEvc3lzL3NyYy9jbWQvcmVzYW1wbGUuYworKysgYi9zeXMvc3JjL2NtZC9yZXNhbXBsZS5j CkBAIC02NywxMCArNjcsMTAgQEAKIHJlc2FtcGxleCh1Y2hhciAqaW4sIGludCBvZmYsIGludCBk LCBpbnQgaW54LCB1Y2hhciAqb3V0LCBpbnQgb3V0eCkKIHsKIAlpbnQgaSwgeCwgazsKLQlkb3Vi bGUgWCwgeHgsIHYsIHJhdDsKKwlkb3VibGUgWCwgeHgsIHYsIHJhdCwgcmF0bzEwOwogCi0KIAly YXQgPSAoZG91YmxlKWlueC8oZG91YmxlKW91dHg7CisJcmF0bzEwID0gcmF0LzEwLjsKIAlmb3Io eD0wOyB4PG91dHg7IHgrKyl7CiAJCWlmKGlueCA9PSBvdXR4KXsKIAkJCS8qIGRvbid0IHJlc2Ft cGxlIGlmIHNpemUgdW5jaGFuZ2VkICovCkBAIC03OSw4ICs3OSw4IEBACiAJCX0KIAkJdiA9IDAu MDsKIAkJWCA9IHgqcmF0OworCQl4eCA9IFggKyByYXRvMTAqKC1LMik7CiAJCWZvcihrPS1LMjsg azw9SzI7IGsrKyl7Ci0JCQl4eCA9IFggKyByYXQqay8xMC47CiAJCQlpID0geHg7CiAJCQlpZihp IDwgMCkKIAkJCQlpID0gMDsKQEAgLTg3LDYgKzg3LDcgQEAKIAkJCWlmKGkgPj0gaW54KQogCQkJ CWkgPSBpbngtMTsKIAkJCXYgKz0gaW5bb2ZmK2kqZF0gKiBLW0syK2tdOworCQkJeHggKz0gcmF0 bzEwOwogCQl9CiAJCW91dFtvZmYreCpkXSA9IHY7CiAJfQpAQCAtOTYsOSArOTcsMTAgQEAKIHJl c2FtcGxleSh1Y2hhciAqKmluLCBpbnQgb2ZmLCBpbnQgaW55LCB1Y2hhciAqKm91dCwgaW50IG91 dHkpCiB7CiAJaW50IHksIGksIGs7Ci0JZG91YmxlIFksIHl5LCB2LCByYXQ7CisJZG91YmxlIFks IHl5LCB2LCByYXQsIHJhdG8xMDsKIAogCXJhdCA9IChkb3VibGUpaW55Lyhkb3VibGUpb3V0eTsK KwlyYXRvMTAgPSByYXQvMTAuOwogCWZvcih5PTA7IHk8b3V0eTsgeSsrKXsKIAkJaWYoaW55ID09 IG91dHkpewogCQkJLyogZG9uJ3QgcmVzYW1wbGUgaWYgc2l6ZSB1bmNoYW5nZWQgKi8KQEAgLTEw Nyw4ICsxMDksOCBAQAogCQl9CiAJCXYgPSAwLjA7CiAJCVkgPSB5KnJhdDsKKwkJeXkgPSBZICsg cmF0bzEwKigtSzIpOwogCQlmb3Ioaz0tSzI7IGs8PUsyOyBrKyspewotCQkJeXkgPSBZICsgcmF0 KmsvMTAuOwogCQkJaSA9IHl5OwogCQkJaWYoaSA8IDApCiAJCQkJaSA9IDA7CkBAIC0xMTUsNiAr MTE3LDcgQEAKIAkJCWlmKGkgPj0gaW55KQogCQkJCWkgPSBpbnktMTsKIAkJCXYgKz0gaW5baV1b b2ZmXSAqIEtbSzIra107CisJCQl5eSArPSByYXRvMTA7CiAJCX0KIAkJb3V0W3ldW29mZl0gPSB2 OwogCX0KCg== --0000000000004b0c4d05c0a3dd29--