Codifica Codifica dei caratteri Alfabeto anglosassone Lettere maiuscole
Codifica
Codifica dei caratteri • Alfabeto anglosassone – – – Lettere maiuscole e minuscole Cifre numeriche (0, 1, 2, …, 9) Simboli di punteggiatura (, . ; : ! “ ? …) Segni matematici (+, -, {, [, >, …) Caratteri nazionali (à, è, ì, ò, ù, ç, ñ, ö, …) può essere codificato usando un byte (220 caratteri circa) • Il metodo di codifica più diffuso tra i produttori di hardware e di software prende il nome ASCII (American Standard Code for Information Interchange)
Codifica dei caratteri (ASCII) ASCII Simbolo 0000 NUL (spazio bianco) … … 00111110 > 00111111 ? 01000000 @ 01000001 A 01000010 B 01000011 C … …
Codifica Alfanumerica Codifica ASCII 32 65 97 125 Come si vede: v. I caratteri di controllo (non riproducibili) hanno i codici più bassi. v. Il blank (Spazio) è il primo dei caratteri riproducibili. v. Le maiuscole/minuscole sono ordinate (codice Progressivo). 123
Codifica delle parole • Parole sono sequenze di caratteri • Codifica della parole cane 01100011 c 01100001 a 01101110 01100101 n e • Il problema inverso: data una sequenza di bit, il testo che essa codifica può essere ottenuto nel modo seguente: – si divide la sequenza in gruppi di otto bit (byte) – si determina il carattere corrispondente ad ogni byte
Codifica dei caratteri • Abbiamo considerato il codice: – ASCII: 8 bit per carattere • Un’altro codice: – UNICODE, 16 bit per carattere (ASCII + caratteri etnici: greco, russo, ecc. ) – Microsoft Windows usa un codice proprietario a 16 bit per carattere, simile ad UNICODE
Codifica delle immagini Suddividiamo l’immagine mediante una griglia formata da righe orizzontali e verticali a distanza costante
Codifica delle immagini • Ogni quadratino derivante da tale suddivisione prende il nome di pixel (picture element) e può essere codificato in binario secondo la seguente convenzione: – Il simbolo “ 0” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il bianco è predominante – Il simbolo “ 1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il nero è predominante
Codifica delle immagini 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0
Codifica delle immagini 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 Poiché una sequenza di bit è lineare, è necessario definire convenzioni per ordinare la griglia dei pixel in una sequenza. Assumiamo che i pixel siano ordinati dal basso verso l’alto e da sinistra verso destra 00000 0011111000 0011100000 0001000000
Codifica delle immagini Non sempre il contorno della figura coincide con le linee della griglia. Quella che si ottiene nella codifica è un’approssimazione della figura originaria Se riconvertiamo la sequenza di stringhe 00000 0011111000 0011100000 0001000000 in immagine otteniamo
Codifica delle immagini La rappresentazione sarà più fedele all’aumentare del numero di pixel, ossia al diminuire delle dimensioni dei quadratini della griglia in cui è suddivisa l’immagine
Codifica delle immagini • Assegnando un bit ad ogni pixel è possibile codificare solo immagini in bianco e nero • Per codificare le immagini con diversi livelli di grigio oppure a colori si usa la stessa tecnica: per ogni pixel viene assegnata una sequenza di bit
Codifica delle immagini (grigio e colore) • Per memorizzare un pixel non è più sufficiente un solo bit – Per esempio, se utilizziamo quattro bit possiamo rappresentare 24 = 16 livelli di grigio o 16 colori diversi – Mentre con otto bit ne possiamo distinguere 28 = 256, ecc.
L’uso del colore • Il colore può essere generato componendo 3 colori: red, green, blue (RGB) • Ad ogni colore si associa una possibile sfumatura • Usando 2 bit per ogni colore si possono ottenere 4 sfumature per il rosso, 4 per il blue e 4 per il verde che, combinate insieme, danno origine a 64 colori diversi • Ogni pixel per essere memorizzato richiede 6 bit
L’uso del colore • Usando 8 bit per ogni colore si possono ottenere 256 sfumature per il rosso, 256 per il blu e 256 per il verde che, combinate insieme, danno origine a circa 16, 8 milioni di colori diversi (precisamente 16777216 colori) • Ogni pixel per essere memorizzato richiede 3 byte
Risoluzione • Il numero di pixel presenti sullo schermo (colonne x righe) prende il nome di risoluzione • Risoluzione tipiche sono 640 x 480 1024 x 768 1280 x 1024 • Esempio: – Per distinguere 256 colori sono necessari otto bit per la codifica di ciascun pixel – La codifica di un’immagine formata da 640 x 480 pixel richiederà 2. 457. 600 bit (307. 200 byte)
Grafica bitmap • Le immagini codificate pixel per pixel sono dette immagini in grafica bitmap – Le immagini bitmap occupano parecchio spazio • Esistono delle tecniche di compressione che permettono di ridurre le dimensioni – Ad esempio, se più punti vicini di un’immagine assumono lo stesso colore, si può memorizzare la codifica del colore una sola volta e poi ricordare per quante volte deve essere ripetuta • I formati come GIF, JPEG e PNG sono formati compressi • Argomento correlato: formati come Postscript e PDF per i documenti
Codifica di immagini in movimento • Un filmato è una sequenza di immagini statiche (dette fotogrammi o frame) • Per codificare un filmato si “digitalizzano” i suoi fotogrammi • Esempio: – 30 immagini al secondo con risoluzione 640 x 480 8 bit : 30 imm. /sec x 2457600 bit/imm. = 73728000 bit/sec – Un minuto richiederebbe 60 sec x 73728000 = 4423680000 bit (5529600 byte) circa 5 GByte • Esempi di formati per il video: AVI, MOV • Compressione: MPEG (Moving Picture Expert Group), differenza tra fotogrammi
Codifica dei suoni • Fisicamente un suono è rappresentato come un’onda che descrive la variazione della pressione dell’aria nel tempo (onda sonora) t • Sull’asse delle ascisse viene rappresentato il tempo e sull’asse delle ordinate viene rappresentata la variazione di pressione corrispondente al suono stesso
Codifica dei suoni • Si effettuano dei campionamenti sull’onda (cioè si misura il valore dell’onda a intervalli di tempo costanti) e si codificano in forma digitale le informazione estratte da tali campionamenti t • Quanto più frequentemente il valore di intensità dell’onda viene campionato, tanto più precisa sarà la sua rappresentazione • Il numero di campioni raccolti per ogni secondo definisce la frequenza di campionamento che si misura in Hertz (Hz)
Codifica dei suoni • Onde sonore: segnali ‘continui’ – campionamento: scelta di istanti in cui considerare il valore del segnale – quantizzazione: codifica dei campioni con un numero predefinito di bit ampiezza del segnale tempo
Codifica dei suoni • campionamento • quantizzazione 100 011 010 001 …
Codifica dei suoni 100 011 010 001 … • Il segnale può ora essere codificato in forma numerica mediante una sequenza di bit (nell’esempio con tre bit).
Esempio di codifica: segnale vocale telefonico
Dispositivi di codifica (ADC) Cavo elettrico 1 Trasporta il segnale elettrico analogico fino al ADC Cavo elettrico 2 Trasporta il segnale elettrico digitale verso il computer Analog to Digital Converter Suono onda di pressione dell’aria Microfono Converte il suono in segnale elettrico Analog to Digital Converter Quantizzazione Campionamento Segnale analogico Segnale campionato 10001001010001 Segnale digitale
Dispositivi di codifica (DAC) • Esiste anche il processo inverso, che trasforma l’informazione da digitale ad analogica. Nel caso del suono questo compito è svolto dal D. A. C. (Digital to Analog Converter) che trasforma il segnale digitale in segnale elettrico analogico; tale segnale viene successivamente trasformato in onda sonora dalle casse acustiche. Cavo elettrico 1 Trasporta il segnale elettrico digitale verso il DAC Digital to Analog Converter Cavo elettrico 2 Trasporta il segnale elettrico analogico fino alla cassa Cassa Acustica Trasforma il segnale elettrico analogico in suono Suono onda di pressione dell’aria
Codifica dei suoni • L’accuratezza della ricostruzione dipende : – da quanto sono piccoli gli intervalli di campionamento – da quanti bit uso per descrivere il suono in ogni campione nella fase di quantizzazione (8, 16, 32) – al solito … maggiore accuratezza significa maggior quantità di memoria occupata! • Anche per i suoni si possono utilizzare tecniche di compressione per migliorare l’occupazione di memoria della sequenza di campioni
Codifica dei suoni (esempio) • Se volessimo codificare la musica di qualità CD dovremmo: – Usare due registrazioni corrispondenti a due microfoni distinti (stereo) – Campionare il segnale musicale producendo 44100 campioni al secondo – Per ogni campione (che è un numero) si usano 16 bit – Per cui, il numero di bit che sarebbero necessari per codificare ogni secondo è pari a 2 x 44100 campioni x 16 bit/campione = 1414200 bit
Codifica dei suoni • Codifiche standard – WAV (MS-Windows), AIFF (Audio Interchange File Format, Apple) – MIDI – MP 3 • MIDI – Codifica le note e gli strumenti che devono eseguirle – Efficiente, ma solo musica, non voce • MP 3 – MPEG-3: variante MPEG per suoni – Grande diffusione, molto efficiente
Streaming video
Streaming • Cosa mi serve ? ? ? – Hardware – Software – Accessori • Come faccio funzionare il tutto ? ? ?
Streaming • Chi devo raggiungere? ? ? – Utenti remoti collegati ad Internet (WAN) – Utenti remoti “dial-up” (ADSL) – Utenti in rete locale (LAN) – Utenti remoti “mobili” (GPRS/UMTS)
Streaming • Cosa devo trasmettere – Qualità della voce • Musica hi-fi o voce – Qualità del video • Film in DVD o riprese con qualità “webcam” – Dimensioni dell’immagine – Presentazioni (powerpoint o altro) – Altro
Streaming • Memorizzare la voce con campionamento a 8 bit e con una frequenza di 6000 Hz per una durata di un minuto sono necessari – 6000 Hz x 60 s x 8 bit = 360 Kbyte circa • Memorizzare un minuto di una canzone con un campionamento a 16 bit stereo e con una frequenza di campionamento di 44100 Hz sono necessari 44100 x 60 s x 2 byte x 2 = 10 Mbyte circa.
Streaming • Perché è necessario comprimere un filmato digitale? – 720 x 576 x 8 x 3 x 25 = 30 MByte/s • 720 x 576 pixel (PAL) • 8 x 3 Quantizzazione a 8 bit per ciascuno dei tre colori • 25 fps – film 1 ora 108 GB
Streaming • NTSC – 525 righe 30 fps • PAL – 625 righe 25 fps interlacciati • SECAM – 625 righe a 25 fps
Formati video analogici • VHS – Standard più diffuso e meno qualitativo • Video 8 – Sony leggermente migliore del VHS • S-VHS – Migliora la qualità e la risoluzione del VHS • Video 8 Hi – Migliore come qualità a livello consumer • Betacam – Il più usato per il broadcast. Eccellente qualità
Formati video digitali • • MS Video for Windows [. AVI] Apple Quick Time for Windows [. MOV] Formato DV (3. 6 MB/sec) Adobe Filmstrip [. FLM] Autodesk Animation [. FLI/FLC ] Real. Media Audio/Video[. RA/RM/RAM] Microsoft [. ASF e. WMV ]
Segnale video • Composito (YC) – Tutte le informazioni vengono raggruppate in un singolo segnale • S-Video – 5 fili • RGB – Trasporta il segnale in termini di porzione di 3 colori
Segnale video • • RGB pc CMYK stampe YUV tv Luminanza – Intensità luminosa di un punto dell’immagine (Y) • Crominanza – U e V. Sono i canali che trasportano i colori. Detti anche R-Y e B-Y.
Streaming • • • Trasferire 500 KB a 6 KBs oltre 90 s Notevole quantità di banda +qualità corrisponde + banda Notevole tempo per scaricare i filmati Le tecniche di "streaming" permettono di ridurre questo tempo ad un piccolo ritardo iniziale, senza richiedere alcuno spazio sul disco locale: il file richiesto viene infatti visualizzato al momento, senza un preventivo download.
Streaming • Real time – Radio – Tv • non esiste un vero e proprio file ma piuttosto un flusso continuo (uno stream) di bit
Cosa mi serve • Una sorgente – File – Telecamera/tv/videoregistratore • Un encoder – PC – Software: es. Streamfactory/Stream Genie • Un server • Un player
I protocolli • TCP • UDP • RTP (Real-Time Protocol) – IETF – Derivazione dell’UDP – RTCP (Real Time Control Protocol) • RTSP (Real. Time Streaming Protocol) – Real Networks
I protocolli • MMS (Microsoft Media Server) – Microsoft (wmv, asf) • HTTP – Più lento – Trasparente ai firewall
client Architettura streaming client Sede Remota LAN streaming server codec
Architettura - CODEC Source File o Device Codec Coding – Decoding software Out. Put File o Device
Architettura - CODEC • Il codec realizza la compressione e la decompressione dei singoli fotogrammi nel formato e con la qualità necessaria al target del vostro applicativo. Il codec rappresenta il cuore di qualunque applicazione che manipoli o visualizzi flussi video e/o audio. • Esso infatti determinerà la pesantezza in termini di calcolo di tutta la struttura realizzata
Architettura - CODEC In definitiva si può pensare al codec come un componente di una pipe a cui facciamo giungere un flusso dati uncompressed e questo restituisce il flusso compresso secondo il proprio algoritmo. La performance di un codec si misura in fps e un codec che riesca a lavorare a 25 fps si definisce Real. Time (in PAL, per la CG 30 e per NTSC 29. 97) My. App CODEC
Architettura client • Media Player – Rimuove il jitter – Decomprime – Corregge errori – Realizza una graphical user interface controlli per l’interattività • Possono essere utilizzati dei Plug-in per incorporare il media player nella finestra del browser
Architettura - BITRATE Altro elemento fondamentale oltre i FPS è quanta banda è richiesta dal flusso (sia video che audio). Questo è un parametro di alta rilevanza se si pensa di far viaggiare i flussi prodotti su reti come internet. In questi casi è da ricercare il giusto compromesso tra pesantezza dell’encoding, dimensione dei singoli pacchetti e FPS raggiunti My. App CODEC NET My. App CODEC
Streaming Internet • I file audio/video sono memorizzati sul web server. • Il browser richiede il file con un messaggio di “HTTP request”. • Il server web invia il file in un messaggio “HTTP response”. • La header line “content-type” indica una codifica audio/video. • Il browser lancia un media player e passa il file al media player. • Il media player mostra il file.
Streaming Internet • Il Browser richiede e riceve un “metafile” invece di ricevere il file stesso. • Il Browser lancia il player passandogli il “metafile”. • Il Player ativa una connessione TCP/HTTP con il server ed effettuia il download del file.
Streaming Internet • Questo permette di evitare HTTP, dà la possibilità di scegliere fra UDP e TCP ed il protocollo dello strato applicazione può essere meglio adattato allo streaming
constant bit rate video transmission variable network delay client video reception constant bit rate video playout at client buffered video Cumulative data Streaming: client buffering client playout delay • Il client “bufferizza” una certa quantità di dati tale da assorbire eventuali ritardi dovuti alla rete. time
Streaming: velocità client 1. 5 Mbps encoding 28. 8 Kbps encoding • Come raggiungere client collegati a velocità diverse: – 28. 8 Kbps dialup – 100 Mbps Ethernet • Il server riceve il filmato e trasmette due stream che sono codificati con diverso bitrate.
Componenti fondamentali Telecamera per acquisizione immagini e suoni Computer con scheda acquisizione audio/video e codec Server per erogare lo streaming
Videocamera: la scelta • Web Cam – Economica. – Facile da usare. – Registrazione su disco.
Videocamera: la scelta • Web Cam – – Ottica fissa Uso solo in interni Ripresa audio scadente Qualità globale non migliorabile con l’editing
Videocamera: la scelta • Videocamera DV – – Massima versatilità Qualità audio e video eccellente Portatilità Archiviazione su nastro
Videocamera: la scelta • Videocamera DV – – Costo iniziale elevato Corredo Tempi di riversamento Interfacciamento Fire. Wire (IEEE 1394)
Videocamera: la scelta Cosa deve avere: • Formato mini DV • Ottiche, CCD • DVin, IEEE 1394, Firewire, i. Link • Comandi manualizzabili • Ingresso microfonico esterno
Videocamera: la scelta Cosa NON serve: • Titolatrice interna • Effetti digitali interni • Estrema miniaturizzazione
Videocamera: la scelta Connessioni analogiche Super Video composito Canale sinistro audio Canale destro audio
Videocamera: la scelta • Ingresso DVin – – Riversamento digitale Conservazione dei progetti Copie da videocamere DV Backup dati dal PC
Videocamera: la scelta • Nuove frontiere – Scrittura in Mpeg 2 su DVD-RAM – DVD-R da 8 cm – Risoluzione 704 x 480
Streaming: le riprese • • Riprese audio/video Editing Compressione Distribuzione
Soluzioni commerciali per lo streaming • Real Networks – Real. Player – Real. Producer – Real. Server • Microsoft (WMT) – Windows. Media. Player – Windows. Media. Encoder – Windows. Media. Server • Apple – Quick. Time. Streaming Server – Darwin Open. Source
Apple Quick. Time • Disegnato per Mac OS X • Disponibile come Open Source – Darwin Streaming Server – Disponibile in formato binario per Linux, Solaris, Win. NT/2000. • Progressive download – Fast Start Technology • Real Time Streaming
Apple Quick. Time • MPEG 4 support – Nativo • 3 GGP support – 3 GGP streaming per device wireless come telefoni cellulari • MP 3 support – Icecast compatibile protocol over HTTP
Apple Quick. Time
Apple Quick. Time
Apple Quick. Time
Apple Quick. Time • Standard Delivery Mechanisms – RTP/RTSP – Unicast e Multicast support – Live – On demand
Apple Quick. Time • Volumi di traffico – Fino a 4000 “connessioni” di qualità modem (57. 6 Kb/s) per CPU – Massima scalabilità • MAC OS X gira su macchine multiprocessore Power. PC 5 – Bilanciamento del carico su diversi servers – Supporto del caching
Apple Quick. Time • Costi – Inserito nel sistema operativo Mac OS XServer. – Gratuito con la licenza Open Source compilato per Linux, Solaris, Win. NT/2000/XP. – Compilabile su tutte le altre piattaforme – Non è necessaria nessuna licenza o tassa per stream o banda
Apple Quick. Time • Gestione – Interfaccia Web-based – Amministrazione locale o remota – Sono riportati dati relativi al traffico in uscita e le statistiche relative ai client collegati – Usa SSL per l’amministrazione remota
Apple Quick. Time
Apple Quick. Time • Log – Formato dei log in standard W 3 C – Informazioni disponibili in real time • Carico CPU, utenti connessi, banda occupata – Mantenimento dei file di log giornalieri con rotazione automatica
Apple Quick. Time • Autenticazione – Digest Authentication • Password trasmessa in modo cifrato – Basic Authentication • Passwortd trasmessa in chiaro • Gestione di server multipli – Distribuisce il carico su più servers – Negoziazione tra i servers automatica
Apple Quick. Time • Player – Apple Quick. Time Player 6. 2 • Disponibile per MAC Os X, Mac Os 9, Win 9 X/NT/2000/XP • Gratuito • Producer – Apple Quick. Time PRO 6. 2 • Upgrade del player • Costo di circa 20/30 $
Windows Media • Arriva per ultimo • Disegnato per ambiente Windows • Distribuito all’interno di alcuni pacchetti “SERVER” • Encoder, Player gratuiti scaricabili dal sito http: //www. microsoft. com/windows/windo wsmedia/9 series
Windows Media • CODEC forniti – Microsoft MWV Pro • Microsoft dichiara un rapporto di compressione di 3: 1 nei confronti del più utilizzato MPEG 2 – Microsoft MWA Pro • Microsoft dichiara un rapporto di compressione di 1, 7/2: 1 nei confronti del Dolby Digital 5. 1 e del DTS 5. 1
Microsoft Media • Codec alternativi – Possibilità di inserire altri codec di produttori diversi nel player – DVi. X – MPEG 2 – MPEG 4
Windows Media • Encoder – Windows Media Encoder 9 • Gira su Windows 2000/XP/2003 • Schede acquisizione video/audio – Osprey 220/500 – Soud. Blaster – Win. Cast TV
Windows Media • Server – Windows server 2003
Real Networks • • • Nasce nel 1995 “Scrive” gli standards Leader di mercato nella tecnologia di streaming Installati migliaia di server nel mondo Client gratuito
Real Networks • Supporto di: – – – Real Media Windows Media Quick. Time MPEG 4 Mp 3 MPEG 4 su 3 GPP • Utenti mobili UMTS/GPRS – Compatibilità con tutti i codec Microsoft
Real Networks • Accetta connessioni entranti da Windows Media Encoder. • Accetta connessioni entranti da altri encoders MPEG 4.
Real Networks • Possibilità di backup a caldo delle “connessioni” dei client (redirect) • Miglior rapporto prezzo/prestazioni disponibile oggi sul mercato per i server di streaming ad alte prestazioni. • La maggior parte delle radio e tv via internet utilizzano questa soluzione.
Real Networks • Costi: – Media Streaming Starter Kit • 2990$ – Include • content-capture hardware • Content-creation tools • Helix standard server – Linux, Solaris, Win, Free. BSD, AIX, HP-UX • Presenter. One – Presentazioni sincronizzate con video ed audio • Support
Real Networks • Componenti specializzati – Real. Mendia Production Bundle • 475$ – Include Cleaner 5 • Support DV – Real. System Edition – Helix Real Producer Plus – Disponibile WIN 9 x/NT/2000/XP
Real Networks • Server: – Helix Universal Server Basic • Banda limitata ad 1 Mbit/sec • Free (adatto per ambiente di test) – Helix Universal Server • Banda limitata a 4 Mb/sec • 1995$ + 800$/year maintenance
Real Networks • Server – Helix Universal Server • Enterprise – 5900$ + maintenance • Internet – 8500$ + maintenance • Mobile – Chiedere? !? !? !
Real Networks • Media Creation – Capture • Osprey 100 – video capture card • Osprey 220 – audio/video capture card • Osprey 500 DV – Professional analog and digital video and audio capture card
Real Networks • Log – Gestione automatica dei log con rotazione giornaliera – Possibilità di esportare i log verso server esterni – Formato dei log standard
Real Networks • Player gratuiti – Real One Player • Linux, Macintosh X e 9, Windows – Real One Enterprise Desktop – Real One Mobile Media • Nokia • Palm OS • Pocket PC • Real One Super. Pass – Player per radio e tv a pagamento
Real Networks • Helix Producer Plus – Disponibile per Linux e Windows • 200$ • Real System Producer Plus 8. 51 – Disponibile per Macintosh e Solaris • $$$$$? ? ? • Helix Producer Basic – Disponibile per Windows • Free • Formati non modificabili
Fine
- Slides: 108