Teoria
Różnice w filmie prawdopodobnie nie będą zauważalne dla niewprawnego oka. W każdym razie wideo 1080p musiałoby zostać zmniejszone. Nie będzie to jednak dokładnie to samo, ponieważ kompresja i skalowanie są stosowane w innej kolejności.
Załóżmy, że oryginalny film miał 1080p. W tym przypadku wideo 720p zostało najpierw przeskalowane, a następnie skompresowane. Z drugiej strony klip 1080p został najpierw skompresowany po stronie serwera, a następnie skalowany na komputerze. Plik 1080p będzie oczywiście większy. (w przeciwnym razie oferowałby wyższą rozdzielczość, ale przy niższej jakości, rujnując wrażenia wizualne i unieważniając sens używania wyższej rozdzielczości 1 )
Utrata kompresji zwykle powoduje, że artefakty wizualne pojawiają się jako kwadratowe bloki z zauważalnymi krawędziami po wstrzymaniu wideo, ale nie są widoczne, gdy odtwarzane jest z normalną szybkością klatek. Plik 1080p będzie zawierał więcej kwadratowych bloków (spowodowanych kompresją) niż wideo 720p, ale te bloki będą w przybliżeniu tego samego rozmiaru w obu filmach.
Wykonując prostą matematykę, możemy obliczyć, że wideo 1080p będzie zawierało 2,25 razy więcej takich bloków, więc po zmniejszeniu do 720p te bloki będą 2,25 razy mniejsze niż w rzeczywistym wideo 720p. Im mniejsze są te bloki, tym lepsza jakość końcowego wideo, więc wideo 1080p będzie wyglądało lepiej niż wideo 720p, nawet na ekranie 720p. Przeskalowane wideo 1080p będzie nieco ostrzejsze niż rzeczywisty klip 720.
Sprawy stają się nieco bardziej skomplikowane, jeśli materiał źródłowy był większy niż 1080p. Klip 1080p jest najpierw skalowany do 1080p i kompresowany przed odtworzeniem, a następnie ponownie skalowany podczas odtwarzania. Klip 720p jest skalowany tylko raz, a następnie kompresowany. Pośredni krok skalowania, który występuje w obudowie wideo 1080p, nieco pogorszy jego jakość 2 . Kompresja jeszcze pogorszy 720p, więc 1080p i tak wygrywa.
Jeszcze jedno: nie tylko skompresowane wideo, ale także dźwięk. Kiedy ludzie decydują się na użycie wyższej szybkości transmisji 1 do kompresji wideo, często robią to samo z dźwiękiem. Wersja 1080p tego samego wideo może oferować lepszą jakość dźwięku niż wideo 720p.
1 : Szybkość transmisji bitów jest czynnikiem decydującym o tym, jak dobry jest skompresowany film kosztem rozmiaru pliku. Jest określany ręcznie podczas kompresji wideo. Określa, ile miejsca na dysku można wykorzystać na każdą klatkę (lub jednostkę czasu) skompresowanego wideo. Wyższa przepływność = lepsza jakość i większy plik. Użycie tej samej szybkości transmisji z tym samym przepływem spowoduje utworzenie plików o (w przybliżeniu) tego samego rozmiaru, bez względu na rozdzielczość wideo, ale im wyższa rozdzielczość, tym mniej miejsca na dysku można wydać na pojedynczy piksel, zwiększając rozdzielczość wyjściową bez zwiększania Szybkość transmisji może sprawić, że skompresowane wideo będzie wyglądało gorzej niż przy niższej rozdzielczości wyjściowej.
2 : Wypróbuj sam: otwórz zdjęcie w dowolnym edytorze i przeskaluj je do nieco mniejszego rozmiaru, a następnie w kółko zapisz jako PNG. Następnie ponownie otwórz oryginalne zdjęcie i skaluj je do tego samego rozmiaru w jednym kroku. Druga próba da lepsze wyniki.
Test
@Raestloz poprosił o porównanie filmów w swoim komentarzu. Nie mogłem znaleźć wersji 1080p i 720p tego samego wideo do porównania, więc zrobiłem jedną.
Użyłem nieskompresowanych klatek z filmu „Elephant's dream” ( http://www.elephantsdream.org/ ), które są dostępne na licencji CC-BY 2.5. Pobrałem klatki 1-6000 i przekonwertowałem je na filmy przy użyciu ffmpeg i następującego pliku wsadowego:
ffmpeg -i %%05d.png -c:v libx264 -framerate 24 -b:v 500k -an -s 1280x720 -f mp4 _720p_500k.mp4
ffmpeg -i %%05d.png -c:v libx264 -framerate 24 -b:v 700k -an -s 1280x720 -f mp4 _720p_700k.mp4
ffmpeg -i %%05d.png -c:v libx264 -framerate 24 -b:v 1125k -an -s 1280x720 -f mp4 _720p_1125k.mp4
ffmpeg -i %%05d.png -c:v libx264 -framerate 24 -b:v 4000k -an -s 1280x720 -f mp4 _720p_4000k.mp4
ffmpeg -i %%05d.png -c:v libx264 -framerate 24 -b:v 500k -an -f mp4 _1080p_500k.mp4
ffmpeg -i %%05d.png -c:v libx264 -framerate 24 -b:v 700k -an -f mp4 _1080p_700k.mp4
ffmpeg -i %%05d.png -c:v libx264 -framerate 24 -b:v 1125k -an -f mp4 _1080p_1125k.mp4
ffmpeg -i %%05d.png -c:v libx264 -framerate 24 -b:v 4000k -an -f mp4 _1080p_4000k.mp4
- 24 fps
- 1080p i 720p
- cztery stałe szybkości transmisji dla każdej rozdzielczości:
- 500 kb / s
- 700 kb / s
- 1125 kb / s
- 4000 kb / s
500 kb / s jest wystarczająco niskie, aby artefakty kompresji i zniekształcenia pojawiały się na wideo 720p. 1125 kb / s to proporcjonalna przepływność na piksel dla 1080p (500 × 2,25 = 1125, gdzie 2,25 = 1920 × 1080/1280 × 720). 700 kb / s to pośrednia szybkość transmisji, aby sprawdzić, czy zastosowanie bitrate znacznie mniejszej niż proporcjonalna dla 1080p ma sens. 4000 kb / s jest wystarczająco wysoka, aby stworzyć głównie bezstratne wideo w obu rozdzielczościach do porównania przeskalowanego 1080p do rzeczywistego 720p.
Potem podzieliłem filmy z powrotem na pojedyncze klatki. Wyodrębnianie wszystkich klatek jest powolne i zajmuje dużo miejsca ( prawdziwa historia ), dlatego zalecam używanie przełącznika ffmpeg-r
do wyodrębniania co 8 klatek (tj. -r 3
Dla wideo 24 kl./s)
Nie mogę zapewnić przyszłych linków do pobierania filmów, ale te kroki można łatwo powtórzyć, aby utworzyć klipy, takie jak mój. Dla przypomnienia, oto rozmiary plików wyjściowych: (powinny być w przybliżeniu identyczne dla obu rozdzielczości, ponieważ szybkość transmisji jest stała na sekundę)
- 500 kb / s: 13,6 MB / 13,7 MB
- 700 kb / s: 18,8 MB / 19 MB
- 1125 kb / s: 29,8 MB / 30,2 MB
- 4000 kb / s: 105 MB / 105 MB
Pliki do pobrania dla próbek wyodrębnionych ramek są dostępne na końcu tego postu.
Zwiększanie przepływności i rozdzielczości
Oto porównanie tego samego regionu przyciętego z obu klatek po skalowaniu do 720p (ramka 2097). Spójrz na palce, głowy i sprzęt zwisający z sufitu: nawet od 500 do 700 kb / s robi zauważalną różnicę. Pamiętaj, że oba obrazy są już skalowane do 720p.
Rama 3705. Zwróć uwagę na krawędź dywanu i kabel:
Ramka 5697. Jest to przykład ramki, która nie kompresuje się zbyt dobrze. Wideo 1080p 700 kb / s jest mniej szczegółowe niż klip 720 500 kb / s (krawędź ucha). Szczegóły skóry są tracone na wszystkich skompresowanych ramkach.
Pliki GIF wszystkich trzech ramek, ze wzrostem przepływności. (Niestety musiałem użyć ditheringu, ponieważ GIMP nie obsługuje więcej niż 255 kolorów w formacie GIF, więc niektóre piksele są trochę wyłączone).
Stała szybkość transmisji, różne rozdzielczości
Zainspirowany komentarzem @ TimS., Oto ten sam region z klatki 2097 z 720p i 1080p obok siebie.
W przypadku 500 kb / s 720p jest nieco lepsze niż 1080p. 1080p wydaje się ostrzejszy, ale szczegóły te nie są obecne na nieskompresowanym obrazie (spodnie lewego faceta). Przy 700 kbps nazwałbym to remisem. Wreszcie 1080p wygrywa przy 1125 kb / s: oba zdjęcia wyglądają w większości identycznie, ale obraz po prawej stronie ma wyraźniejsze cienie (rury na tylnej ścianie iw dolnej prawej części).
Bardzo wysoka szybkość transmisji
@Nieah zadał dobre pytanie w komentarzach: czy oba obrazy będą wyglądały identycznie z wystarczająco dużą przepływnością? Oto 720p 4000 kbps vs. 1080p 4000 kbps vs. nieskompresowana klatka 5697:
Teraz jest to dość subiektywne, ale oto co widzę:
- Lewa krawędź ucha jest pikselowana w 720p, ale gładka w 1080p, pomimo identycznej szybkości transmisji.
- 720p zachowuje szczegóły skóry policzka lepiej niż 1080p.
- Włosy wyglądają nieco ostrzej w rozdzielczości 1080p.
Skalowanie zaczyna tutaj odgrywać rolę. Można intuicyjnie odpowiedzieć, że 1080p będzie wyglądał gorzej niż 720p na ekranie 720p, ponieważ skalowanie zawsze wpływa na jakość. W tym przypadku nie jest to do końca prawdą, ponieważ zastosowany przeze mnie kodek (h.264, ale także inne kodeki) ma pewne niedoskonałości: tworzy małe ramki widoczne na kontrastowych krawędziach. Pojawiają się również na migawce 1080p (patrz łącza u dołu), ale zmiana rozmiaru do 720p powoduje utratę niektórych szczegółów, w szczególności wygładza te pola i poprawia jakość.
Okej, więc obliczmy różnicę między 720p (po lewej) a 1080p (po prawej) w porównaniu z oryginalną ramką i rozciągnij umowę, aby była wyraźnie widoczna:
Ten obraz daje nam jeszcze wyraźniejszą wizję tego, co się dzieje. Czarne piksele są doskonale reprezentowane w skompresowanych (i skalowanych do 720p) klatkach, kolorowe piksele są wyłączone proporcjonalnie do intensywności.
- Policzek jest znacznie bliższy oryginałowi w połowie 720p, ponieważ skalowanie wygładziło szczegóły skóry w prawej połowie.
- Krawędź ucha nie jest tak bliska nieskompresowanym pikselom, ale lepiej w 1080p. Znów artefakty są widoczne w rozdzielczości 720p w połowie - pojawiałyby się także w rozdzielczości 1080p bez powiększenia, ale skalowanie wygładziło je z całkiem dobrymi wynikami.
- Włosy wyglądają lepiej na 720p, ponieważ są zamknięte na czarne, ale w rzeczywistości wygląda jak losowy hałas. Z drugiej strony 1080p ma zniekształcenia wyrównane do krawędzi włosów, więc faktycznie podkreśla linie włosów. Prawdopodobnie jest to znów magia skalowania: „szum” wzrasta podczas skalowania, ale zaczyna też mieć sens.
Zrzeczenie się
Ten test jest czysto syntetyczny i nie dowodzi, że rzeczywiste wideo 1080p wygląda lepiej niż 720p, gdy jest odtwarzane na mniejszym ekranie. Pokazuje jednak silną zależność między przepływnością wideo a jakością wideo zmienionego do rozmiaru ekranu. Możemy bezpiecznie założyć, że wideo 1080p będzie miało wyższą przepływność niż 720p, więc będzie oferować bardziej szczegółowe klatki, które w większości przypadków poprawią wrażenia widza. Najważniejsza jest nie rozdzielczość, ale szybkość transmisji wideo, która jest wyższa w filmach 1080p.
Użycie niesamowicie wysokiej przepływności dla wideo 720p nie sprawi, że będzie wyglądać lepiej niż 1080p. Skalowanie w dół po kompresji może być korzystne dla 1080p, ponieważ będzie kształtować szum kompresji i wygładzać artefakty. Zwiększenie przepływności nie kompensuje braku dodatkowych pikseli do pracy, ponieważ kodeki stratne nie są idealne.
W rzadkich przypadkach (bardzo szczegółowe sceny) wyższa rozdzielczość, filmy o wyższej przepływności mogą wyglądać gorzej.
Jaka jest różnica między tym sztucznym testem a filmem z prawdziwego życia?
- Przyjąłem co najmniej 40% wyższą przepływność dla 1080p niż dla 720p. Patrząc na wyniki, wydaje mi się, że 20% wystarczyłoby, aby zauważyć poprawę jakości, ale nie przetestowałem tego. Proporcjonalny wzrost szybkości transmisji zapewni znacznie lepsze wyniki, nawet jeśli niższa rozdzielczość odpowiada używanemu ekranowi, ale jest mało prawdopodobne, aby był używany w prawdziwym życiu. (wciąż jest to proporcjonalne, @JamesRyan)
- Rzeczywiste filmy zwykle używają zmiennej bitrate (VBR). Poszedłem ze stałą przepływnością 1-przebiegową (CBR), mając nadzieję, że sprawi, że wszystkie nieprzyjemne skutki uboczne kompresji staną się bardziej oczywiste.
- Różne kodeki mogą reagować na różne sposoby. Ten test został przeprowadzony przy użyciu popularnego kodeka h.264.
Jeszcze raz: nie mówię, że ten post cokolwiek dowodzi. Mój test opiera się na sztucznie wykonanym wideo. YMMV dla realistycznych przykładów. Mimo to teoria prawdopodobnie jest prawdziwa, nic nie sugeruje, że może być błędna. (z wyjątkiem skalowania rzeczy, ale test sobie z tym radzi)
Podsumowując, w większości przypadków wideo 1080p będzie wyglądało lepiej niż wideo 720p, bez względu na rozdzielczość ekranu .
Pliki do pobrania:
- Ramka 2097:
- Rama 3705:
- Rama 5697: