Maksymalna liczba kolorów i tabele Look-Up

Czy wiesz, że maksymalna liczba kolorów, jaką potrafi wyświetlić monitor, ściśle wiąże się z lookup table (LUT)? To właśnie LUT pozwala grafikom na precyzyjne przetwarzanie barw i ich korekcję. Dzięki temu możliwe jest wierne odwzorowanie kolorów, płynne gradienty i pewność, że obraz na ekranie odpowiada rzeczywistości.
Spis treści
Skontaktuj się z nami

Maksymalna liczba kolorów i tabele Look-Up

Wprowadzenie

Technologia wyświetlania kolorów i zarządzania nimi znacząco się rozwinęła od czasu publikacji naszego pierwszego artykułu na ten temat w 2012 roku. Lookup table (w skrócie LUT, czyli tabela przeszukiwania) nadal odgrywa kluczową rolę w reprodukcji barw i przyspieszaniu obliczeń, ale jej zastosowania znacznie się rozszerzyły. Współczesne monitory oferują miliardy kolorów, a nowoczesne tabele Look-Up stosowane są nie tylko w wyświetlaczach, lecz także w fotografii, filmie, kalibracji, a nawet arkuszach kalkulacyjnych i bazach danych. (Należy przy tym odróżnić pojęcie lookup table od np. function tabletabela z funkcją – które w programowaniu oznacza tablicę wskaźników do procedur). Poniżej przedstawiamy zaktualizowane informacje o maksymalnej liczbie kolorów, jakie potrafią wyświetlić nowoczesne urządzenia, oraz o nowych technologiach i zastosowaniach tablic look-up w roku 2025.

Nowoczesne technologie wyświetlania

Od 2012 roku pojawiły się nowe technologie ekranów, które wpływają na jakość obrazu, kolory i możliwości przetwarzania sygnału. Należą do nich m.in MicroLED, EL-QD, OLEDoS oraz DVLED. Ekrany MicroLED, składające się z mikroskopijnych diod emitujących światło dla każdego piksela, łączą zalety technologii OLED (samoświecące piksele zapewniające wysoki kontrast) z jasnością i trwałością paneli. Z kolei EL-QD (ang. electroluminescent quantum dots) to nowatorskie wyświetlacze wykorzystujące kropki kwantowe pobudzane elektrycznie, co pozwala uzyskać szeroką gamę barw bez tradycyjnego podświetlenia. Technologia OLEDoS (OLED on Silicon) stosowana jest w mikroekranach o bardzo dużej gęstości upakowania pikseli, np. w okularach AR/VR, zapewniając doskonałe odwzorowanie barw i wysoki współczynnik jasności na małej powierzchni. DVLED (Direct View LED) oznacza ekrany zbudowane z bezpośrednio świecących diod LED, często modułowe i wielkoformatowe, wykorzystywane np. w ścianach wideo oraz zastosowaniach profesjonalnych. Pojawiają się także przezroczyste wyświetlacze LED, które pozwalają nakładać obraz na otoczenie (np. w witrynach sklepowych). Co więcej, integracja technologii wyświetlania z łącznością 5G i sztuczną inteligencją (AI) staje się faktem: inteligentne monitory potrafią analizować obraz w czasie rzeczywistym i dostosowywać ustawienia (np. barwę, kontrast) za pomocą algorytmów AI, a łączność 5G umożliwia bezprzewodowe przesyłanie obrazu o wysokiej rozdzielczości i zdalne sterowanie ekranami w różnych miejscach. Tak zaawansowane wyświetlacze łączą wysoką jakość paneli z precyzyjnym przetwarzaniem barw (np. wewnętrznymi lookup table do kalibracji), co razem pozwala uzyskać obraz najwyższej jakości.

Większa głębia kolorów: 10-bit, 12-bit, 16-bit

