Re: [PATCH v2] arm: Don't require a runtime check function for targets with unconditional NEON

John Bowler <[email protected]> Tue, 11 Oct 2022 15:13:52 -0700
Newsgroups gmane.comp.graphics.png.devel
Message-ID <CAP7U39_TrtYk0EXk7-XYMSnGO36afzpz5BNvNPETJvb-zj0xCQ@mail.gmail.com>
--===============0936986904843867619==
Content-Type: multipart/alternative; boundary="000000000000083aee05eac998bf"

--000000000000083aee05eac998bf
Content-Type: text/plain; charset="UTF-8"

On Tue, Oct 11, 2022 at 1:06 PM Bob Friesenhahn <
[email protected]> wrote:

> A problem with simplifying libpng configuration is that some
> applications excessively use libpng configuration options in their
> implementation.  GraphicsMagick's png/mng support may match that
> description.
>

I'm suggesting simplifying the API.  In this case I can see that the
default configure configuration, the one in scripts/pnglibconf.h.prebuilt,
does not actually provide either ARM_NEON_CHECK or ARM_NEON_API.  The
PowerPC hardware optimizations do provide an on/off API but I don't think
Intel or MIPS do.

The big simplification is to simply remove all the transform APIs except
those which are used by the simplified API; it covers pretty much all the
useful ones and the stuff it doesn't cover, like converting to float, isn't
implemented in the rest of libpng either.  Qt and OpenCV both have much
more accessible support for this kind of stuff and most of the time in Qt
it happens under the hood.

Look at TurboJPEG for an example of a similar change.  TurboJPEG makes it
very easy to read whole JPEG files at once, but it also adds the ability to
do 90 degree rotations in one operation; so the new API is simpler than the
original IJG API but it also gets a really useful addition.

--000000000000083aee05eac998bf
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">On Tue, Oct 11, 2022 at 1:06 PM Bob Fries=
enhahn &lt;<a href=3D"mailto:[email protected]">bfriesen@simple.=
dallas.tx.us</a>&gt; wrote:<br></div><div class=3D"gmail_quote"><blockquote=
 class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px so=
lid rgb(204,204,204);padding-left:1ex">A problem with simplifying libpng co=
nfiguration is that some <br>
applications excessively use libpng configuration options in their <br>
implementation.=C2=A0 GraphicsMagick&#39;s png/mng support may match that <=
br>
description.<br></blockquote><div><br></div><div>I&#39;m suggesting simplif=
ying the API.=C2=A0 In this case I can see that the default configure confi=
guration, the one in scripts/pnglibconf.h.prebuilt,=C2=A0 does not actually=
 provide either ARM_NEON_CHECK or ARM_NEON_API.=C2=A0 The PowerPC hardware =
optimizations do provide an on/off API but I don&#39;t think Intel or MIPS =
do.</div><div><br></div><div>The big simplification is to simply remove all=
 the transform APIs except those which are used by the simplified API; it c=
overs pretty much all the useful ones and the stuff it doesn&#39;t cover, l=
ike converting to float, isn&#39;t implemented in the rest of libpng either=
.=C2=A0 Qt and OpenCV both have much more accessible support for this kind =
of stuff and most of the time in Qt it happens under the hood.</div><div><b=
r></div><div>Look at TurboJPEG for an example of a similar change.=C2=A0 Tu=
rboJPEG makes it very easy to read whole JPEG files at once, but it also ad=
ds the ability to do 90 degree rotations in one operation; so the new API i=
s simpler than the original IJG API but it also gets a really useful additi=
on.</div></div></div>

--000000000000083aee05eac998bf--


--===============0936986904843867619==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============0936986904843867619==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
png-mng-implement mailing list
png-mng-implement-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/png-mng-implement

--===============0936986904843867619==--