opus.git
11 years agofixed-point: Using a NORM_SCALING of 16384, sig_norm_t is still a float though.
Jean-Marc Valin [Mon, 25 Feb 2008 06:41:30 +0000 (17:41 +1100)]
fixed-point: Using a NORM_SCALING of 16384, sig_norm_t is still a float though.

11 years agofixed-point: celt_sig_t now a 32-bit value.
Jean-Marc Valin [Mon, 25 Feb 2008 03:55:09 +0000 (14:55 +1100)]
fixed-point: celt_sig_t now a 32-bit value.

11 years agofixed-point: initial support for using the fixed-point MDCT (rest is still all
Jean-Marc Valin [Mon, 25 Feb 2008 03:05:10 +0000 (14:05 +1100)]
fixed-point: initial support for using the fixed-point MDCT (rest is still all
float)

11 years agoMDCT is in fixed-point now
Jean-Marc Valin [Mon, 25 Feb 2008 01:07:13 +0000 (12:07 +1100)]
MDCT is in fixed-point now

11 years agoMDCT conversion, part I.
Jean-Marc Valin [Mon, 25 Feb 2008 00:49:38 +0000 (11:49 +1100)]
MDCT conversion, part I.

11 years agoreal fft no longer needs an internal buffer.
Jean-Marc Valin [Sun, 24 Feb 2008 22:47:25 +0000 (09:47 +1100)]
real fft no longer needs an internal buffer.

11 years agoreal fft snr comparison testcase includes DC
Jean-Marc Valin [Sun, 24 Feb 2008 12:48:15 +0000 (23:48 +1100)]
real fft snr comparison testcase includes DC

11 years agoFloat FFT now does the same scaling as the fixed-point FFT
Jean-Marc Valin [Sun, 24 Feb 2008 11:36:05 +0000 (22:36 +1100)]
Float FFT now does the same scaling as the fixed-point FFT

11 years agominor tweak to FFT
Jean-Marc Valin [Sun, 24 Feb 2008 11:06:04 +0000 (22:06 +1100)]
minor tweak to FFT

11 years agoAdded a mixed-precision version of the FFT with 32-bit data and 16-bit twiddles.
Jean-Marc Valin [Sun, 24 Feb 2008 06:16:47 +0000 (17:16 +1100)]
Added a mixed-precision version of the FFT with 32-bit data and 16-bit twiddles.

11 years agoCreated an separate kiss_twiddle_cpx type to make it possible to use
Jean-Marc Valin [Sun, 24 Feb 2008 02:46:30 +0000 (13:46 +1100)]
Created an separate kiss_twiddle_cpx type to make it possible to use
different precision for twiddles and data.

11 years agoMDCT now scales down by N/2 instead of N/4. The factor two is moved to the
Jean-Marc Valin [Fri, 22 Feb 2008 10:45:16 +0000 (21:45 +1100)]
MDCT now scales down by N/2 instead of N/4. The factor two is moved to the
overlap-add during synthesis.

11 years agotestcase for the MDCT and IMDCT
Jean-Marc Valin [Fri, 22 Feb 2008 07:02:56 +0000 (18:02 +1100)]
testcase for the MDCT and IMDCT

11 years agoIncreased precision for real FFT
Jean-Marc Valin [Fri, 22 Feb 2008 06:34:13 +0000 (17:34 +1100)]
Increased precision for real FFT

11 years agoOops, forgot a file
Jean-Marc Valin [Fri, 22 Feb 2008 05:30:33 +0000 (16:30 +1100)]
Oops, forgot a file

11 years agoFixed the FFT for higher precision
Jean-Marc Valin [Fri, 22 Feb 2008 05:19:39 +0000 (16:19 +1100)]
Fixed the FFT for higher precision

11 years agoAdding celt_sig_t where needed
Jean-Marc Valin [Fri, 22 Feb 2008 03:45:58 +0000 (14:45 +1100)]
Adding celt_sig_t where needed

11 years agoSeparating types for normalised vs. denormalised data paths
Jean-Marc Valin [Fri, 22 Feb 2008 03:24:50 +0000 (14:24 +1100)]
Separating types for normalised vs. denormalised data paths

11 years agoFixed the real fft testsuite as well
Jean-Marc Valin [Fri, 22 Feb 2008 02:20:05 +0000 (13:20 +1100)]
Fixed the real fft testsuite as well

11 years agoFixed stuff that got broken during the forward-backward split of the FFT
Jean-Marc Valin [Fri, 22 Feb 2008 01:13:59 +0000 (12:13 +1100)]
Fixed stuff that got broken during the forward-backward split of the FFT

11 years agoAdded a TODO list
Jean-Marc Valin [Fri, 22 Feb 2008 00:24:45 +0000 (11:24 +1100)]
Added a TODO list

11 years agoMaking sure freed or corrupted modes can't be used (produce a run-time warning).
Jean-Marc Valin [Thu, 21 Feb 2008 13:39:25 +0000 (00:39 +1100)]
Making sure freed or corrupted modes can't be used (produce a run-time warning).

11 years agoUpdated the header and celtenc/celtdec tools to the new way modes are handled.
Jean-Marc Valin [Thu, 21 Feb 2008 12:59:17 +0000 (23:59 +1100)]
Updated the header and celtenc/celtdec tools to the new way modes are handled.

11 years agoDoing intra-frame prediction backwards (and a few comments)
Jean-Marc Valin [Thu, 21 Feb 2008 01:16:57 +0000 (12:16 +1100)]
Doing intra-frame prediction backwards (and a few comments)

11 years agoDevelopment documentation (internals)
Jean-Marc Valin [Wed, 20 Feb 2008 07:02:42 +0000 (18:02 +1100)]
Development documentation (internals)

11 years agoSome sampling rate cleanup (now in the mode)
Jean-Marc Valin [Wed, 20 Feb 2008 07:01:08 +0000 (18:01 +1100)]
Some sampling rate cleanup (now in the mode)

11 years agoMode doc
Jean-Marc Valin [Wed, 20 Feb 2008 06:45:51 +0000 (17:45 +1100)]
Mode doc

11 years agoUpdated Doxygen comments, removed an incorrectly placed LGPL header (we own
Jean-Marc Valin [Wed, 20 Feb 2008 06:17:13 +0000 (17:17 +1100)]
Updated Doxygen comments, removed an incorrectly placed LGPL header (we own
copyright, so it's fine!)

11 years agoChanged _new() to _create() in the API. Added some documentation
Jean-Marc Valin [Wed, 20 Feb 2008 04:53:15 +0000 (15:53 +1100)]
Changed _new() to _create() in the API. Added some documentation
on how to use the API.

11 years agomaking sure testcases have a non-zero error code when they fail
Jean-Marc Valin [Wed, 20 Feb 2008 04:08:08 +0000 (15:08 +1100)]
making sure testcases have a non-zero error code when they fail

11 years agoTestcase for laplace encoder
Jean-Marc Valin [Wed, 20 Feb 2008 04:00:26 +0000 (15:00 +1100)]
Testcase for laplace encoder

11 years agoEverything should now compile with a C89 compiler.
Jean-Marc Valin [Wed, 20 Feb 2008 03:08:50 +0000 (14:08 +1100)]
Everything should now compile with a C89 compiler.

11 years agoAnother bunch of C99 array conversions (few more to go)
Jean-Marc Valin [Wed, 20 Feb 2008 02:43:40 +0000 (13:43 +1100)]
Another bunch of C99 array conversions (few more to go)

11 years agocwrs converted to use VARDECL/ALLOC macros
Jean-Marc Valin [Wed, 20 Feb 2008 01:18:41 +0000 (12:18 +1100)]
cwrs converted to use VARDECL/ALLOC macros

11 years agoMore C89 fixes, making sure to include config.h from all source files.
Jean-Marc Valin [Wed, 20 Feb 2008 01:09:29 +0000 (12:09 +1100)]
More C89 fixes, making sure to include config.h from all source files.

11 years agoremoved // comments and added stack_alloc.h (not used everywhere yet)
Jean-Marc Valin [Wed, 20 Feb 2008 00:59:30 +0000 (11:59 +1100)]
removed // comments and added stack_alloc.h (not used everywhere yet)
to make the code more C89-friendly.

11 years agoUpdated the testcase for the latest issues found with libentcode
Jean-Marc Valin [Tue, 19 Feb 2008 10:02:43 +0000 (21:02 +1100)]
Updated the testcase for the latest issues found with libentcode

11 years agoDon't flush the last buffered symbol if it is zero.
Timothy B. Terriberry [Tue, 19 Feb 2008 09:39:00 +0000 (04:39 -0500)]
Don't flush the last buffered symbol if it is zero.

When rng starts out 0x80000000, this can cause an extra zero byte to be written
 to the stream.

11 years agoFix flushing the final byte in the face of nothing but carry propagation.
Timothy B. Terriberry [Tue, 19 Feb 2008 08:29:32 +0000 (03:29 -0500)]
Fix flushing the final byte in the face of nothing but carry propagation.

11 years agoRemove leading zeros in testcelt
Jean-Marc Valin [Tue, 19 Feb 2008 06:34:02 +0000 (17:34 +1100)]
Remove leading zeros in testcelt

11 years agoAllowing to choose the frame size and rate from testcelt
Jean-Marc Valin [Tue, 19 Feb 2008 05:45:37 +0000 (16:45 +1100)]
Allowing to choose the frame size and rate from testcelt

11 years agoSlight increase to the bit allocation in the mid-high freqs
Jean-Marc Valin [Tue, 19 Feb 2008 03:32:08 +0000 (14:32 +1100)]
Slight increase to the bit allocation in the mid-high freqs

11 years agoFixed a bunch of warnings
Jean-Marc Valin [Tue, 19 Feb 2008 02:12:32 +0000 (13:12 +1100)]
Fixed a bunch of warnings

11 years agoMerged the rate allocation atruct directly into the mode struct.
Jean-Marc Valin [Tue, 19 Feb 2008 01:21:32 +0000 (12:21 +1100)]
Merged the rate allocation atruct directly into the mode struct.

11 years agoceltclient udp two-way streamer. Not enabled yet because it's still tricky
Jean-Marc Valin [Mon, 18 Feb 2008 23:24:12 +0000 (10:24 +1100)]
celtclient udp two-way streamer. Not enabled yet because it's still tricky
to build

11 years agocwrs.c links to derf's article on pulse vector encoding.
Jean-Marc Valin [Mon, 18 Feb 2008 12:40:43 +0000 (23:40 +1100)]
cwrs.c links to derf's article on pulse vector encoding.

11 years agoTwo-pass algorithm for filling the remaining bits. Still not perfect, but close
Jean-Marc Valin [Mon, 18 Feb 2008 11:03:18 +0000 (22:03 +1100)]
Two-pass algorithm for filling the remaining bits. Still not perfect, but close
enough.

11 years agominor change to critical bands definitions (nothing to see here)
Jean-Marc Valin [Mon, 18 Feb 2008 10:45:19 +0000 (21:45 +1100)]
minor change to critical bands definitions (nothing to see here)

11 years agoSome error reporting in the mode generation code. More cleanup
Jean-Marc Valin [Mon, 18 Feb 2008 06:04:15 +0000 (17:04 +1100)]
Some error reporting in the mode generation code. More cleanup

11 years agoRemoved all hard-coded modes
Jean-Marc Valin [Mon, 18 Feb 2008 05:46:22 +0000 (16:46 +1100)]
Removed all hard-coded modes

11 years agoMaking use of dynamically generated modes by default
Jean-Marc Valin [Mon, 18 Feb 2008 05:27:49 +0000 (16:27 +1100)]
Making use of dynamically generated modes by default

11 years agoCan now easily use modes generated on the fly.
Jean-Marc Valin [Mon, 18 Feb 2008 04:49:37 +0000 (15:49 +1100)]
Can now easily use modes generated on the fly.

11 years agoCan now generate the entire mode struct
Jean-Marc Valin [Mon, 18 Feb 2008 03:45:11 +0000 (14:45 +1100)]
Can now generate the entire mode struct

11 years agopbands code seems to work, cleaned up useless junk in mode definitions
Jean-Marc Valin [Mon, 18 Feb 2008 02:37:40 +0000 (13:37 +1100)]
pbands code seems to work, cleaned up useless junk in mode definitions

11 years agopband generation wip
Jean-Marc Valin [Mon, 18 Feb 2008 01:16:41 +0000 (12:16 +1100)]
pband generation wip

11 years agoSome work trying to generate the modes on the fly
Jean-Marc Valin [Sun, 17 Feb 2008 11:41:29 +0000 (22:41 +1100)]
Some work trying to generate the modes on the fly

11 years agoExperimental ld51 mode (needs more work)
Jean-Marc Valin [Fri, 15 Feb 2008 03:20:29 +0000 (14:20 +1100)]
Experimental ld51 mode (needs more work)

11 years agoFix from speex svn 14504.
Gregory Maxwell [Thu, 14 Feb 2008 21:11:37 +0000 (16:11 -0500)]
Fix from speex svn 14504.

11 years agoFix handling of truncated ogg packets.
Gregory Maxwell [Thu, 14 Feb 2008 21:02:25 +0000 (16:02 -0500)]
Fix handling of truncated ogg packets.

11 years agoOption use of SSE intrinsics (still trying to convince gcc not to move the
Jean-Marc Valin [Thu, 14 Feb 2008 13:34:01 +0000 (00:34 +1100)]
Option use of SSE intrinsics (still trying to convince gcc not to move the
input data across all registers)

11 years agoMore VQ comments/cleanup, disabled ineffective optimisation
Jean-Marc Valin [Thu, 14 Feb 2008 10:29:50 +0000 (21:29 +1100)]
More VQ comments/cleanup, disabled ineffective optimisation

11 years agominor cleanup/commenting to vq search
Jean-Marc Valin [Thu, 14 Feb 2008 05:58:04 +0000 (16:58 +1100)]
minor cleanup/commenting to vq search

11 years agovq search is now moving much less data around
Jean-Marc Valin [Thu, 14 Feb 2008 05:46:50 +0000 (16:46 +1100)]
vq search is now moving much less data around

11 years agosetting nb channels automatically from the mode.
Jean-Marc Valin [Thu, 14 Feb 2008 04:21:01 +0000 (15:21 +1100)]
setting nb channels automatically from the mode.

11 years agoNow no divisions required in the cwrs code
Jean-Marc Valin [Thu, 14 Feb 2008 04:02:04 +0000 (15:02 +1100)]
Now no divisions required in the cwrs code

11 years agoReduced useless calls to ncwrs64() by half.
Jean-Marc Valin [Thu, 14 Feb 2008 03:18:19 +0000 (14:18 +1100)]
Reduced useless calls to ncwrs64() by half.

11 years agomoved pulse [en|de]coding to cwrs.c
Jean-Marc Valin [Thu, 14 Feb 2008 02:50:44 +0000 (13:50 +1100)]
moved pulse [en|de]coding to cwrs.c

11 years agoSpeeded up cwrsi and icwrs by at least an order of magnitude. Now using
Jean-Marc Valin [Thu, 14 Feb 2008 00:55:01 +0000 (11:55 +1100)]
Speeded up cwrsi and icwrs by at least an order of magnitude. Now using
the recursive definition of ncwrs instead of computing it from scratch
every time.

11 years agoSimplified exp_spreading by unifying both directions. Have to admit I don't
Jean-Marc Valin [Wed, 13 Feb 2008 06:41:37 +0000 (17:41 +1100)]
Simplified exp_spreading by unifying both directions. Have to admit I don't
fully understand why that works!

11 years agoensures that the celt header is written as little endian, and also checks
Conrad Parker [Wed, 13 Feb 2008 05:31:36 +0000 (16:31 +1100)]
ensures that the celt header is written as little endian, and also checks
that the passed size parameter is not < 56.

11 years agoskeleton endianness fixes
Conrad Parker [Wed, 13 Feb 2008 05:27:21 +0000 (16:27 +1100)]
skeleton endianness fixes

11 years agodoing the folding properly.
Jean-Marc Valin [Wed, 13 Feb 2008 05:00:10 +0000 (16:00 +1100)]
doing the folding properly.

11 years agoDon't try to install the testcases
Jean-Marc Valin [Wed, 13 Feb 2008 03:23:25 +0000 (14:23 +1100)]
Don't try to install the testcases

11 years agoset extra headers to 0, rather than 0xdeadbeef
Conrad Parker [Wed, 13 Feb 2008 03:12:51 +0000 (14:12 +1100)]
set extra headers to 0, rather than 0xdeadbeef

11 years agooff-by-one fix as reported by ogg.k.ogg.k and recently committed in
Conrad Parker [Wed, 13 Feb 2008 02:22:19 +0000 (13:22 +1100)]
off-by-one fix as reported by ogg.k.ogg.k and recently committed in
liboggz and oggenc

11 years agoREADME update
Jean-Marc Valin [Wed, 13 Feb 2008 02:07:11 +0000 (13:07 +1100)]
README update

11 years agoscales down even further in bit-rate
Jean-Marc Valin [Wed, 13 Feb 2008 01:12:16 +0000 (12:12 +1100)]
scales down even further in bit-rate

11 years agoIntroducing a (very) crude budget for the energy encoder.
Jean-Marc Valin [Wed, 13 Feb 2008 00:37:41 +0000 (11:37 +1100)]
Introducing a (very) crude budget for the energy encoder.

11 years agoFixed stereo regression introduced in 05686a5d6e366d3a067c39f1b8567def7baa450d
Jean-Marc Valin [Tue, 12 Feb 2008 13:08:29 +0000 (00:08 +1100)]
Fixed stereo regression introduced in 05686a5d6e366d3a067c39f1b8567def7baa450d
also another stereo bug fixed for static-array ncwrs64().

11 years agominor optimisation+tuning of vq search
Jean-Marc Valin [Tue, 12 Feb 2008 12:00:18 +0000 (23:00 +1100)]
minor optimisation+tuning of vq search

11 years agobit of cleaning up
Jean-Marc Valin [Tue, 12 Feb 2008 06:40:27 +0000 (17:40 +1100)]
bit of cleaning up

11 years agoUpdating only the L-best entries in alg_quant() that are useful.
Jean-Marc Valin [Tue, 12 Feb 2008 06:21:14 +0000 (17:21 +1100)]
Updating only the L-best entries in alg_quant() that are useful.

11 years agoCopying pointers is faster than copying arrays (who knew!).
Jean-Marc Valin [Tue, 12 Feb 2008 04:05:01 +0000 (15:05 +1100)]
Copying pointers is faster than copying arrays (who knew!).

11 years agoAllowing the quantiser serch to put more than one pulse at one,
Jean-Marc Valin [Tue, 12 Feb 2008 02:48:48 +0000 (13:48 +1100)]
Allowing the quantiser serch to put more than one pulse at one,
giving a (minor) speedup. Also fixed optional memory-based ncwrs64().

11 years agooptional fast ncwrs64() implementation (copied from ncwrs) requiring
Jean-Marc Valin [Tue, 12 Feb 2008 00:32:20 +0000 (11:32 +1100)]
optional fast ncwrs64() implementation (copied from ncwrs) requiring
statis memory allocation (not enabled by default)

11 years agoAs extra safety, make sure not to use pitch prediction when it would make
Jean-Marc Valin [Mon, 11 Feb 2008 06:54:28 +0000 (17:54 +1100)]
As extra safety, make sure not to use pitch prediction when it would make
the "effective gain" too high (>10 dB).

11 years agoNo longer encoding the pitch index if the gain is zero anyway.
Jean-Marc Valin [Mon, 11 Feb 2008 05:55:34 +0000 (16:55 +1100)]
No longer encoding the pitch index if the gain is zero anyway.

11 years agoRe-ordered the parameters in the stream: [energy, pitch index, pitch gains]
Jean-Marc Valin [Mon, 11 Feb 2008 05:44:48 +0000 (16:44 +1100)]
Re-ordered the parameters in the stream: [energy, pitch index, pitch gains]
Also fixed a bug that was exposed by the change (and removed some warnings)

11 years agoOops. Fixed spreading function for stereo
Jean-Marc Valin [Mon, 11 Feb 2008 05:17:42 +0000 (16:17 +1100)]
Oops. Fixed spreading function for stereo

11 years agoEnabling "plain folding" in case we don't even have enough bits for intra-frame
Jean-Marc Valin [Mon, 11 Feb 2008 04:33:53 +0000 (15:33 +1100)]
Enabling "plain folding" in case we don't even have enough bits for intra-frame
prediction

11 years agoLimiting intra-frame prediction codebook to 32 entries (plus sign)
Jean-Marc Valin [Mon, 11 Feb 2008 02:52:44 +0000 (13:52 +1100)]
Limiting intra-frame prediction codebook to 32 entries (plus sign)

11 years agoDecays corresponding to the psychoacoustic spreading function are now
Jean-Marc Valin [Mon, 11 Feb 2008 00:50:20 +0000 (11:50 +1100)]
Decays corresponding to the psychoacoustic spreading function are now
pre-computed (instead of computing tons of pow() uselessly all the time)

11 years agominor tweak to pitch weighting function, disabled some code that doesn't
Jean-Marc Valin [Mon, 11 Feb 2008 00:15:33 +0000 (11:15 +1100)]
minor tweak to pitch weighting function, disabled some code that doesn't
do anything yet.

11 years agoMore flexible energy quantisation with nearly no penalty.
Jean-Marc Valin [Sun, 10 Feb 2008 23:53:11 +0000 (10:53 +1100)]
More flexible energy quantisation with nearly no penalty.

11 years agoRemove multiplier-free version since we don't need it
Jean-Marc Valin [Sun, 10 Feb 2008 23:16:31 +0000 (10:16 +1100)]
Remove multiplier-free version since we don't need it

11 years agofixed leaked ritrev table
Jean-Marc Valin [Fri, 8 Feb 2008 05:08:40 +0000 (16:08 +1100)]
fixed leaked ritrev table

11 years agoEverything converted to use kiss-fft. Got rid of smallft and fftwrap.
Jean-Marc Valin [Fri, 8 Feb 2008 04:09:45 +0000 (15:09 +1100)]
Everything converted to use kiss-fft. Got rid of smallft and fftwrap.
Code much leaner now.

11 years agoSplit the radix functions into forward and backward versions, removed the
Jean-Marc Valin [Fri, 8 Feb 2008 03:21:20 +0000 (14:21 +1100)]
Split the radix functions into forward and backward versions, removed the
"inverse" flag from the state so it can be shared between the forward and
inverse transforms.

11 years agoMade pre-computed twiddles the same for forward and inverse FFT
Jean-Marc Valin [Fri, 8 Feb 2008 02:25:03 +0000 (13:25 +1100)]
Made pre-computed twiddles the same for forward and inverse FFT

11 years agoChanged ordering of real FFT freq data to something more aligned (it's not
Jean-Marc Valin [Fri, 8 Feb 2008 01:22:03 +0000 (12:22 +1100)]
Changed ordering of real FFT freq data to something more aligned (it's not
used anywhere yet).