Standardem w monitorach do zastosowań graficznych stała się głębia koloru większa niż tradycyjne 8-bit na kanał. Monitory zgodne z HDR10 obsługują 10-bit na kanał (1024 odcienie na kanał, łącznie ponad 1,07 miliarda kolorów), co pozwala wyświetlać obraz o szerszym zakresie dynamiki bez bandingu (pasmowania gradientów). Formaty takie jak Dolby Vision przewidują nawet 12-bit (4096 odcieni na kanał, ~68 miliardów kolorów) przy odpowiednim sprzęcie, a profesjonalne systemy postprodukcji filmowej oraz wysokiej klasy aparatura pomiarowa mogą operować na 16-bit danych na kanał (65536 odcieni, tryliony możliwych kolorów). Choć ludzkie oko nie jest w stanie rozróżnić trylionów barw, dodatkowa precyzja wewnętrznych obliczeń (np. 16-bitowa tablica obliczeniowa, czyli wewnętrzna lookup table, w torze sygnału monitora) przekłada się na płynniejsze gradienty i dokładniejsze odwzorowanie szczegółów w cieniach i światłach. W praktyce wykorzystanie pełnych możliwości 10- czy 12-bitowej głębi wymaga, aby cały łańcuch – od karty graficznej, przez oprogramowanie, po panel monitora – obsługiwał dany format. Na szczęście od 2020 r. dokonały się pewne postępy, dzięki którym systemy operacyjne (np. Windows 11, macOS) i programy graficzne lepiej wspierają 10-bitowe kolory.

Tabele Look-Up: rodzaje i rozwój

Tabela Look-Up, czyli lookup table, to nic innego jak struktura zawierająca wcześniej obliczone wyniki. Mówiąc dokładniej, zawiera ona zestaw powiązanych ze sobą wartości: tabelę z wartościami wejściowymi oraz odpowiadającą jej tabelę z wartościami wyjściowymi, umieszczone w parach, co pozwala uniknąć ponownego liczenia. W informatyce od dawna stosuje się takie tablice indeksowane (rodzaj lookup table) do przyspieszania obliczeń – proces ten to właśnie tablicowanie wyników. Przykładowo, zamiast za każdym razem obliczać wartość sinusa, można przygotować tablicę rezultatów dla pewnych kątów i odczytywać przybliżone wartości (z ewentualną interpolacją pomiędzy punktami). W kontekście grafiki komputerowej i przetwarzania obrazu lookup table zwykle kojarzy się z kolorem. W monitorach lookup table odnosi się do układu elektronicznego, który przelicza dane wejściowe RGB (np. 8-bitowe z komputera) na dane wyjściowe dostosowane do panelu. W nowoczesnych monitorach graficznych stosuje się wewnętrzne tablice o wysokiej precyzji, np. 10-, 12- a nawet 16-bitowe, co oznacza, że wewnętrzne obliczenia kolorów odbywają się z większą dokładnością niż sygnał wyjściowy. Taką wewnętrzną strukturę można przedstawić jako tabelę z danymi wejściowymi (np. wartości kolorów otrzymywane z karty graficznej) i odpowiadającą jej tabelę z wartościami wyjściowymi (skorygowane kolory wysyłane do matrycy). Dostępne są 1D LUT (jednowymiarowe lookup table, stosowane np. do kalibracji krzywej gamma dla każdej składowej RGB osobno) oraz 3D LUT (trójwymiarowe lookup table, które korygują kolory w przestrzeni barw uwzględniając jednocześnie wszystkie trzy składowe). 3D LUT, mająca formę kostki kolorów, umożliwia bardziej zaawansowaną korektę, np. precyzyjne dostosowanie odcieni na całej przestrzeni barw, co jest wykorzystywane w profesjonalnej postprodukcji wideo i zaawansowanych systemach kalibracji. Pojawiają się także rozwiązania adaptacyjne, gdzie tabela przeszukiwania jest dynamicznie modyfikowana lub tworzona w locie w zależności od sceny (np. dynamiczne tablice generowane dla zmieniających się warunków oświetleniowych w filmie). Co więcej, trwają prace nad wykorzystaniem sieci neuronowych do zastąpienia lub udoskonalenia tradycyjnych tablic. Sieć może nauczyć się odwzorowania koloru podobnie jak klasyczna lookup table, zajmując mniej pamięci lub lepiej radząc sobie z nietypowymi przypadkami. Takie rozwiązania dopiero wchodzą do użycia, ale pokazują kierunek rozwoju technologii lookup table.

Standardy zarządzania kolorem

