opus.git
9 years agoMore recombining "infrastructure"
Jean-Marc Valin [Wed, 26 May 2010 03:54:56 +0000 (23:54 -0400)]
More recombining "infrastructure"

9 years agoCode for recombining bands (not enabled yet)
Jean-Marc Valin [Wed, 26 May 2010 03:15:14 +0000 (23:15 -0400)]
Code for recombining bands (not enabled yet)

9 years agoRemoving the rest of the >32-bit PVQ code
Jean-Marc Valin [Mon, 24 May 2010 13:02:35 +0000 (09:02 -0400)]
Removing the rest of the >32-bit PVQ code

9 years agoMinor code simplifications
Jean-Marc Valin [Fri, 21 May 2010 21:36:58 +0000 (17:36 -0400)]
Minor code simplifications

9 years agoDoing folding from the highest freq possible
Jean-Marc Valin [Fri, 21 May 2010 20:05:47 +0000 (16:05 -0400)]
Doing folding from the highest freq possible

(rather than the lowest)

9 years agoIncreasing the temporal resolution of transients
Jean-Marc Valin [Fri, 21 May 2010 19:44:06 +0000 (15:44 -0400)]
Increasing the temporal resolution of transients

Apply a one-level Haar transform (or Hadamard) on each short MDCT
to nearly double the time-domain resolution.

9 years agoImproving the transient detection
Jean-Marc Valin [Fri, 21 May 2010 18:18:38 +0000 (14:18 -0400)]
Improving the transient detection

When a transient occurs in the overlap between two frames, we
now make sure that both these frames are coded as transients

9 years agoSplitting transients in time domain
Jean-Marc Valin [Fri, 21 May 2010 17:58:51 +0000 (13:58 -0400)]
Splitting transients in time domain

9 years agoMoving code to quant_band()
Jean-Marc Valin [Fri, 21 May 2010 14:44:11 +0000 (10:44 -0400)]
Moving code to quant_band()

9 years agoTuning/cleanup of angle quantization
Jean-Marc Valin [Fri, 21 May 2010 11:54:59 +0000 (07:54 -0400)]
Tuning/cleanup of angle quantization

9 years agoGetting rid of PVQ-level split
Jean-Marc Valin [Fri, 21 May 2010 04:26:03 +0000 (00:26 -0400)]
Getting rid of PVQ-level split

Adding one more level of band splitting so that splitting at the
PVQ encoding level is no longer necessary.

9 years agoMost 5ms bands now have even width
Jean-Marc Valin [Thu, 20 May 2010 02:02:02 +0000 (22:02 -0400)]
Most 5ms bands now have even width

9 years agoTuned the 5ms mode to have a band at 4 kHz and one at 8 kHz
Jean-Marc Valin [Wed, 19 May 2010 20:10:12 +0000 (16:10 -0400)]
Tuned the 5ms mode to have a band at 4 kHz and one at 8 kHz

9 years agoImplemented CELT_SET_START_BAND
Jean-Marc Valin [Wed, 19 May 2010 17:38:10 +0000 (13:38 -0400)]
Implemented CELT_SET_START_BAND

9 years agoSupport for passing your own ec state to the decoder
Jean-Marc Valin [Wed, 19 May 2010 16:05:02 +0000 (12:05 -0400)]
Support for passing your own ec state to the decoder

9 years agoSupport for passing your own ec state to the encoder
Jean-Marc Valin [Wed, 19 May 2010 15:56:57 +0000 (11:56 -0400)]
Support for passing your own ec state to the encoder

9 years agoSaving ~1 kB by using chars for the alloc table
Jean-Marc Valin [Sun, 16 May 2010 03:47:09 +0000 (23:47 -0400)]
Saving ~1 kB by using chars for the alloc table

Also a bunch of comments

