stringtranslate.com

Ogg

Ogg es un formato contenedor abierto y gratuito mantenido por la Fundación Xiph.Org . Los autores del formato Ogg afirman que no está sujeto a restricciones de patentes de software [3] y está diseñado para permitir la transmisión y manipulación eficiente de multimedia digital de alta calidad . Su nombre deriva de "ogging", jerga del juego de computadora Netrek . [4]

El formato contenedor Ogg puede multiplexar una serie de transmisiones independientes de audio , video , texto (como subtítulos ) y metadatos .

En el marco multimedia Ogg, Theora proporciona una capa de vídeo con pérdida . La capa de audio suele estar a cargo del formato orientado a la música Vorbis o su sucesor Opus . Los formatos de compresión de audio sin pérdida incluyen FLAC y OggPCM .

Antes de 2007, la extensión de nombre de archivo .ogg se utilizaba para todos los archivos cuyo contenido utilizaba el formato contenedor Ogg. Desde 2007, la Fundación Xiph.Org recomienda que .ogg solo se utilice para archivos de audio Ogg Vorbis. La Fundación Xiph.Org decidió crear un nuevo conjunto de extensiones de archivo y tipos de medios para describir diferentes tipos de contenido, como .oga para archivos de solo audio, .ogv para video con o sin sonido (incluido Theora) y .ogx para Ogg multiplexado. [5]

A fecha de 7 de noviembre de 2017, la versión actual de la implementación de referencia de la Fundación Xiph.Org es libogg 1.3.3. [6] Otra versión, libogg2, ha estado en desarrollo, pero está esperando una reescritura a fecha de 2018. [7] Ambas bibliotecas de software son software libre , publicadas bajo la licencia New BSD . La implementación de referencia de Ogg se separó de Vorbis el 2 de septiembre de 2000. [8]

Los diversos códecs de Ogg se han incorporado a varios reproductores multimedia gratuitos y propietarios , tanto comerciales como no comerciales, así como a reproductores multimedia portátiles y receptores GPS de diferentes fabricantes.

Nombramiento

El proyecto Ogg Vorbis comenzó en 1993. Originalmente se llamaba "Squish", pero ese nombre ya era una marca registrada, por lo que el proyecto sufrió un cambio de nombre. El nuevo nombre, "OggSquish", se utilizó hasta 2001, cuando se cambió nuevamente a "Ogg". Desde entonces, Ogg pasó a referirse al formato contenedor , que ahora forma parte del proyecto multimedia más grande Xiph.org. Hoy, "Squish" (ahora conocido como "Vorbis") se refiere a un formato de codificación de audio particular que se usa típicamente con el formato contenedor Ogg.

Ogg se deriva de "ogging", jerga del juego de computadora Netrek , que llegó a significar hacer algo a la fuerza, posiblemente sin considerar el drenaje de recursos futuros. [4] [ verificación fallida ] En sus inicios, los autores pensaron que el proyecto Ogg era algo ambicioso dada la potencia limitada del hardware de PC de la época. Aunque el nombre "Ogg" no está relacionado con el personaje " Nanny Ogg " en las novelas de Mundodisco de Terry Pratchett , "Vorbis" lleva el nombre de otro personaje de Terry Pratchett del libro Small Gods . [9]

Formato de archivo

El formato de flujo de bits "Ogg" , diseñado principalmente por la Fundación Xiph.Org, ha sido desarrollado como el marco de una iniciativa más amplia destinada a producir un conjunto de componentes para la codificación y decodificación de archivos multimedia, que están disponibles de forma gratuita y se pueden reimplementar libremente en software y hardware.

El formato consta de fragmentos de datos, cada uno de los cuales se denomina " página Ogg ". Cada página comienza con los caracteres "OggS" para identificar el archivo como formato Ogg.

Un "número de serie" y un "número de página" en el encabezado de la página identifican cada página como parte de una serie de páginas que forman un flujo de bits . Se pueden multiplexar varios flujos de bits en el archivo, donde las páginas de cada flujo de bits se ordenan según el tiempo de búsqueda de los datos que contienen. Los flujos de bits también se pueden anexar a archivos existentes, un proceso conocido como "encadenamiento", para hacer que los flujos de bits se decodifiquen en secuencia.

