Hi Alvaro
There are potentially several questions embedded into your requirement.
If what you wish is "just the frequency table" as stated, then it's possible to do it now.
This part is handled by the FSE advanced API.
Look into :
Code:
size_t FSE_count(unsigned* count, const unsigned char* src, size_t srcSize, unsigned* maxSymbolValuePtr);
size_t FSE_normalizeCount(short* normalizedCounter, unsigned tableLog, const unsigned* count, size_t total, unsigned maxSymbolValue);
size_t FSE_buildCTable(void* CTable, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog);
If what you wish is to get some "precalculated entropy tables" applicable for all symbol types generated by Zstd,
then this is more complex.
I planned to implement this feature, since it's important for compressing small packets, but it's not going to happen soon.
There are a few caveats to solve first.
If programming remain a side activity, 2016 looks a probable timeline.
If what you wish is a kind of optimal "precomputed dictionary" selected to improve compression of some files or DB rows divided into small blocks,
then it's necessary to develop a "dictionary builder", which is in essence a complete project on its own.
I currently do not plan to develop such a tool.
Well, of course, should my employer require me to work on it, this statement will change.