• No results found

Eines de codi obert per a serveis d'streaming

N/A
N/A
Protected

Academic year: 2021

Share "Eines de codi obert per a serveis d'streaming"

Copied!
137
0
0

Loading.... (view fulltext now)

Full text

(1)

TREBALL DE FI DE CARRERA

TÍTOL DEL TFC: Eines de codi obert per a serveis d'streaming

TITULACIÓ: Enginyeria Tècnica de Telecomunicació, especialitat Sistemes de Telecomunicació

AUTOR: Juan Luis Rodríguez Blanco DIRECTOR: David Rincón Rivera DATA: 14 de Maig de 2012

(2)

Autor: Juan Luis Rodríguez Blanco Director: David Rincón Rivera Data: 14 de Maig de 2012

Resum

Les xarxes de comunicació IP actuals i els nous hàbits de consum de tecnologies multimèdia han introduït nous tipus de serveis audiovisuals. L’alta definició ha arribat a TV i a Internet entre d’altres nous serveis per a sistemes d’àudio i vídeo. Les aplicacions d’aquests sistemes són moltes. S’utilitzen en àmbit militar, telemedicina, televigilància i emissions de continguts de TV i cinema.

En aquest marc de consum, sorgeix la necessitat de disposar d’eines que ens permetin operar i desplegar aquests tipus de serveis. Les noves tecnologies de codi obert són una solució possible davant altres tecnologies de pagament. La filosofia de codi obert afavoreix el seu ús per a docència i són una alternativa econòmica per a empreses i a usuaris.

L’objectiu d’aquest TFC és presentar aplicacions de codi obert que hem cercat per desenvolupar serveis en l’àmbit de l’streaming per a sistemes SD, HD i 3D. Consisteix en un conjunt de casos d’estudi i proves que descriuen la configuració d’aquests tipus de serveis amb codificadors de codi obert. Destaquem l’ús del framework multimèdia gstreamer.

Al primer capítol introduirem alguns conceptes relacionats amb els serveis d’streaming extrem a extrem des del procés de codificació fins a la reproducció dels clients.

Al segon capítol tractarem les aplicacions amb les que hem treballat i treure’m conclusions de la nostra experiència amb aquestes eines.

Al capítol tercer, desplegarem diversos serveis d’streaming. Farem servir diferents fonts de vídeo SD, HD i 3D, amb codificadors HW i de codi obert. Descriurem el procés complet del servidor d’streaming i configurarem streams per a dispositius mòbils.

El quart capítol tracta sobre les conclusions i les línies d’investigació futura en aquest àmbit. Farem una comparativa econòmica entre serveis de codi obert i de pagament per demostrar la seva viabilitat com a oportunitat de negoci. Els annexos són manuals d’aplicació de les eines amb els que hem treballat.

(3)

Title: Open source tools for streaming services Author: Juan Luis Rodríguez Blanco

Director: David Rincón Rivera Date: May 14th, 2012

Overview

The offer of multimedia services has increased thanks to IP network

communications and the new behaviour of costumers. Nowadays, TVs and IP streaming based devices can play High Definition (HD) video and 3D video. Multimedia streaming is used in several environments such as telemedical assistance, IP surveillance, military security, robotics, TV and cinema. In order to deliver multimedia services we need new tools and applications. Open source software and frameworks are one of the best options to deal with multimedia. Besides, open source philosophy takes advantage of its very economical development. This is an important reason for companies and users interested in multimedia services based in open source development, and has also several advantages for the academic and teaching point of view.

In this thesis we describe and set up several streaming media services for SD, HD and 3D video delivery. We work with different video and audio codecs and stream them to any type of devices such computers or mobile phones.

Gstreamer multimedia framework outstands as the most useful tool.

Chapter one introduces the main concepts related with multimedia streaming, and describes the codecs, protocols and conventions that deal with multimedia. Chapter two is a description of the applications and frameworks we have

worked with.

Chapter three deals with multimedia services configuration and development. We work with webcams, DVB tuners, HD hardware encoders and 3D video sources and players. We stream audio and video to mobile devices, like Iphone and Android.

Chapter four concludes the thesis and describes possible future developments in this field. It includes an economical study to compare open source services and professional solutions. The annexes are a set of laboratory tests describing how to deal with gstreamer and streaming services.

(4)

INTRODUCCIÓ ... 1

CAPÍTOL 1. CONCEPTES BÀSICS ... 4

1.1. Introducció als conceptes bàsics ... 4

1.2. Escenari bàsic sistema d’streaming ... 5

1.2.1. Codificador ... 6

1.2.2. Servidor d’streaming ... 6

1.2.3. Reproductor ... 7

1.2.4. Conclusions sistema d’streaming ... 7

1.3. Espais de color ... 7

1.3.1. Submostratge de croma ... 8

1.4. Còdecs ... 9

1.4.1. Compressió ... 9

1.4.2. Latència ... 9

1.4.3. Còdecs sense perdues ... 10

1.4.4. Còdecs amb pèrdues ... 10

1.5. Códificació MPEG-1 ... 10

1.5.2. Tipus de frames ... 11

1.6. Códificació MPEG-2 ... 11

1.6.1. Tipus de frames MPEG-2 ... 12

1.6.2. Codificació àudio MPEG-2 ... 13

1.6.3. Conclusions còdec MPEG-2 ... 13

1.7. Códificació MPEG-4 ... 13

1.7.1. AAC Advanced Audio Codec ... 14

1.7.2. AVC Advanced Video Codec ... 15

1.7.2.1. Característiques d’AVC ... 15

1.7.2.2. Perfils d’AVC ... 15

1.8. Códificació de vídeo 3D ... 16

1.8.2. Multi View Coding – Codificació de fluxos 3D ... 18

1.9. Contenidors multimèdia ... 19

1.10. Transport de fluxos multimèdia ... 19

1.10.2. Capes i Sistema ... 21

1.10.3. Taules PSI ... 23

1.11. Xarxes IP i protocols de comunicació ... 24

1.11.1. Introducció xarxes IP ... 24 1.11.2 Protocol RTP ... 26 1.11.3. Protocol RTSP ... 27 1.11.4. Protocol HTTP ... 28 1.11.5. Protocol HLS ... 29 1.11.6 Protocol IGMP ... 29 1.11.7. URI’s i URL’s... 29

CAPÍTOL 2. SOFTWARE DE CODI OBERT PER A SERVEIS D’STREAMING ... 30

2. Introducció ... 30

(5)

2.1.1. Configuració de la tarja sintonitzadora ... 30 2.1.2. w_scan ... 31 2.1.3. Conclusions ... 32 2.2. DVBsnoop ... 32 2.3. Ffmpeg ... 34 2.3.1. Conclusions ... 35 2.4. Gstreamer ... 36 2.4.1. Introducció a gstreamer ... 36 2.4.2. Conceptes bàsics ... 37 2.4.3. Conclusions ... 39 2.5. Project-x ... 39 2.5.1. Conclusions ... 40 2.6. Avidemux ... 40 2.6.1. Conclusions ... 41 2.7. MuMuDVB ... 41 2.7.1. Conclusions ... 41 2.8. Wowza ... 42 2.8.1. Conclusions ... 42 2.9. VLC Media Player ... 43 2.10. Bino 3D Player ... 43 2.10.1. Conclusions ... 43

CAPÍTOL 3. CASOS D'ESTUDI - SERVEIS D’STREAMING ... 46

3. Introducció ... 47

3.1. Equips del sistema ... 47

3.2. Sistema codificador V4l2 ... 47

3.2.1. Configuració del codificador ... 48

3.2.2. Configuració del servidor d’streaming ... 48

3.2.3. Reproductor ... 48

3.2.3.1. Reproductor HTML ... 48

3.2.3.2. Reproductor VLC ... 59

3.3. Sistema codificador DVB-T ... 50

3.3.1. Configuració del codificador per a dispositius mòbils ... 52

3.4. Sistema codificador HW ... 51

3.4.1. Configuració del codificador HW ... 51

3.4.2. Configuració del servidor d’streaming ... 51

3.5. Sistema 3D ... 53

3.5.1. Configuració 3D amb gstreamer ... 53

3.5.2. Configuració del servidor d’streaming ... 54

3.5.3. Configuració del reproductor 3D per a Linux ... 55

3.5.4. Conclusions ... 55

CONCLUSIONS I LÍNIES FUTURES ... 56

4. Introducció ... 56

4.1. Solució mercat SD ... 56

4.2. Solució mercat HD ... 56

4.3. Conclusions ... 57

(6)

BIBLIOGRAFIA ... 61

ANNEX A. OPERACIÓ AMB GSTREAMER ... 66

A.1. Primeres passes amb gstreamer ... 64

A.1.1. Instal·lació de gstreamer: ... 64

A.1.2. Primera aplicació en C amb gstreamer: ... 66

