opus.git
11 years agofixed-point: compression factor (alpha) now a 16-bit value (still internally
Jean-Marc Valin [Wed, 27 Feb 2008 05:17:39 +0000 (16:17 +1100)]
fixed-point: compression factor (alpha) now a 16-bit value (still internally
converted to float though)

11 years agofixed-point: converted pitch_quant_bands() -- that one was an easy one-liner
Jean-Marc Valin [Wed, 27 Feb 2008 04:44:18 +0000 (15:44 +1100)]
fixed-point: converted pitch_quant_bands() -- that one was an easy one-liner

11 years agofixed-point: converted compute_pitch_gain() and removed the energy-based
Jean-Marc Valin [Wed, 27 Feb 2008 04:35:43 +0000 (15:35 +1100)]
fixed-point: converted compute_pitch_gain() and removed the energy-based
weighting that didn't seem to help anyway.

11 years agoFixing pi again before another massive public outcry
Jean-Marc Valin [Wed, 27 Feb 2008 03:07:45 +0000 (14:07 +1100)]
Fixing pi again before another massive public outcry

11 years agofixed-point: exp_rotation() mostly converted (still need to convert the cos/sin)
Jean-Marc Valin [Wed, 27 Feb 2008 02:49:54 +0000 (13:49 +1100)]
fixed-point: exp_rotation() mostly converted (still need to convert the cos/sin)

11 years agofixed-point: no float vars left (and nearly no float ops left) in celt.c
Jean-Marc Valin [Wed, 27 Feb 2008 01:09:50 +0000 (12:09 +1100)]
fixed-point: no float vars left (and nearly no float ops left) in celt.c

11 years agofixed-point: log-energy for previous frame now a 16-bit value. This currently
Jean-Marc Valin [Wed, 27 Feb 2008 00:59:05 +0000 (11:59 +1100)]
fixed-point: log-energy for previous frame now a 16-bit value. This currently
intruduces a bit of an encoder-decoder mismatch (Q8 in dB), but it'll be
reduced when the interals of quant_energy_mono() are properly converted to
fixed-point and oldEBands gets rounded instead of truncated.

11 years agofixed-point: converted window to 16-bit value
Jean-Marc Valin [Wed, 27 Feb 2008 00:25:25 +0000 (11:25 +1100)]
fixed-point: converted window to 16-bit value

11 years agofixed-point: pre/de-emphasis converted.
Jean-Marc Valin [Wed, 27 Feb 2008 00:08:53 +0000 (11:08 +1100)]
fixed-point: pre/de-emphasis converted.

11 years agoReduced code duplication in vq.c by adding mix_pitch_and_residual() which
Jean-Marc Valin [Tue, 26 Feb 2008 23:09:48 +0000 (10:09 +1100)]
Reduced code duplication in vq.c by adding mix_pitch_and_residual() which
is used by both by the encoding and decoding functions.

11 years agoC90-fying ectest
Jean-Marc Valin [Tue, 26 Feb 2008 20:48:48 +0000 (07:48 +1100)]
C90-fying ectest

11 years agoAnother 16-bit fix.
Jean-Marc Valin [Tue, 26 Feb 2008 12:59:54 +0000 (23:59 +1100)]
Another 16-bit fix.

11 years agofixed-point: got stereo to work again by fixing renormalise_bands()
Jean-Marc Valin [Tue, 26 Feb 2008 09:32:24 +0000 (20:32 +1100)]
fixed-point: got stereo to work again by fixing renormalise_bands()

11 years agofixed-point: celt_pgain_t now a 16-bit value (Q15)
Jean-Marc Valin [Tue, 26 Feb 2008 06:02:08 +0000 (17:02 +1100)]
fixed-point: celt_pgain_t now a 16-bit value (Q15)

11 years agocelt_mask_t for masking curves
Jean-Marc Valin [Tue, 26 Feb 2008 05:43:04 +0000 (16:43 +1100)]
celt_mask_t for masking curves

11 years agoRemoved useless masking curve for current frame and ignored Fs argument to
Jean-Marc Valin [Tue, 26 Feb 2008 05:35:19 +0000 (16:35 +1100)]
Removed useless masking curve for current frame and ignored Fs argument to
masking computation functions.

11 years agopitch gain is now celt_pgain_t
Jean-Marc Valin [Tue, 26 Feb 2008 05:19:03 +0000 (16:19 +1100)]
pitch gain is now celt_pgain_t

11 years agofixed-point: band energy now a 32-bit value. It might have (barely) fix into
Jean-Marc Valin [Tue, 26 Feb 2008 04:41:51 +0000 (15:41 +1100)]
fixed-point: band energy now a 32-bit value. It might have (barely) fix into
16-bit, but at this point, it's not worth the trouble and loss of accuracy.

11 years agofixed-point: added a celt_ener_t type for band energy.
Jean-Marc Valin [Tue, 26 Feb 2008 03:46:26 +0000 (14:46 +1100)]
fixed-point: added a celt_ener_t type for band energy.

11 years agoMinus a bunch of warnings when enabling alloca()
Jean-Marc Valin [Tue, 26 Feb 2008 02:51:53 +0000 (13:51 +1100)]
Minus a bunch of warnings when enabling alloca()

11 years agoPut the channel count outside of the energy calculation. Increased the allowed
Jean-Marc Valin [Tue, 26 Feb 2008 02:48:16 +0000 (13:48 +1100)]
Put the channel count outside of the energy calculation. Increased the allowed
range for the mono encoder.

11 years agofixed-point: celt_norm_t now a 16-bit value.
Jean-Marc Valin [Tue, 26 Feb 2008 00:38:00 +0000 (11:38 +1100)]
fixed-point: celt_norm_t now a 16-bit value.

11 years ago16-bit fixes and warning fixes
Jean-Marc Valin [Mon, 25 Feb 2008 23:38:17 +0000 (10:38 +1100)]
16-bit fixes and warning fixes

11 years agoTrying to be nice with 16-bit chips.
Jean-Marc Valin [Mon, 25 Feb 2008 23:28:20 +0000 (10:28 +1100)]
Trying to be nice with 16-bit chips.

11 years agoCorrected the last digit of pi after massive public outcry :-)
Jean-Marc Valin [Mon, 25 Feb 2008 20:38:27 +0000 (07:38 +1100)]
Corrected the last digit of pi after massive public outcry :-)

11 years agoOgg decoder does gapless for the beginning of the file.
Jean-Marc Valin [Mon, 25 Feb 2008 06:58:21 +0000 (17:58 +1100)]
Ogg decoder does gapless for the beginning of the file.

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