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

11 years agoTweaks for slightly improving the handling of the last byte (still not
Jean-Marc Valin [Fri, 18 Jan 2008 05:28:11 +0000 (16:28 +1100)]
Tweaks for slightly improving the handling of the last byte (still not
perfect)

11 years agoReverted some of Timothy's changes to the range decoding that were causing decode...
jm@0101bb08-14d6-0310-b084-bc0e0c8e3800 [Fri, 18 Jan 2008 04:24:09 +0000 (04:24 +0000)]
Reverted some of Timothy's changes to the range decoding that were causing decode random decode problems at the end of the stream (but only once in a while).

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

11 years agoBig mode cleanup. Keeping only one mono and one stereo mode
Jean-Marc Valin [Fri, 18 Jan 2008 02:56:08 +0000 (13:56 +1100)]
Big mode cleanup. Keeping only one mono and one stereo mode

11 years agoFurther simplified the API by passing the rate directly to the
Jean-Marc Valin [Thu, 17 Jan 2008 11:43:05 +0000 (22:43 +1100)]
Further simplified the API by passing the rate directly to the
encode function. Also, trying to properly flush the bit packer
(still some problems left).

11 years agoUpdate ec_dec_bits64() to correspond to the new ec_enc_bits64(). Not sure why this...
tterribe [Thu, 17 Jan 2008 07:51:18 +0000 (07:51 +0000)]
Update ec_dec_bits64() to correspond to the new ec_enc_bits64(). Not sure why this wasn't committed before.

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

11 years agoEnabled pure CBR, though there's still some decoder issues.
Jean-Marc Valin [Thu, 17 Jan 2008 05:57:18 +0000 (16:57 +1100)]
Enabled pure CBR, though there's still some decoder issues.

11 years agoClose to getting CBR working
Jean-Marc Valin [Thu, 17 Jan 2008 03:07:55 +0000 (14:07 +1100)]
Close to getting CBR working

11 years agoLooks like the bit allocation code is mostly working. Just need to actually
Jean-Marc Valin [Wed, 16 Jan 2008 23:58:38 +0000 (10:58 +1100)]
Looks like the bit allocation code is mostly working. Just need to actually
use it now.

11 years agoWorking allocation interpolation code
Jean-Marc Valin [Wed, 16 Jan 2008 11:04:17 +0000 (22:04 +1100)]
Working allocation interpolation code

11 years agomore bit allocation wip
Jean-Marc Valin [Wed, 16 Jan 2008 06:16:04 +0000 (17:16 +1100)]
more bit allocation wip

11 years agobit allocation wip (untested)
Jean-Marc Valin [Tue, 15 Jan 2008 05:33:21 +0000 (16:33 +1100)]
bit allocation wip (untested)

11 years agoversion number bump
Jean-Marc Valin [Tue, 15 Jan 2008 02:17:35 +0000 (13:17 +1100)]
version number bump

11 years agoearly code for bit-rate management
Jean-Marc Valin [Mon, 14 Jan 2008 06:39:01 +0000 (17:39 +1100)]
early code for bit-rate management

11 years agoA bit of tuning and early work on bit allocation
Jean-Marc Valin [Sat, 12 Jan 2008 12:38:01 +0000 (23:38 +1100)]
A bit of tuning and early work on bit allocation

11 years agoAdd ec_dec_tell() to report the same information as ec_enc_tell() decode side. Remove...
tterribe [Fri, 11 Jan 2008 05:51:49 +0000 (05:51 +0000)]
Add ec_dec_tell() to report the same information as ec_enc_tell() decode side. Remove ec_enc_tell() and replace it with ec_enc_tellf(): just request 0 fractional bits if you want an integer value.

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

11 years agoAdd ec_enc_tellf, which can return the number of bits used to fractional precision.
tterribe [Fri, 11 Jan 2008 05:12:17 +0000 (05:12 +0000)]
Add ec_enc_tellf, which can return the number of bits used to fractional precision.

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

11 years agoAdd oc_enc_tell to report an estimate of the number of bits used so far.
tterribe [Fri, 11 Jan 2008 03:13:50 +0000 (03:13 +0000)]
Add oc_enc_tell to report an estimate of the number of bits used so far.

Remove the special case for 0 in EC_ILOG, as we never pass it 0 and this
 generates slightly better code.

Update ec_enc_bits64 to split the encoded values along word boundaries...
 this should generate slightly better code, as well as fix a subtle bug (the
 proper bits were not being masked out of the low part).
However, this will render previous streams that used this function undecodable
 (to my knowledge, no one is actually using it yet).

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

11 years agoDoing stereo mixing adaptively based on amplitude difference.
Jean-Marc Valin [Fri, 11 Jan 2008 03:02:07 +0000 (14:02 +1100)]
Doing stereo mixing adaptively based on amplitude difference.

11 years agoConversion to 18-band split and fixed a few related bugs.
Jean-Marc Valin [Fri, 11 Jan 2008 00:24:22 +0000 (11:24 +1100)]
Conversion to 18-band split and fixed a few related bugs.

11 years agooops, trying not to overflow the 64-bit max allocation.
Jean-Marc Valin [Thu, 10 Jan 2008 06:26:30 +0000 (17:26 +1100)]
oops, trying not to overflow the 64-bit max allocation.

11 years agoTuning of the stereo mode, including conversion to the 18-band split.
Jean-Marc Valin [Thu, 10 Jan 2008 06:02:36 +0000 (17:02 +1100)]
Tuning of the stereo mode, including conversion to the 18-band split.

11 years agoStereo decoding working again (fixed a few issues in the encoder at the same
Jean-Marc Valin [Thu, 10 Jan 2008 04:34:00 +0000 (15:34 +1100)]
Stereo decoding working again (fixed a few issues in the encoder at the same
time)

11 years agoMore stereo work (doing mid-side quantisation of the energy)
Jean-Marc Valin [Wed, 9 Jan 2008 04:31:43 +0000 (15:31 +1100)]
More stereo work (doing mid-side quantisation of the energy)

11 years agoSome stereo work (breaks the decoder for now)
Jean-Marc Valin [Tue, 8 Jan 2008 23:44:18 +0000 (10:44 +1100)]
Some stereo work (breaks the decoder for now)

11 years agoUpdated the 18-band mode (mode0) to use the low-overlap MDCT
Jean-Marc Valin [Tue, 8 Jan 2008 05:22:37 +0000 (16:22 +1100)]
Updated the 18-band mode (mode0) to use the low-overlap MDCT

11 years agoOops, forgot to add the VQ table!
Jean-Marc Valin [Tue, 8 Jan 2008 00:29:37 +0000 (11:29 +1100)]
Oops, forgot to add the VQ table!

11 years agoSwitched to mdct mask computation
Jean-Marc Valin [Mon, 7 Jan 2008 12:04:43 +0000 (23:04 +1100)]
Switched to mdct mask computation

11 years agoPseudo-masking curve for the MDCT
Jean-Marc Valin [Mon, 7 Jan 2008 02:36:01 +0000 (13:36 +1100)]
Pseudo-masking curve for the MDCT

11 years agoCompleted low-overlap MDCT support by reducing the synthesis
Jean-Marc Valin [Sat, 5 Jan 2008 11:49:23 +0000 (22:49 +1100)]
Completed low-overlap MDCT support by reducing the synthesis
latency as well.

11 years agoNow using 8 bands for the pitch gain, with a 128-entry codebook.
Jean-Marc Valin [Sat, 5 Jan 2008 02:32:32 +0000 (13:32 +1100)]
Now using 8 bands for the pitch gain, with a 128-entry codebook.

11 years agoAllowing reduced overlap MDCTs as an alternative
Jean-Marc Valin [Thu, 3 Jan 2008 09:53:01 +0000 (20:53 +1100)]
Allowing reduced overlap MDCTs as an alternative
to multiple MDCTs per frame. Not complete yet.

11 years agoUpdated pulse coding to simpler (slightly faster) code included with
Timothy B. Terriberry [Mon, 31 Dec 2007 20:18:06 +0000 (07:18 +1100)]
Updated pulse coding to simpler (slightly faster) code included with
http://people.xiph.org/~tterribe/notes/cwrs.html
Removed dead code.

11 years agoComments/cleanup, no code change
Jean-Marc Valin [Mon, 31 Dec 2007 10:27:54 +0000 (21:27 +1100)]
Comments/cleanup, no code change

11 years agoGot the intra-band prediction/copy to work correctly with
Jean-Marc Valin [Mon, 31 Dec 2007 05:12:12 +0000 (16:12 +1100)]
Got the intra-band prediction/copy to work correctly with
pulse spreading (and to work at all).

11 years agoSpreading function inside quant_bands()
Jean-Marc Valin [Sun, 30 Dec 2007 09:39:14 +0000 (20:39 +1100)]
Spreading function inside quant_bands()

11 years agoDoing multiple rotation passes instead of one produces better pulse spreading.
Jean-Marc Valin [Sat, 29 Dec 2007 13:17:44 +0000 (00:17 +1100)]
Doing multiple rotation passes instead of one produces better pulse spreading.

11 years agomore exp_rotation() cleanup
Jean-Marc Valin [Sat, 29 Dec 2007 13:06:10 +0000 (00:06 +1100)]
more exp_rotation() cleanup

11 years agosimplified exp_rotation()
Jean-Marc Valin [Sat, 29 Dec 2007 13:02:00 +0000 (00:02 +1100)]
simplified exp_rotation()

11 years agoAdded a DCT in time direction when multiple MDCTs are used within the same
Jean-Marc Valin [Sat, 29 Dec 2007 12:27:42 +0000 (23:27 +1100)]
Added a DCT in time direction when multiple MDCTs are used within the same
frame.

11 years agoPropagating perceptual weighting around (not used yet).
Jean-Marc Valin [Fri, 14 Dec 2007 02:47:04 +0000 (13:47 +1100)]
Propagating perceptual weighting around (not used yet).

11 years agoBand energy quantisation info now in the mode directly
Jean-Marc Valin [Thu, 13 Dec 2007 03:59:30 +0000 (14:59 +1100)]
Band energy quantisation info now in the mode directly

11 years agoWorking on some stability issues (appears to be solved by making the pitch
Jean-Marc Valin [Tue, 11 Dec 2007 13:45:15 +0000 (00:45 +1100)]
Working on some stability issues (appears to be solved by making the pitch
projection less aggressive). Also, fixed a 64-bit overflow in the stereo mode
and added a "band rotation" function.

11 years agoFixed parallel build
Jean-Marc Valin [Tue, 11 Dec 2007 07:01:22 +0000 (18:01 +1100)]
Fixed parallel build

11 years agoAdded support for codebooks up to 64 bits.
Jean-Marc Valin [Tue, 11 Dec 2007 03:52:56 +0000 (14:52 +1100)]
Added support for codebooks up to 64 bits.

11 years agoAdded ec_{enc|dec}_bits64 and ec_{enc|dec}_bits64.
Timothy B. Terriberry [Tue, 11 Dec 2007 02:25:57 +0000 (13:25 +1100)]
Added ec_{enc|dec}_bits64 and ec_{enc|dec}_bits64.
Updated broken paper URLs.
Cleaned up non-multiply-free range coder documentation (e.g., stop claiming
it's multiply-free).

11 years agoDocumentation fixes and a couple of other minor edits.
Timothy B. Terriberry [Tue, 11 Dec 2007 02:25:00 +0000 (13:25 +1100)]
Documentation fixes and a couple of other minor edits.

11 years agoFixed stereo version of the pitch estimator
Jean-Marc Valin [Mon, 10 Dec 2007 06:57:19 +0000 (17:57 +1100)]
Fixed stereo version of the pitch estimator

11 years agoStereo almost works now (still need to fix the pitch estimate and add more
Jean-Marc Valin [Mon, 10 Dec 2007 06:10:29 +0000 (17:10 +1100)]
Stereo almost works now (still need to fix the pitch estimate and add more
pulses)

11 years agoAdding stereo support. Doesn't work yet, but at least it doesn't break
Jean-Marc Valin [Mon, 10 Dec 2007 05:54:17 +0000 (16:54 +1100)]
Adding stereo support. Doesn't work yet, but at least it doesn't break
mono

11 years agoComments on the spreading function
Jean-Marc Valin [Mon, 10 Dec 2007 02:13:58 +0000 (13:13 +1100)]
Comments on the spreading function

11 years agoAdded a simple psychoacoustic model (still needs a lot of work).
Jean-Marc Valin [Sun, 9 Dec 2007 14:28:34 +0000 (01:28 +1100)]
Added a simple psychoacoustic model (still needs a lot of work).

11 years agoFixed a stupid error caused by kdevelop in the configure.ac
Jean-Marc Valin [Sun, 9 Dec 2007 02:02:25 +0000 (13:02 +1100)]
Fixed a stupid error caused by kdevelop in the configure.ac

11 years agoSome cleaning up, a few less warnings and the decoder no longer does an
Jean-Marc Valin [Sat, 8 Dec 2007 14:19:36 +0000 (01:19 +1100)]
Some cleaning up, a few less warnings and the decoder no longer does an
infinitete loop in Laplace decoding when the data is corrupted.

11 years agoUpdated README
Jean-Marc Valin [Sat, 8 Dec 2007 13:55:49 +0000 (00:55 +1100)]
Updated README

11 years agocode cleanup: all inverse MDCTs in the same function
Jean-Marc Valin [Fri, 7 Dec 2007 14:13:34 +0000 (01:13 +1100)]
code cleanup: all inverse MDCTs in the same function

11 years agoVery basic packet loss concealment code
Jean-Marc Valin [Fri, 7 Dec 2007 13:56:04 +0000 (00:56 +1100)]
Very basic packet loss concealment code

11 years agoAnother experimental mode with longer frames.
Jean-Marc Valin [Fri, 7 Dec 2007 13:27:10 +0000 (00:27 +1100)]
Another experimental mode with longer frames.

11 years agoA bit of quality tuning, plus created a higher quality mode
Jean-Marc Valin [Fri, 7 Dec 2007 13:08:37 +0000 (00:08 +1100)]
A bit of quality tuning, plus created a higher quality mode

11 years agoNo more cheating, everything fully quantised
Jean-Marc Valin [Fri, 7 Dec 2007 11:46:47 +0000 (22:46 +1100)]
No more cheating, everything fully quantised

11 years agoMoving to non-multiply-free entropy coder
Jean-Marc Valin [Fri, 7 Dec 2007 11:25:31 +0000 (22:25 +1100)]
Moving to non-multiply-free entropy coder

11 years agoA bit of probability tuning to reduce bit-rate variations
Jean-Marc Valin [Fri, 7 Dec 2007 08:12:51 +0000 (19:12 +1100)]
A bit of probability tuning to reduce bit-rate variations

11 years agooops, forgot laplace.h
Jean-Marc Valin [Fri, 7 Dec 2007 07:54:59 +0000 (18:54 +1100)]
oops, forgot laplace.h

11 years agodebug code
Jean-Marc Valin [Fri, 7 Dec 2007 07:02:56 +0000 (18:02 +1100)]
debug code

11 years agoActually enabled the probability model
Jean-Marc Valin [Fri, 7 Dec 2007 06:58:44 +0000 (17:58 +1100)]
Actually enabled the probability model

11 years agoDecent starting point for energy probabilities
Jean-Marc Valin [Fri, 7 Dec 2007 06:48:18 +0000 (17:48 +1100)]
Decent starting point for energy probabilities

11 years agoEnergy is now Laplace-encoded (very poorly for now)
Jean-Marc Valin [Fri, 7 Dec 2007 06:10:14 +0000 (17:10 +1100)]
Energy is now Laplace-encoded (very poorly for now)

11 years agoenergy decoding partially done (cheating a bit)
Jean-Marc Valin [Fri, 7 Dec 2007 05:40:39 +0000 (16:40 +1100)]
energy decoding partially done (cheating a bit)

11 years agoFixed Laplace encoder
Jean-Marc Valin [Fri, 7 Dec 2007 05:06:27 +0000 (16:06 +1100)]
Fixed Laplace encoder

11 years agoMore work on decoding (still cheating)
Jean-Marc Valin [Fri, 7 Dec 2007 04:36:39 +0000 (15:36 +1100)]
More work on decoding (still cheating)

11 years agoCheating decoder now produces the same result as the encoder
Jean-Marc Valin [Fri, 7 Dec 2007 04:09:58 +0000 (15:09 +1100)]
Cheating decoder now produces the same result as the encoder

11 years agoNearly working cheating decoder.
Jean-Marc Valin [Fri, 7 Dec 2007 03:59:06 +0000 (14:59 +1100)]
Nearly working cheating decoder.

11 years agoMore decoding work
Jean-Marc Valin [Fri, 7 Dec 2007 03:20:01 +0000 (14:20 +1100)]
More decoding work

11 years agoAlgebraic codebook decoding (not tested yet)
Jean-Marc Valin [Fri, 7 Dec 2007 02:26:15 +0000 (13:26 +1100)]
Algebraic codebook decoding (not tested yet)

11 years agoAdded decoder code (not working yet)
Jean-Marc Valin [Fri, 7 Dec 2007 00:29:45 +0000 (11:29 +1100)]
Added decoder code (not working yet)

11 years agoMost of the Laplace encoding works, except that ec_decode() is still not giving
Jean-Marc Valin [Thu, 6 Dec 2007 23:56:25 +0000 (10:56 +1100)]
Most of the Laplace encoding works, except that ec_decode() is still not giving
me what I expect

11 years agoMore code for laplace decoding (doesn't work)
Jean-Marc Valin [Thu, 6 Dec 2007 22:50:22 +0000 (09:50 +1100)]
More code for laplace decoding (doesn't work)

11 years agoCode for encoding Laplace-distributed variables (doesn't work).
Jean-Marc Valin [Thu, 6 Dec 2007 14:40:02 +0000 (01:40 +1100)]
Code for encoding Laplace-distributed variables (doesn't work).

11 years agominor cleanup
Jean-Marc Valin [Thu, 6 Dec 2007 08:14:20 +0000 (19:14 +1100)]
minor cleanup

11 years agoFixed codebook entirely quantised
Jean-Marc Valin [Thu, 6 Dec 2007 06:44:09 +0000 (17:44 +1100)]
Fixed codebook entirely quantised

11 years agoproper COPYING file
Jean-Marc Valin [Thu, 6 Dec 2007 06:33:10 +0000 (17:33 +1100)]
proper COPYING file

11 years agoDoing init/reset of the entropy coder properly
Jean-Marc Valin [Thu, 6 Dec 2007 05:51:19 +0000 (16:51 +1100)]
Doing init/reset of the entropy coder properly

11 years agoSome work on index packing
Jean-Marc Valin [Thu, 6 Dec 2007 04:39:38 +0000 (15:39 +1100)]
Some work on index packing

11 years agoLinking with libentcode
Jean-Marc Valin [Thu, 6 Dec 2007 04:18:25 +0000 (15:18 +1100)]
Linking with libentcode

11 years agoMultiplier-free entropy coder
Timothy B. Terriberry [Thu, 6 Dec 2007 04:09:53 +0000 (15:09 +1100)]
Multiplier-free entropy coder