opus.git
9 years agoSome work towards being able to encode a 48 kHz stream from 32 kHz audio (incomplete)
Jean-Marc Valin [Fri, 16 Jul 2010 22:12:45 +0000 (18:12 -0400)]
Some work towards being able to encode a 48 kHz stream from 32 kHz audio (incomplete)

9 years agoAll modes based on 2.5 ms short blocks now use the same definition
Jean-Marc Valin [Fri, 16 Jul 2010 19:55:30 +0000 (15:55 -0400)]
All modes based on 2.5 ms short blocks now use the same definition

9 years agoConsidering the end band in more places in the code
Jean-Marc Valin [Fri, 16 Jul 2010 19:25:30 +0000 (15:25 -0400)]
Considering the end band in more places in the code

9 years agoEncoding transient_time independently of the sampling rate
Jean-Marc Valin [Fri, 16 Jul 2010 18:23:03 +0000 (14:23 -0400)]
Encoding transient_time independently of the sampling rate

9 years agoNumber of short blocks now based on the frame duration instead of the
Jean-Marc Valin [Fri, 16 Jul 2010 16:00:00 +0000 (12:00 -0400)]
Number of short blocks now based on the frame duration instead of the
number of samples

9 years agoBetter support for non-48 kHz sampling rates
Jean-Marc Valin [Fri, 16 Jul 2010 15:47:50 +0000 (11:47 -0400)]
Better support for non-48 kHz sampling rates

9 years agoPre-emphasis coefficients now part of the mode and has a numerator as well
Jean-Marc Valin [Fri, 16 Jul 2010 15:05:06 +0000 (11:05 -0400)]
Pre-emphasis coefficients now part of the mode and has a numerator as well
as a denominator

9 years agoUsing short blocks a bit more often now that we have variable tf resolution
Jean-Marc Valin [Thu, 15 Jul 2010 21:57:50 +0000 (17:57 -0400)]
Using short blocks a bit more often now that we have variable tf resolution

9 years agoHandling the start band and end band in tf encoding
Jean-Marc Valin [Tue, 13 Jul 2010 20:50:11 +0000 (16:50 -0400)]
Handling the start band and end band in tf encoding

9 years agoSupport for adjusting the end band
Jean-Marc Valin [Tue, 13 Jul 2010 18:14:16 +0000 (14:14 -0400)]
Support for adjusting the end band

9 years ago16-bit bitrev table
Jean-Marc Valin [Fri, 9 Jul 2010 01:02:05 +0000 (21:02 -0400)]
16-bit bitrev table

9 years agoSharing of the twiddles across multiple FFTs
Jean-Marc Valin [Fri, 9 Jul 2010 00:54:32 +0000 (20:54 -0400)]
Sharing of the twiddles across multiple FFTs

9 years agoVersion string update
Jean-Marc Valin [Thu, 8 Jul 2010 19:30:58 +0000 (15:30 -0400)]
Version string update

9 years agoUpdated draft for 0.8.1
Jean-Marc Valin [Thu, 8 Jul 2010 19:28:08 +0000 (15:28 -0400)]
Updated draft for 0.8.1

9 years agoFix accidental change of celt_alloc() to non-inline
Jean-Marc Valin [Thu, 8 Jul 2010 18:35:29 +0000 (14:35 -0400)]
Fix accidental change of celt_alloc() to non-inline

9 years agoietf draft update (incomplete)
Jean-Marc Valin [Thu, 8 Jul 2010 18:34:42 +0000 (14:34 -0400)]
ietf draft update (incomplete)

9 years agoSharing twiddle factors across all MDCTs
Jean-Marc Valin [Thu, 8 Jul 2010 01:26:38 +0000 (21:26 -0400)]
Sharing twiddle factors across all MDCTs

9 years agoSome code cleanup in the FFT.
Jean-Marc Valin [Wed, 7 Jul 2010 16:00:43 +0000 (12:00 -0400)]
Some code cleanup in the FFT.

Also dropped support for radices above 5.

9 years agoFixed C99-style declaration
Jean-Marc Valin [Wed, 7 Jul 2010 00:25:54 +0000 (20:25 -0400)]
Fixed C99-style declaration

9 years agoUpdating DISABLE_FLOAT_API use
Jean-Marc Valin [Tue, 6 Jul 2010 23:37:23 +0000 (19:37 -0400)]
Updating DISABLE_FLOAT_API use