A.1.3. Conclusions ... 67

A.2. Introducció a l’edició de vídeo amb gstreamer ... 67

A.2.1. Primeres passes amb gstreamer ... 67

A.2.2. PiP (Picture in Picture) amb gstreamer ... 70

A.2.3. Videowall amb gstreamer ... 73

A.2.4. Fonts DVB-T i gstreamer ... 75

A.2.5. Conclusions ... 79

A.3. Servidor RTSP amb gstreamer ... 79

A.4. Configuració codificador mòbils amb gstreamer ... 82

A.4.1. Configuració codificador v4l2 ... 82

A.4.1.1. Configuració del codificador gstreamer per a Android ... 95

A.4.2. Configuració codificador DVB-T ... 96

A.4.2.2. Configuració codificador per a Iphone ... 102

A.4.3. Configuració codificador 3D ... 103

A.5. Elements de gstreamer ... 104

ANNEX B. ALTERNATIVES A GSTREAMER ... 106

B.1. Cercant alternatives a gstreamer ... 106

ANNEX C. GENERACIÓ DE VÍDEO 3D ... 116

C.1. Generació fluxos vídeo 3D amb ffmpeg ... 116

ANNEX D. CONFIGURACIÓ SERVIDOR D’STREAMING WOWZA ... 118

D.1. Configuració Windows servidor streaming Wowza ... 118

D.1.1. Instal·lació i posada en marxa en Windows ... 118

D.1.2. Configuració de les aplicacions ... 118

D.1.3. Instal·lació de les aplicacions ... 119

D.2. Configuració directes Wowza per a Linux ... 120

D.2.1. Desenvolupament aplicació de directes ... 120

D.3. Contractació servidor d’streaming ... 124

(7)

Introducció 1

INTRODUCCIÓ

La transmissió de fluxos audiovisuals és un dels serveis més utilitzats a Internet. Les capacitats de les xarxes IP en termes d’ample de banda i interactivitat fan possible un nou escenari on es poden assolir els requeriments del transport dels senyals audiovisuals sobre xarxes IP.

Els fluxos de senyals HD i 3D així com l’aparició de nous dispositius com són les TV 3D, smartphones, videojocs i l’ús de les xarxes socials han fet augmentar l’ús de tecnologies multimèdia. Davant d’aquest nou escenari de consum de serveis audiovisuals, sorgeix la necessitat per part d’usuaris i empreses de disposar d’eines que ens permetin oferir aquests serveis i configurar aquests tipus de sistemes.

Al mercat trobem dispositius codificadors, servidors d’streaming i aplicacions de pagament (amb llicència) que ens permeten fer aquesta tasca. A nivell professional les solucions basades en hardware dedicat són l’opció més directa però –tal com volem fer veure amb el desenvolupament d’aquest treball- hi ha alternatives de codi obert que les poden substituir en determinats àmbits, suposant un estalvi (de diners i temps) en la implantació i desplegament d’aquest tipus de serveis. Els usuaris finals i desenvolupadors necessiten un conjunt d’aplicacions i tècniques que els permetin treballar amb aquests tipus de sistemes de forma eficient i amb el menor cost possible.

D’aquest conjunt de necessitats i amb l’interès que es coneguin i es facin servir alternatives de lliure distribució i gratuïtes sorgeix la motivació de realitzar aquest estudi. Fer servir les eines descrites a aquest estudi pot suposar una millora als usuaris interessats en aquest tipus de sistemes, des del punt de vista econòmic per a empreses i des del punt de vista d’aplicació i estudi per a la docència.

El constant desenvolupament d’eines opensource per a Linux i altres sistemes operatius configuren un conjunt de noves eines que permeten treballar amb fluxos de dades i fitxers audiovisuals de forma eficient. Les distribucions de Linux i la utilització cada cop més estesa d’eines i sistemes de codi obert per part del usuaris han afavorit el desenvolupament d’aquestes eines que suposen un avanç tecnològic.

A partir de l’experiència laboral de l’autor d’aquest TFC en empreses de serveis audiovisuals, com a tècnic de sistemes i com a gestor de producte a un majorista i integrador de serveis audiovisuals, s’ha comprovat durant aquests anys la demanda d’aplicacions de lliure distribució.

A aquesta empresa, com a tècnic de sistemes, treballavem amb un conjunt d’equips codificadors on els periodistes seleccionaven els vídeos que volien codificar per que després es publiquéssin als diferents webs de les empreses de la corporació. Per les difusions dels senyals de directe, l’emissió del que veiem per TDT a Internet en temps real, contractaven el servei Windows Media Server (WMS) per enviar els fluxos audiovisuals a una Content Delivery

(8)

Network (CDN) que feia la tasca de repetidor del senyal a diferent nodes de la xarxa de forma que l’emissió de continguts pogués visualitzar-se a la mateixa qualitat a qualsevol ubicació IP. L’única part del procés que es feia amb eines de codi obert era el procés de codificació del còdec MPEG-2 (extret de les captures de TV del grup de canals d’aquesta corporació). La resta de gestió de directes es feia amb tecnologies de pagament. Actualment com a gestor de producte en aquest majorista audiovisual ens trobem amb clients que ens sol·liciten codificadors de vídeo per IP en temps real.

La majoria d’aquests equips són cars ja que són solucions professionals enfocades a sistemes on la latència és crítica , per exemple en aplicacions de control d’aviació militar com drones 1

o per aplicacions de telemedicina. A banda d’aquests serveis on la latència i l’encriptació de les dades és una prioritat , hi ha serveis que demanden equips més econòmics per retransmissions broadcast on la latència no és crítica. Volem demostrar que per a aquests tipus de serveis les alternatives de codi obert es poden configurar com una solució real i econòmica.

Un altre dels serveis més demandats pels clients són els serveis de vídeo sota demanda. El recent tancament de plataformes de distribució audiovisual (com ara MegaUpload2) per termes de legalitat deixa clara la necessitat d’implantar nous serveis més competitius que permetin adaptar-se a un marc legal. En aquest cas les tecnologies de lliure distribució permeten fer-ho ajustant els costos totals del sistema i faciliten la implantació d’aquest tipus de serveis. La possibilitat de configurar sistemes de transmissió multimèdia en temps real obre la porta a molts àmbits d’aplicació.

A l’àmbit de la telemedicina es transmeten operacions en temps real i fins i tot es comuniquen metges i hospitals que comencen a implantar aquest sistemes per a formació i en la diagnosi. També es comencen a implantar codificadors de vídeo en temps real per a avions de passatgers emetent fluxos de vídeo entre el costat aire i el control a terra. Amb l’estudi d’eines de codi obert es poden desenvolupar aplicacions en qualsevol àmbit d’aplicació i un estudi satisfactori d’aquestes eines obre la porta a una oportunitat de negoci.

L’objectiu d’aquest TFC és trobar, provar i avaluar les eines de codi obert que ens permetin treballar amb aquest tipus de serveis. Per fer-ho desenvoluparem un conjunt de proves del diferents softwares. Es descriuran diferents escenaris d’aplicació on s’argumentaran les proves fetes i es justificarà l’ús més adient de cadascuna.

En una vertent acadèmica el conjunt de pràctiques d’aquest TFC pretén ser una guia de suport per a les pràctiques de l’assignatura Serveis Audiovisuals sobre Internet d’aquesta escola, amb l’objectiu d’introduir al lector les eines i metodologies necessàries per treballar amb sistemes d’streaming. Identificarem i descriurem el funcionament dels protocols, codificadors i diferents escenaris de sistemes d’streaming. Escollirem el codificador i els protocols més adients

1 Drones: aeronaus per observació i control no tripulats equipats amb càmeres d’alta definició i codificadors de baixa latència.

2 Coneguda plataforma d’streaming tancada per conflices legals. Trobem la notícia del tancament de MegaUpload a [37]

(9)

Introducció 3

per a cada servei, en configurarem els paràmetres més importants i aprendrem a operar i desplegar serveis d’streaming d’àudio i vídeo. En quant a la distribució d’aquest TFC la resta de capítols s’organitzen de la següent manera. Al primer capítol es descriuen les bases teòriques, els conceptes que cal tenir clars, dels senyals audiovisuals i els protocols de comunicació entre els diferents blocs del sistema. Veurem els tipus de còdecs més utilitzats i, concretament, els còdecs estàndards de la família MPEG i les estructures de dades de la capa de transport. Introduirem exemples de sistemes d’streaming i estudiarem els diferents protocols de xarxa que comuniquen els diferents elements d’streaming des del codificador fins als clients. A la part d’aplicació on estudiarem les diferents eines que tenim disponibles.

