La transmissió continua

La paraula anglesa “streaming” no és fàcil de traduir. Una de les definicions que trobo més adient és la que diu que “streaming” és un mètode per transmetre o rebre dades per internet de manera continua i estable. Per això, el concepte de transmissió continua és probablement un dels que més s’apropa al significat d’aquesta paraula anglesa. El concepte s’aplica habitualment a la transmissió d’àudio i vídeo quan es fa de manera que el material es pot reproduir mentre s’està encara rebent. L’avantatge és que qui vol escoltar música o veure una pel·lícula, ho pot fer sense haver d’esperar a que s’hagi descarregat tota la informació.

La imatge que veieu és una captura de pantalla d’aquest vídeo de YouTube. A sota podeu veure dues barres, una vermella i una de color gris. La vermella indica en quin punt de la reproducció del vídeo ens trobem. Mentre va avançant regularment, també ho fa la barra grisa, que sempre és més llarga i que ens mostra la part de vídeo que ja s’ha descarregat en el nostre ordinador. Si tinguéssim problemes de xarxa i s’aturés la transmissió, la barra grisa deixaria d’avançar. I si els problemes no es resolguessin, deixaríem de veure el vídeo quan la barra vermella arribés al mateix punt on s’havia aturat la grisa. Quan veiem vídeos en transmissió continua, habitualment observem una diferència significativa entre el que s’ha transmès i el que estem veient. És la diferència de longitud entre les dues barres vermella i gris. El sistema es cura en salut i sempre intenta que la informació rebuda vagi per davant de la que estem visualitzant o escoltant. Però no sempre és tan fàcil. La cosa es complica en aplicacions interactives com Skype o Hangouts. En aquests darrers casos, pràcticament no tenim marge de temps perquè quan hi ha retards, la comunicació amb l’altra persona deixa de ser fluida. De fet, a les videoconferències, s’ha vist que els retards superiors a dues dècimes de segon no són ben tolerats pels usuaris.

Ja fa 90 anys, en George Squier va patentar un sistema per transmetre informació a través de les línies elèctriques. El seu mètode es va utilitzar després per enviar música de manera continua a clients comercials, i va ser clarament un precursor del que ara fem i tenim. Però tot plegat no es va poder desenvolupar fins fa uns vint anys. Calía una xarxa informàtica potent com que ara tenim a internet, comunicacions amb un bon ample de banda i dispositius mòbils com els actuals telèfons amb accés a la xarxa.

Cóm podem enviar pel·lícules llargues amb aquesta filosofia de transmissió contínua? Què podem fer per començar a veure el vídeo sense haver d’esperar a rebre’l en la seva totalitat, si les pel·lícules i vídeos digitals són de fet un sol fitxer? Què podem fer per a veure pel·lícules que ocupen més d’un Giga Byte, al nostre telèfon? Les tècniques de transmissió continua, enlloc de voler enviar tota la informació de cop, la divideixen en trossets molt petits que envien de manera independent. Aquests trossets, anomenats paquets, són com cartes o petits missatges. És com si volguéssim enviar tot un llibre per correu i només tinguéssim sobres petits i segells de cartes. Les tècniques d’streaming o transmissió continua separen tots els fulls del llibre, preparen sobres amb un full a cada un d’ells, i els envien tots per correu. Cada paquet, cada sobre, conté informació (un tros molt petit del vídeo o un full del llibre en el nostre exemple) i l’adreça de destí. La transmissió per la xarxa és de fet molt similar a una tramesa per correu postal, perquè no sabem quin camí farà cada paquet. Hi ha molts possibles camins entre l’origen i el destí, molts camins alternatius que porten al mateix lloc final. Pot ser molt bé que diferents paquets amb trossets del mateix vídeo acabin seguint camins molt diversos per la xarxa, en funció dels diferents graus de càrrega i saturació locals. Cada cop que un paquet arriba a un ordinador enmig de la xarxa (anomenat node o servidor), aquest analitza l’estat local de la xarxa i redirigeix el paquet cap algun altre node de manera que es vagi acostant al destí final. El resultat, vist des de l’ordinador final (per exemple, el nostre telèfon) és que anirem rebent totes les cartes, encara que desordenades. Per a poder tornar a llegir el llibre a l’ordinador final ens cal tenir numerats els paquets (en el cas del llibre això és immediat, perquè ens podem basar en la numeració de les pàgines) i anar guardant els que arriben, per assegurar que quan llegim una pàgina ja hem rebut i hem pogut llegir totes les anteriors.