9 years agofixes an int vs celt_int32 mismatch
Jean-Marc Valin [Tue, 6 Jul 2010 22:58:19 +0000 (18:58 -0400)]
fixes an int vs celt_int32 mismatch

9 years agofixed point bug fix in tf_analysis()
Jean-Marc Valin [Tue, 6 Jul 2010 21:54:33 +0000 (17:54 -0400)]
fixed point bug fix in tf_analysis()

9 years agoAnother coarse budget fix for _ec() calls
Jean-Marc Valin [Mon, 5 Jul 2010 18:33:49 +0000 (14:33 -0400)]
Another coarse budget fix for _ec() calls

9 years agoFixed a few more issues with the _ec() calls.
Jean-Marc Valin [Mon, 5 Jul 2010 17:52:41 +0000 (13:52 -0400)]
Fixed a few more issues with the _ec() calls.

9 years agoFix misleading comments about ec_{enc|dec}_tell()
Jean-Marc Valin [Mon, 5 Jul 2010 04:33:00 +0000 (00:33 -0400)]
Fix misleading comments about ec_{enc|dec}_tell()

9 years agogitignore update
Jean-Marc Valin [Sat, 3 Jul 2010 13:28:15 +0000 (09:28 -0400)]
gitignore update

9 years agoPrototypes for the _ec variants of the calls
Jean-Marc Valin [Thu, 1 Jul 2010 14:14:20 +0000 (10:14 -0400)]
Prototypes for the _ec variants of the calls

9 years agoOops, fixed an uninitialized var error
Jean-Marc Valin [Mon, 28 Jun 2010 21:22:37 +0000 (17:22 -0400)]
Oops, fixed an uninitialized var error

9 years agoSome C90-ication
Jean-Marc Valin [Mon, 28 Jun 2010 01:55:08 +0000 (21:55 -0400)]
Some C90-ication

9 years agoUpdating various version strings
Jean-Marc Valin [Mon, 28 Jun 2010 01:43:34 +0000 (21:43 -0400)]
Updating various version strings

9 years agoNo need for --enable-new-plc anymore (always on)
Jean-Marc Valin [Sun, 27 Jun 2010 17:52:08 +0000 (13:52 -0400)]
No need for --enable-new-plc anymore (always on)

9 years agoMode cleanup (removed redundant mdctSize field)
Jean-Marc Valin [Sun, 27 Jun 2010 17:49:38 +0000 (13:49 -0400)]
Mode cleanup (removed redundant mdctSize field)

9 years agoThink I got static modes working again
Jean-Marc Valin [Sun, 27 Jun 2010 13:56:26 +0000 (09:56 -0400)]
Think I got static modes working again

9 years agoUpdating static modes (not done yet)
Jean-Marc Valin [Sun, 27 Jun 2010 13:51:20 +0000 (09:51 -0400)]
Updating static modes (not done yet)

9 years agoRemoving some warnings
Jean-Marc Valin [Sun, 27 Jun 2010 04:53:51 +0000 (00:53 -0400)]
Removing some warnings

9 years agoImproved quality of small frame sizes at low bitrate.
Jean-Marc Valin [Wed, 23 Jun 2010 19:22:54 +0000 (15:22 -0400)]
Improved quality of small frame sizes at low bitrate.

Adding a temporal energy floor to prevent extremely small values when there's
only one bin in the band.

9 years agoPreventing ridiculous bit depths > 16 bit/sample
Jean-Marc Valin [Wed, 23 Jun 2010 01:26:16 +0000 (21:26 -0400)]
Preventing ridiculous bit depths > 16 bit/sample

9 years agoImproved code for reusing ec structures
Jean-Marc Valin [Tue, 22 Jun 2010 01:39:44 +0000 (21:39 -0400)]
Improved code for reusing ec structures

Using the number of unallocated bytes for coarse quantization and VBR
instead the total number of bytes.

9 years agoNo need to memset() the byte buffer
Jean-Marc Valin [Mon, 21 Jun 2010 21:55:28 +0000 (17:55 -0400)]
No need to memset() the byte buffer

9 years agoCompile fix for MSVC
Benjamin Jemlich [Mon, 21 Jun 2010 12:31:00 +0000 (14:31 +0200)]
Compile fix for MSVC

9 years agoBumping LT_CURRENT
Jean-Marc Valin [Mon, 21 Jun 2010 11:15:47 +0000 (07:15 -0400)]
Bumping LT_CURRENT

9 years agoremoving some warnings
Jean-Marc Valin [Mon, 21 Jun 2010 05:01:17 +0000 (01:01 -0400)]
removing some warnings