Al segon capítol s’introduirà el programari i sistemes de codi obert. Es detallen les diferents aplicacions amb les que hem treballat. Les diferenciarem segons el tipus de servei que ofereixen i en descriurem la utilització de cadascuna. El conjunt d'aplicacions i frameworks multimèdia que estudiarem són:

Linux dvb-apps Gstreamer ffmpeg VLC media player MuMuDVB Wowza Bino 3D Player Project-X Avidemux

Al tercer capítol es descriuran un conjunt de casos d’estudi on farem servir les aplicacions escollides i s'estudiaran diferents escenaris d'aplicació. Principalment treballarem amb diferents tipus de fonts d'entrada d'AV, ja siguin codificadors per V4L2 (Vídeo per a Linux), solucions audiovisuals professionals com codificadors hardware i càmeres d’alta definició (HD), sintonitzadors de TV digital terrestre DVB-T i fonts i reproductors de vídeo 3D.

D'aquestes descripcions en traurem un conjunt d’eines, casos pràctics i proves fetes que ens permetran deduir conclusions generals del sistema i de les línies d'investigació futures en aquest àmbit. A més a més podrem comparar les diferents solucions hardware i de lliure distribució per tal de saber quines avantatges i inconvenients ens trobem treballant amb cadascuna.

El quart capítol inclou les conclusions i línies futures de treball en aquest àmbit. Comentarem les conclusions extretes dels diferents estudis i detallarem quins aspectes d’aquest treball poden ser interessants per a futurs estudis de sistemes audiovisuals. Detallarem un conjunt de projectes hipotètics i farem un estudi econòmic de cadascun per provar la viabilitat de l’ús d’eines de codi obert. Volem demostrar la potència d’aquestes eines i l’estalvi que poden suposar per a usuaris i a empreses.

(10)

CAPÍTOL 1. CONCEPTES BÀSICS

1.1. Introducció als conceptes bàsics

Des dels seus orígens Internet afavoreix l’intercanvi d’informació de dades entre usuaris. Inicialment les dades a transmetre eren principalment documents de text o HTML que els clients sol·liciten a un servidor per tenir-ne accés. Poc a poc van començar a introduir-se elements multimèdia en aquest tipus de presentacions que permetien visualitzar fotos i música entre d’altres continguts. En tots el àmbits de difusió d’informació, premsa escrita, ràdio i TV, Internet ha suposat un canvi en com els usuaris consumeixen aquests tipus d’informació. Els nous dispositius mòbils amb connexió a Internet i equipats amb càmeres i micròfons han generat nous hàbits de consum i generació de continguts multimèdia que també podem compartir actualment a través d’Internet. Les aplicacions de transmissió multimèdia s’estenen en molts àmbits d’ús com ara el cinema, premsa i comunicació, robòtica, seguretat, televigilància i telemedicina.

Tecnològicament Internet s’ha millorat per poder treballar amb aquest tipus de dades i serveis. En aplicacions multimèdia es requereix una comunicació constant entre client i servidor. Els equips, les infraestructures de xarxa, i l’ample de banda dels usuaris finals, han millorat les seves capacitats, en termes de capacitat de reproducció i interactivitat, i permeten la difusió de continguts amb qualitats i serveis que abans no eren possibles.

Els nous còdecs i protocols dissenyats per aquest tipus de serveis juntament amb les raons anteriors han afavorit aquest desenvolupament. En aquest marc sorgeix la necessitat d’eines que ens permetin treballar i desenvolupar aplicacions i serveis multimèdia a Internet. Les noves tecnologies de codi obert cada cop més potents són una eina molt eficaç com veurem durant el desenvolupament d’aquest TFC. A més a més des del punt de vista de la docència i fins i tot en el desenvolupament d’aplicacions professionals són una alternativa a tenir en compte envers d’altres tecnologies de pagament o amb llicència.

La transmissió d’un flux de dades multimèdia a Internet és el que coneixem per streaming. Un sistema d’aquest tipus ens permet reproduir continguts audiovisuals a Internet, tot controlant el servei de reproducció. Això vol dir que podrem fer pausa, aturar o avançar el contingut.

Un clar exemple de web d’streaming seria Youtube [38] que ens permet pujar vídeos a un servidor per que els clients els puguin veure i compartir. En aquest cas accediríem a un contingut que físicament resideix al servidor. Aquest tipus de servei és conegut com a vídeo sota demanda.

Cal diferenciar però un servei de vídeo sota demanda d’un servei de live broadcast o directe en que els clients accedeixen als fluxos que es generen en temps real des del codificador, passant pel servidor d’streaming fins als clients.

(11)

CAPITOL 1. Conceptes bàsics 5

La principal diferència entre tots dos serveis és l'origen de les dades, si és un fitxer complet que existeix al servidor serà sota demanda i en el cas en que estem reproduint un flux directe des del codificador de vídeo fins al reproductor en temps real, estem emetent un directe o live broadcast. Un exemple de directe seria el servei de directes de TV3 [7] en que accedim directament a l’stream dels codificadors que reben el senyal de TV. En aquests tipus de serveis la latència -retard del sistema per ser processat i servit d’extrem a extrem- és un dels paràmetres a tenir en compte.

Continuant amb la configuració més bàsica, un sistema d'streaming ha d'incloure almenys aquests tres elements:

- Codificador.

- Servidor d'streaming. - Reproductor.

En aquest primer capítol descriurem les característiques d'aquests elements i els senyals que els alimenten. La comunicació entre els diferents blocs es farà mitjançant un conjunt de protocols i convencions a nivell de format d'arxiu, capes de transport i còdecs que també seran descrits en aquest primer capítol.

1.2.

Escenari bàsic sistema d’streaming

Com dèiem el codificador, el servidor d'streaming i el reproductor són els tres blocs bàsics que composen el sistema d'streaming. A la Fig.1.1 podem veure el diagrama de blocs d’un sistema bàsic d’streaming.

Fig.1.1 Escenari bàsic d’un servei d’streaming

El sistema està composat pel codificador que serveix els streams a un servidor ubicat a Internet. Els clients s’hi connecten per visualitzar el directe o els continguts sota demanda.

L’audiència fa servir diferents tipus de reproductors, ja sigui embegut (incrustat) a una plana web o directament com una aplicació independent.

(12)

El reproductor ataca al servidor on resideix el contingut o es rep l'stream directe del codificador. A continuació descriurem amb una mica més de detall els blocs que conformen l’escenari genèric.

1.2.1. Codificador

El codificador és l’element SW o HW que captura les senyals i les adequa al canal a transmetre mitjançant un còdec per àudio i/o vídeo . Un còdec és un conjunt d’algoritmes o aplicació capaç de codificar o descodificar fluxos i senyals audiovisuals.

L’elecció del còdec és la part més important del procés de codificació ja que d’aquest en dependran directament paràmetres del sistema com l’ample de banda de transmissió i la latència. Al nostre sistema ens trobarem diferents tipus de codificadors, solucions SW i HW que faran servir el còdec més adient per la transmissió. Els còdecs i els tipus emprats es descriuen més endavant a la secció 1.4.

El senyal que arriba al codificador, ja sigui d'àudio o vídeo, s’ha de processar abans de poder ser enviada a xarxa per tal de no ocupar més ample de banda de transmissió de l’estrictament necessari. A més a més cal protegir el senyal dels errors introduïts pel canal per garantir la comunicació. La feina del codificador és minvar el pes en bytes dels streams d'àudio i vídeo i protegir el senyal dels possibles errors que introdueixi el canal, tot garantint que les pèrdues en qualitat han de ser les mínimes possibles. Exemples de codificadors serien els elements del framework gstreamer i els codificadors de vídeo hardware que tractarem més endavant.

1.2.2. Servidor d’streaming

El servidor d'streaming reenvia els fluxos de dades als clients tot servint les peticions que li arriben. Coneixem els servidors HTTP on els clients sol·liciten documents, en el model més bàsic el servidor els hi envia el document i la transmissió entre el client i el servidor finalitza fins que arriba una altra petició. En el cas dels servidor d'streaming, la comunicació entre client i servidor és contínua ja que en tot moment hem de tenir control del que estem reproduint. A més el flux de dades requereix un ample de banda molt més elevat que en el cas de transmissions HTTP.

A les xarxes IP s’utilitzen tècniques de reenviament de paquets per protegir-se de les pèrdues. Veurem que en el cas dels sistemes d’streaming, durant la comunicació entre client i servidor no ens interessa rebre els paquets perduts ja que reproduirem una part de la seqüència fora de temps i perdríem el sincronisme i la sensació de seqüència. Com exemple de servidor d’streaming, al nostre servei configurarem un servidor d’streaming amb l’aplicació Wowza, que tractarem més endavant a les seccions 2.8 i als annexos D.

(13)

CAPITOL 1. Conceptes bàsics 7

1.2.3. Reproductor