Existe una biblioteca con licencia BSD , denominada "libvorbis", disponible para codificar y decodificar datos de transmisiones "Vorbis". Se utilizan implementaciones independientes de Ogg en varios proyectos, como RealPlayer y un conjunto de filtros DirectShow . [10]

Mogg, el "Multi-Track-Single-Logical-Stream Ogg-Vorbis", es el formato de archivo Ogg multicanal o multipista.

Estructura de la página

El siguiente es el diseño del campo de un encabezado de página Ogg:

El diseño del campo de un encabezado de página Ogg
El diseño del campo de un encabezado de página Ogg
Patrón de captura – 32 bits
El patrón de captura o código de sincronización es un número mágico que se utiliza para garantizar la sincronización al analizar archivos Ogg. Cada página comienza con la secuencia de cuatro caracteres ASCII, "OggS". Esto ayuda a resincronizar un analizador en casos en los que se han perdido o dañado datos, y es una comprobación de la integridad antes de comenzar a analizar la estructura de la página.
Versión – 8 bits
Este campo indica la versión del formato de flujo de bits Ogg, para permitir una expansión futura. Actualmente, el valor obligatorio es 0.
Tipo de encabezado: 8 bits
Este es un campo de banderas de 8 bits, que indica el tipo de página que sigue.
Posición de los gránulos – 64 bits
La posición de un gránulo es el marcador de tiempo en los archivos Ogg. Es un valor abstracto cuyo significado lo determina el códec. Puede ser, por ejemplo, un recuento del número de muestras, del número de fotogramas o un esquema más complejo.
Número de serie de flujo de bits: 32 bits
Este campo es un número de serie que identifica una página como perteneciente a un flujo de bits lógico en particular. Cada flujo de bits lógico de un archivo tiene un valor único y este campo permite que las implementaciones envíen las páginas al decodificador apropiado. En un archivo típico de Vorbis y Theora, un flujo es el audio (Vorbis) y el otro es el video (Theora).
Número de secuencia de página: 32 bits
Este campo aumenta de forma monótona para cada flujo de bits lógico. La primera página es 0, la segunda 1, etc. Esto permite que las implementaciones detecten cuándo se han perdido datos.
Suma de comprobación : 32 bits
Este campo proporciona una suma de comprobación CRC32 de los datos de toda la página (incluido el encabezado de la página, calculado con el campo de suma de comprobación establecido en 0). Esto permite verificar que los datos no se hayan dañado desde que se crearon. Las páginas que no superen la suma de comprobación deben descartarse. La suma de comprobación se genera utilizando un valor polinómico de 0x04C11DB7.
Segmentos de página – 8 bits
Este campo indica la cantidad de segmentos que existen en esta página. También indica cuántos bytes hay en la tabla de segmentos que sigue a este campo. Puede haber un máximo de 255 segmentos en cualquier página.
Tabla de segmentos
La tabla de segmentos es una matriz de valores de 8 bits, cada uno de los cuales indica la longitud del segmento correspondiente dentro del cuerpo de la página. La cantidad de segmentos se determina a partir del campo de segmentos de la página anterior. Cada segmento tiene una longitud de entre 0 y 255 bytes.

Los segmentos proporcionan una forma de agrupar segmentos en paquetes, que son unidades de datos significativas para el decodificador. Cuando se indica que la longitud del segmento es 255, esto indica que el segmento siguiente se debe concatenar con este y es parte del mismo paquete. Cuando la longitud del segmento es 0-254, esto indica que este segmento es el segmento final en este paquete. Cuando la longitud de un paquete es un múltiplo de 255, el segmento final tiene una longitud de 0.

Cuando el paquete final continúa en la página siguiente, el valor del segmento final es 255 y el indicador de continuación se establece en la página siguiente para indicar que el inicio de la nueva página es una continuación de la página anterior.

Metadatos

VorbisComment es un formato de metadatos de nivel básico creado inicialmente para su uso con Ogg Vorbis. Desde entonces, se ha adoptado en las especificaciones de encapsulaciones Ogg para otros códecs Xiph.Org, incluidos Theora , Speex , FLAC y Opus . VorbisComment es el mecanismo más simple y con mayor soporte para almacenar metadatos con códecs Xiph.Org. [11]

