opus.git
5 years agoMoves opus_packet_get_samples_per_frame() to opus.c
Jean-Marc Valin [Thu, 30 Jan 2014 16:29:35 +0000 (11:29 -0500)]
Moves opus_packet_get_samples_per_frame() to opus.c

5 years agoMinor div optimization -- reducing denominators
Jean-Marc Valin [Thu, 30 Jan 2014 16:27:37 +0000 (11:27 -0500)]
Minor div optimization -- reducing denominators

5 years agoOptimizing divisions with a signed numerator
Jean-Marc Valin [Thu, 30 Jan 2014 16:16:24 +0000 (11:16 -0500)]
Optimizing divisions with a signed numerator

5 years agoSpeeding up ec_tell_frac()
Jean-Marc Valin [Wed, 29 Jan 2014 15:16:53 +0000 (10:16 -0500)]
Speeding up ec_tell_frac()

5 years agoFix surround encoding
Mark Harris [Sun, 26 Jan 2014 00:32:18 +0000 (16:32 -0800)]
Fix surround encoding

Broken by 306d7f5a308e30ce10ba1a1dcdbeeb81de3b2872

5 years agoSpeeding up extract_collapse_mask() slightly
Jean-Marc Valin [Thu, 23 Jan 2014 05:02:12 +0000 (00:02 -0500)]
Speeding up extract_collapse_mask() slightly

5 years agoUsing SSAT in SIG2WORD16() on ARMv6
Jean-Marc Valin [Thu, 23 Jan 2014 00:22:05 +0000 (19:22 -0500)]
Using SSAT in SIG2WORD16() on ARMv6

5 years agoUnrolled version of the comb filter for ARM (eliminates MOVs)
Jean-Marc Valin [Tue, 21 Jan 2014 21:23:24 +0000 (16:23 -0500)]
Unrolled version of the comb filter for ARM (eliminates MOVs)

5 years agoMaking decode_pulses() compute the L2-norm on the fly
Jean-Marc Valin [Tue, 21 Jan 2014 20:17:01 +0000 (15:17 -0500)]
Making decode_pulses() compute the L2-norm on the fly

5 years agoSpeed up the comb filter on ARM by using MAC16_32_Q16()
Jean-Marc Valin [Tue, 21 Jan 2014 16:07:57 +0000 (11:07 -0500)]
Speed up the comb filter on ARM by using MAC16_32_Q16()

5 years agoSave more integer divisions on ARM when we know the operands are positive
Jean-Marc Valin [Tue, 21 Jan 2014 15:39:33 +0000 (10:39 -0500)]
Save more integer divisions on ARM when we know the operands are positive

5 years agoFixes use of uninitialized values in dynalloc_analysis()
Jean-Marc Valin [Mon, 20 Jan 2014 23:45:57 +0000 (18:45 -0500)]
Fixes use of uninitialized values in dynalloc_analysis()

5 years agooggopus: use https where possible.
Ralph Giles [Mon, 20 Jan 2014 22:38:05 +0000 (14:38 -0800)]
oggopus: use https where possible.

5 years agoUpdate 'running code' reference, now RFC 6982.
Ralph Giles [Mon, 20 Jan 2014 21:40:36 +0000 (13:40 -0800)]
Update 'running code' reference, now RFC 6982.

5 years agoUse xml.resource.org bibxml in the oggopus draft.
Ralph Giles [Mon, 20 Jan 2014 21:39:24 +0000 (13:39 -0800)]
Use xml.resource.org bibxml in the oggopus draft.

These aren't available over https, but actually work, unlike
the old reference urls.

5 years agoAbbreviate the first stereo matrix to fit 72 columns.
Ralph Giles [Mon, 20 Jan 2014 20:52:38 +0000 (12:52 -0800)]
Abbreviate the first stereo matrix to fit 72 columns.

Fixes a nit.

5 years agoAdd NOT RECOMMENDED to our rfc 2119 boilerplate.
Ralph Giles [Mon, 20 Jan 2014 20:47:32 +0000 (12:47 -0800)]
Add NOT RECOMMENDED to our rfc 2119 boilerplate.

Fixes a nit. According to idnits, 'NOT RECOMMENDED' is optional,
but we use it. Other words, like SHALL which we don't use are
required in the boilerplate.

5 years agoCapitalize Vorbis.
Ralph Giles [Mon, 20 Jan 2014 20:33:22 +0000 (12:33 -0800)]
Capitalize Vorbis.

