** Idag gör vi arbeten på vårt system, kortare störningar och nedtid kan förekomma. **

Annons

Verifiera Jpeg

Produkter
(logga in för att koppla)

A.Dent

Aktiv medlem
Finns det något program som kan verifiera att en jpeg-fil är hel och går att öppna till en bild? Efter att ha läst här om att jpeg-bilder har blivit förstörda på en i övrigt fungerande hårddisk så skulle det kännas skönt att kunna testa om alla bilder går att läsa och kanske kunna hindra att felet sprider sig.
 
På din fråga skulle jag vilja säga först nej ("är hel") och sedan ja ("går att öppna till en bild").

Jag är rädd att det är ett olösligt problem. Det hela skulle nämnligen kräva att du kan få en dator att förstå när en bild är trasig respektive när den bara ser ut som en trasig bild. Låt mig förklara närmare...

Det finns två fall när en JPEG-fil blir korrupt. I det ena fallet råkar felet i filen ligga så elakt till att JPEG-avkodaren inte kan avkoda datat. Då har du "tur". Du får direkt veta att bilden är trasig. I det andra fallet råkar felet i filen ligga så att JPEG-avkodaren kan avkoda den men att den avkodade bilden inte blir som ursprungsbilden. Det enda sättet då är om programmet på något intelligent sätt kan avgöra om bilden då är trasig eller om det är en bild som är tänkt att se ut så. Det är kanske så att man kan få en dator att med hjälp av maskinseende tolka en bild och förstå att något inte är rätt men det är inte säkert att en människa kan avgöra och göra en sådan tolkning korrekt. Med största sannolikhet ser bilden gräslig ut om det är ett foto men det är inte nödvändigtvis alltid sant.

Troligen är den första typen av fel vanligare men du kan inte utesluta det andra fallet.

Men det är klart, nöjer man sig med att filerna ska gå att öppna kan man ju testa om filerna går att avkoda genom att köra något program som testar att hämta information från dem. Antar att ImageMagicks program skulle kunna vara hjälpsamma här, tex identify -verbose filnamn.jpg. Du kan lätt skriva ett skript som går igenom flera filer och försöker visa informationen, men det gäller att se vilka filer som inte går att öppna. Detta kommando spottar ur sig mycket information. Ett annat kommando som skulle kunna vara till hjälp är djpeg som följer med standarddistributionen av JPEG-biblioteken. Det är ett program som konverterar en JPEG-bild till ett annat format. Man kan ju prova att konvertera och sedan slänga bilden.

Ytterligare ett sätt är att alltid beräkna checksumman för bilderna, direkt när man fått över dem till datorn och vet att de är ok, med något smart program, tex md5 eller md5sum och sedan kolla den. Har checksumman ändrats har någon eller något pillat på filen. Finns även program som kan generera checksummefiler för en mängd filer och sedan testa igen.

Sedan är frågan vad du ska göra om du upptäcker korrupta filer. De är ju redan förstörda då! Bäst är att göra backuper så tidigt som möjligt, gärna till flera olika media.

Vet inte riktigt om det var det här svaret du önskade, men...
 
maxzomborszki skrev:
Sedan är frågan vad du ska göra om du upptäcker korrupta filer. De är ju redan förstörda då! Bäst är att göra backuper så tidigt som möjligt, gärna till flera olika media.

Det finns ju program som tex RAR som kan skapa ett "Recovery Record" som gör att x byte kan vara skadade och filen ändå går att läsa korrekt.
Detta borde ju vara fullt möjligt att göra externt med något program. Om det finns sådana program vet jag dock inte.
Annars kan man ju packa sina JPEG:ar med tex RAR och dels få en checksumma för varje fil och ett meddelande om filen är trasig om man försöker packa upp den. Dels kan man återskapa filen även om några byte är trasiga.
Filerna blir ju dock inte lika lättillgängliga då.
 
Sidospår om felkorrigering

Det är inte ett helt enkelt problem. Visst går det att skydda sitt data på olika sätt, personligen har jag dock aldrig råkat stöta att man gör det på filnivå. Oftast gör man det på lagringsmediat. Det vanligaste är kanske de nivåer av RAID som erbjuder feltolerans. När man gör det på filnivå är frågan var man ska lägga extradatat. I en fil bredvid på samma disk? Kanske lite osäkert om felet beror på diskskador. Om inte så kan det vara besvärligt att jämföra. Kanske både och? Om man nu bara orkar göra det hela tiden :)

Att lagra extra redundant data för att upptäcka och korrigera fel är mycket enkelt. Har man läst diskret matematik har man troligen stött på till exempel Hammingkoder.

Det finns en lösning jag har sett för att hålla koll på sina CD och DVD-skivor. dvdisaster skapar information utifrån skivor som gör att man kan återskapa data från dem om de skulle bli skadade. Informationen den skapar är betydligt mindre än originalinformationen vilket gör att det inte är detsamma som att spara en kopia av originalet (dessutom måste man spara minst två kopior för att kunna jämföra om man använder den "naiva" metoden).

Nackdelen med felkorrigering är att man beräkna felkoderna INNAN något inträffar. När väl felet inträffar är det kört annars. Det är troligen därför som man inte gör det på filnivå, för då är det upp till användaren att se till att filerna blivit kollade. Risken är stor att man glömmer det. Görs det på lagringsmediet eller filsystemsnivån så är det transparent för användaren.

