MPEG-1: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Jedna kropka za dużo
m lit.
Linia 7:
# [[Kodek]] kompresji sygnałów wideo bez przeplotu.
# Kodek kompresji stratnej sygnałów audio. Standard definiuje trzy "warstwy", czy też poziomy złożoności kodowania audio [[MPEG]].
## [[MP1]] lub MPEG-1 Part 3 Layer 1 (MPEG-1 Audio Layer 1)
## [[MP2]] lub MPEG-1 Part 3 Layer 2 (MPEG-1 Audio Layer 2)
## [[MP3]] lub MPEG-1 Part 3 Layer 3 (MPEG-1 Audio Layer 3)
# Procedury dla testów zgodności.
# Oprogramowanie referencyjne.
Linia 18:
'''Część 1''' odnosi się do problemu łączenia jednego lub kilku strumieni danych audio i wideo standardu MPEG-1 do postaci jednego strumienia. Jest to ważna funkcja, ponieważ po połączeniu w jeden strumień danych o postaci cyfrowej, obraz lepiej nadaje się do przechowywania lub przesyłania.
 
'''Strumienie podstawowe (ES – ''elementary streams'')''' to zakodowane strumienie bitów MPEG-1 audio i video. Te rodzaje strumieni mogą być osobno udostępniane, np. tak jak w przypadku [[MP3]]. Dodatkowo, podstawowe strumienie mogą być bardziej wydajne poprzez ich spakowanie, np. dzieląc je na niezależne kawałki i dodając do nich [[Suma kontrolna|sumę kontrolną]] ([[cykliczny kod nadmiarowy]], CRC – ''cyclic redundancy check''), dla każdego segmentu do wykrywania błędów. Taką strukturę nazywa się strukturą [[Packetized elementary stream|PES]] (z ang. ''packetized elementary stream'').
Dodatkowo, podstawowe strumienie mogą być bardziej wydajne poprzez ich spakowanie, np. dzieląc je na niezależne kawałki i dodając do nich [[Suma kontrolna|sumę kontrolną]] ([[cykliczny kod nadmiarowy]], CRC – ''cyclic redundancy check''), dla każdego segmentu do wykrywania błędów. Taką strukturę nazywa się strukturą [[Packetized elementary stream|PES]] (z ang. ''packetized elementary stream'').
 
'''SCR (''system clock reference'')''' jest wartością czasową przechowywaną w 33-bitowych nagłówkach każdego z elementarnych strumieni, przy częstotliwości/dokładność 90 kHz, z dodatkowym 9 -bitowym rozszerzeniem, które przechowuje dodatkowe dane czasu z dokładnością do 27 MHz. Te zakodowane wartości, pochodzą z [[Zegar systemowy|zegara systemowego]] (STC – ''system time clock''). Jednocześnie zakodowane strumienie audio i video nie mają identycznych wartości SCR.
 
'''Strumienie programowe (PS – ''program streams'')''' są związane z powiązaniem wielu pakietów strumieni elementarnych (zwykle tylko jeden elementarny pakiet strumieni audio i video) w jeden strumień, zapewniając jednoczesne dostarczanie, utrzymywanie i synchronizacje. Struktury PS znane są też jako '''multipleksy'''.
 
'''Czasowe znaczniki dekodowania (PTS – ''presentation time stamps'')''' istnieją w PS do poprawienia nieuniknionych rozbieżności między wartościami audio i wideo SCR. Wartość 90 kHz PTS w nagłówku PS przekazuje dekoderowi, jakie wartości audio SCR odpowiadają wartościom video SCR. PTS określa, kiedy wyświetlić odpowiednią część programu, a także jest wykorzystywany przez dekoder do określenia, kiedy mogą być wyrzucone dane z bufora . Każda część wideo lub audio może być opóźniona w dekodowaniu aż do momentu, gdy odpowiadający jej segment będzie gotowy do dekodowania.
 
'''Dekodowanie znaczników czasowych (DTS – ''decoding time stamps'')''' jest wymagane ze względu na klatki typu B (''B-frames''), które w strumieniach video, kodują i dekodują sąsiadujące klatki w innej kolejnością. DTS jest trochę podobny do PTS, ale zamiast obsługi kolejnych klatek, zawiera znaczniki czasu, które przekazują, kiedy dekodować lub odkodować i wyświetlić kolejne klatki typu B. Bez klatek typu B w filmie, PTS i DTS mają identyczne wartości.
 
