| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
And pass window shape in to the bitstream.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It looks like we are able to encode ATRAC3PLUS compatible bitstream so we can merge at3p development branch in to the main branch.
Current limitation for AT3P mode:
- Only 352 Kbps (proper bit allocation and some psychoacoustic must be implemented)
- GHA sometime works with error (but huge bitrate hide it)
- No VLC, VQ, delta encoding
- No noise substitution
- No gain control
- No window shape switching
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This should improve accuracy of sinusoid extraction in case when
frequency in subband placed just before Nyquist frequency.
Note: we still unable to handle situation with low frequency in
subband which reuired much more samples for analysis.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are 3 flags:
GHA_PASS_INPUT - allows to pass source signal in to the filter
GHA_WRITE_TONAL - allows to write result of GHA into the bitstream
GHA_WRITE_RESIUDAL - allows to process signal after the filter
If all 3 flags set it denotes normal processing.
If we want to see only result of sinusoid extraction (tonal component) we can set only
GHA_WRITE_TONAL flag. If we want to see signal after extraction we need
to set GHA_PASS_INPUT and GHA_WRITE_RESIUDAL.
|
| |
| |
| |
| |
| | |
This version doesn't use variable length arrays.
It it better from compiler compatibility perspective and slightly faster.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
sin/cos computation with double precision inside libgha cause
significant cpu usage. Actualy we do not need such presition
due to discrete values in the bitstream.
New libgha version also does not perform multiple float to double
conversion in the hot loop (although it can be not good from cache
locality perspective). But it still gives speed up on modern CPUs.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This comit bring some glue to extract residual.
Also we need additional one frame delay after pqf.
Temporary use ffmpeg code for gha synth.
|
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 0265177f2d64503df609c63238d983d984938fab.
It looks like previous statement about adjusting delayed frame was wrong.
Commit 0265177f2d64503df609c63238d983d984938fab causes some phantom generation.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
* Write scale factor index, wordlen, codetable directly (without VLC)
* Use huffman tables for mantisas
* Some draft of the library to simplify bit allocation code
* Tonal encoding teporary disabled
* Allow c++14
|
| |\ |
|
| | | |
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If previous frame has been detected without stop point
but current frame has started not from zero point
it mean some transient (or other significant harmonics set changes)
is present. In this case adjusting delayed frame cases different
shapes of fade out.
Right now we just set previous frame stop point to 31
to generate short fade out just at the end of previous frame.
|
| |\ \ \ |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Current limitation:
* Inaccurate amplitude extraction in case of not full block
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Multidimensional gha, rework residual check
* Possibility to look into the next frame during GHA
* Possibility to pass envelope into bitstream
* Tool to create oma file from tsv gha description (to test envelope processing)
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Fix frequency to index converting
* Fix gha boundary calculation
* Fix case of empty GHA result
* Fix missed gha_free_ctx call
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* subband can share tone infos with other channel if all tones
in this band matched by frequency, channel marked as leader and folower
* add tool to dump test generated signals into OMA container
(example GHA_UT_DUMP_DIR=/tmp/ ./test/at3plus_gha_ut)
* fix code to produce correct bitstream
* add code to apply PQF to the input frame and pass subbands to GHA
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* extract sinusoids parameters one by one. It is simple and fast but
probably will not work well on the real musical signals
* envelope is not passed to the output. Envelope handling must be improved
|
| |\ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* borrow Huffman table from FFmpeg
* code (with ut) to pack frequency part of GHA block
* some related data structures
* bitstrem modification to write correct GHA block
* switch compile flag to use float data type
|
| |\ \ \ \ \ |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Why we start with GHA:
* GHA is one of the most computation intencive part of the encoder.
Probably we need to implement multuthreading processing here
to achive good perfomance. If so it is better to make MT frendly design
at the begining of development.
* GHA is the most interesting part of AT3P.
* GHA is the one of the first processing step.
* We already have libgha (https://github.com/dcherednik/libgha)
library which should be tested and used in real application )))
|