9 years agoFixed testcase
Jean-Marc Valin [Mon, 21 Jun 2010 04:13:35 +0000 (00:13 -0400)]
Fixed testcase

9 years agoRemoving old PCL, added plc.h
Jean-Marc Valin [Mon, 21 Jun 2010 02:48:50 +0000 (22:48 -0400)]
Removing old PCL, added plc.h

9 years agoComments, code cleanup
Jean-Marc Valin [Sat, 19 Jun 2010 14:27:28 +0000 (10:27 -0400)]
Comments, code cleanup

9 years agofixed-point: New PLC now enabled by default
Jean-Marc Valin [Fri, 18 Jun 2010 00:25:51 +0000 (20:25 -0400)]
fixed-point: New PLC now enabled by default

9 years agofixed-point: More work on the PLC
Jean-Marc Valin [Fri, 18 Jun 2010 00:10:02 +0000 (20:10 -0400)]
fixed-point: More work on the PLC

9 years agofixed-point: PLC auto-correlation converted
Jean-Marc Valin [Thu, 17 Jun 2010 11:32:20 +0000 (07:32 -0400)]
fixed-point: PLC auto-correlation converted

9 years agominor tweaks to frac_div32()
Jean-Marc Valin [Thu, 17 Jun 2010 04:35:26 +0000 (00:35 -0400)]
minor tweaks to frac_div32()

9 years agoFixed-point version of frac_div32()
Jean-Marc Valin [Thu, 17 Jun 2010 04:11:54 +0000 (00:11 -0400)]
Fixed-point version of frac_div32()

9 years agoMore work on fixed-point Levinson-Durbin
Jean-Marc Valin [Thu, 17 Jun 2010 02:38:57 +0000 (22:38 -0400)]
More work on fixed-point Levinson-Durbin

9 years agoImplementing two choices for the tf resolution
Jean-Marc Valin [Sun, 13 Jun 2010 12:06:28 +0000 (08:06 -0400)]
Implementing two choices for the tf resolution

9 years agoRemove unnecessary free of global stack on error
Jean-Marc Valin [Wed, 9 Jun 2010 01:01:41 +0000 (21:01 -0400)]
Remove unnecessary free of global stack on error

9 years agoCompletely disabling the tf code at low bitrate
Jean-Marc Valin [Mon, 7 Jun 2010 03:16:40 +0000 (23:16 -0400)]
Completely disabling the tf code at low bitrate

9 years agoEncoding the tf parameters after coarse energy
Jean-Marc Valin [Sun, 6 Jun 2010 03:12:19 +0000 (23:12 -0400)]
Encoding the tf parameters after coarse energy

Also a minor cleanup to the recombining/division

9 years agoDoing the log2Amp() just in one place
Jean-Marc Valin [Sat, 5 Jun 2010 05:18:40 +0000 (01:18 -0400)]
Doing the log2Amp() just in one place

9 years agonothing to see here
Jean-Marc Valin [Fri, 4 Jun 2010 04:13:19 +0000 (00:13 -0400)]
nothing to see here

9 years agoCompletely removed the old allocation table.
Jean-Marc Valin [Fri, 4 Jun 2010 03:29:35 +0000 (23:29 -0400)]
Completely removed the old allocation table.

Also made the new table an unsigned char array.

9 years agoBase everything on the "standard allocation table"
Jean-Marc Valin [Fri, 4 Jun 2010 02:11:41 +0000 (22:11 -0400)]
Base everything on the "standard allocation table"

9 years agoUsing allocation table for "standard" frame sizes
Jean-Marc Valin [Thu, 3 Jun 2010 12:12:11 +0000 (08:12 -0400)]
Using allocation table for "standard" frame sizes

9 years agoAllocation table now in bits/sample
Jean-Marc Valin [Thu, 3 Jun 2010 04:33:42 +0000 (00:33 -0400)]
Allocation table now in bits/sample

9 years agoChanging the allocator resolution to 1/8 bit
Jean-Marc Valin [Thu, 3 Jun 2010 01:25:19 +0000 (21:25 -0400)]
Changing the allocator resolution to 1/8 bit

Should eventually allow using 8-bit values for the pulse->bits table.

9 years agoFix for PLC crash when using large frames
Jean-Marc Valin [Tue, 1 Jun 2010 04:30:37 +0000 (00:30 -0400)]
Fix for PLC crash when using large frames

9 years agoTrying not to crash on bit errors
Jean-Marc Valin [Tue, 1 Jun 2010 01:56:12 +0000 (21:56 -0400)]
Trying not to crash on bit errors