Els reproductors són solucions software o hardware (Set Top Boxes3 per exemple) que reben els streams del servidor i fan d’interfície humana del senyals, és a dir, després de la petició al servidor amb el reproductor comencen a rebre els fluxos audiovisuals. Aquests tipus de reproductors poden residir al mateix servidor (un reproductor java embegut a una plana web) o poden ser solucions independents que corren al costat del client. Els controls de volum, play, pause, stop i passar a pantalla completa són les característiques de control més bàsiques que ha d'oferir el reproductor.

1.2.4. Conclusions sistema d’streaming

Aquest escenari genèric ens serveix per descriure el servei més bàsic de transmissió d’un flux d’àudio i vídeo a una xarxa IP. Als propers apartats descriurem les bases teòriques que aplicarem al procés de codificació per tal de disminuir el pes del flux de les fonts d’àudio i vídeo. En primer lloc tractarem tècniques de reducció de components -submostratge de croma- per a vídeo i continuarem amb la introducció als còdecs de vídeo i àudio que farem servir en el procés de codificació. Per conèixer com s’apliquen les tècniques de reducció de croma hem d’introduir els espais de color i els diferents tipus de components dels senyals de vídeo.

1.3. Espais de color

Un espai de color és una abstracció matemàtica que descriu valors que representen els colors de l’espectre visible [39]. Per exemple a partir dels colors elementals utilitzats a impressió amb tinta ,cian, magenta i groc, podem generar combinacions d’aquests (mesclant les tintes) i parametritzar l’espectre visible del tots els colors que es poden imprimir sobre paper blanc. Alguns exemples d’espais de colors amb els que treballarem a sistemes electrònics, on la superfície sobre la qual projectem llum és negra (i s’aplica la teoria additiva del color, on la suma dels colors bàsics dóna blanc com a resultat) són:

RGB: Espai de color basat en la suma de components vermell, verd i blau. YPbPr: Espai de color basat en RGB que separa les components de vermell, verd i blau en les components Y Iluminància, Pb (diferència entre la component iluminància i la component blava) i Pr (diferència de la component iluminància i la component vermella). Existeixen dues versions YPbPr per senyals analògiques i YCbCr o YUV per a vídeo digital. Tots els codificadors apliquen reducció de croma a les imatges.

No entrarem a definir més a fons les components de iluminància i com estan relacionades amb les components RGB. Només ens cal entendre que hi ha mecanismes per reduir el pes del component croma. Aquesta reducció es

(14)

coneix com a Chroma Subsampling o submostratge de la component de croma. A [1] podem ampliar més informació sobre el submostratge de croma.

El motiu principal de donar prioritat a la informació de luminància i color és que l’ull humà és molt més sensible als canvis de luminància (brillantor) que als canvis de color. Això es degut a les característiques de les cèl·lules dels ulls que fan de sensors, bastons per la luminància i cons pel color.

1.3.1. Submostratge de croma

Com l’ull humà és més sensible a les variacions de luminància que a les variacions de color, s’aprofita aquesta característica de la vista per a eliminar les components a les que els nostre ulls són menys sensibles. Per a fer-ho es defineixen diferents esquemes de mostreig de la forma J:a:b (per exemple esquema 4:2:0). Els valors que indiquen les variables J:a:b són:

 J Referència de mostreig horitzontal. Normalment té un valor de 4.  a Nombre de mostres de les components de croma Cr i Cb a la primera

columna dels píxels J.

 b Nombre de mostres addicionals a la segona columna de píxels J. A la Fig.1.2 podem veure els diferents esquemes de mostreig de croma i els valors dels paràmetres J, a i b.

Fig. 1.2 Esquemes submostratge de croma extret de [1].

Alguns dels còdecs de la familia MPEG treballen amb un esquema de mostratge de croma 4:2:0 per a emissions broadcast (cap als consumidors finals, els espectadors), tot i que hi ha perfils de l’estàndard que permeten treballar amb altres esquemes de mostreig amb millor qualitat (4:2:2, que s’utilitza internament als estudis i als processos d’edició per no perdre qualitat). Un cop sabem com es mostregen el conjunt d’imatges tot reduint les components a les que som menys sensibles, continuem amb les tècniques de codificació amb la introducció als còdecs.

(15)

CAPITOL 1. Conceptes bàsics 9

1.4. Còdecs

Els còdecs multimèdia són un conjunt d’algoritmes capaços de codificar i descodificar fluxos audiovisuals tot seguint les especificacions detallades en normes o estàndards. Per tant els còdecs són implementacions software i hardware que poden o no complir les especificacions d’un estàndard. Exemples de còdecs no estàndard serien xvid per difusió de senyals de vídeo a Internet i MxPEG per emmagatzemar vídeos en l’àmbit de la televigilància [40].

Exemples de còdec estàndard serien per exemple la família de còdecs MPEG que tractarem a la secció 1.5. Cada còdec te unes característiques concretes que el fan més o menys útil depenent del sistema complet on el volem integrar. Cal tenir alguns conceptes clars relacionats amb els còdecs com són la compressió i la latència.

1.4.1. Compressió

El terme compressió es refereix a la capacitat del còdec de reduir el pes en bytes d’un flux o fitxer. Com més comprimit i amb més qualitat vulguem els senyals AV, més temps trigarà i més latència afegirà al sistema. Cada còdec triga més o menys temps depenent de la complexitat de l’algoritme. Sempre hem de tenir en compte els requeriments del sistema concret. Al capítol 3 i als annexos A veurem exemples de com configurar correctament els diferents paràmetres del codificador aplicant diferents nivells de compressió.

1.4.2. Latència

La latència que introdueix el còdec és el temps que triga el còdec en codificar i/o descodificar el flux . Serà temps de processament que afegirà el còdec al sistema i estarà directament relacionat amb el temps que es triga en descodificar o codificar el senyal, que no ha de ser necessàriament el mateix. En comunicacions bidireccionals interactives en temps real la latència en un sentit (transmissor – receptor viceversa) ha de ser inferior a 200 ms, [5], per garantir una comunicació extrem a extrem satisfactòria.

Els requeriments de latència varien en cada sistema i s’ha de tenir en compte durant la seva implementació. Tot element d’un sistema introdueix una latència, des de la càmera fins al reproductor. La suma total de cada una de les latències dels equips és la latència del sistema.

Una de les millors proves per mesurar la latència és fer-se amb un cronòmetre que mesuri ms i una càmera de fotos. Hem de capturar una imatge entre el cronòmetre real i el cronòmetre que veiem al reproductor. La diferència de temps serà la latència del sistema.

Continuant amb els còdecs, principalment en podem distingir dos tipus, còdecs amb pèrdues i còdecs sense pèrdues.

(16)

1.4.3. Còdecs sense perdues

Els còdecs sense pèrdues es fan servir en aplicacions que requereixen emmagatzemar dades comprimides garantint que no hi ha pèrdua de qualitat. La compressió d’aquests còdecs és menor que la obtinguda amb còdecs amb pèrdua però la qualitat ha de ser comparable. A [2], és descriuen un conjunt de còdecs sense pèrdues. Cal destacar-ne l’ús de còdecs de lliure distribució per a àudio com FLAC Free Looseles Audio Codec.

1.4.4. Còdecs amb pèrdues

La majoria de còdecs fan perdre qualitat a costa de guanyar en termes de compressió. Es pot aconseguir que les diferències de qualitat entre un flux o fitxer sense comprimir i comprimit siguin inapreciables depenent de com configurem el còdec i de la qualitat d’aquest.

L’objectiu és reduir la quantitat de bytes a transmetre entre el codificador i el servidor d’streaming. Cada còdec s’ha de fer servir depenent del sistema d’streaming i de les característiques del vídeo o àudio que estem emetent. Així doncs si volem emetre un partit de futbol, on el que prima és la sensació de moviment, hem d’ajustar el codificador per que no hi hagi pèrdues en termes de sensació de moviment. Sacrificarem per altra banda la informació de color que en aquest cas no serà crítica.

Hem introduït els tipus de còdecs amb pèrdues. A continuació descriurem la família de còdecs MPEG. D’aquest grup de còdecs en descriurem els diferents estàndards que es fan servir a comunicacions de sistemes audiovisuals de TV i ràdio actuals.

1.5. Códificació MPEG-1

MPEG-1 (estàndard ISO/IEC 11172) és un estàndard que defineix còdecs amb pèrdues per transmissió i compressió de senyals audiovisuals. És l’estàndard de transmissió i codificació multimèdia més estès a nivell mundial. MPEG-1 està composat per 5 parts en les que es descriuen les diferents capes del sistema. La part 2 tracta sobre la compressió de vídeo i la part 3 sobre la codificació d’àudio. No entrarem a definir les capes de sistema en aquesta part dedicada a l’estudi dels diferents còdecs, ho farem més endavant al punt 1.10.3.

1.5.1. Codificació vídeo – MPEG-1