En particular, [ se necesita atribución ] uno o más METADATA_BLOCK_PICTURE=... en un VorbisComment para miniaturas y carátulas tienen valores codificados en Base64 del FLAC METADATA_BLOCK_PICTURE correspondiente . En otras palabras, FLAC almacena miniaturas y carátulas en bloques binarios, fuera de las etiquetas FLAC en un formato little-endian METADATA_BLOCK_VORBIS_COMMENT . [12] [13]

Otros mecanismos existentes y propuestos son: [14]

Historia

El botón web Play Ogg

El proyecto Ogg comenzó con un paquete de compresión de audio simple como parte de un proyecto más grande en 1993. [9] El software se llamó originalmente Squish, pero debido a una marca registrada existente, se le cambió el nombre a OggSquish . Este nombre se utilizó más tarde para todo el proyecto Ogg. En 1997, Xiphophorus OggSquish fue descrito como "un intento tanto de crear un formato de audio comprimido flexible para aplicaciones de audio modernas como de proporcionar el primer formato de audio que es común en todas y cada una de las plataformas informáticas modernas". [16] En 2000, OggSquish fue mencionado como "un grupo de varios proyectos relacionados de procesamiento de señales y multimedia". En 2000, dos proyectos estaban en desarrollo activo para su lanzamiento planificado: el formato Ogg Vorbis y libvorbis, la implementación de referencia de Vorbis. La investigación también incluyó trabajo sobre la codificación futura de video y audio sin pérdida. [9] [17] [18] [19] [20] En 2001, OggSquish pasó a llamarse Ogg y se lo describió como "el paraguas de un grupo de varios proyectos relacionados con el procesamiento de señales y multimedia". [21] Ogg pasó a representar el formato de archivo , como parte del proyecto multimedia más grande Xiph.org. Squish se convirtió simplemente en el nombre de uno de los códecs Ogg. [9] En 2009, Ogg se describe como "un formato contenedor multimedia y el formato nativo de archivos y transmisiones para los códecs multimedia Xiph.org". [22]

La implementación de referencia Ogg se separó de Vorbis el 2 de septiembre de 2000. [8]

En mayo de 2003, se publicaron dos RFC de Internet relacionadas con el formato. El flujo de bits Ogg se definió en el RFC 3533 (que se clasifica como "informativo") y su tipo de contenido de Internet ( application/ogg) en el RFC 3534 (que es, a partir de 2006 , un protocolo estándar propuesto). En septiembre de 2008, el RFC 3534 quedó obsoleto por el RFC 5334, que agregó los tipos de contenido video/oggy audio/ogglas extensiones de nombre de archivo .ogx, .ogv, .oga, .spx.

Mensaje de bienvenida

En 2002, la falta de compatibilidad formal con vídeo en Ogg dio lugar al desarrollo del formato de archivo OGM , un hack de Ogg que permitía la incrustación de vídeo desde el marco Microsoft DirectShow en un contenedor basado en Ogg. OGM inicialmente sólo era compatible con herramientas de código cerrado exclusivas de Windows, pero posteriormente se abrió el código base. Más tarde, se especificó formalmente la compatibilidad con vídeo (y subtítulos) para Ogg, pero de una manera incompatible con OGM. Independientemente, el formato contenedor Matroska alcanzó la madurez y proporcionó una alternativa para las personas interesadas en combinar audio Vorbis y códecs de vídeo arbitrarios. Como resultado, OGM ya no es compatible ni se desarrolla y Xiph.org lo desaconseja formalmente. [23] Hoy en día, el vídeo en Ogg se encuentra con la extensión de archivo .ogv, que está especificada formalmente y es compatible oficialmente. El software y los códecs que admiten archivos .ogm están disponibles sin cargo. [24]

2006

