Jak konwertować RGB -> YUV -> RGB (w obie strony)

Chcę parę algorytmów konwersji, jeden od RGB do YUV, drugi od YUV do RGB, które są wzajemnie odwrócone. Oznacza to, że konwersja w obie strony powinna pozostawić wartość niezmienioną. (Jeśli chcesz, zastąp YUV Y'UV, YUV, YCbCr, YPbPr.)

Czy taka rzecz istnieje? Jeśli tak, co to jest?

Opublikowane rozwiązania (Jak wykonać konwersję RGB-> YUV w C / C ++?, http://www.fourcc.org/fccyvrgb.php, http://en.wikipedia.org/wiki/YUV) są tylko odwróceniami (dwie macierze 3x3 są odwrócone), pomijając zacisk do [0,255]. Ale pominięcie tego mocowania pozwala na takie rzeczy, jak negatywna luminancja, która powoduje spustoszenie w przetwarzaniu obrazu w przestrzeni YUV. Zachowanie zacisku czyni konwersję nieliniową, co utrudnia określenie odwrotności.

questionAnswers(3)

yourAnswerToTheQuestion