Windows Media Video, o WMV, es un codec de compresión de video desarrollado por Microsoft Corporation para
gestionar contenidos de video y aplicaciones de streaming por Internet en ordenadores personales. Cabe
aclarar que típicamente puede referirse a un códec de video y a un archivo contenedor, sin embargo, aquí estaremos hablando del codec.
En 2003, Microsoft redactó una especificación de compresión de video basada en su formato WMV 9 y la envió a
SMPTE para su estandarización. El estándar fue aprobado oficialmente en marzo de 2006 como SMPTE 421M, más
conocido como VC-1 , lo que convierte al formato WMV 9 en un estándar abierto. VC-1 se convirtió en uno de
los tres formatos de video para el disco de video Blu-ray , junto con H.262 / MPEG-2 Part 2 y H.264 / MPEG-4
AVC.
WMV sigue el estándar VC-1 que consiste principalmente en los siguientes pasos:
Cuando VC-1 codifica una imagen, divide la imagen en macrobloques. Cada macrobloque de 16x16 se compone de 6
bloques de muestra de 8x8 (4 bloques Y, 1 bloque U y 1 bloque V). Además, el método de codificación puede
dividir un bloque individual de 8x8 en 2 bloques de 8x4, 2 bloques de 4x8 o 4 bloques de 4x4.
Se utiliza la Transformada discreta del coseno para convertir bloques de muestras en un dominio de
transformación para facilitar una codificación más eficiente. La transformación puede funcionar en el bloque
completo de 8x8 o en cualquiera de los 3 tamaños de subbloque admitidos (8x4, 4x8 o 4x4). A diferencia de
muchos estándares de códec que preceden a VC-1, la especificación define un método de transformación con
precisión de bit al que se espera que todas las implementaciones se ajusten para minimizar el error de
transformación.
La cuantificación es el paso de compresión que potencialmente pierde la mayor cantidad de información en un
esquema de compresión con pérdida como VC-1. Este códec (a diferencia de muchos otros) define una forma
directa de escalar los coeficientes mediante el parámetro de cuantificación en lugar de especificar matrices
de cuantificación.
Permite reducir de manera eficiente la redundancia temporal en secuencias de video. Este proceso consiste en tres pasos:
El principio básico es utilizar un código de longitud variable, asignando las palabras de código de menor longitud a los niveles de gris más probables. Para esto se genera un árbol de codificación Huffman mediante los siguientes pasos:
Uno de los principales tipos de codificación de entropía crea y asigna un código único sin prefijo a cada
símbolo único que aparece en la entrada. De esta manera, luego comprimen los datos reemplazando cada símbolo
de entrada de longitud fija con la correspondiente palabra clave de salida sin prefijo de longitud variable.
La longitud de cada palabra de código es aproximadamente proporcional al logaritmo negativo de la
probabilidad de aparición de esa palabra de código. Por lo tanto, los símbolos más comunes usan los códigos
más cortos.