opus.git
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).

11 years agoFixed incorrect assumption about the number of bytes returned by the
Jean-Marc Valin [Fri, 8 Feb 2008 00:50:17 +0000 (11:50 +1100)]
Fixed incorrect assumption about the number of bytes returned by the
entropy coder. All testcases pass again.

11 years agoReal FFT cleanup, plus some testcases
Jean-Marc Valin [Thu, 7 Feb 2008 23:48:15 +0000 (10:48 +1100)]
Real FFT cleanup, plus some testcases

11 years agoNow using an MDCT implementation I can actually understand.
Jean-Marc Valin [Thu, 7 Feb 2008 01:24:26 +0000 (12:24 +1100)]
Now using an MDCT implementation I can actually understand.

11 years agoRe-enabled intra-frame prediction, which seems to have exposed a few issues
Jean-Marc Valin [Thu, 7 Feb 2008 10:14:16 +0000 (21:14 +1100)]
Re-enabled intra-frame prediction, which seems to have exposed a few issues
with the entropy coder.

11 years agoAdd a test for tell(). Turns out we can make it fail by writing zeros.
Jean-Marc Valin [Thu, 7 Feb 2008 09:21:57 +0000 (20:21 +1100)]
Add a test for tell(). Turns out we can make it fail by writing zeros.

11 years agoFix reporting of bit-rate in decoder
Jean-Marc Valin [Sat, 2 Feb 2008 10:05:11 +0000 (21:05 +1100)]
Fix reporting of bit-rate in decoder

11 years agoFixed a typo and removed an old warning from speexenc. Also, using more useful
Jean-Marc Valin [Sat, 2 Feb 2008 09:15:51 +0000 (20:15 +1100)]
Fixed a typo and removed an old warning from speexenc. Also, using more useful
bitrate defaults.

11 years agocouple fixes to Ogg encoder/decoder
Jean-Marc Valin [Fri, 1 Feb 2008 12:25:05 +0000 (23:25 +1100)]
couple fixes to Ogg encoder/decoder

11 years agoceltenc and celtdec work for stereo as well.
Jean-Marc Valin [Fri, 1 Feb 2008 12:18:22 +0000 (23:18 +1100)]
celtenc and celtdec work for stereo as well.

11 years agooops, forgot the makefile
Jean-Marc Valin [Fri, 1 Feb 2008 07:54:07 +0000 (18:54 +1100)]
oops, forgot the makefile

11 years agobit of cleaning up, default sampling rate
Jean-Marc Valin [Fri, 1 Feb 2008 06:33:01 +0000 (17:33 +1100)]
bit of cleaning up, default sampling rate

11 years agoGot the Ogg encoder and decoder to (barely) work.
Jean-Marc Valin [Fri, 1 Feb 2008 05:27:38 +0000 (16:27 +1100)]
Got the Ogg encoder and decoder to (barely) work.

11 years agooops, type safety issue resolved
Jean-Marc Valin [Thu, 31 Jan 2008 23:45:45 +0000 (10:45 +1100)]
oops, type safety issue resolved

11 years agoclean up... oh and actually committed the header definition
Jean-Marc Valin [Thu, 31 Jan 2008 22:02:05 +0000 (09:02 +1100)]
clean up... oh and actually committed the header definition