El còdec de vídeo definit a MPEG-1 comprimeix el senyal de vídeo basant-se en el fet de que en les seqüències de vídeo sempre hi ha informació espacial i temporal redundant o que es repeteix. Això s’explica entenen un vídeo com un flux continu d’imatges, on si la imatge no canvia molt ( com passa en un canvi de pla ) la imatge següent que veurem serà la mateixa, amb la diferència dels píxels que s’han mogut.

(17)

CAPITOL 1. Conceptes bàsics 11

És a dir, en una mateixa seqüència, si a la imatge N+1 li restem la imatge N només ens queden els canvis que hi ha entre N+1 i N. El còdec de vídeo d’MPEG-1 es basa en aquesta dependència entre les imatges d’una mateixa seqüència. Si transmeto la imatge N, la imatge N+1 serà igual que N amb les petites variacions de píxels (moviment i textura) entre una imatge i una altra. Eliminant la resta de la informació, que és redundant, aconseguim disminuir el pes del flux de vídeo. MPEG-1 comprimeix el vídeo com una seqüència d’imatges relacionades entre si. Per fer-ho durant el procés de codificació es defineixen diferents tipus de frames.

1.5.2. Tipus de frames I Frame Intra-frame

És un tipus de frame que pot ser descodificat sense estar relacionat amb altres frames. S’anomena keyframe i és a partir d’aquests frames que es generen els frames predicted i bidireccional. Els quadres I poden ser considerades com a imatges JPEG. Cal destacar el concepte de GoP o Group of Pictures, que és el número d’imatges que hi ha entre dos keyframes I.

P Frame (Predicted-frame)

Conegudes com Predicted-frame. Els frames de tipus P es comprimeixen guardant només la diferència amb la referència amb la imatge anterior del tipus I. Les imatges P o B es generen dividint una imatge I en una matriu de píxels de certa mida anomenada macro bloc. El còdec calcula com s’han mogut els macro blocs a la imatge i els mou tot seguint el que s’anomenen vectors d’aproximació de moviment. El procés de reducció per predicció de moviments és una de les formes de reduir el pes dels fluxos de vídeo.

B frame Bidireccional-frame

Conegudes com Backward-predicted frames o B-pictures, un frame N de tipus B es basa en la predicció de la imatge a partir d’una referència (I o P) anterior i posterior. Així doncs per descodificar-les cal rebre dues imatges i per tant el buffer per a processat ha de ser major que en els altres casos.

Hem introduït els conceptes bàsics del còdec MPEG-1. A continuació a la secció 1.6 descriurem la versió millorada del còdec i de la mateixa família, MPEG-2.

1.6. Códificació MPEG-2

MPEG-2 és el nom d’un conjunt d’estàndards per a codificació d’AV publicats a la norma ISO/IEC 13818. Va ser definit per un grup d’empreses del sector audiovisual juntament amb l’ITU. Esta definit en diferents parts que descriuen les capes de compressió i de sistema. Més endavant a la secció 1.10 tractarem les parts relacionades amb la capa de sistema. En aquest apartat volem centrar-nos en la definició dels còdecs per àudio i vídeo.

(18)

MPEG-2 és un conjunt de mètodes de codificació amb pèrdues que permeten emmagatzemar i transportar dades audiovisuals ajustant-les a les capacitats del sistema en termes de capacitat d'emmagatzematge i ample de banda de transmissió. Inclou els còdecs que es fan servir a les normes DVB tant per SD com per HD.

1.6.1. Tipus de frames MPEG-2

MPEG-2 és força similiar a MPEG-1 implementant algunes millores com suport per a vídeo entrellaçat, com es descriu a [3]. MPEG-2 ha demostrat millors resultats de codificació que MPEG-1.

MPEG-2 es basa en la compressió de vídeo que hem vist a MPEG-1 amb algunes millores. També hi ha una estructura de GOP (imatges I, P i B) i s’aplica el submostratge de croma. Per a comunicacions de TV professionals s’utilitza l’esquema 4:2:2 i per a emissions broadcast el 4:2:0. Una seqüència d’imatges habitual és la de 15 frames de llarg amb l’estructura I-BB-P-BB-P-BB-P-BB-P-BB, referits als tipus de frames definits a la secció 1.5.2.

Els quadres I codifiquen redundància espaial i els quadres P i B redundància temporal. Els P i B es processen per compensació de moviment i es generen els vectors que mapejen els macroblocs.

La quantitat de frames de tipus I, P i B estan relacionats amb el contingut del vídeo que s’emet i la configuració de la taxa de bits del codificador que fita el flux. La configuració del codificador augmentarà la latència si es fan servir més frames del tipus B que requereixen més temps de processament. La taxa de bits de sortida d’un codificador MPEG-2 pot ser constant CBR Constant Bit Rate o variable VBR Variable Bit Rate. A la Taula 1.6.1 i Taula 1.6.2 es detallen els paràmetres de configuració de fluxos de vídeo MPEG-2 utilitzats a Europa, Estats Units i Japó.

RESOLUCIÓ FPS 720 × 480 píxel 30 640 × 480 píxel 30 544 × 480 píxel 30 480 × 480 píxel 30 352 × 480 píxel 30 352 × 240 píxel 30 720 × 576 píxel 25 544 × 576 píxel 25 480 × 576 píxel 25 352 × 576 píxel 25 352 × 288 píxel 25 352 × 576 píxel 25 352 × 288 píxel 25

(19)

CAPITOL 1. Conceptes bàsics 13 RESOLUCIÓ FPS 1920x1080 píxel 1080i 60 1280x720 píxel 720p 60 720x576 píxel 576i/576p 50/25 720x480 píxel 480i/480p 60/30 640x480 píxel 60

Taula 1.6.2. MPEG-2 a EEUU (ATSC) i Japó (ISDB).

Amb MPEG-2 ja arribem a resolucions de vídeo de fins a 1080i. Moltes de les emissions de TV actuals fan servir aquesta resolució. 1080i és la resolució de vídeo per a 1920 píxels x 1080 línies per a vídeo entrellaçat (interlaced). Això vol dir que per cada segon (a 60 fps) s’utilitzaran 30 frames per a les línies parell i 30 frames per a les línies senars. A 1080p es generen totes les línies de cada frame, en un segon tindrem 60 frames. A [41] es pot ampliar mes la informació sobre aquests modes de vídeo.

1.6.2. Codificació àudio MPEG-2

MPEG-2 introdueix nous mètodes de codificació d’àudio. Principalment permet treballar amb baixes taxes de mostratge i amb codificacions millorades MPEG-1 audio layer MPEG-1/2/3

1.6.3. Conclusions còdec MPEG-2

Les millores d’MPEG-2 són principalment permetre resolucions superiors a les que oferia el seu predecessor MPEG-1 i suporta vídeo entrellaçat. MPEG-2 s’utilitza per a retransmissions de la TDT a SD. La versió millorada del còdec, MPEG-4 concretament AVC es descriu al següent apartat. Les retransmissions de TV HD i full HD es codifiquen seguint les normes d’aquest estàndard.

1.7. Códificació MPEG-4

MPEG-4 és un còdec estàndard per a fluxos d’àudio i vídeo digital i forma part de la família de còdecs MPEG. Compleix moltes de les característiques d’altres estàndards de la família, MPEG-1 i MPEG-2. Es fa servir sobretot en difusió d’streaming multimèdia i en aplicacions de difusió de TV HD i 3D. Aquest estàndard continua en desenvolupament i es divideix com els altres estàndards en diferents parts.

La part que tracta sobre el còdec de vídeo és la definida a MPEG-4 part 10 o MPEG-4 AVC/H.264, on les sigles AVC es corresponen a Advanced Vídeo Codec. Hi ha una implementació d’aquest còdec de lliure distribució, x264enc amb la que treballarem al capítol 3 i als codificadors dels annexos A. A [33] hi ha més informació sobre x264enc. Moltes de les prestacions continuen en desenvolupament i, estant definides a l’estàndard, encara no s’han

(20)

implementat. S’ha deixat la porta oberta a desenvolupadors de software per aquesta tasca.

Inicialment el còdec va ser desenvolupat per treballar amb taxes de bits baixes per servir fluxos a dispositius mòbils però degut a la seva capacitat de compressió i versatilitat es van implementar parts per a taxes de bits de transmissió més elevades. A MPEG-4 es defineixen nivells i perfils de vídeo que permeten treballar amb aplicacions de més baix nivell fins a transmissions professionals de TV en HD.

Centrant-nos en les parts de codificació n’hem de tractar les dues més importants referides als còdecs d’àudio ,definida a la part 3 de l’estàndard, i de vídeo, definida a la part 10.

1.7.1. AAC Advanced Audio Codec

AAC és un còdec estàndard d’àudio. És un còdec amb pèrdues dissenyat per codificar fluxos d’àudio digitals i té més qualitat a bit rates similars que el seu predecessor mp3.

És el còdec d’àudio estàndard per a molts dispositius electrònics com l’Iphone amb el que treballarem als casos pràctics del capítol 3. Com en el cas d’AVC també es defineixen perfils, Low-Complexity profile (AAC-LC / LC-AAC), Main profile (AAC Main) i Scalable Sampling Rate profile (AAC-SSR). En el nostre cas treballarem amb el perfil AAC-LC i AAC Main. Una de les millores a destacar respecte mp3 és la possibilitat de mostrejar a freqüències de 8 a 96 kHz.

Com en el cas de AVC, AAC permet més flexibilitat de configuració a l’hora de desenvolupar aplicacions que treballin amb aquest còdec. Aquesta flexibilitat és la que permet aconseguir millors taxes de compressió amb més qualitat. AAC fa servir estratègies per disminuir el pes dels fluxos d’àudio que es codifiquen. Principalment elimina les components d’àudio que no són perceptibles per nosaltres (fora de la banda dels 20 Hz als 20 kHz) i n’elimina la informació redundant. El còdec AAC és força més complex que la descripció feta, només n’hem destacat els aspectes més rellevants pels casos d’aplicació que tractarem.

1.7.2. AVC Advanced Video Codec

H.264/MPEG-4 part 10 és el còdec estàndard de compressió de vídeo més estès a transmissions en alta definició. AVC va ser dissenyat per treballar amb fluxos de vídeo de baix bit rate amb alta qualitat. La millora més significativa la trobem a la capacitat de compressió de l’estàndard.

Fent una comparativa amb el seu predecessor MPEG-2, un flux a la mateixa qualitat requereix gairebé la meitat del bit rate. S’han definit diferents tipus de perfils i nivells amb diferents tipus de qualitat. Aquestes extensions permeten a l’estàndard treballar amb diferents formats de vídeo, com per exemple

(21)

CAPITOL 1. Conceptes bàsics 15

l’esquema 4:2:0 per a submostratge de croma. Altres exemples de formats amb més qualitat serien el 4:2:2 i el 4:4:4 per espais de color YUV.

La versatilitat de perfils i formats afavoreixen l’ús de l’estàndard per a tot tipus d’aplicacions. Des de les que requereixen bit rates relativament baixos ,com es el cas de transmissions SD a xarxes IP i per a dispositius mòbils, fins als alts bit rates necessaris per transmissions de vídeo en alta definició.

1.7.2.1. Característiques d’AVC

Les millores de l’estàndard són moltes, i per això només en definirem algunes a destacar per entendre el funcionament del nostre sistema i les millores respecte de l’anterior estàndard.

La primera són les millores en la predicció de frames, permetent fins a un màxim de 16 imatges de referència. Suposa una millora substancial en la compressió de fluxos respecte el màxim de dues referències possibles (només una al futur, i una altra al passat) que permet MPEG-2. .

També es permet modificar la mida dels macro blocs per a compensació de moviment. La mida mínima és de 4x4 píxels i la màxima de 16x16 píxels. A més a més fa tasques de compensació de moviment pel senyal de luma i permet seleccionar la mida del macro bloc amb dimensions fixes que poden variar entre els valors 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 i 4x4 píxels.

La relació de croma subsampling es manté al format que s’està fent servir. Per cada macro bloc poden haver fins a un màxim de dos vectors de compensació de moviment. També s’ha millorat la resolució fins a un màxim d’un quart de píxel (qpel) per garantir la precisió i la qualitat d’imatges en moviment.

1.7.2.2. Perfils d’AVC

Per tal de treballar amb diferents tipus de resolucions de vídeo i formats s’han definit diversos perfils amb nivells de qualitat. Alguns dels que veurem són:

 Constrained Baseline Profile (CBP): s’utilitza a aplicacions que requerei-xen bit rates baixos, com per exemple a videoconferències i per aplicaci-ons mòbils.

 Baseline Profile (BP): amb característiques iguals a CBP amb la millora d’aplicar tècniques de prevenció de pèrdua de dades.

 Main Profile (MP): perfil que s’utilitza habitualment a transmissions de TV digital definits per les normes DVB.

 High Profile (HiP): Aquest és el perfil que s’utilitza a dispositius de repro-ducció d’alta qualitat, com el cas de Blue-Ray.

 High 4:2:2 (Hi422P): Per transmissions de video HD de qualitat profesio-nal, seguint el format 4:2:2 de submostratge. Tots els perfils anteriors uti-litzen 4:2:0. Cada mostra ocupa 10 bits millorant la qualitat de la imatge i la sensació de brillantor dels colors.

(22)

 High 4:4:4 (Hi444PP): Versió millorada de l’anterior perfil que treballa amb mostreig de croma en format 4:4:4 amb una resolució de 14 bits per mostra.

Hem introduït el còdecs d’MPEG-4. A la secció 1.8 utilitzarem un perfil específic d’AVC que permet codificar fluxos de vídeo 3D. Al punt 1.10 continuarem amb la descripció de l’estàndard des del punt de vista del transport del fluxos entre els diferents elements del sistema

1.8. Códificació de vídeo 3D

En aquest apartat volem introduir les tècniques de codificació i visualització de fluxos de vídeo 3D. En el cas de vídeo 3D, ens cal tenir dos punts de vista per tenir sensació de profunditat. La visió estereoscòpica consisteix en l’observació per part d’ambdós ulls de dues imatges amb petites variacions que representen una mateixa realitat. El nostre cervell al processar aquesta petita diferencia, genera la sensació de profunditat del que veiem.

L’aplicació d’aquest principi consisteix en donar el suport necessari per que cada ull rebi un flux concret d’imatges. D’aquesta manera el nostre cervell construirà la imatge 3D del que estem visualitzant. Això vol dir que per a sistemes 3D ens calen càmeres o dispositius amb com a mínim dos sensors de vídeo. Un cop capturades les imatges per mantenir la sensació de 3D podem fer servir diferents tècniques de reproducció. A més a més s’ha implementat una millora a l’estàndard AVC per comprimir fluxos de vídeo 3D.

1.8.1. Tècniques de reproducció 3D

Al costat de reproducció existeixen diferents tècniques per tenir sensació de profunditat amb dos o més fluxos de vídeo.

Anaglífic

A cada seqüència d’imatges se li aplica un filtre de color , vermell per a una vista i verd i blau per a una altra o altres possibles combinacions de colors que veurem a la secció 2.10 amb el reproductor 3D Bino. Al reproduir el flux les imatges es superposen i fent servir unes ulleres compatibles cada ull rep la component de cada color i ens dona una lleugera sensació de profunditat. Ulleres polaritzades

Cada vidre està polaritzat (un verticalment i l’altre horitzontalment) de manera que cada ull rep una imatge diferent a l’estar polaritzada cadascuna de les vistes en una direcció.

Imatges alternades

Aquesta tecnologia requereix un monitor compatible i un kit d’ulleres actives. Amb aquesta tècnica les ulleres es sincronitzen amb el monitor de forma que

(23)

CAPITOL 1. Conceptes bàsics 17

per a cada ull s’obre i es tanquen les lents de les ulleres de manera periòdica, llavors cada ull rep només el conjunt de seqüències de la seva vista. Aquesta és de les tècniques més actuals i la que millor sensació de profunditat ens dona. En contrapartida, el sistema de reproducció (monitor, tarja gràfica i ulleres 3D o TV 3D i ulleres actives) no és econòmic i calen unes ulleres per a cada usuari.

Autoestereoscòpic

Mètode per a reproduir imatges tridimensionals de forma que la sensació de profunditat no depèn de cap dispositiu. A [4] es descriu la tècnica d’autoestereoscòpia.

Respecte als tipus de senyals de vídeo d’entrada compatibles en destaquem els següents.

Syde by syde

Cada vista és distribueix com una composició de dos frames, amb la meitat de columnes del frame que reproduirem, en un frame esquerre i un dret. Després el reproductor mostra cada vista en un únic frame, identifica quin frame es correspon a cada vista i els va mostrant de forma sincronitzada. A la Fig 1.17 es mostra aquest tipus de composició.

Fig. 1.17 Composició vídeo side by side. Extret de [47]. Top Bottom

En aquest cas la composició de les imatges es fa amb un frame superior i un frame inferior (meitat de files) que es correspon a cada vista. El procés de reproducció és el mateix que en el tipus side by side.

Separate frames

Els fluxos de cada vista arriben al reproductor com a fluxos independents. Ja coneixem quines característiques tenen els fluxos 3D i com reproduir-los, a continuació explicarem la millora d’AVC per a fluxos 3D, anomenada MVC (Multi View Coding).

(24)

1.8.2. Multi View Coding – Codificació de fluxos 3D

