Resource Interchange File Format

De Resource Interchange File Format is een generiek bestand container formaat voor het opslaan van gegevens in getagd brokken. Het wordt voornamelijk gebruikt voor het opslaan multimedia zoals geluid en video, al kan ook worden gebruikt om willekeurige gegevens.

De Microsoft-implementatie is vooral bekend door de container formaten zoals AVI, ANI en WAV, die RIFF gebruiken als hun basis.

Geschiedenis

RIFF werd in 1991 geïntroduceerd door Microsoft en IBM, en werd door Microsoft gepresenteerd als het standaard formaat voor Windows 3.1 multimediabestanden. Het is gebaseerd op Electronic Arts 'Interchange File Format, geïntroduceerd in 1985 op de Commodore Amiga, het enige verschil is dat de multi-byte integers zijn in little-endian formaat, afkomstig uit de 80x86 processor serie gebruikt in de IBM PC, in plaats van de grote -endian formaat afkomstig van de 68k processor serie gebruikt in de Amiga en Apple Macintosh computers, waar de IFF bestanden zwaar werden gebruikt.

In 2010 introduceerde Google de WebP beeldformaat, die RIFF gebruikt als een container.

Uitleg

RIFF bestanden bestaan ​​geheel uit "brokken". De algemene indeling is identiek aan IFF, behalve de Endianness zoals eerder vermeld, en de andere betekenis van de chunk namen.

Alle stukken hebben de volgende indeling:

  • 4 bytes: een ASCII-ID voor dit stuk.
  • 4 bytes: een niet-ondertekende, little-endian 32-bits geheel getal met de lengte van dit stuk.
  • variabele-en kleinbedrijf gebied: de brok gegevens zelf, van de omvang die in het vorige veld.
  • een pad byte, als de lengte van het stuk is niet eens.

Twee brok identifiers, "RIFF" en "LIST", invoering van een stuk dat subchunks kan bevatten. De RIFF en LIST brok gegevens heeft de volgende indeling:

  • 4 bytes: een ASCII-identifier voor deze specifieke RIFF of LIST brok.
  • rest van gegevens: subchunks.

Het bestand zelf bestaat uit een RIFF chunk, die dan verder subchunks kan bevatten: dus de eerste vier bytes van een correct geformatteerde RIFF bestand zal beschrijven "R", "I", "F", "F".

Meer informatie over de RIFF-indeling kan worden gevonden in de Interchange File Format artikel.

RF64 is een multichannel bestandsformaat gebaseerd op RIFF-specificatie, ontwikkeld door de European Broadcasting Union. Het is BWF-compatibel en laat bestandsgroottes tot 4 gigabytes overschrijden

Gebruik van de INFO chunk

De optionele INFO brok maakt RIFF bestanden worden "gelabeld" met de informatie die in een aantal vooraf gedefinieerde categorieën, zoals het auteursrecht, opmerkingen, kunstenaar, op een gestandaardiseerde manier. Deze gegevens kunnen worden gelezen uit een RIFF bestand, zelfs als de rest van het bestandsformaat is niet herkend. De standaard maakt ook het gebruik van door de gebruiker gedefinieerde velden. Programmeurs van plan om niet-standaard velden gebruikt moeten in gedachten houden dat dezelfde niet-standaard subchunk ID kan worden gebruikt door verschillende toepassingen op verschillende manieren.

Compatibiliteitsproblemen

Aanvankelijke problemen met MIDI-bestanden

In lijn met het beleid van using.RIFF voor alle Windows 3.1 "multimedia" bestanden, Microsoft introduceerde een nieuwe variant op de bestaande MIDI-bestand wordt gebruikt voor het opslaan van informatie over het nummer worden gespeeld op elektronische muziekinstrumenten. Microsoft's "nieuwe" MIDI bestandsformaat bestond uit een standaard MIDI-bestand ingesloten in een RIFF 'wrapper', en had het bestand extension.RMI. Aangezien de huidige MIDI bestandsformaat reeds ondersteund embedded "tagging" gegevens, de voordelen voor de gebruiker van een nieuw formaat niet duidelijk.

De MIDI Manufacturers Association hebben sindsdien omarmd de RIFF-gebaseerde MIDI bestandsformaat, en gebruikte het als de basis van een "uitgebreide midifile" dat ook instrument data in "DLS" -formaat, ingebed in het bestand same.RMI.

INFO chunk plaatsing problemen

Voor catalogiseerdoeleinden, de optimale positie voor de INFO chunk nabij het begin van het bestand. Aangezien de INFO chunk optioneel, is het vaak weggelaten uit de gedetailleerde specificaties van de afzonderlijke bestandsformaten, waardoor enige verwarring in de juiste positie voor dit stuk in een bestand.

Bij het omgaan met grote mediabestanden, de uitbreiding of inkrimping van de INFO chunk tijdens tag-editing kan resulteren in de volgende paragraaf "data" van het dossier te hebben gelezen te worden en terug naar de schijf herschreven om de nieuwe header grootte tegemoet. Aangezien mediabestanden kan gigabytes, dit is een potentieel diskintensieve proces. Een oplossing is om "pad" van het toonaangevende INFO chunk met dummy data wanneer het bestand wordt gemaakt. Later bewerken kan dan vergroten of het veld "dummy" om de totale omvang van het bestand header constant te houden: een intelligent geschreven stukje software kan dan overschrijven alleen de header als tagging gegevens worden gewijzigd, zonder te wijzigen of te verplaatsen van het hoofdgedeelte van het bestand.

Sommige programma's hebben getracht het probleem door het plaatsen van de INFO stuk aan het einde van een mediabestand, na het hoofdlichaam van het bestand. Dit heeft geresulteerd in twee verschillende conventies voor stuk plaatsing, met het risico dat sommige combinaties van software kan leiden INFO gegevens van een bestand te worden genegeerd of permanent overschreven tijdens het bewerken. Meer geavanceerde programma's wordt rekening gehouden met de mogelijkheid van een "onverwachte" brok plaatsing in bestanden en dienovereenkomstig reageren. Bijvoorbeeld, wanneer de audio-editing programma Audacity ontmoetingen a.WAV bestand-end geplaatst INFO data, zal het correct identificeren en te lezen van de gegevens, maar op sparen, zal de INFO stuk terug naar de header verplaatsen.

Hoewel CorelDRAW 10 maakt gebruik van nominaal een RIFF bestandsstructuur, de programma's eerste release plaatste de INFO brok aan het einde, zodat eventuele ingesloten voorvertoning bitmap niet onder de file manager Windows zou worden standaard weergegeven. Een "patch" met het programma meegeleverde hulpprogramma lost dit probleem.

RIFF Info Tags

RIFF INFO-tags zijn gevonden in WAV audio en AVI-videobestanden. Labels die deel uitmaken van de Exif 2.2-specificatie zijn, hebben een onderstreept Tag Naam in de HTML-versie van deze documentatie. Andere tags worden gevonden in AVI-bestanden die door Sony Vegas videobewerkingssoftware.

Omzetten DTIM tijd tot normale tijd

Het veld bestaat uit twee waarden, gescheiden door een spatie. Voorbeeld code:

Enkele veel voorkomende RIFF bestandstypen

  • WAV
  • AVI
  • RMI
  • CDR
  • ANI
  • DLS
  • WebP
  • XMA
  • xWMA
  • TrID definities
(0)
(0)
Commentaren - 0
Geen commentaar

Voeg een reactie

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tekens over: 3000
captcha