# Theora

Theora es un códec de vídeo libre que está siendo desarrollado por la Fundación Xiph.Org, como parte de su proyecto Ogg. Basado en el códec VP3 donado por On2 Technologies, Xiph.Org lo ha refinado y extendido dándole el mismo alcance futuro para mejoras en el codificador como el que posee el códec de audio Vorbis.
Google en 2010 empezó a financiar parte del proyecto de Ogg Theora.

## Introducción

Theora es un códec de vídeo de propósito general con bajo consumo de CPU. Está basado en el códec de vídeo VP3 producido por On2 Technologies quien donó el código fuente del VP3.1 a la Fundación Xiph.Org quién lo publicó bajo la licencia BSD revisada de 3 cláusulas.
Aunque VP3 es tecnología patentada, On2 ha renunciado irrevocablemente a todos los derechos y patentes que tenía sobre este en septiembre del 2001. En junio de 2002, On2 Technologies y la Fundación Xiph.Org anunciaron una alianza para desarrollar Ogg Theora: la integración de VP3 con el proyecto Ogg y Vorbis.
El objetivo es la posibilidad de tener ficheros Ogg, donde Theora actúa como la capa de vídeo, mientras que Vorbis actúa generalmente como la capa de audio (Speex y FLAC también pueden actuar como capas de audio). Esto permite trabajar con audio y vídeo sin tener que maniobrar con formatos cerrados y/o de pago, es decir, teniendo una alternativa libre y competitiva a los formatos del grupo MPEG-4 del Consorcio MPEG.
El nombre Theora homenajea al personaje de ficción Theora Jones, interpretada por Amanda Pays en la serie de televisión Max Headroom.

### VP3 y Theora

Theora está basado originalmente en el códec VP3, pero amplía las características respecto a las disponibles en este códec. El contenido codificado con VP3 puede ser transcodificado al formato Theora de manera que no exista ninguna pérdida en la calidad final. Sin embargo, el contenido codificado en Theora no puede, en general, ser transcodificado al formato VP3 sin que existan pérdidas en la calidad.

## Detalles técnicos

Theora es un método de compresión de vídeo con pérdidas. El vídeo comprimido puede ser almacenado en cualquier contenedor multimedia conveniente (ej. Matroska), pero generalmente se encuentra en el formato contenedor Ogg que es el recomendado por Xiph.Org y es frecuentemente usado con el formato de audio Vorbis.
Theora I es un códec de transformación basado-en-bloque que utiliza la Transformada de coseno discreta 8 x 8 de Tipo-II y compensación de movimiento basada-en-bloque. Esto lo coloca en la misma clase de códecs que MPEG-1, MPEG-2, MPEG-4, y H.263. Sin embargo, los detalles de como los bloques individuales son organizados y como los coeficientes DCT son almacenados en el bitstream difieren substancialmente de estos códecs. Theora soporta únicamente cuadros intra (cuadros I en MPEG) y cuadros inter (cuadros P en MPEG). No existe un equivalente a los cuadros bi-predictivos (cuadros B) encontrados en códecs MPEG.
Theora ofrece un conjunto de características nuevas o mejoradas en comparación al VP3.

### Características

* Compensación de movimiento basada-en-bloque
* Bit rate variable de forma-libre (VBR)
* Tamaño de bloque mínimo de 8x8
* Codificación flexible de la entropía
* Formatos de submuestreo de croma 4:2:0, 4:2:2, y 4:4:4
* 8 bits por píxel por color de canal
* Múltiples cuadros (frames) de referencia
* Cuadros intra (I-frames en MPEG), cuadros inter (P-frames en MPEG), pero no B-frames (en MPEG4 ASP, AVC)
* Tecnologías ya usadas por Vorbis
* Permite transcodificación desde VP3 sin pérdidas

## Estado

