<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atracdenc, branch atrac3_enc_cache</title>
<subtitle>OpenSource ATRAC1 ATRAC3 Encoder</subtitle>
<id>https://code.mastervirt.ru/atracdenc/atom?h=atrac3_enc_cache</id>
<link rel='self' href='https://code.mastervirt.ru/atracdenc/atom?h=atrac3_enc_cache'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/'/>
<updated>2026-06-25T21:48:15Z</updated>
<entry>
<title>Add BFU encode cache and use it in ATRAC3 bit allocation</title>
<updated>2026-06-25T21:48:15Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-06-25T21:48:15Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=bd270db9f2efca6d71959f1e60bc4f3a6867a03a'/>
<id>urn:sha1:bd270db9f2efca6d71959f1e60bc4f3a6867a03a</id>
<content type='text'>
Introduce a generic TEncCache/TUnit library (src/atrac/atrac_enc_cache.*)
that memoizes per-unit quantization results keyed by a user-supplied
function. Units are owned via unique_ptr in a flat vector pre-sized to a
known key bound; the codec supplies both the unit factory (which also
performs the computation, avoiding an extra virtual call on the hot path)
and the key packing.

Wire it into the ATRAC3 allocator: during the lambda binary search the
same (bfu, wordlen) block is quantized repeatedly. TAt3SpecUnit now caches
the mantissas plus the CLC/VLC spectrum costs and energy error, so each
(bfu, wordlen) is computed once per channel. The cache is reset in
TAlloc::Dump (once per channel) so no stale spectrum is reused.

Output is bit-exact with the previous encoder; ~36% faster encode.
</content>
</entry>
<entry>
<title>Add explicit container selection</title>
<updated>2026-05-26T19:32:54Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-05-26T19:32:54Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=01234b09a2fb3e7fc6746ace7554383b0caa97e1'/>
<id>urn:sha1:01234b09a2fb3e7fc6746ace7554383b0caa97e1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add raw output format for ATRAC1/ATRAC3/ATRAC3plus</title>
<updated>2026-05-25T07:33:50Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-05-23T08:04:15Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=5a97fec0876fb6052996311498ea5bd707049c69'/>
<id>urn:sha1:5a97fec0876fb6052996311498ea5bd707049c69</id>
<content type='text'>
Output files with .raw or .dat extensions now write raw frames
with no container header.
</content>
</entry>
<entry>
<title>Build Universal Binary on MacOS and add to cmake.yml (#76)</title>
<updated>2026-05-18T21:09:36Z</updated>
<author>
<name>Li</name>
<email>li@silica.codes</email>
</author>
<published>2026-05-18T21:09:36Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=cda8f9a30d4f19eb5c29085b70f1097b4f79e551'/>
<id>urn:sha1:cda8f9a30d4f19eb5c29085b70f1097b4f79e551</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[AT3P] Add ATRAC3plus RIFF output (#74)</title>
<updated>2026-05-12T20:45:06Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-05-12T20:45:06Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=746602d5eb6984b2a3e9927094f8bc1e67e1ecf3'/>
<id>urn:sha1:746602d5eb6984b2a3e9927094f8bc1e67e1ecf3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use gain energy scale for ATRAC3 allocation</title>
<updated>2026-05-08T22:12:48Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-05-08T22:12:48Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=a57dab0fa16bb48972405ca861f6bfd7059b80b8'/>
<id>urn:sha1:a57dab0fa16bb48972405ca861f6bfd7059b80b8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>atrac3: fix JS gain analysis domain. The regression was added in 16e7ec8</title>
<updated>2026-05-07T21:37:07Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-05-07T21:23:17Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=e6148b4cf5b969f0fc2ef8c23c70bfd913dffb9c'/>
<id>urn:sha1:e6148b4cf5b969f0fc2ef8c23c70bfd913dffb9c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>atrac3: tune bit allocation. Reduce low frequency distortion</title>
<updated>2026-05-03T21:39:18Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-05-03T21:39:18Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=f23acf505e6b81d00f45a5548eda433ff0e30927'/>
<id>urn:sha1:f23acf505e6b81d00f45a5548eda433ff0e30927</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Document platform build instructions</title>
<updated>2026-05-03T20:15:02Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-05-03T20:07:53Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=79f2e0a7f3d06dd90e47a4947dedacedfbe55e45'/>
<id>urn:sha1:79f2e0a7f3d06dd90e47a4947dedacedfbe55e45</id>
<content type='text'>
Add Linux, MSYS2, and MSVC build steps, including PCM backend selection and MSYS2 runtime packaging.
</content>
</entry>
<entry>
<title>Multiple fixes related to IO path(#72)</title>
<updated>2026-05-03T19:22:01Z</updated>
<author>
<name>Daniil Cherednik</name>
<email>dan.cherednik@gmail.com</email>
</author>
<published>2026-05-03T19:22:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/atracdenc/commit/?id=744364f30314bf85725803b1016e66957b772f49'/>
<id>urn:sha1:744364f30314bf85725803b1016e66957b772f49</id>
<content type='text'>
* Fix UTF-8 input and output paths for Windows
* Fix wrong message in case of missed input file
* Add test</content>
</entry>
</feed>