Un dels problemes amb que ens trobem amb vídeo 3D és la necessitat de doblar l’ample de banda (si no fem servir tècniques de codificació) per transmetre el flux de vídeo estereoscòpic. A més la similitud de les imatges de totes dues vistes permet fer servir tècniques de compressió ja conegudes i aplicar-les per disminuir-ne el pes.

Per treballar amb aquests tipus de fluxos de vídeo s’ha desenvolupat una millora de la norma H.264/MPEG-4 part 10, MVC Multiview Video Coding. Aquest estàndard de codificació aplica algoritmes que es basen en la relació temporal entre fotogrames de la mateixa seqüència i en els fotogrames de les seqüències d’imatges de les altres vistes. D’aquesta doble dependència s’aconsegueixen taxes més eficients de compressió. A la figura Fig.1.8 veiem un exemple de GoP per a diferents vistes durant el temps.

Fig. 1.8 GoP per fluxos MVC. Extret de [4]

Als actuals serveis de vídeo 3D es fa servir aquesta millora de l’estàndard. Com veurem a la secció 3.5 es poden transmetre fluxos 3D sense la necessitat de fer servir MVC, tot i així és una millora necessària per transmetre eficientment els fluxos amb diferents perspectives.

La major part de fluxos multimèdia contenen una composició de senyals audiovisuals i dades (per exemple subtítols) sincronitzades en el temps. Hem tractat el procés de codificació dels fluxos. La forma de transportar simultàniament aquestes senyals entre els diferents sistemes es fa mitjançant el que coneixem com a contenidors multimèdia.

1.9. Contenidors multimèdia

Un contenidor multimèdia és un conjunt de metadades interpretables per aplicacions que descriu com s’organitza la informació interna en un fitxer o flux. Els contenidors multimèdia són una forma de multiplexar i transportar diferents senyals audiovisuals i dades en un mateix fitxer o flux. Un contenidor

(25)

CAPITOL 1. Conceptes bàsics 19

multimèdia no descriu el còdec que s’ha fet servir. Per exemple, a l’obrir un fitxer el reproductor capaç de treballar amb aquest tipus de contenidor pot llegir l’arxiu però si no hem instal·lat el còdec compatible no podrem veure ni sentir res. Així doncs no podem saber si un fitxer encapsulat en un contenidor multimèdia es reproduïble o no, ens cal saber el còdec que s’ha fet servir per a cada senyal audiovisual.

Podem anomenar els contenidors multimèdia de diferents formes, parlem de chunks (fragment d’informació multimèdia amb una capçalera que indica alguns dels valors dels senyals que transporten), atoms (moovatom de Quicktime) per a contenidors MP4 o paquets en el cas de fluxos TS transport stream que tractarem a l’apartat 1.10.3. El contingut (les dades) d’un chunk rep el nom de payload. Al capítol 3 veurem exemples de chunks en la recepció de l’stream al servidor d’streaming. A [6] podem veure una comparativa dels diferents contenidors multimèdia i de les seves característiques.

Als propers apartats descriurem els contenidors multimèdia que es fan servir en transmissions de senyals per a ràdio i TV reals, concretament els definits a les parts de sistema de la família MPEG.

1.10. Transport de fluxos multimèdia

Un cop definits alguns conceptes que cal tenir clars, hem de descriure els protocols que farem servir per comunicar els diferents blocs.

A MPEG-2 es defineix com es transporten els fluxos de dades de TV digital actuals. A continuació farem una petita introducció als orígens d’MPEG-2 i continuarem descrivint altres aspectes de l’estàndard a nivell de protocols de comunicació i capa de transport.

1.10.1. Orígens d’MPEG-2 – DVB

DVB és una organització internacional formada per diverses empreses que promouen estàndards de Televisió Digital, concretament per TV digital en SD , HD i 3D ja sigui per comunicació de dades per canals de RF, satèl·lit o per cable.

Les organitzacions que lideren aquest grup d'empreses són les següents:  European Committee for Electrotechnical Standarization (CENELEC).  European Broadcasting Union (EBU).

 European Telecommunications Standards Institute (ETSI).

Aquests organismes són els encarregats de crear i proposar els procediments d’estandardització per a TV digital. Els estàndards són els que s'utilitzen actualment a Europa, amb l'excepció d'altres països com és el cas de Japó, Estats Units i Canada que fan servir els seus propis estàndards propietaris. Concretament al Japó es defineix l’estàndard ISBD i l'ATSC als EEUU i Canada. A la Fig.1.9 podem veure un mapa de la distribució de tecnologies per països.

(26)

Fig. 1.9 Distribució DVB per països

Cal assenyalar que la capa de transport que fan servir els estàndards és gairebé la mateixa en els casos MPEG-2 i MPEG-4 i que les principals diferències del sistema es troben a la capa física i al procés de codificació. Els estàndards de la família MPEG cobreixen els aspectes de codificació dels senyals d'AV i els procediments de multiplexació i sincronització d'aquests fluxos de programes tot viatjant pel canal sobre una capa de transport. Un cop definida aquesta capa de transport es selecciona el tipus de modulació utilitzada a la capa física pels diferents tipus de difusió (radiofreqüència, satèl·lit i per cable), els codis de detecció d'errors i els mecanismes d'accés condicional als serveis i programes.

DVB està compost per diferents normes en funció del canal i sistema de radiodifusió. Concretament aquestes són les normes que distribueixen les dades per DVB:

 Satèl·lit DVB-S i DVB-S2  Cable DVB-C i DVB-C2

 Televisió terrestre DVB-T i DVB-T2

 Televisió terrestre per equips portàtils DVB-H  Televisió per satèl·lit per equips portàtils DVB-SH  Televisió per xarxes IP DVB-IPTV.

Les principals diferències es troben a la capa física i a la capa d'enllaç del sistema de distribució així com al tipus de modulació:

 DVB-S utilitza QPSK, 8PSK o 16QAM.

 DVB-S2 les mateixes que l'anterior i 32APSK.

(27)

CAPITOL 1. Conceptes bàsics 21

 DVB-T QPSK, 16QAM o 64 QAM combinades amb OFDM. A l’annex A.4.1 veurem com configurar un sistema d’adquisició per a DVB-T.

Els tipus de dades que es transmeten encapsulades a un TS són àudio, vídeo i dades (subtítols, teletext i informació privada). Per facilitar el suport d'aquestes dades es fan servir les normes DVB-DATA,DVB-TXT i DVB-SUB.

Els fluxos DVB es transmeten en fluxos de transport TS Transport Stream. Les característiques del TS les descriurem més endavant en aquest mateix capítol al punt 1.10.3. .

1.10.2. Capes i Sistema

La capa de sistema es defineix a la part ISO/IEC 13818-1 de MPEG-2 on es descriuen formats contenidors i de transport dels fluxos. En diferenciem dos. El primer d'ells és el que anomenem MPEG-2 Transport Stream. L'altre tipus de contenidor es conegut com a Program Stream està dissenyat per emmagatzemar fluxos a fitxers (en format .mpg) . A la Fig.1.10 podem veure un exemple de com es paquetitzen i multiplexen els fluxos en TS i PS.

Fig. 1.10 Multiplexor de fluxos MPEG-2 TS i PS

Hem d'aclarir que un cop paquetitzats els fluxos separats d'àudio i vídeo abans del multiplexor s'anomenen Packetized Elementary Stream o PES i inclouen un únic stream amb un únic tipus de dades ja codificades. Alguns exemples de PES en casos reals d’aplicació serien fluxos d'àudio codificats en MPEG-1 layer II o mp2 i fluxos MPEG-2 MPEG-2v pel vídeo.

Transport stream és un tipus de contenidor multimèdia a la capa de transport per a fluxos MPEG-2. Els fluxos d’àudio i vídeo de cada programa que s’emet s’encapsulen independentment en el que coneixem con Elementary Stream. Cada Elementary Stream o ES conté un únic tipus de dades. Els fluxos ES es serveixen en paquets com paquetized elementary stream.

(28)

Un cop desmultiplexats, els paquets encapsulats en TS són de 188 bytes. A la Fig.1.11 es detalla informació sobre la capçalera i veiem els diferents camps que composen el paquet.

Fig 1.11 Capçalera contenidor TS

A banda d’àudio i vídeo s’emeten dades del programa (subtítols per exemple) i informació privada que es fa servir com a mecanisme condicional d’accés a continguts de pagament. Aquests fluxos passen per un multiplexor que genera a la sortida un únic flux TS que conté tots els fluxos dels N programes, com veiem a la Fig.1.12.

Fig 1.12 Multiplexor MPEG-2

Cada programa està sincronitzat en el temps mitjançant timestamps i els paquets tenen número de seqüencia. Cal comentar que el bit rate del flux de

(29)