El formato del bitstream fue congelado el jueves 1 de julio de 2004. Todos los archivos creados con el codificador alpha 3 (y, por supuesto, codificadores posteriores) pueden ser reproducidos con decodificadores futuros.
Después de varios años en estado alpha y un año en beta, la Fundación Xiph.Org publicó la versión final 1.0 de libtheora el 3 de noviembre de 2008 enfocándose principalmente en la estabilidad, portabilidad y compatibilidad con versiones anteriores.
La versión 1.1.0 fue publicada el 24 de septiembre de 2009 y es un esfuerzo patrocinado por la Mozilla Foundation, la Wikimedia Foundation y Red Hat; esta versión usa el codificador de próxima generación con nombre en código "Thusnelda", el cual ya ha demostrado una mejora substancial en la calidad sin romper la compatibilidad hacia atrás, un decodificador más rápido, modo de dos-pasos, entre otras mejoras.
El estado "Alfa" de versiones anteriores a la 1.0 era algo confuso ya que no se utilizaba para referirse a una fase donde el producto todavía era inestable o que contenía errores que faltaban depurar, sino a que no contenía todas las características necesarias para una versión definitiva. Theora es actualmente un códec maduro y estable para su uso y los archivos creados actualmente pueden ser reproducidos con decodificadores futuros que cumplan con la especificación de Theora.
Desde el lanzamiento 1.0 Beta 1, se cambió la versión del bitstream a 3.2.1 (en versiones anteriores era 3.2.0) y es necesario utilizar el nuevo decodificador de la rama theora-exp escrito por el Dr. Timothy Terriberry el cual cumple con las especificaciones completas de Theora para reproducir los archivos creados con este codificador o posteriores. El contenido nuevo creado con el codificador Beta 1 o posterior necesitará el decodificador nuevo, el contenido antiguo puede reproducirse sin problemas en el decodificador nuevo. Como regla general, todas las aplicaciones actuales necesitan actualizar el decodificador a la versión más reciente para soportar todos los contenidos.

### Línea de desarrollo

Theora se encuentra activamente en desarrollo, en la que Xiph.Org ha publicado ocho versiones alfa y tres versiones beta para la rama 1.0, seguida de dos alfas y tres betas para la rama 1.1 con una versión de mantenimiento en esta rama.
| Versión 1.0 | Fecha de publicación |
| 1.0 Alpha 1 | 25 de septiembre de 2002 |
| 1.0 Alpha 2 | 9 de junio de 2003 |
| 1.0 Alpha 3 | 20 de marzo de 2004 |
| 1.0 Alpha 4 | 15 de diciembre de 2004 |
| 1.0 Alpha 5 | 20 de agosto de 2005 |
| 1.0 Alpha 6 | 30 de mayo de 2006 |
| 1.0 Alpha 7 | 20 de junio de 2006 |
| 1.0 Alpha 8 | 18 de septiembre de 2007 |
| 1.0 Beta 1 | 22 de septiembre de 2007 |
| 1.0 Beta 2 | 12 de octubre de 2007 |
| 1.0 Beta 3 | 16 de abril de 2008 |
| 1.0 | 3 de noviembre de 2008 |
| Versión 1.1 | Fecha de publicación |
| 1.1 Alpha 1 | 27 de marzo de 2009 |
| 1.1 Alpha 2 | 26 de mayo de 2009 |
| 1.1 Beta 1 | 12 de agosto de 2009 |
| 1.1 Beta 2 | 22 de septiembre de 2009 |
| 1.1 Beta 3 | 22 de agosto de 2009 |
| 1.1.0 | 24 de septiembre de 2009 |
| 1.1.1 | 1 de octubre de 2009 |

## Adopción

* Ogg Theora es el formato de vídeo preferido en una gran cantidad de proyectos relacionados con el software libre.
* Mozilla Firefox desde su versión 3.5, incluye soporte nativo para reproducir vídeos en Theora.
* Opera 10.5 incluye soporte para Theora.
* Google Chrome también incluye soporte para Theora.
* Wikipedia utiliza Ogg Theora para todos sus vídeos.