際際滷

際際滷Share a Scribd company logo
Metody kompresji i transmisji
 audio/video w sieci Internet
Pr坦bkowanie i kwantyzacja
Standardy kompresji

    Audio                   
                                Video
       Kompresja mowy             ITU
         
           LPC (FS 1015 )            
                                       H.261
         
           CELP (G.728)              
                                       H.263
         
           RPE (LPC)               MPEG
         
           PCM (G.711)               
                                       MPEG-1
       Kompresja d添wiku            
                                       MPEG-2
         
           ADPCM (G.722,             
                                       MPEG-4
           G.726, G.727)
         
           MPEG
         
           AC3
System transmisji d添wiku
Standard MPEG-1
Por坦wnanie standard坦w
   kompresji audio
Por坦wnanie cd...

    20 ms mowy jest reprezentowana w 33 bajtach dla kodowania GSM. Std w jednej sekundzie mamy
    (50 ramek/s  33 bajty/ramk), a cakowita przepywno wynosi 1.650 B/s. Zamiana na bity 1.650  8
    = 13,200 b/s. Te wielkoci nie uwzgldnia nag坦wk坦w RTP/UDP/IP kt坦re dodaj 40 bajt坦w do pakietu.
    (50  (33+40)) = 3.650  8 = 29.2 kb/s.

    20 ms sygnau mowy zakodowanego w G.711 (ULAW/PCM) jest reprezentowana w 160 bajtach. Std
    jedna sekunda wymaga (50 ramek/s  160 bajt坦w/ramk) = 8.000B/s, zamieniajc t wielko na bity
    uzyskamy 64 kb/s. Jednak ramka w sieci IP bdzie miaa rozmiar 80 kb/s.

    20ms sygnau mowy nie mo甜e by reprezentowane w G.723. Koder jest zdefiniowany dla ramek 30ms.
    30ms mowy jest reprezentowane przez 24 bajty zakodowanego sygnau G.723. Dla jednej sekundy
    mamy (33 ramki/s  24 bajt坦w/ramk)        = 792 B/s, jest to pasmo zakodowanego strumienia.
    Zamieniajc t warto na bity otrzymamy 6.336 kb/s. Z uwzgldnieniem nag坦wk坦w RTP/UDP/IP
    cakowita przepywno wyniesie 16.896 kb/s.
Kompresja video




Przykadowo dla wideokonferencji w sieci ISDN w kt坦rej sekwencja obraz坦w kolorowych w
  formacie CIF (ang. Common Intermediate Format) standardu H.261 o czstotliwoci 25
ramek/s przesyana bdzie sieci o przepustowoci 384 kbit/s, wymagany stopie kompresji
 wynosi 79:1, zgodnie z wyliczeniem ((288  352 + 144  176 + 144  176)  8 bit坦w  25
                                ramek/s) / 384 kbit/s = 79.
MPEG-2



Strumie transportowy TS (ang. Transport Stream)  umo甜liwia przesyanie strumienia danych audio i
video kanaami z zak坦ceniami (cze satelitarne, koncentryczne kable sieci telewizyjnej), pozwala czy
wiele strumieni AV o niezale甜nych zegarach. Strumie TS u甜ywa pakiet坦w o staej dugoci 188 bajt坦w.
TS wspiera asynchroniczne czenie strumieni AV (np. program坦w telewizyjnych), szybki dostp do
danego strumienia (np. zmiana odbieranego kanau telewizyjnego), synchronizacja elementarnych
strumieni dla p坦添niejszej ich prezentacji, zarzdzanie buforami dekodera AV o staej i zmiennej dugoci
bitowej.
Real Time Transport Protocol
                                                                    Payload type- (PT) 7 bit坦w: pole identyfikuje format
                                                                     danych RTP, wymagana jest interpretacja zawartoci
                                                                     przez aplikacj. Profil definiuje standardowe
                                                                     mapowanie zawartoci danych kodowych do PT.
                                                                    Sequence number- 16 bit坦w: zwikszany o jeden po
                                                                     ka甜dorazowym wysanym komunikacie
                                                                    Timestamp- 32 bity: znacznik czasowy, znakowanie
                                                                     jest w momencie wysania pierwszego bajtu danych,
                                                                     inkrementowany jest sekwencyjnie.
                                                                    Synchronization source- (SSRC) 32 bity:

    Version- (V) 2 bity: wersja protok坦u
                                                                     synchronizacja 添r坦da, identyfikator powinien mie

    Padding- (P) 1 bit: ustawiony bit oznacza, 甜e dodano
                                                                     warto losow, tak by dwa 添r坦da synchronizacji
    wypenienie, a ostatni bajt wskazuje ile jest bajt坦w
                                                                     nale甜ce do tej samej sesji RTP nie posiaday tego
    wypenienia
                                                                     samego identyfikatora. Numer okrela nadawc

    Extension- (X) 1 bit: jeli bit jest ustawiony, oznacza 甜e
                                                                     wiadomoci zawierajcej numer sekwencyjny oraz
    nag坦wek jest poprzedzony nag坦wkiem rozszerzenia,
                                                                     znacznik czasowy danych.
    u甜ywane w przypadku zmian formatu danych (ang.
                                                                    CSRC list- 0 do 15 element坦w, ka甜dy opisany przez 32
    payload type).
                                                                     bity: lista skadowych 添r坦de dla danych zawartych w

    CSRC count- (CC) 4 bity: licznik zawiera liczb
                                                                     pakiecie. Numer identyfikator坦w jest podany przez pole
    identyfikator坦w CSRC nale甜cych do obecnego
                                                                     CC. Identyfikowanych jest tylko 15 添r坦de.
    nag坦wka
                                                                     Identyfikatory CSRC s umieszczane przez mixery

    Marker- (M) 1 bit: interpretacja pola jest definiowana
                                                                     u甜ywajc identyfikator坦w SSRC skadowego 添r坦da.
    przez profil
