Jean-Marc Valin
de1fd28740
Fixes a denormalisation issue occuring when multiple packets are lost and the
...
signal decays to "not quite zero"
2008-11-27 23:34:15 -05:00
Jean-Marc Valin
37ab9c6642
Bit of cleaning up and comments
2008-11-08 09:14:38 -05:00
Jean-Marc Valin
bc79991742
The fold bit can now be used by the encoder and decoder (encoder still needs
...
EXP_PSY)
2008-11-07 22:53:13 -05:00
Jean-Marc Valin
a2012d8dc5
experimental code for choosing whether to apply folding for the high bands
2008-11-05 21:54:37 -05:00
Jean-Marc Valin
c5f2a9d988
Latest psychoacoustics work -- still highly experimental
2008-10-26 22:00:26 -04:00
Jean-Marc Valin
8679a80ee2
Encoder now writes data directly in the user buffer
2008-10-18 07:44:35 -04:00
Jean-Marc Valin
dffd9449b5
Tonality estimation code
2008-10-15 07:29:58 -04:00
Jean-Marc Valin
b6f9061343
celt_encoder_ctl() is a bit more type-safe.
2008-10-05 22:39:13 -04:00
Wessel Lubberhuizen
33ba6cc6b6
fix stack handling
2008-10-03 07:09:29 -04:00
Gregory Maxwell
8259531160
API: Change celt_encode and celt_encode_float so that they take an optional synthesis parameter after the PCM input. If optional_synthesis is null the encoder will be able to save some computation. If optional_synthesis is non-null if will be used to write the encoder's expectation of the decoder's output. Synthesis may alias the input pcm, so calling the encoder with the same buffer twice will achieve the old behavior. Remove 'restrict' from the CTL prototype.
2008-09-30 23:32:35 -04:00
Jean-Marc Valin
c18fb1d031
Added celt_encoder_ctl() and CELT_SET_COMPLEXITY
2008-09-30 07:36:54 -04:00
Gregory Maxwell
23e654ff82
Allow all even frame sizes, change the selection of number of short MDCTs per frame to be more intelligent.
2008-09-27 21:23:54 -04:00
Gregory Maxwell
0527f37352
Fix support for 64 sample frames.
2008-09-24 20:27:51 -04:00
Jean-Marc Valin
b4ce40cb55
Fixing the manual stack handling code
2008-09-19 11:50:50 -04:00
Jean-Marc Valin
1dab60cc91
Better use of the arithmetic operators
2008-09-16 13:29:37 -04:00
Jean-Marc Valin
7b0cb4ba0d
One-at-a-time allocator now uses direct feedback from ec_*_tell().
2008-09-11 00:20:08 -04:00
Jean-Marc Valin
d9b9565a4b
Added Erik de Castro Lopo's float_cast.h to use lrintf() when available. Also
...
disables the synthesis on the encoder side when pitch is disabled.
2008-08-31 23:34:47 -04:00
Jean-Marc Valin
c994394fc3
Added signalling bits for enabling/disabling pitch, short blocks, and folding.
...
Also, making it possible to disable pitch for all frames.
2008-08-30 00:55:07 -04:00
Jean-Marc Valin
5c3bc67959
Fixed a bunch of fixed-point overflows on insanely hot signals by changing
...
the time-domain representation from Q14 to Q12 (Q29 to Q27 using the
standard convention).
2008-08-28 23:34:24 -04:00
Jean-Marc Valin
8dff923a5d
Added hooks for tuning pulses and fine energy quant
2008-08-13 22:07:20 -04:00
Gregory Maxwell
5f2a74b38b
Adding a floating point interface to encode and decode
2008-08-12 00:14:33 -04:00
Jean-Marc Valin
9c70906fdb
Changing the allocation algorithm to better take into account the fixed cost
...
per frames for each mode.
2008-08-03 22:07:06 -04:00
Jean-Marc Valin
6775de3eae
Unified allocation of fine energy and pulses.
2008-08-02 08:14:42 -04:00
Jean-Marc Valin
c890b58b69
Completed the separation of coarse and fine energy quantisation
2008-08-01 22:26:49 -04:00
Jean-Marc Valin
6361ad8d41
Simplified the folding normalisation by creating renormalise_vector().
2008-07-20 23:14:31 -04:00
Jean-Marc Valin
7028d62f85
Do not encode the short-window bit when not applicable.
2008-07-10 23:06:58 -04:00
Jean-Marc Valin
bd7de0a7d5
cleaned up transient_analysis() and replaced the algorithm with a simpler one
...
based on the max absolute value in a range.
2008-07-06 10:57:26 -04:00
Jean-Marc Valin
f457819668
fixed-point: conversion of pre-echo avoidance now complete.
2008-07-04 16:47:28 -04:00
Jean-Marc Valin
0ceccb2dbd
fixed-point: more work on the time window (almost done)
2008-07-03 20:41:06 -04:00
Jean-Marc Valin
e4aeb47277
More fixed-point conversion of the time window.
2008-06-29 12:06:05 +10:00
Jean-Marc Valin
528f4b8660
More fixed-point work on the time window -- including conversion of the gain
...
to power-of-two.
2008-06-29 03:46:39 +10:00
Jean-Marc Valin
9375aa4faa
Cleaned up the pre-echo avoidance code so it works when compiled as fixed-point
...
(still requires float ops though). Also, removed the per-band IDCT.
2008-06-27 07:57:35 +10:00
Jean-Marc Valin
16ca18b9b0
Automatically choosing the overlap based on the frame size.
2008-06-18 23:44:48 +10:00
Jean-Marc Valin
9d1decd1bb
short-block MDCT
2008-06-17 13:28:13 +10:00
Jean-Marc Valin
12b22484e2
Implemented two pre-echo avoidance techniques: time-domain pre-emphasis and
...
per-band IDCT.
2008-06-16 14:13:05 +10:00
Peter Kirk
19f9dc98ee
Use EXPORT macro in a way compatible with win32
2008-06-07 13:13:59 +10:00
Jean-Marc Valin
c6ca49923e
Infrastructure work for a psy model
2008-06-01 23:19:16 +10:00
Jean-Marc Valin
f4f5dac8ba
Doing mid-side stereo when not doing intensity.
2008-05-23 17:27:39 +10:00
Jean-Marc Valin
bf2d648bbd
Implemented intensity stereo, which required changes all over the place
...
to make sure that stereo coupling is done at the band level. Previously
the stereo coupling was done all at once, but there were all kinds of
interactions with the prediction and folding.
2008-05-23 16:57:34 +10:00
Jean-Marc Valin
7bd2b9e001
More stereo infrastructure
2008-05-23 14:23:22 +10:00
Jean-Marc Valin
ad6371906a
Implemented rate-dependant allocation for the fine energy quantisation.
2008-05-07 13:44:39 +10:00
Jean-Marc Valin
827f93175b
Packing the pitch parameters first to improve robustness to bit errors with
...
(hopefully) no other side effect
2008-05-06 23:21:55 +10:00
Jean-Marc Valin
24c9cdaca1
Fixed a bug in the PLC and added code to estimate the pitch from the synthesis
...
instead of relying on the one previously transmitted by the encoder.
2008-05-02 10:34:07 +10:00
Jean-Marc Valin
c95ab8ccb2
mdct_overlap no longer needed
2008-04-28 13:14:08 +10:00
Jean-Marc Valin
ef1002746c
SHORTCUTS now disables the encoder's de-emphasis (i.e. can't check encoder
...
against the decoder)
2008-04-24 08:29:25 +10:00
Jean-Marc Valin
4ce9205f38
Optimisation: caching the divisions used in the Laplace encoder.
2008-04-23 13:42:10 +10:00
Jean-Marc Valin
8ddd7f400d
mdct_backward now does the WOLA, so there isn't much left in compute_inv_mdcts
2008-04-22 13:37:16 +10:00
Jean-Marc Valin
4989c1212a
Moved the windowing from compute_inv_mdcts() to mdct_backward()
2008-04-22 12:18:36 +10:00
Jean-Marc Valin
ef0d5f15c7
Further simplifications to the forward mdct
2008-04-22 09:49:22 +10:00
Jean-Marc Valin
41880805ab
non-negative mdct input index
2008-04-22 07:50:50 +10:00