Aunque Ogg no había alcanzado ni de lejos la ubicuidad de los estándares MPEG [25] (por ejemplo, MP3 / MP4 ), a partir de 2006 , se utilizaba comúnmente para codificar contenido libre (como música libre, multimedia en proyectos de la Fundación Wikimedia y archivos Creative Commons ) y había comenzado a ser compatible con una minoría significativa de reproductores de audio digital . También admitían el formato Ogg muchos motores de videojuegos populares, incluidos Doom 3 , Unreal Tournament 2004 , Halo: Combat Evolved , Jets'n'Guns , Mafia: The City of Lost Heaven , Myst IV: Revelation , StepMania , Serious Sam: The Second Encounter , Lineage 2 , Vendetta Online , Battlefield 2 y los motores de Grand Theft Auto , así como los archivos de audio del juego basado en Java , Minecraft . El códec Vorbis más popular tenía soporte integrado en muchos reproductores de software, y había extensiones disponibles para casi todos los demás.

2007

El 16 de mayo de 2007, la Free Software Foundation inició una campaña para aumentar el uso de Vorbis "como una alternativa de audio ética, legal y técnicamente superior al formato propietario MP3". [26] También se animó a la gente a apoyar la campaña añadiendo un botón web a su sitio web o blog . Para aquellos que no querían descargar y utilizar el reproductor Ogg sugerido por la FSF ( VLC ), la Fundación Xiph.Org tenía un códec oficial [27] para aplicaciones basadas en QuickTime en Windows y Mac OS X , como reproductores iTunes y aplicaciones iMovie ; y los usuarios de Windows podían instalar un códec Ogg de Windows Media Player . [28]

2009

Para el 30 de junio de 2009, el contenedor Ogg, a través del uso de Theora y Vorbis, era el único formato de contenedor incluido en la implementación de HTML5 y sus elementos del navegador web Firefox 3.5 . [29] [30] Esto estaba de acuerdo con la recomendación original delineada, pero luego eliminada, del borrador de especificación HTML5 (ver Controversia Ogg ). <video><audio>

2010

El 3 de marzo de 2010, un análisis técnico realizado por un desarrollador de FFmpeg criticó las capacidades de propósito general de Ogg como formato contenedor multimedia. [31] El autor de Ogg respondió posteriormente a estas afirmaciones en un artículo propio. [32]

Códecs Ogg

Ogg es solo un formato contenedor. El audio o el vídeo codificado por un códec se almacena dentro de un contenedor Ogg. Los contenedores Ogg pueden contener transmisiones codificadas con varios códecs; por ejemplo, un archivo de vídeo con sonido contiene datos codificados tanto por un códec de audio como por un códec de vídeo.

Al ser un formato contenedor, Ogg puede incrustar audio y video en varios formatos [33] [34] (como Dirac , MNG , CELT , MPEG-4 , MP3 y otros), pero Ogg fue pensado para ser usado, y usualmente lo es, con los siguientes codecs libres de Xiph.org :

Tipos de medios

Los medios de audio Ogg están registrados como un tipo de medio IANA con extensiones de archivo , y . Es un subconjunto adecuado del tipo de medio de video Ogg con extensión de archivo . Otras aplicaciones Ogg utilizan el tipo de medio con extensión de archivo ; este es un superconjunto de . [34] El tipo de medio Opus con extensión de archivo se registró más tarde en RFC 7587 y 7845 . audio/ogg.oga.ogg.spxvideo/ogg.ogvapplication/ogg.ogxvideo/oggaudio/opus.opus

Véase también