CAPITOL 1. Conceptes bàsics 23

sortida és constant, i encara que els fluxes elementals variïn, si cal el multiplexor afegirà paquets buits per mantenir aquest fluxe constant.

Una possible millora en aquest procès seria retroalimentar la sortida del multiplexor de forma que el bit rate de sortida s’ajusti al que s’està emetent. Això s’anomena multiplexació estadística i és com es multiplexen els fluxos a serveis profesionals, com per exemple el multiplexor de TV3 a Collserola. Idealment si s’envien molts paquets buits el multiplexor hauria de disminuir el bit rate de sortida. Aquesta millora supossaria aprofitar més eficientment l’ample de banda de transmissió necessari en funció dels continguts que s’emeten. El TS generat conté tots els fluxes PES de cada programa i la informació de les taules Program Specific Information PSI. La senyalització del fluxe de transport es fa mitjançant les taules d’informació de servei SIT. Per poder treballar amb aquests tipus de senyals ens cal conèixer l’estructura de les taules PSI.

1.10.3. Taules PSI

Les taules PSI són una estructura de dades que contenen la informació dels programes que s’estan servint en el TS. El descodificador d’MPEG-2 consulta les taues PSI per identificar els diferents fluxes ES i descodificar-los. Cada programa té un Program Identifyer PID únic que l’identifica. Les taules que obligatoriament ha dincloure el TS són les seguents.

PAT Program Association Table

PAT ens dona la informació de tots els programes que viatgen en un TS. Amb la PAT podem saber que PID’s viatgen a les taules PMT. La PID de la PAT és sempre 0.

PMT Program Map Table

Existeix una PMT per a cada programa present en el TS. Es detalla la informació dels diferents ES que viatgen associats a aquests programa:

- PID en el que viatja el fluxe elemental. - Tipus de trama àudio, vídeo o dades. - Descriptors.

CAT Condicional Acces Table

Ens dona informació sobre el sistema d’accés condicional. Només és obligatòria si hi ha contingut privat.

Amb aquesta introducció teorica ja coneixem com viatgen entre els elements del sistema els fluxos TS. Hem volgut donar una visió general del sistema per entendre el seu funcionament més bàsic. Amb aquesta base podem entendre els mecanismés involucrats en els processos de códificació i transport de senyals audiovisuals. Al punt 1.11 d’aques capítol tractarem els protocols que

(30)

es fan servir per comunicar els diferents blocs dels sistemes d’streaming per a transmissió de fluxos.

1.11. Xarxes IP i protocols de comunicació

1.11.1. Introducció xarxes IP

Les xarxes IP són xarxes de commutació de paquets que segueixen les normes i protocols descrites a la família Internet Protocol. Un paquet és una estructura de dades amb informació de capçalera i les dades o payload.

Són conegudes com xarxes TCP/IP ja que la majoria de comunicacions es basen en aquests dos estàndards de comunicació de xarxa, on TCP és Transmission Control Protocol i IP és Internet Protocol, tot i que es fan servir d’altres protocols. El protocol IP s’encarrega d’adreçar correctament els paquets des d’una font o host font a destí. El sistema d’adreçament basat en adreces IP facilita les funcions d’identificació del host i de localització de servei. El protocol TCP s’encarrega de la comunicació entre la capa d’aplicació i el protocol IP, i assegura la fiabilitat de la transmissió.

Les xarxes IP són un conjunt de nodes comunicats. El control del tràfic es fa pels elements de xarxa anomenats routers. En aquest tipus de xarxes, el protocol TCP fa servir tècniques de control de congestió i reenviament de paquets en el cas de que es detectin pèrdues en l’enviament.

Bàsicament els routers gestionen l’enviament dels paquets IP sobre la xarxa. Els paquets es numeren amb un número de seqüència per controlar el reenviament i l’ordre. No obstant en el cas d’streaming en temps real el reenviament de paquets no soluciona el problema de les pèrdues, ja que rebre un reenviament d’un conjunt de paquets que es corresponen a un flux que ja hauríem d’haver vist o sentit no ens interessa.

L’objectiu en aquest cas és no perdre paquets o si es perden que l’usuari detecti la menor pèrdua de qualitat possible. Dintre d’aquest model de comunicació, les xarxes IP són xarxes Best Effort , és a dir , la xarxa no asegura qualitat de servei, l’ample de banda pot variar, poden haver-hi pèrdues i el retard pot ser gran i variar.

Això fa que les comunicacions a xarxa siguin canviants. Com veurem a la secció 3.6 les noves tècniques d’streaming adaptatiu com DASH, [50], volen preveure la capacitat de la xarxa entre client i servidor i servir un flux adequat a aquesta capacitat d’ample de banda.

Els paquets IP s’encapsulen a diferents nivells per a diferenciar-ne els diferents protocols seguint el model OSI. Aquest model encapsula els paquets a diferents capes i en describim:

(31)

CAPITOL 1. Conceptes bàsics 25

 Capa d’enllaç: Els protocols d’aquesta capa contenen informació de la xarxa local (LAN).

 Capa d’Internet: Interconnecta diferents xarxes locals.

 Capa de transport: Assegura la transmissió fiable d’informació extrem a extrem.

 Capa d’aplicació: comunica processos a nivell d’aplicació entre dos hosts.

A la Fig.1.13 es detalla un exemple de comunicació entre dos hosts i les diferents capes a una xarxa IP.

Fig 1.13 Capes i processos de comunicació. Extret de [42]

També cal distingir quatre tipus diferents d’adreçament IP tot i que nosaltres treballarem principalment amb unicast i multicast.

 Unicast: Els paquets s’adrecen d’un origen a un destí. No hi intervenen més elements que emissor i receptor.

 Multicast: L’emissor envia els paquets al router, que els reenvia al usuaris de la xarxa local interessats en rebre’l. Una adreça IP de multicast s’associa a un conjunt o grup de subscriptors interessats en rebre el flux de paquets d’aquesta adreça. Les adreces multicast es troben al rang d’adreces de 224.0.0.0 a 239.255.255.0 i reben el nom d’adreces tipus D. Per treballar amb xarxes multicast s’utilitza el protocol IGMP que descriurem al punt 1.11.6

 Broadcast: l’emissor envia a tots els destins possibles de la xarxa el flux de paquets.

(32)

 Anycast: l’ emissor serveix el flux ,d’entre tots els destins possibles, al client que sigui més a prop de la xarxa. Principalment fet servir per servidors DNS.

A continuació detallarem el conjunt de protocols que intervenen en el procés de comunicació dels diferents sistemes d’streaming que volem configurar. Principalment en detallarem els protocols RTP, RTSP, HTTP i IGMP.

1.11.2. Protocol RTP

RTP és un protocol de comunicació sobre xarxes IP que defineix un format estandarditzat de paquet per a transmissions d’àudio i vídeo sobre xarxes IP. RTP va ser desenvolupat pel grup Internet Engineering Task Force (IETF). Hi ha una versió de l’estàndard millorada que va ser publicada al 2003. RTP està dissenyat per garantir una comunicació extrem a extrem en temps real de fluxos d’àudio i vídeo. El protocol fa tasques de mesura a partir dels timestamps del paquets del jitter. El buffer del receptor RTP fa tasques de compensació del jitter. A [9] s’explica qué és i com fer-li front al jitter en comunicacions digitals. En apl

Figure

Fig. 1.9 Distribució DVB per països
Fig. 1.10 Multiplexor de fluxos MPEG-2 TS i PS
Fig 1.12 Multiplexor MPEG-2
Fig 1.13 Capes i processos de comunicació. Extret de [42]
+7

References

Related documents

The results of the radiometric survey confirmed the significant presence of Naturally Occurring Radioactive Material (NORM) in many components of the installation4. 2 The

The translation approach and RETOO database translation tool prototype are not only able to maintain the semantics of the relational database schema, but also

The regular meeting of the University Centers Advisory Board was called to order at 2:03pm on May 12, 2020 by Joey Mendoza on Zoom.. Aditya Arora (UCAB

Why don’t you get the time to mop the floor The answer my friend is you’ve joined a u3a. The answer is you’ve joined a u3a How many times do you think

The search for the protein fold corresponding to a secondary struc- ture composition is based on the CATH classifications of the protein structures deposited in the PDB, i.e.. we

(ADANA KOFTE WİTH YOGHURT) GRİLLED SPİCY MİNCED LAMB, ON A BED OF BREAD COVERED WİTH CREAMY YOGHURT AND HOMEMADE TOMATO SAUCE, FLAVOURED WİTH VEYSO’S BUTTER SAUCE. SARMA

Of the many possible strategies for managing residential pharmaceutical waste, the two most common are collection at pharmacies (international) and collection by household

The logic model for a social justice course informed by CRT and defining engaging diversity and difference in practice has the potential to inform or provide an alternative to