5 years agoUse organizations authors in the ogg draft.
Ralph Giles [Mon, 20 Jan 2014 20:32:11 +0000 (12:32 -0800)]
Use organizations authors in the ogg draft.

This seems to be the correct way to represent institutional authors
in the references.

5 years agoUsing a table on ARM for unsigned division by small (<=256) integers.
Jean-Marc Valin [Mon, 20 Jan 2014 21:32:16 +0000 (16:32 -0500)]
Using a table on ARM for unsigned division by small (<=256) integers.

Saves 0.6% for 64 kb/s and 1.8% for 128 kb/s when decoding on arm7tdmi.

5 years agoMinor cleanup in dynalloc_analysis()
Jean-Marc Valin [Sun, 19 Jan 2014 06:42:04 +0000 (01:42 -0500)]
Minor cleanup in dynalloc_analysis()

5 years agoAdds a median filter to make dynalloc_analysis() more conservative
Jean-Marc Valin [Sun, 19 Jan 2014 06:31:00 +0000 (01:31 -0500)]
Adds a median filter to make dynalloc_analysis() more conservative

This should prevent extreme dynalloc behaviour in cases where some
bands are heavily attenuated.

5 years agoDon't say 'it' where being specific is better
Ron [Sun, 19 Jan 2014 05:33:44 +0000 (16:03 +1030)]
Don't say 'it' where being specific is better

5 years agoFix copypasta fail
Ron [Sun, 19 Jan 2014 05:22:31 +0000 (15:52 +1030)]
Fix copypasta fail

5 years agoFormally introduce the terms mode and configuration
Ron [Sun, 19 Jan 2014 04:50:05 +0000 (15:20 +1030)]
Formally introduce the terms mode and configuration

and use them more strictly in the rest of the text.

5 years agoTypo fix
Ron [Sun, 19 Jan 2014 03:18:21 +0000 (13:48 +1030)]
Typo fix

5 years agoUse 'pre-skip' consistently with the hyphen. draft-ietf-codec-oggopus-02
Ralph Giles [Sat, 18 Jan 2014 00:16:46 +0000 (16:16 -0800)]
Use 'pre-skip' consistently with the hyphen.

5 years agoMissed another 'preskip flag'.
Ralph Giles [Sat, 18 Jan 2014 00:16:15 +0000 (16:16 -0800)]
Missed another 'preskip flag'.

5 years agoPreskip isn't a flag.
Ralph Giles [Sat, 18 Jan 2014 00:13:49 +0000 (16:13 -0800)]
Preskip isn't a flag.

Comment from mark4o.

5 years agoAdd 'surname' to WAVE reference.
Ralph Giles [Sat, 18 Jan 2014 00:07:59 +0000 (16:07 -0800)]
Add 'surname' to WAVE reference.

5 years agoFix markup and note needing to renable-prediction.
Ralph Giles [Sat, 18 Jan 2014 00:02:52 +0000 (16:02 -0800)]
Fix markup and note needing to renable-prediction.

5 years agoShow how to turn off prediction with libopus
Ron [Fri, 17 Jan 2014 22:40:18 +0000 (09:10 +1030)]
Show how to turn off prediction with libopus

5 years agoSILK and CELT mode are singular
Ron [Fri, 17 Jan 2014 23:54:02 +0000 (10:24 +1030)]
SILK and CELT mode are singular

5 years agoTry to improve wikipedia citation formatting.
Ralph Giles [Fri, 17 Jan 2014 23:47:08 +0000 (15:47 -0800)]
Try to improve wikipedia citation formatting.

It wants a surname, and to show it as Surname, Initial.
This leaves an extra comma in the xml2rfc2 output, but
at least mentions wikipedia.

5 years agoReference vorbis source code for lpc coefficient calculation.
Ralph Giles [Fri, 17 Jan 2014 23:44:08 +0000 (15:44 -0800)]
Reference vorbis source code for lpc coefficient calculation.

5 years agoReference wikipedia for LPC prediction.
Ralph Giles [Fri, 17 Jan 2014 23:36:03 +0000 (15:36 -0800)]
Reference wikipedia for LPC prediction.

5 years agoTry to clarify frame packing.
Ralph Giles [Fri, 17 Jan 2014 23:22:57 +0000 (15:22 -0800)]
Try to clarify frame packing.

Marko was concerned that RFC 6716 section 3.2.1 narrowly describes
zero-length DTX frames _only_ for code 2 and 3 packets, and therefore
wanted this sentence to state clearly that code 0 and 1 can be used
with zero-byte frames as well. I've tried to do that.