Referencias

  1. ^ Formato de archivo Ogg (borrador completo). Sustentabilidad de los formatos digitales. Washington, DC: Biblioteca del Congreso. 19 de febrero de 2008. Archivado desde el original el 8 de octubre de 2021. Consultado el 1 de diciembre de 2021 .
  2. ^ "Variante de muestra de la licencia BSD para Xiph.Org". Fundación Xiph.Org. Archivado desde el original el 11 de abril de 2020. Consultado el 29 de agosto de 2009 .
  3. ^ "Vorbis.com: FAQ". Archivado desde el original el 1 de octubre de 2005. Consultado el 28 de mayo de 2010 .
  4. ^ ab "Ogging 101". Archivado desde el original el 25 de diciembre de 2017. Consultado el 6 de noviembre de 2016. 3.3 Ogging: Es el arte de matar a un portador, o a un portador potencial, mediante una carrera suicida.
  5. ^ "Tipos MIME y extensiones de archivo". XiphWiki . 2007-09-07. Archivado desde el original el 2018-11-17 . Consultado el 2007-09-10 .
  6. ^ Giles, Ralph (7 de noviembre de 2017). «lanzamiento de libogg 1.3.3». ogg-dev (Lista de correo). Archivado desde el original el 4 de abril de 2018. Consultado el 14 de enero de 2019 .
  7. ^ Giles, Ralph (5 de enero de 2008). "r14372 - en trunk/theora: . lib/dec lib/enc". xiph-commits (Lista de correo). Archivado desde el original el 3 de octubre de 2020. Consultado el 14 de enero de 2019. Esta biblioteca nunca se publicó y ahora parece que necesita un rediseño.
  8. ^ de Xiph.Org (19 de julio de 2002) Lanzamientos de Ogg - libogg-1.0.tar.gz - CAMBIOS Archivado el 14 de junio de 2017 en Wayback Machine . Consultado el 1 de septiembre de 2009.
  9. ^ abcd "Xiph.org: naming". Fundación Xiph.org. 7 de enero de 2006. Archivado desde el original el 27 de febrero de 2012. Consultado el 2 de septiembre de 2009 .
  10. ^ "Filtros DirectShow para Ogg Vorbis". Archivado desde el original el 8 de febrero de 2015. Consultado el 14 de febrero de 2015 .
  11. ^ "VorbisComment". 26 de abril de 2016. Archivado desde el original el 23 de octubre de 2018. Consultado el 23 de octubre de 2018 .
  12. ^ "METADATA_BLOCK_PICTURE". códec de audio sin pérdida y sin formato flac . Xiph.Org . 2014. Archivado desde el original el 27 de marzo de 2017. Consultado el 3 de diciembre de 2019 .
  13. ^ "Especificación del formato Ogg Vorbis I: campo de comentario y especificación de encabezado". Xiph.Org . 2005. Archivado desde el original el 2019-12-03 . Consultado el 2019-12-03 .
  14. ^ "Metadatos". Fundación xiph.org . 24 de julio de 2013. Archivado desde el original el 23 de octubre de 2018. Consultado el 23 de octubre de 2018 .
  15. ^ "Ogg Skeleton 4". Xiph.Org . 2012. Archivado desde el original el 13 de agosto de 2019. Consultado el 3 de diciembre de 2019 .
  16. ^ Montgomery, Christopher (1997). «Ogg 98.9». Compañía Xiphophorus. Archivado desde el original el 24 de abril de 2016. Consultado el 2 de septiembre de 2009 .
  17. ^ Xiph.org (18 de enero de 2000). «Documentación del formato de codificación OggSquish Vorbis». Archivado desde el original el 18 de enero de 2000. Consultado el 2 de septiembre de 2008 .
  18. ^ Xiph.org (18 de enero de 2000). «OggSquish logical and physical bitstream overview» (Descripción general del flujo de bits lógico y físico de OggSquish). Archivado desde el original el 18 de enero de 2000. Consultado el 2 de septiembre de 2008 .
  19. ^ de la empresa Xiphophorus (5 de abril de 2001). «La página de inicio del proyecto Ogg». Archivado desde el original el 5 de abril de 2001. Consultado el 2 de septiembre de 2009 .
  20. ^ Xiph.org (4 de diciembre de 2001). «La página de inicio del proyecto Ogg». Archivado desde el original el 4 de diciembre de 2001. Consultado el 2 de septiembre de 2008 .
  21. ^ Compañía Xiphophorus (4 de diciembre de 2001). «La página de inicio del proyecto Ogg». Archivado desde el original el 4 de diciembre de 2001. Consultado el 2 de septiembre de 2009 .
  22. ^ "El formato contenedor Ogg". Fundación Xiph.Org. 7 de enero de 2006. Archivado desde el original el 20 de mayo de 2000. Consultado el 2 de septiembre de 2009 .
  23. ^ "OGM no es Ogg. Xiph.org no es compatible con OGM". Copia de seguridad en WayBack Machine. 7 de julio de 2004. Archivado desde el original el 17 de marzo de 2012.{{cite web}}: CS1 maint: URL no apta ( enlace )
  24. ^ "K-Lite Codec Pack: Comparación de capacidades y formatos de archivo compatibles". Guía de códecs . Archivado desde el original el 16 de marzo de 2018. Consultado el 16 de marzo de 2018 .
  25. ^ Hansen, Evan (23 de febrero de 2007). "La pérdida del MP3, la ganancia del código abierto" . Wired . Archivado desde el original el 5 de junio de 2010 . Consultado el 4 de marzo de 2010 .
  26. ^ Lee, Matt (16 de mayo de 2007). «'Play Ogg': FSF lanza una campaña de formatos de audio libres». Free Software Foundation. Archivado desde el original el 8 de junio de 2011. Consultado el 4 de marzo de 2010 .
  27. ^ "Foundation: Ogg QuickTime Components for iTunes and iMovie (Windows and Mac OS X)". Xiph.org. Archivado desde el original el 26 de octubre de 2008. Consultado el 4 de marzo de 2010 .
  28. ^ "Filtros Directshow para Ogg Vorbis, Speex, Theora y FLAC". Xiph.org. 22 de febrero de 2010. Archivado desde el original el 24 de enero de 2013. Consultado el 4 de marzo de 2010 .
  29. ^ "Mozilla Developer Center - HTML - Element - Video". Septiembre de 2009. Archivado desde el original el 27 de junio de 2010. Consultado el 28 de diciembre de 2009 .
  30. ^ "Mozilla Developer Center - HTML - Element - Audio". Septiembre de 2009. Archivado desde el original el 27 de junio de 2010. Consultado el 28 de diciembre de 2009 .
  31. ^ Rullgard, Mans (3 de marzo de 2010). "Objeciones a Ogg". hardwarebug.org. Archivado desde el original el 9 de mayo de 2010. Consultado el 2 de mayo de 2010 .
  32. ^ Montgomery, Christopher (27 de abril de 2010). "Monty: en defensa del buen nombre de Ogg". people.xiph.org/~xiphmont. Archivado desde el original el 29 de abril de 2010. Consultado el 2 de mayo de 2010 .
  33. ^ "Tipos MIME y extensiones de archivo". XiphWiki. 4 de octubre de 2009. Archivado desde el original el 17 de noviembre de 2018. Consultado el 24 de octubre de 2009 .
  34. ^ ab I. Goncalves; S. Pfeiffer; C. Montgomery (2008). Tipos de medios Ogg. sec. 10. doi : 10.17487/RFC5334 . RFC 5334.
  35. ^ "OggPCM". XiphWiki. 25 de mayo de 2020. Archivado desde el original el 3 de octubre de 2020. Consultado el 25 de mayo de 2020 .
  36. ^ Ralph Giles (19 de diciembre de 2000) vorbis-dev - ¿Códec de vídeo Tarkin? Archivado el 24 de enero de 2018 en Wayback Machine , lista de correo vorbis-dev de Xiph.org. Consultado el 6 de septiembre de 2009.
  37. ^ Jack Moffitt (3 de enero de 2001) vorbis-dev - Tarkin por fin Archivado el 30 de septiembre de 2014 en Wayback Machine , lista de correo vorbis-dev de Xiph.org. Consultado el 6 de septiembre de 2009.
  38. ^ Chris Montgomery (11 de febrero de 2001) Lista de correo para desarrolladores de Tarkin Archivado el 30 de septiembre de 2014 en Wayback Machine , consultado el 6 de septiembre de 2009
  39. ^ Michael Smith (29 de agosto de 2005) Tarkin Archivado el 3 de marzo de 2016 en Wayback Machine . Consultado el 6 de septiembre de 2009.
  40. ^ Especificación de Dirac: integración de vídeo codificado con Dirac en formatos de contenedor de uso común Archivado el 14 de junio de 2010 en Wayback Machine. Recuperado el 5 de julio de 2009.
  41. ^ "OggKate". wiki.xiph.org . 2017. Archivado desde el original el 18 de julio de 2011 . Consultado el 3 de diciembre de 2019 .

Enlaces externos