• CAM 8 - Wprowadzenie do systemu datatypes

18.02.2005 23:00, autor artykułu: Oliver Roberts
odsłon: 3938, powiększ obrazki, wersja do wydruku,

Wprowadzenie do picture datatypes w OS4 - autor Oliver Roberts

Pomysł datatypes zadebiutował w AmigaOS 3.0 sprawiając, że aplikacje zdolne są bez większych problemów wirtualnie odczytać każdy rodzaj pliku zawierającego dane (obrazki, dźwięki, filmy itd.), dla którego istnieje odpowiednia klasa datatype. W szczególnych przypadkach pomogło to zaoszczędzić programistom trudu i czasu podczas pracy nad własnymi procedurami dekodującymi, jak również sprawiło, że aplikacje mogły wczytywać dowolne rodzaje danych bez potrzeby modyfikacji samej aplikacji.

Każdy zgodnie przyzna, że najczęściej używanym i najważniejszym rodzajem danych obsługiwanym przez datatypes są obrazki, a z racji, że jest to obszar moich szczególnych zainteresowań, artykuł ten głównie skoncentruje się na tym zagadnieniu. Obecnie traktujemy datatypes niczym codzienność, ale wyobraźmy sobie, że jesteśmy ograniczeni tylko do używania obrazów w formacie ILBM! Wydaje się to nieprawdopodobne, lecz do AmigaOS3.0 aplikacje same musiały radzić sobie z dekodowaniem danych graficznych. System datatypes sprawił, że aplikacje z łatwością zaczęły radzić sobie z wczytywaniem obrazów wykorzystując preferowane przez użytkownika formaty.

Picture datatypes wykorzystywane jest w wielu komponentach OS4. Odbywa się to w znacznie większym niż dotychczas stopniu - nie tylko na blacie Workbencha oraz przez Multiview. Nowe Intuition GUI opiera się na datatypes. Datatypes wykorzystywane są również przez IBrowse, który zawsze odwołuje się do datatypes w momencie gdy napotka na obraz, z którym sam nie może sobie poradzić (dla przykładu, czasami można natknąć się na strony www posiadające obrazy w formacie BMP).

W przeszłości, regułą było, że klasy datatypes opracowywane i rozwijane były przez tzw. "third parties", za wyjątkiem jednej zdolnej odczytywać obrazy w formacie ILBM (i tylko 8-bitowe), którą otrzymywało się w momencie instalacji systemu 3.1. Z racji, że jest to tradycyjny format zapisu danych graficznych na Amidze, musiał być obsługiwany przez sam system. Niestety, trud znalezienia i zainstalowania reszty datatypes stworzonych przez "osoby trzecie", pozwalających obsługiwać inne typy danych, spoczywał na barkach użytkownika. Na szczęście, AmigaOS3.5 jak i 3.9 dostarczane były wraz z datatype JPEG i GIF, lecz żadne z nich nie korzystały z szybkości procesorów PPC, pomimo tego, że obsługa tych procesorów (WarpUp) była dodawana do systemu. Było to dużym rozczarowaniem dla wielu użytkowników BlizzardPPC i CyberstormPPC, włącznie ze mną.

Obrazy formatu JPEG wykorzystują schemat kompresji, którego szybkość w znaczniej mierze zależna jest od szybkości procesora. Nie byłem wówczas zadowolony z żadnego z istniejących JPEG datatype, a wiedziałem, że jest możliwe stworzenie takiego JPEG datatype, który wykorzystałby moc procesora PPC i dekodowanie obrazu odbywałoby się znacznie szybciej. Od tego właśnie momentu rozpoczął się mój wkład w rozwój datatypes. Było to cztery lata temu. Efektem mojej pracy są Warp Datatypes (WarpDT). Przez lata, WarpDT rozrosły się od prostych, ale szybkich JPEG i PNG datatypes do całej rodziny datatypes, które wykorzystują wspólne podłoże, jakim jest ze szczegółami zaprojektowany, stabilny engine wykorzystujący w pełni możliwości zarówno procesora 68k jak i PPC.

Moim zdaniem, bardzo ważne jest, aby OS4 umożliwiał obsługę najczęściej używanych formatów graficznych, włączając nie tylko ILBM, ale w szczególności JPEG i PNG. W konsekwencji, całkiem nowe datatypes JPEG, PNG, TIFF i BMP powstały specjalne na potrzeby OS4 (dopełniają je porty PPC już istniejącyh datatypes GIF i ILBM jak również superklasa picture datatype). Nie trzeba wspominać, że te cztery, nowe datatypes są w znacznej części oparte na kodzie WarpDT, a więc siłą rzeczy dzielą bardzo podobny zestaw cech. Dodatkowo, odkąd datatypes są tworzone specjalnie pod kątem OS4, możliwym stało się stworzenie pewnych elementów, które w znacznym stopniu wpływają na efektywność i prędkość.

Bez wątpienia każdy jest zaznajomiony z obrazami w formacie JPEG. Bardzo możliwe, że mniej słyszało o PNG - nowoczesnym, fleksyjnym formacie oferującym unikalne i imponujące możliwości, w przesłości uznanym za zamiennik GIF. Jednakże PNG to coś więcej. W przeciwieństwie do JPEG, PNG oferuje bezstratną kompresję, dużo lepszą niż kompresja RLE stosowana w formacie ILBM. Oczywiście lepsza kompresja wpływa na spadek prędkości dekodowania. Pomimo swoich wielu zalet, PNG nie jest popularnym formatem, głównie z powodu prędkości dekodowania i kodowania a także ograniczonej obsługi ze strony systemów operacyjnych i aplikacji. Jednakże, użytkownicy Amigi mają to szczęście, że wiele istniejących programów posiada obsługę tego formatu od momentu jego powstania. Do dzisiaj jednak, żadna wersja AmigaOS nie posiadała obsługi PNG, lecz poprzez dodanie PNG datatype jako standardu dla OS4, użytkownicy i deweloperzy będą czuć się bardziej swobodnie w wykorzystaniu tego formatu.

Pomimo tego, że w AmigaOS pliki TIFF i BMP nie są często stosowane do przechowywania danych graficznych, używane są dosyć często na innych platformach. Obsługa tego typu danych w OS4 oznaczać będzie prostszą komunikację pomiędzy Amiga i innymi systemami, bez obawy o potrzebę dokonania konwersji to innych formatów. Obsługa formatu TIFF zapewniana przez "third parties" w obecnie istniejącym AmigaOS zawsze była czymś w rodzaju podstandardu. Datatype były zdolne wczytywać tylko niewielki podzestaw plików TIFF, były wolne lub po prostu niszczyły końcowy efekt. OS4 TIFF datatype oferują jak dotąd największą z możliwych w AmigaOS obsługę specyfikacji formatu TIFF, przy zachowaniu szybkości i efektywności.

Biorąc pod uwagę, że WarpDT są wysoce zoptymalizowane i stosunkowo szybkie nawet na 68k, OS4 datatypes powinny być absolutnym spełnieniem marzeń do wykorzystania na AmigaOne. Co więcej, OS4 datatype są prawie ukończone i testowane na wersji CyberstormPPC OS4 bez większych problemów.

Sądzę, że spodobało Wam się moje delikatne spojrzenie na możliwości datatypes OS4. W celu uzyskania większej porcji informacji na temat WarpDT oraz gdybyście chcieli spróbować ich możliwości na AmigaOS3.x, zapraszam na stronę WarpDT.



Tłumaczenie na podstawie Club Amiga Monthly - Sebastian Rosa.

Translated and reproduced by kind permission of Amiga Inc. Not for distribution beyond this site.

Przetłumaczone i opracowane za zgodą Amiga.Inc. Dystrybucja wyłącznie na stronach PPA.

Club Amiga logo concept and artwork by Mark Rickan & Mohamed Moujami, winners of the Club Amiga Logo Contest.
Submitted text and images reproduced in Club Amiga Monthly are copyright by their respective authors.
All other text and images reproduced in Club Amiga Monthly are copyright 2003 Amiga Inc.
Content may not be reprinted or reproduced in part or in whole without express written consent of Amiga Inc.

    
dodaj komentarz
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem