Film 4: 3 ma rozdzielczość 720×480

Próbowałem przeprowadzić edycję i kodowanie wideo. Mam tak zwany film SD, który powinien mieć proporcje 4:3. Ale zamiast 640x480 jest to 720x480. Co ciekawe, gdy odtwarzam go w odtwarzaczu multimedialnym, widzę 640x480 – nie jest odtwarzany jako 720x480!

Co się dzieje ?! Jak to możliwe?

Odpowiedź

525/60 zdigitalizowane wideo SD zgodnie z Rec. 601 ma rzeczywiście 720 pikseli szerokości i 480 pikseli wysokości, w tym niektóre wygaszenia po bokach. Cyfrowy odpowiednik 625/50 to 720×576. W obu przypadkach współczynnik proporcji klatki wynosi 4: 3, co oznacza po prostu, że piksele nie są kwadratowe. Zobacz https://en.wikipedia.org/wiki/D-1_(Sony)

Aby uczynić sprawę bardziej złożoną, tylko podzbiór ramki ma 4 : 3 proporcje. Myślę, że tylko 704×480 (dla 525/60) i 704×576 (dla 625/50) ma proporcje 4: 3. Zobacz dyskusję tutaj: https://lurkertech.com/lg/video-systems/

Zatem 480 pikseli to proporcja 10/11, 576 pikseli to proporcje 59/54. Zobacz także tutaj: https://en.wikipedia.org/wiki/Pixel_aspect_ratio . I nie zapominaj, że zarówno formaty 480-liniowe, jak i 576-liniowe mogą być również szerokoekranowy (16: 9), ale z taką samą liczbą pikseli w linii! Ponadto liczby takie jak 59/54 nie są łatwe w obsłudze. Wszystko to spowodowało, że dla formatu 576-liniowego proporcje pikseli zostały wybrane na 12/11 dla proporcji ekranu 4: 3, a jako 16/11 dla 16: 9.

Kwadratowe piksele stały się normą zaczynając od karty wideo VGA, jak sądzę, a następnie od specyfikacji HD dla wideo 720-liniowego i 1080-liniowego. Nawiasem mówiąc, istnieje kilka formatów HD, które nagrywają 1440 x 1080 lub 960 x 720, ale mają proporcje klatki 16: 9, a także mają piksele niekwadratowe. Piksele kwadratowe powstały stosunkowo niedawno i nie należy ich automatycznie oczekiwać.

Komentarze

  • Dziękujemy za opis. Ja ' m bawię się FFmpeg w celu wykonania pewnych eksperymentów (aby sprawdzić, czy oba mają taką samą długość cięcia scen). Więc skoro odtwarzanie jest takie samo, czy powinienem założyć z ffmpeg, 640×480 i 720×480 są identyczne ?!
  • ffmpeg, (nie ffplay) nigdy nie skaluje wideo do proporcje wyświetlania, więc filtry i kodery będą działać tylko na danych rastrowych, które w twoim przypadku mają 720×480.
  • piksele inne niż kwadratowe prawdopodobnie wymagałyby ponownego próbkowania wideo, najgorszy rodzaj transkodowanie znane ludzkości, aby to naprawić.

Odpowiedź

Są dwie różne rzeczy:

  • Rzeczywista szerokość i wysokość ramek (w pikselach) – patrz zielona część poniższego obrazu.
  • wyświetlana szerokość i wysokość (podczas odtwarzania) – zobacz niebieską część tego samego obrazu.

Problem pojawił się w starym złe dni, kiedy rozdzielczość urządzeń (liczba pikseli w obrazie) była bardzo niska, ale wymagany stosunek szerokości do wysokości do odtwarzania wynosił 4: 3.

Rozwiązanie (w w tamtych czasach) był wynalezieniem niekwadratowych pikseli.


Dla uproszczenia załóżmy (teoretycznie) bardzo małe wymiary:

  • wymagane: 4 x 3 piksele (i. mi. 12 pikseli) na klatkę.
  • rzeczywiste możliwe (za akceptowalną cenę): 3 x 3 (czyli 9 pikseli).

Rozwiązaniem były piksele niekwadratowe z współczynnik proporcji pikseli ( PAR ) 4: 3 , jak tutaj:

tutaj wprowadź opis obrazu

Zatem współczynnik proporcji piksela ( PAR ) to stosunek rozmiarów każdego pojedynczego piksela:

Każdy niebieski piksele na naszym obrazie mają PAR 4: 3, a każdy pomarańczowy i każdy zielony ma PAR 1: 1.

Teraz cały (niebieski) obraz jest wyświetlany poprawnie, tak jak chcieliśmy – np. sol. jako 12 cm x 9 cm – więc jego współczynnik proporcji wyświetlania ( DAR ) wynosi 12: 9 lub 4: 3.

Mimo to jest zapisywany jako 3 x 3 piksele – więc współczynnik proporcji pamięci ( SAR ) to 3 piksele: 3 piksele lub 1: 1.

Wskazówka:

  • proporcje pikseli ( PAR ) to mikrometry: mikrometry
  • współczynnik proporcji wyświetlacza ( DAR ) to centymetry: centymetry
  • współczynnik proporcji pamięci ( SAR ) to piksele: piksele

W konsekwencji relacja między te 3 wartości to

                          DAR = SAR × PAR

Ważna uwaga:

Czasami jest PAR (Pixel Aspect Ratio) o nazwie Sample Aspect Ratio jak w FFmpeg . Niefortunnie, jego skrót to SAR , co jest bardzo mylące, ponieważ – jak widzieliśmy – jest to również skrót od Storage Aspect ratio.


Główny problem:

W dzisiejszych czasach wszystkie urządzenia mają proporcje 1: 1 (piksele kwadratowe), oraz wiele odtwarzaczy multimedialnych, głównie dla małych urządzeń (telefony komórkowe, tablety), polega na nim, całkowicie ignorując wartość DAR zapisaną w strumieni wideo.

Może się więc zdarzyć, że to samo wideo (ze wszystkich źródeł) będzie odtwarzane poprawnie na komputerze stacjonarnym lub laptopie, ale nieprawidłowo (zawężone) w smartfonie. Lub nawet na inny odtwarzacz multimedialny na tym samym komputerze lub urządzeniu.

W naszym przykładzie ramki mogą być nieprawidłowo wyświetlane jako kwadrat (zobacz zieloną część powyższego obrazu).


Rozwiązanie tego problemu w FFmpeg:

  • zmień rozmiar problematycznego wideo, a następnie
  • s ustaw SAR na 1, a
  • DAR ma prawdopodobnie poprawną wartość, ale możesz ustawić ją dla pewności.

W naszym (nierealnym) przykładzie może użyć wykresu filtrów

-vf scale=4:3,setsar=1,setdar=w/h 

gdzie w to z (tylko przeskalowanymi) ramkami w pikselach, h to ich wysokość. FFmpeg automatycznie podstawi odpowiednie wartości.

Rezultatem będzie pomarańczowa część powyższego obrazu.


W Twoim przypadku Twój film ma (z Twoich informacji)

  • DAR 4: 3 (640: 480),
  • SAR (współczynnik proporcji pamięci) 720: 480 = 3: 2 i – w konsekwencji –
  • PAR = DAR / SAR = 8: 9. (W terminologii FFmpeg jest to SAR – przykładowy współczynnik kształtu).

A więc aby uniknąć problemów z odtwarzaczami multimedialnymi ignorującymi wartość DAR (i odtwarzać ją w proporcji 720: 480, możesz rozważyć przekonwertuj go poleceniem

ffmpeg -i your_input_file -vf -scale=640:480,setsar=1 -c:a copy your_output_file 

Problemy z obrazami z pikselami innymi niż kwadratowe:

W przypadku zdjęć sytuacja jest jeszcze gorsza:

Prawie wszyscy przeglądający / redaktorzy zdjęć i przeglądarki internetowe po prostu ignorują obrazy SAR i DAR , zakładając, że wszystko zdjęcia na całym świecie mają SAR 1: 1.

Honorowy wyjątek to (co ciekawe i zaskakująco) Microsoft Windows Photo Viewer , która wyświetla wszystkie zdjęcia w poprawnej ctly.

Możesz się o tym przekonać e. sol. przez Test współczynnika proporcji pikseli – wszystkie 9 zdjęć powinno być poprawnie wyświetlanych w przeglądarce, ale – bardzo prawdopodobne – nie są.

Komentarze

  • dobrze opisane. Dzięki! Obie odpowiedzi są poprawne. Gdy liczba ups wzrośnie, zaktualizuje najlepszą odpowiedź.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *