Come evitare di dover archiviare informazioni extra sull'imbottitura (per l'allineamento delle dimensioni del byte) con la codifica di Huffman

cs.stackexchange https://cs.stackexchange.com/questions/100159

  •  05-11-2019
  •  | 
  •  

Domanda

Durante la memorizzazione del bit flusso di Huffman codificato in byte, in generale,

  1. Il byte finale viene imbottito o
  2. 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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top