Copyright (C) 2002 HelDoRe
Web design by Nauthiz

 
Project hosted at
SourceForge.Net

English version of this page

Opis formatu ZMG

MGA View, oprócz tego, że obsługuje bardzo dużą ilość formatów graficznych, może konwertować wyświetlane pliki do swojego własnego formatu, tj. zmg. Jak na razie niemożliwe jest jeszcze działanie odwrotne, tj. zapisywanie plików zmg do innych formatów niż tga, ale najprawdopodobniej funkcja ta zostanie dodana w przyszłości.

Budowa pliku w formacie zmg jest bezpośrednio związana ze sposobem, w jaki MGA View przetwarza dane pliku, by móc go wyświetlić. Sterownik mga_vid korzysta z danych nie w formacie RGB, a YUV. YUV oznacza kombinację trzech składowych, z czego Y zajmuje 1 bajt na piksel i zapisuje kontury obrazka, natomiast U i V zajmuja po 1 bajcie na 4 piksele (innymi slowy obszar 2x2 piksele) i oznaczają odpowiednio intensywność niebieskiego i czerwonego. Jeśli U i V wynoszą -128, obrazek jest czarnobiały (innymi słowy składowa Y to grayscale, a U i V kolorują obrazek). Więcej informacji na temat YUV znajduje się tutaj.

W związku z tym, aby obrazek mógł być wyświetlony, MGA View musi dokonać konwersji z RGB do YUV. Dopiero w tej postaci dane przesyłane są do pamięci karty. ZMG wykorzystuje to, zapisując dane obrazka właśnie jako YUV, dzięki czemu obrazek w tym formacie wczytuje się szybciej, gdyż nie wymaga wcześniejszej konwersji.

Poniżej znajduje się dokładny opis budowy pliku w formacie ZMG:

Plik ma nagłówek "zMG"
Potem jest wersja (jak na razie moze to byc 1,2,3 lub 4) :

  • 1 - YU12 nieskompresowana
  • 2 - YU12 skompresowana
  • 3 - YU12 nieskompresowana w skali szarości
  • 4 - YU12 skompresowana w skali szarości

Szerokość obrazka 2 bajty
wysokość 2 bajty

Wersja 1
składowa Y, potem U a na koncu V

Wersja 2
Następne 3 bajty określają liczbę danych skompresowanych dla skladowej Y, po czym bezpośrednio za tym są dane.
3 kolejne bajty - dlugość skompresowanej składowej U (a zaraz za tym dane).
i znowu 3 bajtu dlugość składowej V (i zaraz za nimi dane).

Wersja 3
składowa Y

Wersja 4
3 bajty określają liczbę danych skompresowanych dla skladowej Y, po czym bezpośrednio za tym są dane.

czyli:


 opis               liczba bajtów
 HEADER                   3
 VERSION                  1
 IMAGE X                  2
 IMAGE Y                  2

 jeśli wersja 1
 składowa Y       IMAGE X * IMAGE Y
 składowa U      (IMAGE X * IMAGE Y)/4
 składowa V      (IMAGE X * IMAGE Y)/4

 jeśli wersja 2
 długość Y                3
 składowa Y           długość Y
 długość U                3
 składowa U           długość U
 długość U                3
 składowa U           długość U

jeśli wersja 3
 składowa Y       IMAGE X * IMAGE Y

 jeśli wersja 4
 długość Y                3
 składowa Y           długość Y

Last update: środa, 16 października 2002   MGA View 2002 by HelDoRe <tehace@konto.pl>
Web design by Nauthiz <nauthiz@wp.pl>