Rozwój standardów zarządzania barwą idzie w parze z postępem technologicznym wyświetlaczy. W branży filmowej ugruntował się standard ACES 2.0 (Academy Color Encoding System) – kompleksowy system zarządzania kolorem, który unifikuje pracę z barwą od momentu rejestracji obrazu po finalne wyświetlenie. ACES 2.0 wprowadza ulepszone transformaty renderujące, zapewniając spójniejsze i bardziej przewidywalne rezultaty przy gradacji kolorystycznej filmów. Równolegle rozwijane jest otwarte oprogramowanie OpenColorIO (obecnie wersja 2.4), będące częścią Academy Software Foundation, które stanowi mechanizm zarządzania kolorem w aplikacjach do grafiki 3D i postprodukcji. OpenColorIO pozwala definiować złożone profile konwersji barw (np. z wykorzystaniem 3D LUT) i jest na bieżąco dostosowywane do standardów takich jak ACES. Inicjatywą komplementarną jest NanoColor, czyli lekki, kompaktowy system zarządzania kolorem oparty na OpenColorIO. Jego celem jest umożliwienie stosowania profesjonalnego zarządzania barwą nawet w aplikacjach o ograniczonych zasobach lub w czasie rzeczywistym. W świecie zarządzania barwą urządzeń wciąż wykorzystywane są profile ICC (International Color Consortium). Nowoczesne systemy operacyjne obsługują format ICC v4 i nowsze (a także eksperymentalny ICC Max), co pozwala na coraz dokładniejsze opisywanie przestrzeni barwnych monitorów, drukarek czy aparatów w formie profili z tablicami kalibracyjnymi. Profile te często zawierają zestaw tabel – np. tabela z danymi wejściowymi dla charakterystyki urządzenia wejściowego oraz tabela z danymi wyjściowymi dla odwrotnej transformacji – a ich wykorzystanie (czyli przeszukiwanie tabeli odpowiednich wartości) odbywa się w locie podczas wyświetlania lub drukowania dzięki silnikowi CMS. Standardy webowe również nadążają za trendem: W3C pracuje nad specyfikacją CSS Color HDR, która ma umożliwić wykorzystanie szerokiej gamy i HDR na stronach internetowych. Dzięki temu przeglądarki będą potrafiły używać np. przestrzeni Rec.2020 czy Display-P3 i wyświetlać bogatsze kolory na ekranach zgodnych z HDR.

Zastosowania tablic Look-Up w fotografii, wideo i kalibracji

Lookup table znajduje szerokie zastosowanie w pracy z obrazem. W fotografii cyfrowej często wykorzystuje się LUT do stylizacji zdjęć. Przykładowo, nakładając na ujęcie przygotowaną tabelę korekcyjną można szybko nadać fotografii określony “look” (np. imitujący kolorystykę filmu analogowego). W filmie i wideo kamery nagrywające w logarytmicznych profilach (LOG) wymagają zastosowania LUT korekcyjnych, aby przekształcić obraz do docelowej przestrzeni barw (np. Rec.709 czy Rec.2020). Następnie twórcy mogą nakładać kreatywne 3D LUT (3D lookup table), by uzyskać pożądane wartości barwne i nastrój sceny. Kalibracja monitorów to kolejna dziedzina, gdzie szeroko wykorzystuje się takie tablice. Profesjonalne modele (np. EIZO ColorEdge) posiadają wewnętrzne, bardzo precyzyjne tablice LUT, w których zapisywane są korekty dla danego egzemplarza monitora. Podczas kalibracji program zapisuje poprawki w takiej lookup table. W efekcie powstaje wewnętrzna tabela z danymi wyjściowymi dopasowana do charakterystyki panelu. Dzięki temu monitor może wyświetlać poprawnie skalibrowane kolory.

Look-Up Table vs hash table i inne struktury danych

Warto podkreślić, że pojęcie lookup table w informatyce ma szersze znaczenie niż tylko w kontekście koloru. Tabela przeszukiwania to ogólnie struktura danych zawierająca zbiór wartości skojarzonych z kluczami, co umożliwia szybkie odszukanie wyniku na podstawie danego klucza. Najprostszym przykładem jest zwykła tablica indeksowana, gdzie indeks (np. liczba naturalna) pełni rolę klucza. Taka tablica jest klasyczną formą LUT – indeks wskazuje miejsce, a przechowywana wartość z tabeli jest zwracana w czasie stałym O(1). Bardziej złożonym przykładem tablicy przeszukiwania jest hash table, czyli tablica z haszowaniem. W tablicy mieszającej elementy są rozrzucone według wyliczonej funkcji skrótu (hash), co pozwala na bardzo szybkie przeszukiwanie wartości nawet w dużych zbiorach danych. Hash table różni się od prostej tablicy LUT tym, że może obsługiwać duży zakres lub nietypowe klucze (np. tekstowe) kosztem nieco bardziej skomplikowanego dostępu i potencjalnych kolizji. Istnieją również inne struktury indeksujące dane, jak drzewa BST, B-drzewa czy indeksy bazodanowe, które także służą do szybkiego wyszukiwania informacji, choć nie są tablicami w sensie fizycznej organizacji danych. Przykładowe zastosowania lookup table to lista kodów błędów z komunikatami (może to być tabela z kodami błędów i odpowiadającymi im komunikatami albo jedna tabela z danymi i opisem łącząca obie kolumny) oraz spis obiektów z unikalnym identyfikatorem i nazwą (np. tabela z identyfikatorem i odpowiadająca jej tabela z nazwą lub jedna tabela z danymi i nazwą zawierająca oba elementy). Dzięki takim strukturom program może od razu znaleźć potrzebną informację, następuje bowiem proste przeszukiwanie tabeli i zwrócenie wyniku, bez wielokrotnego sprawdzania warunków. Generalnie użycie odpowiedniej struktury zależy od zadania: prosta tabela z danymi i wartościami sprawdzi się, gdy zakres kluczy jest niewielki i ciągły (wtedy można zastosować zwykły array), natomiast dla dużych i rozproszonych zbiorów lepsze mogą być hash tables lub drzewa. Niezależnie od implementacji, logicznie operujemy na wierszach i kolumnach; klasyczna tabela z kolumnami i wierszami stanowi podstawowy model danych. Warto też wspomnieć, że istnieje pojęcie function table – to tabela z funkcją zawierająca np. wskaźniki do funkcji wykorzystywane do dynamicznego wywoływania kodu. Jest to inny mechanizm niż typowa lookup table z danymi, ale również korzysta z koncepcji odwoływania się do tablicy w celu ominięcia instrukcji warunkowych.

Funkcje typu look-up w Excelu i narzędziach BI

Koncepcja tablic przeszukiwania jest znana nie tylko programistom, ale i użytkownikom arkuszy kalkulacyjnych. W arkuszach dane zorganizowane są w tabelarycznej strukturze wierszy i kolumn (klasyczna tabela z kolumnami i wierszami), więc łatwo użyć ich do wyszukiwania. Microsoft Excel oferuje szereg wbudowanych funkcji przeszukiwania wartości, które działają na zasadzie lookup table. Każda taka funkcja przeszukiwania umożliwia znalezienie określonej wartości na podstawie zadanego klucza. Najbardziej znana z nich to VLOOKUP (pol. WYSZUKAJ.PIONOWO), która przeszukuje pierwszą kolumnę zakresu tabeli (czyli tabela z kolumną klucza) w poszukiwaniu zadanego klucza, a następnie zwraca wartość z tabeli z wybranej kolumny w tym samym wierszu. Wykorzystując VLOOKUP możemy np. mieć w arkuszu cennik jako tabelę danych. Wówczas w jednej kolumnie znajduje się identyfikator produktu, a w drugiej cena (taka typowa tabela z identyfikatorem i ceną pełni rolę lookup table). Funkcja HLOOKUP (WYSZUKAJ.POZIOMO) działa podobnie w układzie poziomym, czyli przeszukuje pierwszy wiersz (zakłada, że tabela z pierwszym wierszem zawiera klucze) i zwraca wartość z odpowiedniej kolumny poniżej. HLOOKUP jest rzadziej używana, ale przydaje się, gdy dane w arkuszu są zorganizowane w poziomie. Excel udostępnia też bardziej uniwersalną funkcję XLOOKUP, która pozwala wyszukiwać w dowolnej kolumnie (nie tylko pierwszej) i zwracać wyniki z dowolnej innej kolumny. Ponadto XLOOKUP domyślnie wykonuje dopasowanie dokładne, co w VLOOKUP wymagało dodatkowego parametru. Ta nowa funkcja eliminuje wiele ograniczeń VLOOKUP, m.in. umożliwia wyszukiwanie klucza po prawej stronie danych i upraszcza składnię. W narzędziach business intelligence oraz w modelu danych Excela (Power Pivot, Power BI) używa się języka DAX, który dysponuje funkcją LOOKUPVALUE. Pozwala ona pobrać wynik z tabeli na podstawie jednego lub kilku kryteriów, pełniąc podobną rolę co VLOOKUP/XLOOKUP, ale działając w kontekście relacyjnych modeli danych. Niezależnie od tego, czy używamy VLOOKUP w Microsoft Excel, czy LOOKUPVALUE w Power BI, zasada jest podobna. Mamy więc tabelę z wpisami (wierszami danych), gdzie jedno pole pełni funkcję klucza (tworząc niejako tabelę z wartościami wejściowymi), a inne pole to wynik (np. tabela z wartościami wyjściowymi jak kwota sprzedaży). Funkcje przeszukiwania usprawniają pracę z danymi, eliminując potrzebę ręcznego odszukiwania wartości w tabelach. Wyniki zwrócone przez te funkcje można zebrać w osobnej tabeli z wynikami, co ułatwia dalszą analizę. Dobrą praktyką w Excelu jest zamiana zakresów na obiekty typu Tabela (menu Wstaw > Tabela). Taki obiekt automatycznie aktualizuje formuły przy dodawaniu nowych wierszy, tzn. gdy pojawia się tabela z nowym wpisem, formuły korzystające z nazwanych zakresów obejmują nowy rekord.

Rekomendacje dotyczące projektowania i optymalizacji tablic look-up

Przy projektowaniu struktur typu lookup table warto kierować się kilkoma podstawowymi zasadami. Po pierwsze należy określić, czy bardziej opłaca się przechowywać wyniki w tabeli, czy liczyć je na bieżąco. Będzie to zależało od częstotliwości odczytów i kosztu obliczenia. Jeśli obliczenia są złożone, a wyniki często wykorzystywane, to tabela przeszukiwania znacznie przyspieszy działanie programu kosztem zużycia pamięci. Po drugie trzeba dobrać właściwą strukturę danych: dla małych zakresów najlepsza jest prosta tabela z danymi i wartościami wyjściowymi (np. lista asocjacyjna w języku programowania), a dla bardzo dużych zbiorów kluczy lepiej sprawdzi się hash table lub indeks w bazie danych, który uniknie przeglądania całej tabeli. Zwykle stosuje się interpolację między punktami LUT, dlatego rozsądny rozmiar (np. 33×33×33 dla 3D LUT) daje dobre wyniki przy akceptowalnej wielkości. Kolejną kwestią jest wybór i organizacja kluczy. Staraj się umieszczać pola kluczowe w przewidywalny sposób – np. tabela z kolumną klucza na początku ułatwia utrzymanie porządku.

Ponadto dbaj o unikalność danych: tabela z danymi i identyfikatorem (np. kolumna ID jako klucz główny) zapewnia jednoznaczność i spójność rekordów.

W bazach danych warto na kolumnach kluczowych zakładać indeksy, aby przeszukiwanie tabeli było zoptymalizowane przez silnik. Ma to szczególnie duże znaczenie, gdy tabela z wpisami zawiera tysiące rekordów. Jeśli zaś często dodajemy nowe rekordy, trzeba przewidzieć, jak wpłynie to na strukturę. Przykładowo, w tablicy haszującej każdy nowo dodany element, czyli tabela z nowym wpisem, może wymagać czasochłonnej reorganizacji (rozszerzenia tablicy i przeliczenia hashy). W Excelu natomiast, dodając nowy wiersz do zakresu objętego wyszukiwaniem, upewnijmy się, że formuła obejmuje ten wiersz lub najlepiej użyjmy nazwanych tabel, aby było to automatyczne.

W niektórych sytuacjach warto też oddzielić dane źródłowe od rezultatów, np. zastosować osobną tabelę z wynikami zawierającą tylko wyliczone wartości (raport wynikowy).

Podsumowując, tablicowanie obliczeń za pomocą LUT to potężna technika zarówno w elektronice (monitory, układy graficzne), jak i w programowaniu oraz analizie danych. Dobrze zaprojektowana tablica przeszukiwania potrafi zaoszczędzić czas procesora i ułatwić implementację, jednak należy ją stosować świadomie, dbając o aktualność danych i adekwatny rozmiar struktury do potrzeb. W każdym przypadku celem jest szybkie przeszukiwanie wartości na podstawie zadanego klucza, czyli błyskawiczny dostęp do pożądanej informacji. Właśnie to zapewnia odpowiednio użyta tablica przeszukiwania.

Click outside to hide the comparison bar
Porównaj
Porównanie ×
Porównaj Continue shopping