5 years agoUse SILK/CELT everywhere describing modes.
Ralph Giles [Fri, 17 Jan 2014 22:33:54 +0000 (14:33 -0800)]
Use SILK/CELT everywhere describing modes.

There was some attempt to use LP/MDCT instead, to avoid confusion
of the Opus modes with the earlier codecs of the same name, but
Jean-Marc says they gave up on doing that in the Opus RFC, and in
particular the tables a reader would need to reference from RFC 6716
Section 3.2 mentions SILK and CELT, so I think it's important to use
the same terms here.

5 years agoDrop the oddball hyphenation of MDCT-mode
Ron [Fri, 17 Jan 2014 22:05:38 +0000 (08:35 +1030)]
Drop the oddball hyphenation of MDCT-mode

It's not hyphenated anywhere else.

5 years agoClarify that MB->WB is better than MB->NB
Ron [Fri, 17 Jan 2014 21:33:31 +0000 (08:03 +1030)]
Clarify that MB->WB is better than MB->NB

I hope.  Now that it's been clarified for me what this originally meant
to say, it's tricky to know if this actually contains the missing clue
for other readers.  Hopefully it should be obvious to anyone actually
implementing it once they look at what modes they have to choose from.

5 years agoRemove line about undefined speaker configurations.
Ralph Giles [Fri, 17 Jan 2014 22:26:58 +0000 (14:26 -0800)]
Remove line about undefined speaker configurations.

Ron's suggestion. We think it's clear enough as is and
removing it avoids confusion about this specification
versus future extensions.

5 years agoBump Ogg draft version and date.
Ralph Giles [Fri, 17 Jan 2014 20:10:50 +0000 (12:10 -0800)]
Bump Ogg draft version and date.

5 years agoReplace MAY with SHOULD in the gap-filling guidelines.
Ralph Giles [Fri, 17 Jan 2014 20:09:45 +0000 (12:09 -0800)]
Replace MAY with SHOULD in the gap-filling guidelines.

This is really the best implementations can do as far as we
understand the possibilies, so it's better to be straightforward.

5 years agoUpdate Ralph's phone number.
Ralph Giles [Fri, 17 Jan 2014 19:15:34 +0000 (11:15 -0800)]
Update Ralph's phone number.

5 years agoUpdate authors in RTP draft
Jean-Marc Valin [Fri, 17 Jan 2014 19:05:37 +0000 (14:05 -0500)]
Update authors in RTP draft

5 years agoAnother nit in the update draft
Mark Harris [Mon, 13 Jan 2014 21:53:21 +0000 (16:53 -0500)]
Another nit in the update draft

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 years agoBump the static version string in version.mk.
Ralph Giles [Wed, 15 Jan 2014 17:08:08 +0000 (09:08 -0800)]
Bump the static version string in version.mk.

We failed to do this before the 1.1 release, so that went out
still marked at 1.1 beta. The plan was to get rid of this file
but it's still used as a fallback by the msvc build.

5 years agoReword framing bit ommission, again.
Ralph Giles [Wed, 15 Jan 2014 17:02:01 +0000 (09:02 -0800)]
Reword framing bit ommission, again.

5 years agoBe a bit less ambiguous about the comment framing bit
Ron [Wed, 15 Jan 2014 09:11:21 +0000 (19:41 +1030)]
Be a bit less ambiguous about the comment framing bit

5 years agoRewrite gap filling section.
Ralph Giles [Wed, 15 Jan 2014 01:23:00 +0000 (17:23 -0800)]
Rewrite gap filling section.

Incorporate list feedback from Mark Harris, Tim and Jean-Marc
and try to improve clarity.

5 years agoAdd Tim's gap repair text.
Ralph Giles [Tue, 14 Jan 2014 23:40:16 +0000 (15:40 -0800)]
Add Tim's gap repair text.

From http://www.ietf.org/mail-archive/web/codec/current/msg03030.html

5 years agoFix malloc_hook warning on glibc 2.17 and later.
Ralph Giles [Tue, 14 Jan 2014 19:07:37 +0000 (11:07 -0800)]
Fix malloc_hook warning on glibc 2.17 and later.

In glib 2.17 the __malloc_ptr define was removed in favour
of using void* directly. Our declaration of mhook using this
type for the second argument therefore rightly generates a warning
on modern systems, since the type is assumed to be an int, which
is too narrow to hold a pointer on 64 bit architectures.

