Sistemas operativos modernos

Estos algoritmos tienen ciertas asimetrías que es importante entender. En primer lugar, en muchas aplicaciones, un documento multimedia (digamos, una película) sólo se codificará una vez (cuando se almacene en el servidor multimedia) pero se decodificará miles de veces (cuan­ do lo vean los clientes). Esta asimetría implica que es aceptable que el algoritmo de codificación sea lento y requiera hardware costoso a condición de que el algoritmo de decodificación sea rá­ pido y no requiera hardware costoso. Por otra parte, para la multimedia en tiempo real, como las videoconferencias, no es aceptable una codificación lenta, pues debe realizarse sobre la marcha, en tiempo real. Una segunda asimetría es que puede no ser invertible el proceso de codificar/decodificar. Al comprimir un archivo de datos normal, transmitirlo y luego descomprimirlo, el usuario espera obtener otra vez el original, idéntico hasta el último bit. En el caso de los archivos multimedia, no hay tal requisito; por lo regular es aceptable que después de la codificación y la decodifi­ cación la señal de vídeo sea un poco distinta de la original. Cuando la salida decodificada no es exactamente igual a la entrada original, se dice que el sistema tiene pérdidas (lossy). Todos los sistemas de compresión empleados con multimedia tienen pérdidas porque ello produce una ma­ yor compresión. 7,3.1 El estándar JPEG El estándar JPEG (Grupo Unido de Expertos en Fotografía; Joint Photographic Experts Group) para comprimir imágenes fijas de tonos continuos (como fotografías) fue desarrollado por expertos en fotografía que trabajaron bajo los auspicios conjuntos de ITU, ISO e lEC, otro organismo de normas. Es importante para la multimedia porque, hasta una primera aproxima­ ción, el estándar de multimedia para imágenes animadas, MPEG, no es más que la codifi­ cación JPEG de cada cuadro por separado, más algunas funciones adicionales para compresión entre cuadros y compensación de movimiento. JPEG está definido en la Norma Internacional 10918. Tiene cuatro modos y muchas opciones, pero sólo nos ocuparemos de la forma en que se usa con vídeo RGB de 24 bits y omitiremos muchos de los detalles. El primer paso para codificar una imagen con JPEG es la preparación de bloques. Para ma­ nejar cifras específicas, supongamos que la entrada que recibe JPEG es una imagen RGB de 640 X480 con 24 bits/píxel, como se muestra en la figura 7-6a. Puesto que el uso de luminan- cia y crominancia produce una mejor compresión, se calcula la señal de luminancia y dos se­ ñales de crominancia a partir de los valores RGB. En el caso de NTSC, éstas se denominan Y , l y Q , respectivamente. En el caso de PAL, se llaman Y , Uy V , respectivamente, y las fórmu­ las son diferentes. Aquí usaremos los nombres NTSC, pero el algoritmo de compresión es el mismo. Se construyen matrices individuales para Y, I y Q, cada una con elementos dentro del in­ tervalo de Oa 255. Luego, se promedian bloques cuadrados de cuatro píxeles en las matrices I y Q con el fin de reducir esas señales a 320 x 240. Esta reducción tiene pérdidas, pero el ojo casi no lo nota porque responde a la luminancia más que a la crominancia. Sin embargo, esto comprime los datos en un factor de 2. Ahora se resta 128 a cada elemento de las tres matrices para que el Oquede a la mitad del intervalo. Por úldmo, cada matriz se divide en bloques de

RkJQdWJsaXNoZXIy MjI4NDcx