tag controles bootstrap attribute video audio codec psychoacoustics

controles - ¿Dónde empezar a aprender sobre códecs de audio o video?



video tag preload attribute (4)

Estoy muy confundido de saber qué sucede dentro de los códecs. Quiero aprender sobre los elementos dentro de los codificadores y decodificadores de audio. Sería muy feliz si me puede proporcionar algunos enlaces donde puedo encontrar un buen material de estudio. Gracias

precisamente me gustaría saber cómo el códec analiza el archivo multimedia.



Aprendí bastante sobre el formato MPEG4 trabajando en un decodificador MPEG4. Existen muchos codificadores y decodificadores de referencia (e implementaciones de código abierto) disponibles tanto para video como para audio. Por lo tanto, haga clic en los libros, comenzando con Wikipedia: tiene buenos resúmenes generales y enlaces a seguir (si tiene suerte de "abrir especificaciones"). Y luego golpea la fuente.

Hay tantas formas diferentes de codificar algo (muchas involucran algún tipo de compresión, ya sea con pérdida o sin pérdida, también) y todo el problema generalmente se complica aún más al tener que lidiar con el contenedor de encuadre y los "subformatos".

Que te diviertas.

  • Dirac: http://diracvideo.org/specifications/
  • MPEG-4: http://en.wikipedia.org/wiki/MPEG-4
  • JPEG: http://jpeg.org/public/jfif.pdf

Su título pregunta acerca de la compresión A / V, pero el resto de sus comentarios se refiere al análisis del archivo multimedia y la identificación de su códec. Esas son tareas muy diferentes: especificadas e implementadas por diferentes organizaciones, realizadas por diferentes API en la mayoría de las bibliotecas multimedia y, sobre todo, que requieren conjuntos de habilidades muy diferentes.

Los formatos de archivo A / V no son muy diferentes de cualquier otro formato de archivo, que a su vez son solo gramáticas formales . El análisis, la validación y los gráficos de objeto resultantes no son conceptualmente diferentes de cualquier otra gramática, y en la práctica, tienden a ser mucho más simples que las gramáticas que se encuentran en un currículo estándar de CS (compiladores, autómatas finitos). El formato de archivo AVI es anticuado en este punto, pero aún así recomiendo comenzar allí porque:

  • muchos de los formatos más complejos de la actualidad se parecen a AVI en su totalidad o en parte, o como mínimo suponen que está familiarizado con sus estructuras básicas
  • AVI es miembro de una familia más grande de formatos multimedia conocida como RIFF, que encontrará utilizada en muchos otros lugares , como WAV.

Los códecs, por su parte, son algunos de los algoritmos más complejos que es probable que encuentres entre el software "consumidor". Se basan en gran medida en los avances tanto en la comunidad académica como en los brazos de I + D de las grandes corporaciones (incluidas sus vastas bibliotecas de patentes). Para dominar los códecs, debes conocer al menos los conceptos básicos de:

Si ya tienes un historial decente (por ejemplo, has tomado uno o dos niveles de "matemáticas para ingenieros" de nivel de pregrado), entonces te digo que entres bien. Muchos de los mejores códecs A / V son de código abierto:

  • x264 (MPEG-4 parte 10, también conocido como AVC)
  • LAME (MPEG-1 layer 3, aka mp3)
  • Xvid (MPEG-4 parte 2, lo mismo que Divx y muchos otros)
  • Vorbis (códec de audio alternativo, libre de patentes)
  • Dirac (códec de video alternativo sin patente basado en una transformación de wavelet)

En general, la compresión de video se refiere a tirar tanta información como sea posible a la vez que tiene un efecto mínimo en la experiencia de visualización para un usuario final. Por ejemplo, el uso de YUV submuestreado en lugar de RGB reduce el tamaño de video a la mitad directamente. Esto es posible ya que el ojo humano es menos sensible al color que al brillo. En YUV, el valor Y es el brillo, y los valores U y V representan el color. Por lo tanto, puede descartar parte de la información de color que reduce el tamaño del archivo, sin que el espectador note ninguna diferencia.

Después de eso, la mayoría de las técnicas de compresión aprovechan 2 redundancias en particular. El primero es la redundancia temporal y el segundo es la redundancia espacial .

La redundancia temporal observa que los cuadros sucesivos en una secuencia de video son muy similares. Normalmente, un video sería del orden de 20-30 fotogramas por segundo, y nada cambia en 1/30 de segundo. Tome cualquier DVD y deténgalo, muévalo en un cuadro y observe lo similares que son las 2 imágenes. Entonces, en lugar de codificar cada fotograma independientemente, MPEG-4 (y otros estándares de compresión) solo codifican la diferencia entre fotogramas sucesivos (usando la estimación de movimiento para encontrar la diferencia entre fotogramas)

La redundancia espacial aprovecha el hecho de que, en general, el color que se extiende a través de las imágenes tiende a ser de baja frecuencia. Con esto quiero decir que los píxeles vecinos tienden a tener colores similares. Por ejemplo, en una imagen tuya con un jumper rojo, todos los píxeles que representan tu jumper tendrán un color muy similar. Es posible utilizar el DCT para transformar los valores de píxel en el espacio de frecuencia, donde se puede descartar cierta información de baja frecuencia. Luego, cuando se realiza la DCT inversa (durante la decodificación), la imagen ahora está sin la información de baja frecuencia desechada.

Para ver los efectos de tirar esta información, abra MS paint y dibuje una serie de líneas negras horizontales y verticales superpuestas. Guarde la imagen como JPEG (que también usa DCT para la compresión). Ahora amplíe el patrón, observe cómo los bordes de las líneas ya no son tan nítidos y están un poco borrosos. Esto se debe a que parte de la información (la transición de negro a blanco) se descartó durante la compresión. Lee esto para una explicación con buenas fotos

Para leer más, este libro es bastante bueno, aunque un poco pesado en matemáticas.