aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Zero num_wavs during initializationHEADmasterDaniil Cherednik2025-06-221-0/+4
|
* Fix multiple wrong debug assertsDaniil Cherednik2025-06-224-5/+5
|
* Bump c++ version to c++17Daniil Cherednik2025-06-221-1/+1
|
* [AT3P] MDCT window shape configuration code.Daniil Cherednik2025-06-138-47/+178
| | | | And pass window shape in to the bitstream.
* Fix memory leak in case of unsupported input file.Daniil Cherednik2025-06-081-3/+3
|
* [AT3P] Simple delta VLC encoding for wordlen.Daniil Cherednik2025-06-065-10/+113
|
* [AT1] Fix memory leak on encoder destruction.Daniil Cherednik2025-06-012-5/+10
|
* Merge branch 'at3plus-dev'Daniil Cherednik2025-05-3137-28/+6420
|\ | | | | | | | | | | | | | | | | | | | | 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
| * [AT3P] Fix for Windows buildat3plus-devDaniil Cherednik2025-05-316-4/+12
| |
| * [AT3P] Fix GHA frequency, phase quantization into indexDaniil Cherednik2025-05-292-22/+73
| |
| * [AT3P] Update libgha. Experiment with upsample frame during GHA.Daniil Cherednik2025-05-232-0/+1
| | | | | | | | | | | | | | | | 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.
| * [AT3P] Adjust level of residual processingDaniil Cherednik2025-05-171-1/+2
| |
| * [AT3P] Add advanced option for GHA debugDaniil Cherednik2025-05-163-12/+130
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * [AT3P] Update libgha version.Daniil Cherednik2025-05-151-0/+0
| | | | | | | | | | This version doesn't use variable length arrays. It it better from compiler compatibility perspective and slightly faster.
| * [AT3P] Adjust number of quant units during encoding.Daniil Cherednik2025-05-037-72/+179
| |
| * [AT3P] Use a bit speed optimised libgha.Daniil Cherednik2025-05-021-0/+0
| | | | | | | | | | | | | | | | | | | | 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.
| * Fix missed includeDaniil Cherednik2025-05-011-0/+1
| |
| * [AT3P] Add GHA processing in to the bitstream encoding.Daniil Cherednik2025-04-269-27/+553
| | | | | | | | | | | | This comit bring some glue to extract residual. Also we need additional one frame delay after pqf. Temporary use ffmpeg code for gha synth.
| * Revert "[AT3P] Delay for 1 frame during GHA. Adjust previous frame during."Daniil Cherednik2025-04-213-92/+45
| | | | | | | | | | | | | | This reverts commit 0265177f2d64503df609c63238d983d984938fab. It looks like previous statement about adjusting delayed frame was wrong. Commit 0265177f2d64503df609c63238d983d984938fab causes some phantom generation.
| * [AT3P] Choice best code table (currently from one set only) during encoding.Daniil Cherednik2025-04-212-64/+127
| |
| * Minimal implementation of AT3P bitstream for residual signal.Daniil Cherednik2025-04-1915-34/+955
| | | | | | | | | | | | | | | | * 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
| * Merge branch 'master' into at3plus-devDaniil Cherednik2025-01-2513-55/+76
| |\
| * | [AT3P] MDCT codeDaniil Cherednik2025-01-254-0/+261
| | |
| * | Merge branch 'new_psy' into at3plus-devDaniil Cherednik2025-01-046-31/+242
| |\ \
| * | | [AT3P] Delay for 1 frame during GHA. Adjust previous frame during.Daniil Cherednik2024-12-283-45/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Merge branch 'master' into at3plus-devDaniil Cherednik2024-12-2457-683/+835
| |\ \ \
| * | | | [AT3P] Tune GHA to extract more sine waves and bugfixDaniil Cherednik2024-11-261-16/+9
| | | | |
| * | | | [AT3P] [Bugfix] Do not generate zero amplitude waveDaniil Cherednik2024-10-241-1/+2
| | | | |
| * | | | [AT3P] Improve accuracy of magnitude calculation in case of not full frameDaniil Cherednik2024-10-232-9/+25
| | | | |
| * | | | [AT3P] Initial support for gha envelopeDaniil Cherednik2024-10-202-13/+136
| | | | | | | | | | | | | | | | | | | | | | | | | Current limitation: * Inaccurate amplitude extraction in case of not full block
| * | | | Fix missed free pqf ctx in utDaniil Cherednik2024-10-131-0/+14
| | | | |
| * | | | [AT3P] GHA development:Daniil Cherednik2024-10-068-219/+727
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
| * | | | [AT3P] Missed ut fixesDaniil Cherednik2024-08-191-3/+3
| | | | |
| * | | | Possibility to "look ahead" during encodingDaniil Cherednik2024-08-198-42/+94
| | | | |
| * | | | [AT3P] Fix tone present bitDaniil Cherednik2024-08-181-3/+4
| | | | |
| * | | | [AT3P] Fix total tones limitDaniil Cherednik2024-08-181-1/+1
| | | | |
| * | | | [AT3P] GHA fixesDaniil Cherednik2024-08-172-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix frequency to index converting * Fix gha boundary calculation * Fix case of empty GHA result * Fix missed gha_free_ctx call
| * | | | [AT3P] Some GHA related improvements:Daniil Cherednik2024-08-177-74/+248
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * | | | Fix missed headers, submodule branchDaniil Cherednik2024-08-113-0/+3
| | | | |
| * | | | [AT3P] Part of naive GHA processorDaniil Cherednik2024-08-115-22/+889
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * | | | Merge branch 'new_psy' into at3plus-devDaniil Cherednik2024-08-022-2/+97
| |\ \ \ \
| * | | | | [AT3P] Add GHA related bitstream codeDaniil Cherednik2024-07-319-6/+2119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * | | | | Merge branch 'master' into at3plus-devDaniil Cherednik2024-07-0914-40/+105
| |\ \ \ \ \
| * | | | | | Add missed real fft implementation files.Daniil Cherednik2024-07-072-0/+207
| | | | | | |
| * | | | | | Add Generalized Harmonic Analysis library in to the branchDaniil Cherednik2024-07-062-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 )))
| * | | | | | Merge branch 'master' into at3plus-devDaniil Cherednik2024-07-065-3/+3
| |\ \ \ \ \ \
| * | | | | | | [AT3P] Introduce at3p development branchDaniil Cherednik2024-06-268-7/+265
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Simpe code just to produce correct at3p zero frame
* | | | | | | | Compatibility with modern cmakeDaniil Cherednik2025-04-261-1/+1
| | | | | | | |
* | | | | | | | Merge branch 'new_psy'. It should reduce high frequency distortion for AT3 modeDaniil Cherednik2025-04-266-31/+242
|\ \ \ \ \ \ \ \ | | |_|_|_|_|/ / | |/| | | | | / | |_|_|_|_|_|/ |/| | | | | |
| * | | | | | Do not check energy aware flag on each loop iterationnew_psyDaniil Cherednik2024-12-221-10/+18
| | | | | | |