|
TwojePC.pl © 2001 - 2025
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
Niech mnie ktoś oświeci... video RGB vs. YUV , pachura 16/08/07 22:41 Niedawno dowiedziałem się że konwertowanie video w VirtualDubie w trybach "Normal recompress" albo "Full processing" (czyli jeśli np. chcemy użyć filtrów) jest stratne, nawet jeśli wynik zapiszemy używając bezstratnego codeka - ponieważ VirtualDub pracuje wewnętrznie w przestrzeni barw RGB, a video jest zwykle w YUV, YV12 albo YCbCr. Zaś konwersja między nimi powoduje utratę informacji.
Może ktoś napisać parę słów na ten temat? Czy np. krążące po p2p XviD-y są w RGB czy YUV? Jak to sprawdzić (GSpot zdaje się nie ma takiej opcji). Jak wiele informacji jest traconych na konwersji YUV<->RGB - może jest to do pominięcia? Jak np. zmienić rozmiar video bez wykonywania tej konwersji - AviSynthem?- Tak w skrócie , JOTEM 17/08/07 08:53
YUY2 lub YUV - informacja o kolorze w obrazie jest wspólna dla pary pikseli w poziomie, informacja o jasności jest bez zmian.
YV12 - informacja o kolorze w pionie i poziomie jest wspólna dla pary pikseli.
YCbCr - nie ma kompresji informacji o kolorze. Ta głębia jest pod względem ilosci informacji równoważna RGB, uwzględniając jednak specyfikę widzenia ocenia się ją jako minimalnie lepsząod RGB.
Wynika z tego, że kolor jest nieco upośledzony. O ile w normalnych filmach oko tego nie zauważa prawie, to w kreskówkach staje się to widoczne (zwłaszcza DVD).
Zasadniczy problem jest taki, ze to podstawowe dzisiaj źródło - DVD jest w YV12. Czyli bez względu co się z tym zrobi wejściowa rozdzielczość materiału w kolorze to 360x288.
Jeśli uzyjesz bezstratnego kodeka pracujacego w YV12, to żadnej zmiany nie będzie (są takie). Jeśli użyjesz kodeka bezstratnego YUY2, to w pionie zostanie zmienione z YV12 na RGB - ale to nie jest strata! RGB niesie więcej informacji. Pojawiają się tylko drobne przekłamania przy konwersjii koloru, ale one i tak muszą być zrobione, bo wszystkie wyświetlacze są RGB.
Większość kodeków pracuje w YUY2 lub YV12, bo materiał źródłowy taki jest - RGB powiększało by tylko wielkość plików.
Co robi VirtualDub to zupełnie inna sprawa - jeśli chcesz użyć filtru, to zwykle koniecznością jest przejście na RGB (zwykle filtry pracują tylko na tych danych, dotyczy to też przeskalowania). Nie należy tego jednak rozpatrywać jako tak straszliwy problem. Jeśli konwersja dokonywana jest porządnie, obliczenia prowadzone na typie float i z niego konwertowane do formatu skompresowanego (np YV12) to degradacja będzie znikoma (rozumieć - nieistotna i niezauważalna). Jeśli konwersja jest wykonana kiepsko, obliczenia prowadzone na typie całkowitym bez przesunięcia bitów (w celu poprawienia dokładności) to można spodziewać się śladowego pogorszenia. Wszystko zależy jak się to robi.
Większym problemem są dwa standarty kodowania rozdzielczości bitowej - telewizyjny i komputerowy. W telewizyjnym nie wykorzystuje się wszystkich bitów z bajta (w znaczeniu 255 poziomów). Dotyczy to i RGB i formatów typu YCbCr (czyli również YV12, YUY2). Pomyłka oprogramowania tutaj to już poważne pogorszenie jakości. A widziałem sporo tak spapranych filmów. Jeśli soft założy, że film jest kodowany "filmowym" YV12, i tak przekonwertuje go do "komputerowego" RGB, to duża część informacji zginie. To jest problemem, to wcześniejsze nie.
Płynie z tego też ciekawy wniosek uboczny - telewizor 852x480 jest ZDECYDOWANIE za dobry nawet dla DVD (przypominam - kolor kodowany dla 360x288 pikseli). Widać to wyraźnie jak przeskaluje się klatkę z DVD do formatu 852x480 i z HD do tego samego - różnica bardzo duza.Poryjemy..zrobaczymy |
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
 |
|
|
|