11 years agoFixed the default int32 type which was wrong on amd64 (and added testcase).
Jean-Marc Valin [Thu, 31 Jan 2008 12:43:10 +0000 (23:43 +1100)]
Fixed the default int32 type which was wrong on amd64 (and added testcase).
Also, added an Ogg encoder (doesn't work quite yet).

11 years agoGetting closer to 0.1.0
Jean-Marc Valin [Thu, 31 Jan 2008 06:37:28 +0000 (17:37 +1100)]
Getting closer to 0.1.0

11 years ago"make check" now actually tried to encode and decode to see if things work
Jean-Marc Valin [Thu, 31 Jan 2008 06:34:27 +0000 (17:34 +1100)]
"make check" now actually tried to encode and decode to see if things work
(need to have test files installed otherwise it'll just pass by default)

11 years agoMode info
Jean-Marc Valin [Thu, 31 Jan 2008 05:47:16 +0000 (16:47 +1100)]
Mode info

11 years agoMoving everything to the same type abstraction (sort of).
Jean-Marc Valin [Thu, 31 Jan 2008 03:26:29 +0000 (14:26 +1100)]
Moving everything to the same type abstraction (sort of).

11 years agocleaning up
Jean-Marc Valin [Wed, 30 Jan 2008 23:05:39 +0000 (10:05 +1100)]
cleaning up

11 years agotype abstraction header and header definition (still incomplete)
Jean-Marc Valin [Wed, 30 Jan 2008 22:59:15 +0000 (09:59 +1100)]
type abstraction header and header definition (still incomplete)

11 years agoAdded a check to make sure the encoder signal matches that of the decoder
Jean-Marc Valin [Mon, 28 Jan 2008 21:17:50 +0000 (08:17 +1100)]
Added a check to make sure the encoder signal matches that of the decoder

11 years agoremove prob{enc,dec,mod} that were no longer needed
Jean-Marc Valin [Mon, 28 Jan 2008 21:04:01 +0000 (08:04 +1100)]
remove prob{enc,dec,mod} that were no longer needed

11 years ago64-bit test for cwrs
Jean-Marc Valin [Mon, 28 Jan 2008 12:01:58 +0000 (23:01 +1100)]
64-bit test for cwrs

11 years agotestcase for 32-bit pulse encoding/decoding
Jean-Marc Valin [Mon, 28 Jan 2008 11:41:55 +0000 (22:41 +1100)]
testcase for 32-bit pulse encoding/decoding

11 years agoMoved the content of libentcode into libcelt to reduce dependencies,
Jean-Marc Valin [Mon, 28 Jan 2008 11:28:54 +0000 (22:28 +1100)]
Moved the content of libentcode into libcelt to reduce dependencies,
especially now that we have a custom version of that code anyway. Moved
the test code to tests/

11 years agoBit of cleaning up in the byte dumping part. Making use of any remaining bit(s)
Jean-Marc Valin [Sun, 27 Jan 2008 06:34:35 +0000 (17:34 +1100)]
Bit of cleaning up in the byte dumping part. Making use of any remaining bit(s)
to do error detection in the decoder.

11 years agoRemove end-byte handling to allow arbitrary padding with zeros for CBR.
Timothy B. Terriberry [Fri, 25 Jan 2008 03:28:58 +0000 (22:28 -0500)]
Remove end-byte handling to allow arbitrary padding with zeros for CBR.

From d28a530115ee7c739f12a6afb7e233cd29f64869 Mon Sep 17 00:00:00 2001
From: Timothy B. Terriberry <tterribe@xiph.org>
Date: Thu, 24 Jan 2008 21:56:48 -0500
Subject: [PATCH] Remove end-byte handling to allow arbitrary padding with zeros for CBR.

11 years agoActually free test data vectors in the new random stream tests.
tterribe [Wed, 23 Jan 2008 23:10:28 +0000 (23:10 +0000)]
Actually free test data vectors in the new random stream tests.

git-svn-id: http://svn.xiph.org/trunk/ghost@14428 0101bb08-14d6-0310-b084-bc0e0c8e3800

11 years agoFix the bug that was causing the last byte of the stream to be returned incorrectly...
tterribe [Wed, 23 Jan 2008 23:04:43 +0000 (23:04 +0000)]
Fix the bug that was causing the last byte of the stream to be returned incorrectly, as well as undo jm's reversion, which can cause ec_dec_tell() to operate incorrectly at the end of the stream.

A few other minor updates are included as well.

git-svn-id: http://svn.xiph.org/trunk/ghost@14427 0101bb08-14d6-0310-b084-bc0e0c8e3800

11 years agoMaking the library usable by other projects (install things properly, added
Jean-Marc Valin [Tue, 22 Jan 2008 02:16:36 +0000 (13:16 +1100)]
Making the library usable by other projects (install things properly, added
pkg-config file)