Il nome Theora deriva da quello di Theora Jones, una dei protagonisti del telefilm fantascientifico Max Headroom, interpretato da Amanda Pays.[2]
Descrizione
VP3 è una tecnologia brevettata, ma On2 ha concesso in modo irrevocabile una licenza royalty free perpetua dei brevetti collegati, permettendo al pubblico di usare Theora ed altri codec derivati da VP3 per qualsiasi uso senza dover pagare diritti a On2. L'obiettivo di sviluppare un codec video esente da royalty ha posto delle limitazioni al progetto che non ha potuto utilizzare alcune tecniche di compressione molto efficienti ma brevettate. Ciò nonostante il progetto si pone dal punto di vista delle prestazioni nello stesso segmento (medio alto) del codec video H.264, essendo simile come qualità video a quest'ultimo equiparando sistemi come il DivX e il VC-1[3].
Theora è utilizzato per tutti i video di Wikipedia. Questo codec video è stato implementato nelle nuove versioni di Firefox (3.5) e di Opera.
Nei flussi multimediali Ogg, Theora fornisce il layer video, mentre Vorbis è usato di solito come layer audio (sebbene anche Speex e FLAC possano essere usati per l'audio).
Cronologia dello sviluppo
Le origini
VP3 fu originariamente un codec video registrato sotto licenza proprietaria e sviluppato da On2 Technologies. On2 TrueMotion VP3.1 venne introdotto nel maggio 2000 seguito poi dalla seconda release (VP3.2) tre mesi dopo[4][5]. Più tardi quell'anno, On2 annunciò i plugins VP3 per QuickTime e RealPlayer[6][7]. Nel maggio 2001, On2 rilasciò una versione beta del suo nuovo codec proprietario VP4[8][9]. Nel giugno dello stesso anno, On2 rilasciò inoltre anche un'implementazione del codec VP3 per Microsoft Windows[10] al prezzo di $39.95 per uso personale, e $2,995 per scopi commerciali limitati[11]. Nell'agosto del 2001, On2 Technologies annunciò che era in via di rilascio sotto licenza open source l'algoritmo del loro codec video VP3.2
[12][13]. Nel settembre 2001 il codice sorgente e la licenza open source vennero pubblicati su www.vp3.com
[14][15][16][17][18]. La VP3.2 Public License 0.1 garantiva il diritto alla modifica del codice sorgente solo se il lavoro non risultava incompatibile con il supporto allo stesso codec VP3.2
[14][15][19].
La scelta dell'open source
Nel marzo 2002, On2 adottò la licenza LGPL per il suo codec VP3
[20]. Nel giugno del 2002 On2 donò VP3 alla Xiph.Org Foundation sotto una licenza opensource BSD con 3 clausole[21][22][23]. On2 garantì inoltre la sua disponibilità a rendere la licenza royalty-free permettendo così a chiunque di usare qualsiasi codec derivato da VP3 senza limitazioni
[24][25]. Nell'agosto 2002, On2 entrò a far parte di un accordo con la Xiph.Org Foundation per rendere VP3 la base di un nuovo codec video opensource chiamato Theora
[26]. On2 dichiarò che Theora avrebbe continuato la linea di sviluppo di VP3. Il 3 ottobre 2002 On2 e Xiph annunciarono il completamento e la disponibilità della prima versione di test di Theora(libtheora) targata come alpha1
[27], libtheora raggiunse lo stato di alpha2 il 9 giugno 2003[28] e successivamente quello di alpha3 il 20 marzo 2004[29].
Non vi fu una specifica del formato bitstream adottato dal codice del VP3 pubblicato da On2 Technologies. Nel 2003, Mike Melanson creò un abbozzo della descrizione del formato del VP3 bitstream e come veniva effettuato il processo di decodifica a un livello più alto del codice sorgente, con il contributo di On2 e della Xiph.Org Foundation. Le specifiche di Theora adottarano diverse porzioni della descrizione del codec VP3
[24][30]
La Specifica Theora I
La struttura del bitstream di Theora è rimasta pressoché invariata dal rilascio di nel giugno 2004 di libtheora 1.0alpha3[31]. Questo comporta che qualsiasi video codificato con qualsiasi versione di libtheora dalla versione alpha3 risulterà compatibile con tutte le release successive del codec[31][32]. Ciò accade anche con tutti quei video codificati con implementazioni della specifica Theora I successive alla definizione definitiva del formato avvenuta nel 2004[33].Ogni successiva modifica riguarda aggiornamenti minori.
Lo sviluppo di libtheora durò diversi anni nei quali lo stato del progetto passò gli stati di alpha e beta. L'ultima versione alpha fu libtheora 1.0alpha7 pubblicata il 20 giugno 2006. L'anno successivo fu la volta di libtheora 1.0 beta1 (22 settembre 2007). L'ultima versione beta risale al 16 aprile 2008 (libtheora 1.0 beta3). Nel novembre dello stesso anno venne rilasciata al pubblico la release definitiva, libtheora 1.0[34]. Il lavoro del team si focalizzò poi sull miglioramento del codec stesso e delle sue performance (ramo "Thusnelda"), per terminare poi con il rilascio di una seconda release stabile sotto il nome di libtheora 1.1 nel settembre 2009[35][36]. Questa release acquisì diversi miglioramenti e nuove funzionalità come il supporto alla codifica two-pass, la quale permette di calcolare con molta più precisione la dimensione finale di un video compresso.
Rispetto alla versione 1.0, Theora 1.1 migliora notevolmente quindi sia la qualità che le performance, soprattutto in decodifica. Il merito va alla quantizzazione adattiva e da nuove matrici di quantizzazione, da un nuovo modulo per il rate control e da altri miglioramenti tecnici presenti nelle note di rilascio. Un ulteriore aggiornamento di Theora 1.1 è stato rilasciato il primo ottobre 2009 targato come Theora 1.1.1 e risolve alcuni problemi di compilazione riscontrati con la versione 1.1[1]
Theora è largamente diffuso ormai come formato video in applicazioni opensource, e come codec dei video di Wikipedia. Nonostante ciò, l'adozione di Theora come parte fondamentale della codifica video in HTML5 rimane ancora in discussione.
Cronologia versioni
Qui di seguito un riepilogo delle versioni rilasciate:
Versione 1.0
Theora Alpha 1 (libtheora-1.0alpha1) - 3 ottobre 2002[27]
Theora Alpha 2 (libtheora-1.0alpha2) - 9 giugno 2003[28]
Theora Alpha 3 (libtheora-1.0alpha3) - 20 marzo 2004[29]: questa è stata la prima versione dell'encoder a generare file che rispettano le specifiche;
Theora Alpha 4 (libtheora-1.0alpha4) - 15 dicembre 2004
Theora Alpha 5 (libtheora-1.0alpha5) - 20 agosto 2005
Theora Alpha 6 (libtheora-1.0alpha6) - 30 maggio 2006
Theora Alpha 7 (libtheora-1.0alpha7) - 20 giugno 2006
Theora Alpha 8 (libtheora-1.0alpha8) - 18 settembre 2007: questa è stata la prima versione ad avere il decoder con supporto completo al bitstream;
Theora Beta 1 (libtheora-1.0beta1) - 22 settembre 2007
Theora Beta 2 (libtheora-1.0beta2) - 12 ottobre 2007
Theora Beta 3 (libtheora-1.0beta3) - 16 aprile 2008
Theora 1.0 (libtheora-1.0) - 3 novembre 2008[34][37]
Versione 1.1 (ramo Thusnelda)
Thusnelda Alpha 1 (libtheora-1.1alpha1) - 27 marzo 2009
Thusnelda Alpha 2 (libtheora-1.1alpha2) - 26 maggio 2009
Thusnelda Beta 1 (libtheora-1.1beta1) - 5 agosto 2009
Thusnelda Beta 2 (libtheora-1.1beta2) - 12 agosto 2009
Thusnelda Beta 3 (libtheora-1.1beta3) - 22 agosto 2009
^On2 Introduces TrueMotion VP3.2, su on2.com, On2, 16 agosto 2000. URL consultato il 22 gennaio 2010 (archiviato dall'url originale il 3 dicembre 2007).
^ab On2 Technologies, VP3.2 Public License 0.1 (TXT), su vp3.com, Archive.org, 2001. URL consultato il 22 gennaio 2010 (archiviato dall'url originale il 26 ottobre 2001).
^ab On2 Technologies, VP3.2 Public License 0.1 (TXT), su trac.xiph.org, Xiph.Org Foundation, 2001. URL consultato il 22 gennaio 2010 (archiviato dall'url originale il 4 aprile 2016).
^On2 Offers Up VP3.2 Source Code, su streamingmedia.com, 7 settembre 2001. URL consultato il 22 gennaio 2010 (archiviato dall'url originale il 14 agosto 2007).
^ Mike Melanson (mike at multimedia.cx), VP3 Bitstream Format and Decoding Process (TXT), su multimedia.cx, 8 dicembre 2004. URL consultato il 22 gennaio 2010 (archiviato dall'url originale il 6 gennaio 2013).
^Theora.org : news, su theora.org, Xiph.Org Foundation, 24 settembre 2009. URL consultato il 23 gennaio 2010.
^Theora I Specification (PDF), su theora.org, Archive.org, 17 settembre 2004. URL consultato il 23 gennaio 2010 (archiviato dall'url originale il 28 settembre 2004).
^Google Chrome to support HTML5 video, su softsailor.com, SoftSailor, 29 maggio 2009. URL consultato il 24 gennaio 2010 (archiviato dall'url originale il 3 ottobre 2009).
^ Stephen Shankland, Google Chrome gets HTML video support, su news.cnet.com, cnet news, 28 maggio 2009. URL consultato il 24 gennaio 2010 (archiviato dall'url originale il 19 luglio 2011).