CCI: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Mono (dyskusja | edycje)
m kategoria tryby graficzne
Seban (dyskusja | edycje)
m korekta informacji o budowie formatu
 
(Nie pokazano 1 wersji utworzonej przez jednego użytkownika)
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]]
[[Kategoria: Formaty plików]]
[[Kategoria: Tryby graficzne]]

Aktualna wersja z 3 sty 2023, 14:20

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):
    • parzyste linie ramki w trybie 15 ($0F00 bajtów),
    • nieparzyste linie ramki w trybie 15 ($0F00 bajtów),
    • ramka obrazu w trybie 11 ($1E00 bajtów),
    • wartości kolorów dla kolejnych linii trybu 15 (4 x $0100 bajtów, tylko $C0 jest wykorzystywane).


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.