Udostępnij za pośrednictwem


Jpeg XR Codec — omówienie

Natywny koder XR JPEG jest dostępny za pośrednictwem składnika Windows Imaging (WIC). Format JPEG XR, który obsługuje koder, jest przeznaczony do fotografii konsumenckiej i profesjonalnej cyfrowej.

Format JPEG XR może osiągnąć do dwóch razy większą wydajność kompresji oryginalnego formatu JPEG, z mniej zauważalnymi artefaktami kompresji. Funkcje jpeg XR obejmują:

  • Obsługa obrazów monochromatycznych, RGB, CMYK i n-kanałowych
  • Formaty 8-, 16-bitowe i 32-bitowe liczby całkowite
  • Duży zakres dynamiczny, formaty szerokiej gamy z użyciem wartości kolorów stałoprzecinkowych lub zmiennoprzecinkowych
  • Dekodowanie progresywne
  • Kodowanie stratowe lub bezstratne przy użyciu tego samego algorytmu kompresji
  • Obsługa dekodowania regionów zainteresowania dużymi obrazami

Format JPEG XR jest zdefiniowany w następujących dokumentach standardów:

  • ITU-T T.832: technologia informacyjna — system kodowania obrazów JPEG XR — specyfikacja kodowania obrazów
  • ISO/IEC 29199-2:2010: Technologia informacyjna — SYSTEM kodowania obrazów JPEG XR — Część 2: Specyfikacja kodowania obrazów

Standard JPEG XR jest w dużej mierze oparty na formacie HD Photo, ale istnieją pewne różnice między dwoma formatami. W systemie Windows 8 koder zdjęć HD został zaktualizowany w celu obsługi formatu JPEG XR. Koder zawsze generuje strumień bitowy zgodny ze standardem JPEG XR. Dekoder może dekodować obrazy JPEG XR i HD Photo.

Znaczne ulepszenia wydajności, w odniesieniu do kodeka HD Photo, zostały wprowadzone do kodeka JPEG XR. Na przykład dekodowanie obrazu o rozdzielczości podrzędnej, takie jak generowanie miniatur, zostało ulepszone, a także dekodowanie obrazu o niskiej rozdzielczości. Zaleca się użycie formatu JPEG XR zamiast formatu HD Photo.

Informacje kodeka

Składnik Opis
Rozszerzenie nazwy pliku "jxr" i "wdp"
Identyfikator GUID kontenera GUID_ContainerFormatWmp
Identyfikator GUID dekodera CLSID_WICWmpDecoder
Identyfikator GUID kodera CLSID_WICWmpEncoder
Obsługa profilu Koder i dekoder obsługują maksymalnie profil główny i poziom 128.

 

Funkcje kodera

Wysoki zakres dynamiczny

Plik JPEG XR obsługuje obrazy o wysokim zakresie dynamicznym przy użyciu kolorów zmiennoprzecinkowych lub stałoprzecinkowych. W tych formatach kolorów zakres liczbowy piksela jest większy niż widoczny zakres, dzięki czemu można dostosować kolory powyżej lub poniżej widocznego zakresu podczas etapów przetwarzania pośredniego.

  • Stały punkt: W reprezentacji o stałym punkcie 0 reprezentuje kolor, a 1,0 reprezentuje maksymalne nasycenie. Koder XR JPEG obsługuje zarówno formaty 16-bitowe, jak i 32-bitowe o stałym punkcie. W przypadku 16-bitowej wartości 1,0 = 0x2000h, co daje 13 bitów dla widocznego zakresu [0...1]. Łączny zakres wynosi od –4,0 do +3,999 i jest mapowany liniowo. W przypadku 32-bitowej wartości 1,0 = 0x010000000h widoczny zakres to 24 bity, a łączny zakres to od –128 do +127,999.
  • Zmiennoprzecinkowy: W reprezentacji zmiennoprzecinkowej 0 reprezentuje czarne, a 1,0 reprezentuje maksymalne nasycenie. Koder XR JPEG obsługuje formaty zmiennoprzecinkowe 16-bitowe i 32-bitowe.