Payload Type
Payload Type cd...
RTCP
Multiemisja
      Zakres od 224.0.0.0
       do 239.255.255.255
IGMP

Procedura polega na tym, 甜e host wspierajcy IGMP
  przycza si do grupy wszystkich host坦w (adres
224.0.0.1). To jest jedyny adres, kt坦rego czonkiem
  musi by ka甜dy host sieciowy. IGMP pracuje na
styku host坦w i ich ruter坦w multicastowych, a tak甜e
  host  host, ruter - ruter. IGMP informuje lokalny
 ruter o czonkostwie hosta w multicastowej grupie.
   Pracuje na bazie usug IP, nie stosuje przy tym
          warstwy transportowej TCP/UDP.
Java Media Framework


    JMF posiada wsparcie dla wielu format坦w
multimedialnych i standard坦w kompresji wliczajc
  kodowanie i dekodowanie, s to midzy innymi:
JPEG, MPEG-1, MPEG-2, QuickTime, AVI, WAV,
 MP3, ALAW, ULAW, GSM, G723, G728, G729,
 H261, H263, MIDI. Wspiera protokoy dostpowe:
        HTTP, HTTPS, FTP, RTP, RTSP.
Stany pracy
Worker ReceiverThread


public class ReceiverThread extends Thread implements ReceiveStreamListener,
                            SessionListener, ControllerListener {
 /**
        * ReceiveStreamListener
        */
       public void update(ReceiveStreamEvent event) {
                RTPManager rtpManager = (RTPManager) event.getSource();
                ReceiveStream receiveStream = event.getReceiveStream();
                Participant participant = receiveStream.getParticipant();
                if (event instanceof NewReceiveStreamEvent) {
                           receiveStream = ((NewReceiveStreamEvent)event).getReceiveStream();
                           dataSource = receiveStream.getDataSource();
Worker TransmitterThread

public class TransmitterThread extends Thread implements ControllerListener,
                         ReceiveStreamListener, RemoteListener {
   /**
     * inicjuje urzedzenia i tworzy srodowisko transferu danych
     *
     * @return String
     */
    private String createProcessor() {
               try {
                         if (chosenFormat.equals(Codecs.JPEG_RTP)
                                            || chosenFormat.equals(Codecs.H263_RTP)
                                            || chosenFormat.equals(Codecs.H261_RTP)) {
                                   processor = Manager
                                                      .createProcessor(new MediaLocator("vfw://0"));
                         } else
                                   processor = Manager.createProcessor(new MediaLocator(
                                                      "dsound://"));
                         System.out.println();
               } catch (NoProcessorException e) {
                         return e.getMessage() + "n";
               } catch (IOException e) {
                         return e.getMessage() + "n";
               }
Worker TransmitterThread cd...
 /**
   * metoda interfejsu ControllerListener, kontrola zdarzen dla klasy
   * Processor
   *
   * @param event
   */
  public void controllerUpdate(ControllerEvent event) {
           if (event instanceof ConfigureCompleteEvent
                                || event instanceof RealizeCompleteEvent
                                || event instanceof PrefetchCompleteEvent) {
                      synchronized (obSync) {
                                transferOK = true;
                                obSync.notifyAll();
                      }
           } else if (event instanceof ControllerErrorEvent) {
                      synchronized (obSync) {
                                transferOK = false;
                                obSync.notifyAll();
                      }
           } else if (event instanceof EndOfMediaEvent) {
                      kill();
                      System.exit(0);
           }
  }

More Related Content

Audio/Video compressions and transmissions

  • 1. Metody kompresji i transmisji audio/video w sieci Internet
  • 3. Standardy kompresji Audio Video Kompresja mowy ITU LPC (FS 1015 ) H.261 CELP (G.728) H.263 RPE (LPC) MPEG PCM (G.711) MPEG-1 Kompresja d添wiku MPEG-2 ADPCM (G.722, MPEG-4 G.726, G.727) MPEG AC3
  • 6. Por坦wnanie standard坦w kompresji audio
  • 7. Por坦wnanie cd... 20 ms mowy jest reprezentowana w 33 bajtach dla kodowania GSM. Std w jednej sekundzie mamy (50 ramek/s 33 bajty/ramk), a cakowita przepywno wynosi 1.650 B/s. Zamiana na bity 1.650 8 = 13,200 b/s. Te wielkoci nie uwzgldnia nag坦wk坦w RTP/UDP/IP kt坦re dodaj 40 bajt坦w do pakietu. (50 (33+40)) = 3.650 8 = 29.2 kb/s. 20 ms sygnau mowy zakodowanego w G.711 (ULAW/PCM) jest reprezentowana w 160 bajtach. Std jedna sekunda wymaga (50 ramek/s 160 bajt坦w/ramk) = 8.000B/s, zamieniajc t wielko na bity uzyskamy 64 kb/s. Jednak ramka w sieci IP bdzie miaa rozmiar 80 kb/s. 20ms sygnau mowy nie mo甜e by reprezentowane w G.723. Koder jest zdefiniowany dla ramek 30ms. 30ms mowy jest reprezentowane przez 24 bajty zakodowanego sygnau G.723. Dla jednej sekundy mamy (33 ramki/s 24 bajt坦w/ramk) = 792 B/s, jest to pasmo zakodowanego strumienia. Zamieniajc t warto na bity otrzymamy 6.336 kb/s. Z uwzgldnieniem nag坦wk坦w RTP/UDP/IP cakowita przepywno wyniesie 16.896 kb/s.
  • 8. Kompresja video Przykadowo dla wideokonferencji w sieci ISDN w kt坦rej sekwencja obraz坦w kolorowych w formacie CIF (ang. Common Intermediate Format) standardu H.261 o czstotliwoci 25 ramek/s przesyana bdzie sieci o przepustowoci 384 kbit/s, wymagany stopie kompresji wynosi 79:1, zgodnie z wyliczeniem ((288 352 + 144 176 + 144 176) 8 bit坦w 25 ramek/s) / 384 kbit/s = 79.
  • 9. MPEG-2 Strumie transportowy TS (ang. Transport Stream) umo甜liwia przesyanie strumienia danych audio i video kanaami z zak坦ceniami (cze satelitarne, koncentryczne kable sieci telewizyjnej), pozwala czy wiele strumieni AV o niezale甜nych zegarach. Strumie TS u甜ywa pakiet坦w o staej dugoci 188 bajt坦w. TS wspiera asynchroniczne czenie strumieni AV (np. program坦w telewizyjnych), szybki dostp do danego strumienia (np. zmiana odbieranego kanau telewizyjnego), synchronizacja elementarnych strumieni dla p坦添niejszej ich prezentacji, zarzdzanie buforami dekodera AV o staej i zmiennej dugoci bitowej.
  • 10. Real Time Transport Protocol Payload type- (PT) 7 bit坦w: pole identyfikuje format danych RTP, wymagana jest interpretacja zawartoci przez aplikacj. Profil definiuje standardowe mapowanie zawartoci danych kodowych do PT. Sequence number- 16 bit坦w: zwikszany o jeden po ka甜dorazowym wysanym komunikacie Timestamp- 32 bity: znacznik czasowy, znakowanie jest w momencie wysania pierwszego bajtu danych, inkrementowany jest sekwencyjnie. Synchronization source- (SSRC) 32 bity: Version- (V) 2 bity: wersja protok坦u synchronizacja 添r坦da, identyfikator powinien mie Padding- (P) 1 bit: ustawiony bit oznacza, 甜e dodano warto losow, tak by dwa 添r坦da synchronizacji wypenienie, a ostatni bajt wskazuje ile jest bajt坦w nale甜ce do tej samej sesji RTP nie posiaday tego wypenienia samego identyfikatora. Numer okrela nadawc Extension- (X) 1 bit: jeli bit jest ustawiony, oznacza 甜e wiadomoci zawierajcej numer sekwencyjny oraz nag坦wek jest poprzedzony nag坦wkiem rozszerzenia, znacznik czasowy danych. u甜ywane w przypadku zmian formatu danych (ang. CSRC list- 0 do 15 element坦w, ka甜dy opisany przez 32 payload type). bity: lista skadowych 添r坦de dla danych zawartych w CSRC count- (CC) 4 bity: licznik zawiera liczb pakiecie. Numer identyfikator坦w jest podany przez pole identyfikator坦w CSRC nale甜cych do obecnego CC. Identyfikowanych jest tylko 15 添r坦de. nag坦wka Identyfikatory CSRC s umieszczane przez mixery Marker- (M) 1 bit: interpretacja pola jest definiowana u甜ywajc identyfikator坦w SSRC skadowego 添r坦da. przez profil
  • 13. RTCP
  • 14. Multiemisja Zakres od 224.0.0.0 do 239.255.255.255
  • 15. IGMP Procedura polega na tym, 甜e host wspierajcy IGMP przycza si do grupy wszystkich host坦w (adres 224.0.0.1). To jest jedyny adres, kt坦rego czonkiem musi by ka甜dy host sieciowy. IGMP pracuje na styku host坦w i ich ruter坦w multicastowych, a tak甜e host host, ruter - ruter. IGMP informuje lokalny ruter o czonkostwie hosta w multicastowej grupie. Pracuje na bazie usug IP, nie stosuje przy tym warstwy transportowej TCP/UDP.
  • 16. Java Media Framework JMF posiada wsparcie dla wielu format坦w multimedialnych i standard坦w kompresji wliczajc kodowanie i dekodowanie, s to midzy innymi: JPEG, MPEG-1, MPEG-2, QuickTime, AVI, WAV, MP3, ALAW, ULAW, GSM, G723, G728, G729, H261, H263, MIDI. Wspiera protokoy dostpowe: HTTP, HTTPS, FTP, RTP, RTSP.
  • 18. Worker ReceiverThread public class ReceiverThread extends Thread implements ReceiveStreamListener, SessionListener, ControllerListener { /** * ReceiveStreamListener */ public void update(ReceiveStreamEvent event) { RTPManager rtpManager = (RTPManager) event.getSource(); ReceiveStream receiveStream = event.getReceiveStream(); Participant participant = receiveStream.getParticipant(); if (event instanceof NewReceiveStreamEvent) { receiveStream = ((NewReceiveStreamEvent)event).getReceiveStream(); dataSource = receiveStream.getDataSource();
  • 19. Worker TransmitterThread public class TransmitterThread extends Thread implements ControllerListener, ReceiveStreamListener, RemoteListener { /** * inicjuje urzedzenia i tworzy srodowisko transferu danych * * @return String */ private String createProcessor() { try { if (chosenFormat.equals(Codecs.JPEG_RTP) || chosenFormat.equals(Codecs.H263_RTP) || chosenFormat.equals(Codecs.H261_RTP)) { processor = Manager .createProcessor(new MediaLocator("vfw://0")); } else processor = Manager.createProcessor(new MediaLocator( "dsound://")); System.out.println(); } catch (NoProcessorException e) { return e.getMessage() + "n"; } catch (IOException e) { return e.getMessage() + "n"; }
  • 20. Worker TransmitterThread cd... /** * metoda interfejsu ControllerListener, kontrola zdarzen dla klasy * Processor * * @param event */ public void controllerUpdate(ControllerEvent event) { if (event instanceof ConfigureCompleteEvent || event instanceof RealizeCompleteEvent || event instanceof PrefetchCompleteEvent) { synchronized (obSync) { transferOK = true; obSync.notifyAll(); } } else if (event instanceof ControllerErrorEvent) { synchronized (obSync) { transferOK = false; obSync.notifyAll(); } } else if (event instanceof EndOfMediaEvent) { kill(); System.exit(0); } }