È possibile utilizzare il formato brotli come è per questo scopo. Li ho fatti aggiungere l'opzione di mettere i metadati nei meta-blocchi vuoti (dove "vuoto" significa che il meta-blocco produce zero dati non compressi). Puoi mettere i marcatori nei metadati per aiutarti a trovare i meta-blocchi. Un meta-blocco vuoto inserito avvia anche il successivo meta blocco a un limite di byte.
Ogni meta blocco può essere indipendente dagli altri meta-blocchi. Se il flusso è costruito in questo modo, non vi è alcun problema con la combinazione di essi durante la compressione o la decompressione separata. Le aree di possibile dipendenza sono il buffer circolare delle ultime quattro distanze utilizzate e i riferimenti all'indietro oltre l'inizio del meta-blocco corrente. Per l'uso parallelo, un meta blocco può e deve essere costruito in modo da non dipendere dalle ultime quattro distanze, non facendo riferimento al buffer circolare fino a quando non è stato riempito con le distanze dal meta-blocco corrente. Inoltre, non saranno consentite distanze che arrivano prima del meta-blocco corrente (che non include riferimenti statici). Infine, si aggiunge un meta blocco vuoto o metadati per portare la sequenza su un limite di byte per una facile concatenazione.
A proposito, sembra che tu stia collegando una versione precedente del formato bozza. Ecco uno link to the current version.
fonte
2016-07-03 16:10:44
Questo aiuta un mucchio! Ero un po 'preoccupato per i meta-blocchi (come aveva proposto la bozza più vecchia), quindi sono davvero contento di vedere che l'opzione che hai messo in loro è ora disponibile. Esiste un modo preferito o consigliato per verificare/checksum del flusso; Stavo pensando che potrebbe non essere un problema se tutto si svolgesse a livello locale, anche se forse non ci potrebbe essere un bisogno, forse. Grazie mille! –
Mi hanno chiesto di proporre un formato wrapper per brotli con controlli di integrità e altre funzionalità, cosa che ho fatto e che è possibile [trovare qui] (https://github.com/madler/brotli/blob/master/br-format- v3.txt). Tuttavia non so che l'abbiano accettato o raccomandato. –