Come evitare di dover archiviare informazioni extra sull'imbottitura (per l'allineamento delle dimensioni del byte) con la codifica di Huffman
-
05-11-2019 - |
Domanda
Durante la memorizzazione del bit flusso di Huffman codificato in byte, in generale,
- Il byte finale viene imbottito o
- Viene usato uno pseudo simbolo di fine file
Nel primo caso, il numero di bit imbottiti deve essere conservato da qualche parte, che richiede altri 3 bit. In quest'ultimo, perderai un po 'di efficienza a causa del simbolo pseudo aggiuntivo.
Quindi, come posso evitare il costo aggiuntivo di un simbolo pseudo ed evitare anche la necessità di archiviare/trasmettere bit extra per contenere il numero di bit di cuscinetti?
NB Da un lato, sono interessato a comprimere corde corte, quindi risparmiare 3 bit in media può radersi un altro 1% circa dei dati.
Ma soprattutto, sbarazzarsi della necessità di inviare le informazioni di imbottitura (che è conosciuta solo dopo aver comppresso l'intera stringa) prima I dati codificati significa che posso eseguire più facilmente l'algoritmo in modo streaming. Questo non è davvero necessario per le corde brevi, in cui tutto può essere tenuto in memoria, ma a volte le mie stringhe in realtà diventano molto più lunghe e non voglio tenerlo in memoria (considerando che ci sono centinaia di codifiche simultanee in corso ).
Nessuna soluzione corretta