CCI
From Atariki
(Różnice między wersjami)
| Wersja z dnia 17:12, 15 wrz 2006 Epi (Dyskusja | wkład) ← Previous diff |
Aktualna wersja Seban (Dyskusja | wkład) (korekta informacji o budowie formatu) |
||
| Linia 3: | Linia 3: | ||
| Oto jego struktura: | Oto jego struktura: | ||
| * nagłówek - tekst "CIN 1.2 " w ASCII (8 bajtów); | * nagłówek - tekst "CIN 1.2 " w ASCII (8 bajtów); | ||
| - | * skompresowane bloki danych, każdy poprzedzony dwubajtowym słowem opisującym długość (w nawiasach rozmiar po rozpakowaniu): | + | * cztery skompresowane bloki danych (w nawiasach podano rozmiar bloku po rozpakowaniu): |
| ** parzyste linie ramki w trybie [[Graphics_15|15]] ($0F00 bajtów), | ** parzyste linie ramki w trybie [[Graphics_15|15]] ($0F00 bajtów), | ||
| ** nieparzyste linie ramki w trybie 15 ($0F00 bajtów), | ** nieparzyste linie ramki w trybie 15 ($0F00 bajtów), | ||
| ** ramka obrazu w trybie [[Graphics_11|11]] ($1E00 bajtów), | ** ramka obrazu w trybie [[Graphics_11|11]] ($1E00 bajtów), | ||
| ** wartości kolorów dla kolejnych linii trybu 15 (4 x $0100 bajtów, tylko $C0 jest wykorzystywane). | ** wartości kolorów dla kolejnych linii trybu 15 (4 x $0100 bajtów, tylko $C0 jest wykorzystywane). | ||
| - | + | <br> | |
| + | Struktura każdego skompresowanego bloku wygląda następująco: | ||
| + | * dwa bajty określające długość skompresowanego bloku (młodszy, starszy) | ||
| + | * dwa bajty określające ilość "segmentów RLE" które zawiera dany blok (bajty w kolejności młodszy starszy) | ||
| + | * '''UWAGA!''' długość bloku jest podana bez uwzględnienia dwóch bajtów określających ilość segmentów | ||
| + | <br> | ||
| Format skompresowanych danych opiera się na prostym algorytmie [http://pl.wikipedia.org/wiki/RLE RLE]: | Format skompresowanych danych opiera się na prostym algorytmie [http://pl.wikipedia.org/wiki/RLE RLE]: | ||
| * bajt ze skasowanym bitem 7 oznacza, że po nim wystąpi blok nieskompresowany o długości określonej przez pozostałe 7 bitów; | * bajt ze skasowanym bitem 7 oznacza, że po nim wystąpi blok nieskompresowany o długości określonej przez pozostałe 7 bitów; | ||
| * bajt z ustawionym bitem 7 oznacza, że po nim wystąpi bajt, który będzie powtórzony tyle razy, ile określa to pozostałe 7 bitów. | * bajt z ustawionym bitem 7 oznacza, że po nim wystąpi bajt, który będzie powtórzony tyle razy, ile określa to pozostałe 7 bitów. | ||
| + | *'''UWAGA!''' Wartości określające ilość skompresowanych/nieskompresowanych bajtów należy powiększyć o jeden. np. wartość #0 oznacza jeden nieskompresowany bajt, a wartość #$FF oznacza 128 powtórzeń | ||
| + | <br> | ||
| Dane ramek obrazu kompresowane są w pionie, tzn. przy rozpakowywaniu kolejne bajty nie są umieszczane bezpośrednio po sobie w pamięci, ale najpierw tworzona jest pierwsza kolumna z lewej strony, od góry do dołu, a potem sukcesywnie w prawo. | Dane ramek obrazu kompresowane są w pionie, tzn. przy rozpakowywaniu kolejne bajty nie są umieszczane bezpośrednio po sobie w pamięci, ale najpierw tworzona jest pierwsza kolumna z lewej strony, od góry do dołu, a potem sukcesywnie w prawo. | ||
| Dane kolorów są już lokowane w naturalnej kolejności. | Dane kolorów są już lokowane w naturalnej kolejności. | ||
| + | |||
| + | [[Kategoria: Formaty plików]] | ||
Aktualna wersja
Skompresowany format zapisu kolorowych obrazków używany przez program CIN.
Oto jego struktura:
- nagłówek - tekst "CIN 1.2 " w ASCII (8 bajtów);
- cztery skompresowane bloki danych (w nawiasach podano rozmiar bloku po rozpakowaniu):
Struktura każdego skompresowanego bloku wygląda następująco:
- dwa bajty określające długość skompresowanego bloku (młodszy, starszy)
- dwa bajty określające ilość "segmentów RLE" które zawiera dany blok (bajty w kolejności młodszy starszy)
- UWAGA! długość bloku jest podana bez uwzględnienia dwóch bajtów określających ilość segmentów
Format skompresowanych danych opiera się na prostym algorytmie RLE:
- bajt ze skasowanym bitem 7 oznacza, że po nim wystąpi blok nieskompresowany o długości określonej przez pozostałe 7 bitów;
- bajt z ustawionym bitem 7 oznacza, że po nim wystąpi bajt, który będzie powtórzony tyle razy, ile określa to pozostałe 7 bitów.
- UWAGA! Wartości określające ilość skompresowanych/nieskompresowanych bajtów należy powiększyć o jeden. np. wartość #0 oznacza jeden nieskompresowany bajt, a wartość #$FF oznacza 128 powtórzeń
Dane ramek obrazu kompresowane są w pionie, tzn. przy rozpakowywaniu kolejne bajty nie są umieszczane bezpośrednio po sobie w pamięci, ale najpierw tworzona jest pierwsza kolumna z lewej strony, od góry do dołu, a potem sukcesywnie w prawo.
Dane kolorów są już lokowane w naturalnej kolejności.
