| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
AT3 RIFF output always stores a two-channel ATRAC3 stream.
Mono input is encoded as duplicated single channels or as joint stereo with an empty side channel.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Add shared CalcSpectralFlatnessPerBfu helper in atrac_psy_common
with BFU-table mapping.
- Implement ATRAC3 tonal extraction: compute MDCT energy, estimate
per-BFU flatness, extract up to 5-bin strongest tonal run in
low-flatness BFUs, and zero extracted bins in residual.
- Map extracted tonal bins into TTonalBlocks and integrate them into
bitstream coding.
- Update ATRAC3 bit allocation - reduce residual bits for BFUs with tonal
blocks, and increase tonal quantizer selection.
- Restore --notonal CLI option in main.cpp for A/B comparison.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Inspired by edge264's YAML logging approach (FOSDEM 2026): emit every
gain control decision as a self-contained YAML stream so any frame can
be grep'd, analyzed with Python, or used to craft custom test curves.
./atracdenc -e atrac3 -i in.wav -o out.oma --yaml-log gain.yaml
Each YAML document covers one frame (frame:/time: header) with channels
and bands nested below. Per-band fields emitted in pipeline order:
high_freq_ratio, overlap_ratio, dynamic_min_score, gain[], next_level
pcm_qmf (256 raw QMF samples, non-modulated, non-windowed)
curve_raw, rms_cur, rms_next_mod, point0_level, crossover
curve_final, max_gain, ratio, level_boost, scale_boost, total_boost
gain_boost (or skip: <reason> at each early-exit point)
New files / changes:
src/yaml_log.h - TYamlFmtGuard (stream format RAII),
YamlWriteFloatSeq (vector + ptr/len overloads)
src/atrac/at3/atrac3.h - YamlLog field in TAtrac3EncoderSettings
src/atrac3denc.h - FrameNum counter + YamlLog pointer on TAtrac3Encoder
src/atrac3denc.cpp - frame header in GetLambda, incremental YAML in
CreateSubbandInfo at every decision point
src/main.cpp - --yaml-log <file> CLI flag
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
|
| |
|
|
|
|
| |
This commit also removes handling "bfuidxconst" option
and mark it as deprecated. This option actually does not
affect encoding speed significantly.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
- ATH and some bit allocation tuning for ATRAC1 compatible encoding.
- ATH, energy aware quanitization and tuning for ATRAC3 compatible
encoding.
- Noticeable improvements for LP4 mode (but still not perfect on some
tracks for LP4 bitrate)
- Initial implementation of ATRAC3PLUS compatible encoding.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |\ |
|
| | | |
|
| | | |
|
| |/
|
|
| |
- Simpe code just to produce correct at3p zero frame
|
| |
|
|
|
| |
- help page
- remove noise messages
|
| |
|
|
|
|
|
| |
* Add support for writing .at3/.wav files with ATRAC3
* Check file size limit
* AT3/WAV export: Add big endian support, force packed structs
|
| | |
|
| |
|
|
| |
ATRAC3 is one of codecs used for RealMedia player.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
- VS build (2017 tested)
- Media Foundation Framework support to read/write pcm data (instead of
libsndfile)
|
| |
|
|
|
|
|
| |
Current implementation doesn't add notisible quality improvements,
but often adds artifacts due to tonal bit allocation penalty. Proper
implementation must use tonal component only if penalty of tonal
allocation less than gain generic bit allocation.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
was detected
|
| | |
|
| |
|
|
|
|
|
| |
* Fix typo encode should 'e' optarg option
* enable to set 'atrac3' argument to optarg
Signed-off-by: JiCeheR <[email protected]>
|
| | |
|
| | |
|
| |
|
|
| |
It looks like gaincontrol feature should be reimplemented. So disable it for a while.
|
| |
|
|
|
|
|
| |
- no JS mode
- constant quantiser for tonal components
- gain controll implemented but produces some artifacts with real signals.
- etc...
|
| | |
|
| |
|
|
|
|
| |
use AU format in case of "-" (stdout) output (something like
"./atracdenc --decode -i /tmp/test.aea -o - | cvlc - " works)
why AU? http://www.mega-nerd.com/libsndfile/FAQ.html#Q017
|
| |
|
|
|
| |
some changes to get possibility to create alternative
compression algorithms and use different containers.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
decrease number of used BFU if last BFUs are empty
allowed to change behaviour via cmd options
|
| | |
|
| |
|
|
|
|
| |
- write length in header (qhimdtransfer writes it, and we will)
- make first frame empty (it is a hack, but without it ffmpeg based
players detects aea file as mpeg. I need aea specification ;-))
|
|
|
current limitations:
- only long window
- naive MDCT (O(n^2))
- bad table of fixed bit allocation
- bad usage of CBR
- time accuracy is not guaranteed
- dirty, not optimized code
|