9 years agoSharing more code between encode and decode (bis)
Jean-Marc Valin [Wed, 19 May 2010 03:19:19 +0000 (23:19 -0400)]
Sharing more code between encode and decode (bis)

9 years agoMerged encoding/decoding of mono/stereo
Jean-Marc Valin [Sat, 15 May 2010 02:12:33 +0000 (22:12 -0400)]
Merged encoding/decoding of mono/stereo

Now everything is done through quant_all_bands() and quant_band().

9 years agoTrying to prevent PVQ-level splits
Jean-Marc Valin [Fri, 14 May 2010 11:47:30 +0000 (07:47 -0400)]
Trying to prevent PVQ-level splits

We prevent as many as possible, but they can still occur if we
manage to reach the LN limit

9 years agoEntropy-coding the new split parameter.
Jean-Marc Valin [Fri, 14 May 2010 04:17:31 +0000 (00:17 -0400)]
Entropy-coding the new split parameter.

Uses a triangular PDF for coding the angle.

9 years agoNew band splitting method based on the stereo code
Jean-Marc Valin [Thu, 13 May 2010 04:04:57 +0000 (00:04 -0400)]
New band splitting method based on the stereo code

9 years agoStereo quantization also made more generic
Jean-Marc Valin [Wed, 12 May 2010 03:38:23 +0000 (23:38 -0400)]
Stereo quantization also made more generic

9 years agoMaking stereo code a bit more generic
Jean-Marc Valin [Wed, 12 May 2010 03:13:30 +0000 (23:13 -0400)]
Making stereo code a bit more generic

9 years agoTrivial code cleanup
Jean-Marc Valin [Wed, 12 May 2010 01:01:19 +0000 (21:01 -0400)]
Trivial code cleanup

9 years agoProper use of logN and logM for the offsets
Jean-Marc Valin [Tue, 11 May 2010 11:34:24 +0000 (07:34 -0400)]
Proper use of logN and logM for the offsets

9 years agoMaking stereo code use [un]quant_bands() as well
Jean-Marc Valin [Tue, 11 May 2010 01:55:36 +0000 (21:55 -0400)]
Making stereo code use [un]quant_bands() as well

9 years agoAllocation adjustment code in quand_band().
Jean-Marc Valin [Tue, 11 May 2010 01:27:00 +0000 (21:27 -0400)]
Allocation adjustment code in quand_band().

9 years agoCleaning up the folding code.
Jean-Marc Valin [Sun, 9 May 2010 23:45:31 +0000 (19:45 -0400)]
Cleaning up the folding code.

Folding now moved to alg_quant() and alg_unquant(). No more funny short block
alignment checks because bands now have to be aligned.

9 years agoAPI change: optional resynthesis
Jean-Marc Valin [Sat, 8 May 2010 00:30:22 +0000 (20:30 -0400)]
API change: optional resynthesis

The main encode call no longer takes a pointer for the optional resynthesis.
It's now done with a call to celt_encode_resynthesis().

9 years agoFixed pitchEnd wrt to variable frame size. It should (sort of) all work now
Jean-Marc Valin [Fri, 7 May 2010 11:48:07 +0000 (07:48 -0400)]
Fixed pitchEnd wrt to variable frame size. It should (sort of) all work now

9 years agoMore work on variable frame size (getting rid of FRAMESIZE() )
Jean-Marc Valin [Fri, 7 May 2010 11:45:18 +0000 (07:45 -0400)]
More work on variable frame size (getting rid of FRAMESIZE() )

9 years agoChanging the encoder API to add the frame size
Jean-Marc Valin [Fri, 7 May 2010 02:11:48 +0000 (22:11 -0400)]
Changing the encoder API to add the frame size

9 years agoOops! Fixed the fixed-point build
Jean-Marc Valin [Fri, 7 May 2010 00:15:27 +0000 (20:15 -0400)]
Oops! Fixed the fixed-point build