Płytki

Ramkę można podzielić na prostokątne podregiony zwane kafelkami. Kafelek to obszar obrazu, który zawiera prostokątne tablice makrobloków. Kafelki umożliwiają dekodowanie regionów obrazu bez przetwarzania całego obrazu.

Podczas kodowania wybierz liczbę kafelków, ustawiając właściwości HorizontalTileSlices i VerticalTileSlices. Minimalny rozmiar kafelka to 16 × 16 pikseli. Koder dostosowuje liczbę kafelków, aby zachować to ograniczenie. Istnieje obciążenie związane z przechowywaniem i przetwarzaniem skojarzonym z każdym segmentem, dlatego należy wziąć pod uwagę liczbę segmentów, które są potrzebne w określonych scenariuszach.

Dane wyjściowe strumienia obrazu

Standard JPEG-XR definiuje dwie części pliku JPEG-XR:

  • Strumień bitowy obrazu zdefiniowany w treści standardu.
  • Kontener obrazu. Plik zawiera metadane Exif i XMP i jest zdefiniowany w załączniku A standardu.

Możliwe jest i dozwolone przez standard, aby osadzić strumień obrazu wewnątrz innego typu kontenera plików. Koder obsługuje tryb wyłącznie strumieniowy, który wytwarza nieprzetworzony strumień bitów obrazu bez kontenera obrazu. Aplikacja może przechowywać strumień bitów w innym formacie kontenera.

Aby włączyć tryb tylko do przesyłania strumieniowego, ustaw właściwość StreamOnly.

Ustawienia jakości obrazu

Niektóre właściwości kodeka wpływają na jakość obrazu wyjściowego z enkodera.

  • ImageQuality jest właściwością wspólną dla koderów WIC. Określa jakość obrazu jako pojedynczą wartość zmiennoprzecinkową z zakresu od 0.0 do 1.0,
  • Właściwości Quality, Overlapi Subsampling zapewniają większą kontrolę nad ustawieniami jakości.

Aby skorzystać z właściwości Quality, Overlapi Subsampling, ustaw właściwość UseCodecOptions na VARIANT_TRUE.

Jeśli UseCodecOptions jest VARIANT_FALSE (VARIANT_FALSE jest wartością domyślną), koder używa właściwości ImageQuality. Koder mapuje wartość właściwości ImageQuality na Quality, Nakładające sięi podprzykładowe za pośrednictwem tabeli odnośników.

Koder nie obsługuje właściwości CompressionQuality.

Transkodowanie skompresowanej domeny

Koder XR JPEG może wykonywać pewne przekształcenia obrazów bez dekodowania skompresowanych danych i ponownego kodowania. Operacje w domenie skompresowanej są bardzo wydajne i unikają wszelkiej dodatkowej utraty jakości, która jest typowa podczas dekodowania i ponownego kodowania obrazu skompresowanego stratnie.

Obsługiwane są następujące skompresowane operacje domeny:

  • Przytnij obszar obrazu.
  • Obracanie lub przerzucanie obrazu.
  • Odrzuć dane częstotliwości, aby utworzyć mniejszy plik obrazu.
  • Zreorganizować obraz w porządku przestrzennym i częstotliwościowym.

Koder JPEG XR używa skompresowanego transkodowania domeny, jeśli to możliwe, gdy obraz źródłowy jest obrazem JPEG XR. Gdy koder wykonuje operację w skompresowanej domenie, ignoruje następujące właściwości koderów: AlphaQuality, ImageQuality, InterleavedAlpha, LosslessOverlapi Quality. Jeśli właściwości HorizontalTileSlices i VerticalTileSlices są obecne, należy ustawić je na zero. Nie można zmienić rozmiaru kafelka obrazu podczas transkodowania w skompresowanej domenie.