Jag rekommenderar backup. Själv lagrar jag mina bilder på två olika DVD-media (av olika typ och fabrikat) samt en extern hårddisk. Är bilderna kritiska för din verksamhet eller har väldigt stort affektionsvärde bör man titta på brandsäkra skåp och lagring på annan plats också alternativt hyra professionell hjälp.

Sen är det klart att backup inte utesluter felkorrigering. Kanske borde man ta och köra dvdisaster på sina backup-DVD. Man kan faktiskt ha både bälte och hängslen.
 
Oj. Minnet sviker en ibland. Det är klart att jag stött på sådant tidigare, PAR. Det finns till diverse plattformar och kan nog användas till ovan nämnda ändamål även om ursprungssyftet var lite annat. Det är tänkt att återskapa delar av arkiv splittade över flera filer snarare än delar av filer.

Dock kvarstår problematiken med att man måste komma ihåg att generera de felkorrigerande bitarna innan filerna blir korrupta (samt lagra dem på lämplig plats).
 
Senast ändrad:
maxzomborszki skrev:
Oj. Minnet sviker en ibland. Det är klart att jag stött på sådant tidigare, PAR. Det finns till diverse plattformar och kan nog användas till ovan nämnda ändamål även om ursprungssyftet var lite annat. Det är tänkt att återskapa delar av arkiv splittade över flera filer snarare än delar av filer.

Dock kvarstår problematiken med att man måste komma ihåg att generera de felkorrigerande bitarna innan filerna blir korrupta (samt lagra dem på lämplig plats).

Det lättaste är nog att använda PAR när man lagrar på sina backup-skivor. Då är det inte så svårt att komma ihåg det. Samt att man har både backup (hela kopior) samt skyddar sig mot repiga/trasiga backup-skivor.
 
Man kan även använda cheksummor för att verifiera att filerna fortfarande är hela.Jag genererar och sparar md5-checksummor för alla bilder när jag tankar in dem från kameran. Checksummorna i sig skyddar inte mot dataförlust men de gör det väldigt smidigt att verifiera att backupskivor och liknande är hela (både direkt efter bränningen och med jämna mellanrum efter).

För att skydda mot dataförlust så gör jag flera kopior av backuperna och lagrar en uppsättning på annan plats.
 
qvirre skrev:
Det lättaste är nog att använda PAR när man lagrar på sina backup-skivor.
Precis. Samma användningsområde som dvdisaster alltså (nämnd tidigare).

Men med tanke på att många inte ens verkar göra en kopia på sina bilder så är detta nog i en helt annan liga än vad de flesta spelar i.

Anders Gidenstam (andgi) skrev:
Man kan även använda cheksummor för att verifiera att filerna fortfarande är hela. [...] Checksummorna i sig skyddar inte mot dataförlust men de gör det väldigt smidigt att verifiera att backupskivor och liknande är hela
Sant, checksummor nämndes tidigare.

Alla dessa lösningar lider dock av en mycket kraftig nackdel, användarinteraktion. Man vill egentligen inte bry sig om saker som feldetektion, felkorrigering och backup. Det ska bara fungera. Tar det för mycket energi görs det inte i långa loppet annat än av entusiaster eller folk som lärt sig den hårda vägen (och även det är sällan något som håller i sig).

Det finns inte många bra system för att hantera detta småskaligt. Jag har själv hackat ihop tex egna backuprutiner men det är inte kul att göra allt själv och hjulet uppfinns om igen för många gånger.

När det gäller Håkans ursprungsproblem, med att finna vilka filer som går att öppna så verkar det inte finnas något bra verktyg utan man får skapa egna. Visst kan man använda någon form av katalogiseringsprogram (tex iMatch) för att gå igenom en bildsamling, men de flesta sådana är skrivna för att vara toleranta och inte kräkas på fel alternativt avbryta och meddela användaren vid första problem. Vi vill i detta fall ha motsatsen. Ett program som inte gör annat är gå igenom filer och rapportera vilka filer i en stor samling som inte gick att avkoda. Ganska trivialt att tillverka men samtidigt med begränsat användningsområde om man inte integrerar det i ett större sammanhang där programmet berättar var man har lagrat en backup av denna fil eller begär "felkodsskivan" för att återskapa filen till ursprungsskick.
 
Checksummor verkar vara bra för att kolla så att en fil inte har ändrats av något fel på datorn eller operativsystemet. I så fall kan det vara dax att kolla så att backupskivorna fungerar. Och undersöka varför det blir fel på filerna.

PAR kan nog vara bra för säker lagring. Men är det inte så att en cd/dvd skiva antingen går att läsa eller inte alls är läsbar? Då hjälper knappast något PAR.
 
Ibland kan det vara så att bara är små delar av en skiva som inte går att läsa. Det beror på VAR den är skadad. Om TOC är oläsbar så är det nog inte så mycket att göra, annars kan det vara enstaka filer som förloras och ibland kan det bara vara en liten del av en fil som är trasig.
 
Som någon skrev här PAR eller rättare sagt PAR2 - grymt bra! Kan bygga "återuppbyggningsfiler" för all typ av data. T.e.x. om du har 100 bilder som tar 1gb så kan du bygga 10% PAR2 fil(100mb) och använda dessa för att "laga" filer som är "trasiga". Den bedömmer helheten via en CRC32 checksumma som räknas ut när bilden är hel.

Mvh Lazze
 
ANNONS
Upp till 6000:- Cashback på Sony-prylar