9 years agoFix for very short frame size (M=1)
Jean-Marc Valin [Thu, 6 May 2010 11:38:04 +0000 (07:38 -0400)]
Fix for very short frame size (M=1)

9 years agoYet another step towards variable frame size
Jean-Marc Valin [Thu, 6 May 2010 01:37:53 +0000 (21:37 -0400)]
Yet another step towards variable frame size

9 years agoMore preparation work for variable frame size
Jean-Marc Valin [Wed, 5 May 2010 11:21:21 +0000 (07:21 -0400)]
More preparation work for variable frame size

9 years agoreplaced instances of mode->nbShortMdcts by the dynamic number of MDCTs (M)
Jean-Marc Valin [Wed, 5 May 2010 04:02:26 +0000 (00:02 -0400)]
replaced instances of mode->nbShortMdcts by the dynamic number of MDCTs (M)

9 years agoAllocation table stored with BITRES accuracy based on the short block size
Jean-Marc Valin [Thu, 29 Apr 2010 15:24:11 +0000 (11:24 -0400)]
Allocation table stored with BITRES accuracy based on the short block size

9 years agoshortWindow hadn't been used for a while
Jean-Marc Valin [Thu, 29 Apr 2010 13:58:05 +0000 (09:58 -0400)]
shortWindow hadn't been used for a while

9 years agoShrinking the MDCT's table by separately rotating by the 1/(8N) factor
Jean-Marc Valin [Thu, 29 Apr 2010 02:10:57 +0000 (22:10 -0400)]
Shrinking the MDCT's table by separately rotating by the 1/(8N) factor

9 years agoMaking the band definition the same at all frame sizes.
Jean-Marc Valin [Mon, 26 Apr 2010 11:08:44 +0000 (07:08 -0400)]
Making the band definition the same at all frame sizes.

9 years agoMinor tweak to the band layout offset
Jean-Marc Valin [Wed, 21 Apr 2010 22:09:07 +0000 (18:09 -0400)]
Minor tweak to the band layout offset

9 years agoRe-enabled special stereo code for N=2
Jean-Marc Valin [Wed, 21 Apr 2010 03:52:31 +0000 (23:52 -0400)]
Re-enabled special stereo code for N=2

9 years agoBands are now (again) a multiple of the number of short MDCTs
Jean-Marc Valin [Wed, 21 Apr 2010 03:30:22 +0000 (23:30 -0400)]
Bands are now (again) a multiple of the number of short MDCTs

9 years agoSkipping transient shape renormalisation in the encoder because
Jean-Marc Valin [Tue, 20 Apr 2010 21:31:45 +0000 (17:31 -0400)]
Skipping transient shape renormalisation in the encoder because
our search can now work on vectors that don't have unit norm

9 years agoBump bitstream version now that we broke everything
Jean-Marc Valin [Tue, 20 Apr 2010 14:43:51 +0000 (10:43 -0400)]
Bump bitstream version now that we broke everything

9 years agoTuning the amount of spreading based on Koen's feedback
Jean-Marc Valin [Tue, 20 Apr 2010 04:47:22 +0000 (00:47 -0400)]
Tuning the amount of spreading based on Koen's feedback

9 years agoImproved transient_analysis() by adding one frame of memory.
Jean-Marc Valin [Mon, 19 Apr 2010 17:32:15 +0000 (13:32 -0400)]
Improved transient_analysis() by adding one frame of memory.

9 years agoRemoved unnecessary calls to log2Amp()
Jean-Marc Valin [Mon, 19 Apr 2010 02:47:58 +0000 (22:47 -0400)]
Removed unnecessary calls to log2Amp()

9 years agoDisabling resynthesis when not needed (need to remove folding for this to work)
Jean-Marc Valin [Mon, 19 Apr 2010 02:10:24 +0000 (22:10 -0400)]
Disabling resynthesis when not needed (need to remove folding for this to work)

