utilità del checksum PNG rispetto alla sua mancanza in altri formati FourCC

2

PNG fa parte di una famiglia di formati contenitore generalmente denominata FourCC o OSType . [A] IFF e WAV sono altre due istanze comuni del formato.

Voglio sviluppare un nuovo formato per un tipo di dati specializzato. Ho modellato il formato da vicino su PNG. PNG è insolito per la famiglia FourCC in quanto ogni blocco termina con un checksum. In teoria questo può essere usato per verificare la presenza di dati corrotti.

Il checksum è utile per casi pratici? I nuovi formati, come il WebP di Google (basato su RIFF), non hanno un checksum. Non riesco a trovare le linee guida su cosa fare con esso, tra cui:

  • tutti i lettori dovrebbero verificare il checksum o la maggior parte dei lettori lo ignorano?
  • che cosa dovrebbe fare un lettore se è sbagliato?

Poiché non sono convinto che sia utile, e il supporto del checksum rende le cose più complicate, ho intenzione di omettere il checksum nella prossima revisione. Ma dal momento che è in PNG, immagino ci sia una buona ragione, volevo avere un feedback su come le persone effettivamente usano quel campo e la sua importanza relativa.

    
posta Andrew Dalke 12.06.2011 - 23:35
fonte

1 risposta

1

Is that checksum useful for practical cases?

Come formato di compressione grafica raster senza perdita, PNG è stato sviluppato nel 1995 in risposta a Unisys che sventola un brevettare e richiedere royalties dalle innumerevoli società di software che stavano supportando GIF.

Di ritorno in quei tempi, quando i dinosauri vagavano per la terra e abbiamo inciso il nostro codice sul silicio grezzo con scalpelli, le connessioni Internet affidabili e cablate erano rare e piuttosto costose. (Ricordo di aver chiamato PacBell nella Bay Area nel 1995 e di aver chiesto una connessione Internet DSL e di avere un sacco di "Huh? Che cos'è?".) La maggior parte delle persone e anche le piccole aziende avevano la loro connettività - Internet, UUCP o BBS - tramite modem che utilizzano la connessione remota su linee telefoniche instabili e il danneggiamento dei dati durante i trasferimenti è stato endemico.

Quindi i valori CRC (checksum non meno affidabili) in PNG: era un modo per vedere se l'immagine che avevi appena scaricato era stata danneggiata e dovevi scaricarla di nuovo. Troverai lo stesso tipo di checksum in altri formati di compressione binaria che risalgono a quell'epoca o prima, in particolare archivi zip.

Ne hai bisogno oggi? Se sei positivo, tutti i protocolli sui quali verranno trasferiti i tuoi dati manterranno la sua fedeltà in tutte le circostanze, forse no. Tuttavia, a volte mi capita di avere archivi zip corrotti, quindi quando si progettano formati di file binari per i dati che contano davvero, considero i valori CRC come un'assicurazione economica contro la corruzione.

should all readers verify the checksum, or do most readers ignore it?

Con PNG, sì, dovrebbero.

what should a reader do if it's wrong?

Rifiuta l'immagine come danneggiata e avvisa l'utente.

    
risposta data 13.06.2011 - 01:25
fonte

Leggi altre domande sui tag