YCoCg

Model kolorów YCoCg , znany również jako model kolorów YCgCo , to przestrzeń kolorów utworzona z prostej transformacji powiązanej przestrzeni kolorów RGB na wartość luminancji (oznaczoną jako Y) i dwie wartości nasycenia zwane chrominancją zieleni (Cg) i chrominancji pomarańczy (Współ). Jest obsługiwany w projektach kompresji wideo i obrazów, takich jak H.264/MPEG-4 AVC , HEVC , VVC , JPEG XR i Dirac . Jest prosty w obliczeniach, ma dobre wzmocnienie kodowania transformacji i może być bezstratnie konwertowany do iz RGB przy mniejszej liczbie bitów niż jest to potrzebne w przypadku innych modeli kolorów. Odwracalna skalowana wersja z jeszcze niższą głębią bitową , YCoCg-R , jest również obsługiwana w większości tych projektów i jest również używana w kompresji strumienia wyświetlania . Bardziej kompletna definicja ze zmienną głębią bitową Y i wartościami chrominancji jest podana w ITU-T H.273 .

Oryginalne zdjęcie powyżej i przedstawienie poszczególnych składników Y, chrominancji zieleni Cg i chrominancji pomarańczy Co.

Historia i nazewnictwo

Najwcześniejsze dokumenty (około 2003 r.) określały ten model kolorów jako YCoCg. Został po raz pierwszy przyjęty w międzynarodowym standardzie w H.264/AVC (w drugim wydaniu projektu profesjonalnych rozszerzeń), który został pierwotnie zaprojektowany do korzystania z modelu kolorów YCbCr . Kiedy to zostało przyjęte, zauważono, że składowa Co przenosiła odchylenie w kierunku czerwieni, a zatem była bardziej podobna do Cr niż Cb, więc przypisanie sygnału i nazewnictwo zostało zmienione w standardzie, w wyniku czego powstała alternatywna nazwa YCgCo (YCgCo jest używany w ITU-T H.273).

Nieruchomości

Zalety modelu kolorów YCoCg w porównaniu z modelem kolorów YCbCr to prostsze i szybsze obliczenia, lepsza dekorelacja płaszczyzn kolorów w celu poprawy wydajności kompresji oraz dokładnie bezstratna odwracalność.

Konwersja z modelem kolorów RGB

Trzy wartości modelu kolorów YCoCg są obliczane w następujący sposób na podstawie trzech wartości kolorów modelu kolorów RGB:

Wartości Y mieszczą się w zakresie od 0 do 1, podczas gdy Co i Cg mieszczą się w zakresie od -0,5 do 0,5, co jest typowe dla modeli kolorów „YCC”, takich jak YCbCr . Na przykład czysta czerwień jest wyrażana w systemie RGB jako (1, 0, 0), aw systemie YCoCg jako ( 1 / 4 , 1 / 2 , − 1 / 4 ). Jednakże, ponieważ współczynniki macierzy transformacji są prostymi ułamkami binarnymi, jest ona łatwiejsza do obliczenia niż inne transformacje YCC. Dla sygnałów RGB o głębi bitowej n , albo otrzymane sygnały byłyby wtedy zaokrąglane do n bitów, albo zwykle miałyby n + 2 bity podczas przetwarzania danych w tej postaci (chociaż n + 1 bitów byłoby wystarczające dla Co).

Odwrotna macierz konwertuje z modelu kolorów YCoCg z powrotem do modelu kolorów RGB:

Aby wykonać konwersję odwrotną, potrzebne są tylko dwa dodania i dwa odjęcia ze współczynnikami o wartościach całkowitych, poprzez zaimplementowanie jej jako:

      
      
        
       tmp  =  Y  -  Cg  ;  R  =  tmp  +  Co  ;  G  =  Y  +  Cg  ;  B  =  tmp  -  Co  ; 

Odmiana YCoCg-R oparta na liftingu

Skalowana wersja transformacji, czasami nazywana YCoCg-R (gdzie „-R” odnosi się do odwracalności), może być skutecznie zaimplementowana przy zmniejszonej głębi bitowej. Skalowana wersja wykorzystuje schemat podnoszenia , aby uczynić go dokładnie odwracalnym, jednocześnie minimalizując głębię bitową trzech składowych koloru. W przypadku sygnałów RGB o głębi bitowej n , głębia bitowa sygnału Y przy użyciu YCoCg-R będzie wynosić n , a głębia bitowa Co i Cg będzie wynosić n +1, w przeciwieństwie do zwykłego YCoCg, który wymagałby n +2 bitów dla Y i Cg oraz n +1 bity dla Co.

Tutaj możliwe wartości dla Y są nadal w [0, 1], podczas gdy możliwe wartości dla Co i Cg są teraz w [-1, 1].

Konwersja z RGB na YCoCg-R to:

     
    
     
       Co  =  R  -  B  ;  tmp  =  B  +  Co  /  2  ;  Cg  =  G  -  tmp  ;  Y  =  tmp  +  Cg  /  2  ; 

Konwersja z YCoCg-R na RGB wynosi wtedy:

    
      
      
       tmp  =  Y  -  Cg  /  2  ;  G  =  Cg  +  tmp  ;  B  =  tmp  -  Co  /  2  ;  R  =  B  +  Co  ; 

(Wszystkie podziały są obcinane, jak w C. Transformacja do przodu może być dostosowana do stworzenia podobnej implementacji YCoCg.)

Wzrost wydajności

Rozszerzenia kodowania zawartości ekranu standardu HEVC i standardu VVC obejmują adaptacyjną transformację kolorów w ramach procesu kodowania szczątkowego, co odpowiada przełączeniu kodowania wideo RGB na domenę YCoCg-R.

Wykorzystanie przestrzeni kolorów YCoCg do kodowania wideo RGB w kodowaniu zawartości ekranu HEVC przyniosło duże zyski w przypadku stratnego wideo, ale minimalne zyski przy użyciu YCoCg-R do bezstratnego kodowania wideo.

Literatura

  1. ^ „Specyfikacja Diraca” (PDF) . BBC . P. 136. Zarchiwizowane od oryginału (pdf) w dniu 2015-05-03 . Źródło 2010-05-04 .
  2. ^ a b „YCoCg: przestrzeń kolorów z odwracalnością RGB” (ppt) . University of Texas w Arlington . Źródło 2010-05-02 .
  3. ^ ab Jair Mosze. „Poprawka H.264: Rozszerzenia zakresu wierności” (PDF) . Laboratorium przetwarzania sygnału i obrazu (SIPL), Technion Izraelski Instytut Technologii . P. 15. Zarchiwizowane od oryginału (pdf) w dniu 2014-10-06 . Źródło 2010-05-02 .
  4. Bibliografia _ Xiaozhong Xu; Shawmin Lei; Kevin Jou (wrzesień 2015). „Przegląd rozszerzeń HEVC dotyczących kodowania zawartości ekranu” . P. 8.