9 years agoRe-introducing the successive spreading rotations, but in a two-step
Jean-Marc Valin [Sun, 18 Apr 2010 13:57:42 +0000 (09:57 -0400)]
Re-introducing the successive spreading rotations, but in a two-step
scheme. Keeping Hadamard as an option (disabled for now) for transients.

9 years agoCorrected some non-sensical code
Jean-Marc Valin [Sat, 17 Apr 2010 21:29:03 +0000 (17:29 -0400)]
Corrected some non-sensical code

9 years agoConverted a few double-precision constants to single precision
Jean-Marc Valin [Sat, 17 Apr 2010 00:57:56 +0000 (20:57 -0400)]
Converted a few double-precision constants to single precision

9 years agoMaking sure compute_allocation_table() doesn't overrun at lower sampling rates
Jean-Marc Valin [Wed, 14 Apr 2010 22:02:09 +0000 (18:02 -0400)]
Making sure compute_allocation_table() doesn't overrun at lower sampling rates

9 years agoversion string set to 0.8.0-git
Jean-Marc Valin [Wed, 14 Apr 2010 21:45:27 +0000 (17:45 -0400)]
version string set to 0.8.0-git

9 years agoChanged compute_allocation_table() so it handles ebands that start and end in the...
Jean-Marc Valin [Wed, 14 Apr 2010 21:42:22 +0000 (17:42 -0400)]
Changed compute_allocation_table() so it handles ebands that start and end in the same allocation band. Also fixed a minor C89 issue.

10 years agoFix small mode leak (forgot to free the new logN array).
Jean-Marc Valin [Wed, 7 Apr 2010 22:30:28 +0000 (18:30 -0400)]
Fix small mode leak (forgot to free the new logN array).

10 years agoCaching log2_frac(N, BITRES) in the more data to save some CPU
Jean-Marc Valin [Tue, 6 Apr 2010 03:58:44 +0000 (23:58 -0400)]
Caching log2_frac(N, BITRES) in the more data to save some CPU

