Quando si suddividono gli intervalli per la codifica aritmetica, lo scenario peggiore è che l'intervallo finale avrà la dimensione 2^(1-n)
, dove n
è il numero di simboli univoci che si codificano. Questo raggiungerà i limiti della precisione della macchina, quando si usano i normali tipi di dati, molto rapidamente: ad esempio, ho realizzato un'implementazione JavaScript e si interrompe dopo aver codificato circa 15 caratteri!
Dato che questo è piuttosto limitante, come fanno i codec a risolvere questo problema?
- Codifica [molto] brevi blocchi, entro i limiti della macchina, e concatenali insieme? Ciò aggiungerà un sovraccarico.
- Utilizzare tipi non nativi con precisione arbitraria? Questo sarà lento.
- Qualcos'altro? ...