Since it was only ever a define we could use an #ifndef to define
__malloc_ptr ourselves. However we only use it once, so using void*
in the signature directly is cleaner. This should cause no problems
on older systems where it will match either the void* or the char*
(for non __STDC__ code) the define resolved to.

5 years agoMinor nits on update draft
Mark Harris [Mon, 13 Jan 2014 21:30:55 +0000 (16:30 -0500)]
Minor nits on update draft

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 years agoUpdate draft accepted as WG document
Jean-Marc Valin [Mon, 13 Jan 2014 20:31:01 +0000 (15:31 -0500)]
Update draft accepted as WG document

5 years agoFix declaration after statement in fixed point.
Gregory Maxwell [Wed, 8 Jan 2014 19:48:38 +0000 (11:48 -0800)]
Fix declaration after statement in fixed point.

5 years agoAdd tests/test_ to Makefile.unix.
Gregory Maxwell [Wed, 8 Jan 2014 19:04:29 +0000 (11:04 -0800)]
Add tests/test_ to Makefile.unix.

5 years agoFixes the decode_fec case for b76888d
Mark Harris [Wed, 8 Jan 2014 02:33:03 +0000 (21:33 -0500)]
Fixes the decode_fec case for b76888d

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 years agopseudostack instrumentation (off by default)
Jean-Marc Valin [Wed, 8 Jan 2014 02:32:41 +0000 (21:32 -0500)]
pseudostack instrumentation (off by default)

5 years agoMinor refactoring of the SILK PLC code to save more stack
Jean-Marc Valin [Wed, 8 Jan 2014 02:25:09 +0000 (21:25 -0500)]
Minor refactoring of the SILK PLC code to save more stack

5 years agoPreventing unnecessary stack use when using a large decode buffer
Jean-Marc Valin [Wed, 8 Jan 2014 02:00:18 +0000 (21:00 -0500)]
Preventing unnecessary stack use when using a large decode buffer

This was causing pseudostack builds to fail because opus_demo uses a 2-second
buffer.

5 years agoFixes SMALL_FOOTPRINT for float
Jean-Marc Valin [Tue, 7 Jan 2014 22:50:46 +0000 (17:50 -0500)]
Fixes SMALL_FOOTPRINT for float

5 years agoAnother aliasing hack in the SILK PLC with SMALL_FOOTPRINT
Jean-Marc Valin [Tue, 7 Jan 2014 21:26:27 +0000 (16:26 -0500)]
Another aliasing hack in the SILK PLC with SMALL_FOOTPRINT

5 years agoDon't allocate pulses on the stack when calling the SILK PLC.
Jean-Marc Valin [Tue, 7 Jan 2014 20:27:02 +0000 (15:27 -0500)]
Don't allocate pulses on the stack when calling the SILK PLC.

Also minor C89 fix for the previous commit

5 years agoMoves CELT PLC pitch search to a separate function to reduce peak stack
Jean-Marc Valin [Tue, 7 Jan 2014 20:02:43 +0000 (15:02 -0500)]
Moves CELT PLC pitch search to a separate function to reduce peak stack

5 years agoDelaying allocation of the SILK temporary output buffer to reduce peak stack
Jean-Marc Valin [Tue, 7 Jan 2014 18:46:06 +0000 (13:46 -0500)]
Delaying allocation of the SILK temporary output buffer to reduce peak stack

5 years agoAdds SMALL_FOOTPRINT hack to the CELT PLC too
Jean-Marc Valin [Tue, 7 Jan 2014 09:48:42 +0000 (04:48 -0500)]
Adds SMALL_FOOTPRINT hack to the CELT PLC too

5 years agoMoves deemphasis() call out of celt_decode_lost() to reduce peak stack
Jean-Marc Valin [Tue, 7 Jan 2014 09:32:41 +0000 (04:32 -0500)]
Moves deemphasis() call out of celt_decode_lost() to reduce peak stack

5 years agoStore decoded SILK pulses as 16-bit vector
Jean-Marc Valin [Tue, 7 Jan 2014 02:59:48 +0000 (21:59 -0500)]
Store decoded SILK pulses as 16-bit vector

This saves 640 bytes on the peak stack usage.

5 years agoCleaning up leftovers of "freq" in celt_decode_with_ec()
Jean-Marc Valin [Mon, 6 Jan 2014 22:45:57 +0000 (17:45 -0500)]
Cleaning up leftovers of "freq" in celt_decode_with_ec()

5 years agoReduces the decoder stack use by removing the pcm_silk buffer in fixed-point
Jean-Marc Valin [Mon, 6 Jan 2014 22:43:20 +0000 (17:43 -0500)]
Reduces the decoder stack use by removing the pcm_silk buffer in fixed-point

We only keep when concealing less than 10ms with SILK.

5 years agoMoves the remains of compute_inv_mdcts() to celt_synthesis()
Jean-Marc Valin [Mon, 6 Jan 2014 14:31:09 +0000 (09:31 -0500)]
Moves the remains of compute_inv_mdcts() to celt_synthesis()

5 years agoHack that makes the SMALL_FOOTPRINT CELT decoder use only 4.25 kB of stack.
Jean-Marc Valin [Mon, 6 Jan 2014 14:11:52 +0000 (09:11 -0500)]
Hack that makes the SMALL_FOOTPRINT CELT decoder use only 4.25 kB of stack.

5 years agoReduces decoder stack usage by only storing one channel of denormalized MDCT
Jean-Marc Valin [Mon, 6 Jan 2014 13:58:38 +0000 (08:58 -0500)]
Reduces decoder stack usage by only storing one channel of denormalized MDCT

5 years agoSome cleaning up of the synthesis code.
Jean-Marc Valin [Mon, 6 Jan 2014 02:40:02 +0000 (21:40 -0500)]
Some cleaning up of the synthesis code.

5 years agoMaking exp_rotation1() use MAC16_16(), which saves a few cycles on ARM
Jean-Marc Valin [Sun, 5 Jan 2014 02:06:24 +0000 (21:06 -0500)]
Making exp_rotation1() use MAC16_16(), which saves a few cycles on ARM

5 years agoSilences unused parameter warning
Jean-Marc Valin [Sat, 4 Jan 2014 05:49:46 +0000 (00:49 -0500)]
Silences unused parameter warning

5 years agoMoving the radix-2 to expose trivial twiddle factors
Jean-Marc Valin [Sat, 4 Jan 2014 04:55:52 +0000 (23:55 -0500)]
Moving the radix-2 to expose trivial twiddle factors

5 years agoImproving the accuracy of the fixed-point radix-3 and radix-5
Jean-Marc Valin [Tue, 31 Dec 2013 05:00:37 +0000 (00:00 -0500)]
Improving the accuracy of the fixed-point radix-3 and radix-5

5 years agoMinor cleanup -- nothing to see here
Jean-Marc Valin [Sun, 29 Dec 2013 23:45:49 +0000 (18:45 -0500)]
Minor cleanup -- nothing to see here

5 years agoFixed-point: slight accuracy improvement in the comb filter
Jean-Marc Valin [Sun, 29 Dec 2013 23:31:17 +0000 (18:31 -0500)]
Fixed-point: slight accuracy improvement in the comb filter

5 years agoRemove a SAVE_STACK that was pasted accidentally in the previous commit
Jean-Marc Valin [Sun, 29 Dec 2013 21:21:06 +0000 (16:21 -0500)]
Remove a SAVE_STACK that was pasted accidentally in the previous commit

5 years agoUnifying scaling of fixed-point and float FFT
Jean-Marc Valin [Sun, 29 Dec 2013 18:34:17 +0000 (13:34 -0500)]
Unifying scaling of fixed-point and float FFT

5 years agoFixes C89 issue
Jean-Marc Valin [Sun, 29 Dec 2013 05:09:06 +0000 (00:09 -0500)]
Fixes C89 issue

5 years agoGetting rid of some negations
Jean-Marc Valin [Sun, 29 Dec 2013 04:14:26 +0000 (23:14 -0500)]
Getting rid of some negations

Since we're doing two rotations, we can invert the sign on both.
Also adding a few comments for optimizing the FFT.

5 years agoSlightly improving the accuracy of the fixed-point MDCT downscale
Jean-Marc Valin [Sun, 29 Dec 2013 00:10:44 +0000 (19:10 -0500)]
Slightly improving the accuracy of the fixed-point MDCT downscale

Also simplifying the code

5 years agoCommit 99968ab was causing us to allocate too much stack in the MDCT
Jean-Marc Valin [Fri, 27 Dec 2013 08:16:34 +0000 (03:16 -0500)]
Commit 99968ab was causing us to allocate too much stack in the MDCT

5 years agoRemoves the separate 1/8N rotation in the (I)MDCT and unmerges the MDCT sizes
Jean-Marc Valin [Fri, 27 Dec 2013 05:10:54 +0000 (00:10 -0500)]
Removes the separate 1/8N rotation in the (I)MDCT and unmerges the MDCT sizes

Undoes commits f7547a4e and 72513f3c

5 years agoInverse MDCT no longer requires any scratch space
Jean-Marc Valin [Mon, 23 Dec 2013 07:26:03 +0000 (02:26 -0500)]
Inverse MDCT no longer requires any scratch space

5 years agoReverse the ordering of the FFT stage to optimize a degenerate radix-4 case.
Jean-Marc Valin [Sun, 22 Dec 2013 07:17:24 +0000 (02:17 -0500)]
Reverse the ordering of the FFT stage to optimize a degenerate radix-4 case.

This also happens to increase the accuracy since it appears that the new
ordering is optimal (at least for 20 ms frames), whereas the previous ordering
was pessimal.

5 years agoMerges the FFT scaling with the MDCT pre-rotate
Jean-Marc Valin [Sat, 21 Dec 2013 21:30:49 +0000 (16:30 -0500)]
Merges the FFT scaling with the MDCT pre-rotate

5 years agoGetting rid of the inverse FFT entirely
Jean-Marc Valin [Sat, 21 Dec 2013 20:45:17 +0000 (15:45 -0500)]
Getting rid of the inverse FFT entirely

IMDCT now uses the forward FFT.

5 years agoMoving bitrev step to forward MDCT too
Jean-Marc Valin [Sat, 21 Dec 2013 19:29:41 +0000 (14:29 -0500)]
Moving bitrev step to forward MDCT too

5 years agoApplying the forward FFT gain up-front for fixed-point too
Jean-Marc Valin [Sat, 21 Dec 2013 07:33:22 +0000 (02:33 -0500)]
Applying the forward FFT gain up-front for fixed-point too

This makes us lose a bit of precision in the first steps, but our gain is more
precise because it's only rounded once. Overall, SNR is slightly improved.

5 years agoMoves the bitrev step to the IMDCT pre-rotation
Jean-Marc Valin [Sat, 21 Dec 2013 04:13:29 +0000 (23:13 -0500)]
Moves the bitrev step to the IMDCT pre-rotation

5 years agoFixes a warning about "conversion from '__int64' to 'int'" on MSVC
Jean-Marc Valin [Tue, 17 Dec 2013 18:56:00 +0000 (13:56 -0500)]
Fixes a warning about "conversion from '__int64' to 'int'" on MSVC

5 years agoconfigure.ac: fix bashism in ARM optimization handling
Peter Korsgaard [Sun, 8 Dec 2013 10:05:41 +0000 (11:05 +0100)]
configure.ac: fix bashism in ARM optimization handling

Breaks configure when /bin/sh isn't bash with:

configure: Trying to force-enable ARMv6 media instructions...
checking if assembler supports ARMv6 media instructions on ARM... yes
configure: Trying to force-enable NEON instructions...
checking if assembler supports NEON instructions on ARM... yes
./configure.lineno: 12799: Bad substitution

Fix it by using the %% expansion to remove everything from the first
space instead.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
5 years agofixed-point: slight (but free) accuracy improvement in compute_band_energies()
Jean-Marc Valin [Mon, 16 Dec 2013 06:08:21 +0000 (01:08 -0500)]
fixed-point: slight (but free) accuracy improvement in compute_band_energies()

Also moves the VSHR32() condition outside the loop just in case some compilers
don't optimize that properly.

5 years agofixed-point: adds rounding to some shifts to eliminate bias
Jean-Marc Valin [Sat, 14 Dec 2013 16:07:13 +0000 (11:07 -0500)]
fixed-point: adds rounding to some shifts to eliminate bias

This reduces the peak decoding error by removing small (inaudible) spikes in
the error at the frame boundaries. These were due to the frequency-domain bias
ending up as a small pulse in the middle of the IMDCT overlap. None of this
was ever audible, but fixing it is still cleaner.

5 years agoRemove useless code in alloc_trim_analysis()
Jean-Marc Valin [Wed, 11 Dec 2013 06:34:06 +0000 (01:34 -0500)]
Remove useless code in alloc_trim_analysis()

5 years agoMinor fixed-point accuracy improvements that were completely free
Jean-Marc Valin [Wed, 11 Dec 2013 05:21:38 +0000 (00:21 -0500)]
Minor fixed-point accuracy improvements that were completely free