When the pitch flag gets corrupted, make sure that pitch is actually
allowed instead of generating a bogus pitch index and crashing.

9 years agoremoved stupid code in transient_analysis()
Jean-Marc Valin [Tue, 1 Jun 2010 01:35:40 +0000 (21:35 -0400)]
removed stupid code in transient_analysis()

9 years agoFixed stupid bug for single-sample bands
Jean-Marc Valin [Mon, 31 May 2010 13:51:36 +0000 (09:51 -0400)]
Fixed stupid bug for single-sample bands

9 years agoChange ec_{enc|dec}_bit_prob to take probabilities in units of 1/65536 instead of...
Timothy B. Terriberry [Sun, 30 May 2010 03:02:33 +0000 (23:02 -0400)]
Change ec_{enc|dec}_bit_prob to take probabilities in units of 1/65536 instead of 1/256. This allows them to use a single 16x16->32 multiply instead of a 24x8->32 multiply. Also change the time-frequency resolution flag coding to ensure that "0" is always the most-probable symbol (i.e., that prob("1")<50%), as that's where all the rounding error accumulates.

9 years agoProvide direct implementations ec_{enc|dec}_bit_prob() that do not require a division...
Timothy B. Terriberry [Sun, 30 May 2010 02:47:37 +0000 (22:47 -0400)]
Provide direct implementations ec_{enc|dec}_bit_prob() that do not require a division instead of using the normal entropy coder path. This should be exactly equivalent to the existing code.

9 years agoCleaning up VBR to be frame-size independent
Jean-Marc Valin [Sat, 29 May 2010 12:07:18 +0000 (08:07 -0400)]
Cleaning up VBR to be frame-size independent

9 years agoFolding tuning
Jean-Marc Valin [Sat, 29 May 2010 04:28:06 +0000 (00:28 -0400)]
Folding tuning

Trying to fold only from regions where we have at least 2 bits of depth

9 years agoRD optimisation now takes bitrate into account
Jean-Marc Valin [Sat, 29 May 2010 01:12:39 +0000 (21:12 -0400)]
RD optimisation now takes bitrate into account

9 years agoSimplification to the transient detection code
Jean-Marc Valin [Fri, 28 May 2010 22:58:42 +0000 (18:58 -0400)]
Simplification to the transient detection code

Discarding the amplitude of the overlap for "frame_max"

9 years agoMore simplifications to the Viterbi code
Jean-Marc Valin [Fri, 28 May 2010 22:01:02 +0000 (18:01 -0400)]
More simplifications to the Viterbi code

9 years agoSimplifications to the tf_res RD code
Jean-Marc Valin [Fri, 28 May 2010 21:50:34 +0000 (17:50 -0400)]
Simplifications to the tf_res RD code

9 years agoViterbi-based RD optimization of the tf_res decisions
Jean-Marc Valin [Fri, 28 May 2010 21:26:27 +0000 (17:26 -0400)]
Viterbi-based RD optimization of the tf_res decisions

9 years agochanging probability of first tf resolution symbol
Jean-Marc Valin [Fri, 28 May 2010 10:56:23 +0000 (06:56 -0400)]
changing probability of first tf resolution symbol

9 years agoAdaptive time-frequency resolution
Jean-Marc Valin [Fri, 28 May 2010 03:56:53 +0000 (23:56 -0400)]
Adaptive time-frequency resolution

Encoding the optimal tf-tradeoff for each band and then
applying it during quantization.

9 years agoAdds a range coder call to encode a single bit with arbitrary probability
Jean-Marc Valin [Thu, 27 May 2010 20:23:52 +0000 (16:23 -0400)]
Adds a range coder call to encode a single bit with arbitrary probability

9 years agoFixed a long-standing rare mismatch
Jean-Marc Valin [Wed, 26 May 2010 19:04:41 +0000 (15:04 -0400)]
Fixed a long-standing rare mismatch

In cases where the coarse energy quantizer wasn't able to
go down fast enough, we could have a negative error that didn't
get clamped.

9 years agoRe-organised the special case for N==1
Jean-Marc Valin [Wed, 26 May 2010 19:04:29 +0000 (15:04 -0400)]
Re-organised the special case for N==1

9 years agoBunch of fixes for frames of 2.5 ms.
Jean-Marc Valin [Wed, 26 May 2010 15:27:32 +0000 (11:27 -0400)]
Bunch of fixes for frames of 2.5 ms.

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().