10 years agoA few minor optimisations (compute_allocation, denormalise_bands,
Jean-Marc Valin [Mon, 5 Apr 2010 13:26:22 +0000 (09:26 -0400)]
A few minor optimisations (compute_allocation, denormalise_bands,
deemphasis)

10 years agoA bit more tuning on the pseudo-frac-Hadamard. Also Trying to improve
Jean-Marc Valin [Sat, 3 Apr 2010 20:30:49 +0000 (16:30 -0400)]
A bit more tuning on the pseudo-frac-Hadamard. Also Trying to improve
transient spreading.

10 years agoDoing the spreading with a "pseudo-fractional-Hadamard" transform
Jean-Marc Valin [Sat, 3 Apr 2010 13:23:29 +0000 (09:23 -0400)]
Doing the spreading with a "pseudo-fractional-Hadamard" transform

10 years agofixed-point: improving accuracy of the energy prediction
Jean-Marc Valin [Sat, 20 Mar 2010 04:41:39 +0000 (00:41 -0400)]
fixed-point: improving accuracy of the energy prediction

10 years agofixed-point: slightly increasing the decoder accuracy again
Jean-Marc Valin [Sat, 20 Mar 2010 03:17:28 +0000 (23:17 -0400)]
fixed-point: slightly increasing the decoder accuracy again

10 years agoUpdate the log2 approximation to accomodate the increased bit precision from bd0610d2...
Timothy B. Terriberry [Tue, 16 Mar 2010 03:49:28 +0000 (23:49 -0400)]
Update the log2 approximation to accomodate the increased bit precision from bd0610d21b28b76095a49e601df44fb792b96369. This requires another term in the power series to reduce the error to the level of truncation (peak absolute error 0.621785). Also refactor the rounding bias term so that further changes to DB_SHIFT will leave the result unbiased.

10 years agofixed-point: Further reduction in mismatch
Jean-Marc Valin [Tue, 16 Mar 2010 02:55:51 +0000 (22:55 -0400)]
fixed-point: Further reduction in mismatch

10 years agofixed-point: reducing the mismatch in the folded part
Jean-Marc Valin [Tue, 16 Mar 2010 00:50:30 +0000 (20:50 -0400)]
fixed-point: reducing the mismatch in the folded part

10 years agoIncreasing log energy resolution
Jean-Marc Valin [Sat, 13 Mar 2010 15:04:19 +0000 (10:04 -0500)]
Increasing log energy resolution

10 years agoUsing the mean energy even when start>0
Jean-Marc Valin [Sat, 13 Mar 2010 03:00:10 +0000 (22:00 -0500)]
Using the mean energy even when start>0

10 years agoImproves fixed-point precision for quant_coarse_energy
Jean-Marc Valin [Fri, 12 Mar 2010 03:20:19 +0000 (22:20 -0500)]
Improves fixed-point precision for quant_coarse_energy

10 years agoFix quant_bands() for start != 0
Jean-Marc Valin [Mon, 1 Mar 2010 12:07:28 +0000 (07:07 -0500)]
Fix quant_bands() for start != 0

10 years agoAllowing CELT to skip the low frequencies
Jean-Marc Valin [Sun, 21 Feb 2010 20:10:22 +0000 (15:10 -0500)]
Allowing CELT to skip the low frequencies

10 years agoUpdating CELT_RESET_STATE to clear some fields that were "recently" added.
John Ridges [Fri, 12 Feb 2010 12:08:01 +0000 (07:08 -0500)]
Updating CELT_RESET_STATE to clear some fields that were "recently" added.

10 years agoGetting "make dist" to work again with the files that got removed
Jean-Marc Valin [Sun, 17 Jan 2010 04:35:45 +0000 (23:35 -0500)]
Getting "make dist" to work again with the files that got removed

10 years agoMisc changes for 0.7.1.
Jean-Marc Valin [Sun, 17 Jan 2010 00:12:06 +0000 (19:12 -0500)]
Misc changes for 0.7.1.

10 years agoChange name of libcelt to libcelt0
Thorvald Natvig [Sat, 16 Jan 2010 13:06:41 +0000 (08:06 -0500)]
Change name of libcelt to libcelt0

10 years agoUpdates celtclient to the new API.
Stefan de Konink [Fri, 8 Jan 2010 02:27:42 +0000 (21:27 -0500)]
Updates celtclient to the new API.

10 years agofixed-point: converted PLC filters and LPC parameters
Jean-Marc Valin [Fri, 1 Jan 2010 14:33:17 +0000 (09:33 -0500)]
fixed-point: converted PLC filters and LPC parameters

10 years agofixed-point: starting conversion of the new PLC
Jean-Marc Valin [Thu, 31 Dec 2009 03:40:24 +0000 (22:40 -0500)]
fixed-point: starting conversion of the new PLC

10 years agoAdding a safeguard against unstable LPC, so now there's no way (that I can
Jean-Marc Valin [Mon, 28 Dec 2009 12:59:42 +0000 (07:59 -0500)]
Adding a safeguard against unstable LPC, so now there's no way (that I can
think of) to produce NaNs in the new PLC.

10 years agoMaking new PLC code work in fixed-point even though it's still using float
Jean-Marc Valin [Mon, 28 Dec 2009 05:34:29 +0000 (00:34 -0500)]
Making new PLC code work in fixed-point even though it's still using float
arithmetic.

10 years agoC89 friendliness
Jean-Marc Valin [Mon, 21 Dec 2009 05:06:12 +0000 (00:06 -0500)]
C89 friendliness

10 years agoThis fixes a bug in stereo PLC (offset wasn't changed between channels)
Jean-Marc Valin [Thu, 17 Dec 2009 03:42:32 +0000 (22:42 -0500)]
This fixes a bug in stereo PLC (offset wasn't changed between channels)

10 years agoPLC: Added lag windowing and constraint to synthesis energy
Jean-Marc Valin [Tue, 15 Dec 2009 02:19:37 +0000 (21:19 -0500)]
PLC: Added lag windowing and constraint to synthesis energy

10 years agoVarlength arrays fix for C89
Thorvald Natvig [Fri, 11 Dec 2009 12:19:09 +0000 (13:19 +0100)]
Varlength arrays fix for C89

10 years agoNew LPC-based PLC code
Jean-Marc Valin [Fri, 11 Dec 2009 05:07:31 +0000 (00:07 -0500)]
New LPC-based PLC code

10 years agoOops, forgot to free the pitch bufer
Jean-Marc Valin [Thu, 3 Dec 2009 02:07:11 +0000 (21:07 -0500)]
Oops, forgot to free the pitch bufer

10 years agoFixing (read) array overrun for 1024-sample frames.
George de Vries [Thu, 3 Dec 2009 01:59:44 +0000 (20:59 -0500)]
Fixing (read) array overrun for 1024-sample frames.

10 years agoSome work on the pitch search weighting filter (still disabled)
Jean-Marc Valin [Wed, 2 Dec 2009 12:04:28 +0000 (07:04 -0500)]
Some work on the pitch search weighting filter (still disabled)

10 years agoReorganised the pitch code to simplify the PLC case and fixed a buffer overflow
Jean-Marc Valin [Thu, 26 Nov 2009 05:39:36 +0000 (00:39 -0500)]
Reorganised the pitch code to simplify the PLC case and fixed a buffer overflow
introduced in Thorvald's previous patch.

10 years agoFixing a few memory errors
Jean-Marc Valin [Thu, 26 Nov 2009 01:38:52 +0000 (20:38 -0500)]
Fixing a few memory errors

10 years agoUse stack_alloc for pitch.c
Thorvald Natvig [Wed, 25 Nov 2009 00:02:42 +0000 (01:02 +0100)]
Use stack_alloc for pitch.c

10 years agominor code cleanup
Jean-Marc Valin [Sun, 22 Nov 2009 04:41:26 +0000 (23:41 -0500)]
minor code cleanup

10 years agoRenamed MDCT functions to avoid symbol clashes with Vorbis
Jean-Marc Valin [Sun, 22 Nov 2009 02:57:44 +0000 (21:57 -0500)]
Renamed MDCT functions to avoid symbol clashes with Vorbis

10 years agoRemoving original freq-domain pitch code
Jean-Marc Valin [Mon, 9 Nov 2009 04:51:54 +0000 (13:51 +0900)]
Removing original freq-domain pitch code

10 years agoTemporal pitch search
Jean-Marc Valin [Sun, 8 Nov 2009 13:29:54 +0000 (22:29 +0900)]
Temporal pitch search

10 years agocelt_ilog2() is only used in fixed-point mode
Jean-Marc Valin [Sat, 31 Oct 2009 17:43:43 +0000 (13:43 -0400)]
celt_ilog2() is only used in fixed-point mode

10 years agoExpose the normalized range for reciprocal square roots in fixed-point mode. This...
Timothy Terriberry [Sat, 31 Oct 2009 17:19:06 +0000 (10:19 -0700)]
Expose the normalized range for reciprocal square roots in fixed-point mode. This allows subsequnt calculations to use the full precision of the result.

10 years agoSMALL_FOOTPRINT preserves the special n=1 cwrs case
Jean-Marc Valin [Sat, 24 Oct 2009 18:29:15 +0000 (14:29 -0400)]
SMALL_FOOTPRINT preserves the special n=1 cwrs case

10 years agoAdded a SMALL_FOOTPRINT option
Jean-Marc Valin [Sat, 24 Oct 2009 15:44:07 +0000 (11:44 -0400)]
Added a SMALL_FOOTPRINT option