ES2206452T3 - Metodo y aparato para realizar la transformacion discreta de coseno y su inversa. - Google Patents

Metodo y aparato para realizar la transformacion discreta de coseno y su inversa.

Info

Publication number
ES2206452T3
ES2206452T3 ES93310487T ES93310487T ES2206452T3 ES 2206452 T3 ES2206452 T3 ES 2206452T3 ES 93310487 T ES93310487 T ES 93310487T ES 93310487 T ES93310487 T ES 93310487T ES 2206452 T3 ES2206452 T3 ES 2206452T3
Authority
ES
Spain
Prior art keywords
unit
data
stage
butterfly
multiplication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES93310487T
Other languages
English (en)
Inventor
Rong-Fuh Shyu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Winbond Electronics Corp filed Critical Winbond Electronics Corp
Application granted granted Critical
Publication of ES2206452T3 publication Critical patent/ES2206452T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Superconductors And Manufacturing Methods Therefor (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Auxiliary Devices For Music (AREA)

Abstract

UN APARATO DE TRANSFORMACION DISCRETA DE COSENO (DCT), CAPAZ DE GENERAR DCT UNI-DIMENSIONAL Y BI-DIMENSIONAL Y RESULTADOS DE DCT INVERTIDOS, USA ALGORITMOS RAPIDOS DCT/IDCT DE SEIS ETAPAS PARA PROCESAR UNA SECUENCIA DE DATOS DE ENTRADA (DIN) DE UN BLOQUE DE DATOS DE 8X8. CADA UNA DE LAS ETAPAS DIFERENTES DE LOS ALGORITMOS RAPIDOS DCT/IDCT DE SEIS ETAPAS INCLUYE UN NUMERO DE OPERACIONES FLOTANTES, QUE PUEDEN SER DESARROLLADAS POR UNA UNIDAD (2) DE OPERACION FLOTANTE DEL APARATO DCT, O UN NUMERO DE MULTIPLICACIONES INTRINSECAS, UN NUMERO DE OPERACIONES DE MULTIPLICACION POST-SUMA, O UN NUMERO DE OPERACIONES DE SUSTRACCION POST-MULTIPLICACION, LA TOTALIDAD DE LAS CUALES PUEDEN SER REALIZADAS POR UNA UNIDAD (3) DE OPERACION DE MULTIPLICACION. UNA UNIDAD (6) DE CONTROL DEL APARATO DCT PERMITE EL USO DE UNA UNIDAD (2) UNICA DE OPERACION FLOTANTE Y UNA UNIDAD (3) UNICA DE OPERACION DE MULTIPLICACION PARA DESARROLLAR LAS DIFERENTES ETAPAS DE LOS ALGORITMOS RAPIDOS DCT/IDCT. LOS RESULTADOS DE CADA ETAPA DE LOS ALGORITMOS RAPIDOS DCT/IDCT SON ALMACENADOS EN UNA UNIDAD (4) DE REGISTRO DE DATOS DEL APARATO DCT PARA SERVIR COMO ENTRADAS PARA LAS ETAPAS SUCESIVAS DE LOS ALGORITMOS RAPIDOS DCT/IDCT.

Description

Método y aparato para realizar la transformada discreta de coseno y su inversa.
La invención se refiere a un método y aparato para realizar la transformada discreta de coseno y su inversa, más particularmente a un aparato DCT/IDCT que es capaz de procesamiento en tiempo real y que tiene una construcción hardware relativamente pequeña y sencilla.
Las transformadas discretas de coseno directa e inversa (DCT/IDCT) se realizan durante la compresión y descompresión de datos de imagen digital. En una operación de compresión de imagen digital convencional, una señal de imagen original normalmente se divide en bloques de 8 x 8 píxeles, cada uno de los cuales sufre una operación DCT de forma que se generan los datos de transformada DCT. En una operación de descompresión de imagen digital, se realiza una IDCT con los datos de la transformada DCT que resultan de una DCT de un bloque de píxeles con el fin de recuperar la señal de imagen original.
Si se va ejecutar una operación DCT/IDCT bidimensional, cada fila (o columna) de bloque de datos sufre una DCT/IDCT unidimensional. Cada columna (o fila) de datos de la transformada DCT/IDCT sufre luego una segunda DCT/IDCT unidimensional, completando así la operación DCT/IDCT. La DCT unidimensional de un bloque de píxel 8 x 8 se puede obtener de la ecuación siguiente:
F(k) = 1/2 C(k) \sum_{m=0}S(m) Cos[(2m+1)k\pi /16], k= 0, 1, ...7
donde:
C(k) es igual a 2^{-1/2} cuando k = 0 y es igual a 1 cuando k = 1, 2, ...7;
S(m) es el dato de píxel en el dominio espacial; y
F(k) es el dato de transformada DCT resultante.
Un algoritmo rápido DCT que se puede derivar de la ecuación de arriba implica trece operaciones de multiplicación y veintinueve operaciones de adición / sustracción. La Fig. 1 es un diagrama de flujo ilustrando el algoritmo rápido DCT. El algoritmo rápido DCT emplea tres clases de operaciones aritméticas: mariposa, multiplicación y adición seguida de multiplicación, como se muestra en las Figs. 2A a 2C. En referencia a la Fig. 2D, se emplea una cuarta clase de operación aritmética, la multiplicación seguida de sustracción, en un algoritmo rápido DCT correspondiente.
En referencia una vez más a la Fig. 1, el algoritmo rápido DCT emplea doce operaciones mariposa, cinco operaciones de adición seguida de multiplicación y ocho operaciones de multiplicación intrínsecas. Un aparato para realizar el diagrama de flujo de la Fig. 1 se puede dividir en seis unidades operativas: una primera unidad capaz de realizar cuatro operaciones mariposa; una segunda unidad capaz de realizar dos operaciones de adición seguidas de multiplicación; una tercera unidad capaz de realizar tres operaciones de adición seguida de multiplicación; una cuarta unidad capaz de realizar tres operaciones de adición seguida de multiplicación; una quinta unidad capaz de realizar otras cuatro operaciones mariposa; y una sexta unidad capaz de realizar ocho operaciones de multiplicación intrínseca.
El algoritmo rápido IDCT se puede obtener mediante la realización del algoritmo rápido DCT en secuencia invertida. La Fig. 3 ilustra el diagrama de flujo del algoritmo rápido IDCT. Nótese que un aparato para realizar el diagrama de flujo IDCT se puede dividir también en seis unidades operativas: una primera unidad capaz de realizar ocho operaciones de multiplicación; una segunda unidad capaz de realizar cuatro operaciones mariposa; una tercera unidad capaz de realizar tres operaciones de multiplicación seguida de sustracción; una cuarta unidad capaz de realizar cuatro operaciones mariposa más; una quinta unidad capaz de realizar dos operaciones más de multiplicación seguida de sustracción; y una sexta unidad capaz de realizar otras cuatro operaciones mariposa.
Si se desea procesar un bloque de datos 8 x 8 con el uso de DCT/IDCT bidimensional, se provee un primer aparato para realizar los antes descritos algoritmos DCT/IDCT para ejecutar una primera operación unidimensional DCT/IDCT. Los datos transformados resultante del primer aparato se proporcionan luego a un segundo aparato que es similar al primer aparato con el fin de realizar una segunda operación unidimensional DCT/IDCT.
El aparato DCT/IDCT convencional es relativamente caro porque implica el uso de circuitos lógicos con un cableado relativamente complejo, que se diseñan con el fin de conseguir el procesamiento en serie a muy elevada velocidad de proceso. Sin embargo, en la práctica actual, la mayoría de las aplicaciones no necesitan un procesamiento de datos a una velocidad de proceso muy elevada con el fin de conseguir una transformación en tiempo real.
Las minutas del Simposio Internacional sobre Circuitos y Sistemas de 1990, Vo. 1/4, de 1 de Mayo de 1990, Nueva Orleans USA, páginas 77-80, P. Duhamel et al: "Un circuito integrado DCT basado en un algoritmo de nueva estructura y eficiente computacionalmente" describe un aparato DCT con un núcleo recursivo que comprende una vía de datos y una memoria de circuito integrado. Los datos intermedios generados en una etapa previa se pueden realimentar como datos de entrada para una etapa siguiente.
La FR-A-2,581,463 se refiere a un aparato para realizar operaciones DCT/IDCT. El flujo DCT/IDCT se divide en dos tipos de operaciones elementales, a saber tipo-A y tipo-PM. Se emplea una pluralidad de dispositivos de computación tipo-A y tipo- PM, dispuestos en serie, para realizar las diferentes operaciones elementales.
Es deseable proporcionar un aparato DCT/IDCT que tenga una construcción relativamente simple y pequeña y que sea relativamente barato.
También es deseable proporcionar un aparato DCT/IDCT que sea capaz de procesar datos en tiempo real.
La presente invención proporciona un método de transformada discreta de coseno tal como se establece en la reivindicación 1.
La invención proporciona también un aparato de transformada discreta de coseno unidimensional tal como se establece en la reivindicación 3.
La invención proporciona además un método de transformada discreta inversa de coseno tal como se establece en la reivindicación 7, y un aparato de transformada discreta inversa de coseno tal como se establece en la reivindicación 9.
Otras características y ventajas de la presente invención se volverán evidentes en la siguiente descripción detallada de las realizaciones preferidas, con referencia a los dibujos anexos, de los que:
La Fig. 1 es un diagrama de flujo de un algoritmo rápido DCT que se va a ejecutar por el aparato DCT/IDCT;
La Fig. 2A ilustra una operación mariposa empleada en el diagrama de flujo mostrado en la Fig. 1;
La Fig. 2B ilustra una operación de multiplicación empleada en el diagrama de flujo de la Fig. 1;
La Fig. 2C ilustra una operación de adición seguida de multiplicación usada en el diagrama de flujo mostrado en la Fig. 1;
La Fig. 2D ilustra una operación de multiplicación seguida de sustracción que es empleada por un algoritmo rápido DCT;
La Fig. 3 es un diagrama de flujo de un algoritmo rápido IDCT que se va a ejecutar mediante el aparato DCT/IDCT;
La Fig. 4 es un esquemático del diagrama de bloques del circuito de la primera realización preferida de un aparato DCT/IDCT según la presente invención;
La Fig. 5 es un diagrama de tiempos ilustrando el funcionamiento de la primera realización preferida durante una operación DCT;
La Fig. 6 es un diagrama de tiempos ilustrando el funcionamiento de la primera realización preferida durante una operación IDCT;
La Fig. 7 es un esquemático del diagrama de bloques del circuito de la segunda realización preferida de un aparato DCT/IDCT según la presente invención; y
La Fig. 8 es un diagrama de tiempos ilustrando el funcionamiento de la segunda realización preferida.
En referencia a la Fig. 4, se muestra la primera realización preferida de un aparato DCT/IDCT según la presente invención que comprende una unidad de entrada 1, una unidad de operación mariposa 2, una unidad de operación de adición y multiplicación 3, una unidad de registro de datos 4, una unidad de salida 5 y una unidad de control 6.
La unidad de entrada 1 es un demultiplexor que recibe una secuencia de datos de entrada en serie (Din) de un bloque de datos 8 x 8 desde un dispositivo externo (no mostrado) y envía los datos de entrada (Din) a la unidad de operación mariposa 2 ó a la unidad de operación de multiplicación 3 según la operación de transformación proyectada.
La unidad de operación mariposa 2 incluye un multiplexor 21 y un circuito mariposa 22. El circuito mariposa 22 genera la suma y la diferencia de dos datos de entrada al mismo. El multiplexor 21 tiene una entrada de selección que está conectada a la unidad de control 6 y entradas de datos que están conectadas a la unidad de entrada 1 y a la unidad de registro de datos 4. La unidad de control 6 controla al multiplexor 21 para seleccionar los datos de entrada (Din) de la unidad de entrada 1 o los datos de la unidad de registro 4, y proporciona los datos seleccionados al circuito mariposa 22 para permitir a este último realizar una operación de mariposa. La salida del circuito mariposa 22 se almacena en la unidad de registro de datos 4 o se envía a la unidad de salida 5.
La unidad de operación de adición y multiplicación 3 incluye un multiplexor selector de entrada 31, un circuito de adición sustracción 32, un circuito multiplicador 33, una memoria de solo lectura (ROM) de coeficientes 34, y un multiplexor selector de salida 35. La ROM de coeficientes 34 contiene una pluralidad de coeficientes de ponderación que sirven como una de las entradas de operandos al circuito multiplicador 33. La unidad de operación de multiplicación 3 es capaz de realizar multiplicación, adición seguida de multiplicación y multiplicación seguida de sustracción. Los datos de entrada (Din) desde la unidad de entrada 1 o los datos desde la unidad de registro de datos 4 se envían al circuito de adición / sustracción 32 o al multiplexor de selección de entrada 31 con el fin de permitir a la unidad de operación de adición y multiplicación 3 la operación aritmética pretendida. Las salidas del circuito de adición / sustracción 32 al multiplexor selector de salida 35 para ser almacenados en la unidad de registro de datos 4. La salida del circuito multiplicador 33 también se puede enviar directamente a la unidad de salida 5.
Cuando la unidad de operación de adición y multiplicación 3 ejecuta una operación de multiplicación, el dato seleccionado del multiplexor selector de entrada 31 se envía al circuito multiplicador 33. Al mismo tiempo la ROM de coeficientes 34 es controlada por la unidad de control 6 para proporcionar uno predeterminado de los coeficientes de ponderación al circuito multiplicador 33, permitiendo por eso que este último realice la operación de multiplicación.
Cuando la unidad de operación de multiplicación 3 ejecuta una operación de adición seguida de multiplicación, el circuito de adición / sustracción 32 recibe dos datos sucesivos de entrada desde la unidad de registro de datos 4. La suma de los datos de entrada se envía luego al circuito multiplicador 33. Al mismo tiempo la ROM de coeficientes 34 es controlada por la unidad de control 6 para que proporcione uno predeterminado de los coeficientes de ponderación al circuito multiplicador 33, permitiendo así a este último completar la operación de adición seguida de multiplicación.
Cuando la unidad de operación de adición y multiplicación 3 ejecuta una operación de multiplicación seguida de sustracción, se reciben dos datos sucesivos desde la unidad de registro de datos 4 por el circuito de adición / sustracción 32 y el circuito multiplicador 33. Al mismo tiempo la ROM de coeficientes 34 es controlada por la unidad de control 6 para que proporcione uno predeterminado de los coeficientes de ponderación al circuito multiplicador 33. El producto de salida del circuito multiplicador 33 se utiliza como la otra entrada al circuito de adición / sustracción 32. El circuito de adición / sustracción 32 resta el dato procedente de la unidad de registros de datos 4 del producto de salida del circuito multiplicador 33, completando así la operación de multiplicación y adición sustracción.
La unidad de registro de datos 4 es un fichero de registros de cuatro puertos, como una memoria de acceso aleatorio (RAM) con dos puertos de escritura (WP1, WP2) y dos puertos de lectura (RP1, RP2). El primer conjunto de puertos de lectura y escritura (RP1, WP1) de la unidad de registro de datos 4 está conectado a la unidad de operación mariposa 2, mientras que el segundo conjunto de puertos de lectura y escritura (RP2, WP2) de la misma está conectado la unidad de operación de adición y multiplicación 3. La unidad de registro de datos 4 sirve para almacenar datos procedentes de la unidad de operación mariposa 2 y de la unidad de operación de adición y multiplicación 3, y sirve para proporcionar datos a las mismas.
La unidad de salida 5 es un multiplexor que selecciona la salida del circuito mariposa 22 o del circuito multiplicador 33, dependiendo de si se está realizando DCT o IDCT.
Finalmente, la unidad de control 6 es responsable de controlar las operaciones de lectura / escritura de la ROM de coeficientes 34 y de la unidad de registro de datos 4, y es también responsable de controlar los distintos multiplexores 21, 31, 35. La unidad de control es responsable además de controlar la temporización de las operaciones de los restantes componentes del aparato DCT/IDCT.
Las Figs. 5 y 6 son diagramas de temporización que ilustran el funcionamiento de la primera realización preferida. Para un bloque de datos (N) que se somete a DCT/IDCT bidimensional, se obtiene un primer bloque de datos de transformada tras una primera operación DCT/IDCT unidimensional (1-D). El primer bloque de datos de transformada sufre después una segunda DCT/IDCT 1-D con el fin de realizar una DCT/IDCT bidimensional. Cada operación DCT/IDCT 1-D se puede realizar en seis etapas operativas que implican el uso de la unidad de operación mariposa 2 o de la unidad de operación de adición y multiplicación 3. En referencia a la Fig. 5, las etapas primera, tercera y quinta del algoritmo rápido DCT mostrado en la Fig. 1 requiere el uso de la unidad de operación mariposa 2, mientras que las etapas segunda, cuarta y sexta del algoritmo rápido DCT requieren el uso de la unidad de operación de multiplicación 3. Las etapas segunda y cuarta del algoritmo rápido DCT implican operaciones de adición seguidas de multiplicación, mientras que la sexta etapa del algoritmo rápido DCT implica operaciones de multiplicación. En referencia ahora a la Fig. 6, las etapas primera, tercera y quinta del algoritmo rápido IDCT mostrado en la Fig. 3 requieren el uso de la unidad de operación de adición y multiplicación 3, mientras que las etapas segunda, cuarta y sexta del algoritmo rápido IDCT requieren el uso de la unidad de operación mariposa 2. La primera etapa del algoritmo rápido IDCT implica operaciones de multiplicación intrínseca, mientras que las etapas tercera y quinta del algoritmo rápido IDCT implica operaciones de multiplicación seguida de sustracción. En la presente invención la primera etapa de la primera DCT/IDCT 1-D se realiza inmediatamente tras la recepción del bloque de datos de entrada (N). Los resultados de la DCT/IDCT bidimensional se pueden obtener de la salida de la sexta etapa de la segunda DCT/IDCT 1-D.
Nótese que los resultados de las etapas primera a quinta de una operación DCT/IDCT 1-D se almacenan en la unidad de registro de datos 4 de manera que las entradas de datos a las etapas segunda a sexta de la operación DCT/IDCT 1-D se pueden obtener de la última. Cuando se emplea la primera realización preferida para realizar una operación DCT/IDCT bidimensional, los resultados de la sexta etapa de la primera operación DCT/IDCT de un bloque de datos (N) son almacenados en la unidad de registro de datos 4. Esto es necesario porque el bloque de datos de transformada obtenido de la primera operación DCT/IDCT 1-D tiene que procesarse en columnas si el bloque de datos originales se introdujo en filas. El bloque de datos de transformada que se genera durante la primera operación DCT/IDCT 1-D sobreescribe el bloque de datos de transformada obtenido de la segunda operación DCT/IDCT 1-D de un bloque de datos precedente. Nótese que la construcción de la unidad de registro de datos 4 permite a la unidad de operación mariposa 2 y a la unidad de adición y multiplicación 3 leer y escribir datos allí al mismo tiempo, permitiendo así a estas dos últimas conseguir un procesamiento secuencial paralelo. La unidad de registro de datos 4 permite además a cada una de las unidades de operación mariposa 2 y de operación de multiplicación 3 realizar tres etapas operativas de algoritmo rápido en sucesión cuando están procesando datos.
Lo que sigue es una descripción detallada del funcionamiento de la primera realización preferida.
En referencia de nuevo a las Figs. 4 y 5, cuando la primera realización preferida se emplea para realizar DCT 1-D, los datos de sesenta y cuatro píxeles de un bloque de píxeles 8 x 8 son suministrados secuencialmente a la unidad de entrada 1 en filas (o columnas). La unidad de control 6 controla a la unidad de entrada 1 para enviar los datos de píxel de entrada (Din) a la unidad de operación mariposa 2 con el fin de permitir a esta última realizar la primera etapa del algoritmo rápido DCT que implica cuatro operaciones mariposa para cada fila (o columna). La unidad de control 6 controla luego a la unidad de registro de datos 4 de manera que los datos de salida de la primera etapa de la unidad de operación mariposa 2 son allí almacenados vía el puerto de escritura (WP1). Cuando unos datos predeterminados de salida de primera etapa han sido almacenados en la unidad de registro de datos 4, la unidad de control controla a la unidad de registro de datos 4 para que suministre los datos predeterminados de salida de primera etapa a la unidad de operación de adición y multiplicación 3 vía el puerto de lectura (RP2) con el fin de permitir a la última realizar la segunda etapa del algoritmo rápido DCT que implica dos operaciones de adición seguida de multiplicación para cada fila (o columna). La unidad de control 6 controla a la unidad de operación de registro de datos 4 para almacenar allí los datos de salida de segunda etapa procedentes de la unidad de operación de adición y multiplicación 3 vía el puerto de escritura (WP2). Después de que la unidad de operación mariposa 2 ha terminado la primera etapa del algoritmo rápido DCT, la unidad de control 6 controla a la unidad de registro de datos 4 para suministrar los datos de salida de primera y segunda etapa en una secuencia predeterminada a la unidad de operación mariposa 2 vía el puerto de lectura (RP1) con el fin de permitir a esta última realizar la tercera etapa del algoritmo rápido DCT que implica cuatro o más operaciones mariposa por cada fila (o columna). La unidad de control 6 controla de nuevo a la unidad de registro de datos 4 para almacenar allí los datos de salida de tercera etapa procedentes de la unidad de operación mariposa 2 vía el puerto de escritura (WP1). Cuando unos datos predeterminados de salida de tercera etapa se han almacenado en la unidad de registro de datos 4, la unidad de control 6 controla a la unidad de registro de datos 4 para suministrar los datos predeterminados de salida de la tercera etapa a la unidad de operación de adición y multiplicación 3 vía el puerto de lectura (RP2) con el fin de permitir a la última realizar la cuarta etapa del algoritmo rápido DCT que implica tres operaciones de adición seguida de multiplicación por cada fila (o columna). La unidad de control 6 controla de nuevo a la unidad de registro de datos 4 para almacenar allí los datos de salida de cuarta etapa procedentes de la unidad de operación de adición seguida de multiplicación 3 vía el puerto de escritura (WP2). Después de que la unidad de operación mariposa 2 ha terminado de realizar la tercera etapa del algoritmo rápido DCT, la unidad de control 6 controla a la unidad de registro de datos 4 para suministrar los datos de salida de tercera y cuarta etapa en una secuencia predeterminada a la unidad de operación mariposa 2 vía el puerto de lectura (RP1) con el fin de permitir a esta última realizar la quinta etapa del algoritmo rápido DCT que implica otras cuatro operaciones mariposa por cada fila (o columna). Nuevamente la unidad de control 6 controla a la unidad de registro de datos 4 para almacenar allí los datos de salida de quinta etapa procedentes de la unidad de operación mariposa 2 vía el puerto de escritura (WP1). La unidad de control 6 controla entonces a la unidad de registro de datos 4 para suministrar los datos de salida de quinta etapa a la unidad de operación de adición y multiplicación 3 vía el puerto de lectura (RP2) con el fin de permitir a esta última realizar la sexta etapa del algoritmo rápido DCT que implica ocho operaciones de multiplicación por cada fila (o columna). Nótese que la unidad de control 6 puede controlar a la unidad de salida 5 para recibir datos de salida de sexta etapa procedentes de la unidad de adición y multiplicación 3 si se realiza DCT 1-D. En otro caso la unidad de control 6 controla a la unidad de registro de datos 4 para que almacene allí los datos de salida de sexta etapa.
Si se realiza DCT bidimensional, la unidad de control 6 controla a la unidad de registro de datos 4 para sacar secuencialmente los datos de salida de sexta etapa de la primera DCT 1-D hacia la unidad de operación mariposa 2 en columnas (o filas) vía el puerto de lectura (RP1) de la misma, comenzando por tanto la segunda operación DCT 1-D. El funcionamiento de la segunda operación DCT 1-D es sustancialmente similar a la primera operación DCT 1-D, residiendo la principal diferencia en que en vez de escribir los datos de salida de sexta etapa en la unidad de registro de datos 4, los datos de salida de sexta etapa de la segunda operación DCT 1-D se reciben por la unidad de salida 5 procedentes del circuito multiplicador 33. Los datos de salida de sexta etapa sirven como datos transformados finales y son suministrados por la unidad de salida 5 a un dispositivo externo.
En referencia de nuevo a las Figs. 4 y 6, cuando se emplea la primera realización preferida para realizar DCT 1-D, los sesenta y cuatro datos de transformada de un bloque de datos de transformada 8 x 8 son suministrados secuencialmente a la unidad de entrada 1 en filas (o columnas). La unidad de control 6 controla a la unidad de entrada 1 para enviar los datos de transformada de entrada (Din) a la unidad de operación de adición y multiplicación 3 con el fin de permitir a esta última realizar la primera etapa del algoritmo rápido IDCT que implica ocho operaciones de multiplicación por cada fila (o columna). La unidad de control 6 controla luego a la unidad de registro de datos 4 de manera que los datos de salida de la primera etapa de la unidad de operación de adición y multiplicación 3 son almacenados en la unidad de registro de datos 4 vía el puerto de escritura (WP2) de la misma. Cuando unos datos predeterminados de salida de primera etapa han sido almacenados en la unidad de registro de datos 4, la unidad de control 6 controla a la unidad de registro de datos 4 para que suministre los datos disponibles de salida de primera etapa a la unidad de operación mariposa 2 vía el puerto de lectura (RP1) con el fin de permitir a la última realizar la segunda etapa del algoritmo rápido IDCT que implica cuatro operaciones mariposa para cada fila (o columna). La unidad de control 6 controla de nuevo a la unidad de operación de registro de datos 4 para almacenar allí los datos de salida de segunda etapa procedentes de la unidad de operación mariposa 2 vía el puerto de escritura (WP1) de la misma. Cuando unos predeterminados datos de salida de segunda etapa se han almacenado en la unidad de registro de datos 4, la unidad de control 6 controla a la unidad de registro de datos 4 para suministrar los datos predeterminados de salida de segunda etapa a la unidad de operación de adición y multiplicación 3 vía el puerto de lectura (RP2) con el fin de permitir a esta última realizar la tercera etapa del algoritmo rápido IDCT que implica tres operaciones de multiplicación seguida de sustracción por cada fila (o columna). La unidad de control 6 controla de nuevo a la unidad de registro de datos 4 para almacenar allí los datos de salida de tercera etapa procedentes de la unidad de operación de adición y multiplicación 3 vía el puerto de escritura (WP2) de la misma. Después de que la unidad de operación mariposa 2 ha terminado de realizar la segunda etapa del algoritmo rápido IDCT, la unidad de control 6 controla a la unidad de registro de datos 4 para suministrar los datos de salida de segunda y tercera etapa en una secuencia predeterminada a la unidad de operación mariposa 2 vía el puerto de lectura (RP1) con el fin de permitir a esta última realizar la cuarta etapa del algoritmo rápido IDCT que implica cuatro operaciones mariposa más por cada fila (o columna). Nuevamente la unidad de control 6 controla a la unidad de registro de datos 4 para almacenar allí los datos de salida de cuarta etapa procedentes de la unidad de operación mariposa 2 vía el puerto de escritura (WP1) de la misma. Cuando unos datos predeterminados de salida de cuarta etapa se han almacenado en la unidad de registro de datos 4, la unidad de control 6 controla a la unidad de registro de datos 4 para suministrar los datos predeterminados de salida de cuarta etapa a la unidad de operación de adición y multiplicación 3 vía el puerto de lectura (RP2) con el fin de permitir a la última realizar la quinta etapa del algoritmo rápido IDCT que implica dos operaciones de multiplicación seguida de sustracción por cada fila (o columna). La unidad de control 6 controla nuevamente a la unidad de registro de datos 4 para almacenar los datos de salida de quinta etapa a la unidad de operación de adición y multiplicación 3 vía el puerto de escritura (WP2). Después de que la unidad de operación mariposa 2 ha terminado de realizar la cuarta etapa del algoritmo rápido IDCT, la unidad de control 6 controla a la unidad de registro de datos 4 para suministrar los datos de salida de cuarta y quinta etapa en una secuencia predeterminada a la unidad de operación mariposa 2 vía el puerto de lectura (RP1) con el fin de permitir a esta última realizar la sexta etapa del algoritmo rápido IDCT que implica otras cuatro operaciones mariposa por cada fila (o columna). La unidad de control 6 puede controlar a la unidad de salida 5 para recibir datos de salida de sexta etapa procedentes de la unidad de operación mariposa 2 si se realiza IDCT 1-D. En otro caso la unidad de control 6 controla a la unidad de registro de datos 4 para que almacene allí los datos de salida de sexta etapa.
Si se realiza IDCT bidimensional, la unidad de control 6 controla a la unidad de registro de datos 4 para sacar secuencialmente los datos de salida de sexta etapa de la primera IDCT 1-D hacia la unidad de operación de adición y multiplicación 3 en columnas (o filas) vía el puerto de lectura (RP2) de la misma, comenzando por tanto la segunda operación DCT 1-D. El funcionamiento de la segunda operación DCT 1-D es sustancialmente similar a la primera operación DCT 1-D, residiendo la principal diferencia en que, en vez de escribir los datos de salida de sexta etapa en la unidad de registro de datos 4, los datos de salida de sexta etapa de la segunda operación DCT 1-D se reciben por la unidad de salida 5 procedentes del circuito mariposa 22. Los datos de salida de sexta etapa son datos de píxel recuperados y son suministrados por la unidad de salida 5 a un dispositivo externo.
En referencia a la Fig. 7, la segunda realización preferida de un aparato DCT/IDCT según la presente invención es capaz de realizar procesamiento secuencial DCT/IDCT bidimensional de un bloque de datos 8 x 8 y se muestra comprendiendo dos aparatos DCT/IDCT 1-D 7, 8 y una unidad de control 9. Cada uno de los aparatos DCT/IDCT 1-D es capaz de realizar los algoritmos rápidos DCT/IDCT 1-D de seis etapas mostrados en las Figs. 1 y 3. El primer aparato DCT/IDCT 1-D 7 comprende: una unidad de entrada 71, tal como un demultiplexor; una unidad de operación mariposa 72 incluyendo un multiplexor 721 y un circuito mariposa 722; una unidad de operación de adición y multiplicación 73 incluyendo un multiplexor selector de entrada 731, un circuito de adición / sustracción 732, un circuito multiplicador 733, una ROM de coeficientes 734 y un multiplexor selector de salida 735; y una primera unidad de registro de datos 74 para almacenar los resultados de las seis etapas de la primera operación DCT/IDCT 1-D y que sirve también como memoria de transposición para suministrar datos de entrada al segundo aparato DCT/IDCT 1-D 8.
El segundo aparato DCT/IDCT 1-D 8 comprende: una unidad de operación mariposa 81 incluyendo un multiplexor 811 y un circuito mariposa 812; una unidad de operación de adición y multiplicación 82 incluyendo un multiplexor selector de entrada 821, un circuito de adición / sustracción 822, un circuito multiplicador 823 y un multiplexor selector de salida 824; una segunda unidad de registro de datos 83; y una unidad de salida 84, tal como un multiplexor. Los circuitos multiplicadores 733, 823 comparten una ROM común de coeficientes 734. La unidad de control 9 es para controlar las operaciones de lectura / escritura de la ROM de coeficientes 734 y las unidades de registro de datos 74, 83, y es también para controlar a los diferentes multiplexores721, 731, 735, 811, 821, 824. La unidad de control 9 es además para controlar la temporización de las operaciones de los restantes componentes de los aparatos DCT/IDCT 1-D primero y segundo 7, 8.
En referencia a las Figs. 7 y 8, durante el funcionamiento de la segunda realización preferida, cuando el primer aparato DCT/IDCT 1-D recibe filas de datos de entrada (Din) correspondientes a un bloque de datos (N), el segundo aparato DCT/IDCT 1-D 8 recibe columnas de datos de transformada DCT/IDCT correspondientes a un bloque de datos previo (N-1) procedentes del puerto de lectura (RP1A) de la unidad de registro de datos 74 si se está realizando una operación DCT bidimensional, o procedentes del puerto de lectura (RP2A) de esta última si se está realizando una operación IDCT bidimensional. Como ambos aparatos DCT/IDCT 1-D 7, 8 realizan la sexta etapa del algoritmo rápido DCT/IDCT, los datos finales de transformada correspondientes al bloque de datos (N-1) se reciben por la unidad de salida 84 para su transmisión a un dispositivo externo. Entretanto, los datos de transformada DCT/IDCT correspondientes al bloque de datos (N) son almacenados en la unidad de registro de datos 74 con el fin de permitir al segundo aparato DCT/IDCT 1-D 8 realizar la misma operación en columnas.
La segunda realización preferida tiene una velocidad de proceso que es dos veces la de la primera realización preferida, permitiendo así una mayor velocidad de salida de bits.

Claims (11)

1. Un método para calcular una transformada discreta de coseno (DCT) en seis etapas mediante proceso de una secuencia de datos de entrada (Din) de un bloque de datos 8 x 8 para generar una secuencia de datos transformados, donde las etapas primera, tercera y quinta de dicho método implican una pluralidad de operaciones mariposa, las etapas segunda y cuarta de dicho método implican una pluralidad de operaciones de adición seguida de multiplicación, y la sexta etapa de dicho método implica una pluralidad de operaciones de multiplicación, comprendiendo dicho método los pasos de:
(a) suministrar dicha secuencia de datos de entrada (Din) a una unidad de entrada (1);
(b) dicha unidad de entrada (1) suministrando dichos datos de entrada (Din) a una unidad de operación mariposa (2) con el fin de realizar operaciones mariposa de dicha primera etapa;
(c) almacenar en la unidad de registro de datos (4) los datos de salida de primera etapa procedentes de dicha unidad de operación mariposa (2);
(d) suministrar unos predeterminados de dichos datos de salida de primera etapa almacenados en dicha unidad de registro de datos (4) a una unidad de operación de adición y multiplicación (3) con el fin de realizar dichas operaciones de adición seguida de multiplicación de dicha segunda etapa y donde dicha unidad de adición y multiplicación comienza a realizar dichas operaciones de adición seguida de multiplicación de dicha segunda etapa cuando dichos unos predeterminados de dichos datos de salida de primera etapa han sido almacenados en dicha unidad de registro de datos (4), mientras dicha unidad de operación mariposa continua para realizar operaciones mariposa de dicha primera etapa;
(e) almacenar en dicha unidad de registro de datos (4) datos de salida de segunda etapa procedentes de dicha unidad de operación de adición y multiplicación (3);
(f) sacar de dicha unidad de registro de datos (4) dichos datos de salida de primera y segunda etapa en una secuencia predeterminada hacia dicha unidad de operación mariposa (2) donde dicha unidad de operación mariposa (2) realiza operaciones mariposa de dicha tercera etapa después de que dicha unidad de operación mariposa (2) ha terminado de realizar operaciones mariposa de dicha primera etapa;
(g) almacenar en dicha unidad de registro de datos (4) datos de salida de tercera etapa procedentes de dicha unidad de operación mariposa (2);
(h) dicha unidad de registro de datos (4) suministrando unos predeterminados de dichos datos de salida de tercera etapa a dicha unidad de operación de adición y multiplicación con el fin de realizar dichas operaciones de adición seguida de multiplicación de dicha cuarta etapa, donde dicha unidad de adición y multiplicación comienza a realizar dichas operaciones de adición seguida de multiplicación de dicha cuarta etapa cuando dichos unos predeterminados de dichos datos de salida de tercera etapa se han almacenado en dicha unidad de registro de datos (4), mientras dicha unidad de operación mariposa continua para realizar dicha tercera etapa;
(i) almacenar en dicha unidad de registro de datos (4) datos de salida de cuarta etapa procedentes de dicha unidad de operación de adición y multiplicación (3);
(j) dicha unidad de registro de datos (4) proporcionando dichos datos de salida de tercera y cuarta etapa en una secuencia predeterminada a dicha unidad de operación mariposa (2) y donde dicha unidad de operación mariposa (2) realiza operaciones mariposa de dicha quinta etapa después de que dicha unidad de operación mariposa (2) ha terminado de realizar dichas operaciones mariposa de dicha tercera etapa;
(k) almacenar en dicha unidad de registro de datos (4) datos de salida de quinta etapa procedentes de dicha unidad de operación mariposa (2);
(l) dicha unidad de registro de datos (4) suministrando dichos datos de salida de quinta etapa a dicha unidad de operación de adición y multiplicación (3) y donde dicha unidad de operación de adición y multiplicación (3) realiza operaciones de multiplicación de dicha sexta etapa; y
(m) enviar a una unidad de salida (5) dichos datos de salida de sexta etapa desde dicha unidad de operación de adición y multiplicación (3).
2. El método como se reivindica en la reivindicación 1, comprendiendo además, entre los pasos (l) y (m), los pasos de:
almacenar en dicha unidad de registro de datos (4) dichos datos de salida de sexta etapa;
\newpage
dicha unidad de registro de datos (4) proporcionando dichos datos de salida de sexta etapa a dicha unidad de operación mariposa (2) y donde dicha unidad de operación mariposa (2) realiza dicha primera etapa; y repetir los pasos (c) a (l).
3. Aparato para calcular una transformada discreta de coseno unidimensional (DCT) en seis etapas mediante el procesamiento de una secuencia de datos de entrada (Din) de un bloque de datos de 8 x 8 para generar una secuencia de datos de transformada, donde las etapas primera, tercera y quinta implican una pluralidad de operaciones mariposa, las etapas segunda y cuarta implican una pluralidad de operaciones de adición seguida de multiplicación, y una sexta etapa implica una pluralidad de operaciones de multiplicación, comprendiendo dicho aparato DCT:
una unidad de entrada (1) adaptada para recibir dichos datos de entrada (Din);
una unidad de operación mariposa (2) adaptada para realizar dichas etapas primera, tercera y quinta y comprendiendo medios adaptados para generar datos de salida de las etapas primera, tercera y quinta, respectivamente;
una unidad de operación de adición y multiplicación (3) adaptada para realizar dichas etapas segunda, cuarta y sexta y comprendiendo medios adaptados para generar datos de salidas de las etapas segunda, cuarta y sexta, respectivamente;
una unidad de registro de datos (4) conectada a dicha unidad de operación mariposa (2) y a dicha unidad de operación de adición y multiplicación (3) y comprendiendo medios adaptados para almacenar allí dichos datos de salida de las etapas primera, segunda, tercera, cuarta y quinta;
una unidad de control (6) conectada a dicha unidad de entrada (1), a dicha unidad de operación mariposa (2), a dicha unidad de registro de datos (4) y a dicha unidad de operación de multiplicación (3) y a una unidad de salida donde dicha unidad de control comprende medios adaptados para controlar a dicha unidad de operación mariposa, a dicha unidad de registro de datos, a dicha unidad de adición y multiplicación, a dicha unidad de entrada y a dicha unidad de salida;
dicha unidad de entrada comprendiendo medios adaptados para proveer dichos datos de entrada (Din) a dicha unidad de operación mariposa (2);
dicha unidad de registro de datos (4) comprendiendo medios adaptados para almacenar dichos datos de salida de primera etapa procedentes de dicha unidad de operación mariposa (2);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar unos predeterminados de dichos datos de salida de primera etapa a dicha unidad de operación de adición y multiplicación donde dicha unidad de operación de adición y multiplicación comprende medios adaptados para comenzar la realización y para realizar dicha segunda etapa de dicho algoritmo rápido DCT cuando dichos unos predeterminados de dichos datos de salida de primera etapa han sido almacenados en dicha unidad de registro de datos (4), y mientras dicha operación mariposa continúa para realizar dicha primera etapa de dicho algoritmo rápido DCT;
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para almacenar dichos datos de salida de segunda etapa procedentes de dicha unidad de operación de adición y multiplicación (3);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar dichos datos de salida de primera y segunda etapa en una secuencia predeterminada a dicha unidad de operación mariposa (2) comprendiendo dicha unidad de operación mariposa medios adaptados para realizar dicha tercera etapa después de que dicha unidad de operación mariposa (2) ha finalizado de realizar dicha primera etapa;
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para almacenar dichos datos de salida de tercera etapa procedentes de dicha unidad de operación mariposa (2);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar unos predeterminados de dichos datos de salida de tercera etapa a dicha unidad de operación de adición y multiplicación (3) y donde dicha unidad de operación de adición y multiplicación comprende medios adaptados para comenzar la realización y para realizar dicha cuarta etapa cuando dichos unos predeterminados de dichos datos de salida de tercera etapa han sido almacenados en dicha unidad de registro de datos (4), y mientras dicha unidad de operación mariposa continúa para realizar dicha primera etapa de dicho algoritmo rápido DCT;
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para almacenar dichos datos de salida de cuarta etapa procedentes de dicha unidad de operación de adición y multiplicación (3);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar dichos datos de salida de tercera y cuarta etapa en una secuencia predeterminada a dicha unidad de operación mariposa (2) y donde dicha unidad de operación mariposa comprende medios adaptados para realizar dicha quinta etapa de dicho algoritmo rápido DCT después de que dicha unidad de operación mariposa (2) ha finalizado de realizar dicha tercera etapa de dicho algoritmo rápido DCT;
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para almacenar dichos datos de salida de quinta etapa, procedentes de dicha unidad de operación mariposa (2);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar datos de salida de quinta etapa a dicha unidad de operación de adición y multiplicación (3) y donde dicha unidad de operación de adición y multiplicación (3) comprende medios adaptados para realizar dicha sexta etapa de dicho algoritmo rápido DCT; y
una unidad de salida (5) conectada a dicha unidad de operación de multiplicación (3) y a dicha unidad de control (6) adaptada para recibir dichos datos de salida de sexta etapa de dicha unidad de operación de adición y multiplicación (3).
4. El aparato como el reivindicado en la reivindicación 3, donde dicha unidad de operación mariposa (2) comprende:
un multiplexor (21) que tiene una entrada de selección conectada a dicha unidad de control (6) y entradas de datos conectadas a dicha unidad de entrada (1) y a dicha unidad de registro de datos (4), y donde dicha unidad de control comprende medios para controlar a dicha unidad multiplexora (21), dicho multiplexor (21) comprendiendo medios adaptados para generar datos de salida correspondientes a uno seleccionado de dicha unidad de entrada (1) y de dicha unidad de registro de datos (4); y
unos medios mariposa (22) conectados a dicho multiplexor (21) comprendiendo medios adaptados para recibir dichos datos de salida del mismo.
5. El aparato como el reivindicado en la reivindicación 3, donde dicha unidad de operación de adición y multiplicación (3) comprende:
un circuito de adición / sustracción (32) que está conectado a dicha unidad de control (6) y a dicha unidad de registro de datos (4) y que comprende medios adaptados para recibir dichos unos predeterminados datos de salida de dicha primera etapa y de dicha tercera etapa de dicha unidad de registro de datos (4) y medios adaptados para generar sumas de aquellos;
un circuito multiplicador (33) que está conectado a dicha unidad de control (6), a dicha unidad de registro de datos (4) y a dicha unidad de adición / sustracción (32); y
una ROM de coeficientes (34) que está conectada a dicho circuito multiplicador (33) y a dicha unidad de control (6) y que contiene allí dentro una pluralidad de coeficientes de ponderación;
medios adaptados para sacar unos predeterminados de dichos coeficientes de ponderación de dicha ROM de coeficientes (34);
dicho circuito multiplicador comprendiendo medios adaptados para recibir dichas sumas de dicho circuito de adición / sustracción (32) y dichos unos predeterminados de dichos coeficientes de ponderación y medios adaptados para generar productos de los mismos que sirven como dichos datos de salida de segunda y cuarta etapa cuando dicha unidad de operación de adición y multiplicación (3) realiza dichas segunda y cuarta etapas;
dicho circuito multiplicador (33) comprendiendo medios adaptados para recibir dichos datos de salida de quinta etapa desde dicha unidad de registro de datos (4) y dichos unos predeterminados de dichos coeficientes de ponderación y medios adaptados para generar productos de los mismos que sirven como dichos datos de salida de sexta etapa cuando dicha unidad de operación de adición y multiplicación (3) realiza dicha sexta etapa y donde dicha unidad de control comprende medios para controlar a dicha unidad de adición / sustracción, a dicho circuito multiplicador, a dicha ROM de coeficientes, a dichos medios para sacar unos predeterminados de dichos coeficientes de ponderación de dicha ROM de coeficientes.
6. El aparato como el reivindicado en la reivindicación 3, donde dicha unidad de registro de datos (4) es una memoria de acceso aleatorio de cuatro puertos con un primer conjunto de puertos de lectura y escritura (RP1, WP1) conectados a dicha unidad de operación mariposa (2) y un segundo conjunto de puertos de lectura y escritura (RP2, WP2) conectados a dicha unidad de operación de adición y multiplicación (3).
7. Un método de cálculo de una transformada discreta de coseno inversa (IDCT) en seis etapas mediante proceso de una secuencia de datos de entrada (Din) de un bloque de datos 8 x 8 para generar una secuencia de datos transformados, implicando la primera etapa de dicho método una pluralidad de operaciones mariposa, implicando las etapas segunda, cuarta y sexta de dicho método una pluralidad de operaciones mariposa, e implicando la tercera y quinta etapas de dicho método una pluralidad de operaciones de multiplicación seguidas de sustracción, comprendiendo dicho método los pasos de:
(a) suministrar dicha secuencia de datos de entrada (Din) a una unidad de entrada (1);
(b) dicha unidad de entrada (1) suministrando dichos datos de entrada (Din) a una unidad de operación de adición y multiplicación (3) donde dicha unidad de adición y multiplicación (3) realiza dicha primera etapa;
(c) almacenar en una unidad de registro de datos (4) los datos de salida de primera etapa procedentes de dicha unidad de operación de adición y multiplicación (3);
(d) suministrando dicha unidad de registro de datos (4) dichos datos de salida de primera etapa a una unidad de operación mariposa (2) y realizando dicha unidad de operación mariposa (2) dicha segunda etapa;
(e) almacenar en dicha unidad de registro de datos (4) datos de salida de segunda etapa procedentes de dicha unidad de operación mariposa (2);
(f) dicha unidad de registro de datos (4) suministrando unos predeterminados de dichos datos de salida de segunda etapa a una unidad de operación de adición y multiplicación (3), dicha unidad de operación de adición y multiplicación (3) comenzando a realizar y realizando dicha tercera etapa de dicho algoritmo rápido DCT cuando dichos unos predeterminados de dichos datos de salida de segunda etapa han sido almacenados en dicha unidad de registro de datos (4), mientras la unidad de operación mariposa continúa para realizar dicha segunda etapa;
(g) dicha unidad de registro de datos (4) almacenando datos de salida de tercera etapa procedentes de dicha unidad de operación de adición y multiplicación (3);
(h) dicha unidad de registro de datos (4) suministrando dichos datos de salida de segunda y tercera etapa en una secuencia predeterminada a dicha unidad de operación mariposa (2) y dicha unidad de operación mariposa (2) realizando dicha cuarta etapa después de que dicha unidad de operación mariposa (2) ha terminado de realizar dicha segunda etapa;
(i) en dicha unidad de registro de datos (4) almacenando datos de salida de cuarta etapa procedentes de dicha unidad de operación mariposa (2);
(j) dicha unidad de registro de datos (4) proporcionando unos predeterminados de dichos datos de salida de cuarta etapa a dicha unidad de operación de adición y multiplicación (3), dicha unidad de operación de adición y multiplicación (3) comenzando realizar y realizando dicha quinta etapa cuando dichos unos predeterminados datos de salida de dicha cuarta etapa han sido almacenados en dicha unidad de registro de datos (4), mientras que dicha unidad de operación mariposa continúa para realizar dicha cuarta etapa;
(k) dicha unidad de registro de datos (4) almacenando datos de salida de quinta etapa procedentes de dicha unidad de operación de adición y multiplicación (3);(l) dicha unidad de registro de datos (4) suministrando dichos datos de salida de cuarta y quinta etapa en una secuencia predeterminada a dicha unidad de operación mariposa (2), dicha unidad de operación mariposa (2) realizando dicha sexta etapa después de que dicha unidad de operación mariposa (2) ha terminado de realizar dicha cuarta etapa; y
(m) enviar a una unidad de salida (5) dichos datos de salida de sexta etapa desde dicha unidad de operación mariposa (2).
8. El método como se reivindica en la reivindicación 7, comprendiendo además, entre los pasos (l) y (m), los pasos de:
dicha unidad de registro de datos (4) almacenando dichos datos de salida de sexta etapa;
dicha unidad de registro de datos (4) proporcionando dichos datos de salida de sexta etapa a dicha unidad de operación de adición y multiplicación (3), dicha unidad de operación de adición y multiplicación (3) realizando dicha primera etapa; y
repitiendo los pasos (c) a (l).
9. Aparato para calcular una transformada discreta de coseno inversa unidimensional (IDCT) en seis etapas mediante el procesamiento de una secuencia de datos de entrada (Din) de un bloque de datos de 8 x 8 para generar una secuencia de datos de transformada,
donde la primera etapa implica una pluralidad de operaciones de multiplicación, las etapas segunda, cuarta y sexta implican una pluralidad de operaciones mariposa, y la tercera y quinta etapas implican una pluralidad de operaciones de multiplicación seguida de sustracción, comprendiendo dicho aparato: una unidad de entrada (1) adaptada para recibir dichos datos de entrada (Din);
una unidad de operación de adición y multiplicación (3) adaptada para realizar dichas etapas primera, tercera y quinta y comprendiendo medios adaptados para generar datos de salida de las etapas primera, tercera y quinta, respectivamente;
una unidad de operación mariposa (2) adaptada para realizar dichas etapas segunda, cuarta y sexta y comprendiendo medios adaptados para generar datos de salida de las etapas segunda, cuarta y sexta, respectivamente, cuando realiza dichas segunda, cuarta y sexta etapas;
una unidad de registro de datos (4) conectada a dicha unidad de operación mariposa (2) y a dicha unidad de operación de adición y multiplicación (3) y adaptada para almacenar dichos datos de salida de las etapas primera, segunda, tercera, cuarta y quinta;
una unidad de control (6) conectada a dicha unidad de entrada (1), a dicha unidad de operación mariposa (2), a dicha unidad de registro de datos (4) y a dicha unidad de operación de multiplicación (3) donde dicha unidad de control comprende medios para controlar a dicha unidad de entrada, a dicha unidad de operación mariposa, a dicha unidad de registro de datos, a dicha unidad de adición y multiplicación, y a dicha unidad de salida;
dicha unidad de entrada comprendiendo medios adaptados para proveer dichos datos de entrada (Din) a dicha unidad de operación de adición y multiplicación (3), dicha unidad de operación de adición y multiplicación (3) comprendiendo medios adaptados para realizar dicha primera etapa;
dicha unidad de registro de datos (4) comprendiendo medios adaptados para almacenar dichos datos de salida de primera etapa procedentes de dicha unidad de operación de adición y multiplicación (3);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar dichos datos de salida de primera etapa a dicha unidad de operación mariposa (2), dicha unidad de operación mariposa comprendiendo medios adaptados para realizar dicha segunda etapa;
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para almacenar dichos datos de salida de segunda etapa procedentes de dicha unidad de operación mariposa (2);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar unos predeterminados de dichos datos de salida de segunda etapa a dicha unidad de operación de adición y multiplicación (3) comprendiendo dicha unidad de operación de adición y multiplicación (3) medios adaptados para comenzar a realizar y realizar dicha tercera etapa cuando dichos unos predeterminados datos de salida de dicha segunda etapa han sido almacenados en dicha unidad de registro de datos (4), mientras dicha unidad de operación mariposa continúa para realizar dicha segunda etapa de dicho algoritmo rápido IDCT;
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para almacenar dichos datos de salida de tercera etapa procedentes de dicha unidad de operación de adición y multiplicación (3);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar dichos datos de salida de segunda y tercera etapa a dicha unidad de operación mariposa (2), dicha unidad de operación mariposa (2) comprendiendo medios adaptados para realizar dicha cuarta etapa después de que dicha unidad de operación mariposa (2) ha terminado de realizar dicha segunda etapa;
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para almacenar dichos datos de salida de cuarta etapa procedentes de dicha unidad de operación mariposa (2);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar unos predeterminados de dichos datos de salida de cuarta etapa a dicha unidad de operación de adición y multiplicación (3), dicha unidad de operación de multiplicación (3) comprendiendo medios adaptados para comenzar a realizar y para realizar dicha quinta etapa cuando dichos unos predeterminados datos de salida de dicha cuarta etapa han sido almacenados en dicha unidad de registro de datos (4), mientras dicha unidad de operación mariposa continúa para realizar dicha cuarta etapa de dicho algoritmo rápido IDCT;
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para almacenar dichos datos de salida de quinta etapa procedentes de dicha unidad de operación de adición y multiplicación (3);
dicha unidad de registro de datos (4) comprendiendo además medios adaptados para proporcionar dichos datos de salida de cuarta y quinta etapa en una secuencia predeterminada a dicha unidad de operación mariposa (2), dicha unidad de operación mariposa (2) comprendiendo medios adaptados para realizar dicha sexta etapa después de que dicha unidad de operación mariposa (2) ha terminado de realizar dicha cuarta etapa; y
dicha unidad de salida (5) conectada a dicha unidad de operación mariposa (2) y a dicha unidad de control (6) y comprendiendo medios adaptados para recibir dichos datos de salida de sexta etapa de dicha unidad de operación mariposa (2).
10. El aparato unidimensional como el reivindicado en la reivindicación 9, donde dicha unidad de operación de adición y multiplicación (3) comprende:
\newpage
un primer multiplexor (31) teniendo una entrada de selección conectada a dicha unidad de control (6) y entradas de datos conectadas a dicha unidad de entrada (1) y a dicha unidad de registro de datos (4), dicho primer multiplexor (31) comprendiendo medios adaptados para generar datos de salida correspondientes a uno seleccionado de dicha unidad de entrada (1) y de dicha unidad de registro de datos (4);
una ROM de coeficientes (34) que está conectada a dicha unidad de control (6) y que contiene allí dentro una pluralidad de coeficientes de ponderación;
medios de salida para sacar unos predeterminados de dichos coeficientes de ponderación de dicha ROM de coeficientes;
un circuito multiplicador (33) que está conectado a dicha unidad de control (6), a dicho primer multiplexor (31) y a dicha ROM de coeficientes (34), dicho circuito multiplicador (33) comprendiendo medios adaptados para recibir dichos datos de entrada (Din) de dicha unidad de entrada (1) vía dicho primer multiplexor (31) y dichos unos predeterminados de dichos coeficientes de ponderación y comprendiendo medios adaptados para generar productos de los mismos que sirven como dichos datos de salida de primera etapa cuando dicha unidad de operación de adición y multiplicación (3) realiza dicha primera etapa de dicho algoritmo rápido IDCT, dicho circuito multiplicador (33) comprendiendo además medios adaptados para recibir dichos datos de salida de dicho primer multiplexor (31) y dichos unos predeterminados de dichos coeficientes de ponderación y adaptados para generar productos de los mismos cuando dicha unidad de operación de adición y multiplicación (3) realiza dichas tercera y quinta etapas;
un circuito de adición / sustracción (32) conectado a dicha unidad de control (6), a dicha unidad de registro de datos (4) y a dicho circuito multiplicador (33), dicho circuito de adición / sustracción (32) comprendiendo medios adaptados para recibir dichos productos de dicho circuito multiplicador (33) y dichos unos predeterminados de dichos datos de salida de segunda y cuarta etapa desde dicha unidad de registro de datos (4) y adaptado para generar diferencias de ellos cuando dicha unidad de operación de multiplicación (3) realiza dichas etapas tercera y quinta, sirviendo dichas diferencias como dichos datos de salida de tercera y quinta etapa; y
un segundo multiplexor (35) teniendo una entrada de selección conectada a dicha unidad de control (6), entradas de datos conectadas a dicho circuito multiplicador (33) y a dicho circuito de adición / sustracción (32), y una salida conectada a dicha unidad de registro de datos (4), dicho segundo multiplexor (35) comprendiendo medios adaptados para generar datos de salida correspondientes a uno seleccionado de dicho circuito multiplicador (33) y a dicho circuito de adición / sustracción (32) y donde dicha unidad de control (6) comprende medios para controlar a dicho primer multiplexor, a dicha ROM de coeficientes, a dichos medios de salida, a dicho circuito multiplicador, a dicho circuito de adición / sustracción, a dicho segundo multiplexor.
11. El aparato unidimensional como el reivindicado en la reivindicación 9, donde dicha unidad de registro de datos (4) es una memoria de acceso aleatorio de cuatro puertos con un primer conjunto de puertos de lectura y escritura (RP1, WP1) conectados a dicha unidad de operación mariposa (2) y un segundo conjunto de puertos de lectura y escritura (RP2, WP2) conectados a dicha unidad de operación de adición y multiplicación (3).
ES93310487T 1993-10-27 1993-12-23 Metodo y aparato para realizar la transformacion discreta de coseno y su inversa. Expired - Lifetime ES2206452T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/143,837 US5471412A (en) 1993-10-27 1993-10-27 Recycling and parallel processing method and apparatus for performing discrete cosine transform and its inverse
EP93310487A EP0660247B1 (en) 1993-10-27 1993-12-23 Method and apparatus for performing discrete cosine transform and its inverse

Publications (1)

Publication Number Publication Date
ES2206452T3 true ES2206452T3 (es) 2004-05-16

Family

ID=26134616

Family Applications (1)

Application Number Title Priority Date Filing Date
ES93310487T Expired - Lifetime ES2206452T3 (es) 1993-10-27 1993-12-23 Metodo y aparato para realizar la transformacion discreta de coseno y su inversa.

Country Status (7)

Country Link
US (1) US5471412A (es)
EP (1) EP0660247B1 (es)
AT (1) ATE245838T1 (es)
DE (1) DE69333113T2 (es)
DK (1) DK0660247T3 (es)
ES (1) ES2206452T3 (es)
PT (1) PT660247E (es)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
US5574661A (en) * 1994-07-29 1996-11-12 Compcore Multimedia, Inc. System and method for inverse discrete cosine transform implementation
US5636152A (en) * 1995-04-28 1997-06-03 United Microelectronics Corporation Two-dimensional inverse discrete cosine transform processor
US6421695B1 (en) 1995-10-28 2002-07-16 Lg Electronics Inc. Apparatus for implementing inverse discrete cosine transform in digital image processing system
JP3547567B2 (ja) * 1996-08-08 2004-07-28 シャープ株式会社 離散コサイン変換器
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6507898B1 (en) 1997-04-30 2003-01-14 Canon Kabushiki Kaisha Reconfigurable data cache controller
US6061749A (en) 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
AUPO647997A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6414687B1 (en) 1997-04-30 2002-07-02 Canon Kabushiki Kaisha Register setting-micro programming system
US6141456A (en) * 1997-12-31 2000-10-31 Hitachi America, Ltd. Methods and apparatus for combining downsampling and inverse discrete cosine transform operations
JP3547971B2 (ja) * 1998-01-30 2004-07-28 三洋電機株式会社 離散コサイン変換回路及びその動作方法
JP3547972B2 (ja) * 1998-01-30 2004-07-28 三洋電機株式会社 離散コサイン変換回路
KR100270799B1 (ko) * 1998-01-30 2000-11-01 김영환 이산코사인변환/역이산코사인변환 프로세서
JP3524747B2 (ja) * 1998-01-30 2004-05-10 三洋電機株式会社 離散コサイン変換回路
US6401189B1 (en) 1998-08-05 2002-06-04 Michael J. Corinthios General base state assignment for optimal massive parallelism
US6445829B1 (en) 1998-09-15 2002-09-03 Winbond Electronics Corp. Joint cosine transforming and quantizing device and joint inverse quantizing and inverse cosine transforming device
US6160920A (en) * 1998-09-15 2000-12-12 Winbond Electronics Corp. Cosine transforming and quantizing device, method of reducing multiplication operations in a video compressing apparatus
TW398146B (en) 1998-09-15 2000-07-11 Winbond Electronics Corp Cosine transformation and quantification device, method for reducing multiplication operations of an image compressing device, inverse quantification and inverse cosine transformation device, and method for reducing multiplication operations of an image
US6243730B1 (en) 1999-05-04 2001-06-05 Sony Electronics, Inc. Methods and systems for performing short integer chen IDCT algorithm with fused multiply/add
JP3934290B2 (ja) * 1999-09-30 2007-06-20 株式会社東芝 離散コサイン変換処理装置、逆離散コサイン変換処理装置及び離散コサイン変換処理装置・逆離散コサイン変換処理装置
US7292730B1 (en) * 1999-12-09 2007-11-06 Intel Corporation Two-dimensional inverse discrete cosine transforming
US7123655B2 (en) 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US7792891B2 (en) * 2002-12-11 2010-09-07 Nvidia Corporation Forward discrete cosine transform engine
US8423597B1 (en) 2003-08-29 2013-04-16 Nvidia Corporation Method and system for adaptive matrix trimming in an inverse discrete cosine transform (IDCT) operation
JP4704333B2 (ja) * 2004-06-08 2011-06-15 パナソニック株式会社 画像符号化装置および画像復号化装置、ならびにそれらで用いられる集積回路
US7539916B2 (en) 2005-06-28 2009-05-26 Intel Corporation BIST to provide phase interpolator data and associated methods of operation
US9798698B2 (en) 2012-08-13 2017-10-24 Nvidia Corporation System and method for multi-color dilu preconditioner

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2581463B1 (fr) * 1985-05-03 1989-09-08 Thomson Csf Dispositifs de calcul de transformees cosinus, dispositif de codage et dispositif de decodage d'images comportant de tels dispositifs de calcul
FR2608808B1 (fr) * 1986-12-22 1989-04-28 Efcis Circuit integre de traitement numerique de signaux
US5029122A (en) * 1988-12-27 1991-07-02 Kabushiki Kaisha Toshiba Discrete cosine transforming apparatus
EP0500048B1 (en) * 1991-02-19 1998-05-27 Matsushita Electric Industrial Co., Ltd. Orthogonal transform apparatus for video signal processing
US5257213A (en) * 1991-02-20 1993-10-26 Samsung Electronics Co., Ltd. Method and circuit for two-dimensional discrete cosine transform
US5818742A (en) * 1991-06-24 1998-10-06 Atmel Corporation Apparatus to transform time to frequency and frequency to time of data signals
US5329318A (en) * 1993-05-13 1994-07-12 Intel Corporation Method for optimizing image motion estimation

Also Published As

Publication number Publication date
DE69333113D1 (de) 2003-08-28
EP0660247B1 (en) 2003-07-23
EP0660247A1 (en) 1995-06-28
PT660247E (pt) 2003-10-31
DK0660247T3 (da) 2003-11-17
ATE245838T1 (de) 2003-08-15
US5471412A (en) 1995-11-28
DE69333113T2 (de) 2004-01-29

Similar Documents

Publication Publication Date Title
ES2206452T3 (es) Metodo y aparato para realizar la transformacion discreta de coseno y su inversa.
US4821224A (en) Method and apparatus for processing multi-dimensional data to obtain a Fourier transform
Madisetti et al. A 100 MHz 2-D 8/spl times/8 DCT/IDCT processor for HDTV applications
US6073154A (en) Computing multidimensional DFTs in FPGA
US5181183A (en) Discrete cosine transform circuit suitable for integrated circuit implementation
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
US5081573A (en) Parallel processing system
JP2744526B2 (ja) 準16基数プロセッサおよび方法
US4601006A (en) Architecture for two dimensional fast fourier transform
US6189021B1 (en) Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations
US5297070A (en) Transform processing circuit
US7461114B2 (en) Fourier transform apparatus
JPH08235159A (ja) 逆コサイン変換装置
KR100708270B1 (ko) 계산효율적인 수학 엔진
JPS63167967A (ja) ディジタル信号処理集積回路
EP0710915A1 (en) Fast fourier transform dedicated processor
US4764974A (en) Apparatus and method for processing an image
JPH08137832A (ja) バタフライ演算回路および同回路を用いた高速フーリエ変換装置
US6460061B1 (en) 2-dimensional discrete cosine transform using a polynomial transform
EP0913778A1 (en) A commutator circuit
US6438568B1 (en) Method and apparatus for optimizing conversion of input data to output data
Hsu LINC: The link and interconnection chip
JP4248027B2 (ja) データ要素の系列を変換する装置
KR100189195B1 (ko) 단일화된 시스톨릭어레이 구조에 의한 2차원 dct/dst/dht의 수행장치
US6944640B2 (en) Progressive two-dimensional (2D) pyramid filter