Una solució interessant, que utilitza la mateixa infraestructura de servidors web (anomenats servidors HTTP) que fem servir quan naveguem per internet, és l’anomenada MPEG-DASH. De fet, és la primera que ha esdevingut un estàndard internacional. La tècnica MPEG-DASH permet veure informació multimèdia en tot tipus de dispositius com televisors amb connexió a internet, telèfons, tauletes i d’altres, i té l’avantatge addicional de ser adaptativa. Aquesta propietat de ser adaptatiu vol dir que cada petit trosset de vídeo, molt breu, es codifica i s’envia com diversos paquets alternatius, amb diferents graus de qualitat. Imaginem per exemple que estem veient una pel·lícula amb aquest sistema de transmissió continua, i que el servidor l’envia dividida en paquets d’un segon de durada cada un. En un esquema clàssic de transmissió continua, la pel·lícula d’una hora i mitja s’enviaria de manera progressiva com a 3600+1800=5400 paquets individuals i diferenciats d’informació, tots ells numerats de manera creixent en el temps. El receptor sap que, per mostrar el segon de vídeo corresponent a un paquet, abans ha d’haver mostrat de manera ordenada tots els paquets amb nombre d’ordre inferior. Si un paquet no li arriba, s’haurà d’aturar la presentació del vídeo. En canvi, amb la tècnica MPEG-DASH, per a cada segon de pel·lícula, el servidor enviaria (per exemple) tres paquets equivalents i alternatius: un d’alta qualitat, un de qualitat mitjana i un de baixa qualitat. Ha d’enviar molts més paquets (en el nostre cas, hauríem d’enviar un total de 16200 paquets, el triple de 5400) però l’avantatge és que els paquets de baixa qualitat, en ocupar menys Bytes d’informació, viatgen més ràpid per la xarxa. Si la xarxa es col·lapsa i en un cert moment esdevé més lenta, el receptor, si veu que un paquet d’alta resolució no li arriba, podrà utilitzar paquets alternatius de baixa resolució (que és molt segur que li hagin ja arribat) en lloc d’aturar el vídeo.

Hi ha una certa semblança entre la xarxa d’internet i el nostre cervell. El cervell humà té de l’ordre de 86 mil milions de neurones. Però més que el nombre de neurones, l’important és el nombre de connexions, la xarxa que hi ha entre elles. Tot i aquests vuitanta mil milions de neurones, el que fa que siguem humans són els quasi mil bilions de connexions sinàptiques que les interconnecten. La complexitat d’internet és més petita, però les seves dimensions són cada cop més impressionants. En aquesta web podeu veure en temps real la complexitat de la xarxa i el seu grau d’utilització mesurat en nombre d’usuaris, correus electrònics, tweets, cerques a Google i altres. Ja tenim de l’ordre de mil milions de llocs web. El repte de les aplicacions de comunicació interactiva (com Skype i Hangouts i, en menor grau, WhattsApp i d’altres) és que hi ha moltíssima gent que s’està comunicant i enviant informació al mateix temps. No és com el telèfon de fa cinquanta anys, que tenia un sol cable per on havien de passar totes les trucades. Els missatges, la veu i les videoconferències es desgranen en infinits paquets que van trobant el seu camí per la xarxa a cada instant, sense retards aparents. Si ho podem fer és gràcies a la flexibilitat de la distribució de paquets a través d’internet, flexibilitat que es basa en adaptar el recorregut de cada paquet segons l’evolució de l’estat de la xarxa a cada zona. La xarxa d’internet funciona i permet la transmissió continua gràcies a la seva plasticitat i capacitat d’adaptació. D’alguna manera, hem portat la plasticitat del nostre cervell al disseny de la xarxa d’internet, usant paquets molt petits i fent que els camins entre nodes (neurones) siguin dinàmics i adaptables. És aquest invent màgic el que permet que tots podem estar connectats a la vegada.

Per cert, Paul Krugman diu que l’actual equilibri polític descansa sobre el fonament de la ignorància, perquè l’opinió pública no té ni idea de com és la nostra societat. Explica que, segons càlculs recents, la major part del creixement des de l’any 1973 ha anat a parar al 0,1% de la població, la mil·lèsima part de la població que concentra la riquesa.