Resource Interchange File Format

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Resource Interchange File Format (RIFF)format plików przeznaczony do przechowywania danych multimedialnych.

Format RIFF został wprowadzony przez firmy Microsoft i IBM w 1991 roku jako domyślny format plików multimedialnych dla Windows 3.1. Format ten bazuje na formacie IFF, opracowanym przez Electronic Arts we współpracy z Commodore dla komputerów Amiga 1000 w 1985 roku. Jedyna różnica to zmiana kolejności bajtów w sekwencjach bajtów zawierających dane liczbowe, co było związane ze zmianą architektury procesora z M68xxx na 80x86.

Format RIFF jest używany do przechowywania dźwięku (RIFF WAVE), obrazów (RDI), video (RIFF AVI), muzyki MIDI (RMI) i innych.

Budowa formatu[edytuj | edytuj kod]

Format RIFF opiera się na oznakowanych blokach danych o podanej długości (ang. chunks). Każdy blok składa się z nagłówka i pola danych. Nagłówek zawiera identyfikator bloku i długość pola danych. Identyfikator (zwany też FourCC) to cztery bajty – litery w kodzie ASCII. Następuje po nim 32-bitowa liczba bez znaku zapisana w formacie little endian określająca długość pola danych w bajtach.

Plik w formacie RIFF składa się z bloku nadrzędnego o identyfikatorze "RIFF", wewnątrz którego znajduje się 4-bajtowy identyfikator podformatu (np. "WAVE"), a następnie bloki podrzędne, których identyfikatory, ilość, kolejność występowania i zawartość pól danych zależą od podformatu. W prawidłowo zbudowanym pliku RIFF długość bloku głównego jest równa długości całego pliku pomniejszonego o 8. Konstrukcja formatu ogranicza maksymalną długość pliku do 4 GB.

Konstrukcja formatu RIFF jest bardzo podobna do IFF, różnica polega na sposobie zapisu długości bloków (IFF używa zapisu big endian).

Przykład pliku[edytuj | edytuj kod]

Riff.svg

Rysunek przedstawia strukturę przykładowego pliku RIFF WAVE o całkowitej długości 43 647 208 bajtów. Kolorem zielonym oznaczono blok główny, kolorami niebieskim i brązowym bloki podrzędne. Przyciemniono nagłówki bloków (identyfikator i długość pola danych). Lewa kolumna zawiera numer bajtu od którego zaczynają się dane w kolumnie środkowej.

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]