From: Marcel Holtmann <marcel@holtmann.org>
To: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Cc: ext Brad Midgley <bmidgley@gmail.com>,
Jaska Uimonen <jaska.uimonen@nokia.com>,
linux-bluetooth@vger.kernel.org
Subject: Re: [RFC/PATCH] sbc: new filtering function for 8 band fixed point encoding
Date: Tue, 23 Dec 2008 02:00:15 +0100 [thread overview]
Message-ID: <1229994015.8047.27.camel@californication> (raw)
In-Reply-To: <200812230130.43968.siarhei.siamashka@nokia.com>
Hi Siarhei,
> > We had a talk with Jaska Uimonen here, and now I'm kind of delegated to
> > finish the work on this filtering function for SBC encoder (including the
> > final addition of ARM assembly optimizations). He provided me with his
> > last variant of code, which contains some more optimizations to reduce the
> > number of operations and also loops unrolling. I will add his changes to
> > the patch on next iteration.
> >
> > Now the question is how to best integrate a fixed filtering function to git
> > repository? If I just continue adding changes to the patch in order to make
> > it a faster, it will be also not so obvious to see how we got to these code
> > transformations just from the commit log.
>
> Next iteration done. Added support for 4 subbands, number of arithmetic
> operations reduced (but without loop unrolling for better code readability),
> precision improved for both 16-bit and 32-bit fixed point, 'neginv' macro is
> now more portable and faster. The rest is in the code comments.
I don't mind having patches as attachment, but this makes it hard to
review and comment on them. Especially when it comes to stuff like
coding style (since I have no ideas about the rest).
+ t1[0] = t1[1] = t1[2] = t1[3] =
+ (FIXED_A)1 << (SBC_PROTO_FIXED4_SCALE-1);
Should be like this: (FIXED_A) 1 << (SBC_PROTO_FIXED4_SCALE - 1);
Also do you need the (FIXED_A) cast?
+ for (hop = 0; hop < 40; hop += 8) {
+ t1[0] += (FIXED_A)in[hop] * _sbc_proto_fixed4[hop];
Same here. There has to be a space after every case.
+ t1[i] = (FIXED_A)1 << (SBC_COS_TABLE_FIXED4_SCALE-1-SCALE_OUT_BITS);
And between every operation there has to be a space: SCALE - 1 - SCALE.
In this case I would actually put the - 1 at the end, but that is pure
cosmetics and not a coding style violation.
Please fix all of these. There at least 8 or so.
+#define neginv(x) ((-2 >> 1 == -1) ? \
+ ((((int32_t)(x)) >> 31) ^ (int32_t)(x)) : \
+ ((x >= 0) ? (x) : -(x)-1))
Space after cast. Space before and after operator.
+#ifdef SBC_HIGH_PRECISION
+# define FIXED_A int64_t /* data type for fixed point accumulator */
+# define FIXED_T int32_t /* data type for fixed point constants */
+# define SBC_FIXED8_EXTRA_BITS 16
+#else
+# define FIXED_A int32_t /* data type for fixed point accumulator */
+# define FIXED_T int16_t /* data type for fixed point constants */
+# define SBC_FIXED8_EXTRA_BITS 0
+#endif
No space between # and define. I know that this is meant to improve
readability, but I don't see it.
Regards
Marcel
next prev parent reply other threads:[~2008-12-23 1:00 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-28 13:35 [RFC/PATCH] sbc: new filtering function for 8 band fixed point encoding Jaska Uimonen
2008-11-28 14:18 ` Marcel Holtmann
2008-11-28 14:24 ` Jelle de Jong
2008-11-28 15:20 ` Jaska Uimonen
2008-11-28 18:13 ` David Sainty
2008-11-28 15:14 ` Jaska Uimonen
2008-12-02 20:15 ` Jim Carter
2008-12-12 17:14 ` Siarhei Siamashka
2008-12-12 19:19 ` Brad Midgley
2008-12-15 12:54 ` Siarhei Siamashka
2008-12-15 15:16 ` Brad Midgley
2008-12-16 22:37 ` Siarhei Siamashka
2008-12-17 8:16 ` Jaska Uimonen
2008-12-19 22:12 ` Siarhei Siamashka
2008-12-22 23:30 ` Siarhei Siamashka
2008-12-23 1:00 ` Marcel Holtmann [this message]
2008-12-23 8:20 ` Jaska.Uimonen
2008-12-23 11:14 ` Siarhei Siamashka
2008-12-23 10:45 ` Siarhei Siamashka
2008-12-23 11:48 ` Marcel Holtmann
2008-12-29 9:16 ` Testing SBC filtering functions Christian Hoene
2008-12-29 10:00 ` Marcel Holtmann
2008-12-29 10:55 ` Christian Hoene
2008-12-29 12:03 ` Marcel Holtmann
2008-12-29 12:31 ` Christian Hoene
2008-12-29 12:41 ` Marcel Holtmann
2008-12-29 13:11 ` Christian Hoene
2008-12-29 13:17 ` Marcel Holtmann
2009-01-01 14:29 ` Testing SBC encoder correctness with sbctester works Christian Hoene
2008-12-29 11:06 ` Testing SBC filtering functions Siarhei Siamashka
2008-12-29 12:04 ` Marcel Holtmann
2008-12-29 14:36 ` Siarhei Siamashka
2008-12-29 15:04 ` Siarhei Siamashka
2008-12-29 10:46 ` [RFC/PATCH] sbc: new filtering function for 8 band fixed point encoding Siarhei Siamashka
2008-12-29 11:56 ` Marcel Holtmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1229994015.8047.27.camel@californication \
--to=marcel@holtmann.org \
--cc=bmidgley@gmail.com \
--cc=jaska.uimonen@nokia.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=siarhei.siamashka@nokia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox