opus.git
11 years agoFixed two issues pointed out by Greg
Jean-Marc Valin [Sat, 2 Aug 2008 12:16:58 +0000 (08:16 -0400)]
Fixed two issues pointed out by Greg

11 years agoUnified allocation of fine energy and pulses.
Jean-Marc Valin [Sat, 2 Aug 2008 12:14:42 +0000 (08:14 -0400)]
Unified allocation of fine energy and pulses.

11 years agoCompleted the separation of coarse and fine energy quantisation
Jean-Marc Valin [Sat, 2 Aug 2008 02:26:49 +0000 (22:26 -0400)]
Completed the separation of coarse and fine energy quantisation

11 years agoSplit coarse and fine energy quantisation
Jean-Marc Valin [Fri, 1 Aug 2008 04:11:25 +0000 (00:11 -0400)]
Split coarse and fine energy quantisation

11 years agobump bit-stream version
Jean-Marc Valin [Sat, 26 Jul 2008 13:15:26 +0000 (09:15 -0400)]
bump bit-stream version

11 years agoBetter bit allocation for all frame sizes that are not equal to 256.
Jean-Marc Valin [Thu, 24 Jul 2008 12:49:34 +0000 (08:49 -0400)]
Better bit allocation for all frame sizes that are not equal to 256.

11 years agoRe-implemented renormalise_bands() based on renormalise_vector().
Jean-Marc Valin [Mon, 21 Jul 2008 03:30:29 +0000 (23:30 -0400)]
Re-implemented renormalise_bands() based on renormalise_vector().

11 years agoSimplified the folding normalisation by creating renormalise_vector().
Jean-Marc Valin [Mon, 21 Jul 2008 03:14:31 +0000 (23:14 -0400)]
Simplified the folding normalisation by creating renormalise_vector().

11 years agoRe-enabling folding/intra for transients
Jean-Marc Valin [Mon, 21 Jul 2008 00:36:54 +0000 (20:36 -0400)]
Re-enabling folding/intra for transients

11 years agoisolated the folding part of the code that's common in vq.c
Jean-Marc Valin [Thu, 17 Jul 2008 20:22:23 +0000 (16:22 -0400)]
isolated the folding part of the code that's common in vq.c

11 years agoDo not encode the short-window bit when not applicable.
Jean-Marc Valin [Fri, 11 Jul 2008 03:06:58 +0000 (23:06 -0400)]
Do not encode the short-window bit when not applicable.

11 years agocleaned up transient_analysis() and replaced the algorithm with a simpler one
Jean-Marc Valin [Sun, 6 Jul 2008 14:57:26 +0000 (10:57 -0400)]
cleaned up transient_analysis() and replaced the algorithm with a simpler one
based on the max absolute value in a range.

11 years agofixed-point: conversion of pre-echo avoidance now complete.
Jean-Marc Valin [Fri, 4 Jul 2008 20:47:28 +0000 (16:47 -0400)]
fixed-point: conversion of pre-echo avoidance now complete.

11 years agofixed-point: more work on the time window (almost done)
Jean-Marc Valin [Fri, 4 Jul 2008 00:41:06 +0000 (20:41 -0400)]
fixed-point: more work on the time window (almost done)

11 years agoMore fixed-point conversion of the time window.
Jean-Marc Valin [Sun, 29 Jun 2008 02:06:05 +0000 (12:06 +1000)]
More fixed-point conversion of the time window.

11 years agoMore fixed-point work on the time window -- including conversion of the gain
Jean-Marc Valin [Sat, 28 Jun 2008 17:46:39 +0000 (03:46 +1000)]
More fixed-point work on the time window -- including conversion of the gain
to power-of-two.

11 years agoCleaned up the pre-echo avoidance code so it works when compiled as fixed-point
Jean-Marc Valin [Thu, 26 Jun 2008 21:57:35 +0000 (07:57 +1000)]
Cleaned up the pre-echo avoidance code so it works when compiled as fixed-point
(still requires float ops though). Also, removed the per-band IDCT.

11 years agoAutomatically choosing the overlap based on the frame size.
Jean-Marc Valin [Wed, 18 Jun 2008 13:44:48 +0000 (23:44 +1000)]
Automatically choosing the overlap based on the frame size.

11 years agoshort-block MDCT
Jean-Marc Valin [Tue, 17 Jun 2008 03:28:13 +0000 (13:28 +1000)]
short-block MDCT

11 years agoImplemented two pre-echo avoidance techniques: time-domain pre-emphasis and
Jean-Marc Valin [Mon, 16 Jun 2008 04:13:05 +0000 (14:13 +1000)]
Implemented two pre-echo avoidance techniques: time-domain pre-emphasis and
per-band IDCT.

11 years agoDoing the cwrs split in dimensions should save a few bits.
Jean-Marc Valin [Wed, 11 Jun 2008 08:05:57 +0000 (18:05 +1000)]
Doing the cwrs split in dimensions should save a few bits.

11 years agoTurns out maxK and maxM were also inverted in fits_in64()
Jean-Marc Valin [Tue, 10 Jun 2008 13:46:12 +0000 (23:46 +1000)]
Turns out maxK and maxM were also inverted in fits_in64()

11 years agofixed a cwrs bug in fits_in32()
Jean-Marc Valin [Tue, 10 Jun 2008 10:57:52 +0000 (20:57 +1000)]
fixed a cwrs bug in fits_in32()

11 years agoImplemented split-cwrs for very large codebooks (>64 bits), but still getting
Jean-Marc Valin [Tue, 10 Jun 2008 07:23:03 +0000 (17:23 +1000)]
Implemented split-cwrs for very large codebooks (>64 bits), but still getting
a few decoding errors.

11 years agoImplemented a cleaner way to detect whether CWRS codebooks fit in 32 or 64 bits
Jean-Marc Valin [Tue, 10 Jun 2008 06:25:45 +0000 (16:25 +1000)]
Implemented a cleaner way to detect whether CWRS codebooks fit in 32 or 64 bits

11 years agoSuggesting .oga as extension for Ogg files
Jean-Marc Valin [Mon, 9 Jun 2008 05:40:34 +0000 (15:40 +1000)]
Suggesting .oga as extension for Ogg files

11 years agoUse EXPORT macro in a way compatible with win32
Peter Kirk [Fri, 6 Jun 2008 12:38:38 +0000 (14:38 +0200)]
Use EXPORT macro in a way compatible with win32

11 years agoAllowing frames up to 512 samples
Jean-Marc Valin [Fri, 6 Jun 2008 07:04:07 +0000 (17:04 +1000)]
Allowing frames up to 512 samples

11 years agoInfrastructure work for a psy model
Jean-Marc Valin [Sun, 1 Jun 2008 13:19:16 +0000 (23:19 +1000)]
Infrastructure work for a psy model

11 years agoAdjusted stereo bit allocation to be higher than mono for the same alloc line
Jean-Marc Valin [Fri, 30 May 2008 06:07:06 +0000 (16:07 +1000)]
Adjusted stereo bit allocation to be higher than mono for the same alloc line

11 years agoBrought the mdct masking function up-to-date
Jean-Marc Valin [Fri, 30 May 2008 05:48:09 +0000 (15:48 +1000)]
Brought the mdct masking function up-to-date

11 years agoMaking the Laplace test case pass again
Jean-Marc Valin [Tue, 27 May 2008 14:58:42 +0000 (00:58 +1000)]
Making the Laplace test case pass again

11 years agoPreventing encoder-decoder mismatch when energy values are too large to be
Jean-Marc Valin [Tue, 27 May 2008 12:17:13 +0000 (22:17 +1000)]
Preventing encoder-decoder mismatch when energy values are too large to be
represented by the laplace encoder (would have a probability of zero due
to finite precision)

11 years agofixed the skipping of the zeros (skip the zeros instead of the good samples!)
Jean-Marc Valin [Mon, 26 May 2008 13:46:28 +0000 (23:46 +1000)]
fixed the skipping of the zeros (skip the zeros instead of the good samples!)

11 years agoDoing mid-side stereo when not doing intensity.
Jean-Marc Valin [Fri, 23 May 2008 07:27:39 +0000 (17:27 +1000)]
Doing mid-side stereo when not doing intensity.

11 years agoImplemented intensity stereo, which required changes all over the place
Jean-Marc Valin [Fri, 23 May 2008 06:57:34 +0000 (16:57 +1000)]
Implemented intensity stereo, which required changes all over the place
to make sure that stereo coupling is done at the band level. Previously
the stereo coupling was done all at once, but there were all kinds of
interactions with the prediction and folding.

11 years agoMore stereo infrastructure
Jean-Marc Valin [Fri, 23 May 2008 04:23:22 +0000 (14:23 +1000)]
More stereo infrastructure

11 years agoinfrastructure changes for upcoming stereo improvements
Jean-Marc Valin [Fri, 23 May 2008 03:35:35 +0000 (13:35 +1000)]
infrastructure changes for upcoming stereo improvements

11 years agoPreventing some encode/decoder mismatch situations at low bit-rate. Also, some
Jean-Marc Valin [Thu, 22 May 2008 06:49:38 +0000 (16:49 +1000)]
Preventing some encode/decoder mismatch situations at low bit-rate. Also, some
simplifications to the energy encoding.

11 years agodoxygen version number
Jean-Marc Valin [Fri, 16 May 2008 03:28:58 +0000 (13:28 +1000)]
doxygen version number

11 years agoversion bump to 0.3.2
Jean-Marc Valin [Thu, 15 May 2008 11:53:36 +0000 (21:53 +1000)]
version bump to 0.3.2

11 years agoAdded calls to query the bit-stream version.
Jean-Marc Valin [Thu, 15 May 2008 11:53:27 +0000 (21:53 +1000)]
Added calls to query the bit-stream version.

11 years agoSome code for packet loss and bit error simulation
Jean-Marc Valin [Thu, 15 May 2008 10:21:27 +0000 (20:21 +1000)]
Some code for packet loss and bit error simulation

11 years agoMore bit allocation tuning
Jean-Marc Valin [Wed, 7 May 2008 06:44:29 +0000 (16:44 +1000)]
More bit allocation tuning

11 years agoImplemented rate-dependant allocation for the fine energy quantisation.
Jean-Marc Valin [Wed, 7 May 2008 03:44:39 +0000 (13:44 +1000)]
Implemented rate-dependant allocation for the fine energy quantisation.

11 years agoPacking the pitch parameters first to improve robustness to bit errors with
Jean-Marc Valin [Tue, 6 May 2008 13:21:55 +0000 (23:21 +1000)]
Packing the pitch parameters first to improve robustness to bit errors with
(hopefully) no other side effect

11 years agoSome tuning improvements, more to come
Jean-Marc Valin [Tue, 6 May 2008 08:01:17 +0000 (18:01 +1000)]
Some tuning improvements, more to come

11 years agoDisabled pulse spreading until I can show it actually helps
Jean-Marc Valin [Mon, 5 May 2008 06:05:34 +0000 (16:05 +1000)]
Disabled pulse spreading until I can show it actually helps

11 years agoSlightly less arbitrary gains for intra prediction.
Jean-Marc Valin [Mon, 5 May 2008 05:43:57 +0000 (15:43 +1000)]
Slightly less arbitrary gains for intra prediction.

11 years agoUsing only a sign for the intra prediction instead of using up to 5 bits for
Jean-Marc Valin [Mon, 5 May 2008 02:02:14 +0000 (12:02 +1000)]
Using only a sign for the intra prediction instead of using up to 5 bits for
an offset.

11 years agoFixed a bug in the PLC and added code to estimate the pitch from the synthesis
Jean-Marc Valin [Fri, 2 May 2008 00:34:07 +0000 (10:34 +1000)]
Fixed a bug in the PLC and added code to estimate the pitch from the synthesis
instead of relying on the one previously transmitted by the encoder.

11 years agoError detection in uint decoding (can no longer return an int that's out
Jean-Marc Valin [Mon, 28 Apr 2008 07:30:26 +0000 (17:30 +1000)]
Error detection in uint decoding (can no longer return an int that's out
of range.

11 years agoBetter value for prediction coef beta
Jean-Marc Valin [Mon, 28 Apr 2008 05:57:03 +0000 (15:57 +1000)]
Better value for prediction coef beta

11 years agoAdded code for simulating bit errors
Jean-Marc Valin [Mon, 28 Apr 2008 05:56:38 +0000 (15:56 +1000)]
Added code for simulating bit errors

11 years agomdct_overlap no longer needed
Jean-Marc Valin [Wed, 23 Apr 2008 08:03:46 +0000 (18:03 +1000)]
mdct_overlap no longer needed

11 years agoAdded STDIN_TUNING to make it easier to tune CELT
Jean-Marc Valin [Fri, 25 Apr 2008 22:16:12 +0000 (08:16 +1000)]
Added STDIN_TUNING to make it easier to tune CELT

11 years agobump version number
Jean-Marc Valin [Fri, 25 Apr 2008 12:54:11 +0000 (22:54 +1000)]
bump version number

11 years agoBrought the mdct test-case with the recent changes to the mdct semantic
Jean-Marc Valin [Fri, 25 Apr 2008 12:39:46 +0000 (22:39 +1000)]
Brought the mdct test-case with the recent changes to the mdct semantic

11 years agoSHORTCUTS now disables the encoder's de-emphasis (i.e. can't check encoder
Jean-Marc Valin [Wed, 23 Apr 2008 22:29:25 +0000 (08:29 +1000)]
SHORTCUTS now disables the encoder's de-emphasis (i.e. can't check encoder
against the decoder)

11 years agoOptimisation: caching the divisions used in the Laplace encoder.
Jean-Marc Valin [Wed, 23 Apr 2008 03:42:10 +0000 (13:42 +1000)]
Optimisation: caching the divisions used in the Laplace encoder.

11 years agoremoved two shifts from the pitch estimation inner loop
Jean-Marc Valin [Wed, 23 Apr 2008 01:57:40 +0000 (11:57 +1000)]
removed two shifts from the pitch estimation inner loop

11 years agoBetter indexing for find_spectral_pitch()
Jean-Marc Valin [Tue, 22 Apr 2008 22:49:32 +0000 (08:49 +1000)]
Better indexing for find_spectral_pitch()

11 years agoReverted to the old MDCT behaviour of only doing down-scaling in the FFT.
Jean-Marc Valin [Tue, 22 Apr 2008 07:08:59 +0000 (17:08 +1000)]
Reverted to the old MDCT behaviour of only doing down-scaling in the FFT.

11 years agomdct_backward now does the WOLA, so there isn't much left in compute_inv_mdcts
Jean-Marc Valin [Tue, 22 Apr 2008 03:37:16 +0000 (13:37 +1000)]
mdct_backward now does the WOLA, so there isn't much left in compute_inv_mdcts

11 years agoMoved the windowing from compute_inv_mdcts() to mdct_backward()
Jean-Marc Valin [Tue, 22 Apr 2008 02:18:36 +0000 (12:18 +1000)]
Moved the windowing from compute_inv_mdcts() to mdct_backward()

11 years agoSeparated the pre-rotate from the window+shuffling and further simplified
Jean-Marc Valin [Tue, 22 Apr 2008 00:13:25 +0000 (10:13 +1000)]
Separated the pre-rotate from the window+shuffling and further simplified
everything.

11 years agoFurther simplifications to the forward mdct
Jean-Marc Valin [Mon, 21 Apr 2008 23:49:22 +0000 (09:49 +1000)]
Further simplifications to the forward mdct

11 years agonon-negative mdct input index
Jean-Marc Valin [Mon, 21 Apr 2008 21:50:50 +0000 (07:50 +1000)]
non-negative mdct input index

11 years agoMoved the windowing operation from compute_mdcts() to mdct_forward() in an
Jean-Marc Valin [Mon, 21 Apr 2008 14:10:52 +0000 (00:10 +1000)]
Moved the windowing operation from compute_mdcts() to mdct_forward() in an
attempt to reduce copying.

11 years agoPassing the mode to the intra prediction functions so the single-channel case
Jean-Marc Valin [Mon, 21 Apr 2008 11:59:37 +0000 (21:59 +1000)]
Passing the mode to the intra prediction functions so the single-channel case
can be optimised

11 years agoDisabling pitch when gain is very small.
Jean-Marc Valin [Mon, 21 Apr 2008 05:08:57 +0000 (15:08 +1000)]
Disabling pitch when gain is very small.

11 years agoMaking stack push a tiny bit clearer to the compiler -- don't think it really
Jean-Marc Valin [Mon, 21 Apr 2008 03:54:41 +0000 (13:54 +1000)]
Making stack push a tiny bit clearer to the compiler -- don't think it really
has an effect though.

11 years agos/B/C/ in the intra stuff to have the same notation as everywhere else
Jean-Marc Valin [Mon, 21 Apr 2008 03:41:09 +0000 (13:41 +1000)]
s/B/C/ in the intra stuff to have the same notation as everywhere else

11 years agoBit better indexing in intra_prediction()
Jean-Marc Valin [Mon, 21 Apr 2008 02:15:16 +0000 (12:15 +1000)]
Bit better indexing in intra_prediction()

11 years agoRemoving some unnecessary initialisations to zero.
Jean-Marc Valin [Mon, 21 Apr 2008 02:14:16 +0000 (12:14 +1000)]
Removing some unnecessary initialisations to zero.

11 years agoAnother bunch of do-while() loops
Jean-Marc Valin [Mon, 21 Apr 2008 01:43:51 +0000 (11:43 +1000)]
Another bunch of do-while() loops

11 years agoFurther simplifications to comb2pulses() to remove all conditional branches.
Jean-Marc Valin [Sun, 20 Apr 2008 21:53:40 +0000 (07:53 +1000)]
Further simplifications to comb2pulses() to remove all conditional branches.

11 years agoSaved some memory by reducing the size of some arrays to only what's needed.
Jean-Marc Valin [Sun, 20 Apr 2008 14:04:23 +0000 (00:04 +1000)]
Saved some memory by reducing the size of some arrays to only what's needed.
Typically saves 768 bytes.

11 years agoBetter indexing of pre/de-emphasis in celt_{en|de}code().
Jean-Marc Valin [Sun, 20 Apr 2008 12:16:02 +0000 (22:16 +1000)]
Better indexing of pre/de-emphasis in celt_{en|de}code().

11 years agoSaved two copies when computing MDCTs of mono signals
Jean-Marc Valin [Sun, 20 Apr 2008 10:39:53 +0000 (20:39 +1000)]
Saved two copies when computing MDCTs of mono signals

11 years agomore use of CELT_COPY in celt_encode(). Also fixed a stack size bug for stereo
Jean-Marc Valin [Sun, 20 Apr 2008 07:42:10 +0000 (17:42 +1000)]
more use of CELT_COPY in celt_encode(). Also fixed a stack size bug for stereo

11 years agoThis both reverts 3fe0db172c334b4fc3fc773cb08d96867402b532 that caused
Jean-Marc Valin [Sun, 20 Apr 2008 07:16:18 +0000 (17:16 +1000)]
This both reverts 3fe0db172c334b4fc3fc773cb08d96867402b532 that caused
accuracy-related issues at high bit-rate, and fixed an overflow caused by large
Rxy values.

11 years agomore restricted pointers in celt.c
Jean-Marc Valin [Sat, 19 Apr 2008 12:24:53 +0000 (22:24 +1000)]
more restricted pointers in celt.c

11 years agoadded a shortcut (SHORTCUT) to skip the spreading function in the pitch search
Jean-Marc Valin [Sat, 19 Apr 2008 11:39:26 +0000 (21:39 +1000)]
added a shortcut (SHORTCUT) to skip the spreading function in the pitch search

11 years agoencoder pre-emphasis now in 16-bits
Jean-Marc Valin [Sat, 19 Apr 2008 09:44:58 +0000 (19:44 +1000)]
encoder pre-emphasis now in 16-bits

11 years agobetter indexing in exp_rotation()
Jean-Marc Valin [Sat, 19 Apr 2008 02:58:29 +0000 (12:58 +1000)]
better indexing in exp_rotation()

11 years agobetter mdct_backward() indexing
Jean-Marc Valin [Sat, 19 Apr 2008 02:53:43 +0000 (12:53 +1000)]
better mdct_backward() indexing

11 years agooptimisation: giving more hints to the compiler about the sizes in
Jean-Marc Valin [Fri, 18 Apr 2008 13:13:14 +0000 (23:13 +1000)]
optimisation: giving more hints to the compiler about the sizes in
find_spectral_pitch()

11 years agoa few minor optimisations
Jean-Marc Valin [Fri, 18 Apr 2008 12:19:58 +0000 (22:19 +1000)]
a few minor optimisations

11 years agoremoved unneeded variable shifts from alg_quant()
Jean-Marc Valin [Fri, 18 Apr 2008 11:00:06 +0000 (21:00 +1000)]
removed unneeded variable shifts from alg_quant()

11 years agoseparated the two passes from interp_bits2pulses()
Jean-Marc Valin [Fri, 18 Apr 2008 09:35:34 +0000 (19:35 +1000)]
separated the two passes from interp_bits2pulses()

11 years agooptimisation: removed the shifts from the vq_index() inner loop
Jean-Marc Valin [Fri, 18 Apr 2008 09:34:58 +0000 (19:34 +1000)]
optimisation: removed the shifts from the vq_index() inner loop

11 years agooptimisation: better indexing/looping in vq_index()
Jean-Marc Valin [Fri, 18 Apr 2008 07:54:52 +0000 (17:54 +1000)]
optimisation: better indexing/looping in vq_index()

11 years agopseudo-stack no longer checks on every function entry whether it has been
Jean-Marc Valin [Fri, 18 Apr 2008 07:29:56 +0000 (17:29 +1000)]
pseudo-stack no longer checks on every function entry whether it has been
allocated

11 years agooptimisation: one less conditional branch in pulse2comb()
Jean-Marc Valin [Fri, 18 Apr 2008 06:58:19 +0000 (16:58 +1000)]
optimisation: one less conditional branch in pulse2comb()

11 years agooptimisation: Removed a bunch of conditional branches from comb2pulse()
Jean-Marc Valin [Fri, 18 Apr 2008 06:46:39 +0000 (16:46 +1000)]
optimisation: Removed a bunch of conditional branches from comb2pulse()

11 years agoSaturation in SIG2INT16 using MIN/MAX
Jean-Marc Valin [Fri, 18 Apr 2008 05:57:18 +0000 (15:57 +1000)]
Saturation in SIG2INT16 using MIN/MAX

11 years agoRemoved implicit 32=>16 conversion (changed to EXTRACT16)
Jean-Marc Valin [Fri, 18 Apr 2008 00:59:03 +0000 (10:59 +1000)]
Removed implicit 32=>16 conversion (changed to EXTRACT16)

11 years agooptimisation: Got rid of the 32-bit mul in find_spectral_pitch()
Jean-Marc Valin [Fri, 18 Apr 2008 00:33:06 +0000 (10:33 +1000)]
optimisation: Got rid of the 32-bit mul in find_spectral_pitch()

11 years agominor simplification in alg_quant()
Jean-Marc Valin [Wed, 16 Apr 2008 21:50:12 +0000 (07:50 +1000)]
minor simplification in alg_quant()