MXPA99005590A - Compresores paralelos para recompresion de datos de pixeles intercalados adentro de un descodificador mpeg - Google Patents
Compresores paralelos para recompresion de datos de pixeles intercalados adentro de un descodificador mpegInfo
- Publication number
- MXPA99005590A MXPA99005590A MXPA/A/1999/005590A MX9905590A MXPA99005590A MX PA99005590 A MXPA99005590 A MX PA99005590A MX 9905590 A MX9905590 A MX 9905590A MX PA99005590 A MXPA99005590 A MX PA99005590A
- Authority
- MX
- Mexico
- Prior art keywords
- data
- pixel
- mpeg
- interleaved
- pixels
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 101
- 238000003860 storage Methods 0.000 claims abstract description 8
- 230000000007 visual effect Effects 0.000 claims description 53
- 238000000034 method Methods 0.000 claims description 43
- 238000009795 derivation Methods 0.000 claims 2
- 238000000926 separation method Methods 0.000 claims 1
- 238000007906 compression Methods 0.000 description 52
- 238000006243 chemical reaction Methods 0.000 description 49
- 238000005070 sampling Methods 0.000 description 32
- UIIMBOGNXHQVGW-UHFFFAOYSA-M buffer Substances [Na+].OC([O-])=O UIIMBOGNXHQVGW-UHFFFAOYSA-M 0.000 description 20
- 241001442055 Vipera berus Species 0.000 description 15
- 230000001934 delay Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 8
- 230000000875 corresponding Effects 0.000 description 7
- 238000009830 intercalation Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000002687 intercalation Effects 0.000 description 5
- 235000021171 collation Nutrition 0.000 description 4
- 230000003111 delayed Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000001131 transforming Effects 0.000 description 4
- 230000032258 transport Effects 0.000 description 4
- 230000001174 ascending Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 230000003044 adaptive Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000011068 load Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000737 periodic Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001360 synchronised Effects 0.000 description 2
- COVKSLBAQCJQMS-UHFFFAOYSA-N 1-chloro-4-[(4-chlorophenoxy)methoxy]benzene Chemical compound C1=CC(Cl)=CC=C1OCOC1=CC=C(Cl)C=C1 COVKSLBAQCJQMS-UHFFFAOYSA-N 0.000 description 1
- 241000282941 Rangifer tarandus Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002457 bidirectional Effects 0.000 description 1
- 230000003139 buffering Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003750 conditioning Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000001808 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001066 destructive Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000000051 modifying Effects 0.000 description 1
- 101710031899 moon Proteins 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive Effects 0.000 description 1
- 230000001105 regulatory Effects 0.000 description 1
- 230000001340 slower Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000002194 synthesizing Effects 0.000 description 1
- 230000001702 transmitter Effects 0.000 description 1
Abstract
Un decodificador (14, 18, 22) MPEG en un receptor de televisión de alta definición descodifica y descomprime datos codificados por MPEG, para producir bloques de pixeles de imagen descomprimidos, e incluye una red (90...) de compensación de movimiento acoplada a una memoria (60) de marco, para producir datos de pixeles finalmente descodificados para despliegue visual. Los datos MPEg descomprimidos se recomprimen mediante recompresores (40, 42) paralelos plurales, antes del almacenamiento en la memoria de marco. Cada recompresor recibe un flujo de datos (24, 27), Figura 5) de pixeles intercalados, y predice y comprime valores (a, c) de pixeles intercalados durante cada ciclo de reloj, respectivamente (Figuras 20, 27). Uno de los recompresores (42) se desenergiza en un modo de procesamiento de datos reducidos cuando se submuestrean (36, 38) los datos de pixeles antes de la recompresión. Los datos submuestreados se reordenan (43) antes de la recompresión. Múltiples descompresores (80, 82, 84) paralelos acoplados a la memoria de marco proporcionan datos de pixeles a la red de procesamiento de movimiento. Una unidad (356, 360, 364, Figura 23) de control asegura un flujo de datos intercalados ininterrumpido a los descompresores mediante la repetición de losúltimos datos válidos cuando se interrumpieron los datos de origen.
Description
COMPRESORES PARALELOS PARA RECOMPRESION DE DATOS DE PIXELES INTERCALADOS ADENTRO DE UN DESCODIFICADOR MPEG
Campo de la Invención Esta invención está relacionada con el procesamiento de información que representa imágenes digitales.
Antecedentes de la Invención Los rápidos avances en la tecnología digital han producido avances correspondientes en el procesamiento de señales de imágenes digitales en diferentes campos, tales como la televisión de alta definición (HDTV, por sus siglas en inglés) . El estándar de compresión de señales del MPEG (siglas en inglés para Grupo de Expertos de Imágenes en Movimiento) para el procesamiento de video MPEG-2 (Estándar Internacional ISO/IEC 13818-2, 20 de enero de 1995) es un desarrollo relacionado. Se ha encontrado que este estándar de procesamiento de imágenes ampliamente aceptado es particularmente atractivo para usarse con sistemas de transmisión por satélite, cable y terrestres, incluyendo la televisión de alta definición. Un sistema de transmisión terrestre de televisión de alta definición digital, que se adoptó recientemente como el sistema Grand Alliance HDTV en los Estados Unidos de Norteamérica, define un estándar de transmisión digital de material de programas de alta definición (HD) , que han sido datos comprimidos usando el estándar de compresión MPEG-2. En 1994 Proceedings of the National Association of Broadcasters, 48th Annual Broadcast Engineering Conference Proceeding, marzo 20-24, 1994, por ejemplo, se encuentra una descripción del sistema Grand Alliance HDTV. El estándar de transmisión de alta definición permite luna resolución de imagen de hasta 1920 pixeles (elementos de imagen) por línea (horizontalmente) por 1080 líneas (verticalmente) . El estándar MPEG-2 define los procedimientos que se requieren para descomprimir la imagen de alta definición, para reproducción mediante un dispositivo de despliegue visual, tal como en un receptor de televisión. Un descodificador MPEG requiere aproximadamente 80 Megabits (Mb) de memoria para descodificar apropiadamente una imagen de alta definición, como se define en el estándar de transmisión terrestre. En un receptor del consumidor se requerirían aproximadamente 96 Megabits de memoria. En un descodificador de señal de video MPEG, tal como se podría encontrar en un receptor de señal de televisión, típicamente se necesita más de un marco de imagen de memoria para descodificar un flujo de datos digitales codificados MPEG, que representa marcos de imagen I, P y B como se conocen. Se necesitan dos marcos de memoria para almacenar datos de marco I o P de referencia, y se usa un marco adicional de memoria para almacenar datos de marco B.
Un descodificador MPEG incluye un ciclo DPCM asociado con una función de compensación de movimiento, para producir finalmente muestras de pixel descodificadas, como se conocen. Como se describe en la Patente de los Estados Unidos de Norteamérica copendiente Número 5847762 emitida el 08 de diciembre de 1998, se modifica convenientemente el ciclo DCPM mediante la incorporación de una red de compresión de datos. Esta red de compresión vuelve a comprimir los datos MPEG descomprimidos, antes de ser transportados a una memoria de marco, reduciendo mediante lo mismo los requerimientos de memoria del descodificador MPEG. El ciclo DPCM se configura de tal manera que el valor de un pixel que se va a comprimir dependa de los resultados de un circuito de predicción que evalúa los pixeles a la izquierda inmediata, directamente arriba, y diagonalmente a la izquierda superior del pixel que se está procesando. La operación de predicción es una operación en serie computacionalmente intensiva en tiempo real . La operación de predicción es importante puesto que está envuelto el valor de más de un pixel, y debido a que una buena compresión requiere una predicción exacta en lugar de una "suposición" sobre el valor de un pixel.
Compendio de la Invención De conformidad con los principios de la presente invención, un sistema compatible con MPEG para procesar un flujo de datos de información de imagen codificada en MPEG incluye múltiples compresores para recomprimir los datos descodificados en MPEG descomprimidos. Los datos recomprimidos desde los múltiples recompresores se almacenan en la memoria.
Breve Descripción de los Dibujos La Figura 1 es un diagrama en bloques de una porción de un receptor de señales de televisión que emplea un descodificador MPEG, y las redes de procesamiento de señales digitales asociadas configuradas de conformidad con los principios de la presente invención. Las Figuras 2-17 ilustran formatos de procesamiento por bloques de pixeles, que son de ayuda para entender la operación de la compresión/descompresión y las redes asociadas que se muestran en la Figura 1. La Figura 18 ilustra submuestreo y muestreo ascendente de pixeles. La Figura 19 es un diagrama en bloques del aparato para realizar los procesos que se ilustran en la Figura 18. La Figura 20 muestra detalles de una red de compresión de la Figura 1. La Figura 21 muestra detalles de una red de descompresión de la Figura 1. La Figura 22 ilustra una configuración de pixeles que es de ayuda para entender los aspectos de la operación de la red que se muestra en la Figura 20. Las Figuras 23-26 ilustra una operación de control de flujo de datos para el sistema de la Figura 1. La Figura 27 es una tabla que ilustra las relaciones de los pixeles durante la operación de la red que se muestra en la Figura 20. La Figura 28 ilustra una configuración alternativa de la red que se muestra en la Figura 23.
Descripción Detallada de las Modalidades Preferidas En una modalidad descrita de la invención, un descodificador MPEG en un receptor de televisión emplea reducción de datos, incluyendo recompresión, entre la memoria de marco del descodificador y el descodificador, desde donde se deriva la información de imagen que se va a desplegar visualmente. El sistema usa procesamiento por entubamiento en consideración de los requerimientos de cronometraje del procesador de predicción, en donde se deben hacer disponibles tres valores de pixeles (elementos de imagen) para predecir el valor de un cuarto pixel dado. Sin embargo, el procesamiento por entubamiento hace lento el procesamiento (reduce la amplitud de banda) . Este problema se resuelve mediante la intercalación de datos de pixeles de bloques de pixeles de 8x8 independientes que se suministran desde el descompresor MPEG. La intercalación incrementa la velocidad del procesamiento puesto que ésta permite que se procesen los datos en cronómetros alternados, de tal manera que siempre se esté generando un valor de pixel comprimido. La función de recompresión usa un número reducido de operaciones de compresión, y exhibe la operación intercalada con funciones compartidas para conservar el área del circuito integrado. La Figura 1 ilustra una porción de un procesador de señales de video digitales tal como el que se puede encontrar en un receptor de televisión para procesar una señal de video de entrada de alta definición. El procesador de video incluye funciones que se encuentran en un descodificador MPEG convencional. Por ejemplo, Ang y colaboradores en "Video Compression Makes Big Gains", IEEE Spectrum, octubre de 1991, se describen un codificador y un descodificador MPEG. Estas funciones típicamente incluyen introducción en memoria intermedia de entrada, descodificación de longitud variable, cuantificación inversa, y transformación DCT inversa antes del procesamiento de compensación de movimiento asociado que produce muestras de salida finalmente descodificadas. En Weiss, Issues in Advanced Televisión Technology (Focal Press, Boston, USA) se encuentra información adicional respecto a estas funciones de procesamiento de señales de video y funciones relacionadas . El sistema de la Figura 1 recibe un flujo de datos controlado de datos comprimidos codificados por MPEG desde una fuente representada por la unidad 10, que incluye un descodificador de transporte que separa los paquetes de datos después de la desmodulación de las señales de entrada. En este ejemplo, el flujo de datos de entrada recibido representa material de imagen de alta definición (1920 pixeles/línea horizontal x 1088 líneas horizontales) , como se especifica en la especificación de Grand Alliance para el sistema de transmisión de televisión terrestre de alta definición de los Estados Unidos de Norteamérica. La velocidad de datos de la información de alta definición de 1920 x 1088 es de 94,003,200 bytes/segundo, determinada como sigue: (1920 H x 1088V x 30F x (8+4)YC) / B, en donde H representa pixeles horizontales, V representa líneas verticales, F representa marcos/segundo, YC representa bits de (luminancia + crominancia) , y B representa 8 bits/byte. En la práctica, el flujo de datos MPEG comprimidos se proporciona mediante la barra 55 colectora de memoria interna, y una interfase de datos comprimidos incluida en la unidad 128, que recibe los datos desde la barra 114 colectora de control, bajo el control del microprocesador 120. El microprocesador 120 recibe el flujo de datos MPEG mediante una entrada de datos comprimidos . El flujo de datos de entrada desde la fuente 10 está en la forma de bloques de datos que representan 8x8 pixeles . Estos datos representan información intramarco e intermarco comprimida, codificada. La información intramarco comprende marcos de sujeción de marco en L. La información intermarco comprende información de imagen residual codificada por movimiento de predicción, que representa la diferencia de imagen entre marcos de imagen adyacentes. La codificación por movimiento de intermarco envuelve la generación de vectores de movimiento que representan el desfasamiento entre un bloque actual que se está procesando y un bloque en una imagen reconstruida anterior. Se codifica y transmite el vector de movimiento que representa el mejor acoplamiento entre los bloques actual y anterior. Además, la diferencia (residuo) entre cada bloque de 8 x 8 compensado por movimiento y el bloque reconstruido anterior se transforma por DCT, se cuantifica y se codifica por longitud variable antes de ser transmitido. Este proceso de codificación compensada por movimiento se describe con mayor detalle en diferentes publicaciones, incluyendo el texto de Weiss y el artículo de Ang y colaboradores mencionado anteriormente. El descodificador MPEG exhibe un requerimiento de memoria reducido que permite una reducción significativa en la cantidad de memoria de marco externa. Como se explicará subsecuentemente, esto se consigue por medio de recomprimir los marcos de video descomprimidos que se van a almacenar en la memoria, y por medio de filtrar horizontalmente de manera selectiva y convertir a décimos (es decir, submuestrear o muestrear descendentemente) los datos de pixeles adentro del ciclo del descodificador, dependiendo del modo de operación del descodificador. Por ejemplo, en un modo el sistema proporciona compresión de marco de fijación. En otro modo el sistema proporciona compresión después de la reducción de detalle horizontal, por medio de filtración de paso bajo y muestreo descendente. Los bloques de datos de pixeles comprimidos de entrada se introducen en memoria intermedia mediante la unidad 12, antes de ser descodificados por longitud variable mediante la unidad 14 , lo cual también produce vectores de movimiento MV como se conoce. La memoria 12 intermedia exhibe una capacidad de almacenamiento de 1.75 Mbits en el caso de un flujo de datos MPEG de perfil principal, de nivel principal. Los bloques de datos comprimidos descodificados se sacan de la unidad 14 por medio de un multiplexor (Mux) 15, que produce flujos Pl y P2 de datos de salida. Las salidas Pl y P2 representan entubamientos de datos dobles a los que se hará referencia de aquí en adelante como tubo 1 (Pl) y tubo 2 (P2) . El tubo Pl contiene un grupo de coeficientes DCT para un bloque "A" de pixeles de 8x8 de un macrobloque dado, seguido por un grupo de coeficientes DCT para un bloque "C" de 8x8 pixeles para ese macrobloque. Los coeficientes DCT están configurados en un formato de exploración diagonal o en "zig-zag", como se conoce. El tubo 1 transporta una secuencia de esos bloques A, C para una secuencia de macrobloques correspondientes. El tubo 2 contiene igualmente un grupo de coeficientes DCT "B" y "D" para el macrobloque dado, y para los macrobloques secuenciados con el mismo. En conexión con las Figuras 2-17 se muestra y se discutirá la configuración de los datos de pixeles para esos bloques y macrobloques de pixeles en la secuencia entubada. Los datos de bloques de pixeles se transportan mediante los tubos respectivos en trayectorias de procesamiento de datos paralelas, cada una incluyendo un cuantificador (18, 20) inverso, una unidad (22, 21) de transformación de Coseno Discreto (DCT) inversa, memorias intermedias (26, 28) FIFO de salida, unidades (23, 25) de reordenamiento de bloques, unidades (24, 27) de intercalación de bloques y sumadores (30, 32) . La descompresión y la descodificación de transformación se realizan respectivamente por medio de las unidades de cuantificación inversa y por medio de las unidades DCT inversa en cada entubamiento, antes de que se apliquen a una entrada de los sumadores 30 y 32 respectivamente. Las unidades 23, 25 de reordenamiento quitan el patrón de exploración en zig-zag de los datos de pixeles transformados inversamente por DCT de las unidades 21 y 22, para producir una secuencia de exploración de pixeles horizontales línea-por-línea para cada bloque de 8x8. De esta manera, en el tubo 1 por ejemplo, la salida de la unidad 23 representa valores de pixel de la forma al a2 a3...a63 a64 (para el bloque A), cl c2 c3...c63 c64 (para el bloque C) , etcétera. La unidad 24 de intercalación usa una técnica de multiplexación para producir datos de salida del tubo 1 de la forma al cl a2 c2 a3 c3...a64 c6 . El intercalador 27 produce una secuencia similar para los bloques B, D. El tamaño del paso de cuantificación de los cuantificadores 18 y 20 está controlado por una señal de Control de Cuantificador desde la memoria 12 intermedia para asegurar un flujo de datos uniforme. Los vectores de movimiento MV descodificados se proporcionan desde el descodificador 14 a una unidad 90 de compensación de movimiento, como se discutirá posteriormente. El descodificador 14 también produce un señal de control de selección de modo de inter/intra marco, como se sabe, que no se muestra para simplificar el dibujo. Las operaciones que realizan las unidades 14, 18/20, 21/22 y 23/25 son el inverso de las operaciones correspondientes que realiza un codificador MPEG en un transmisor. El descodificador MPEG de la Figura 1 reconstituye la imagen recibida usando técnicas de procesamiento MPEG que se describen brevemente a continuación. Los bloques de pixeles reconstruidos se proporcionan respectivamente en las salida de los sumadores 30 y 32, mediante la suma de los datos de imagen residuales de las unidades 26 y 28, con datos de imagen predicho, proporcionados en las salidas de la unidad 90 de compensación de movimiento, en base al contenido de la memoria 20 de marco de video. En la memoria 60 de marco se almacena un marco completo de bloques de pixeles que representan imágenes reconstruidos. En el modo de intermarco, los vectores de movimiento MV obtenidos del descodificador 14 se usan para proporcionar la ubicación de los bloques predichos de la unidad 90. El proceso de compensación de movimiento forma predicciones a partir de imágenes previamente descodificadas, que se combinan con los datos de coeficiente (de las salidas de las unidades 21 y 22 IDCT) , con el objeto de recuperar las muestras finalmente descodificadas. La unidad 90 de compensación de movimiento opera de conformidad con técnicas compatibles con MPEG conocidas como se describe por ejemplo, en la especificación MPEG y en las referencias de Weiss y Ang mencionadas previamente. Las salidas A, C y B, D de la unidad 90 representan los datos A, C de bloques de pixeles intercalados descomprimidos, y los datos B, D de bloques de pixeles intercalados, como se describirá. El proceso de reconstrucción de imagen que envuelve los sumadores 30, 32, la memoria 60 de marco del descodificador externo y la unidad 90 de compensación de movimiento exhibe convenientemente requerimientos de memoria de marco significativamente reducidos, debido al uso de compresores 40 y 42 de datos paralelos basados en bloques, y unidades 36 y 38 de conversión a décimas (submuestreo) de pixeles horizontales, que reducen el detalle horizontal. Se puede reducir el tamaño de la memoria 60 de marco en un 25 por ciento, 50 por ciento o más, como una función de la reducción de datos conseguida por las unidades 40, 42 de recompresión y la conversión a décimas mediante las unidades 36 y 38. Los datos de salida de las unidades 36 y 38 de conversión a décimas se procesan mediante una unidad 43 de reordenamiento de bloques, antes de que se transporten al compresor 40 en un modo de operación de datos reducidos, cuando se emplea la conversión a décimas horizontal, como se describirá. El efecto de la operación de reordenamiento se verá en conexión con las Figuras 12 y 14, y las Figuras relacionadas. Una señal de Control de Modo y un conmutador 45 de modo modifican la operación del compresor en un modo de operación de datos reducidos, cuando se activan las unidades 36 y 38 de conversión a décimas horizontales, como se explicará. En el modo de datos reducidos se inhabilita (por ejemplo, se desenergiza) el compresor 42. En otros momentos, por ejemplo, cuando se procesa una señal de entrada de alta definición, están activos ambos compresores 40 y 42. Las unidades 80-84 de descompresión realizan lo inverso de la compresión que realizan las unidades 40 y 42. La unidad 88 realiza lo inverso de la conversión a décimas que realizan las unidades 36 y 38. Posteriormente se describirán los detalles adicionales de estas operaciones. La unidad 86 de formateo desecha líneas de pixeles descomprimidas no deseadas, hasta que se obtienen las líneas que contienen los pixeles descomprimidos que se necesitan para el procesamiento de predicción de compensación de movimiento mediante la unidad 90. Este proceso de selección evita que se acumulen datos innecesarios, y se usa convenientemente en un sistema de compresión (tal como el sistema descrito) que no proporciona mapeo único en la memoria para todo pixel. A este respecto, se nota que se podría haber comprimido o cuantificado un valor de pixel con 3, 4 ó 5 bits por ejemplo, y el valor del pixel no se conoce hasta después de la descompresión. El procesamiento de un flujo de datos de alta definición de entrada descodificados por MPEG se consigue convenientemente mediante la intercalación del flujo de datos de entrada, antes de la recompresión, y mediante el procesamiento de los datos intercalados, usando una red de compresión de datos intercalados . La red de recompresión de datos incluye compresores 40 y 42 similares que operan en un flujo de datos intercalados. Estos compresores comparten ciertos circuitos lógicos y tablas de búsqueda contenidos en la unidad 44, y operan en respuesta a una señal de cronómetro CLK de 54 MHz (2 x 27 MHz) localmente generada, producida por el generador 50 de cronómetro. La señal CLK también se aplica a la red 88 de muestreo ascendente horizontal. Se aplica una señal de cronómetro de 81 MHz (3 x 27 MHz) producida también mediante el generador 50 a los descompresores 62, 80, 82 y 84, y al procesador 70 de despliegue visual. Antes de proceder con una descripción de la operación del sistema, será de ayuda entender la naturaleza del procesamiento de datos de pixeles intercalados, como se ilustra mediante las Figuras 2-17. La Figura 2 ilustra una configuración de macrobloque MPEG conocida, que comprende componentes de bloque de pixel de luminancia (Y) y crominancia (U, V) , El componente de luminancia de cada macrobloque está constituido por cuatro bloques Ya, Yb, Ye e Yd de luminancia de 8 x 8 pixeles. El componente de crominancia comprende bloques en "U" Ua-Ud de 4 x 4 pixeles, y bloques Va-Vd en "V" de 4 x 4 pixeles. Los intercaladores 24 y 27 (Figura 1) intercalan estos bloques de pixeles en los tubos Pl y P2 de datos respectivamente, como se describió anteriormente, y como se muestra en la Figura 3, que ilustra cómo se configuran los bloques de luminancia y crominancia para el procesamiento de entubamiento de A, C y B,D. El proceso de entubamiento antes de la intercalación se ilustra con mayor detalle en la Figura 4, con respecto a los bloques de 4 x 4 pixeles, los cuales constituyen un componente de crominancia en "U" . La Figura 4 muestra el resultado del proceso mediante el cual las unidades 23 y 25 colocan los bloques Ua y Uc de pixeles de crominancia en el tubo 1 de datos, y los bloques Ub y Ud de pixeles en el tubo 2. En el diagrama, Al representa el primer valor (8 bits) de pixel del bloque A, A2 representa el segundo valor (8 bits) de pixel del bloque A, Bl representa el primer valor de pixel de 8 bits del bloque B, y así sucesivamente a través de los valores A16 y B16 finales para el bloque D. Observaciones similares tienen que ver con los datos de pixeles de luminancia . Las Figuras 5-7 ilustran las configuraciones de los datos de pixeles que asumen que las unidades 36 y 38 en la Figura no realizan la conversión a décimas horizontal. En ese modo de operación, se pasan por alto 36 y 38, dependiendo de la cantidad de reducción de datos (conversión a décimas más compresión) que se desea para una configuración de sistema dada. En las Figuras 11-17 se ilustra el procesamiento de datos de pixeles con la conversión a décimas habilitada. La Figura 5 ilustra la secuencia A, C de los datos de pixeles intercalados en el tubo 1, transportada desde la salida del intercalador 24 hasta el compresor 40 de la memoria 26 intermedia y el sumador 30, sin la conversión a décimas por parte de la unidad 36. De manera similar, los datos de pixeles en el tubo 2 se transportan al compresor 42 desde el intercalador 27 y el sumador 32 en la secuencia Bl, DI, B2 , D2, ... etcétera. La división del macrobloque en secciones representadas por los grupos de datos A, B, C y D no es crítica. Por ejemplo, en otro sistema el tubo Pl podría transportar los datos A, B o los datos A, D. De manera similar, el tubo 2 podría transportar una combinación de datos diferente a B, D. En la modalidad ilustrada los datos A, C transportados por el tubo 1 corresponden a bloques de datos "uniformes", de conformidad con la especificación MPEG, y los datos B, D del tubo 2 corresponden a bloques de datos "disparejos" en la especificación MPEG. La Figura 6 ilustra la salida de datos de pixeles comprimidos desde el primer compresor 40 en el primer tubo, después de la codificación de Huffman. Cada "x" en el flujo de datos de la Figura 6 representa una condición de "no importa", producida para simplificar el proceso de cronometraje, por medio de lo cual se usa un cronómetro continuo (más bien que un cronómetro de detener/iniciar menos deseable) que incluye 8 bits de datos para cada ciclo de cronómetro. Una señal de Habilitación de Escritura (no se muestra) asegura que se escriban solamente datos comprimidos válidos en la memoria cuando esté presente. Para cada diez y seis pixeles (8 bytes) de 8 bits (intensidad de color) en la entrada, se producen 16 bytes de datos comprimidos en la salida.No se muestra la salida de datos de pixeles analógicos del segundo compresor 42 para los bloques B, D en el tubo 2. Con respecto a la Figura 20 se mostrarán y describirán los detalles de un circuito de compresión adecuado para usarse en los compresores 40 y 42. Después de la compresión mediante las unidades 40 y 42, los datos de pixeles se transportan mediante una barra 55 colectora (Figura 1) de memoria interna de 128 bits de ancho (es decir, 128 líneas de datos paralelas, cada una transportando un bit) , y una barra 57 colectora de memoria externa de 64 bits de ancho, a la memoria 60 de marco del descodificador externo. La memoria 60 almacena los datos de bloques de pixeles en la forma desintercalada. La desintercalación se puede realizar mediante los circuitos de salida asociados con los compresores 40 y 42, o mediante los circuitos antes de la memoria 60, bajo el control de un microprocesador 120 local. Estos circuitos usan técnicas de procesamiento de señales conocidas para realizar la función de intercalación inversa, y no se han mostrado para simplificar el dibujo. La Figura 7 muestra la forma de los datos de pixeles comprimidos que se mandan a la memoria 60, después de la desintercalación. Cada pixel comprimido se representa por 3 a 6 bits de datos. En el bloque de los datos A comprimidos, "al" no representa al pixel al en este punto, sino más bien 8 bits constituidos por una combinación de pixeles comprimidos y datos de carga general . La longitud de datos de un pixel se determina mediante los datos mismos y mediante la ubicación del pixel. El número de bits que se usan para comprimir los datos en este bloque de intensidad de color es de 64 bits. Los datos originales de intensidad de color estaban constituidos por 128 bits (8 x 16 bits) . Aplican observaciones similares a los datos "B" a "D". Refiriéndonos de nuevo a la Figura 1, se procesan los datos de pixeles comprimidos almacenados en la memoria 60 para despliegue visual, por medio de una red de procesamiento de despliegue visual, que incluye un descompresor 62 de despliegue visual, la memoria 64 intermedia de despliegue visual FIFO, el multiplexor 68, y el procesador 70 de despliegue visual. La memoria 64 intermedia de despliegue visual contiene diez y seis líneas de imagen, divididas entre un par de memorias intermedias de ocho líneas. Los datos descomprimidos para el procesamiento del despliegue visual se leen desde una de las memorias intermedias de línea, mediante el multiplexor 68, mientras se está llenando la otra memoria intermedia de líneas con los datos descomprimidos desde la unidad 62. Las memorias 64 intermedias pueden estar ubicadas en la unidad 60 de memoria. El procesador 70 de despliegue visual puede incluir, por ejemplo, una red de codificación NTSC, circuitos para acondicionar los pixeles para despliegue visual, y una red controladora de despliegue visual para proporcionar señales de video al dispositivo 72 de reproducción de imágenes, por ejemplo, un cinescopio de alta definición u otros elementos de despliegue visual apropiados. Antes de la descompresión mediante la unidad 62, se vuelven a intercalar los datos de pixeles para exhibir una secuencia de bloque "ab", como se ilustra mediante la Figura 8. Esta intercalación se puede realizar por medio de dirigir adecuadamente la operación de lectura de la memoria 60, o por medio de introducir circuitos lógicos asociados con el descompresor 62 de despliegue visual. De manera similar, se vuelven a intercalar los pixeles c y d para producir una secuencia de datos "cd" (no se muestra) antes de la descompresión. Las secuencias de reintercalación para despliegue visual, es decir ab y cd, difieren de las secuencias (ac y bd) de intercalación de entrada originales. La intercalación original permitió que se accesaran primero los datos de pixeles a y b, por ejemplo, y los datos a y b se procesaron en paralelo. La secuencia de despliegue visual reintercalada es apropiada para propósitos de despliegue visual en donde se necesitan los datos del mismo marco de imagen (los pixeles a,b y c,d están en el mismo marco de imagen) . En la Figura 9 se muestra la secuencia de los datos de pixeles descomprimidos intercalados para la secuencia "ab" . También se produce una secuencia similar de datos de pixeles descomprimidos intercalados para la secuencia "cd" (Cl, DI, C2, D2, C3 , D3... ) que no se muestra. Como se muestra en la Figura 10, después del procesamiento mediante las unidades 64, 68 y 70, se arreglan nuevamente de los pixeles de un bloque dado a un formato de despliegue visual. Este es un ejemplo simplificado en forma de 4:2:0 en lugar de en forma de 4:2:2. Refiriéndonos a la Figura 1 nuevamente, el ciclo del descodificador MPEG también incluye una función de descompresión que realiza una pluralidad de descompresores 80, 82 y 84 en asociación con el formateo de datos y el muestreo ascendente horizontal realizado por las unidades 86 y 88 respectivamente. Los comentarios anteriores respecto a las Figuras 8 y 9, también aplican a esta función de descompresión del ciclo de control, en donde antes de la descompresión se intercalan los datos de pixeles por medio de circuitos asociados con los descompresores, para exhibir una secuencia de datos "ab" (y "cd"), como se ilustra mediante la Figura 8. Las Figuras 11-17 ilustran las configuraciones de secuencias de datos de pixeles, suponiendo que se ha habilitado la conversión a décimas (es decir, submuestreo o muestreo descendente) horizontal, mediante las unidades 36 y 38 de la Figura 1. Cuando se habilita la reducción de datos en la forma de conversión a décimas horizontal mediante las unidades 36 y 38, se inhabilita el compresor 42 y solamente se usa el compresor 40 para comprimir los datos debido a la cantidad reducida de datos. La red 44 contiene circuitos lógicos y Tablas de Búsqueda que usan las unidades 40 y 42. Estos circuitos y tablas los usa solamente uno de los compresores cuando el otro está desactivado en un modo de operación de datos reducidos, cuando son menos las demandas de procesamiento de datos. En un modo de alta resolución, cuando operan ambos compresores 40 y 42, se facilita la participación de estos circuitos y tablas mediante el proceso de entubamiento de datos intercalados. Específicamente, la unidad 44 contiene dos tablas de Búsqueda, una para que la use el compresor 40, y una para que la use el compresor 42. La tabla de Búsqueda para el compresor 40 se comparte para comprimir los datos A y C intercalados, puesto que estos datos se comprimen en momentos diferentes, tal como en cronómetros alternados, como se describirá. La tabla de Búsqueda para el compresor 42 se comparte de manera similar durante la compresión de los datos B y D. La Figura 11 ilustra la secuencia de los datos de pixeles aplicados desde el tubo 1 de datos hasta la entrada del filtro 36 de conversión a décimas en la Figura 1. La conversión a décimas mediante el filtro 36 produce la secuencia de datos de pixeles de la Figura 12, la cual se aplica a la entrada de la red 43 de reordenamiento. En la Figura 12 los elementos etiquetados con "x" representan "no importa" o datos nulos. En un modo H/2 por medio del cual se submuestrean los datos de pixeles por un factor de 2, el filtro 36 promedia dos pixeles adyacentes, de tal manera que al* = (Al + A2)/2, cl* = (Cl + C2)/2, a2* = (A3 + A4)/2, y así sucesivamente. En la Figura 18 se ilustra este proceso, como se describirá. También se puede usar la conversión a décimas usando otros factores de submuestreo. Las Figuras 13 y 14 ilustran igualmente la secuencia de datos de pixeles que se aplica desde el tubo 2 de datos hasta el filtro 38 de conversión a décimas en la Figura 1. La Figura 15 muestra la secuencia de datos de pixeles después de la conversión a décimas y el reordenamiento mediante la unidad 43 en la Figura 1. Específicamente, se han realineado los datos de pixeles por medio de la unidad 43, para colocarlos en una secuencia apropiada para compresión y almacenamiento en la memoria 60. En la Figura 15, los datos de pixeles al a c4 representan un marco de imagen (una matriz de 2x4) después de la conversión a décimas, los datos de pixeles bl a d4 representan un segundo marco de imagen (matriz de 2x4) después de la conversión a décimas, y así sucesivamente. En la Figura 1, se aplican todos los datos de pixeles reordenados desde la unidad 43 al compresor 40 mediante el conmutador 45 de modo, puesto que solamente se necesita un compresor para comprimir la cantidad reducida de datos que resulta después de la conversión a décimas. La promediación de los datos en el proceso de conversión a décimas produce un pixel de dos pixeles, dando como resultado menos datos, y una necesidad reducida correspondiente de amplitud de banda de procesamiento de datos. En consecuencia, es suficiente solamente un compresor, y se inactiva el compresor 42. Los compresores se habilitan e inhabilitan según se requiera en la ausencia o presencia de la conversión a décimas, en respuesta a una señal de Control de Modo, como se describirá.
El reordenamiento que ocurre en la red 43 de reordenamiento no es un procedimiento directo, tal como pudiera ocurrir con una memoria intermedia de primero en entrar, primero en salir. Para minimizar la complejidad del procesamiento del ciclo de compensación de movimiento, incluyendo la conversión a décimas horizontal, el reordenamiento y la recompresión, se presentan los datos al compresor 40 en sustancialmente el mismo formato que los datos que no se han convertido a décimas horizontalmente mediante las unidades 36 y 38. La provisión de la red 43 de reordenamiento separada del recompresor 40 simplifica el circuito, porque el recompresor 40 no tiene que distinguir entre los datos que requieren reordenamiento de las unidades 36 y 38, y los datos que no requieren reordenamiento de los sumadores 30 y 32. La Figura 15A es una compilación de las Figuras 11 a
, e ilustra el flujo de datos a través de la conversión a décimas horizontal y el reordenamiento con relación al cronometraje de pixeles. Los flujos 15-1 y 15-2 de datos de la Figura 15A representan respectivamente datos fuera de los sumadores 30, 32, y dentro de las redes 36, 38 de conversión a décimas. Los flujos 15-3 y 15-4 de datos representan respectivamente datos fuera de las redes 36, 38 de conversión a décimas, que se introducen dentro de la red 43 de reordenamiento. Como se describió previamente, los pixeles se intercalan como se ve en los flujos 15-1 de datos a 15-4. Los flujos 15-1 y 15-3 de datos representan datos de la tubería Pl, y los flujos 15-2 y 15-4 de datos representan datos de la tubería P2. El flujo 15-5 de datos representa los datos fuera de la red 43 de reordenamiento, que se introducen al recompresor 40 mediante el conmutador 45. En la parte inferior de la Figura 15A está un cronómetro CLK de pixeles que se proporciona para demostrar el cronometraje de los pixeles de datos, a medida que éstos pasan a través del sistema. Como en la ilustración ejemplar, se seguirán los pixeles de datos seleccionados a través de los procesos de reordenamiento. El proceso es el mismo para los datos de cualquier tubería. Los pixeles de los flujos 15-1 y 15-2 de datos representan un macrobloque de pixeles de crominancia. El proceso es el mismo para los macrobloques de pixeles de luminancia, pero el proceso es más complejo porque la producción se distribuye sobre cuatro bloques de 8x8 pixeles, en lugar de cuatro bloques de 4x4 pixeles . El macrobloque más grande provoca que el reordenamiento ocurra sobre un número más grande de ciclos de cronómetro con cuatro veces tantos datos. Sin embargo, los principios de reordenamiento permanecen iguales para los datos tanto de luminancia como de crominancia. El pixel Bl del flujo 15-2 de datos se convierte a décimas en un cincuenta por ciento, y se combina con el pixel B2, para formar un pixel de datos de salida del mismo tamaño de un pixel de datos de entrada. Los mismo ocurre para los pixeles DI y D2. La red 38 de conversión a décimas introduce en la memoria intermedia los datos convertidos a décimas de los pixeles Bl y DI hasta que se procesan los pixeles B2 y D2. Esta es la razón por la cual los datos de salida de la red 38 de conversión a décimas son inválidos durante los primeros dos ciclos de cronómetro. Los datos válidos ocurren durante el tercer ciclo de cronómetro como el pixel bl*. Durante la primera mitad del tercer ciclo de cronómetro se sacan los datos del pixel Bl, y durante la segunda mitad del tercer ciclo de cronómetro se sacan los datos del pixel B2. El cuarto ciclo de cronómetro produce el pixel di* de la misma manera. Los datos que se sacan de las tuberías Pl y P2 pasan a la red 43 de reordenamiento, que introduce en memoria intermedia los datos y accesa los pixeles particulares en el orden apropiado, para formar un flujo de datos continuo dentro del compresor 40. Como se ve por los flujos 15-4 y 15-5 de datos de la Figura 15A, se deben intercalar los pixeles bl*, b2*, b3* y b4* con los pixeles di*, d2*, d3* y d4*, pero después de los pixeles a y c correspondientes. Por lo tanto, los pixeles residen adentro de la red 43 de reordenamiento durante tiempos desiguales, esperando a ser sacados. Por ejemplo, la red de reordenamiento recibe el pixel bl* durante el ciclo 3 de cronómetro, y éste se saca durante el ciclo 12 de cronómetro, mientras que la red de reordenamiento recibe el pixel b2* durante el ciclo 7 de cronómetro, y éste se saca durante el ciclo 14 de cronómetro. Los pixeles se dirigen en la red 43 de reordenamiento mediante una máquina de estado controlada por el microprocesador 120. Para mantener un flujo de datos constante, el compresor 40 espera los datos de pixeles de entrada en el formato intercalado, como se muestra en los flujos 15-1 y 15-2 de datos. Después de las redes 36 y 38 de conversión a décimas, se cambia el orden de los pixeles porque las dos tuberías Pl y P2 se muestrean descendentemente por un orden de 2 para cada una, para suministrar la mitad de los datos en el flujo 15-5 de datos. Sin embargo, los datos muestreados descendentemente de Pl y P2 se originan a partir de los bloques verticalmente adyacentes de la imagen. El compresor 40 espera los datos de pixeles intercalados a partir de bloques horizontalmente adyacentes. Por lo tanto, la red 43 de reordenamiento combina los datos muestreados descendentemente a partir del orden que se muestra en los flujos 15-3 y 15-4 de datos al orden que se muestra en el flujo 15-5 de datos. Este orden es sustancialmente igual a los datos intercalados que no se someten al muestreo descendente en las redes de conversión a décimas. Los bloques de pixeles tanto de los datos muestreados descendentemente como de los datos no muestreados descendentemente son del mismo tamaño, esto es, tienen el mismo número de pixeles tanto horizontal como verticalmente. La única diferencia es que los bloques de datos de pixeles muestreados descendentemente incluyen información de pixeles de dos bloques de pixeles horizontalmente adyacentes, como se describió anteriormente. Esta diferencia es transparente para el compresor 40, lo cual permite un flujo de datos continuo. Aunque este sistema reordena para combinar bloques de pixeles horizontalmente adyacentes en un bloque de pixeles muestreados descendentemente, el espíritu de la invención también abarca un sistema que combinaría bloques de pixeles que tuvieran una relación espacial diferente. Como se ve en la Figura 15A, parece que la red 43 de reordenamiento necesita los pixeles a2* a a4* y a6* a a8* de la red 36 de conversión a décimas (flujo 15-3 de datos) para salida (flujo 15-5 de datos) antes de que estén disponibles. De manera realista, ésto no puede y no ocurre, pero se muestra para ilustrar los diferentes cronometrajes y retardos que debe acomodar la red 43 de reordenamiento. Para evitar que se necesiten los datos para la salida, antes de que los reciba la red 43 de reordenamiento, la unidad 43 contiene y retarda suficientes datos, hasta que se puedan procesar todos los datos, proporcionando mediante lo mismo una salida de datos continua, como se muestra en el flujo 15-5 de datos. El retardo ocurre con los primeros datos que van a fluir a través de las tuberías Pl y P2 y alcanzar la red 43 de reordenamiento, tal como ocurre cuando se energiza inicialmente un receptor de televisión, cuando se cambia un canal, o en cualquier momento que se establezca la sincronización de datos. Después de un retardo inicial, los datos son continuos, sin perder ciclos de cronómetro . La Figura 16 ilustra la secuencia de los datos de pixeles comprimidos de la salida del compresor 40. En la Figura 16, los datos comprimidos "m" designan los datos de pixeles comprimidos constituidos por los datos derivados a partir de los pixeles a y b, después de la conversión a décimas (es decir, un bloque de 4x8 pixeles producido después de convertir a décimas un bloque de 8x8 pixeles) . De manera similar, los datos comprimidos "n" designan los datos comprimidos constituidos por los datos derivados a partir de los pixeles c y d, después de la conversión a décimas. Los datos de pixeles a y b están en el mismo campo de imagen, y los datos de pixeles c y d están en el mismo campo de imagen. El proceso de compresión de bloque de pixeles que realiza el compresor 40 está diseñado para operar con respecto a bloques de 8x8 pixeles. Después de la conversión a décimas, se combinan un bloque "a" de 4x8 pixeles y un bloque "b" de 4x8 pixeles resultantes, para producir un bloque de 8x8 pixeles que se comprime para producir el bloque "m" . Se hacen observaciones similares respecto a la formación de los bloques comprimidos "n" de los bloques "c" y "d" de 4x8 convertidos a décimas. De esta manera los bloques en el mismo marco de imagen se alinean apropiadamente para descodificación MPEG eficiente. La Figura 17 ilustra la configuración de los bloques comprimidos secuenciados por marco apropiadamente, a medida que se transportan a, y se almacenan en la memoria 60. La reducción de detalle horizontal que produce la red de conversión a décimas también reduce los requerimientos de memoria del descodificador, mediante la reducción del número de valores de pixeles que se almacenan en la memoria 60. La red 36, 38 de conversión a décimas emplea un filtro de paso bajo espacial horizontal, seguido por la conversión a décimas horizontal de 2:1 (muestreo descendente) , antes de proporcionar los datos ala memoria 60. Después de la descompresión mediante las unidades 80, 82 y 84, se reconstituye la información de resolución de imagen de la memoria 60 de la memoria 60 mediante la unidad 88, usando un proceso de muestreo ascendente de repetición de pixel. No se requiere el proceso de muestreo ascendente entre el descompresor 62 de despliegue visual y el procesador 70 de despliegue visual, puesto que el procesador 70 proporciona la conversión de velocidad de la muestra horizontal requerida. Se espera que el descompresor 62 y el procesador 70 de despliegue visual no realicen el muestreo ascendente en un receptor de costo reducido, debido a la resolución de despliegue visual reducida, proporcionada por ese receptor. En ese caso los marcos descodificados reducidos en memoria tienen mayor resolución que un despliegue visual de definición estándar. Por ejemplo, para descodificar y desplegar visualmente una secuencia de video de 1920 x 1088 pixeles en un dispositivo de despliegue visual de 720 x 480 pixeles, se requiere que la imagen almacenada en la memoria de marco tenga una resolución de 960 x 1088 (con la conversión a décimas horizontal por un factor de dos) . De esta manera el descompresor 62 de despliegue visual no necesita muestrear ascendentemente las imágenes, pero el procesador 70 de despliegue visual tendrá que muestrear descendentemente la imagen de resolución de 960 x 1088 a 720 x 480 para que sea adecuada para despliegue visual. Las Figuras 18 y 19 ilustran respectivamente la configuración general de los elementos asociados con el proceso de submuestreo de pixeles como lo realizan las unidades 36, 38 en la Figura 1, y el muestreo ascendente de pixeles como lo realiza la unidad 88. En las unidades 36 y 38 los pixeles originales se filtran primero por paso bajo mediante un filtro 102 de paso bajo de orden par, antes de que se conviertan a décimas por dos, por medio de lo cual se remueve cualquier otro valor de pixel mediante la unidad 104. estos pixeles se almacenan en la memoria 60. Después se repiten los datos de pixeles de la memoria 60 mediante el elemento 106 de la unidad 88 de muestreo ascendente, usando técnicas bien conocidas. En este ejemplo el filtro 102 en un filtro FIR simétrico de 8 derivaciones. Este filtro opera en el dominio espacial horizontal y filtra a través de los límites del bloque. El filtro de 8 derivaciones tiene el efecto de cambiar la posición relativa de los pixeles de salida por un período de muestra de la mitad con relación a la entrada, como se muestra en la Figura 18. Como también se muestra en la Figura 18, el muestreo ascendente de repetición de pixel tiene el efecto de mantener la misma posición espacial de los pixeles muestreados descendentemente/muestreados ascendentemente con relación a los pixeles originales. La unidad 104 de filtro de conversión a décimas puede ser un filtro de dos derivaciones, de tal manera que para los pixeles de entrada x e y la salida del filtro es
(x+y)/2, y la conversión a décimas se realiza por medio de omitir todo otro pixel. Este filtro no cruza el límite del bloque, es fácil de implementar, y es una buena elección para la conversión a décimas horizontal. Se ha simplificado el sistema receptor de televisión que se muestra en la Figura 1, con el objeto de no cargar el dibujo con detalles excesivos. Por ejemplo, no se muestran las memorias intermedias de entrada y salida FIFO asociadas con diferentes elementos del sistema, los controles de lectura/escritura, los circuitos generadores de cronómetro, y las señales de control para interfase a las memorias externas que pueden ser del tipo fuera de datos extendidos (EDO, por sus siglas en inglés) o del tipo sincrónico (SDRAM) . El sistema de la Figura 1 incluye adicionalmente un microprocesador 120 para mandar y recibir datos, habilitar lectura/escritura y dirigir información por ejemplo, la interfase 122 de barra colectora y el controlador 126 acoplado a una barra 114 de control interna. En este ejemplo el microprocesador 120 está localizado externamente al circuito integrado que contiene el descodificador MPEG. El procesador 70 de despliegue visual incluye filtros de remuestreo horizontal y vertical, según sea necesario, para convertir un formato de imagen codificada a un formato determinado previamente para despliegue visual mediante la unidad 72. Por ejemplo, el sistema puede recibir y descodificar secuencias de imágenes que correspondan a formatos tales como entrelazado de 525 líneas, entrelazado de 1125 líneas, o exploración progresivo de 720 líneas. El procesador 70 también produce cronómetros y señal H, V, sincronizada asociada con el despliegue visual de imágenes, y se comunica con la memoria 60 de marco mediante la barra 55 colectora de memoria. La red 122 de interfase de la barra colectora externa transporta la información de control y configuración entre el descodificador MPEG y el procesador 120 externo, en adición a los datos de video comprimidos de entrada, para procesamiento mediante el descodificador MPEG. El sistema descodificador MPEG parece un coprocesador para el microprocesador 120, por ejemplo, el microprocesador 120 emite un comando de descodificar al descodificador MPEG para cada marco que se va a descodificar. El descodificador localiza la información de encabezado asociada, la cual la lee a su vez el microprocesador 120. Con esta información el microprocesador 120 emite los datos para configurar el descodificador, por ejemplo, con respecto al tipo de marco, las matrices de cuantifícación, etcétera, después de lo cual el descodificador emite los comandos de descodificación apropiados. El descodificador 14 de longitud variable se comunica mediante la barra 55 colectora de memoria, y los circuitos 128 de interfase facilitan la comunicación entre la barra 55 colectora de memoria y la barra 114 colectora de control. Los datos de control de modo, programados por el fabricante receptor, se transportan mediante el microprocesador 120 en asociación con el controlador 134 de memoria y el controlador 126 para establecer los factores de compresión/descompresión para las unidades 40, 42 y 80-84, y para controlar el estado de las redes de compresión y descompresión, y las redes de muestreo ascendente y de muestreo descendente, según lo requieran los parámetros del diseño del sistema. El microprocesador 120 también divide la memoria 60 en secciones de almacenamiento de marco, memorias intermedias de almacenamiento de marco y bits, y secciones de mapas de bits de despliegue visual en pantalla, para la descodificación MPEG y el procesamiento de despliegue visual. La unidad 134 de control de memoria local recibe Sincronización Horizontal y Vertical (por ejemplo, desde la unidad 70) , y entradas de Petición de datos, y proporciona salidas de Reconocimiento, así como Dirección de memoria, Habilitación de Lectura (Ren) , y salidas de Habilitación de Escritura (Wen) a diferentes circuitos del sistema, incluyendo los circuitos de control de la memoria intermedia. La unidad 134 genera señales de dirección y control en tiempo real para controlar la memoria 60. Se proporcionan señales de cronómetro de salida CLKout en respuesta al cronómetro de entrada en la señal CLKin, las cuales se pueden proporcionar mediante un generador de cronómetro local tal como la unidad 50. Se puede usar el sistema de la Figura 1 con todos los Perfiles y Niveles de la especificación MPEG en el contexto de diferentes esquemas de procesamiento de datos digitales tales como los que pueden estar asociados con transmisión terrestre, cable, y sistemas de transmisión por satélite, por ejemplo. En esta modalidad la memoria 60 de marco de video está localizada externa a un circuito integrado que incluye el descodificador MPEG y los elementos asociados en la Figura 1. El procesador 70 de despliegue visual puede incluir algunos elementos que no están en el circuito integrado del descodificador MPEG. El uso de ese dispositivo de memoria externo permite que el fabricante del receptor seleccione un dispositivo de memoria que sea económicamente adecuado, con el objeto de que sea compatible con el uso pretendido del receptor, por ejemplo, para despliegue visual de alta definición completa o despliegue visual de definición reducida, cuando el receptor recibe un flujo de datos de alta definición. La gran cantidad de memoria que se usa normalmente para la descodificación MPEG actualmente requiere que la memoria sea externa al circuito integrado del descodificador como un asunto práctico. Los avances futuros en la tecnología pueden permitir que la memoria esté localizada en el mismo circuito integrado que los elementos del descodificador MPEG. Sin embargo, el uso de un dispositivo de memoria externo le da al fabricante la libertad para seleccionar un tamaño de memoria consistente con la resolución del despliegue visual y otras características del receptor. En la práctica, un fabricante de receptores decidirá si va a configurar un receptor como un modelo de primera calidad costoso con características extendidas, o como un modelo más económico con menos características. Una de las características de interés es la resolución de una imagen desplegada visualmente. En un receptor de costo reducido, los factores que contribuyen a la reducción del costo incluyen un dispositivo de despliegue visual de imagen de resolución reducida menos costoso, y la cantidad de memoria asociada con el descodificador MPEG. En este ejemplo el requerimiento de memoria cae a 64 Mbits cuando la red compresora comprime los datos en un 25 por ciento, y el requerimiento de memoria cae a unos 48 Mbits aún más económicos cuando los datos se comprimen en un 50 por ciento. El factor de compresión del 25 por ciento estaría asociado con un despliegue visual de imágenes de alta definición completa, y sería virtualmente indistinguibles de la descodificación MPEG completa sin compresión. Con la compresión al 50 por ciento, un observador capacitado pudiera ser capaz de encontrar artefactos apenas notables. En cualquier caso la secuencia de imagen descodificada exhibiría una resolución de alta definición completa de 1920 x 1088 para despliegue visual mediante un dispositivo de despliegue visual de imágenes de resolución de alta definición completa. En algunos casos no se requiere la resolución de imagen de alta definición completa, tales como cuando un modelo de receptor usa un dispositivo de despliegue visual no costoso, con menos que una capacidad de resolución de alta definición completa. En ese caso es deseable recibir y descodificar la información de alta definición sin desplegar visualmente imágenes de resolución de alta definición completa. En ese receptor se pueden usar juntas la red 36, 38 de conversión a décimas receptora y la red 40 compresora, para reducir significativamente los requerimientos de memoria del descodificador . Por ejemplo, la red de conversión a décimas pude convertir a décimas horizontalmente los datos por un factor de 2, y la red compresora puede comprimir los datos convertidos a décimas en un 50 por ciento. Esto da como resultado un requerimiento de memoria del descodificador grandemente reducido de 32 Mbits. En este caso una imagen para despliegue visual exhibe una resolución de 960 x 1088, la cual es suficiente para aplicaciones de receptor ya sea de 1H ó 2H. De esta manera se puede construir un receptor de bajo costo capaz de descodificar flujos de datos de imágenes de alta definición completa, usando solamente 32 Mbits de memoria del descodificador MPEG. La operación descrita anteriormente se realiza en respuesta a la señal de Control de Modo, que se proporciona al conmutador 45 mediante el microprocesador 120. Dependiendo de si el descodificador MPEG está localizado en un receptor de alta definición o en un receptor con resolución reducida, el microprocesador 120 está programado para determinar la cantidad de compresión, y si la red de conversión a décimas está habilitada o no para muestrear descendentemente los datos, o si se pasa por alto. El sistema de la Figura 1 exhibe un primer modo de procesamiento de datos para procesar una señal que contiene una gran cantidad de datos, tal como una señal de televisión de alta definición para despliegue visual mediante un dispositivo de despliegue visual de alta definición, y un segundo modo para procesar una cantidad reducida de datos. Se puede emplear el segundo modo, por ejemplo, en un receptor económico que incluya un dispositivo de despliegue visual de costo reducido, con menos capacidad de resolución de datos (es decir, un dispositivo de despliegue visual no HDTV) . El estado del conmutador 45 en la Figura 1 se controla mediante la señal de Control de Modo, que puede ser programada por un fabricante de receptores para indicar el tipo de datos que se van a desplegar visualmente mediante el receptor, por ejemplo, alta definición (primer modo) o menos que alta definición (segundo modo) . Se controlaría el conmutador 45 para producir la operación del primer modo, si un dispositivo de despliegue visual de alta definición va a desplegar visualmente una señal de alta definición recibida, y el segundo modo de operación en el caso de que una señal de entrada de alta definición que se esté submuestreando mediante las unidades 36 y 38, para producir información de imagen menor que de alta definición, para reproducción mediante un dispositivo de despliegue visual más económico que tenga menos que resolución de alta definición. En el primer modo, se pasan por alto las unidades 36 y 38 de conversión a décimas, y los bloques de datos que se van a comprimir se transportan directamente al compresor 42, y al compresor 40 mediante el conmutador 45. En este modo se aplica la señal de Control de Modo a una entrada de control del compresor 42 para habilitar el compresor 42. En el segundo modo, el estado de la señal de Control de Modo inhabilita el compresor 42 mediante la remoción de energía del compresor 42 en esta modalidad, mientras habilita los datos del sumador 30 que se van a transportar al compresor 40 activo mediante el conmutador 45. La inhabilitación del compresor 42 mediante la remoción de energía es particularmente conveniente en un dispositivo de circuitos integrados para procesar información HDTV, debido a las limitaciones de energía (disipación de calor) de esos circuitos integrados, debido a las altas frecuencias del cronómetro, el área superficial grande, y el gran número de elementos activos integrados en el mismo. En un sistema de cronómetro regulado por compuerta, la remoción de energía se puede conseguir de manera efectiva por medio de detener el cronómetro del compresor. Una ventaja adicional de esa operación es que el compresor necesita operar solamente en modos de procesamiento de bloques similares tales como 8x8 y 4x8. Esto es, no se necesita volver a programar el compresor 40 por ejemplo, para procesar bloques de 4x8 pixeles como se producen mediante el proceso de conversión a décimas. La unidad 43 de reordenamiento de bloque reconstruye los bloques después de la conversión a décimas para producir, a partir de bloques de 4x8 pixeles, un bloque de 8x8 pixeles compatible con el algoritmo de procesamiento de bloques del compresor. La señal de Control de Modo también se aplica a una entrada de control de la red 88 de muestreo ascendente horizontal, para pasar por alto la función de muestreo ascendente en los modos de operación, cuando no se emplea la conversión a décimas mediante las unidades 36 y 38. Con este propósito la unidad 88 puede emplear una configuración de conmutación relativamente simple, para conmutar la señal de salida de la unidad 86 directamente a la unidad 90 en el modo de pasar por alto. La compresión antes de almacenar los datos en la memoria 60 requiere que se descompriman los datos antes de la unidad 90, en el ciclo de procesamiento de compensación de movimiento. Esto se consigue mediante los descompresores 80, 82 y 84 basados en bloques, que exhiben el inverso de la operación de los compresores 40 y 42. El descompresor 62 de despliegue visual basado en bloques usa una técnica de descompresión similar a aquella que usan los compresores 80-84, y descomprime los datos de pixeles almacenados antes de que se transporten al procesador 70 de despliegue visual. Cuando se habilita la red 36, 38 de muestreo descendente antes de la memoria 60, se muestrean ascendentemente los datos de salida de la memoria 60, antes de la unidad 90 en el ciclo de procesamiento de compensación de movimiento mediante la unidad 88, que exhibe el inverso de la operación de la red 36, 38. El sistema de la Figura 1 emplea convenientemente una pluralidad de descompresores de bloques paralelos que representan las unidades 80, 82 y 84 en el ciclo de compensación de movimiento. En este ejemplo se usan nueve descompresores, tres en cada una de las unidades 80, 82 y 84, para permitir que todos los pixeles se descompriman individualmente. Cada uno de estos descompresores tiene una memoria intermedia de entrada FIFO asociada. Se usan tres descompresores (por ejemplo, en la unidad 80) para descomprimir datos de pixeles de luminancia en un modo de predicción delantero MPEG, y se usan tres descompresores (por ejemplo, en la unidad 82) para descomprimir datos de pixeles de luminancia en un modo de predicción trasero MPEG. Puesto que la información de crominancia es la mitad de aquella de luminancia, solamente se usan tres descompresores (por ejemplo, en la unidad 84) para descomprimir los datos de pixeles de crominancia. Se necesita el uso de los nueve descompresores para el peor caso de descodificación de imagen en B de MPEG, que requiere procesamiento de predicción de compensación de movimiento bidireccional . De esta manera la predicción de imagen en B requiere dos marcos de imagen (delantero y trasero) , mientras que la predicción de imagen en P de MPEG requiere solamente un marco de imagen. El bloque de predicción de compensación de movimiento pudiera no ocurrir (y frecuentemente no lo hace) en un límite del bloque. Más bien, se pudieran tener que llamar muchos bloques de la memoria 60 de marco. En una situación del peor caso en un sistema MPEG-2 con una resolución de medio pixel, el bloque de predicción de compensación de movimiento puede traslapar seis bloques. De esta manera se deben accesar seis bloques de la memoria. En un sistema tal como el sistema descrito con recompresión en el ciclo de compensación de movimiento (mediante las unidades 40, 42) , no se pueden accesar directamente los pixeles . Primero se deben descomprimir todos los pixeles de bloques, lo cual requiere mucha carga general en la situación de seis bloques del peor caso, y produce muchos más datos de los necesarios. La unidad 86 de formateo desecha la información de pixeles no necesaria, como se mencionó previamente, pero solamente después de que se han descomprimido todos los pixeles. En situaciones de procesamiento de datos grandes, tal como la situación de seis bloques mencionada anteriormente, la descompresión antes del almacenamiento incrementa grandemente los requerimientos del tamaño de memoria de la memoria intermedia, asociados con el manejo de la información de pixeles descomprimida. Más bien, se ha encontrado que en el sistema descrito es preferible descomprimir los datos en paralelo como se describió, y después descartar (mediante la unidad 86) los datos de pixeles descomprimidos no necesarios, que no estén asociados con el bloque de predicción. Este procedimiento convenientemente requiere una capacidad de almacenamiento de memoria intermedia significativamente menor.
De esta manera, aunque el requerimiento de amplitud de banda
(capacidad de datos) de memoria de la memoria intermedia es reducido, se necesita más área superficial integrada. Sin embargo, el uso de muchos descompresores en paralelo produce la ventaja adicional de operación más rápida, y acceso más rápido asociado a los datos de pixeles que se necesitan para el procesamiento de predicción de compensación de movimiento. Los descompresores plurales no están entubados . Cada descompresor, y su memoria intermedia asociada, opera independientemente para enviar datos, de tal manera que se envíen rápidamente los datos de pixeles. Los retardos en la operación de una red descompresora/de memoria intermedia no afectan la operación de otras redes descompresoras . Los descompresores también exhiben operación intercalada con respecto a los datos de pixeles, lo cual facilita la operación independiente de cada descompresor. También, como la red compresora, los descompresores 80, 82 y 84 comparten una tabla de búsqueda (LUT) común en la unidad 44. La red 40, 42 puede usar diferentes tipos de compresión, incluyendo cuantificación y transformación, dependiendo de los requerimientos de un sistema particular. El sistema descrito usa compresión de longitud fija, aunque también se puede usar compresión de longitud variable, o compresión fija/variable adaptable. El tipo de compresión que se use debe exhibir de preferencia ciertas características. Cada bloque se debe comprimir una cantidad determinada previamente, de tal manera que se determine fácilmente la ubicación de cada bloque comprimido. Cada bloque se debe comprimir/descomprimir independientemente de los otros bloques. De esta manera, se puede accesar cualquier bloque sin tener que leer ningún otro bloque. El proceso de compresión/descompresión no debe producir artefactos objetables en una imagen reproducida. Un factor de compresión del 25 por ciento es esencialmente transparente en comparación con el procesamiento del descodificador convencional sin esa compresión. A una compresión del 50 por ciento, los resultados son menos transparentes, pero son aceptables los resultados visibles, y no se considera que sean significativamente diferentes en comparación con el procesamiento del descodificador convencional sin compresión ni reducción de memoria. La Figura 20 ilustra la red de compresión fija que se usa en cada uno de los recompresores 40 y 42 en la Figura 1. La red de compresión emplea un ciclo de modulación de código de impulso diferencial (DPCM, por sus siglas en inglés) con predicción adaptable. La filosofía de ese procesamiento DPCM con predicción es remover la redundancia mutua entre pixeles sucesivos, y producir solamente información de diferencia. A. K. Jain en Fundamentáis of Digi tal Image Processing (Prentice-Hall International) , página 483 et seq. describe generalmente este proceso bien conocido. Antes de describir el circuito de la Figura 20, se hace referencia a la Figura 22. La Figura 22 muestra una configuración ejemplar de un grupo de cuatro pixeles a, b, c y x (el pixel que se va a predecir) asociados con la operación de procesamiento de predicción de la red DPCM. Se hace referencia a este grupo de pixeles en el bloque de 8x8 pixeles que se muestra en la Figura 22. Como se muestra en la Figura 22, se explora cada bloque de pixeles a manera de trama, de izquierda a derecha en una dirección hacia abajo. En este ejemplo, para información de luminancia, se retarda el pixel b en un intervalo de pixel con relación al pixel c, el pixel a se retarda en un intervalo de siete pixeles con relación al pixel b, y el pixel x se retarda un intervalo de pixel con relación al pixel a. Para información de crominancia, el pixel "a" se retarda en un intervalo de tres pixeles. En el procesamiento de predicción DPCM se predice el pixel en curso que se está codificando, mediante el uso de pixeles previamente codificados, que son conocidos para los descompresores 62, 80, 82 y 84 (Figura 1) . En la Figura 22, en donde el pixel x es el valor de pixel que se va a codificar de manera predictiva, los pixeles a, b y c se han codificado de manera predictiva previamente, y son conocidos para las redes de descompresión. Una predicción de x, prec}, usa los valores de a, b y c, de conformidad con el siguiente seudocódigo, que describe el lógico del algoritmo que se va a usar: si (|a-c| < e1 && |b-c| > e2, Xpred = k además si (|b-c| < e && |a-c| > e2, X.pred = a además xpred = (a+b) 2 Los valores el y e2 son constantes que representan umbrales determinados previamente. Este algoritmo se usa solamente para los pixeles no localizados en la primera fila de la primera columna del bloque que se está procesando. Se manejan algunas excepciones como sigue: el primer pixel en un bloque se codifica muy finamente sin referencia a ningún otro pixel, los pixeles en la primera fila usan el valor de pixel a como el predictor, y los pixeles en la primera columna usan el valor de pixel b como el predictor. Básicamente, este algoritmo intenta detectar una orilla. En el primer caso, se sugiere una orilla vertical entre los pixeles c y b, y entre los pixeles a y x. De esta manera b es el mejor predictor. El segundo caso sugiere una orilla horizontal entre a y c, y entre b y x. De esta manera a es el mejor predictor. En el tercer caso, no se encuentra ninguna orilla obvia. En este caso tanto a como b son predictores igualmente buenos, de tal manera que se usa su valor promedio. La red de compresión de la Figura 20 cuantifica los valores de pixeles de diferencia (residual) producidos como resultado del procesamiento DPCM. La Figura 20 usa un ciclo DPCM intercalado con dos retardos determinados previamente y paralelo, en lugar de procesamiento en serie. El circuito que se muestra en la Figura 20 corresponde a aquel que emplea el recompresor 40 en la Figura 1, para procesar los datos A y C de pixeles intercalados en la secuencia que se muestra en la Figura 5. El compresor 42 usa un circuito similar para comprimir los datos B y D de pixeles intercalados. Puesto que la red de la Figura 20 comprime un valor residual, el ciclo de predicción debe terminar el procesamiento de un pixel de un bloque dado, antes de que aparezca el pixel correspondiente, colocalizado del siguiente bloque correspondiente. Los datos del bloque de pixeles intercalados se mueven independientemente a través del circuito, lo cual es importante en un sistema codificado de longitud variable, con datos de entrada y salida de diferentes velocidades. En la Figura 20, una secuencia de datos de pixeles intercalados a, c, a, c, ... de bloques A, C, ... de pixeles intercalados respectivos (Figura 5) se somete a un retardo de un pixel mediante la unidad 230. Se aplica un valor de pixel dado que se va a comprimir a una entrada de no inversión (+) de un combinador 210 de sustracción. La entrada de inversión (-) del combinador 210 recibe valores de pixeles predichos del predictor 215. La salida del valor de pixel residual
(diferencia) del combinador 210 se somete a cuantificación y a cuantificación inversa por medio de los elementos 220 y 222 respectivamente. La cuantificación que proporciona el elemento 220 es fija en este ejemplo, y garantiza una cantidad fija deseada de compresión de datos. Los elementos 230, 232, 234, 236, 238, 240 y 242 (Z_1) exhiben un retardo de un ciclo de cronómetro. Se toman dos cronómetros para hacer avanzar un pixel debido a la intercalación de datos. Los elementos 238, 234 y 236 exhiben retardos de dos, seis y ocho ciclos de cronómetro, respectivamente, como consecuencia del procesamiento de la red de un flujo de datos de dos bloques de pixeles intercalados. La salida del cuantificador 222 inverso aproxima la entrada al cuantificador 220, pero difiere en un pequeño desfasa iento DC provocado por el error de cuantificación. La salida del sumador 228, Input', difiere de la señal de Entrada al combinador 220 por esta misma cantidad. En la Figura 27 se muestra la relación de cronometraje de una secuencia de pixeles a, c, de entrada intercalados durante muchos ciclos de cronómetro, con respecto a los elementos del circuito seleccionados de la Figura 20, y se describirá subsecuentemente con detalle. La red de la Figura 20 también incluye un sumador 228 y los multiplexores 225 y 235 configurados como se muestra. Estos multiplexores comprenden la red de predicción de pixel, en asociación con el lógico 215 de predicción y los elementos 234, 236 y 238 de retardo de pixel. El estado de conmutación del Mux 235 se determina mediante las señales de control de luminancia (Y) y de crominancia (C) aplicadas al mismo. Las señales de control Y, C se producen como una función de la intercalación de los bloques de luminancia y crominancia, como se muestra en la Figura 3. La apariencia de las señales de control Y, C es el resultado de un proceso de conteo/cronometraje de pixeles, de tal manera que los pixeles de crominancia se procesan en secuencia después de los pixeles de luminancia del macrobloque. Las señales de control Y y C se usan para controlar la cantidad de retardo en el circuito de predicción según sea apropiado para el procesamiento del bloque de luminancia de 8 x 8, o el procesamiento del bloque de crominancia de 4 x 8. El procesamiento de los pixeles de crominancia se habilita cuando se aplica una señal de control de nivel lógico "1" al mux 235, provocando que el mux 235 pase los datos que aparecen en su entrada "1". El procesamiento de los datos de pixeles de luminancia se habilita cuando se aplica una señal de control de nivel lógico "0" al mux 235, provocando que el mux 235 pase los datos aplicados a su entrada "0" desde la salida de la unidad 236 de retardo. En el caso de un bloque de luminancia de 8 x 8 , el pixel de predicción "x" está 8 pixeles alejado. El mux 235 conmuta las trayectorias de retardo de entrada para producir este retardo más grande. Los datos de salida de pixeles residuales comprimidos (cuantificados) se producen en la salida del cuantificador 220. Estos datos comprimidos (Figura 6) se someten a un retardo de un ciclo de cronómetro mediante la unidad 242, antes de que se les someta a procesamiento adicional, incluyendo la codificación de Huffman. En particular se notan dos elementos 232 y 240, de retardo biestable. El uso de los elementos 232 y 240 produce las trayectorias ?l y ?2 de retardo dobles, y permite la predicción de pixeles adyacentes más bien que de todo otro pixel. La trayectoria ?l de retardo comprende componentes de circuito entre la salida del retardo 232 y la entrada del retardo 240. La trayectoria ?2 de retardo comprende componentes de circuito entre la salida del retardo 240 y la entrada del retardo 232. Cada una de las unidades 232 y 240 de retardo representa un retardo de un cronómetro de aproximadamente 18 nanosegundos, o un ciclo de cronómetro de 54 MHz. Con esta configuración se cronometra un pixel de salida comprimido fuera del circuito, al momento en que se está cronometrando un pixel que se va a comprimir dentro del circuito. De esta manera, se produce un pixel de salida comprimido por cada pixel de entrada que se va a comprimir, en tiempo real. En otros sistemas se pueden usar los principios descritos anteriormente con cuatro veces la intercalación, es decir, cuatro tuberías de datos y cuatro trayectorias de retardo, en lugar de dos, en el sistema de la Figura 20. Después se pueden dividir los ciclos de procesamiento críticos en cuatro partes para facilitar la sincronización, lo cual puede permitir el uso de un cronómetro más rápido. También en este caso, una tabla de búsqueda compartida conservaría el área de chip integrado. Aunque los bloques de pixeles de entrada están intercalados en este ejemplo, los datos de entrada no necesitan estar intercalados en todos los sistemas.
El uso de las trayectorias ?l y ?2 de retardo dobles facilita la confección del retardo de la red global según se necesite, por ejemplo, un retardo de aproximadamente 18 nanosegundos en este caso. A este respecto, se nota que el extenso procesamiento de la señal, asociado con cada trayectoria de retardo proporciona diferentes elementos para confeccionar los retardos. Los retardos que exhiben dos trayectorias de retardo no son críticos. Los circuitos se optimizan de preferencia alrededor del cronómetro, de tal manera que cada retardo exhibe aproximadamente un ciclo de cronómetro del cronómetro de 54 MHz periódico. Sin embargo, en otros sistemas pudiera ser apropiado confeccionar los ciclos de cronómetro con respecto a un circuito dado, por ejemplo, para producir ciclos de cronómetro irregulares o no periódicos. Las dos trayectorias de retardo no necesitan exhibir retardos de procesamiento de señal iguales, sino que en el sistema descrito se prefieren retardos aproximadamente iguales. Se pueden optimizar dos trayectorias de procesamiento de señal tales como ?l y ?2 , para el retardo de procesamiento de señal más fácilmente que una trayectoria global, como sería el caso en la ausencia de los elementos 232 y 240. En el caso de dos trayectorias, como se define mediante los elementos 232 y 240, cada trayectoria puede empezar a operar sin esperar los resultados de la otra trayectoria. En el caso de un sistema de una sola trayectoria, se debe procesar cada valor de pixel (por ejemplo, el valor de pixel en el nodo en la entrada a los elementos 234, 215 y 225) mediante muchas funciones, incluyendo lógico de predicción, sumador, cuantificación y cuantificación inversa, y aparecen al final de la trayectoria, antes de empezar el siguiente ciclo de cronómetro. En adición, ese valor de pixel debe ser estable en ese momento. Esta es una severa restricción que no está presente en el sistema descrito de múltiples trayectorias, que exhibe más libertad. La configuración de la Figura 20, cuando está incluida en el hardware tal como en un circuito integrado, es capaz de producir una salida de pixel comprimido para toda entrada de pixel, en tiempo real a una velocidad de cronómetro de 54 MHz. La configuración de la Figura 20 da más libertad para confeccionar los retardos de procesamiento de señal, y consume significativamente menos área superficial en un dispositivo integrado, para producir el mismo resultado. Además, el área superficial reducida exhibe menos capacitancia, dando como resultado una capacidad de velocidad de operación más rápida y menos consumo de energía. También es posible el uso de un cronómetro más rápido. En ese caso la intercalación todavía produciría un beneficio en términos de área reducida del circuito integrado (por ejemplo, menos unidades de compresión y unidades de soporte asociadas) , y mejor optimización del sistema, usando herramientas de diseño automatizadas.
Con un cronómetro se deben sintetizar todas las compuertas lógicas de una vez . El uso de dos trayectorias de retardo como se describió, simplifica grandemente la síntesis de las compuertas lógicas para las redes tanto compresora como descompresora, cuando el diseño del circuito integrado envuelve el uso de codificación de lenguaje de alto nivel VHDL (como se conoce), a partir de la cual se sintetizan las compuertas. Con dos trayectorias de retardo, el diseño del lógico automático converge rápidamente, de tal manera que las compuertas se sintetizan más rápido, más exactamente y más reproduciblemente . Aparte de facilitar un diseño más reproducible, las trayectorias de procesamiento doble descritas en la Figura 20, promueven el uso de la intercalación para producir una ventaja de amplitud de banda, y el uso de elementos lógicos (por ejemplo, tablas de búsqueda) compartidos. Esas trayectorias de procesamiento dobles también facilitan la división del diseño en celdas o módulos funcionales, según lo requiera un sistema particular, tales como las funciones de cálculo de predicción y compresión en esta modalidad. Se pueden confeccionar esos módulos según sea necesario para ajustarse a los requerimientos de un diseño de sistema particular. Con respecto a la operación del compresor intercalada se nota que se ha encontrado preferible usar un compresor con datos intercalados, usando dos ciclos de un cronómetro rápido dado, que usar dos circuitos del compresor, cada uno cronometrado a la mitad del cronómetro dado. El uso de dos ciclos de un cronómetro facilita la optimización de cronometraje mediante la intercalación como se describió, y la intercalación permite dos veces tantos datos que se van a procesar. En el sistema descrito, la predicción de un valor de pixel dado se realiza durante un ciclo de cronómetro, mientras que los cálculos (tales como cuantificación y cuantificación inversa) para ese pixel se realizan durante el siguiente ciclo de cronómetro. Por ejemplo, para los bloques A y C de pixeles intercalados, se predicen los datos de pixeles del bloque A durante un ciclo de cronómetro de 54 MHz, mientras se están realizando los cálculos de cuantificación en los datos de pixeles del bloque C. Durante el siguiente ciclo de cronómetro, los datos de pixeles del bloque A se someten a cálculos de cuantificación mientras se están prediciendo los datos de pixeles del bloque C. De esta manera el sistema predice y calcula alternativamente para diferentes bloques intercalados. El uso de dos ciclos del cronómetro de 54 MHz da la oportunidad de optimizar los retardos del circuito, usando las herramientas apropiadas para la fabricación del circuito del hardware. En la Figura 27 se ilustra el proceso de predecir los valores de pixeles y calcular los valores de compresión de manera alternativa. La Figura 27 ilustra el proceso mediante el cual se procesan los pixeles "a" y "c" intercalados de los bloques A y C de pixeles intercalados asociados a través de muchos ciclos del cronómetro de compresión de 54 MHz. Suponga que el procesamiento empieza con el primer pixel al del primer bloque Al de pixeles. Considerando la Figura 27 con la Figura 20, el primer ciclo de cronómetro provoca que el pixel al se cronometre desde la entrada del registro (circuito electrónico que alterna entre dos estados) 230 hasta su salida, por medio de lo cual se cuantifica (comprime) el pixel al mediante la unidad 220, y se cuantifica inversamente mediante la unidad 222, antes de aparecer en la entrada del registro 232, todo dentro del primer ciclo de cronómetro. En este punto el pixel al se designa como el pixel al' porque en este punto el pixel al se aproxima al pixel al de entrada, pero exhibe un pequeño desfasamiento DC debido al error de cuantificación asociado con el procesamiento mediante las unidades 220 y 222. El segundo ciclo de cronómetro provoca que aparezca el siguiente pixel, a saber el primer pixel cl intercalado del bloque Cl de pixeles intercalados, que se va a procesar de una manera similar a aquella descrita anteriormente para el pixel al. En adición, el segundo ciclo de cronómetro provoca que el pixel al' se cronometre a la salida del registro 232, y mediante lo mismo a la red de predicción, incluyendo las unidades 215 y 225. Esto da como resultado un valor predicho del pixel al' que aparece en la entrada del registro 240. De esta manera, durante el segundo ciclo de cronómetro se comprime (cuantifica) el pixel cl, mientras se somete al pixel al' previamente comprimido al procesamiento de predicción. Durante el tercer ciclo de cronómetro, se transporta el pixel al' procesado de manera predictiva a la salida del registro 240, combinado de manera sustractiva en la unidad 210, comprimido mediante la unidad 220 y aparece como el valor al'' de salida comprimido en la entrada del registro 242 de salida. El pixel al' ' se cronometra a partir de este registro a los circuitos de codificación de Huffman subsecuentes, en el siguiente ciclo de cronómetro. También durante el tercer ciclo de cronómetro, mientras se esta produciendo el valor al' ' de pixel comprimido, se está sometiendo el pixel cl' intercalado a procesamiento de predicción mediante la unidad 215. Este proceso continúa para los pixeles an, cn restantes de los bloques A y C intercalados, por medio de lo cual durante cada ciclo de cronómetro se someten los pixeles intercalados a procesamiento de predicción y compresión, respectivamente. Sin la intercalación de datos, el procesamiento tendría que progresar desde el valor de pixel al, por ejemplo, al valor al'' de salida comprimido en un ciclo de cronómetro. Este requerimiento presenta una velocidad severa y restricción de cronometraje que se evita mediante el procesamiento intercalado como se describió. El procesamiento intercalado también permite la cuantificación compartida y el lógico de cuantificación inversa, dando como resultado menos área del circuito integrado y consumo de energía. La operación del compresor intercalado descrito se puede usar independientemente de la compresión MPEG, y como eso representa un sistema de procesamiento económico para usarse en aplicaciones de video del consumidor (por ejemplo, sistemas de video caseros, tales como VCRs y cámaras de video) para proporcionar una compresión de predicción del 25 por ciento-50 por ciento, en donde no se requiere compresión MPEX más compleja y costosa. También se pueden usar cuatro en lugar de dos bloques de pixeles intercalados, con un cronómetro más rápido. En ese caso se puede procesar inmediatamente un bloque entero de cuatro bloques de 8 x 8 pixeles de luminancia. En el sistema descrito cada red descompresora está configurada como se muestra en la Figura 21. El circuito descompresor es similar al circuito compresor de la Figura 20, excepto que el elemento 210 es un sumador de 9 bits, y se han quitado los elementos 220, 222, 228 y 242. La trayectoria ?2 envuelve menos procesamiento que la trayectoria ?l. Sin embargo, hasta la inclusión del sumador 231 de 9 bits en la trayectoria ?2 añade una restricción de tiempo de aproximadamente 9 milisegundos, lo cual complica el diseño del descompresor. A este respecto se nota que el sumador 231 no puede empezar a calcular hasta que el mux 225 haya recibido los datos válidos. De esta manera, es benéfico reducir las restricciones de cronometraje del ciclo. El uso de la trayectorias de retardo dobles consigue esto, así como también simplifica grandemente el diseño global. Para la descompresión, se ha encontrado que la trayectoria ?l de predicción es la trayectoria más importante.
Se ha encontrado que la trayectoria ?2 es más importante en el caso de la compresión, en donde las manipulaciones de datos intensas dictan el uso de un cronómetro más lento de 54 MHz. Como se notó anteriormente, cada descompresor en la red 80-84 opera independientemente, con el objeto de que se envíen rápidamente los datos de pixeles. La transferencia de datos frecuentemente se realiza por medio de dispositivos cronometrados, tales como circuitos electrónicos que alternan entre dos estados o registros. Cuando los datos que se van a entubar se derivan a partir de dos o más fuentes, por ejemplo, en el caso de datos intercalados, en cualquier momento en el tiempo los datos en algunos registros son de una fuente, mientras que los datos en otros registros son de otra fuente. Los datos fluyen juntos en respuesta a un cronómetro de datos común, pero los datos en registros sucesivos son mutuamente independientes. Se pueden evitar los problemas de operación del sistema cuando se inicializan y detienen sincrónicamente ambas fuentes de datos, siempre y cuando el flujo de datos (tubería) se inicialice y detenga al mismo tiempo. Ocurre un problema cuando una fuente deja de mandar datos mientras la otra fuente continúa mandando datos. En las tuberías intensivas de datos tales como en los procesadores de señales HDTV, es crítico el gran número de cálculos/segundo para producir una imagen exacta, de alta calidad para despliegue visual. Esos sistemas no pueden permitir la interrupción del flujo de datos, cada vez que una o dos (o más) fuentes de datos dejan de mandar datos. En esos casos es importante controlar el flujo de datos de la tubería, de tal manera que se mantenga un cambio de fases apropiado de los datos de salida que se proporcionan desde una fuente ininterrumpida, cuando se interrumpe la otra fuente de datos. Es importante que no se detenga el cronómetro de datos en un sistema intensivo de procesamiento de imagen de datos, tal como un sistema HDTV. En esos sistemas ciertos componentes tales como los subsistemas de compresión y descompresión, tienen diferentes requerimientos de procesamiento de datos de entrada y salida, y diferentes velocidades de datos. Por ejemplo, se deben sacar continuamente los datos de pixeles de salida descomprimidos para despliegue visual, lo cual requiere un cronómetro continuo, pero los datos de entrada comprimidos que se van a descomprimir pueden llegar esporádicamente con intervalos nulos cuando no está presente un cronómetro. Si se detuviera el cronómetro de descompresión cuando los datos de entrada están ausentes, también se detendría el cronometraje fuera de los datos de pixeles descomprimidos. Esto sería destructor en un procesamiento de imagen de alta definición intensivo de datos y sistema de despliegue visual. De esta manera, la repetición de los datos es conveniente bajo ciertas condiciones, como se describirá, particularmente cuando se emplea la descodificación de Huffman en el proceso de descompresión. En el sistema descrito, la salida de la red de compresión (Figura 20) se somete a la codificación de Huffman. La descodificación de Huffman está asociada con la descompresión en un descodificador . Puesto que la codificación/descodificación de Huffman es un proceso estadístico con diferentes velocidades de datos de entrada y salida, debido a las diferentes longitudes de palabras codificadas, se usan memorias intermedias para acomodar el contenido de datos variable. Como se verá con respecto a las Figuras 23 y 24, cuando se procesan los datos de fuentes separadas mediante una secuencia entubada de registros, se usa la retroalimentación de todo otro registro para mantener un componente de los datos (desde una primera fuente) que fluye a través de la tubería, mientras que el otro componente de los datos (desde una segunda fuente) se mantiene repitiendo sobre sí mismo. Con esta técnica, con los datos intercalados a partir de las fuentes, se pueden procesar los datos a través de la tubería a una velocidad deseada, predicha cuando una de las fuentes de datos ha dejado de proporcionar datos. La repetición de datos es equivalente a detener el cronómetro de datos, pero sin los problemas de sincronización de inicio-detención. Se prefiere el uso de la repetición de datos al uso de ningún dato (por ejemplo, palabras nulas) , puesto que se perderían los ciclos de datos en los retardos de recuperación. La repetición de datos es importante para manutener la integridad del flujo de datos, y no es tan devastador como no mandar ningún dato. El proceso de repetición de datos puede repetir los datos durante la duración de un bloque de 8x8 pixeles (64 ciclos de cronómetro) , sin introducir complicaciones al sistema. También son posibles retardos de repetición más largos, dependiendo de la naturaleza del sistema y del procesamiento asociado. Por ejemplo, en el curso del procesamiento de predicción, se almacenarán hasta seis bloques en la memoria. En ese caso, se puede mantener de manera efectiva un bloque en su lugar (repetido) en la presencia de una interrupción de la fuente, mientras se están obteniendo otros bloques de la memoria. Se espera que se puedan tolerar retardos de repetición a través de 1 ó 2 intervalos de macrobloque . Se prefiere la repetición de datos a la adición de datos nulos cuando ocurre una interrupción de la fuente, porque el procesamiento de datos nulos es menos eficiente. Igual que otros datos, los datos nulos se almacenan en la memoria, y los ciclos de cronómetro son recuperación desperdiciada de una condición de datos nulos, por ejemplo, recargar datos válidos después de que se remueven los nulos . Esta es una consideración importante en un sistema intensivo de datos, tal como un sistema de televisión de alta definición, en donde es muy importante la amplitud de banda de la memoria, y se debe reducir tanto como sea posible el número de ciclos de cronómetro requeridos para el procesamiento de datos. En la Figura 23 los tubos de entrada transportan respectivamente los datos X e Y desde fuentes de datos separadas, por ejemplo, desde ubicaciones separadas en una memoria tal como la memoria 60 de marco en la Figura 1. Los datos X e Y son mutuamente independientes y no están en un orden particular, es decir, pueden estar intercalados o no, y representan cualesquier datos de pixeles que se requieran desde la memoria. En este ejemplo los datos X e Y representan respectivamente información de movimiento hacia adelante y hacia atrás para que la use la red de compensación de movimiento (Figura 1) . Los datos X se deben procesar aún si los datos Y no están presentes, y viceversa. El circuito de la Figura 23 transporta los datos desde la memoria 60 hasta la red 80-84 descompresora en la Figura 1, y está bien adecuado para procesamiento MPEG. Se puede producir una imagen en P o B codificada por MPEG, pero podría suceder que un macrobloque dado pudiera no tener uno o el otro de los datos delantero y trasero para procesamiento. La configuración de la Figura 23 reconoce esta posibilidad. Las memorias 332 y 334 intermedias FIFO de entrada están asociadas con cada entrada para un bloque de datos. En este ejemplo las memorias 332 y 334 intermedias representan las memorias intermedias de entrada para cada descompresor 80, 82 y 84 en la Figura 1. cada memoria intermedia manda una señal Req solicitando datos de la memoria mediante el controlador 134 de memoria en momentos apropiados (por ejemplo, en respuesta al procesamiento que envuelve predicciones de dirección individual contra doble) , y recibe una señal de reconocimiento Ackn de regreso de que los datos están disponibles para ser enviados. El flujo de datos entre las fuentes de memoria y las memorias intermedias se controla mediante las señales de control de Leer/Escribir datos como se sabe. Los datos X, Y de entrada se multiplexan sobre una línea de datos común por medio de un Mux 336, en respuesta a un cronómetro de datos CLK/2, produciendo una tubería de datos X, Y alternantes en la salida del Mux 336. Los datos del Mux 336 se procesan mediante una serie de secciones 360 y 364 del registro de retroalimentación. El número de secciones que se usan es una función del número de elementos de datos intercalados, dos en este caso. La sección 360 incluye un multiplexador 338 de entrada y los registros (circuitos electrónico que alternan entre dos estados) 340 y 342 en cascada, configurados como se muestra. Cada elemento del registro se cronometra a 81 MHz mediante la señal CLK. La sección 364 se configura de manera similar. La salida del último elemento 350 del registro se aplica a la red de descompresión de datos de la Figura 1, que descomprime los datos incluyendo la información de predicción de movimiento hacia adelante y hacia atrás . Los datos se deben descomprimir tan pronto como el descompresor reciba éstos. El descompresor no puede esperar hasta que estén llenas las memorias 332, 334 intermedias X, Y. En cada sección del registro se proporciona retroalimentación desde la salida del último registro en esa sección, hasta una entrada de control de conmutación del multiplexor asociado, por ejemplo, desde la salida del registro 342 hasta la entrada "1" del Mux 338. La red constituida por las secciones 360 y 364 del registro de retroalimentación opera como una muestra digital selectiva, y mantiene a la red con dos modos de operación. En un modo se muestrean los datos, y se mantienen para producir la operación de repetición de datos. En otro modo los datos se transmiten normalmente, sin repetición. La unidad 356, por ejemplo, un comparador digital, detecta el estado de las líneas de señales Req y Ackn. Si una memoria intermedia FIFO genera una señal Req y no se recibe un Ackn de regreso desde la fuente de memoria, la unidad 356 genera una señal de Halt (detener) en un nivel, o estado "1".
Los datos fluyen normalmente a través de la tubería cuando la señal Halt exhibe un estado "1". Cuando no se recibe una señal de Ackn desde una entrada dada, la señal Halt provoca que se repita, o recircule el último componente válido de datos, en cada sección del registro. Esto se ilustra mediante las formas de onda de la Figura 24, como se describirá. Si no se recibe una señal de Ackn desde las fuentes de datos de entrada tanto X como Y, se detiene el cronómetro y no se recircula ningún dato. De esta manera, cuando la señal Halt exhibe un nivel
0, de tal manera que los datos fluyen normalmente a través de la tubería, los datos X e Y de entrada se mantienen en la relación de fase intercalada (cronómetro) apropiada, de tal manera que el cronometraje provoca que los datos de salida se alternen entre los datos X de origen y los datos Y de origen. Es importante esta relación de fase para evitar mezclar los datos. En este caso los datos de salida de cada sección del registro (por ejemplo, en la salida de los registros 342 y 350) corresponden a los datos de entrada dos cronómetros antes (por ejemplo, Salida = Entrada (Z~2) ) . Cuando la señal Halt exhibe un nivel 1, el Mux (338 ó 344) asociado desacopla la señal de entrada de la salida, de tal manera que cada sección del registro simplemente recircula los datos. En las Figuras 25 y 26, respectivamente, se ilustran estas condiciones de operación.
La Figura 24 ilustra una condición en donde, por ejemplo, la señal Halt exhibe un nivel 1 solamente cuando se han detenido ciertos datos de la fuente de datos Y. Mientras la señal Halt está activa, se recirculan (repiten) los datos Y hasta que la señal Halt regresa a un nivel 0 normal y los datos Y fluyen nuevamente. Durante este tiempo los datos desde la fuente X fluyen sin interrupción. En la Figura 24 la forma de onda de Entrada contiene una secuencia intercalada de componentes de los datos X e Y. En este ejemplo no se ha recibido una señal Ackn para el componente Y2 después del componente X2. De esta manera, el estado normalmente de "0" de la señal Halt desde la unidad 356 cambia a un estado "1", provocando que cada sección 360 y 364 del registro repita el último componente de Y válido, en este caso Yl, siempre y cuando la señal Halt exhiba el estado "1". La señal Halt se acopla a una entrada de control de los multiplexores 238 y 244, de tal manera que un estado "1" de la señal Halt provoca que cada multiplexor transporte la señal acoplada a su entrada de conmutación "1", en este caso los componentes de los datos Y. Los componentes sombreados de la forma de onda de la señal de Entrada representan el componente Y2 faltante, es decir, la segunda fuente no está emitiendo ningún componente Y después del componente Yl . El componente Yl se repite durante tres ciclos de Req/Ackn, por medio de lo cual se generan tres señales Halt, y el componente Yl se repite tres veces, como se muestra en la forma de onda de Salida de la Figura 24. Después, la segunda fuente genera una señal Ackn para el componente Y2 , que aparece en la secuencia de la forma de onda de Salida después del componente X5 de datos . La señal Halt también se proporciona a una entrada de control de la red descompresora asociada para dar instrucciones al descompresor para que ignore los datos repetidos en el flujo de datos. Como se mencionó anteriormente, los componentes de los datos X, Y intercalados son independientes y no necesitan seguirse unos a los otros en ninguna secuencia particular (numérica) . Solamente es necesario que los datos asociados con una entrada dada sigan una secuencia prescrita, por ejemplo, X5 sigue a X4 , que sigue a X3 , que sigue a X2 y así sucesivamente. No hay ninguna consecuencia si, por ejemplo, Y2 sigue a X5. La Figura 28 ilustra la red de la Figura 23 configurada para operación paralela. Se proporcionan los datos de entrada intercalados desde el Mux 336 (Figura 23) mediante los multiplexores 285 y 286 a los registros 280 y 282 paralelos. Las salidas desde estos registros se multiplexan sobre una trayectoria de salida de datos mediante el Mux 284. La operación de los multiplexores 284, 285 y 286 se controla mediante las señales de control Halt 1 y Halt 2, que están asociadas con las fuentes respectivas, y producen un efecto, como se describe en conexión con la Figura 23.
Claims (8)
1. En un sistema para procesar un flujo de datos digitales de información que representa imágenes codificadas MPEG, una red de procesamiento de señal compatible con MPEG que comprende : una red de entrada (12, 14...) para recibir un flujo de datos, de datos compatibles con MPEG comprimidos; un descompresor (18, 20, 21, 22) para descomprimir los datos compatibles con MPEG comprimidos, para producir datos descomprimidos; una pluralidad de compresores (40, 42) similares, que operan concurrentemente para recomprimir respectivamente diferentes flujos de datos que se derivan a partir de los datos descomprimidos, para producir datos recomprimidos; y una memoria (60) para almacenar datos recomprimidos de la pluralidad de compresores.
2. Un sistema, de conformidad con la reivindicación 1, en donde dichos datos compatibles con MPEG están en la forma de bloques de pixeles; la pluralidad de compresores incluyen un primer compresor (40) para recomprimir un primer componente (a, c) de los datos, y un segundo compresor (42) similar para recomprimir un segundo componente (b, d) de dichos datos; y la memoria almacena dichos primero y segundo componentes de datos .
3. Un sistema, de conformidad con la reivindicación 1, en donde dichos datos compatibles con MPEG están en la forma de bloques de pixeles; la pluralidad de compresores incluyen un primer compresor para recomprimir un primer flujo (Pl) de datos, de datos (a, c) de pixeles intercalados, y un segundo compresor (42) para recomprimir un segundo flujo (P2) de datos, de datos (b, d) de pixeles intercalados; y la memoria almacena los datos recomprimidos a partir del primer flujo de datos intercalados, y los datos a partir del segundo flujo de datos intercalados.
4. Un sistema, de conformidad con la reivindicación 1, caracterizado porque también incluye: una red (24, 27) de intercalación que responde a dicho flujo de datos para derivar a partir del mismo múltiples flujos de datos a partir de datos de pixeles intercalados en una secuencia determinada previamente para procesamiento mediante dichos múltiples procesadores, respectivamente.
5. Un sistema, de conformidad con la reivindicación 4 , en donde los datos de pixeles intercalados comprenden un macrobloque compatible con MPEG.
6. Un sistema, de conformidad con la reivindicación 4 , en donde la red de intercalación produce un primer flujo de datos de primero y segundo componentes (A, C) de datos intercalados, y un segundo flujo de datos de tercero y cuarto componentes (B, D) de datos intercalados, para procesamiento respectivo mediante primero y segundo compresores que constituyen dichos múltiples compresores.
7. Un sistema, de conformidad con la reivindicación 6 , en donde los primero, segundo, tercero y cuarto componentes de datos comprenden un macrobloque compatible con MPEG.
8. Un sistema, de conformidad con la reivindicación 1, caracterizado porque también incluye: una red (80-84) de descompresión para descomprimir los datos recomprimidos de la memoria; en donde la pluralidad de compresores y la red de descompresión están incluidos en un ciclo DPCM. . Un sistema, de conformidad con la reivindicación 4 , en donde el ciclo DPCM incluye una red (90) de compensación de movimiento. 10. Un método para procesar un flujo de datos a partir de datos que representan imágenes codificadas MPEG comprimidos, que comprende los pasos de: descomprimir los datos comprimidos para producir datos descomprimidos; recomprimir una primera porción de dichos datos (a, c) descomprimidos, usando un primer recompresor (40) para producir primeros datos recomprimidos; recomprimir una segunda porción de los datos (b, d) descomprimidos, usando un segundo recompresor (42) para producir segundos datos recomprimidos; y almacenar los primeros y segundos datos recomprimidos en la memoria (60) . 11. Un método, de conformidad con la reivindicación 10, caracterizado porque también incluye los pasos de: descomprimir dichos primeros y segundos datos recomprimidos para producir más datos descomprimidos; y procesar por DPCM esos datos descomprimidos adicionales . 12. Un método, de conformidad con la reivindicación 10, en donde el procesamiento DPCM incluye: el primero y segundo pasos de recompresión, y un paso de procesamiento de compensación de movimiento. 13. Un método, de conformidad con la reivindicación 10, en donde la primera porción de los datos descomprimidos sometidos al primer paso de recompresión comprende un primer grupo de datos (A, C) intercalados; y la segunda porción de los datos descomprimidos sometidos al segundo paso de recompresión comprende un segundo grupo de datos (B, D) intercalados. 14. Un método para procesar un flujo de datos de información codificada MPEG comprimida que representa datos de pixeles de imagen, que incluye un método de descodificación compatible con MPEG para producir datos de pixeles finalmente descodificados, para procesamiento mediante un procesador (70) de despliegue visual, el método de descodificación comprendiendo los pasos de : descomprimir los datos comprimidos para producir datos descomprimidos; derivar datos de pixeles compensados de movimiento finalmente descodificados, a partir de dichos datos de pixeles; y almacenar datos obtenidos del paso de derivación en la memoria (60) ; en donde el paso de derivación incluye el paso de recomprimir respectivamente diferentes flujos de datos derivados a partir de los datos descomprimidos, usando múltiples compresores (40, 42) similares concurrentemente operativos para producir datos recomprimidos ,- y el paso de almacenamiento incluye el paso de almacenar los datos recomprimidos de dichos múltiples compresores . 15. Un método, de conformidad con la reivindicación 14 , en donde : el paso de derivación incluye un paso de procesamiento de señal DPCM; y el método incluye los pasos adicionales de: (a) separar el flujo de datos en múltiples flujos (Pl, P2) de datos que contienen componentes de datos intercalados; y (b) proporcionar dichos múltiples flujos de datos intercalados a los compresores 30, respectivamente. 16. Un método, de conformidad con la reivindicación 15, en donde: el paso de separación produce un primer flujo (Pl) de datos de primero y segundo componentes (A, C) de datos de pixel intercalados, y un segundo flujo (P2) de datos de tercero y cuarto componentes (B, D) de datos de pixeles intercalados que comprende un macrobloque compatible con MPEG. 17. En un sistema para procesar un flujo de datos digitales de información que representa imágenes codificadas por MPEG, una red de procesamiento de señal compatible con MPEG que comprende : una red (12, 14) de entrada para recibir un flujo de datos, de datos compatibles con MPEG comprimidos en la forma de bloques de pixeles; una red (24, 27) de intercalación que responde a dicho flujo de datos para derivar a partir del mismo múltiples flujos de datos a partir de datos de pixeles intercalados en una secuencia determinada previamente para procesamiento mediante compresores respectivos; un descompresor (18, 20, 21, 22) para descomprimir los datos compatibles con MPEG comprimidos, para producir un flujo de datos descomprimidos; una pluralidad de compresores (40, 42) similares, concurrentemente operativos para recomprimir el flujo de datos descomprimidos, para producir datos recomprimidos, incluyendo la pluralidad de compresores un primer compresor (40) para recomprimir un primer flujo (Pl) de datos, de datos (a, c) de pixeles intercalados, y un segundo compresor (42) para recomprimir un segundo flujo (P2) de datos, de datos (b, d) de pixeles intercalados derivados también del flujo de datos MPEG descomprimidos; y una memoria (60) para almacenar datos recomprimidos de dichos primero y segundo flujos de datos intercalados.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP96402785.8 | 1996-12-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
MXPA99005590A true MXPA99005590A (es) | 2000-04-24 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2204217C2 (ru) | Видеодекодер с обработкой перемежающихся данных | |
US6377628B1 (en) | System for maintaining datastream continuity in the presence of disrupted source data | |
US6970504B1 (en) | Parallel decoding of interleaved data streams within an MPEG decoder | |
US6594315B1 (en) | Formatting of recompressed data in an MPEG decoder | |
US6879631B1 (en) | Selective compression network in an MPEG compatible decoder | |
MXPA99005590A (es) | Compresores paralelos para recompresion de datos de pixeles intercalados adentro de un descodificador mpeg | |
MXPA99005591A (es) | Descompresiones paralelas para datos de pixeles recomprimidos adentro de un descodificador mpeg | |
MXPA99005607A (es) | Descodificador de video con procesamiento de datos intercalados | |
MXPA99005600A (es) | Descodificacion paralela de flujos de datos intercalados adentro de un descodificador mpeg | |
MXPA99005606A (es) | Red de compresión selectiva en un descodificador compatible con mpeg | |
MXPA99005605A (es) | Formateo de datos recomprimidos en un descodificador mpeg |