'''Multipleksowanie'''. Do generowania strumieni programowych (PS), multiplekser przeplata (dwa lub więcej) pakiety elementarnych strumieni (ES). Dzieje się tak, gdy pakiety równoległych strumieni mogą być przekazane na tym samym kanale i mogą być zakodowane w dokładnie tym samym czasie.
 
== Część 2: 'Video' ==
'''Część 2''' określa kodowanie, które można wykorzystać do kompresji sekwencji wideo - zarówno 625 i 525 linii w strumień binarny prędkości. Początkowo część 2 została stworzona do pracy głównie z nośnikami oferującymi ciągły transfer do 1,5 Mbit / s. Niemniej jednak może ona być stosowana w szerszym zakresie.
 
MPEG-1 wykorzystuje znane metody kompresji wideo do zredukowania ilości danych wymaganych przez strumień wideo. W pewnym stopniu zmniejszane są lub całkowicie usuwane określone częstotliwości i obszary obrazu takie, których ludzkie oko w pełni nie dostrzega ze względu na naturalne ograniczenia. Wykorzystywane jest również czasowe oraz przestrzenne zredukowanie wspólnej części wideo do osiągnięcia lepszej kompresji danych, niż byłoby to możliwe w inny sposób.
 
'''Kompresja barwy:'''
 
Przed kodowaniem wideo MPEG-1, kolory zostają przekształcone na format '''Y'CbCr''' (Y '= Luma, Cb = Chroma Blue, Cr = Chroma Red). Luma (jasność, rozdzielczość) i chroma (kolor, barwa, faza) są przechowywane oddzielnie, a nawet podzielone na kolejne części (np. kolor na odcienie czerwone i niebieskie). Chroma jest również podzielona w skali 4 do 2 do 0 , co oznacza, że jest zmniejszana o połowę w pionie i o połowę w poziomie, do zaledwie jednej czwartej rozdzielczość wideo.
 
Ludzkie oko jest bardziej wrażliwe na niewielkie zmiany w jasności niż kolorze, dlatego próbkowanie chromy jest bardzo skutecznym sposobem na zmniejszenie ilości danych wideo które muszą być skompresowane(nie potrzeba aż tyle danych koloru, żeby oko postrzegało tą samą jakość obrazu). Przy obrazie wideo z doskonałym odwzorowaniem szczegółów (o wysokiej złożoności przestrzennej ) może objawiać się aliasowy artefakt barwy. W porównaniu do innych cyfrowych artefaktów kompresji, kwestia ta jest bardzo rzadkim źródłem irytacji. Y'CbCr jest często błędnie nazywane YUV, która to nazwa dotyczy tylko niektórych analogowych sygnałów wideo.
Y'CbCr jest często błędnie nazywane YUV, która to nazwa dotyczy tylko niektórych analogowych sygnałów wideo.
 
'''Przepustowość binarna i rozdzielczość:'''
Linia 53 ⟶ 51:
'''I-frames:'''
 
Klatki typu I mogą być dekodowane niezależnie od innych klatek i są zwane jako '''Intra-frames'''. Klatki typu I można uważać za identyczne z podstawą formatu zdjęć '''JPEG'''. Szybkie przeszukiwanie video MPEG-1 jest możliwe jedynie z dokładnością do najbliższej klatki typu I. Jeśli brać pod uwagę tylko kompresję klatki typu I są bardzo szybkie, jednak tworzą bardzo duże rozmiary plików, większe niż zwykle kodowany obraz wideo MPEG-1. Długości pomiędzy klatkami typu I znane są jako wielkość '''GOP (Group of pictures)'''. MPEG-1 przeważnie używa GOP wielkości rzędu 15-18.
Jeśli brać pod uwagę tylko kompresję klatki typu I są bardzo szybkie, jednak tworzą bardzo duże rozmiary plików, większe niż zwykle kodowany obraz wideo MPEG-1.
Długości pomiędzy klatkami typu I znane są jako wielkość '''GOP (Group of pictures)'''.
MPEG-1 przeważnie używa GOP wielkości rzędu 15-18.
 
'''P-frames:'''
 
Nazwa p-frame jest skrótem od '''Predicted-frames'''. Klatki typu P nazywane są też między-klatkami ('''inter-frames'''). Klatki typu P pozwalają na poprawę kompresji poprzez wykorzystanie czasowego zwolnienia w wideo. Klatki te przechowują tylko różnice pomiędzy obrazem obecnym i korzeniem obrazem. Różnica między klatką typu p i jej korzeniem oblicza się za pomocą wektorów ruchu w każdym makrobloku klatki. Takie dane wektora ruchu są osadzone w klatce typu P do użytku przy dekodowaniu. Jeśli plik wideo drastycznie zmienia się z jednej klatki do drugiej (np. cięcie ), to bardziej wydajne będzie zastosowanie kodowania poprzez klatkę typu I.
Nazwa p-frame jest skrótem od '''Predicted-frames'''. Klatki typu P nazywane są też między-klatkami ('''inter-frames''').
Klatki typu P pozwalają na poprawę kompresji poprzez wykorzystanie czasowego zwolnienia w wideo. Klatki te przechowują tylko różnice pomiędzy obrazem obecnym i korzeniem obrazem.
Różnica między klatką typu p i jej korzeniem oblicza się za pomocą wektorów ruchu w każdym makrobloku klatki. Takie dane wektora ruchu są osadzone w klatce typu P do użytku przy dekodowaniu.
Jeśli plik wideo drastycznie zmienia się z jednej klatki do drugiej (np. cięcie ), to bardziej wydajne będzie zastosowanie kodowania poprzez klatkę typu I.
 
'''B-frames:'''
 
B-frame oznacza klatkę dwukierunkową ('''bidirectional-frame'''). Mogą być również znane jako obrazki typu B ('''B-pictures'''). Klatki typu B są bardzo podobne do klatek typu P, lecz mogą korzystać z dwóch klatek-korzeni. Konieczne jest zatem jako pierwsze zakodowanie następnego korzenia klatki typu I lub klatki typu P kolejno po klatce typu B, przed tym jak klatka typa B zostanie zakodowana i wyświetlona. Przez to klatki typu B wymagają złożonych obliczeń i długich buforów danych. Zwiększa to opóźnienia przy kodowaniu i dekodowaniu.
Konieczne jest zatem jako pierwsze zakodowanie następnego korzenia klatki typu I lub klatki typu P kolejno po klatce type B, przed tym jak klatka typa B zostanie zakodowana i wyświetlona. Przez to klatki typu B wymagają złożonych obliczeń i długich buforów danych. Zwiększa to opóźnienia przy kodowaniu i dekodowaniu.
 
'''D-frames:'''
Linia 76 ⟶ 67:
'''Makrobloki:'''
 
MPEG-1 operuje na obrazach video podzielonych na bloki 8x8. Jednak z powodu podziału koloru przez współczynnik 4, każda para (czerwony i niebieski) bloku koloru odpowiada czterem różnym blokom jasności. Ten zestaw 6 bloków, o rozdzielczości 16x16, nazywa się makroblokiem. Makroblok jest najmniejszą niezależną jednostką koloru wideo. Wektory ruchu działają wyłącznie na poziomie makrobloku.
Makroblok jest najmniejszą niezależną jednostką koloru wideo. Wektory ruchu działają wyłącznie na poziomie makrobloku.
 
'''Wektory ruchu:'''
Linia 85 ⟶ 75:
'''Kodowanie entropii:'''
 
Kilka kroków w kodowaniu video formatu MPEG-1 jest bezstratnych, co oznacza, że po odkodowaniu powrócą do tych samych wartości jak sprzed kodowania. Takie bezstratne kodowanie bez dodawania dźwięku nazywa się cichym kodowaniem. W teorii kodowanie entropii, zakłada usunięcie jak największej możliwości nadmiaru informacji przy kompresji bezstratnej.
 
'''RLE (Run-length encoding)''' jest bardzo prostą metodą kompresji powtórzeń. Sekwencyjny ciąg znaków, bez względu na długość, może być zastąpiony przez kilka bajtów , uwzględniając wartość, która się powtarza i ile razy się powtarza.
 
Informacja o wektorach ruchu i współczynnikach DCT jest kodowana '''kodem Huffmana'''. Wartości bardzo prawdopodobne są reprezentowane przez krótsze ciągi zer i jedynek, a mało prawdopodobne - przez dłuższe ciągi. Najpierw następuje odtworzenie informacji zero-jedynkowej przy pomocy dekodowania Huffmana. Uzyskuje się dwa rodzaje klatek: kluczowe — zawierające pełne obrazy oraz predykcyjne, zawierające różnice między skompensowanymi ruchowo klatkami kluczowymi i oryginalnymi w filmie. Następnie strumienie bitów z klatek predykcyjnych są podawane odwrotnej transformacji kosinusowej celem odtworzenia przybliżonych obrazów, będących wynikiem poprzesuwania bloków z klatki odniesienia zgodnie z wektorami ruchu. Następnie obrazy te są dodawane do klatek odniesienia (również odtworzonych za pomocą odwrotnej transformacji kosinusowej), dzięki czemu odtworzone zostają pozostałe klatki filmu.
Najpierw następuje odtworzenie informacji zero-jedynkowej przy pomocy dekodowania Huffmana. Uzyskuje się dwa rodzaje klatek: kluczowe — zawierające pełne obrazy oraz predykcyjne, zawierające różnice między skompensowanymi ruchowo klatkami kluczowymi i oryginalnymi w filmie. Następnie strumienie bitów z klatek predykcyjnych są podawane odwrotnej transformacji kosinusowej celem odtworzenia przybliżonych obrazów, będących wynikiem poprzesuwania bloków z klatki odniesienia zgodnie z wektorami ruchu. Następnie obrazy te są dodawane do klatek odniesienia (również odtworzonych za pomocą odwrotnej transformacji kosinusowej), dzięki czemu odtworzone zostają pozostałe klatki filmu.
 
== Część 3: 'Audio' ==
Część 3 standardu MPEG-1 wykorzystuje psychoakustyki by istotnie zmniejszyć prędkość transmisji danych wymaganych przez strumień audio. Standard ten zmniejsza lub całkowicie usuwa niektóre części audio, których ludzkie ucho nie słyszy, ponieważ są poza częstotliwością słyszenia ludzkiego ucha.
 
Kodowanie kanału:
* Mono
* Joint Stereo
* audio/mpeg, video/mpeg
* Podwójne (dwa skorelowane kanały mono)
* Próbkowanie : 32000, 44100 i 48000 Hz
* Strumień bitów : 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 i 384 kbit / s
 
Audio MPEG-1 jest podzielony na 3 warstwy. Każda wyższa warstwa jest bardziej złożona obliczeniowo, i ogólnie bardziej skuteczna w niższych strumieniach bitów niż poprzednie. Warstwy wyższe są częściowo kompatybilne z warstwą niższą.
 
; Warstwa I (Layer I)
Linia 109 ⟶ 98:
 
; Warstwa II (Layer II)
MPEG-1 warstwa II (MP2, często błędnie nazywana Musicam) to stratny format audio przeznaczony do zapewnienia wysokiej jakości na przepustowości około 192 kbit / s dla dźwięku stereo. Dekodowanie dźwięku MP2 jest proste obliczeniowo , w stosunku do MP3, AAC , itp. Subiektywne badania audio wykonane przez ekspertów wykazały, że w najbardziej krytycznych warunkach MP2 oferuje przejrzystą kompresję audio ld 256 kbit/s dla 16 bit 44.1 kHz audio CD.
Subiektywne badania audio wykonane przez ekspertów wykazały, że w najbardziej krytycznych warunkach MP2 oferuje przejrzystą kompresję audio ld 256 kbit/s dla 16 bit 44.1 kHz audio CD.
 
; Warstwa III (Layer III)
MPEG-1 warstwa III(MP3) to stratny format audio zaprojektowany w celu zapewnienia odpowiedniej jakości dla przepustowości ok. 64 kbit/s dla ścieżek audio na pojedynczym kanale o 128 kbit /s dla dźwiekudźwięku stereo. MP3 korzysta z niektórych funkcji niższej warstwy, lecz znacznie się od niej różni.
 
Warstwa ta pracuje na 1152 próbkach warstwy niższej, ale potrzebuje przeanalizować więcej klatek przed procesem efektywnego podzielenia. Jakość 3 warstwy może być gorsza od jakości niższej warstwy przy wysokich strumieniach bitów. Ogólnie jakość MP3 uważana jest za średnio dobrą jakość.
 
== Część 4: 'Testy zgodności' ==
Część 4 ma na celu sprawdzenie, czy strumienie bitowe dekoderów spełniają wymogi określone w części 1, 2 i 3 standardu MPEG-1. Odbywa się to za pomocą testów. Testy te mogą być wykorzystywane przez:
* producentów koderów i ich klientów, w celu sprawdzenia, czy koder produkuje poprawny strumień bitów.
* producentów dekoderów i ich klientów do sprawdzenia, czy dekoder spełnia wymogi określone w części 1,2 i 3 standardu MPEG-1
* producentów aplikacji w celu sprawdzenia, czy cechy danego strumienia bitów spełniają wymagania aplikacji, na przykład, czy rozmiar kodowanego obrazu nie przekracza maksymalnej wartości dopuszczalnej standardu MPEG-1.