Tryb wstrzymania i modyfikacji
Tryb Amiga HAM (tryb HAM) to tryb wyświetlania grafiki chipsetów z tej Amigi platformę do wyświetlania 12- bitowych i 18-bitowych zdjęć o zaledwie 6 lub 8 bitów na piksel . Specjalna sprzętowa kompresja danych służy do oszczędzania przepustowości pamięci.
Jeśli w pliku obrazu IFF znajduje się fragment CAMG , tryb ten można zidentyfikować na 11 bitach.
Istnieją dwa warianty trybu HAM:
- Obrazy HAM lub HAM6 mogą wyświetlać 4096 kolorów i wykorzystywać sześć bitów na piksel oraz paletę 16 kolorów.
- Tryb HAM8 został wprowadzony w Amidze 4000 i Amidze 1200 i oferuje bardzo dobrą, fotograficzną jakość obrazu z zaledwie ośmioma bitami na piksel i podstawową paletą 64 kolorów. W tym trybie można wyświetlić prawie tyle kolorów z 24-bitowego widma, ile mieści się w pamięci RAM chipa (minus pierwsza kolumna pikseli) i ile pozwala na to rozdzielczość obrazu .
Kolorem piksela w trybie HAM może być dowolny kolor z 12-bitowej palety kolorów dla HAM6 lub 24-bitowej palety kolorów dla HAM8. Alternatywnie można przyjąć kolor piksela znajdującego się bezpośrednio po lewej stronie, dzięki czemu jeden z trzech składowych kolorów przestrzeni kolorów RGB (czerwony, zielony, niebieski) jest ustawiany na nową wartość. Kolor krawędzi jest przyjmowany po lewej stronie obrazu (wskaźnik koloru 0 palety kolorów). Uwaga: Sprzęt wideo nie zaczyna się od pierwszego piksela planszy bitowej , ale tylko od pierwszego widocznego piksela, co powoduje (nieatrakcyjną) różnicę w przewijaniu sprzętowym (wirtualny lub przewymiarowany ekran).
Proces ten harmonizuje z właściwościami sygnałów telewizyjnych (FBAS), dzięki czemu stratna kompresja danych nie prowadzi do obniżenia jakości.
W plikach obrazów HAM dane pikseli są przechowywane w fragmencie BODY jako kod, który jest podzielony na tryb i pozostałe bity. Kodowania z pikseli odpowiada formacie używanym przez sprzęt wideo.
| tryb | oznaczający |
|---|---|
| 00 | Indeks w palecie kolorów |
| 01 | Zmiana w niebieskim składniku |
| 10 | Zmiana w czerwonym składniku |
| 11 | Zmiana w zielonym komponencie |
Jeśli piksel nie reprezentuje koloru z palety (tryb 00), można określić tylko nową wartość jednej z trzech wartości RGB. Pozostałe dwie wartości są takie same jak w poprzednim pikselu. Jeśli piksel jest pierwszym z linii obrazu, zakłada się, że poprzedni piksel jest trójką RGB (0, 0, 0) (w przeciwieństwie do sprzętu wideo, patrz wyżej).
Format trybu i bitów danych piksela w trybie HAM6:
543210 00wxyz – Farbindex wxyz in eine 16 Einträge lange Basisfarbenpalette 01wxyz – Behalte den Farbwert des vorherigen Pixels, aber setze die (obersten) vier Bit von Blau auf wxyz 10wxyz – Behalte den Farbwert des vorherigen Pixels, aber setze die (obersten) vier Bit von Rot auf wxyz 11wxyz – Behalte den Farbwert des vorherigen Pixels, aber setze die (obersten) vier Bit von Grün auf wxyz
Obrazu HAM nie można zdekodować bezpośrednio do obrazu zawierającego 256 lub mniej kolorów bez uprzedniego wykonania redukcji kolorów. Aby uzyskać pełną jakość, potrzebujesz co najmniej 12-bitowego obrazu.
Jeśli chcesz przekonwertować obraz, który jest dostępny w 256 lub więcej kolorach na obraz HAM, najpierw poszukaj optymalnej podstawowej palety dla tego obrazu, za pomocą której jak najwięcej punktów obrazu może być wyświetlanych bezpośrednio lub tylko z niewielkimi odchylenia. Po ustaleniu podstawowej palety, przechodzimy przez linię po linii obrazu i optymalizujemy dla każdego piksela, czy może on być najlepiej reprezentowany przez jeden z podstawowych kolorów palety, czy jeszcze lepiej, przez modyfikację HAM poprzedniego piksela (jeden z trzy składowe kolorów RGB do żądanego zestawu wartości). Ocena jest przeprowadzana przez obliczenie odległości w przestrzeni barw 3D między pikselem obrazu a odpowiednią bazą lub kandydatem HAM. Tak generalnie dotyczy to zarówno HAM6, jak i HAM8.
Liczba bitów danych wynosi cztery dla standardowego HAM6 i sześć dla HAM8. Liczba bitplanów w fragmencie BMHD wynosi sześć lub osiem. Jeśli obraz HAM ma być wyświetlany jako obraz 24-bitowy, bity danych (cztery lub sześć) należy rozszerzyć do ośmiu bitów. Maksymalna wartość powinna zostać przekonwertowana na 255 z ośmioma bitami na kanał RGB.
Format trybu i bitów danych piksela w trybie HAM8:
76543210 00uvwxyz – Farbindex uvwxyz in eine 64 Einträge lange Basisfarbenpalette 01uvwxyz – Behalte den Farbwert des vorherigen Pixels, aber setze die obersten sechs Bit von Blau auf uvwxyz 10uvwxyz – Behalte den Farbwert des vorherigen Pixels, aber setze die obersten sechs Bit von Rot auf uvwxyz 11uvwxyz – Behalte den Farbwert des vorherigen Pixels, aber setze die obersten sechs Bit von Grün auf uvwxyz
Obrazy HAM8 muszą być przekonwertowane na obrazy 24-bitowe, aby zachować pełną jakość obrazu na systemach innych niż Amiga.
Aby naprawdę móc wyświetlić wszystkie kolory palety 24-bitowej w trybie HAM8, 64 kolory palety podstawowej muszą być wstępnie przypisane w taki sposób, aby 64 możliwe kombinacje dwóch najniższych bitów wszystkich składników koloru są dokładnie zakryte. Następnie możesz użyć mechanizmu HAM, aby z tych podstawowych kolorów dotrzeć do wszystkich kolorów 24-bitowej palety. Liczba kolorów, które mogą być wyświetlane w tym samym czasie, jest ograniczona jedynie wielkością pamięci RAM . Ten ostatni ma dwa megabajty, dzięki czemu na obrazie HAM8 można wyświetlić około 2 miliony różnych kolorów. (Różne inne ilości przejść z wiórów RAM dla stołu warsztatowego i różne struktury danych do systemu operacyjnego , który musi być w układzie scalonym pamięci RAM).
perspektywy
Od dawna dyskutowano o zastąpieniu tego trybu HAM, opartego na reprezentacji kolorów RGB, odpowiednim trybem opartym na przestrzeni kolorów HSV (odcień, nasycenie, jasność), z którego mamy jeszcze większe możliwości kompresji i / lub nawet bardziej obiecaną lepszą jakość wyświetlania. Jednak tryb HAM nie jest już potrzebny na obecnych komputerach ze względu na niższe ceny pamięci RAM i szybszy sprzęt graficzny, więc te rozważania jak dotąd nie doprowadziły do praktycznego wdrożenia .