Poniższa lista zawiera opis sposobu wykonywania przekształceń obrazów.

  • Aby przyciąć obraz, ustaw żądany region w parametrze WICRect metody WriteSource.
  • Aby obrócić lub przerzucić obraz, ustaw właściwość BitmapTransform.
  • Aby odrzucić dane częstotliwości na obrazie, ustaw właściwość ImageDataDiscard. Aby odrzucić dane częstotliwości w kanale alfa, ustaw właściwość AlphaDataDiscard. Odrzucanie danych częstotliwości zmniejsza rozmiar zakodowanego pliku i może zmniejszyć rozdzielczość.
  • Aby zmienić organizację obrazu między częstotliwością i kolejnością przestrzenną, ustaw właściwość FrequencyOrdering.

Aby wyłączyć transkodowanie skompresowanej domeny i wymusić ponowne kodowanie obrazu, ustaw UseCodecOptions na VARIANT_TRUE i ustaw CompressedDomainTranscode na VARIANT_FALSE.

Opcje kodera

Aby ustawić właściwości kodowania, użyj interfejsu IPropertyBag2. Aby uzyskać więcej informacji, zobacz omówienie kodowania .

Poniższa lista określa opcje kodera.

AlphaDataDiscard

Ustawia ilość danych o częstotliwości alfa do odrzucenia podczas transkodowania skompresowanej domeny.

Typ danych VARTYPE Zakres Domyślny
UCHAR VT_UI1 0–4 Żaden

 

Ta właściwość ma zastosowanie tylko wtedy, gdy właściwość CompressedDomainTranscode jest ustawiona na VARIANT_TRUE, a obraz zawiera planarny kanał alfa lub przeplatany kanał alfa; w przeciwnym razie jest ignorowany.

W przypadku obrazów zawierających planarny kanał alfa są prawidłowe następujące wartości.

Wartość Opis
0 Żadne dane częstotliwości obrazów nie są odrzucane.
1 Flexbits są odrzucane. To arbitralnie zmniejsza jakość planarnego kanału alfa dla transkodowanego obrazu. , bez zmiany efektywnej rozdzielczości. Dokładne zmniejszenie rozmiaru i jakości pliku zależy od wielu czynników i nie można ich dokładnie określić.
2 Pasmo danych o wysokiej częstotliwości jest odrzucane, w tym również flexbits. Skutecznie zmniejsza to rozdzielczość kanału alfa planarnego o współczynnik 4 w obu wymiarach. Rzeczywiste wymiary transkodowanego obrazu pozostają takie same, ale obraz traci wszystkie szczegóły w każdym bloku 4x4 pikseli kanału alfa. Zazwyczaj tę wartość należy ustawić tylko wtedy, gdy właściwość ImageDataDiscard ma tę samą wartość.
3 Oba pasma danych o wysokiej passie i niskiej częstotliwości są odrzucane, w tym flexbity. Efektywnie zmniejsza rozdzielczość kanału alfa w trybie planar o współczynnik 16 w obu wymiarach. Rzeczywiste wymiary transkodowanego obrazu pozostają takie same, ale obraz traci wszystkie szczegóły w każdym makrobloku 16x16 pikseli kanału alfa. Zazwyczaj tę wartość należy ustawić tylko wtedy, gdy właściwość ImageDataDiscard ma tę samą wartość.
4 Kanał alfa jest całkowicie odrzucany. Format pikseli transkodowanego obrazu jest zmieniany w celu odzwierciedlenia usunięcia kanału alfa.

 

W przypadku obrazów zawierających przeplatany kanał alfa jest prawidłowa następująca wartość.

Wartość Opis
4 Kanał alfa jest całkowicie odrzucany. Format pikseli transkodowanego obrazu jest zmieniany w celu odzwierciedlenia usunięcia kanału alfa.

 

W przypadku przeplotu alfa, chyba że ta właściwość jest ustawiona na 4, kanał alfa jest przetwarzany tak samo jak dane obrazu, zgodnie z wartością właściwości ImageDataDiscard.

AlphaQuality

Ustawia jakość kompresji obrazu kanału alfa planar.

Typ danych VARTYPE Zakres Domyślny
UCHAR VT_UI1 1–255 1

 

Ta właściwość ma zastosowanie, gdy obraz ma kanał alfa, a właściwość InterleavedAlpha jest VARIANT_FALSE. Wartość 1 wskazuje tryb bezstratny. Zwiększenie wartości powoduje zwiększenie współczynników kompresji i niższą jakość obrazu.

BitmapTransform

Określa, czy obraz jest obracany, czy przerzucany podczas dekodowania.

Typ danych VARTYPE Zakres Domyślny
UCHAR VT_UI1 WICBitmapTransformOptions WICBitmapTransformRotate0

 

Transkodowanie w Domenie Skompresowanej

Włącza lub wyłącza transkodowanie skompresowanej domeny.

Typ danych VARTYPE Domyślny
VARIANT_BOOL VT_BOOL VARIANT_TRUE

 

Aby wyłączyć skompresowane operacje domeny, ustaw tę właściwość na VARIANT_FALSE.

Kolejność częstotliwości

Włącza kodowanie w kolejności częstotliwości. Implementacje urządzeń koderów JPEG XR mogą organizować plik w przestrzeni przestrzennej, aby zmniejszyć ilość pamięci wymaganej podczas kodowania.

Typ danych VARTYPE Domyślny
VARIANT_BOOL VT_BOOL VARIANT_TRUE

 

  • VARIANT_TRUE: kolejność częstotliwości. Dane o najniższej częstotliwości są wyświetlane jako pierwsze w pliku, a zawartość obrazu jest pogrupowana według jego częstotliwości, a nie orientacji przestrzennej. Organizowanie pliku według kolejności częstotliwości zapewnia najlepszą wydajność dla dekodowania opartego na częstotliwości.
  • VARIANT_FALSE: kolejność przestrzenna. Kolejność przestrzenna zmniejsza ilość pamięci wymaganej podczas kodowania

Kolejność częstotliwości jest zalecana, chyba że masz powody dotyczące wydajności lub aplikacji, aby użyć kolejności przestrzennej.

TyleSlicy poziome

Ustawia liczbę poziomych kafelków.

Typ danych VARTYPE Zakres Domyślny
USHORT VT_UI2 0–4095 (szerokość obrazu – 1) >> 8

 

Wartość jest liczbą podziałów poziomych; oznacza to, że liczba poziomych kafelków – 1.

Ignoruj nakładanie się

Określa sposób, w jaki enkoder obsługuje granice kafelków podczas transkodowania w domenie skompresowanej.

Typ danych VARTYPE Domyślny
VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

Ta właściwość jest stosowana tylko wtedy, gdy właściwość CompressedDomainTranscode jest ustawiona na VARIANT_TRUE i wykonywane jest transkodowanie podregionu obejmujące dokładnie jeden lub więcej kafelków.

Domyślną operacją transkodowania regionu jest rozszerzenie żądanego regionu, aby uwzględnić otaczające piksele niezbędne do dekodowania nakładających się krawędzi regionu. Jeśli ta właściwość jest ustawiona na VARIANT_TRUE, koder ignoruje otaczające piksele i wyodrębnia tylko wybrany kafelek lub kafelki. Jeśli obraz źródłowy nie posiada układu kafelkowego lub żądany region zawiera fragmenty kafelków, ten parametr jest ignorowany.

ImageDataDiscard

Ustawia ilość danych częstotliwości obrazów do odrzucenia podczas transkodowania skompresowanej domeny.

Typ danych VARTYPE Zakres Domyślny
UCHAR VT_UI1 0–3 0

 

Ta właściwość ma zastosowanie tylko wtedy, gdy właściwość CompressedDomainTranscode jest ustawiona na VARIANT_TRUE; w przeciwnym razie jest ignorowana.

Wartość Opis
0 Żadne dane częstotliwości obrazów nie są odrzucane.
1 Flexbits są odrzucane. To arbitralnie zmniejsza jakość transkodowanego obrazu bez zmieniania efektywnej rozdzielczości obrazu. Dokładne zmniejszenie rozmiaru i jakości pliku zależy od wielu czynników i nie można ich dokładnie określić. Ta wartość zwraca błąd określony dla interpolowanego kanału alfa.
2 Pasmo danych o wysokiej częstotliwości jest odrzucane, w tym również flexbits. Zmniejsza to rozdzielczość transkodowanego obrazu przez współczynnik 4 w obu wymiarach. Rzeczywiste wymiary transkodowanego obrazu pozostają takie same, ale obraz traci wszystkie szczegóły w każdym bloku 4x4 pikseli. Dlatego transkodowany obraz powinien być zmniejszany za każdym razem, gdy jest dekodowany.
3 Oba pasma danych o wysokiej passie i niskiej częstotliwości są odrzucane, w tym flexbity. Zmniejsza to rozdzielczość transkodowanego obrazu przez współczynnik 16 w obu wymiarach. Rzeczywiste wymiary transkodowanego obrazu pozostają takie same, ale obraz traci wszystkie szczegóły w każdym makrze 16x16 pikseli. Dlatego transkodowany obraz powinien być zmniejszany za każdym razem, gdy jest dekodowany.

 

Jeśli obraz zawiera przeplatany kanał alfa, wartość ImageDataDiscard jest stosowana do kanału alfa, chyba że właściwość AlphaDataDiscard jest ustawiona na 4, w tym przypadku kanał alfa zostanie odrzucony.

W przypadku planar alfa odrzucone dane częstotliwości są kontrolowane przez właściwość AlphaDataDiscard.

ImageQuality

Ustawia jakość obrazu.

Typ danych VARTYPE Zakres Domyślny
UNOSZENIE VT_R4 0–1.0 0,9

 

Poziom 1.0 zapewnia matematycznie bezstratną kompresję.

Poziom 0.0 jest ustawieniem najniższej jakości.

InterleavedAlpha

Określa, czy kodować przeplatane alfa lub planar alfa.

Typ danych VARTYPE Domyślny
VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

  • VARIANT_TRUE: Przeplatane alfa. Informacje o kanale alfa są kodowane jako dodatkowy kanał przeplatany bez korelacji z kanałami zawartości obrazu. Ten tryb jest przydatny do jednoczesnego dekodowania kanału alfa i obrazu, kiedy obraz jest przesyłany strumieniowo.
  • VARIANT_FALSE: Planar alpha. Planarny kanał alfa jest zakodowany jako oddzielny obraz. Dane obrazu i kanał alfa są dekodowane niezależnie. Opcjonalnie możesz ustawić poziom jakości kanału alfa, ustawiając właściwość AlphaQuality.

Alfa z przeplotem jest obsługiwana tylko w przypadku niektórych formatów pikseli RGB. Planar alpha jest obsługiwany dla dowolnego formatu obrazu, który definiuje kanał alpha.

Bezstratny

Umożliwia kompresję strat.

Typ danych VARTYPE Domyślny
VARIANT_BOOL VT_BOOL FAŁSZ_VARIANT

 

Jeśli wartość jest VARIANT_TRUE, koder używa kompresji bezstratnej. Po ustawieniu wartości VARIANT_TRUEta właściwość zastępuje właściwość ImageQuality.

Nakładanie się

Ustawia poziom nakładającego się filtrowania. Przy filtrowaniu nakładającym się współczynniki przekształcania są stosowane przez granice bloków i makrobloków. Może to zmniejszyć liczbę artefaktów blokujących.

Typ danych VARTYPE Zakres Domyślny
UCHAR VT_UI1 0–4 1

 

Wartość Opis
0 Nie nakładają się na siebie.
1 Jeden poziom nakładających się, miękkich płytek. (Wartość domyślna)
2 Dwa poziomy nakładających się, miękkich tilingów.
3 Jeden poziom nakładających się, twardych kafelków
4 Dwa poziomy nakładających się, twardych płytek.

 

Definicje:

  • Jeden poziom nakładania się: zakodowane wartości 4x4 bloków są modyfikowane na podstawie sąsiednich bloków.
  • Dwa poziomy nakładania się: pierwszy poziom nakładania się jest stosowany. Ponadto zakodowane wartości 16x16 makrobloków są modyfikowane na podstawie sąsiednich makrobloków.
  • Miękkie układanie: Filtrowanie nakładające się jest stosowane w granicach kafelków.
  • Twarde kafelkowanie: Filtrowanie nakładające się nie jest stosowane przez granice kafelków. Twarde kafelki mogą wprowadzać niektóre artefakty wizualne wzdłuż granic kafelków.

Jeśli ustawisz tę właściwość, ustaw również UseCodecOptions na VARIANT_TRUE.

ProgressiveMode

Włącza lub wyłącza kodowanie progresywne.

Typ danych VARTYPE Domyślny
VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

Wartość Opis
VARIANT_TRUE Tryb sekwencyjny (wartość domyślna).
VARIANT_FALSE Tryb progresywny.

 

Jakość

Ustawia jakość kompresji.

Typ danych VARTYPE Zakres Domyślny
UCHAR VT_UI1 1–255 1

 

Wartość 1 wskazuje tryb bezstratny. Zwiększenie wartości powoduje zwiększenie współczynników kompresji i niższą jakość obrazu.

Jeśli ustawisz tę właściwość, ustaw również UseCodecOptions na VARIANT_TRUE.

StreamOnly

Włącza lub wyłącza tryb wyłącznie strumieniowy.

Typ danych VARTYPE Domyślny
VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

Wartość Opis
VARIANT_TRUE Koder generuje nieprzetworzone strumienie obrazu bez metadanych.
VARIANT_FALSE Koder generuje format kontenera (strumień obrazu i metadane).

 

Podpróbkowanie

Ustawia podpróbkowanie chrominancji. Ta właściwość ma zastosowanie tylko do obrazów RGB.

Typ danych VARTYPE Zakres Domyślny
UCHAR VT_UI1 0–3 3, jeśli ImageQuality> 0,8; w przeciwnym razie 1

 

Wartość Opis
3 Kodowanie 4:4:4. Zachowuje pełną rozdzielczość kolorów.
2 Kodowanie 4:2:2. Rozdzielczość chrominancji wynosi ½ rozdzielczości luminancji.
1 Kodowanie 4:2:0. Rozdzielczość chrominancji jest 1/4 rozdzielczości luminancji.
0 Kodowanie 4:0:0. Odrzuca wszystkie wartości chroma i zachowuje tylko lumincję. Uwaga: Ten tryb nie jest zalecany, ponieważ koder używa nieco zmodyfikowanej definicji luminacji w celu zwiększenia wydajności. Zamiast tego lepiej jest przekonwertować obraz na monochromatyczny przed kodowaniem.

 

4:2:2 i 4:2:0 zachowują szczegóły luminancji kosztem detalu kolorów.

Jeśli ustawisz tę właściwość, ustaw również UseCodecOptions na VARIANT_TRUE.

Użyj opcji kodeka

Określa, czy należy używać właściwości Quality, Nakładanie sięi Podpróbkowanie zamiast ogólnej właściwości jakość obrazu.

Typ danych VARTYPE Domyślny
VARIANT_BOOL VT_BOOL VARIANT_FALSE

 

Pionowe kafelki

Ustawia liczbę poziomych kafelków.

Typ danych VARTYPE Zakres Domyślny
USHORT VT_UI2 0–4095 (wysokość obrazu – 1) >> 8

 

Wartość jest liczbą podziałów pionowych; oznacza to, że liczba kafelków pionowych – 1.

Obsługiwane formaty kolorów

Aby uzyskać więcej informacji na temat tych formatów, zobacz Native Pixel Formats.

  • formaty Integer RGB
    • GUID_WICPixelFormat24bppRGB
    • GUID_WICPixelFormat24bppBGR
    • GUID_WICPixelFormat32bppBGR
    • GUID_WICPixelFormat48bppRGB
    • GUID_WICPixelFormat32bppBGRA
    • GUID_WICPixelFormat64bppRGBA
    • GUID_WICPixelFormat32bppPBGRA
    • GUID_WICPixelFormat64bppPRGBA
  • formaty RGB o stałym punkcie
    • GUID_WICPixelFormat48bppRGBFixedPoint
    • GUID_WICPixelFormat64bppRGBFixedPoint
    • GUID_WICPixelFormat96bppRGBFixedPoint
    • GUID_WICPixelFormat128bppRGBFixedPoint
    • Format piksela 128bpp RGBA z ustalonym punktem GUID_WICPixelFormat128bppRGBAFixedPoint
  • formaty RGB zmiennoprzecinkowe
    • GUID_WICPixelFormat48bppRGBHalf
    • GUID_WICPixelFormat64bppRGBHalf
    • GUID_WICPixelFormat128bppRGBFloat
    • GUID_WICPixelFormat64bppRGBAFixedPoint
    • GUID_WICPixelFormat64bppRGBAHalf
    • GUID_WICFormatPikseli128bppRGBAFloat (format pikseli 128bpp RGBA zmiennoprzecinkowy)
    • GUID_WICPixelFormat128bppPRGBAFloat
  • formaty skali szarości
    • GUID_WICPixelFormat8bppGray
    • GUID_WICPixelFormat16bppGray
    • GUID_WICPixelFormat16bppSzaryPunktStały
    • GUID_WICPixelFormat16bppGrayHalf (Format piksela 16-bitowego w skali szarości)
    • GUID_WICPixelFormat32bppGrayFixedPoint
    • GUID_WICPixelFormat32bppGrayFloat
  • Spakowane formaty
    • GUID_WICPixelFormat16bppBGR555
    • GUID_WICPixelFormat16bppBGR565
    • GUID_WICPixelFormat32bppBGR101010
    • GUID_WICPixelFormat32bppRGBE
  • formaty CMYK
    • GUID_WICPixelFormat40bppCMYKAlpha
    • GUID_WICPixelFormat64bppCMYK
    • GUID_WICPixelFormat80bppCMYKAlpha
  • formaty kanałów N
    • GUID_WICPixelFormat32bpp4Channels
    • GUID_WICPixelFormat40bpp5Channels
    • GUID_WICPixelFormat48bpp6Channels
    • GUID_WICPixelFormat56bpp7Channels
    • GUID_WICPixelFormat64bpp8Channels
    • GUID_WICPixelFormat32bpp3ChannelsAlpha
    • GUID_WICPixelFormat40bpp4ChannelsAlpha
    • GUID_WICPixelFormat48bpp5ChannelsAlpha
    • GUID_WICPixelFormat56bpp6ChannelsAlpha
    • GUID_WICPixelFormat64bpp7ChannelsAlpha
    • GUID_WICPixelFormat72bpp8ChannelsAlpha
    • GUID_WICPixelFormat48bpp3Channels
    • GUID_WICPixelFormat64bpp4Channels
    • GUID_WICPixelFormat80bpp5Channels
    • GUID_WICPixelFormat96bpp6Channels
    • GUID_WICPixelFormat128bpp8Channels
    • GUID_WICPixelFormat64bpp3ChannelsAlpha
    • GUID_WICPixelFormat80bpp4ChannelsAlpha
    • GUID_WICPixelFormat96bpp5ChannelsAlpha
    • GUID_WICPixelFormat112bpp6ChannelsAlpha
    • GUID_WICPixelFormat128bpp7ChannelsAlpha
    • GUID_WICPixelFormat144bpp8ChannelsAlpha