MX2013003017A - Metodo y dispositivo para transformacion y metodo y dispositivo para transformacion inversa de imagenes. - Google Patents

Metodo y dispositivo para transformacion y metodo y dispositivo para transformacion inversa de imagenes.

Info

Publication number
MX2013003017A
MX2013003017A MX2013003017A MX2013003017A MX2013003017A MX 2013003017 A MX2013003017 A MX 2013003017A MX 2013003017 A MX2013003017 A MX 2013003017A MX 2013003017 A MX2013003017 A MX 2013003017A MX 2013003017 A MX2013003017 A MX 2013003017A
Authority
MX
Mexico
Prior art keywords
transformation
stage
mxn
transform matrix
block
Prior art date
Application number
MX2013003017A
Other languages
English (en)
Inventor
Woo-Jin Han
Tammy Lee
Min-Su Cheon
Vadim Seregin
Yoon-Mi Hong
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of MX2013003017A publication Critical patent/MX2013003017A/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Abstract

La presente invención se refiere a un método y dispositivo para la transformación y un método y dispositivo para la transformación inversa de imágenes. De acuerdo con una modalidad de la presente invención, el método para la transformación de imágenes involucra adquirir una matriz de transformación reducida seleccionando un campo de frecuencia predeterminado para la transformación de frecuencia de un bloque de entrada MxN y luego seleccionando los elementos para generar un coeficiente de transformación correspondiente al campo de frecuencia el cual se seleccionó de entre los elementos de la matriz de transformación MxN usada en la transformación de frecuencia del bloque de entrada MxN, e involucra generar un coeficiente de transformación correspondiente al campo de frecuencia seleccionado realizando la transformación de frecuencia en la cual la matriz de transformación reducida se aplica al bloque de entrada MxN.

Description

METODO Y DISPOSITIVO PARA TRANSFORMACION Y METODO Y DISPOSITIVO PARA TRANSFORMACION INVERSA DE IMAGENES Campo de la Invención Una o más de las modalidades de la presente invención se refieren a la codificación de imagen y decodificación de imagen, y más particularmente, a un método de transformación de imagen, un aparato de transformación de imagen, un método de transformación inversa de imagen, y un aparato de transformación inversa de imagen para reducir la complejidad de cálculo procesando solamente una banda de baja frecuencia de un bloque.
Antecedentes de la Invención De acuerdo con un estándar de codificación de vídeo internacional actual, tal como H.264 o MPEG-4, una señal de vídeo es jerárquicamente dividida en una secuencia, un cuadro, un segmento, un macrobloque, y un bloque, en donde el bloque es una unidad de procesamiento mínimo . En términos de codificación, un error permanente de predicción del bloque se determina vía predicción intra-cuadro o inter-cuadro, la transformación de bloque se realiza de modo que la energía se enfoca en un coeficiente de un decimal, y los datos de imagen se comprimen y graban como una corriente de bits codificada vía cuantificación, escaneo, codificación por longitud de series, y codificación por entropía. En términos de Ref. 240026 decodificación, los procesos se realizan en el orden opuesto. Primero, un coeficiente de transformación de bloque de codificación por entropía se extrae de una corriente de bits. Luego, un error permanente de predicción de un bloque se reconstruye vía cuantificación inversa y transformación inversa, y la información de predicción se usa para reconstruir los datos de vídeo del bloque. En un proceso de codificación-decodificación, un módulo de transformación es una base de compresión de vídeo, y el desempeño de transformación del módulo de transformación afecta directamente al desempeño general de un códec.
La transformada discreta de coseno (DCT, por sus siglas en inglés) se emplea como un estándar de codificación de vídeo inicial, tal como MPEG-1 o H.261. Después que la DCT se introdujo en 1974, la DCT se ha utilizado ampliamente en los campos de codificación de imagen y vídeo. El desempeño de transformación de la DCT es excelente en comparación con todas las transformadas sub-óptimas puesto que la DCT remueve una correlación de elementos de imagen en un campo de transformación y prepara una base para la compresión de imagen altamente eficiente. Sin embargo, puesto que una matriz de DCT se expresa usando números de punto flotante, muchos recursos de sistema se usan debido a las masivas operaciones de punto flotante. Por consiguiente, se requiere un nuevo algoritmo de DCT para mejorar la eficiencia de transformación mientras se realiza transformación en un bloque de tamaño grande .
Breve Descripción de la Invención Problema Técnico Una o más modalidades ejemplares proporcionan métodos de transformación de imagen, aparato de transformación de imagen, métodos de transformación inversa de imagen, y aparatos de transformación inversa de imagen para producir coeficientes de transformación que pertenecen a una banda de baja frecuencia vía un número menor de operaciones .
Solución Técnica De acuerdo con una modalidad de la presente invención, los coeficientes de transformación que pertenecen a una banda de baja frecuencia se extraen usando una matriz de transformada truncada obtenida truncando una matriz de transformada existente.
Efectos Ventajosos De acuerdo con las modalidades de la presente invención, la transformación y transformación inversa se realizan solamente en una banda de baja frecuencia seleccionada, y por consiguiente, se puede reducir el número de operaciones requeridas por la transformación y transformación inversa. De acuerdo con las modalidades de la presente invención, la transformación y transformación inversa se realizan vía adiciones, sustracciones, y una operación de desplazamiento, y por consiguiente, se puede reducir el número de operaciones requeridas por la transformación y transformación inversa.
Breve Descripción de las Figuras La FIG. 1 es un diagrama de bloque de un aparato de codificación de imagen de acuerdo con una modalidad de la presente invención; La FIG. 2 es un diagrama de bloque de un aparato de transformación de imagen de acuerdo con una modalidad de la presente invención; La FIG. 3 es un diagrama de referencia para ilustrar un proceso en el cual una unidad de adquisición de matriz de transformada truncada incluida en el aparato de transformación de imagen de la FIG. 2 adquiere una matriz de transformada truncada de acuerdo con una banda de frecuencia seleccionada por una unidad de selección de área de frecuencia incluida en el aparato de transformación de imagen de la FIG. 2, de acuerdo con una modalidad de la presente invención; La FIG. 4 es una gráfica de flujo de transformada discreta de coseno (DCT) de 4 puntos, 8 puntos, 16 puntos, y 32 puntos, de acuerdo con una modalidad de la presente invención; La FIG. 5 es una gráfica de flujo de una DCT de 32 puntos de acuerdo con otra modalidad de la presente invención; La FIG. 6 es un diagrama de referencia de un proceso de operación de una estructura de mariposa que forma la DCT de 32 puntos de la FIG. 5; La FIG. 7 es un diagrama de flujo que ilustra un método de transformación de imagen de acuerdo con una modalidad de la presente invención; La FIG. 8 es un diagrama de bloque de un aparato de decodificación de imagen de acuerdo con una modalidad de la presente invención; La FIG. 9 es un diagrama de bloque de un aparato de transformación inversa de imagen de acuerdo con una modalidad de la presente invención; La FIG. 10 es un diagrama de referencia para ilustrar un proceso en el cual una unidad de adquisición de matriz de transformada inversa truncada incluida en el aparato de transformación inversa de- imagen de la FIG. 9 adquiere una matriz de transformada inversa truncada de acuerdo con una banda de frecuencia de un bloque de transformada recibido, de acuerdo con una modalidad de la presente invención; La FIG. 11 es un diagrama de flujo que ilustra un método de transformación inversa de imagen de acuerdo con una modalidad de la presente invención; y Las FIGS . 12A y 12B son diagramas de referencia que ilustran coeficientes de transformación de una banda de frecuencia la cual será seleccionada, de acuerdo con una modalidad de la presente invención.
Descripción Detallada de la Invención De acuerdo con un aspecto de la presente invención, se proporciona un método de transformación de imagen que comprende : seleccionar un área de frecuencia predeterminada para la transformación de frecuencia con respecto a un bloque de entrada MxN, en donde M y N son enteros positivos; adquirir una matriz de transformada truncada seleccionando elementos para generación de coeficientes de transformación correspondientes al área de frecuencia seleccionada de entre elementos de una matriz de transformada MxN para uso en la transformación de frecuencia con respecto al bloque de entrada MxN; y producir coeficientes de transformación correspondientes al área de frecuencia seleccionada realizando transformación de frecuencia aplicando la matriz de transformada truncada al bloque de entrada MxN.
De acuerdo con otro aspecto de la presente invención, se proporciona un aparato de transformación inversa de imagen que comprende: una unidad de selección de área de frecuencia la cual selecciona un área de frecuencia predeterminada para la transformación de frecuencia con respecto a un bloque de entrada MxN, en donde M y N son enteros positivos; una unidad de adquisición de matriz de transformada truncada la cual adquiere una matriz de transformada truncada seleccionando elementos para la generación de coeficientes de transformación correspondientes al área de frecuencia seleccionada de entre elementos de una matriz de transformada MxN para el uso en la transformación de frecuencia con respecto al bloque de entrada MxN; y una unidad de transformación de frecuencia la cual produce coeficientes de transformación correspondientes al área de frecuencia seleccionada realizando transformación de frecuencia aplicando la matriz de transformada truncada al bloque de entrada MxN.
De acuerdo con otro aspecto de la presente invención, se proporciona un método de transformación inversa de imagen que comprende: recibir coeficientes de transformación de una banda de frecuencia predeterminada de entre coeficientes de transformación de un bloque MxN, en donde M y N son enteros positivos; adquirir una matriz de transformada inversa truncada seleccionando elementos para la transformación inversa con respecto a los coeficientes de transformación de la banda de frecuencia seleccionada de entre elementos de una matriz de transformada inversa MxN para el uso en la transformación inversa de frecuencia con respecto al bloque MxN; y restaurar el bloque MxN realizando transformación inversa de frecuencia aplicando la matriz de transformada inversa truncada a los coeficientes de transformación de la banda de frecuencia seleccionada.
De acuerdo con otro aspecto de la presente invención, se proporciona un aparato de transformación inversa de imagen que comprende: una unidad de adquisición de matriz de transformada inversa truncada la cual adquiere una matriz de transformada inversa truncada seleccionando elementos para la transformación inversa con respecto a los coeficientes de transformación correspondientes a una banda de frecuencia predeterminada de entre los elementos de una matriz de transformada inversa MxN para el uso en la transformación inversa de frecuencia con respecto a un bloque MxN, en donde M y N son enteros positivos; y una unidad de transformación inversa la cual restaura el bloque MxN realizando transformación inversa de frecuencia aplicando la matriz de transformada inversa truncada a los coeficientes de transformación de la banda de frecuencia predeterminada.
Modo de la Invención Después, las modalidades ejemplares serán descritas más completamente con referencia a las figuras acompañantes.
La FIG. 1 es un diagrama de bloque de un aparato de codificación de imagen 100 de acuerdo con una modalidad de la presente invención.
Con referencia a la FIG. 1, el aparato de codificación de imagen 100 incluye un predictor 110, un sustractor 115, un transformador 120, un cuantificador 130, y un codificador por entropía 140.
El predictor 110 divide una imagen de entrada en bloques que tienen un tamaño predeterminado, y genera un bloque de predicción realizando ínter predicción o intra predicción en cada bloque. En detalle, el predictor 110 realiza la ínter predicción para generar un bloque de predicción a través de procesos de compensación y predicción de movimiento, los cuales generan un vector de movimiento que indica una región similar a un bloque actual dentro de un rango de búsqueda predeterminado de una imagen de referencia que previamente se codifica y luego se restaura, e intra predicción para generar un bloque de predicción usando datos de un bloque adyacente que está adyacente a un bloque actual.
El sustractor 115 genera un residuo sustrayendo el bloque de predicción del bloque actual de los datos de imagen originales .
El transformador 120 transforma el residuo a una región de frecuencia. Específicamente, en modalidades ejemplares de la presente invención, una matriz de transformada discreta de coseno (DCT) definida con respecto a un bloque existente que tiene un tamaño relativamente pequeño, tal como 4x4, se puede alargar y se puede aplicar a un bloque que tiene un tamaño de al menos 16x16. Como se describe a continuación, el transformador 120 realiza la DCT de acuerdo con las adiciones y sustracciones basadas en un entero y una operación de desplazamiento, en lugar de una operación de punto flotante, sustituyendo los elementos de una matriz de transformación usada para la DCT existente con números racionales, reduciendo la complejidad de cálculo mientras se incrementa una velocidad de operación. El transformador 120 también puede realizar la DCT usando una matriz de transformación que incluye elementos que se obtienen multiplicando los elementos de una matriz de transformación usada para la DCT por una potencia de 2 y luego redondeando los elementos multiplicados, reduciendo la complejidad de cálculo total. El transformador 120 obtiene una matriz de transformada truncada seleccionando elementos para producir coeficientes de transformación correspondientes a un área de frecuencia predeterminada de entre los elementos de una matriz de transformada MxN que se usa para la transformación de frecuencia con respecto a un bloque de entrada MxN, y realiza la transformación usando la matriz de transformada truncada, reduciendo el número de operaciones requeridas para la transformación.
El cuantificador 130 cuantifica el residuo transformado. El cuantificador 130 puede aplicar un factor de escalamiento predeterminado a un valor de transformación para reducir un valor de error entre un valor transformado usando la matriz de transformada aproximada por el transformador 120 y un valor obtenido vía la DCT con base en una operación de punto flotante actual.
El codificador por entropía 140 genera una corriente de bits realizando codificación de longitud variable en datos de imagen cuantificados .
Después, la transformación de imagen de acuerdo con una modalidad ejemplar será descrita más completamente con referencia a las figuras acompañantes.
La FIG. 2 es un diagrama de bloque de un aparato de transformación de imagen 200 de acuerdo con una modalidad de la presente invención. El aparato de transformación de imagen 200 de la FIG. 2 corresponde al transformador 120 de la FIG. 1.
Con referencia a la FIG. 2, el aparato de transformación de imagen 200 incluye una unidad de selección de área de frecuencia 210, una unidad de adquisición de matriz de transformada truncada 220, y una unidad de transformación de frecuencia 230.
La unidad de selección de área de frecuencia 210 selecciona un área de frecuencia predeterminada para la transformación de frecuencia con respecto a un bloque de entrada MxN (donde M y N son enteros positivos) . En otras palabras, cuando se transforma el bloque de entrada MxN en un área de frecuencia, la unidad de selección de área de frecuencia 210 selecciona cuál banda de frecuencia de coeficientes de transformación será producida. Puesto que generalmente una banda de baja frecuencia de un bloque transformado producido vía la transformación de frecuencia tiene un valor relativamente alto y una banda de alta frecuencia tiene un valor relativamente pequeño, la unidad de selección de área de frecuencia 210 puede seleccionar una banda de baja frecuencia para minimizar un error mientras reduce el número de operaciones. El rango de una banda de baja frecuencia se puede determinar de un rango predefinido por un lado de codificación y un lado de decodificación, o se puede determinar analizando los coeficientes de transformación del bloque transformado y detectando una banda de frecuencia que tiene coeficientes de transformación no cero .
Las FIGS. 12A y 12B son diagramas de referencia que ilustran coeficientes de transformación de una banda de frecuencia la cual será seleccionada, de acuerdo con una modalidad de la presente invención.
Con referencia a las FIGS. 12A y 12B, la unidad de selección de área de frecuencia 210 puede determinar cuál banda de frecuencia de coeficientes de transformación será adquirida de un bloque transformado total 1200. Por ejemplo, para extraer una banda de baja frecuencia de coeficientes de transformación del bloque transformado total 1200, la unidad de selección de área de frecuencia 210 puede seleccionar los coeficientes de transformación dentro de un bloque transformado axd 1210 como se ilustra en la FIG. 12A, o los coeficientes de transformación dentro de un bloque triangular 1220 alrededor del coeficiente DC como se ilustra en la FIG. 12B. La información acerca de los coeficientes de transformación en la banda de frecuencia seleccionada, como en la FIG. 12A, se puede transmitir incluyendo los valores de a y d en una corriente de bits, o los valores de a y d se pueden establecer previamente con base en la información de tamaño del bloque transformado total 1200 en el lado de codificación y el lado de decodificación. Cuando el bloque triangular 1220 se usa como se ilustra en la FIG. 12B, la información acerca de la base c y la altura c del bloque triangular 1220 se puede incluir en una corriente de bits, o el valor de c se puede establecer previamente en el lado de codificación y el lado de decodificación. La información con respecto a qué tipo, entre un bloque rectangular 1210, principalmente, el bloque transformado axd 1210, y el bloque triangular 1220 de las FIGS . 12A y 12B, se usa para definir una banda de baja frecuencia de la cual los coeficientes de transformación serán adquiridos, también se puede incluir en la forma de una sintaxis predeterminada en una corriente de bits y se transmite.
La unidad de adquisición de matriz de transformada truncada 220 adquiere una matriz de transformada truncada seleccionando elementos para la generación de coeficientes de transformación correspondientes a la banda de frecuencia seleccionada de entre los elementos de la matriz de transformada MxN para el uso en la transformación de frecuencia con respecto al bloque de entrada MxN . Aquí, la información de frecuencia se asume como DCT. Los ejemplos de la DCT pueden incluir DCT basada en un entero y DCT basada en una operación de punto flotante. En la DCT asumida en la presente, una matriz de transformada unidimensional (ID) generalmente -se usa en una dirección de columna y en una dirección de hilera del bloque de entrada MxN.
La unidad de transformación de frecuencia 230 produce coeficientes de transformación correspondientes a la banda de frecuencia seleccionada realizando la transformación de frecuencia aplicando la matriz de transformada truncada al bloque de entrada MxN.
La FIG. 3 es un diagrama de referencia para ilustrar un proceso en el cual la unidad de adquisición de matriz de transformada truncada 220 adquiere la matriz de transformada truncada de acuerdo con la banda de frecuencia seleccionada por la unidad de selección de área de frecuencia 210, de acuerdo con una modalidad de la presente invención.
Con referencia a la FIG. 3, cuando una matriz que representa el bloque de entrada MxN es referida como X 320, una matriz de transformada vertical MxN es referida como Cf 310, y una matriz de transformada horizontal es referida como CfT 330, un bloque transformado MxN Y 340 se puede obtener transformando el bloque de entrada MxN X320 en un área de frecuencia a través de una operación de matriz expresada por la Ecuación: Cf*X*CfT.
De acuerdo con una modalidad, todos los coeficientes de transformación que constituyen el bloque transformado MxN Y 340 no son adquiridos, sino solamente se adquieren los coeficientes de transformación en la banda de frecuencia seleccionada por la unidad de selección de área de frecuencia 210. Como se describió anteriormente, cuando el bloque de entrada MxN X 320 se transforma en un área de frecuencia, la unidad de selección de área de frecuencia 210 puede determinar que banda de frecuencia de los coeficientes de transformación será producida. Como se ilustra en la FIG. 3, se asume que un bloque transformado axd 345 (donde a denota un entero positivo menor que M y d denota un entero positivo menor que N) correspondiente a una banda de baja frecuencia se selecciona por la unidad de selección de área de frecuencia 210.
El bloque transformado axd 345 en una banda de baja frecuencia se puede obtener a través de una operación de matriz expresada por la Ecuación: MCf*X*MCfT, no aplicando la matriz de transformada vertical MxN Cf310 y la matriz de transformada horizontal MxN CfT 330 pero aplicando una matriz de transformada vertical truncada axN MCf 315 y un matriz de transformada horizontal truncada Mxd MCfT 335 obtenida truncando respectivamente la matriz de transformada vertical Mx Cf310 y la matriz de transformada horizontal MxN CfT 330. Para adquirir el bloque transformado axd 345 en la banda de baja frecuencia, la unidad de adquisición de matriz de transformada truncada 220 produce la matriz de transformada vertical truncada axN MCf 315 seleccionando los elementos correspondientes a unas hileras superiores de la matriz de transformada vertical MxN Cf 310. La unidad de adquisición de matriz de transformada truncada 220 produce la matriz de transformada horizontal truncada Mxd MCfT 335 seleccionando los elementos correspondientes a las columnas izquierdas d de la matriz de transformada horizontal MxN CfT 330. Por ejemplo, como se ilustra en la FIG. 3, asumiendo que M y N son 16 y a y d son 8, la unidad de adquisición de matriz de transformada truncada 220 adquiere una matriz de transformada vertical truncada 8x16 seleccionando solamente 8 hileras superiores de una matriz de transformada vertical 16x16 y una matriz de transformada horizontal truncada 16x8 seleccionando solamente las 8 columnas izquierdas de una matriz de transformada horizontal 16x16, adquiriendo los coeficientes dé transformación correspondientes a un bloque transformado 8x8 de una banda de baja frecuencia. La unidad de transformación de frecuencia 230 puede producir el bloque transformado 8x8 vía operaciones de matriz entre la matriz de transformada vertical truncada 8x16, la matriz de transformada horizontal truncada 16x8, y el bloque de entrada 16x16. Por ejemplo, un valor intermedio 8x16 se produce aplicando la matriz de transformada vertical truncada 8x16 al bloque de entrada 16x16, y el bloque transformado 8x8 correspondiente a la banda de baja frecuencia finalmente se adquiere aplicando la matriz de transformada horizontal truncada 16x8 al valor intermedio 8x16.
Mientras tanto, cuando el valor de un elemento ubicado en la posición a (i,k) (donde i y k son enteros) de una matriz de transformada vertical es Aik, el (i,k) elemento Aik de la matriz de transformada vertical para la transformación de un bloque de entrada MxN se puede definir como en la Ecuación 1: [Ecuación 1] Puesto que una matriz de transformada horizontal es la transposición de la matriz de transformada vertical, un (i,k) elemento Bik de la matriz de transformada horizontal se expresa como un valor obtenido usando una función de coseno, igual que la matriz de transformada vertical. En general, los elementos de tal matriz de transformada no se usan en un proceso de transformación, pero los productos de los elementos y un coeficiente de escalamiento predeterminado se puede usar para realizar un proceso de transformación con solamente adiciones y una operación de desplazamiento. Aunque una DCT de punto flotante se ilustra en la Ecuación 1, se puede usar DCT de punto fijo. Cuando el producto de un elemento de una matriz de transformada y un coeficiente de escalamiento predeterminado se usa durante la transformación, un proceso de desescalamiento para dividir un coeficiente de transformación por el coeficiente de escalamiento predeterminado se puede realizar adicionalmente durante la cuantificación.
La FIG. 4 es una gráfica de flujo 400 de DCT de 40 puntos, 80 puntos, 16 puntos, y 32 puntos, de acuerdo con una modalidad de la presente invención.
Con referencia a la FIG. 4, fO hasta f31 denotan valores de entrada de transformada ID y al mismo tiempo, denotan valores de salida de transformada inversa ID. Una dirección de procesamiento de datos durante la transformación es de izquierda a derecha, y una dirección de procesamiento durante la transformación inversa es de derecha a izquierda. La intersección de dos líneas en un punto denota una adición de dos números. Un valor arriba de cada línea denota una multiplicación de acuerdo con un coeficiente correspondiente. cQ denota cosG, sG denota sen9, y denota negación. Un número de referencia 410 que indica una línea discontinua es una gráfica de flujo de DCT ID de 4 puntos, un número de referencia 420 que indica una línea discontinua es una gráfica de flujo de DCT ID de 8 puntos, un número de referencia 430 que indica una línea discontinua es una gráfica de flujo de DCT ID de 16 puntos, y un número de referencia 440 que indica una línea discontinua es una gráfica de flujo de DCT ID de 32 puntos.
Como se muestra en la gráfica de flujo 400, c9 y sQ pueden llegar a ser números irracionales de acuerdo con un valor de T en la DCT, y por consiguiente, la complejidad de cálculo puede incrementar. Por consiguiente, aún si un valor de entrada es un entero, un valor de resultado de transformada final se puede mapear a un número irracional. Tal proceso de la DCT puede incrementar la complejidad cuando se realiza usando hardware. Por consiguiente, el método de acuerdo con una modalidad ejemplar proporciona un método de transformación de entero para sustituir números irracionales usados para DCT con números racionales que están aproximadamente cercanos a un valor de resultado de la DCT original. Por ejemplo, un componente eos (nx (i/2) /N) (donde i denota un entero que varía desde 0 a N-l) de los elementos que constituyen la matriz de transformada NxN se puede sustituir con N variables ai que son números racionales. Por ejemplo, cuando N=16, eos 0 se puede sustituir con aO, eos (p? (1/2) /16) se puede sustituir con al, eos (nx (2/2) /16) se puede sustituir con a2, eos (nx (3/2) /16) se puede sustituir con a3 , eos (n (4/2) /16) se puede sustituir con a4, eos (nx (5/2) /16) se puede sustituir con a5, eos (nx ( 6/2) /16) se puede sustituir con a6, eos (n (7/2) /16) se puede sustituir con a7, eos (nx (8/2) /16) se puede sustituir con a8, eos (nx (9/2) /16) se puede sustituir con a9, eos (n (10/2) /16) se puede sustituir con alO, eos (nx (11/2) /16) se puede sustituir con all, eos (nx (12/2) /16) se puede sustituir con al2, eos (nx (13/2) /16) se puede sustituir con al3, eos (nx (14/2) /16) se puede sustituir con al4, y eos (nx (15/2 ) /16) se puede sustituir con al5. Las variables ai pueden ser números racionales, y un denominador de cada variable ai puede tener un valor de una potencia de 2 capaz de una operación de desplazamiento. La variable ai se limita a un racional diádico debido a que si el denominador es una potencia de 2, una operación de división se puede realizar solamente usando una operación de desplazamiento a la derecha (>>) . Por ejemplo, cuando N es 16, 16 variables ai pueden ser los siguientes valores: al = 63/64, a2 = 62/64, a3 = 61/64, a4 = 59/64, a5 = 56/64, a6 = 53/64, a7 = 49/64, a8 = 45/64, a9 = 40/64, alO = 35/64, all = 30/64, al2 = 24/64, al3 = 18/64, al4 = 12/64, y al5 = 6/64. Cuando N es 32, 32 variables ai pueden ser los siguientes valores: al = 255/256, a2 = 254/256, a3 = 253/256, a4 = 251/256, a5 = 248/256, a6 = 244/256, a7 = 241/256, a8 = 236/256, a9 = 231/256, alO = 225/256, all = 219/256, al2 = 212/256, al3 = 205/256, al4 = 197/256, al5 = 189/256, al6 = 181/256, al7 = 171/256, al8 = 162/256, al9 = 152/256, a20 = 142/256, a21 = 131/256, a22 = 120/256, a23 = 109/256, a24 = 97/256, a25 = 86/256, a26 = 74/256, a27 = 62/256, a28 = 49/256, a29 = 37/256, a30 = 25/256, y a31 = 12/256.
Cuando y N son 32, XO hasta X31 denotan valores de entrada, Ai, Bi, Ci , Di, Ei, Fi , y Gi (donde i denota un entero que varía desde 0 a 31) denotan valores intermedios, y YO hasta Y31 denotan valores de salida, la unidad de transformación de frecuencia 230 produce un bloque transformado 16x16 de una banda de baja frecuencia repitiendo la siguiente transformación de punto con respecto a los valores de entrada en dirección de la hilera y valores de entrada en dirección de la columna de un bloque de entrada 32x32 de acuerdo con la gráfica de flujo 400 de la FIG. 4: /etapa 0 A0 = XO + X31; A31 = X0 - X31; Al = XI + X30; A30 = XI X30; A2 = X2 + X29; A29 = X2 - X29; A3 = X3 + X28; A28 = X3 X28; A4 = X4 + X27; A27 = X4 - X27; A5 = X5 + X26; A26 = X5 X26; A6 = X6 + X25; A25 = X6 - X25; A7 = X7 + X24; A24 = X7 X24; A8, = X8 + X23; A23 = X8 - X23 ; A9 = X9 + X22; A22 = X9 X22; A10 = X10 + X21; A21 = X10 - X21; All = = Xll + X20; A20 Xll - X20 ; Al2 = X12 ! + X1Si; A19 = X12 -- X19; A13 = X13 + XI A18 = X13 - X18; A14 = X14 + X17; A17 = X14 - X17; A15 = X15 + X16; A16 = X15 - XI6 ; /etapa 1 BO = AO + A15; B15 = AO - A15; Bl = Al + A14 ; B14 = Al -A14; B2 = A2 + A13 ; B13 = A2 - A13 ; B3 = A3 + A12; B12 = A3 -A12; B4 = A4 + All; BU = A4 - All; B5 = A5 + AlO; BIO = A5 -AlO; B6 = A6 + A9 ; B9 = A6 - A9 ; B7 = A7 + A8 ; B8 = A7 - A8 ; B20 = (181* (A27 - A20) ) >> 8; B27 = (181* (A27 + A20)) >> 8; B21 = (181* (A26 - A21) ) >> 8; B26 = (181* (A26 + A21)) >> 8 ; B22 = (181* (A25 - A22)) >> 8; B25 = (181* (A25 + A22)) >> 8 ; B23 = (181* (A24 - A23)) >> 8; B24 = (181* (A24 + A23)) >> 8; /etapa 2 CO = BO + B7; C7 = BO - B7 ; Cl = Bl + B6 ; C6 = Bl - B6; C2 = B2 + B5; C5 = B2 - B5 ; C3 = B3 + B4 ; C4 = B3 - B4 ; CIO = (181* (B13 - BIO)) >> 8; C13 = (181* (B13 + BIO)) >> 8; CU = (181* (B12 - BU)) >> 8; C12 = (181* (B12 + Bll)) >> 8; C16 = Al6 + B23; C23 = Al6 - B23; C24 = A31 - B24; C31 = A31 + B24 ; C17 = Al7 + B22; C22 = Al7 - B22; C25 = A30 - B25; C30 = A30 + B25; C18 = Al8 + B21; C21 = Al8 - B21; C26 = A29 - B26; C29 = A29 + B26; C19 = Al9 + B20; C20 = Al9 - B20; C27 = A28 -B27; C28 = A28 + B27; /etapa 3 DO = CO + C3; D3 = CO - C3 ; D8 = B8 + CU; Dll = B8 -Cll; D12 = B15 - C12 ; D15 = B15 + C12 / DI = Cl + C2 ; D2 = Cl - C2; D9 = B9 + CIO; DIO = B9 - CIO; D13 = B14 - C13 ; D14 = B14 + C13; D5 = (181* (C6 - C5)) >> 8; D6 = (181* (C6 + C5)) >> 8; D18 = (97*C29 - 236*C18) >> 8; D20 = (- 236*C27 - 97*C20) >> 8; D26 = (- 236*C21 + 97*C26) >> 8; D28 = (97*C19 + 236*C28) >> 8; D19 = (97*C28 - 236*C19) >> 8; D21 = (-236*C26 - 97*C21) >> 8; D27 = (- 236*C20 + 97*C27) >> 8; D29 = (97*C18 + 236*C29) >> 8 ; /etapa 4 YO = (181* (DO + DI)) >> 8; Y8 = (236*D3 + 97*D2) >> 8 ; E4 = C4 + D5; E5 = C4 - D5 ; E6 = C7 - D6 ; E7 = C7 + D6 ; E9 = (97*D14 - 236*D9) >> 8; E10 = (- 236*D13 - 97*D10) >> 8; E13 = (97*D13 - 236*D10) >> 8; E14 = (236*D14 + 97*D9) >> 8 ; E16 = C16 + D19; E19 = C16 - D19; E20 = C23 - D20; E23 = C23 + D20; E24 = C24 + D27; E27 = C24 - D27; E28 = G31 - D28; E31 = C31 + D28; E17 = C17 + D18; E18 = C17 - D18 ; E21 = C22 -D21; E22 = C22 + D21; E25 = C25 + D26; E26 = C25 - D26; E29 = C30 - D29; E30 = C30 + D29; /etapa 5 Y4 = (49*E4 + 251*E7) >> 8; Y12 = (212*E6 - 142*E5) >> 8; F8 = D8 + E9 ; F9 = D8 - E9; FIO = Dll - E10; Fll = Dll + E10; F12 = D12 + E13; F13 = D12 - E13; F14 = D15 - E14 ; F15 = D15 + E14; F17 = (49*E30 - 251*E17) » 8; F18 = (- 251*E29 -49*E18) >> 8; F21 = (212*E26 - 142*E21) >> 8; F22 = (-142*E25 - 212*E22) >> 8; F25 = (212*E25 - 142*E22) >> 8; F26 = (142*E26 + 212*E21) >> 8; F29 = (49*E29 - 251*E18) >> 8 ; F30 = (251*E30 + 49*E17) >> 8; /etapa 6 Y2 = (25*F8 + 254*F15) >> 8; Y10 = (120*F10 + 225*F13) >> 8; Y6 = (244*F12 - 74*F11) >> 8; Y14 = (197*F14 - 162*F9) >> 8; G16 = E16 + F17; G17 = E16 - F17; G18 = E19 - F18; G19 = E19 + F18; G20 = E20 + F21; G21 = E20 - F21; G22 = E23 -F22; G23 = E23 + F22; G24 = E24 + F25; G25 = E24 - F25; G26 = E27 - F26; G27 = E27 + F26; G28 = E28 + F29; G29 = E28 - F29; G30 = E31 - F30; G31 = E31 + F30; /etapa 7 Yl = (12*G16 + 255*G31) >> 8 ; Y9 = (109*G18 + 231*G29) >> 8; Y5 = (62*G20 + 248*G27) >> 8 ; Y13 = (152*G22 + 205*G25) >> 8; Y3 = (253*G24 - 37*G23) >> 8 ; Yll = (219*G26 - 131*G21) >> 8; Y7 = (241*G28 - 86*G19) >> 8 ; Y15 = .(189*G30 - 171*G17) > > 8, Y16 = 0; Y17 = 0; Y18 = = 0; Y19 = 0 ; Y20 = 0; Y21 = 0; Y22 = 0; Y23 = 0; Y24 = 0; Y25 = 0; Y26 = 0; Y27 = 0; Y28 = 0; Y29 = 0; Y30 = 0; Y31 = 0; Por ejemplo, la unidad de transformación de frecuencia 230 produce una matriz de valor intermedio 16x32 repitiendo la transformación de punto descrita anteriormente 32 veces aplicando cada columna de 32 columnas del bloque de entrada 32x32 como los valores de entrada X0 hasta X31, y adquiere una matriz de transformada 16x16 repitiendo la transformación de punto descrita anteriormente 16 veces aplicando 16 hileras que constituyen la matriz de valor intermedio 16x32 como los valores de entrada X0 hasta X31. La matriz de transformada 16x16 corresponde al bloque transformado 16x16 de la banda de baja frecuencia en una matriz de transformada 32x32.
Cuando M y N son 64, XO hasta X63 denotan valores de entrada, Ai, Bi, Ci, Di, Ei, Fi, Gi, Hi, y Zi (donde i denota un entero que varía desde 0 a 63) denotan valores intermedios, y YO hasta Y63 denotan valores de salida, la unidad de transformación de frecuencia 320 produce un bloque transformado 16x16 repitiendo la siguiente transformación de punto con respecto a los valores de entrada en dirección de la hilera y valores de entrada en dirección de la columna de un bloque de entrada 64x64 : /etapa 0 ZO = XO + X63 ; Z63 = XO - X63; Zl = XI + X62; Z62 = XI - X62; Z2 = X2 + X61; Z61 = X2 - X61; Z3 = X3 + X60; Z60 = X3 - X60; Z4 = X4 + X59; Z59 = X4 - X59; Z5 = X5 + X58; Z58 = X5 - X58; Z6 = X6 + X57; Z57 = X6 - X57; Z7 = X7 + X56; Z56 = X7 - X56; Z8 = X8 + X55; Z55 = X8 - X55; Z9 = X9 + X54; Z54 = X9 - X54 ; Z10 = X10 + X53; Z53 - X10 - X53; Zll = Xll + X52; Z52 = Xll - X52; Z12 = X12 + X51 .; Z51 = X12 - X51; Z13 = X13 + X50; Z50 = X13 - X50; Z14 = X14 + X49; Z49 = X14 - X49; Z15 = X15 + X48; Z48 = X15 - X48; Z16 = X16 + X47 ; Z47 = X16 - X47; Z17 = X17 + X46; Z46 = X17 - X46; Z18 = X18 + X45; Z45 = X18 - X45; Z19 = X19 + X44 ; Z44 = X19 - X44; Z20 = X20 + X43 ; Z43 = X20 - X43; Z21 = X21 + X42; Z42 = X21 - X42; Z22 = X22 + X41; Z41 = X22 - X41; Z23 = X23 + X40; Z40 = X23 - X40; Z24 = X24 + X39; Z39 = X24 - X39; Z25 = X25 + X38; Z38 = X25 - X38; Z26 = X26 + X37; Z37 = X26 - X37; Z27 = X27 + X36; Z36 = X27 -X36; Z28 = X28 + X35; Z35 = X28 - X35; Z29 = X29 + X34; Z34 = X29 - X34; Z30 = X30 + X33; Z33 = X30 - X33; Z31 = X31 + X32; Z32 = X31 - X32; /etapa 1 AO = ZO + Z31; A31 = ZO - Z31; Al = Zl + Z30; A30 = Zl -Z30; A2 = Z2 + Z29; A29 = Z2 - Z29; A3 = Z3 + Z28; A28 = Z3 -Z28; A4 = Z4 + Z27; A27 = Z4 - Z27; A5 = Z5 + Z26; A26 = Z5 -Z26; A6 = Z6 + Z25; A25 = Z6 - Z25; A7 = Z7 + Z24 ; A24 = Z7 -Z24; A8 = Z8 + Z23 ; A23 = Z8 - Z23 ; A9 = Z9 + Z22 ; A22 = Z9 -Z22; A10 = Z10 + Z21; A21 = Z10 - Z21; All = Zll + Z20; A20 = Zll - Z20; Al 2 = Z12 + Z19; Al 9 = Z12 - Z19; A13 = Z13 + Z18 ; A18 = Z13 - Z18; Al 4 = Z14 + Z17; Al 7 = Z14 - Z17; A15 = Z15 + Z16; A16 = Z15 - Z16; A40 = (724* (Z55 - Z40) ) >> 10; A55 = (724* (Z55 + Z40) ) >> 10; A41 = (724* (Z54 ¦ - Z41) ) >> 10; A54 = (724* (Z54 + Z41) ) >> 10; A42 = (724* (Z53 ¦ - Z42)) >> 10; A53 - (724* (Z53 + Z42) ) > > 10; A43 = (724* (Z52 - Z43)) >> 10; A52 - (724* (Z52 + Z43) ) >> 10; A44 = (724* (Z51 · - Z44)) >> 10; A51 = (724* (Z51 + Z44) ) >> 10; A45 = (724* (Z50 · - Z45)) >> 10; A50 = (724* (Z50 + 245) ) >> 10; A46 = (724* (Z49 · - Z46)) >> 10; A49 = (724* (Z49 + Z46) ) >> 10; A47 = (724* (Z48 ¦ - Z47)) >> 10; A48 = (724* (Z48 + Z47) ) >> 10; /etapa 2 BO = AO + A15; B15 = AO - Al 5; Bl = Al + A14; B14 = Al - A14 ; B2 = A2 + A13; B13 = A2 - A13 ; B3 = A3 + A12; B12 = A3 - A12; B4 = A4 + All; BU = A4 - All; B5 = A5 + A10; B10 = A5 - A10; B6 = A6 + A9; B9 = A6 - A9; B7 = A7 + A8; B8 = A7 - A8; B20 = (724* (A27 - A20) ) >> 10; B27 = = (724* (A27 + A20) ) >> 10; B21 = (724* (A26 - A21) ) >> 10; B26 = . (724* (A26 + A21) ) >> 10; B22 = (724* (A25 - A22) ) >> 10; B25 = : (724* (A25 + A22) ) >> 10; B23 = (724* (A24 - A23) ) >> 10; B24 = : (724* (A24 + A23) ) >> 10; B32 = Z32 + A47; B47 = Z32 - A47; B48 = Z63 - A48; B63 = Z63 + A48; B33 = Z33 + A46; B46 = Z33 - A46; B49 = Z62 - A49; B62 = Z62 + A49; B34 = Z34 + A45; B45 = Z34 - A45; B50 = Z61 -A50; B61 = Z61 + A50; B35 = Z35 + A44; B44 = Z35 - A44 ; B51 = Z60 - A51; B60 = Z60 + A51; B36 = Z36 + A43; B43 = Z36 - A43 ; B52 = Z59 - A52; B59 = Z59 + A52; B37 = Z37 + A42; B42 = Z37 - A42; B53 = Z58 - A53; B58 = Z58 + A53; B38 = Z38 + A41; B41 = Z38 - A41; B54 = Z57 - A54; B57 = Z57 + A54 ; B39 = Z39 + A40; B40 = Z39 - A40; B55 = Z56 - A55; B56 = Z56 + A55; /etapa 3 CO = BO + B7; C7 = BO - B7; Cl = Bl + B6 ; C6 = Bl - B6 ; C2 = B2 + B5; C5 = B2 - B5 ; C3 = B3 + B4 ; C4 = B3 - B4 ; CIO = (724* (B13 - B10)) >> 10; C13 = (724* (B13 + B10)) >> 10; CU = (724* (B12 - BU) ) >> 10; C12 = (724* (B12 + BU) ) >> 10; C16 = A16 + B23; C23 = A16 - B23; C24 = A31 - B24 ; C31 = A31 + B24 ; C17 = A17 + B22; C22 = A17 - B22; C25 = A30 - B25; C30 = A30 + B25; C18 = A18 + B21; C21 = A18 - B21; C26 = A29 - B26; C29 = A29 + B26; C19 = A19 + B20; C20 = A19 - B20; C27 = A28 -B27; C28 = A28 + B27; C36 = (392*B59 - 946*B36) >> 10; .C40 = (- 946*B55 - 392*B40) >> 10; C52 = (- 946*B43 + 392*B52) >> 10; C56 = (392*B39 + 946*B56) >> 10; C37 = (392*B58 -946*B37) >> 10; C41 = (- 946*B54 - 392*B41) >> 10; C53 = (-946*B42 + 392*B53) >> 10; C57 = (392*B38 + 946*B57) >> 10; C38 = (392*B57 - 946*B38) >> 10; C42 = (- 946*B53 - 392*B42) >> 10; C54 = (- 946*B41 + 392*B54) >> 10; C58 = (392*B37 + 946*B58) >> 10; C39 = (392*B56 - 946*B39) >> 10; C43 = (-946*B52 - 392*B43) >> 10; C55 = (- 946*B40 + 392*B55) >> 10; C59 = (392*B36 + 946*B59) >> 10; /etapa 4 DO = C0 + C3; D3 = CO - C3 ; D8 = B8 + Cll; Dll = B8 -Cll; D12 = B15 - C12 ; D15 = B15 + C12 ; Dl = Cl + C2 ; D2 = Cl - C2; D9 = B9 + CIO; DIO = B9 - CIO; D13 = B14 - C13 ; D14 = B14 + C13; D5 = (724* (C6 - C5)) >> 10; D6 = (724* (C6 + C5 ) ) >> 10; D18 = (392*C29 - 946*C18) >> 10; D20 = (- 946*C27 -392*C20) >> 10; D26 = (- 946*C21 + 392*C26) >> 10; D28 = (392*C19 + 946*C28) >> 10; D19 = (392*C28 - 946*C19) >> 10; D21 = (- 946*C26 - 392*C21) >> 10; D27 = (- 946*C20 + 392*C27) >> 10; D29 = (392*C18 + 946*C29) >> 10; D32 = B32 + C39; D39 = B32 - C39; D40 = B47 - C40; D47 = B47 + C40; D48 = B48 + C55; D55 = B48 - C55; D56 = B63 - C56; D63 = B63 + C56; D33 = B33 + C38; D38 = B33 - C38; D41 = B46 - C41; D46 = B46 + C41; D49 = B49 + C54; D54 = B49 - C54; D57 = B62 - C57; D62 = B62 + C57; D34 = B34 + C37; D37 = B34 - C37; D42 = B45 -C42; D45 = B45 + C42; D50 = B50 + C53; D53 = B50 - C53; D58 = B61 - C58; D61 = B61 + C58; D35 = B35 + C36; D36 = B35 - C36; D43 = B44 - C43; D44 = B44 + C43; D51 = B51 + C52 ; D52 = B51 - C52; D59 = B60 - C59; D60 = B60 + C59; /etapa 5 YO = (724* (DO + DI)) >> 10; E4 = C4 + D5; E5 = C4 - D5 ; E6 = C7 - D6 ; E7 = C7 + D6 ; E9 = (392*D14 - 946*D9) >> 10; E10 = (- 946*D13 - 392*D10) >> 10; E13 = (392*D13 - 946*D10) >> 10; E14 = (946*D14 + 392*D9) >> 10; D15 = D15; E16 = C16 + D19; E19 = C16 - D19; E20 = C23 - D20; E23 = C23 + D20; E24 = C24 + D27; E27 = C24 - D27; E28 = C31 - D28; E31 = C31 + D28; E17 = C17 + D18; E18 = C17 -D18; E21 = C22 - D21; E22 = C22 + D21; E25 = C25 + D26; E26 = C25 - D26; E29 = C30 - D29; E30 = C30 + D29; E34 = (200*D61 -1004*D34) >> 10; E35 = (200*D60 - 1004*D35) >> 10; E36 = (-1004*D59 - 200*D36) >> 10; E37 = (- 1004*D58 - 200*D37) >> 10; E42 = (851*D53 - 569*D42) >> 10; E43 = (851*D52 -569*D43) >> 10; E44 = (- 569*D51 - 851*D44) >> 10; E45 = (-569*D50 - 851*D45) >> 10; E50 = (851*D50 - 569*D45) >> 10; E51 = (851*D51 - 569*D44) >> 10; E52 = (569*D52 + 851*D43) >> 10; E53 = (569*D53 + 851*D42) >> 10; E58 = (200*D58 -1004*D37) >> 10; E59 = (200*D59 - 1004*D36) >> 10; E60 = (1004*D60 + 200*D35) >> 10; E61 = (1004*D61 + 200*D34) >> 10; /etapa 6 Y8 = (200*E4 + 1004*E7) >> 10; F8 = D8 + E9; F9 = D8 - E9; FIO = Dll - E10; FU = Dll + E10; F12 = D12 + E13 ; F13 = D12 - El 3 ; F14 = D15 - E14 ; F15 = D15 + E14; F17 = (200*E30 - 1004*E17) >> 10; F18 = (-1004*E29 - 200*E18) >> 10; F21 = (851*E26 - 569*E21) >> 10; F22 = (- 569*E25 - 851*E22) >> 10; F25 = (851*E25 - 569*E22) >> 10; F26 = (569*E26 + 851*E21) >> 10; F29 = (200*E29 -1004*E18) >> 10; F30 = (1004*E30 + 200*E17) >> 10; F32 = D32 + E35; F33 = D33 + E34; F34 = D33 - E34; F35 = D32 - E35; F36 = D39 - E36; F37 = D38 - E37; F38 = D38 + E37; F39 = D39 + E36; F40 = D40 + E43; F41 = D41 + E42; F42 = D41 - E42; F43 = D40 - E43; F44 = D47 - E44 ; F45 = D46 - E45; F46 = D46 + E45; F47 = D47 + E44; F48 = D48 + E51; F49 = D49 + E50; F50 = D49 - E50; F51 = D48 - E51; F52 = D55 - E52 ; F53 = D54 - E53 ; F54 = D54 + E53; F55 = D55 + E52; F56 = D56 + E59; F57 = D57 + E58; F58 = D57 - E58; F59 = D56 - E59; F60 = D63 - E60; F61 = D62 - E61; F62 = D62 + E61; F63 = D63 + E60; /etapa 7 Y4 = (100*F8 + 1019*F15) >> 10; Y12 = (980*F12 - 297*F11) >> 10; G16 = E16 + F17; G17 = E16 - F17; G18 = E19 - F18 ; G19 = E19 + F18; G20 = E20 + F21; G21 = E20 - F21; G22 = E23 - F22 ; G23 = E23 + F22; G24 = E24 + F25; G25 = E24 - F25; G26 = E27 - F26; G27 = E27 + F26; G28 = E28 + F29; G29 = E28 - F29; G30 = E31 - F30; G31 = E31 + F30; G33 = (100*F62 - 1019*F33) >> 10; G34 = (- 1019*F61 - 100*F34) >> 10; G37 = (792*F58 -650*F37) >> 10; G38 = (- 650*F57 - 792*F38) >> 10; G41 = (483*F54 - 903*F41) >> 10; G42 = (- 903*F53 - 483*F42) >> 10; G45 = (980*F50 - 297*F45) >> 10; G46 = (- 297*F49 - 980*F46) >> 10; G49 = (980*F49 - 297*F46) >> 10; G50 = (297*F50 + 980*F45) >> 10; G53 = (483*F53 - 903*F42) >> 10; G54 = (903*F54 + 483*F41) >> 10; G57 = (792*F57 - 650*F38) >> 10; G58 = (650*F58 + 792*F37) >> 10; G61 = (100*F61 - 1019*F34) >> 10; G62 = (1019*F62 + 100*F33) >> 10; /etapa 8 Y2 = (50*G16 + 1023*G31) >> 10; YIO = (249*G20 + 993*G27) >> 10; Y6 = (1013*G24 - 150*G23) >> 10; Y14 = (964*G28 - 345*G19) >> 10; H32 = F32 + G33; H33 = F32 - G33; H34 = F35 - G34; H35 = F35 + G34; H36 = F36 + G37; H37 = F36 - G37; H38 = F39 - G38; H39 = F39 + G38; H40 = F40 + G41; H41 = F40 - G41; H42 = F43 - G42; H43 = F43 + G42 ; H44 = F44 + G45; H45 = F44 - G45; H46 = F47 - G46; H47 = F47 + G46; H48 = F48 + G49; H49 = F48 - G49; H50 = F51 - G50 ; H51 = F51 + G50; H52 = F52 + G53 ; H53 = F52 - G53; H54 = F55 - G54 ; H55 = F55 + G54; H56 = F56 + G57; H57 = F56 - G57; H58 = F59 - G58; H59 = F59 + G58; H60 = F60 + G61; H61 = F60 - G61; H62 = F63 -G62; H63 = F63 + G62; /etapa 9 Yl = (25*H32 + 1024*H63) >> 10; Y9 = (224*H36 + 999*H59) >> 10; Y5 = (125*?40 + 1016*?55) >> 10; Y13 = (321*?44 + 972*?51) >> 10; ?3 = (1021*?48 - 75*?47) >> 10; Y11 = (987*?52 - 273*?43) >> 10; ?7 = (1009*?56 - 175*?39) >> 10; Y15 = (955*?60 - 369*?35) >> 10; Y16 = 0; Y17 = 0; Y18 = 0; Y19 = 0; ?20 = 0; Y21 = 0; ?22 = 0; ?23 = 0; ?24 = 0; ?25 = 0; ?26 = 0; ?27 = 0; ?28 = 0; ?29 = 0; ?30 = 0; Y31 = 0; ?32 = 0; ?33 = 0; ?34 = 0; ?35 = 0; ?36 = 0; ?37 = 0; ?38 = 0; ?39 = 0; ?40 = 0; Y41 = 0; ?42 = 0; ?43 = 0; ?44 = 0; ?45 = 0; ?46 = 0; ?47 = 0; ?48 = 0; ?49 = 0; ?50 = 0; Y51 = 0; ?52 = 0; ?53 = 0; ?54 = 0; ?55 = 0; ?56 = 0; ?57 = 0; ?58 = 0; ?59 = 0; ?60 = 0; Y61 = 0; ?62 = 0; ?63 = 0; Por ejemplo, la unidad de transformación de frecuencia 230 produce una matriz de valor intermedio 16x64 repitiendo la transformación de punto descrita anteriormente 64 veces aplicando cada columna de 64 columnas del bloque de entrada 64x64 como los valores de entrada X0 hasta X63, y adquiere una matriz de transformada 16x16 repitiendo la transformación de punto descrita anteriormente 16 veces aplicando 16 hileras que constituyen la matriz de valor intermedio 16x64 como los valores de entrada X0 hasta X63. La matriz de transformada 16x16 corresponde al bloque transformado 16x16 de la banda de baja frecuencia en una matriz de transformada 64x64.
La FIG. 5 es una gráfica de flujo 500 de DCT de 32 puntos de acuerdo con otra modalidad de la presente invención.
Con referencia a la FIG. 5, xO hasta x31 denotan valores de entrada, y yO hasta y31 denotan valores de salida de DCT. Una dirección de procesamiento de datos durante la transformación es de izquierda a derecha, y una dirección de procesamiento durante la transformación inversa es de derecha a izquierda. La intersección de 2 líneas en un punto denota una adición de dos números, y ? denota una negación. Un valor R(9) arriba de cada línea denota un proceso de operación con base en una estructura de mariposa como se muestra en la FIG. 6.
La FIG. 6 es un diagrama de referencia de un proceso de operación de una estructura de mariposa que forma la DCT de 32 puntos de la FIG. 5.
Con referencia a la FIG. 6, el proceso de operación de la estructura de mariposa produce un valor de salida [Yl, Y2] vía la ecuación cos8j| Z2 | , con respecto a un valor de entrada [XI, X2] .
Cuando la DCT se realiza de acuerdo con la gráfica de flujo 500 de la FIG. 5, cos9 y sen6 se usan de acuerdo con el valor R(9). Similar a la DCT usando la gráfica de flujo 400 de la FIG. 4, las operaciones requeridas por la DCT se pueden remplazar con adiciones, sustracciones, y una operación de desplazamiento usando un racional diádico como cosQ y sen9 de acuerdo con un valor de T.
Por ejemplo, cuando M y N son 32, XO hasta X31 denotan valores de entrada, Ai, Bi, Ci, Di, Ei, Fi, y Zi (donde i denota un entero que varía desde 0 a 31) denotan valores intermedios, y YO hasta Y31 denotan valores de salida, la unidad de transformación de frecuencia 230 produce un bloque transformado 16x16 de una banda de baja frecuencia repitiendo la siguiente transformación de punto con respecto a los valores de entrada en dirección de la hilera y valores de entrada en dirección de la columna de un bloque de entrada 32x32 de acuerdo con el algoritmo de la FIG. 5: /etapa 0 Z0 = XO + X31; Z31 = XO - X31; Zl = XI + X30; Z30 = XI X30; Z2 = X2 + X29; Z29 = X2 - X29; Z3 = X3 + X28; Z28 = X3 X28; Z4 = X4 + X27; Z27 = X4 - X27; Z5 = X5 + X26; Z26 = X5 X26; Z6 = X6 + X25; Z25 = X6 - X25; Z7 = X7 + X24; Z24 = X7 X24 ; Z8 = X8 + X23; Z23 = X8 - X23; Z9 = X9 + X22; Z22 = X9 X22; Z10 = : X10 + X21; Z21 = X10 - X21; Zll = Xll + X20 ; Z20 Xll · - X20; Z12 = X12 + X1Si; Z19 = X12 -- X19; Z13 = X13 + XI Z18 : = X13 - X18; Z14 = X14 + X17; Z17 = X14 - X17; Z15 = X + X16; Z16 = X15 - X16; /etapa 1 A0 = Z0 + Z15; Al = Zl + Z14; A2 = Z2 + Z13; A3 Z12; A4 = Z4 + Zll; A5 = Z5 + Z10; A6 = Z6 + Z9; A7 Z8; A8 = Z7 - Z8; A9 = Z6 - Z9; A10 = Z5 - Z10; All Zll; A12 = Z3 - Z12; A13 = Z2 - Z13; A14 = Zl - Z14; A15 = ZO - Z15; A16 = (171*Z16 - 189*Z31) >> 8; A31 = (189*Z16 + 171*Z31) >> 8; A17 = (205*Z17 + 152*Z30) >> 8; A30 = (-152*Z17 + 205*Z30) >> 8; A18 = (131*Z18 - 219*Z29) >> 8; A29 = (219*Z18 + 131*Z29) » 8; A19 = (231*Z19 + 109*Z28) >> 8 ; A28 = (- 109*Z19 + 231*Z28) >> 8; A20 = (86*Z20 -.241*Z27) >> 8; A27 = (241*Z20 + 86*Z27) >> 8; A21 = (248*Z21 + 62*Z26) >> 8; A26 = (- 62*Z21 + 248*Z26) >> 8; A22 = (37*Z22 - 253*Z25) >> 8; A25 = (253*Z22 + 37*Z25) >> 8; A23 = (255*Z23 + 12*Z24) >> 8; A24 = (- 12*Z23 + 255*Z24) >> 8; /etapa 2 BO = AO + A7; B7 = AO - A7 ; Bl = Al + A6 ; B6 = Al - A6 ; B2 = A2 + A5; B5 = A2 - A5 ; B3 = A3 + A4 ; B4 = A3 - A4 ; B8 = (197*A8 + 162*A15) >> 8; B15 = (- 162*A8 + 197*A15) >> 8; B9 = (120*A9 - 225*A14) >> 8; B14 = (225*A9 + 120*A14) >> 8; B10 = (244*A10 + 74*A13) >> 8; B13 = (- 74*A10 + 244*A13) >> 8; Bll = (25*A11 - 254*A12) >> 8; B12 = (254*A11 + 25*A12) >> 8; B16 = A16 + A23; B23 = A16 - A23 ; B17 = A17 + A22; B22 = A17 - A22; B18 = A18 + A21; B21 = A18 - A21; B19 = A19 + A20; B20 = A19 - A20; B24 = A24 + A31; B31 = A24 - A31; B25 = A25 + A30; B30 = A25 - A30; B26 = A26 + A29; B29 = A26 - A29; B27 = A27 + A28; B28 = A27 - A28; /etapa 3 CO = BO + B3; C3 = BO - B3 ; Cl = Bl + B2 ; C2 = Bl - B2 ; C4 = (49*B4 + 251*B7) >> 8; C7 = (- 251*B4 + 49*B7) >> 8; C5 = (142*B5 + 212*B6) >> 8; C6 = (- 212*B5 + 142*B6) >> 8; C8 = B8 + Bll; Cll = B8 - Bll; C9 = B9 + B10; CIO = B9 - BIO; C12 = B12 + B15; C15 = B12 - B15; C13 = B13 + B1 ; C14 = B13 -B14; C16 = B16 + B28; C28 = B16 - B28; C17 = B17 + B29; C29 = B17 - B29; C18 = B18 + B30; C30 = B18 - B30; C19 = B19 + B31; C31 = B19 - B31; C20 = B20 + B23; C23 = B20 - B23 ; C21 = B21 + B22; C22 = B21 - B22; C24 = B24 + B27; C27 = B24 - B27; C25 = B25 + B26; C26 = B25 - B26; /etapa 4 DO = (181* (CO + CU) >> 8; D2 = (97*C2 + 236*C3) >> 8; D4 = C4 + C5; D5 = C4 - C5 ; D7 = C6 + C7 ; D8 = C8 + C14 ; D14 = C8 - C14; D9 = C9 + C15; D15 = C9 - C15; Dll = CIO - Cll; D12 = C12 + C13; D13 = C12 - C13 ; D16 = (181* (C16 + C19)) >> 8; D19 = (181* (- C16 + C19)) >> 8; D20 = C20 + C26; D26 = C20 - C26; D21 = C21 + C27; D27 = C21 - C27; D22 = C22 + C23; D23 = C22 - C23; D24 = C24 + C25 ; D28 = (181* (C28 + C31) ) >> 8; D31 = (181* (- C28 + C31) ) >> 8; /etapa 5 E5 = (181* (D5 + D7)) >> 8; E8 = (97*D8 - 236*D9) >> 8; E12 = (181* (- Dll + D12)) >> 8; E15 = (236*D14 + 97*D15) >> 8; E16 = D16 + C18; E18 = D16 - C18; E17 = C17 + DI 9; E19 = C17 - D19; E21 = (- 97*D20 + 236*D21) >> 8; E24 = (181* (- D23 + D24)) >> 8; E26 = (236*D26 + 97*D27) >> 8; E30 = D28 + C30; E29 = - C29 + D31; E31 = C29 + D31; /etapa 6 F16 = (251*E16 - 49*E17) >> 8; F18 = (212*E18 - 142*E19) >> 8; F28 = (212*E28 - 142*E29) >> 8; F29 = (142*E28 + 212*E29) >> 8; F31 = (49*E30 + 251*E31) >> 8 ; /etapa 7 YO = DO; Yl = E24; Y2 = E12 ; Y3 = - F16 ; Y4 = D ; Y5 = F31; Y6 = E8; Y7 = - E26; Y8 = D2 ; Y9 = E21; YIO = El5; Yll = F29; Y12 = E5 ; Y13 = - F18; Y14 ¾= D13; Y15 = D22; Y16 = 0 ; Y17 = 0; Y18 = 0; Y19 = 0; Y20 = 0; Y21 = 0; Y22 = 0; Y23 = 0; Y24 = 0; Y25 = 0; Y26 = 0; Y27 = 0; Y28 = 0; Y29 = 0; Y30 = 0; Y31 = 0; Por ejemplo, la unidad de transformación de frecuencia 230 produce una matriz de valor intermedio 16x32 repitiendo la transformación de punto descrita anteriormente 32 veces aplicando cada columna de 64 columnas del bloque de entrada 32x32 como los valores de entrada XO hasta X31, y adquiere una matriz de transformada 16x16 repitiendo la transformación de punto descrita anteriormente 16 veces aplicando 16 hileras que constituyen la matriz de valor intermedio 16x32 como los valores de entrada X0 hasta X31. La matriz de transformada 16x16 corresponde al bloque transformado 16x16 de la banda de baja frecuencia en una matriz de transformada 64x64.
Cuando y N son 32, X0 hasta X31 denotan valores de entrada, Ai, Bi, Ci, Di, Ei, Fi, y Zi, (donde i denota un entero que varía desde 0 a 31) denotan valores intermedios, y YO hasta Y31 denotan valores de salida, la unidad de transformación de frecuencia 230 produce un bloque transformado repitiendo la siguiente transformación de punto con respecto a los valores de entrada en dirección de la hilera y valores de entrada en dirección de la columna de un bloque de entrada 32x32 de acuerdo con el algoritmo de la FIG. 5: /etapa 0 Z0 = XO + X31; Z31 = XO - X31; Zl = XI + X30; Z30 = XI - X30; Z2 = X2 + X29; Z29 = X2 — X29; Z3 = X3 + X28; Z28 = X3 -X28; Z4 = X4 + X27; Z27 = X4 - X27; Z5 = X5 + X26; Z26 = X5 -X26; Z6 = X6 + X25; Z25 = X6 - X25; Z7 = X7 + X24; Z24 = X7 -X24; Z8 = X8 + X23; Z23 = X8 - X23; Z9 = X9 + X22; Z22 = X9 -X22; Z10 = X10 + X21; Z21 = X10 - X21; Zll = Xll + X20; Z20 = Xll - X20; Z12 = X12 + X19; Z19 = X12 - X19; Z13 = X13 + X18; Z18 = X13 - X18; Z14 = X14 + X17; Z17 = X14 - X17; Z15 = X15 + X16; Z16 = X15 - X16; /etapa 1 A0 - ZO + Z15; Al = Zl + Z14 ; A2 = Z2 + Z13; A3 = Z3 + Z12; A4 = Z4 + Zll; A5 = Z5 + Z10; A6 = Z6 + Z9; A7 = Z7 + Z8; A8 = Z7 - Z8; A9 = Z6 - Z9; A10 = Z5 - Z10 ; All = Z4 -Zll; A12 = Z3 - Z12; A13 = Z2 - Z13 ; Al = Zl - Z14 ; A15 = Z0 - Z15; A16 = Z16 - (113*Z31 >> 8) ; A31 = Z31 + (189*A16 >> 8) ; A16 = A16 - (113*A31 >> 8) ; A17 = Z17 + (84*Z30 >> 8) ; A30 = Z30 - (152*A17 >> 8) ; A17 = A17 + (84*A30 >> 8) ; A18 = Z18 - (145*Z29 >> 8) ; A2 = Z29 + (219*A18 >> 8) ; A18 = A18 - (145*A29 >> 8) ; A19 = Z19 + (57*Z28 >> 8) ; A28 = Z28 - (109*A19 >> 8) ; A19 = A19 + (57*A28 >> 8) ; A20 = Z20 - (180*Z27 >> 8) ; A27 = Z27 + (241*A20 >> 8) ; A20 = A20 - (180*A27 >> 8) ; A21 = Z21 + (31*Z26 >> 8) ; A26 = Z26 - (62*A21 >> 8) ; A21 = A21 + (31*A26 >> 8) ; A22 = Z22 - (220*Z25 >> 8) ; A25 = Z25 + (253*A22 > > 8) ; A22 = A22 - (220*A25 >> 8) ; A23 = Z23 + (6*Z24 >> 8) ; A24 = Z24 - (12*A23 >> 8) ; A23 = A23 + (6*A24 >> 8) ; /etapa 2 BO = AO + A7; B7 = AO - A7 ; Bl = Al + A6 ; B6 = Al - A6 ; B2 = A2 + A5 ; B5 = A2 - A5 ; B3 = A3 + A4 ; B4 = A3 - A4 ; B8 = A8 + (91*A15 >> 8) ; B15 = A15 - (162*B8 >> 8) ; B8 = B8 + (91*B15 » 8) ; B9 = A9 - (153*A14 >> 8) ; B14 = A14 + (225*B9 >> 8) ; B9 = B9 - (153*B14 >> 8) ; BIO = AIO + (37*A13 >> 8) ; B13 = A13 - (74*B10 >> 8) ; B10 = BIO + (37*B13 » 8 ) ; Bll = All - (232*A12 >> 8) ; B12 = A12 + (254*B11 >> 8) ; Bll = Bll - (232*B12 >> 8 ) ; B16 = A16 + A23; B23 = A16 - A23; B17 = A17 + A22 ; B22 = A17 - A22; B18 = A18 + A21; B21 = A18 - A21; B19 = A19 + A20; B20 = A19 - A20; B24 = A24 + A31; B31 = A24 - A31; B25 = A25 + A30; B30 = A25 - A30; B26 = A26 + A29; B29 = A26 - A29; B27 = A27 + A28; B28 = A27 - A28; /etapa 3 C0 = BO + B3; C3 = BO - B3 ; Cl = Bl + B2 ; C2 = Bl - B2 ; C4 = B4 + (210*B7 >> 8) ; C7 = B7 - (251*C4 >> 8); C4 = C4 + (210*C7 >> 8); C5 = B5 + (136*B6 >> 8) ; C6 = B6 - (212*C5 >> 8) ; C5 = C5 + (136*C6 >> 8) ; C8 - B8 + Bll; CU = B8 - Bll; C9 = B9 + BIO; CIO = B9 - BIO; C12 = B12 + B15; C15 = B12 - B15; C13 = B13 + B14 ; C14 = B13 - B14; C16 = B16 + B28; C28 = B16 - B28; C17 = B17 + B29; C29 = B17 - B29; C18 = B18 + B30; C30 = B18 - B30; C19 = B19 + B31; C31 = B19 - B31; C20 = B20 + B23; C23 = B20 - B23; C21 = B21 + B22; C22 = B21 - B22; C24 = B24 + B27; C27 = B24 - B27; C25 = B25 + B26; C26 = B25 - B26; /etapa 4 DO = CO + Cl; D3 = C2 - (106*C3 >> 8) ; D2 = C3 + (90*D3 >> 8) ; D4 = C4 + C5; D5 = C4 - C5 ; D7 = C6 + C7; D8 = C8 + C14; D14 = C8 - C14 ; D9 = C9 + C15; D15 = C9 - C15 ; Dll = CIO - Cll; D12 = C12 + C13 ; D13 = C12 - C13; D16 = C16 + (106*C19 >> 8); D19 = C19 - (181*D16 >> 8 ) ; D16 = D16 + (106*D19 >> 8); D20 = C20 + C26; D26 = C20 - C26; D21 = C21 + C27; D27 = C21 - C27; D22 = C22 + C23 ; D23 = C22 - C23; D24 = C24 + C25; D28 = C28 + (106*C31 >> 8); D31 = C31 - (181*D28 >> 8); D28 = D28 + (106*D31 >> 8); /etapa 5 E5 = D5 + D7; E9 = D8 + (106*D9 >> 8); E8 = - (D9 - (90*E9 >> 8 ) ) ; Ell = Dll + D12; E12 = D12 - (Ell >> 1); E15 = D14 + (106*D15 >> 8) ; E16 = D16 + C18; E18 = D16 - C18; E17 = C17 + D19; E19 = C17 - D19; E20 = D20 + (106*D21 >> 8); E21 = D21 - (90*E20 >> 8); E23 = D23 + D24; E24 = D24 - (E23 >> 1); E26 = D26 + (106*D27 >> 8) ; E28 = - D28 + C30; E30 = D28 + C30; E29 = - C29 + D31; E31 = C29 + D31; /etapa 6 F16 = E16 - (50*E17 >> 8) ; F18 = E18 - (171*E19 >> 8) ; F28 = E28 - (171*E29 >> 8); F29 = E29 + (118*F28 >> 8); F30 = E30 - (50*E31 >> 8); F31 = E31 + (48*F30 >> 8 ) ; /etapa 7 YO = DO; Yl = E24; Y2 = E12; Y3 = - F16; ?4 = D4 ; ?5 = F31; Y6 = ?8; ?7 = - ?26; ?8 = D2 ; ?9 = E21; Y10 = E15; Y11 = F29; Y12 = ?5 ; Y13 = - F18; Y14 = D13 ; Y15 = D22; Y16 = 0 ; Y17 = 0; Y18 = 0; Y19 = 0; ?20 = 0; Y21 = 0; ?22 = 0; ?23 = 0; ?24 = 0; ?25 = 0; ?26 = 0; ?27 = 0; ?28 = 0; ?29 = 0; ?30 = 0; Y31 = 0; Por ejemplo, la unidad de transformación de frecuencia 230 produce una matriz de valor intermedio 16x32 repitiendo la transformación de punto descrita anteriormente 32 veces aplicando cada columna de 64 columnas del bloque de entrada 32x32 como los valores de entrada X0 hasta X31, y adquiere una matriz de transformada 16x16 de una banda de baja frecuencia repitiendo la transformación de punto descrita anteriormente 16 veces aplicando 16 hileras que constituyen la matriz de valor intermedio 16x32 como los valores de entrada X0 hasta X31.
La FIG. 7 es un diagrama de flujo que ilustra un método de transformación de imagen de acuerdo con una modalidad de la presente invención.
Con referencia a la FIG. 7, en la operación 710, la unidad de selección de área de frecuencia 210 selecciona un área de frecuencia predeterminada para la transformación de frecuencia con respecto a un bloque de entrada MxN (donde M y N son enteros positivos) . Como se describió anteriormente, la energía de un bloque transformado debido a la transformación de energía se acumula en una banda de baja frecuencia, la unidad de selección de área de frecuencia 210 puede seleccionar una banda de baja frecuencia.
En la operación 720, la unidad de adquisición de matriz de transformada truncada 220 adquiere una matriz de transformada truncada seleccionando elementos para la generación de coeficientes de transformación correspondientes a la banda de frecuencia seleccionada de entre los elementos de una matriz de transformada MxN para el uso en la transformación de frecuencia con respecto al bloque de entrada MxN. Por ejemplo, para adquirir un bloque transformado axd en la banda de baja frecuencia, la unidad de adquisición de matriz de transformada truncada 220 produce una matriz de transformada vertical truncada axN seleccionando los elementos correspondientes a unas hileras superiores de una matriz de transformada vertical MxN, y produce una matriz de transformada horizontal truncada Mxd seleccionando los elementos correspondientes a las columnas izquierdas d de una matriz de transformada horizontal MxN.
En la operación 730, la unidad de transformación de frecuencia 230 produce coeficientes de transformación correspondientes a la banda de frecuencia seleccionada realizando transformación de frecuencia aplicando la matriz de transformada truncada al bloque de entrada MxN.
De acuerdo con las modalidades descritas anteriormente de la presente invención, puesto que los coeficientes de transformación correspondientes a solamente una banda de frecuencia seleccionada de un bloque transformado total se producen en un proceso de transformación, un mapa de significancia que representa las posiciones de los coeficientes de transformación efectivos, principalmente, coeficientes de transformación no cero, dentro de un bloque se produce para solamente la banda de frecuencia seleccionada. Aunque solamente se ha ilustrado un caso donde la banda de baja frecuencia seleccionada tiene una forma de bloque, la forma de la banda de baja frecuencia seleccionada no se limita a esta, y se pueden seleccionar varias formas de bandas de baja frecuencia, tal como una banda de baja frecuencia triangular alrededor de un coeficiente de DCT, como se muestra en la FIG. 12B. La información con respecto a la banda de baja frecuencia seleccionada se puede señalar usando una sintaxis predeterminada independientemente de una corriente de bits, o, cuando un lado de codificación y un lado de decodificación previamente establecen la única forma y el único rango de una banda de baja frecuencia de la cual los coeficientes de transformación serán producidos, la transformación y transformación inversa se pueden realizar en solamente la banda de baja frecuencia previamente establecida sin transmitir una sintaxis especial.
La FIG. 8 es un diagrama de bloque de un aparato de decodificación de imagen 800 de acuerdo con una modalidad de la presente invención.
Con referencia a la FIG. 8, el aparato de decodificación de imagen 800 incluye un decodificador por entropía 810, un cuantificador inverso 820, un transformador inverso 830, y un predictor 840.
El codificador por entropía 810 extrae información de modo de predicción, información de imagen de referencia, e información residual de un bloque actual a ser decodificado, de una corriente de bits de entrada.
El cuantificador inverso 820 cuantifica a la inversa los coeficientes de transformación cuantificados , los cuales son decodificados por entropía por el decodificador por entropía 810.
El transformador inverso 830 transforma a la inversa los coeficientes de transformación cuantificados a la inversa. Por consiguiente, los valores residuales para cada bloque son restaurados. En particular, el transformador inverso 830 realiza la DCT inversa de acuerdo con las adiciones y sustracciones con base en un entero y una operación de desplazamiento, en lugar de una operación de punto flotante, sustituyendo los elementos de una matriz de transformación usada para la DCT inversa existente con números racionales, reduciendo la complejidad de cálculo mientras se incrementa una velocidad de operación. El transformador inverso 830 también puede realizar la DCT inversa usando una matriz de transformación inversa que incluye elementos que se obtienen multiplicando los elementos de una matriz de transformación inversa usada para la DCT inversa por una potencia de 2 y luego redondeando los elementos multiplicados, reduciendo la complejidad de cálculo total. El transformador inverso 830 también adquiere una matriz de transformación inversa truncada seleccionando los elementos para la generación de coeficientes de transformación inversa correspondientes a un área de frecuencia predeterminada de entre los elementos de una matriz de transformación inversa MxN para el uso en la transformación inversa de frecuencia con respecto a un bloque de entrada MxN, y realiza la transformación inversa usando la matriz de transformación inversa truncada, reduciendo el número de operaciones requeridas por la transformación inversa .
El predictor 840 produce un valor de predicción del bloque actual vía ínter predicción o intra predicción, y restaura el bloque actual agregando el valor de predicción generado con los valores residuales restaurados en el transformador inverso 830.
La FIG. 9 es un diagrama de bloque de un aparato de transformación inversa de imagen 900 de acuerdo con una modalidad de la presente invención. El aparato de transformación inversa de imagen 900 de la FIG. 9 corresponde al transformador inverso 830 de la FIG. 8.
Con referencia a la FIG. 9, el aparato de transformación inversa de imagen 900 incluye una unidad de adquisición de matriz de transformada inversa truncada 910 y una unidad de transformación inversa de frecuencia 920.
La unidad de adquisición de matriz de transformada inversa truncada 910 recibe un bloque transformado de una banda de frecuencia predeterminada y genera una matriz de transformada inversa truncada para la transformación inversa con respecto al bloque transformado recibido. Por ejemplo, una corriente de bits puede incluir información con respecto a varias formas de banda de baja frecuencia tal como un bloque de banda de baja frecuencia rectangular y un bloque de banda de baja frecuencia triangular, como se muestran en las FIGS . 12A y 12B, e información con respecto a los tamaños de una banda de baja frecuencia, y la unidad de adquisición de matriz de transformada inversa truncada 910 puede determinar, con base en la información con respecto a las formas de banda de baja frecuencia y la información con respecto a los tamaños de una banda de baja frecuencia, qué forma y qué banda de frecuencia de los coeficientes de transformación adquiridos en la transformación corresponden de entre los coeficientes de transformación incluidos en un bloque transformado total.
La unidad de adquisición de matriz de transformada inversa truncada 910 adquiere una matriz de transformada inversa truncada seleccionando elementos para la transformación inversa con respecto a los coeficientes de transformación correspondientes a una banda de frecuencia del bloque transformado recibido de entre los elementos de una matriz de transformada inversa MxN para el uso en la transformación inversa de frecuencia con respecto a un bloque MxN (donde M y M son enteros positivos) . La matriz de transformada inversa MxN corresponde a una matriz inversa de la matriz de transformada MxN y puede ser una matriz de transformada inversa MxN sustituida que se obtiene sustituyendo los elementos de una matriz de transformada inversa con números racionales o tiene elementos obtenidos multiplicando los elementos de la matriz de transformada inversa por una potencia de 2 y redondeando los elementos multiplicados. Cuando se usa la matriz de transformada MxN sustituida, la IDCT (DCT Inversa) se puede realizar usando solamente adiciones, sustracciones, y una operación de desplazamiento.
La unidad de transformación inversa de frecuencia 920 produce un bloque residual transformando a la inversa el bloque transformado MxN usando la matriz de transformada inversa truncada al bloque transformado recibido de la banda de frecuencia predeterminada.
La FIG. 10 es un diagrama de referencia para ilustrar un proceso en el cual la unidad de adquisición de matriz de transformada inversa truncada 910 adquiere una matriz de transformada inversa truncada de acuerdo con la banda de frecuencia del bloque transformado recibido, de acuerdo con una modalidad de la presente invención.
Con referencia a la FIG. 10, se asume que un bloque transformado axd el cual será transformado a la inversa es Y 1025, una matriz de transformada inversa vertical MxN es Ci 1010, y una matriz de transformada horizontal MxN es CiT 1030. El bloque transformado axd Y 1025 incluye solamente coeficientes de transformación correspondientes a una banda de baja frecuencia de entre los coeficientes de transformación incluidos en un bloque transformado MxN 1020, y se puede transformar a la inversa usando la matriz de transformada inversa vertical MxN Ci 1010 y la matriz de transformada inversa horizontal MxN CiT 1030 sin cambios. Por consiguiente, la unidad de adquisición de matriz de transformada inversa truncada 910 restaura un bloque residual MxN del bloque transformado axd Y 1025 de la banda de baja frecuencia vía una operación de matriz expresada por la Ecuación: MCi*Y*MCiT, usando una matriz de transformada inversa vertical truncada Mxd MCi 1015 y una matriz de transformada horizontal truncada axN MCiT 1035 obtenida truncando respectivamente la matriz de transformada inversa vertical MxN Ci 1010 y la matriz de transformada inversa horizontal MxN CiT 1030. Por ejemplo, la unidad de adquisición de matriz de transformada inversa truncada 910 produce la matriz de transformada vertical truncada Nxd MCi 1015 seleccionando los elementos correspondientes a las columnas izquierdas d de la matriz de transformada vertical MxN Ci 1010. La unidad de adquisición de matriz de transformada inversa truncada 910 produce la matriz de transformada horizontal truncada axN MCiT 1035 seleccionando los elementos correspondientes a unas hileras superiores de la matriz de transformada horizontal MxN CiT 1030. Por ejemplo, como se ilustra en la FIG. 10, asumiendo que M y N son 16 y a y d son 8, la unidad de adquisición de matriz de transformada inversa truncada 910 adquiere una matriz de transformada inversa vertical truncada 16x8 seleccionando solamente 8 columnas izquierdas de una matriz de transformada inversa vertical 16x16 y una matriz de transformada inversa horizontal truncada 8x16 seleccionando solamente 8 hileras superiores de una matriz de transformada inversa horizontal 16x16, para restaurar un bloque residual 16x16 de una banda de baja frecuencia vía transformación inversa con respecto a un bloque transformado 8x8 de una banda de baja frecuencia. La unidad de transformación inversa de frecuencia 920 puede producir un bloque residual 16x16 realizando la transformación inversa vía operaciones de matriz entre la matriz de transformada inversa vertical truncada 16x8, la matriz de transformada inversa horizontal truncada 8x16, y el bloque transformado 8x8. Por ejemplo, se produce un valor intermedio 16x8 aplicando la matriz de transformada inversa vertical truncada 16x8 al bloque transformado 8x8, y el bloque residual 16x16 se adquiere finalmente aplicando la matriz de transformada inversa horizontal truncada 8x16 al valor intermedio 16x8.
Cuando M y N son 32, XO hasta X15 denotan valores de entrada, Ai, Bi, Ci, Di, Ei, Fi, y Gi (donde i denota un entero que varía desde 0 a 31) denotan valores intermedios, y YO hasta Y31 denotan valores de salida, la unidad de transformación inversa de frecuencia 920 restaura un bloque residual 32x32 repitiendo la siguiente transformación de punto con respecto a los valores de entrada en dirección de la hilera y los valores de entrada en dirección de la columna del bloque transformado 16x16 de una banda de baja frecuencia producida de acuerdo con la gráfica de flujo 400 de la FIG. 4 : /etapa 0 G16 = (12*X1) >> 8; G17 = (- 171*X15) >> 8; G18 = (109*X9) >> 8; G19 = (- 86*X7) >> 8; G20 = (62*X5) >> 8; G21 = (- 131*X11) >> 8; G22 = (152*X13) >> 8; G23 = (- 37*X3) >> 8; G24 = (253*X3) >> 8; G25 = (205*X13) >> 8; G26 = (219*X11) >> 8; G27 = (248*X5) >> 8; G28 = (241*X7) >> 8; G29 = (231*X9) >> 8; G30 = (189*X15) >> 8; G31 = (255*X1) >> 8; /etapa 1 F8 = (25*X2) >> 8; F9 = (- 162*X14) » 8; FIO = (120*X10) >> 8; Fll = (- 74*X6) >> 8; F12 = (244*X6) >> 8; F13 = (225*X10) >> 8; F14 = (197*X14) >> 8; F15 = (254*X2) >> F16 = G16 + G17; F17 = G16 - G17 ; F18 = G19 - G18; F19 = G19 + G18; F20 = G20 + G21; F21 = G20 - G21; F22 = G23 - G22; F23 = G23 + G22; F24 = G24 + G25; F25 = G24 - G25; F26 = G27 - G26; F27 = G27 + G26; F28 = G28 + G29; F29 = G28 - G29; F30 = G31 - G30; F31 = G31 + G30; /etapa 2 E4 = (49*X4) >> 8; E5 = (- 142*X12) >> 8; E6 = (212*X12) >> 8; E7 = (251*X4) >> 8 ; E8 = F8 + F9; E9 = F8 - F9 ; E10 = Fll - FIO; Ell = Fll + FIO; E12 = F12 + F13 ; E13 = F12 - F13 ; E14 = F15 - F14 ; E15 = F15 + F14; E17 = (49*F30 - 251*F17) >> 8; E18 = (- 251*F29 -49*F18) >> 8; E21 = (212*F26 - 142*F21) >> 8; E22 = (-142*F25 - 212*F22) >> 8; E25 = (212*F25 - 142*F22) >> 8; E26 = (142*F26 + 212*F21) >> 8; E29 = (49*F29 - 251*F18) >> 8; E30 = (251*F30 + 49*F17) >> 8 ; /etapa 3 DO = (181* (XO) ) » 8; DI = (181* (XO)) >> 8; D2 = (97*X8) >> 8; D3 = (236*X8) » 8; D4 = E4 + E5; D5 = E4 - E5 ; D6 = E7 - E6 ; D7 = E7 + E6 ; D9 = (97*E14 - 236*E9) >> 8; DIO = (- 236*E13 - 97*E10) >> 8 ; D13 = (97*E13 - 236*E10) >> 8; D14 = (236*E14 + 97*E9) >> 8 ; D16 = F16 + F19; D19 = F16 - F19; D20 = F23 - F20; D23 = F23 + F20; D24 = F24 + F27; D27 = F24 - F27; D28 = F31 - F28; D31 = F31 + F28; D17 = E17 + E18; D18 = E17 - E18; D21 = E22 -E21; D22 = E22 + E21; D25 = E25 + E26; D26 = E25 - E26; D29 = E30 - E29; D30 = E30 + E29; /etapa 4 CO = DO + D3; C3 = DO - D3 ; C8 = E8 + Ell; Cll = E8 -Ell; C12 = E15 - E12 ; C15 = E15 + E12 ; Cl - DI + D2 ; C2 = Dl - D2; C9 = D9 + DIO; CIO = D9 - DIO; C13 = D14 - D13 ; C14 = D14 + D13; C5 = (181* (D6 - D5 ) ) >> 8; C6 = (181* (D6 + D5)) >> 8; C18 = (97*D29 - 236*D18) >> 8; C20 = (- 236*D27 - 97*D20) >> 8; C26 = (- 236*D21 + 97*D26) >> 8; C28 = (97*D19 + 236*D28) >> 8; C19 = (97*D28 - 236*D19) >> 8; C21 = (-236*D26 - 97*D21) >> 8; C27 = (- 236*D20 + 97*D27) >> 8; C29 = (97*D18 + 236*D29) >> 8; /etapa 5 BO = CO + D7; B7 = CO - D7 ; Bl = Cl + C6 ; B6 = Cl - C6 ; B2 = C2 + C5; B5 = C2 - C5 ; B3 = C3 + D4 ; B4 = C3 - D4 ; B10 = (181* (C13 - CIO)) >> 8; B13 = (181* (C13 + CIO)) >> 8; Bll = (181* (C12 - Cll) ) >> 8; B12 = (181* (C12 + Cll) ) >> 8; B16 = D16 + D23; B23 = D16 - D23; B24 = D31 - D24 ; B31 = D31 + D24; B17 = D17 + D22; B22 = D17 - D22; B25 = D30 - D25; B30 = D30 + D25; B18 = C18 + C21; B21 = C18 - C21 B26 = C29 - C26; B29 = C29 + C26; B19 = C19 + C20; B20 = C19 - C20; B27 = C28 -C27; B28 = C28 + C27; /etapa 6 AO = BO + C15; A15 = BO - C15 ; Al = Bl + C14 ; A14 = Bl -C14; A2 = B2 + B13 ; A13 = B2 - B13 ; A3 = B3 + B12; A12 = B3 -B12; A4 = B4 + BU; All = B4 - BU; A5 = B5 + BIO; A10 = B5 -BIO; A6 = B6 + C9 ; A9 = B6 - C9 ; A7 = B7 + C8 ; A8 = B7 - C8 ; A20 = (181* (B27 - B20)) >> 8; A27 = (181* (B27 + B20)) >> 8; A21 = (181* (B26 - B21)) >> 8; A26 = (181* (B26 + B21)) >> 8; A22 = (181* (B25 - B22)) >> 8; A25 = (181* (B25 + B22)) >> 8 ; A23 = (181* (B24 - B23)) >> 8; A24 = (181* (B24 + B23)) >> 8; /etapa 7 YO = AO + B31; Y31 = AO - B31; Yl = Al + B30; Y30 = Al - B30 ; Y2 = A2 + B29; Y29 = A2 - B29; Y3 = A3 + B28; Y28 = A3 - B28; Y4 = A4 + A27; Y27 = A4 - A27; Y5 = A5 + A26; Y26 = A5 - A26; Y6 = A6 + A25; Y25 = A6 - A25; Y7 = A7 + A24 ; Y24 = A7 - A24 ; Y8 = A8 + A23 ; Y23 = A8 - A23; Y9 = A9 + A22; Y22 = A9 - A22; Y10 = : A10 + A21; Y21 = A10 - A21; Yll = All + A20; Y20 = All - A20; Y12 = A12 : + Bisl; Y19 = A12 -- B19; Y13 = Al3 + B18; Y18 = A13 - B18; Y14 = A14 + B17; Y17 = A14 - B17; Y15 = A15 + B16; Y16 = A15 - B16; Cuando M y N son 64, XO hasta X15 denotan valores de entrada, Zi, Ai, Bi, Ci, Di, Ei, Fi, Gi, y Hi (donde i denota un entero que varía desde 0 a 63) denotan valores intermedios, y YO hasta Y63 denotan valores de salida, la unidad de transformación inversa de frecuencia 920 restaura un bloque residual 64x64 repitiendo la siguiente transformación de punto con respecto a los valores de entrada en dirección de la hilera y los valores de entrada en dirección de la columna del bloque transformado 16x16 de una banda de baja frecuencia producida de acuerdo con la gráfica de flujo 400 de la FIG. 4: /etapa 0 H32 = (25*X1) >> 10; H33 = 0; H34 = 0; H35 = (- 369*X15) >> 10; H36 = (224*X9) >> 10; H37 = 0; H38 = 0; H39 = (-175*X7) >> 10; H40 = (125*X5) >> 10; H41 = 0; H42 = 0; H43 = (- 273*X11) >> 10; H44 = (321*X13) >> 10; H45 = 0; H46 = 0; H47 = (- 75*X3) >> 10; H48 = (1021*X3) >> 10; H49 = 0; H50 = 0; H51 = (972*X13) >> 10; H52 = (987*X11) >> 10; H53 = 0; H54 = 0; H55 = (1016*X5) >> 10; H56 = (1009*X7) >> 10; H57 = 0; H58 = 0; H59 = (999*X9) >> 10; H60 = (955*X15) >> 10; H61 = 0; H62 = 0; H63 = (1024*X1) >> 10; /etapa 1 G16 = (50*X2) » 10; G17 = 0; G18 = 0; G19 = (- 345*X14) >> 10; G20 = (249*X10) >> 10; G21 = 0; G22 = 0; G23 = (-150*X6) >> 10; G24 = (1013*X6) >> 10; G25 = 0; G26 = 0; G27 = (993*X10) >> 10; G28 = (964*X14) >> 10; G29 = 0; G30 = 0; G31 = (1023*X2) >> 10; G32 = H32 + H33; G33 = H32 - H33; G34 = H35 - H34 ; G35 = H35 + H34; G36 = H36 + H37; G37 = H36 - H37; G38 = H39 - H38; G39 = H39 + H38; G40 = H40 + H41; G41 = H40 - H41; G42 = H43 - H42; G43 = H43 + H42; G44 = H44 + H45; G45 = H44 - H45; G46 = H47 - H46; G47 = H47 + H46; G48 = H48 + H49; G49 = H48 -H49; G50 = H51 - H50; G51 = H51 + H50; G52 = H52 + H53 ; G53 = H52 - H53; G54 = H55 - H54; G55 = H55 + H54; G56 = H56 + H57; G57 = H56 - H57; G58 = H59 - H58; G59 = H59 + H58; G60 = H60 + H61; G61 = H60 - H61; G62 = H63 - H62 ; G63 = H63 + H62 ; /etapa 2 F8 = (100*X4) >> 10; F9 = 0; FIO = 0; FU = (- 297*X12) >> 10; F12 = (980*X12) >> 10; F13 = 0; F14 = 0; F15 = (1019*X4) >> 10; F16 = G16 + G17; F17 = G16 - G17; F18 = G19 - G18 ; F19 = G19 + G18; F20 = G20 + G21; F21 = G20 - G21; F22 = G23 - G22 ; F23 = G23 + G22; F24 = G24 + G25; F25 = G24 - G25; F26 = G27 - G26; F27 = G27 + G26; F28 = G28 + G29; F29 = G28 - G29; F30 = G31 - G30; F31 = G31 + G30; F33 = (100*G62 - 1019*G33) >> 10; F34 = (- 1019*G61 - 100*G34) >> 10; F37 = (792*G58 -650*G37) >> 10; F38 = (- 650*G57 - 792*G38) >> 10; F41 = (483*G54 - 903*G41) >> 10; F42 = (- 903*G53 - 483*G42) » 10; F45 = (980*G50 - 297*G45) >> 10; F46 = (- 297*G49 - 980*G46) >> 10; F49 = (980*G49 - 297*G46) >> 10; F50 = (297*G50 + 980*G45) >> 10; F53 = (483*G53 - 903*G42) >> 10; F54 = (903*G54 + 483*G41) >> 10; F57 = (792*G57 - 650*G38) >> 10; F58 = (650*G58 + 792*G37) » 10; F61 = (100*G61 - 1019*G34) >> 10; F62 = (1019*G62 + 100*G33) >> 10; /etapa 3 E4 = (200*X8) >> 10; E5 = 0; ?ß = 0; E7 = ( 1004 *X8 ) >>10 ; E8 = F8 + F9; E9 = F8 - F9; E10 = FU - FIO; Ell = FU + FIO; E12 = F12 + F13 ; E13 = F12 - F13; E14 = F15 - F14 ; E15 = F15 + F14; E17 = (200*F30 - 1004*F17) >> 10; E18 = (-1004*F29 - 200*F18) >> 10; E21 = (851*F26 - 569*F21) >> 10; E22 = (- 569*F25 - 851*F22) >> 10; E25 = (851*F25 - 569*F22) >> 10; E26 = (569*F26 + 851*F21) >> 10; E29 = (200*F29 -1004*F18) >> 10; E30 = (1004*F30 + 200*F17) >> 10; E32 = G32 + G35; E33 = F33 + F34; E34 = F33 - F34; E35 = G32 - G35; E36 = G39 - G36; E37 - F38 - F37; E38 = F38 + F37; E39 = G39 + G36; E40 = G40 + G43; E41 = F41 + F42; E42 = F41 - F42; E43 = G40 - G43; E44 = G47 - G44; E45 = F46 - F45; E46 = F46 + F45; E47 = G47 + G44; E 8 = G48 + G51; E49 = F49 + F50; E50 = F49 - F50; E51 = G48 - G51; E52 = G55 - G52; E53 = F54 - F53; E54 = F54 + F53; E55 = G55 + G52; E56 = G56 + G59; E57 = F57 + F58; E58 = F57 - F58; E59 = G56 - G59; E60 = G63 - G60; E61 = F62 - F61; E62 = F62 + F61; E63 = G63 + G60; /etapa 4 DO = (724* (XO)) >> 10; DI = (724* (XO)) >> 10; D2 = 0; D3 = 0; D4 = E4 + E5; D5 = E4 - E5 ; D6 = E7 - E6; D7 = E7 + E6; D9 = (392*E14 - 946*E9) >> 10; DIO = (- 946*E13 - 392*E10) >> 10; D13 = (392*E13 - 946*E10) >> 10; D14 = (946*E14 + 392*E9) >> 10; D16 = F16 + F19; D19 = F16 - F19; D20 = F23 - F20; D23 = F23 + F20; D24 = F24 + F27; D27 = F24 - F27; D28 = F31 -F28; D31 = F31 + F28; D17 = E17 + E18; D18 = E17 - E18; D21 = E22 - E21; D22 = E22 + E21; D25 = E25 + E26; D26 = E25 - E26; D29 = E30 - E29; D30 = E30 + E29; D34 = (200*E61 - 1004*E34) >> 10; D35 = (200*E60 - 1004*E35) >> 10; D36 = (- 1004*E59 -200*E36) >> 10; D37 = (- 1004*E58 - 200*E37) >> 10; D42 = (851*E53 - 569*E42) >> 10; D43 = (851*E52 - 569*E43) >> 10; D44 = (- 569*E51 - 851*E44) >> 10; D45 = (- 569*E50 -851*E45) >> 10; D50 = (851*E50 - 569*E45) >> 10; D51 = (851*E51 - 569*E44) >> 10; D52 = (569*E52 + 851*E43) >> 10; D53 = (569*E53 + 851*E42) >> 10; D58 = (200*E58 - 1004*E37) >> 10; D59 = (200*E59 - 1004*E36) >> 10; D60 = (1004*E60 + 200*E35) >> 10; D61 = (1004*E61 + 200*E34) >> 10; /etapa 5 C0 = DO + D3; C3 = DO - D3 ; C8 = E8 + Ell; Cll = E8 - Ell; C12 = E15 - E12 ; C15 = E15 + E12; Cl = DI + D2 ; C2 = Dl - D2; C9 = D9 + DIO; CIO = D9 - DIO; C13 = D14 - D13 ; C14 = D14 + D13; C5 = (724* (D6 - D5) ) >> 10; C6 = (724* (D6 + D5)) >> 10; C18 = (392*D29 - 946*D18) >> 10; C20 = (- 946*D27 -392*D20) >> 10; C26 = (- 946*D21 + 392*D26) >> 10; C28 = (392*D19 + 946*D28) >> 10; C19 = (392*D28 - 946*D19) >> 10; C21 = (- 946*D26 - 392*D21) >> 10; C27 = (- 946*D20 + 392*D27) >> 10; C29 = (392*D18 + 946*D29) >> 10; C32 = E32 + E39; C39 = E32 - E39; C40 = E47 - E40; C47 = E47 + E40; C48 = E48 + E55; C55 = E48 - E55; C56 = E63 - E56; C63 = E63 + E56; C33 = E33 + E38; C38 = E33 - E38; C41 = E46 - E41; C46 = E46 + E41; C49 = E49 + E54 ; C54 = E49 - E54 ; C57 = E62 - E57; C62 = E62 + E57; C34 = D34 + D37; C37 = D34 - D37; C42 = D45 -D42; C45 = D45 + D42; C50 = D50 + D53; C53 = D50 - D53; C58 = D61 - D58; C61 = D61 + D58; C35 = D35 + D36; C36 = D35 - D36; C43 = D44 - D43; C44 = D44 + D43; C51 = D51 + D52; C52 = D51 - D52; C59 = D60 - D59; C60 = D60 + D59; /etapa 6 BO = CO + D7; B7 = CO - D7 ; Bl = Cl + C6 ; B6 = Cl - C6 ; B2 = C2 + C5; B5 = C2 - C5 ; B3 = C3 + D4 ; B4 = C3 - D4 ; B10 = (724* (C13 - CIO)) >> 10; B13 = (724* (C13 + CIO)) >> 10; Bll = (724* (C12 - CU)) >> 10; B12 = (724* (C12 + CU) ) >> 10; B16 = D16 + D23; B23 = D16 - D23; B24 = D31 - D24 ; B31 = D31 + D24 ; B17 = D17 + D22; B22 = D17 - D22; B25 = D30 - D25; B30 = D30 + D25; B18 = C18 + C21; B21 = C18 - C21; B26 = C29 - C26; B29 = C29 + C26; B19 = C19 + C20; B20 = C19 - C20; B27 = C28 -C27; B28 = C28 + C27; B36 = (392*C59 - 946*C36) >> 10; B40 = (- 946*C55 - 392*C40) » 10; B52 = (- 946*C43 + 392*C52) >> 10; B56 = (392*C39 + 946*C56) >> 10; B37 = (392*C58 -946*C37) >> 10; B41 = (- 946*C54 - 392*C41) >> 10; B53 = (-946*C42 + 392*C53) >> 10; B57 = (392*C38 + 946*C57) >> 10; B38 = (392*C57 - 946*C38) >> 10; B42 = (- 946*C53 - 392*C42) >> 10; B54 = (- 946*C41 + 392*C54) >> 10; B58 = (392*C37 + 946*C58) » 10; B39 = (392*C56 - 946*C39) >> 10; B43 = (-946*C52 - 392*C43) >> 10; B55 = (- 946*C40 + 392*C55) >> 10; B59 = (392*C36 + 946*C59) >> 10; /etapa 7 AO = BO + C15; A15 = BO - C15; Al = Bl + C14; A14 = Bl - C14 ; A2 = B2 + B13 ; A13 = B2 - B13; A3 = B3 + B12; A12 = B3 - B12 ; A4 = B4 + Bll; All = B4 - Bll; A5 = B5 + B10; A10 = B5 - B10; A6 = B6 + C9; A9 = B6 - C9; A7 — B7 + C8; A8 = B7 ¦ - C8; A20 = (724* (B27 - B20)) » 10; A27 = (724*(B27 + B20) ) >> 10; A21 = (724* (B26 - B21) ) >> 10; A26 = (724* (B26 + B21) ) >> 10; A22 = (724* (B25 - B22)) >> 10; A25 = (724* (B25 + B22) ) >> 10; A23 = (724* (B24 - B23)) >> 10; A24 = (724* (B24 + B23)) >> 10; A32 = C32 + C47; A47 = C32 - C47; A48 = C63 - C48 ; A63 = C63 + C48; A33 = C33 + C46; A46 = C33 - C46; A49 = C62 - C49; A62 = C62 + C49; A34 = C34 + C45; A45 = C34 - C45; A50 = C61 -C50; A61 = C61 + C50; A35 = C35 + C44; A44 = C35 - C44 ; A51 = C60 - C51; A60 = C60 + C51; A36 = B36 + B43; A43 = B36 - B43; A52 = B59 - B52; A59 = B59 + B52; A37 = B37 + B42; A42 = B37 - B42; A53 = B58 - B53 ; A58 = B58 + B53; A38 = B38 + B41; A41 = B38 - B41; A54 = B57 - B54; A57 = B57 + B54; A39 = B39 + B40; A40 = B39 - B40; A55 = B56 - B55 ; A56 = B56 + B55; /etapa 8 ZO = AO + B31; Z31 = AO ¦ - B31; Zl = Al + B30; Z30 = Al B30; Z2 = A2 + B29; Z29 = A2 ¦ - B29; Z3 = A3 + B28 ; Z28 = A3 B28 ; Z4 = A4 + A27 ; Z27 = A4 · - A27; Z5 = A5 + A26 ; Z26 = A5 A26; Z6 = A6 + A25 ; Z25 = A6 ¦ - A25; Z7 = A7 + A24 ; Z24 = A7 A24; Z8 = A8 + A23 ; Z23 = A8 -- A23; Z9 = A9 + A22 ; Z22 = A9 Z10 = AlO + A21; Z21 = AlO - A21; Zll = All + A20; Z20 = A20; Z12 = A12 + B19; Z19 = A12 - B19 ; Z13 = A13 + B18 ; A13 - B18; Z14 = A14 + B17 ; Z17 = A14 - B17 ; Z15 = A15 + B16; Z16 = = Al 5 - B16; Z40 = (724* (A55 - A40 ) ) >> 10; Z55 = (724* (A55 + A40) ) >> 10; Z41 = (724 * (A54 - A41)) >> 10; Z54 = (724* (A54 + A41) ) >> 10; Z42 : = (724 * (A53 - A42) ) >> 10; Z53 = (724* (A53 + A42) ) >> 10; Z43 = (724 * (A52 - A43)) >> 10; Z52 = (724* (A52 + A43) ) >> 10; Z44 ¦ = (724 * (A51 - A44) ) >> 10; Z51 = (724* (A51 + A44) ) >> 10; Z45 = = (724 * (A50 - A45) ) >> 10; Z50 (724* (A50 + A45) ) >> 10; Z46 = = (724 * (A49 - A46 ) ) >> 10; Z49 = (724* (A49 + A46) ) >> 10; Z47 = = (724 * (A48 - A47 ) ) > > 10; Z48 = (724* (A48 + A47) ) >> 10; /etapa 9 YO = ZO + A63; Y63 = ZO - - A63; Yl = Zl + A62; Y62 = Zl - A62; Y2 = Z2 + A61; Y61 = Z2 - - A61; Y3 = Z3 + A60; Y60 = Z3 - A60; Y4 = Z4 + A59; Y59 = Z4 ¦ - A59; Y5 = Z5 + A58; Y58 = Z5 - A58; Y6 = Z6 + A57; Y57 = Z6 · - A57; Y7 = Z7 + A56; Y56 = Z7 - A56; Y8 = Z8 + Z55; Y55 = Z8 - - Z55; Y9 = Z9 + Z54; Y54 = Z9 Z54; Y10 = Z10 + Z53; Y53 = Z10 - Z53 ; Yll = Zll + Z52; Y52 = Zll - Z52; Y12 = Z12 + Z51; Y51 = Z12 - Z51; Y13 = Z13 + Z50; Y50 = Z13 - Z50; Y14 = Z14 + Z49; Y49 = Z14 - Z49; Y15 = Z15 + Z48; Y48 = Z15 - Z48; Y16 = Z16 + Z47 ; Y47 = Z16 - Z47 ; Y17 = Z17 + Z46; Y46 = Z17 - Z46; Y18 = Z18 + Z45; Y45 = Z18 - Z45; Y19 = Z19 + Z44; Y44 = Z19 - Z4 ; Y20 = Z20 + Z43 ; Y43 = Z20 - Z43; Y21 = Z21 + Z42; Y42 = Z21 - Z42; Y22 = Z22 + Z41; Y41 = Z22 - Z41; Y23 = Z23 + Z40; Y40 = Z23 - Z40; Y24 = Z24 + A39; Y39 = Z24 - A39; Y25 = Z25 + A38; Y38 = Z25 - A38; Y26 = Z26 + A37 Y37 = Z26 - A37; Y27 = Z27 + A36; Y36 = Z27 -A36; Y28 = Z28 + A35; Y35 = Z28 - A35; Y29 = Z29 + A34; Y34 = Z29 - A34; Y30 = Z30 + A33; Y33 = Z30 - A33; Y31 = Z31 + A32; Y32 = Z31 - A32; Cuando M y N son 32, XO hasta XI5 denotan valores de entrada, Zi, Ai, Bi, Ci, Di, Ei, y Fi (donde i denota un entero que varía desde 0 a 31) denotan valores intermedios, y YO hasta Y31 denotan valores de salida, la unidad de transformación inversa de frecuencia 920 restaura un bloque residual 32x32 repitiendo la siguiente transformación de punto con respecto a los valores de entrada en dirección de la hilera y los valores de entrada en dirección de la columna del bloque transformado 16x16 de una banda de baja frecuencia producida de acuerdo con la gráfica de flujo 500 de la FIG. 5 : /etapa 0 D0= XO; E24 = XI; E12 = X2 ; F16 = - X3 ; D4 = X4 ; F31 = X5; E8 = X6 ; E26 = - X7 ; D2 = X8; E21 = X9 ; E15 = X10; F29 = Xll; E5 = X12; F18 = - X13 ; D13 = X14 ; D22 = XI5 ; /etapa 1 E16 = (251*F16) >> 8; E17 = (- 49*F16) >> 8; E18 = (212*F18) >> 8; E19 = (- 142*F18) >> 8; E28 = (142*F29) >> 8; E29 = (212*F29) >> 8; E30 = (49*F31) >> 8; E31 = (251*F31) >> 8; /etapa 2 D5 = (181* (E5)) >> 8; D7 = (181* (E5)) >> 8; D8 = (97*E8) >> 8; D9 = (- 236*E8) >> 8; Dll = (181* (- E12)) >> 8; D12 = (181* (E12)) >> 8; D14 = (236*E15) >> 8; D15 = (97*E15) >> 8; D16 = E16 + E18; C18 = E16 - E18 ; C17 = E17 + E19; D19 = E17 - E19; D20 = (- 97*E21) >> 8; D21 = (236*E21) >> 8; D23 = (181* (- E24)) >> 8; D24 = (181*(E24)) >> 8; D26 = (236*E26) >> 8; D27 = (97*E26) >> 8; D28 = - E28 + E30; C30 = E28 + E30; C29 = - E29 + E31; D31 = E29 + E31; /etapa 3 C0 = (181*D0) » 8; Cl = (181*D0) >> 8; C2 = (97*D2) >> 8; C3 = (236*D2) >> 8; C4 = D4 + D5 ; C5 = D4 - D5 ; C6 = D7; C7 = D7; C8 = D8 + D14 ; C14 = D8 - D14 ; C9 = D9 + D15; C15 = D9 - D15; CIO = Dll; Cll = - Dll; C12 = D12 + D13 ; C13 = D12 - D13; C16 = (181* (D16 - D19) ) >> 8; C19 = (181* (D16 + D19)) >> 8; C20 = D20 + D26; C26 = D20 - D26; C21 = D21 + D27; C27 = D21 - D27; C22 = D22 + D23 ; C23 = D22 - D23; C24 = D24 ; C25 = D24; C28 = (181* (D28 - D31) ) >> 8; C31 = (181* (D28 + D31) ) > > 8 ; /etapa 4 BO = CO + C3; B3 = CO - C3 ; Bl = Cl + C2 ; B2 = Cl - C2 ; B4 = (49*C4 - 251*C7) >> 8; B7 = (251*C4 + 49*C7) >> 8; B5 = (142*C5 - 212*C6) >> 8; B6 = (212*C5 + 142*C6) >> 8; B8 = C8 + Cll; BU = C8 - Cll; B9 = C9 + CIO; B10 = C9 - CIO; B12 = C12 + C15; B15 = C12 - C15; B13 = C13 + C14 ; B14 = C13 - C14 ; B16 = C16 + C28; B28 = C16 - C28; B17 = C17 + C29; B29 = C17 - C29; B18 = C18 + C30; B30 = C18 - C30; B19 = C19 + C31; B31 = C19 - C31; B20 = C20 + C23; B23 = C20 - C23; B21 = C21 + C22; B22 = C21 - C22; B24 = C24 + C27; B27 = C24 - C27; B25 = C25 + C26; B26 = C25 - C26; /etapa 5 AO = BO + B7; A7 = BO - B7 ; Al = Bl + B6 ; A6 = Bl - B6; A2 = B2 + B5; A5 = B2 - B5 ; A3 = B3 + B4 ; A4 = B3 - B4 ; A8 = (197*B8 - 162*B15) >> 8; A15 = (162*B8 + 197*B15) >> 8; A9 = (120*B9 + 225*B14) >> 8; Al = (- 225*B9 + 120*B14) >> 8; A10 = (244*B10 - 74*B13) >> 8; Al 3 = (74*B10 + 244*B13) >> 8; All = (25*B11 + 254*B12) >> 8; Al 2 = (- 254*B11 + 25*B12) >> 8; Al 6 = B16 + B23; A23 = B16 - B23; Al 7 = B17 + B22; A22 = B17 - B22; Al 8 = B18 + B21; A21 = B18 - B21; Al 9 = B19 + B20; A20 = B19 - B20; A24 = B24 + B31; A31 = B24 - B31; A25 = B25 + B30; A30 = B25 - B30; A26 = B26 + B29; A29 = B26 - B29; A27 = B27 + B28; A28 = B27 - B28; /etapa 6 ZO = AO + A15; Zl = Al + A1 ; Z2 = A2 + A13; Z3 = A3 + A12; Z4 = A4 + All; Z5 = A5 + A10; Z6 = A6 + A ; Z7 = A7 + A8; Z8 = A7 - A8 ; Z9 = A6 - A9 ; Z10 = A5 - A10 ; Zll = A4 -All; Z12 = A3 - A12 ; Z13 = A2 - A13; Z14 = Al - A14 ; Z15 = AO - A15; Z16 = (171*A16 + 189*A31) >> 8; Z31 = (- 189*A16 + 171*A31) >> 8; Z17 = (205*A17 - 152*A30) >> 8; Z30 = (152*A17 + 205*A30) >> 8; Z18 = (131*A18 + 219*A29) >> 8; Z29 = (-219*A18 + 131*A29) >> 8; Z19 = (231*A19 - 109*A28) >> 8; Z28 = (109*A19 + 231*A28) >> 8; Z20 = (86*A20 + 241*A27) >> 8 ; Z27 = (- 241*A20 + 86*A27) >> 8; Z21 = (248*A21 - 62*A26) >> 8; Z26 = (62*A21 + 248*A26) >> 8; Z22 = (37*A22 + 253*A25) >> 8; Z25 = (- 253*A22 + 37*A25) >> 8; Z23 = (255*A23 - 12*A24) >> 8; Z24 = (12*A23 + 255*A24) >> 8; /etapa 7 Y0 = ZO + Z31; Y31 = ZO - Z31; Yl = Zl + Z30; Y30 = Zl - Z30; Y2 = Z2 + Z29; Y29 = Z2 - Z29; Y3 = Z3 + Z28; Y28 = Z3 - Z28; Y4 = Z4 + Z27; Y27 = Z4 - Z27; Y5 = Z5 + Z26; Y26 = Z5 - Z26; Y6 = Z6 + Z25; Y25 - Z6 - Z25; Y7 = Z7 + Z24; Y24 = Z7 - Z24; Y8 = Z8 + Z23; Y23 = Z8 - Z23; Y9 = Z9 + Z22; Y22 = Z9 - Z22 ; Y10 = : Z10 + Z21; Y21 = Z10 - Z21; Yll = Zll + Z20 ; Y20 = Zll - Z20; Y12 = Z12 + Z19 ; Y19 = Z12 ¦ - Z19; Y13 = Z13 + Z18; Y18 ¦¦ = Z13 - Z18; Y14 = Z14 + Z17; Y17 = Z14 - Z17; Y15 = Z15 + Z16; Y16 = Z15 - Z16; Cuando M y N son 32, X0 hasta X15 denotan valores de entrada, Zi, Ai, Bi, Ci, Di, Ei, y Fi (donde i denota un entero que varía desde 0 a 31) denotan valores intermedios, y YO hasta Y31 denotan valores de salida, la unidad de transformación inversa de frecuencia 920 restaura un bloque residual 32x32 repitiendo la siguiente transformación de punto con respecto a los valores de entrada en dirección de la hilera y los valores de entrada en dirección de la columna del bloque transformado 16x16 de una banda de baja frecuencia producida de acuerdo con la gráfica de flujo 500 de la FIG. 5 /etapa 0 D0= X0; E24 = XI; E12 = X2 ; F16 - - X3 ; D4 = X4 ; F31 = X5; E8 = X6; E26 = - X7 ; D2 = X8 ; E21 = X9 ; E15 = X10; F29 = Xll; E5 = X12; F18 = - X13; D13 = X14; D22 = X15; /etapa 1 E17 = : - (48*F16>> 8); E16 = F16 + (50*E17>> 8) ; E19 = (118 *F18 >> 8) ; E18 = F18 + (171*E19>> 8) ; E29 = F29; E28 = (171*E29>> 8); E31 = F31 ; E30 (50* E31>> 8) ; /etapa 2 D7 = (E5 >> 1) ; D5= E5 - D7 ; D9 = - E8; D8 = - (106*D9>> 8 ) ; D12 = E12; Dll = - D12 ; D15 ~ (90*E15>> 8) ; D14 = E15 - (106*D15>> 8 ) ; D16 = E16 + E18; C18 = E16 - E18; C17 = E17 + E19; D19 E17 - E19; D21 = = E21; D20 = - (106*D21>> 8); D24 = E24 ; D23 = D24 ; D27 = = (90*E26>> 8); D26 = E26 - (106*D27>> 8) ; D28 = E28 + E30, ; C30 = E28 + E30; C29 = - E29 + E31; D31 = E29 E31; /etapa 3 Cl = DO » 1; C0 = DO - Cl; C3 = D2; C2 = (106*C3>> 8); C4 = D4 + D5; C5 = D4 - D5 ; C6 = D7 ; C7 = D7 ; C8 = D8 + D14;,C14 = D8 - D14 ; C9 = D9 + D15; C15 = D9 -D15; CIO = Dll; Cll = - Dll; C12 = D12 + D13 ; C13 = D12 -D13; D16 = D16 - (106*D19>> 8); C19 = D19 + (181*D16>> 8); C16 = D16 - (106*C19>> 8); C20 = D20 + D26; C26 = D20 - D26; C21 = D21 + D27; C27 = D21 - D27; C22 = D22 + D23 ; C23 = D22 - D23; C24 = D24; C25 = D24; D28 = D28 - (106*D31>> 8); C31 = D31 + (181*D28>> 8) ; C28 = D28 - (106*C31>> 8) ; /etapa 4 BO = CO + C3; B3 = CO - C3 ; Bl = Cl + C2 ; B2 = Cl - C2 ; C4 = C4 - (210*C7>> 8) ; B7 = C7 + (251*C4>> 8) B4 = C4 - (210*B7>> 8); C5 = C5 - (136*C6>> 8); B6 = C6 + (212*C5>> 8) ; B5 = C5 - (136*B6>> 8) ; B8 = C8 + Cll; Bll = C8 - Cll; B9 = C9 + CIO; BIO = C9 - C10; B12 = C12 + C15; B15 = C12 - C15; B13 = C13 + C14 ; B14 = C13 - C14; B16 = C16 + C28; B28 = C16 - C28; B17 = C17 + C29; B29 = C17 - C29; B18 = C18 + C30; B30 = C18 - C30; B19 = C19 + C31; B31 = C19 - C31; B20 = C20 + C23 B23 = C20 - C23; B21 = C21 + C22; B22 = C21 - C22; B24 = C24 + C27; B27 = C24 - C27; B25 = C25 + C26; B26 = C25 - C26; /etapa 5 AO = BO + B7; A7 = BO - B7 ; Al = Bl + B6 ; A6 = Bl - B6 ; A2 = B2 + B5; A5 - B2 - B5 ; A3 = B3 + B4 ; A4 = B3 - B4 ; B8 = B8 - (91*B15>> 8) ; A15 = B15 + (162*B8>> 8) ; A8 = B8 - (91*A15>> 8) ; B9 = B9 + (153*B14>> 8) ; A14 = B14 - (225*B9>> 8); A9 = B9 + (153*A14>> 8) ; B10 = BIO - (37*B13>> 8); A13 = B13 + (74*B10>> 8) ; AlO = BIO - (37*A13>> 8) ; BU = BU + (232*B12>> 8) ; A12 = B12 - (254*B11>> 8) ; All = BU + (232*A12>> 8) ; Al6 = B16 + B23 ; A23 = B16 - B23; Al7 = B17 + B22; A22 = B17 - B22; Al8 = B18 + B21; A21 = B18 - B21; Al9 = B19 + B20; A20 = B19 - B20; A24 = B24 + B31; A31 = B24 - B31; A25 = B25 + B30; A30 = B25 - B30; A26 = B26 + B29; A29 = B26 - B29; A27 = B27 + B28; A28 = B27 - B28; /etapa 6 ZO = AO + A15; Zl = Al + Al4 ; Z2 = A2 + Al3 ; Z3 = A3 + A12; Z4 = A4 + All; Z5 = A5 + AlO; Z6 = A6 + A9 ; Z7 = A7 + A8; Z8 = A7 - A8 ; Z9 = A6 - A9 ; Z10 = A5 - AlO; Zll = A4 -All; Z12 = A3 - Al2 ; Z13 = A2 - A13 ; Z14 = Al - Al4 ; Z15 = AO - A15; A16 = Al6 + (113*A31>> 8) ; Z31 = A31 - (189*A16>> 8); Z16 = A16 + (113*Z31>> 8) ; Al7 = Al7 - (84*A30>> 8) ; Z30 = A30 + (152*A17>> 8) ; Z17 = Al7 - (84*Z30>> 8) ; Al8 = A18 + (145*A29>> 8) ; Z29 = A29 - (219*A18>> 8) ; Z18 = A18 + (145*Z29>> 8) ; Al9 = Al9 - (57*A28>> 8); Z28 = A28 + (109*A19>> 8) ; Z19 = A19 - (57*Z28>> 8) ; A20 = A20 + (180*A27>> 8) ; Z27 = A27 (241*A20>> 8) ; Z20 = A20 + (180*Z27>> 8) ; A21 = A21 - (31*A26>> 8) ; Z26 = A26 + (62*A21>> 8) ; Z21 = A21 (31*Z26>> 8) ; A22 = A22 + (220*A25>> 8) ; Z25 = A25 - (253*A22>> 8) ; Z22 = A22 + (220*Z25>> 8) ; A23 = A23 - (6*A24>> 8) ; Z24 = A24 + (12*A23>> Z23 = A23 - (6*Z24>> 8) /etapa 7 YO = ZO + Z31; Y31 = ZO - Z31; Yl = Zl + Z30; Y30 = Zl - Z30; Y2 = Z2 + Z29; Y29 = Z2 - Z29; Y3 = Z3 + Z28; Y28 = Z3 - Z28; Y4 = Z4 + Z27; Y27 = Z4 - Z27; Y5 = Z5 + Z26; Y26 = Z5 - Z26; Y6 = Z6 + Z25 ; Y25 = Z6 - Z25; Y7 = Z7 + Z24; Y24 = Z7 - Z24; Y8 = Z8 + Z23 ; Y23 = Z8 - Z23; Y9 = Z9 + Z22; Y22 = Z9 - Z22; Y10 = : ZIO + Z21; Y21 = ZIO - Z21; Yll = Zll + Z20; Y20 = Zll · - Z20; Y12 = Z12 ; + Z19; Y19 = Z12 -- Z19; Y13 = Z13 + Z18; Y18 = Z13 - Z18; Y14 = Z14 + Z17; Y17 = Z14 - Z17; Y15 = Z15 + Z16; Y16 = Z15 - Z16; La FIG. 11 es un diagrama de flujo que ilustra un método de transformación inversa de imagen de acuerdo con una modalidad de la presente invención.
Con referencia a la FIG. 11, en la operación 1110, la unidad de adquisición de matriz de transformada inversa truncada 910 recibe solamente coeficientes de transformación correspondientes a una banda de frecuencia predeterminada de entre los coeficientes de transformación incluidos en un bloque MxN (donde M y N son enteros positivos) . En la operación 1120, la unidad de adquisición de matriz de transformada inversa truncada 910 adquiere una matriz de transformada inversa truncada seleccionando elementos para la transformación inversa con respecto a los coeficientes de transformación correspondientes a la banda de frecuencia predeterminada de una matriz de transformada inversa MxN para el uso en la transformación inversa de frecuencia con respecto al bloque MxN. Como se describió anteriormente, una corriente de bits puede incluir información con respecto a varias formas de banda de baja frecuencia tal como un bloque de banda de baja frecuencia rectangular y un bloque de banda de baja frecuencia triangular, como se muestra en las FIGS . 12A y 12B, e información con respecto a los tamaños de una banda de baja frecuencia, y la unidad de adquisición de matriz de transformada inversa truncada 910 puede determinar, con base en la información con respecto a las formas de banda de baja frecuencia y la información con respecto a los tamaños de una banda de baja frecuencia, qué 'forma y qué banda de frecuencia de coeficientes de transformación de los coeficientes de transformación adquiridos en la transformación corresponden de entre los coeficientes de transformación incluidos en un bloque transformado total.
Cuando el tamaño de un bloque transformado a ser transformado a la inversa es axd, la unidad de adquisición de matriz de transformada inversa truncada 910 produce una matriz de transformada inversa vertical truncada Nxd seleccionando elementos correspondientes a las columnas izquierdas d de una matriz de transformada inversa vertical MxN, y produce una matriz de transformada inversa horizontal truncada axN seleccionando elementos correspondientes a unas hileras superiores de una matriz de transformada inversa horizontal MxN.
En la operación 1130, la unidad de transformación inversa de frecuencia 920 realiza la transformación inversa, de frecuencia aplicando la matriz de transformada inversa truncada a los coeficientes de transformación correspondientes a la banda de frecuencia predeterminada. En el ejemplo descrito anteriormente, un bloque residual MxN se restaura vía operaciones de matriz entre el bloque transformado axd, la matriz de transformada inversa vertical truncada Nxd, y la matriz de transformada inversa horizontal truncada axN.
Una o más modalidades ejemplares también se pueden incluir como códigos leíbles por computadora en un medio de grabación leíble por computadora. El medio de grabación leíble por computadora es cualquier dispositivo de almacenamiento de datos que puede almacenar datos los cuales después se pueden leer por un sistema de computadora. Los ejemplos del medio de grabación leíble por computadora incluyen memoria de solo lectura (ROM, por sus siglas en inglés) , memoria de acceso aleatorio (RAM, por sus siglas en inglés) , CD-ROMs, cintas magnéticas, discos flexibles, dispositivos ópticos de almacenamiento de datos, etc. El medio de grabación leíble por computadora también se puede distribuir sobre sistemas de computadora acoplados a la red de modo que el código leíble por computadora se almacena y se ejecuta en una forma distribuida. Además, una o más unidades de los elementos descritos anteriormente pueden incluir un procesador o microprocesador que ejecuta un programa de computadora almacenado en un medio leíble por computadora.
Mientras que las modalidades ejemplares se han mostrado y descrito particularmente antes, se entenderá por aquellos de experiencia ordinaria en el arte que varios cambios en la forma y detalles se pueden hacer en la presente sin apartarse del espíritu y alcance del presente concepto inventivo como se define por las siguientes reivindicaciones.
Se hace constar que con relación a esta fecha,, el mejor método conocido por la solicitante para llevar a la práctica la citada invención, es el que resulta claro de la presente descripción de la invención.

Claims (15)

REIVINDICACIONES Habiéndose descrito la invención como antecede, se reclama como propiedad lo contenido en las siguientes reivindicaciones:
1. Un método de transformación de imagen, caracterizado porque comprende: seleccionar un área de frecuencia predeterminada para la transformación de frecuencia con respecto a un bloque de entrada MxN, en donde M y N son enteros positivos; adquirir una matriz de transformada truncada seleccionando elementos para generación de coeficientes de transformación correspondientes al área de frecuencia seleccionada de entre elementos de una matriz de transformada MxN para uso en la transformación de frecuencia con respecto al bloque de entrada MxN; y producir coeficientes de transformación correspondientes al área de frecuencia seleccionada realizando transformación de frecuencia aplicando la matriz de transformada truncada al bloque de entrada MxN.
2. El método de transformación de imagen de conformidad con la reivindicación 1, caracterizado porque la adquisición de la matriz de transformada truncada comprende: cuando se selecciona un área de baja frecuencia axd para la transformación de frecuencia con respecto al bloque de entrada MxN, en donde a denota un entero positivo menor que M y d denota un entero positivo menor que N, adquirir una matriz de transformada vertical truncada axM de una matriz de transformada vertical MxN; y adquirir una matriz de transformada horizontal truncada Nxd de una matriz de transformada horizontal MxN.
3. El método de transformación de imagen de conformidad con la reivindicación 2, caracterizado porque la producción de los coeficientes de transformación comprende, cuando una matriz que representa el bloque de entrada MxN es referida como X, la matriz de transformada vertical truncada es referida como MCf, y la matriz de transformada horizontal truncada es referida como MCfT, produciendo coeficientes de transformación correspondientes al área de baja frecuencia axd vía una operación de matriz expresada por la Ecuación: MCf*X*MCfT.
4. Un método de transformación inversa de imagen, caracterizado porque comprende: recibir coeficientes de transformación de una banda de frecuencia predeterminada de entre coeficientes de transformación de un bloque MxN, en donde M y N son enteros positivos ; adquirir una matriz de transformada inversa truncada seleccionando elementos para la transformación inversa con respecto a los coeficientes de transformación de la banda de frecuencia seleccionada de entre elementos de una matriz de transformada inversa xN para el uso en la transformación inversa de frecuencia con respecto al bloque MxN; y restaurar el bloque MxN realizando transformación inversa de frecuencia aplicando la matriz de transformada inversa truncada a los coeficientes de transformación de la banda de frecuencia seleccionada.
5. El método de transformación inversa de imagen de conformidad con la reivindicación 4, caracterizado porque una forma de la banda de frecuencia predeterminada es un rectángulo o un triángulo.
6. El método de transformación inversa de imagen de conformidad con la reivindicación 5, caracterizado porque adicionalmente comprende extraer información de forma de la banda de frecuencia predeterminada e información de tamaño de la banda de frecuencia predeterminada de una corriente de bits .
7. El método de transformación inversa de imagen de conformidad con la reivindicación 4, caracterizado porque la adquisición de la matriz de transformada inversa truncada comprende: cuando los coeficientes de transformación de la banda de frecuencia predeterminada son coeficientes de transformación de una banda de baja frecuencia axd posicionada en una porción más a la izquierda del bloque MxN de entre los coeficientes de transformación del bloque MxN, en donde a denota un entero positivo menor que M y d denota un entero positivo menor que N, adquisición de una matriz de transformada inversa vertical truncada Mxa de una matriz de transformada inversa vertical MxN; y adquisición de una matriz de transformada inversa horizontal truncada axN de una matriz de transformada inversa horizontal MxN.
8. El método de transformación inversa de imagen de conformidad con la reivindicación 7, caracterizado porque la restauración del bloque MxN comprende, cuando una matriz que representa los coeficientes de transformación de la banda de baja frecuencia axd es X, la matriz de transformada inversa vertical truncada es MCi, y la matriz de transformada horizontal truncada es IMCiT, restaurar el bloque MxN vía una operación de matriz expresada por la Ecuación: MCi*X*MCiT.
9 El método de transformación inversa de imagen de conformidad con la reivindicación 4, caracterizado porque la matriz de transformada inversa MxN es una matriz de transformada inversa obtenida sustituyendo los valores con basados en una función trigonométrica de entre los elementos de una matriz de transformada inversa MxN para el uso en IDCT (DCT Inversa) unidimensional (ID) con números racionales.
10. El método de transformación inversa de imagen de conformidad con la reivindicación 4, caracterizado porque la restauración del bloque MxN se realiza vía una operación de desplazamiento, adiciones, y sustracciones con las cuales se sustituyen las multiplicaciones incluidas en un proceso de transformación usando la matriz de transformada inversa.
11. El método de transformación inversa de imagen de conformidad con la reivindicación 10, caracterizado porque, cuando M y N son 32, a y d son 16, X0 hasta X15 denotan valores de entrada a ser transformados a la inversa, Ai, Bi, Ci, Di, Ei, Fi, y Gi denotan valores intermedios, y YO hasta Y31 denotan valores de salida, la restauración del bloque MxN se realiza repitiendo la siguiente transformación inversa de punto con respecto a los valores de entrada en dirección de la hilera y valores de entrada en dirección de la columna de un bloque de entrada 16x16, en donde i denota un entero que varía desde 0 a 31: /etapa 0 G16 = (12*X1) >> 8; G17 = (- 171*X15) >> 8; G18 = (109*X9) >> 8; G19 = (- 86*X7) >> 8; G20 = (62*X5) >> 8; G21 = (- 131*X11) >> 8; G22 = (152*X13) >> 8; G23 = (- 37*X3) >> 8; G24 = (253*X3) >> 8; G25 = (205*X13) >> 8; G26 = (219*X11) >> 8; G27 = (248*X5) >> 8; G28 = (241*X7) >> 8; G29 = (231*X9) >> 8; G30 = (189*X15) >> 8; G31 = (255*X1) >> 8; /etapa 1 F8 = (25*X2) >> 8; F9 = (- 162*X14) >> 8; FIO = (120*X10) -» 8; FU = (- 74*X6) >> 8; F12 = (244*X6) >> 8; F13 = (225*X10) >> 8; F14 = (197*X14) >> 8; F15 = (254*X2) >> 5 8; F16 = G16 + G17; F17 = G16 - G17; F18 = G19 - G18; F19 = G19 + G18; F20 = G20 + G21; F21 = G20 - G21; F22 = G23 - G22; F23 = G23 + G22; F24 = G24 + G25; F25 = G24 - G25 F26 = G27 - G26; F27 = G27 + G26; F28 = G28 + G29; F29 = G28 - G29; F30 10 = G31 - G30; F31 = G31 + G30; /etapa 2 E4 = (49*X4) >> 8; E5 = (- 142*X12) » 8; E6 = (212*X12) >> 8; E7 = (251*X4) >> 8; E8 = F8 + F9; E9 = F8 - F9 ; E10 = Fll - FIO; Ell = Fll + - 15 FIO; E12 = F12 + F13; E13 - F12 - F13; E14 = F15 - F14 ; E15 = F15 + F14; E17 = (49*F30 - 251*F17) >> 8; E18 = (- 251*F29 - 49*F18) >> 8; E21 = (212*F26 - 142*F21) >> 8; E22 = (- 142*F25 - 212*F22) » 8; E25 =. (212*F25 - 142*F22) >> 8; E26 = (142*F26 + 212*F21) >> 8; E29 = (49*F29 - 251*F18) >> 8; 20 E30 = (251*F30 + 49*F17) >> 8; /etapa 3 DO = (181* (XO)) >> 8; DI = (181* (XO)) >> 8; D2 = (97*X8) >> 8; D3 = (236*X8) >> 8; D4 = E4 + E5; D5 = E4 - E5 ; D6 = E7 - E6 ; D7 = E7 + E6 ; 25 D9 = (97*E14 - 236*E9) >> 8; DIO = (- 236*E13 - 97*E10) >> 8; D13 = (97*E13 - 236*E10) >> 8; D14 =' (236*E14 + 97*E9) >> 8 ; D16 = F16 + F19; D19 = F16 - F19; D20 = F23 - F20; D23 = F23 + F20; D24 = F24 + F27; D27 = F24 - F27; D28 = F31 - F28; D31 = F31 + F28; D17 = E17 + E18; D18 = E17 - E18; D21 = E22 -E21; D22 = E22 + E21; D25 = E25 + E26; D26 = E25 - E26; D29 = E30 - E29; D30 = E30 + E29; /etapa 4 CO = DO + D3; C3 = DO - D3 ; C8 = E8 + Ell; Cll = E8 -Ell; C12 = E15 - E12; C15 = E15 + E12; Cl = DI + D2 ; C2 = Dl - D2; C9 = D9 + DIO; CIO = D9 - DIO; C13 = D14 - D13; C14 = D14 + D13; C5 = (181* (D6 - D5)) >> 8; C6 = (181* (D6 + D5)) >> 8; C18 = (97*D29 - 236*D18) >> 8; C20 = (- 236*D27 - 97*D20) >> 8; C26 = (- 236*D21 + 97*D26) >> 8; C28 = (97*D19 + 236*D28) >> 8; C19 = (97*D28 - 236*D19) >> 8; C21 = (-236*D26 - 97*D21) >> 8; C27 = (- 236*D20 + 97*D27) >> 8; C29 = (97*D18 + 236*D29) >> 8; /etapa 5 BO = CO + D7; B7 = CO - D7 ; Bl = Cl + C6 ; B6 = Cl - C6 ; B2 = C2 + C5; B5 = C2 - C5 ; B3 = C3 + D4 ; B4 = C3 - D4 ; B10 = (181* (C13 - CIO)) >> 8; B13 = (181* (C13 + CIO)) >> 8; Bll = (181* (C12 - Cll)) >> 8; B12 = (181* (C12 + Cll) ) » 8; B16 = D16 + D23; B23 = D16 - D23; B24 = D31 - D2 ; B31 = D31 + D24 ; B17 = D17 + D22; B22 = D17 - D22; B25 = D30 - D25; B30 = D30 + D25; B18 = C18 + C21; B21 = C18 - C21; B26 = C29 - C26; B29 = C29 + C26; B19 = C19 + C20; B20 = C19 - C20; B27 = C28 - C27; B28 = C28 + C27; /etapa 6 AO = BO + C15; A15 = BO - C15; Al = Bl + C14; A14 = Bl - C14; A2 = B2 + B13; A13 = B2 - B13; A3 = B3 + B12; A12 = B3 - B12; A4 = B4 + Bll; All = B4 - Bll; A5 = B5 + B10; A10 = B5 - B10 ; A6 = B6 + C9; A9 = B6 - C9; A7 = B7 + C8; A8 = B7 - C8; A20 = (181* (B27 - B20)) >> 8; A27 : = (181* (B27 + B20) ) >> 8 ; A21 = (181* (B26 - B21) ) >> 8 ; A26 = = (181* (B26 + B21) ) » 8 ; A22 = (181* (B25 - B22)) >> 8; A25 = = (181* (B25 + B22) ) >> 8 ; A23 : = (181* (B24 - B23) ) >> 8; A24 = (181* (B24 + B23) ) >> 8; /etapa 7 YO = ?? + B31; Y31 = ?? - B31; ?1 = Al + ?30; ?30 = Al - B30 ; Y2 = ?2 + ?29; ?29 = ?2 - ?29; ?3 = ?3 + ?28; ?28 = A3 - B28 ; ?4 = ?4 + ?27; ?27 = ?4 - ?27; ?5 = ?5 + ?26; ?26 = A5 - A26; ?6 = ?6 + ?25; ?25 = ?6 - ?25; ?7 = ?7 + ?24; ?24 = A7 - A2 ; ?8 = ?8 + ?23 ; ?23 = ?8 - ?23; ?9 = ?9 + ?22; ?22 = A9 - A22; Y10 = = A10 + A21 ; Y21 = A10 - A21; Y11 = All + ?20; Y20 = All - ?20 ; Y12 = A12 + : B19; Y19 - A12 ¦ - B19; Y13 = Al3 + B18; Y18 : = Al3 - B18; Y14 = A14 + B17; Y17 = A14 - B17; Y15 = A15 + B16; Y16 = A15 - B16;
12. El método de transformación inversa de imagen de conformidad con la reivindicación 10, caracterizado porque, cuando M y N son 64, a y d son 16, X0 hasta X31 denotan valores de entrada a ser transformados a la inversa, Ai, Bi, Ci, Di, Ei, Fi, y Zi denotan valores intermedios, y YO hasta Y63 denotan valores de salida, la restauración del bloque MxN se realiza repitiendo la siguiente transformación inversa de punto con respecto a los valores de entrada en dirección de la hilera y valores de entrada en dirección de la columna del bloque de entrada 16x16, en donde i denota un entero que varia desde 0 a 63; /etapa 0 H32 = (25*X1) >> 10; H33 = 0; H34 = 0; H35 = (- 369*X15) >> 10; H36 = (224*X9) >> 10; H37 = 0; H38 = 0; H39 = (-175*X7) >> 10; H40 = (125*X5) >> 10; H41 = 0; H42 = 0; H43 = (- 273*X11) >> 10; H44 = (321*X13) >> 10; H45 = 0; H46 = 0; H47 = (- 75*X3) >> 10; H48 = (1021*X3) >> 10;' H49 = 0; H50 = 0; H51 = (972*X13) >> 10; H52 = (987*X11) >> 10; H53 = 0; H54 = 0; H55 = (1016*X5) >> 10; H56 = (1009*X7) >> 10; H57 = 0; H58 = 0; H59 = (999*X9) >> 10; H60 = (955*X15) >> 10; H61 = 0; H62 = 0; H63 = (1024*X1) >> 10; /etapa 1 G16 = (50*X2) >> 10; G17 = 0; G18 = 0; G19 = (- 345*X14) >> 10; G20 = (249*X10) >> 10; G21 = 0; G22 = 0; G23 = (-150*X6) >> 10; G24 = (1013*X6) >> 10; G25 = 0; G26 = 0; G27 = (993*X10) >> 10; G28 = (964*X14) >> 10; G29 = 0; G30 = 0; G31 = (1023*X2) >> 10; G32 = H32 + H33; G33 = H32 - H33; G34 = H35 - H34; G35 = H35 + H34; G36 = H36 + H37; G37 = H36 - H37; G38 = H39 - H38; G39 = H39 + H38; G40 = H40 + H41; G41 = H40 - H41; G42 = H43 - H42; G43 = H43 + H42; G44 = H44 + H45; G45 = H44 - H45; G46 = H47 - H46; G47 = H47 + H46; G48 = H48 + H49; G49 = H48 -H49; G50 = H51 - H50; G51 = H51 + H50; G52 = H52 + H53; G53 = H52 - H53; G54 = H55 - H54; G55 = H55 + H54 ; G56 = H56 + H57; G57 = H56 - H57; G58 = H59 - H58; G59 = H59 + H58; G60 = H60 + H61; G61 = H60 - H61; G62 = H63 - H62; G63 = H63 + H62; /etapa 2 F8 = (100*X4) >> 10; F9 = 0; FIO = 0; Fll = (- 297*X12) >> 10; F12 = (980*X12) >> 10; F13 = 0; F14 = 0; F15 = (1019*X4) >> 10; F16 = G16 + G17; F17 = G16 - G17; F18 = G19 - G18 ; F19 = G19 + G18; F20 = G20 + G21; F21 = G20 - G21; F22 = G23 - G22 ; F23 = G23 + G22; F24 = G24 + G25; F25 = G24 - G25; F26 = G27 - G26; F27 = G27 + G26; F28 = G28 + G29; F29 = G28 - G29; F30 = G31 - G30; F31 = G31 + G30; F33 = (100*G62 - 1019*G33) >> 10; F34 = (- 1019*G61 - 100*G34) >> 10; F37 = (792*G58 -650*G37) >> 10; F38 = (- 650*G57 - 792*G38) >> 10; F41 = (483*G54 - 903*G41) >> 10; F42 = (- 903*G53 - 483*G42) >> 10; F45 = (980*G50 - 297*G45) >> 10; F46 = (- 297*G49 - 980*G46) >> 10; F49 = (980*G49 - 297*G46) >> 10; F50 = (297*G50 + 980*G45) >> 10; F53 = (483*G53 - 903*G42) >> 10; F54 = (903*G54 + 483*G41) >> 10; F57 = (792*G57 - 650*G38) >> 10; F58 = (650*G58 + 792*G37) >> 10; F61 = (100*G61 - 1019*G34) >> 10; F62 = (1019*G62 + 100*G33) >> 10; /etapa 3 E4 = (200*X8) >> 10; E5 = 0; E6 = 0; El = (1004*X8) >> 10; E8 = F8 + F9; E9 = F8 - F9 ; E10 = Fll - FIO; Ell = Fll + FIO; E12 = F12 + F13 ; E13 = F12 - F13; E14 = F15 - F14 ; E15 = F15 + F14; E17 = (200*F30 - 1004*F17) >> 10; E18 = (-1004*F29 - 200*F18) >> 10; E21 = (851*F26 - 569*F21) >> 10; E22 = (- 569*F25 - 851*F22) >> 10; E25 = (851*F25 - 569*F22) >> 10; E26 = (569*F26 + 851*F21) >> 10; E29 = (200*F29 -1004*F18) >> 10; E30 = (1004*F30 + 200*F17) >> 10; E32 = G32 + G35; E33 = F33 + F34; E34 = F33 - F34 ; E35 = G32 - G35; E36 = G39 - G36; E37 = F38 - F37; E38 = F38 + F37; E39 = G39 + G36; E40 = G40 + G43; E41 = F41 + F42; E42 = F41 - F42; E43 = G40 - G43; E44 = G47 - G44; E45 = F46 - F45; E46 = F46 + F45; E47 = G47 + G44; E48 = G48 + G51; E49 = F49 + F50; E50 = F49 - F50; E51 = G48 - G51; E52 = G55 - G52; E53 = F54 - F53; E54 = F54 + F53; E55 = G55 + G52; E56 = G56 + G59; E57 = F57 + F58; E58 = F57 - F58; E59 = G56 - G59; E60 = G63 - G60; E61 = F62 - F51; E62 = F62 + F61; E63 = G63 + G60; /etapa 4 DO = (724* (XO) ) >> 10; DI = (724* (XO)) >> 10; D2 = 0; D3 = 0; D4 = E4 + E5; D5 = E4 - E5 ; D6 = E7 - E6 ; D7 = E7 + E6; D9 = (392*E14 - 946*E9) >> 10; DIO = (- 946*E13 - 392*E10) » 10; D13 = (392*E13 - 946*E10) >> 10; D14 = (946*E14 + 392*E9) >> 10; D16 = F16 + F19; D19 = F16 - F19; D20 = F23 - F20; D23 = F23 + F20; D24 = F24 + F27; D27 = F24 - F27; D28 = F31 -F28; D31 = F31 + F28; D17 = E17 + E18; D18 = E17 - E18; D21 = E22 - E21; D22 = E22 + E21; D25 = E25 + E26; D26 = E25 - E26; D29 = E30 - E29; D30 = E30 + E29; D34 = (200*E61 - 1004*E34) >> 10; D35 = (200*E60 - 1004*E35) >> 10; D36 = (- 1004*E59 -200*E36) >> 10; D37 = (- 1004*E58 - 200*E37) >> 10; D42 = (851*E53 - 569*E42) >> 10; D43 = (851*E52 - 569*E43) >> 10; D44 = (- 569*E51 - 851*E44) >> 10; D45 = (- 569*E50 -851*E45) >> 10; D50 = (851*E50 - 569*E45) >> 10; D51 = (851*E51 - 569*E44) >> 10; D52 = (569*E52 + 851*E43) >> 10; D53 = (569*E53 + 851*E42) >> 10; D58 = (200*E58 - 1004*E37) » 10; D59 = (200*E59 - 1004*E36) >> 10; D60 = (1004*E60 + 200*E35) >> 10; D61 = (1004*E61 + 200*E34) >> 10; /etapa 5 C0 = DO + D3; C3 = DO - D3 ; C8 = E8 + Ell; Cll = E8 -Ell; C12 = E15 - E12; C15 = E15 + E12; Cl = DI + D2 ; C2 = Dl - D2; C9 = D9 + DlÓ; CIO = D9 - DIO; C13 = D14 - D13 ; C14 = D14 + D13; C5 = (724* (D6 - D5)) » 10; C6 = (724* (D6 + D5)) >> 10; C18 = (392*D29 - 946*D18) >> 10; C20 = (- 946*D27 -392*D20) >> 10; C26 = (- 946*D21 + 392*D26) >> 10; C28 = (392*D19 + 946*D28) >> 10; C19 = (392*D28 - 946*D19) >> 10; C21 = (- 946*D26 - 392*D21) >> 10; C27 = (- 946*D20 + 392*D27) >> 10; C29 = (392*D18 + 946*D29) >> 10; C32 = E32 + E39; C39 = E32 - E39; C40 = E47 - E40; C47 = E47 + E40; C48 = E48 + E55; C55 = E48 - E55; C56 = E63 - E56; C63 = E63 + E56; C33 = E33 + E38; C38 = E33 - E38; C41 = E46 - E41; C46 = E46 + E41; C49 = E49 + E54; C54 = E49 - E54; C57 = E62 - E57; C62 = E62 + E57; C34 = D34 + D37; C37 = D34 - D37; C42 = D45 -D42; C45 = D45 + D42; C50 = D50 + D53; C53 = D50 - D53; C58 = D61 - D58; C61 = D61 + D58; C35 = D35 + D36; C36 = D35 - D36; C43 = D44 - D43; C44 = D44 + D43; C51 = D51 + D52; C52 = D51 - D52; C59 = D60 - D59; C60 = D60 + D59; /etapa 6 B0 = CO + D7; B7 = CO - D7 ; Bl = Cl + C6 ; B6 = Cl - C6 ; B2 = C2 + C5; B5 = C2 - C5 ; B3 = C3 + D4 ; B4 = C3 - D4 ; B10 = (724* (C13 - CIO)) >> 10; B13 = (724* (C13 + CIO)) >> 10; BU = (724* (C12 - CU)) >> 10; B12 = (724* (C12 + Cll) ) >> 10; B16 = D16 + D23; B23 = D16 - D23 ; B24 = D31 - D24; B31 = D31 + D24 ; B17 = D17 + D22; B22 = D17 - D22; B25 = D30 - D25; B30 = D30 + D25; B18 = C18 + C21; B21 = C18 - C21; B26 = C29 - C26; B29 = C29 + C26; B19 = C19 + C20; B20 = C19 - C20; B27 = C28 -C27; B28 = C28 + C27 ; B36 = (392*C59 - 946*C36) >> 10; B40 = (- 946*C55 - 392*C40) >> 10; B52 = (- 946*C43 + 392*C52) >> 10; B56 = (392*C39 + 946*C56) >> 10; B37 = (392*C58 -946*C37) >> 10; B41 = (- 946*C54 - 392*C41) >> 10; B53 = (-946*C42 + 392*C53) >> 10; B57 = (392*C38 + 946*C57) >> 10; B38 = (392*C57 - 946*C38) >> 10; B42 = (- 946*C53 - 392*C42) >> 10; B54 = (- 946*C41 + 392*C54) >> 10; B58 = (392*C37 + 946*C58) >> 10; B39 = (392*C56 - 946*C39) >> 10; B43 = (- 946*C52 - 392*C43) >> 10; B55 = (- 946*C40 + 392*C55) >> 10; B59 = (392*C36 + 946*C59) >> 10; /etapa 7 AO = BO + C15; A15 = BO - C15; Al = Bl + C14 ; A14 = Bl -C14; A2 = B2 + B13 ; A13 = B2 - B13 A3 = B3 + B12 ;. A12 = B3 -B12; A4 = B4 + Bll; All = B4 - Bll; A5 = B5 + B10; A10 = B5 -BIO; A6 = B6 + C9; A9 = B6 - C9 ; A7 = B7 + C8 ; A8 = B7 - C8 ; A20 = (724* (B27 - B20)) >> 10; A27 = (724*(B27 + B20) ) >> 10; A21 = (724* (B26 - B21) ) >> 10; A26 = (724*(B26 + B21) ) >> 10 ; A22 = (724* (B25 - B22)) >> 10; A25 = (724*(B25 + B22)) >> 10; A23 = (724* (B24 - B23)) >> 10; A24 = (724* (B24 + B23)) >> 10; A32 = C32 + C47; A47 = C32 - C47; A48 = C63 - C48; A63 = C63 + C48; A33 = C33 + C46; A46 = C33 - C46; A49 = C62 - C49; A62 = C62 + C49; A34 = C34 + C45; A45 = C34 - C45; A50 = C61 -C50; A61 = C61 + C50; A35 = C35 + C44; A44 = C35. - C44 ; A51 = C60 - C51; A60 = C60 + C51; A36 = B36 + B43; A43 = B36 - B43; A52 = B59 - B52; A59 = B59 + B52; A37 = B37 + B42; A42 = B37 - B42; A53 = B58 - B53; A58 = B58 + B53 ; A38 = B38 + B41; A41 = B38 - B41; A54 = B57 - B54 ; A57 = B57 + B54 ; A39 = B39 + B40; A40 = B39 - B40; A55 = B56 - B55; A56.= B56 + B55; /etapa 8 ZO = AO + B31; Z31 = = AO · - B31; Zl = Al + B30; Z30 = Al B30; Z2 = A2 + B29; Z29 = = A2 - B29; Z3 = A3 + B28; Z28 = A3 B28 ; Z4 = A4 + A27; Z27 = = A4 - A27; Z5 = A5 + A26; Z26 = A5 A26; Z6 = A6 + A25; Z25 = = A6 - A25; Z7 = A7 + A24; Z24 = A7 A24; Z8 = A8 + A23; Z23 = A8 - A23; Z9 = A9 + A22; Z22 = A9 -A22; Z10 = AIO + A21; Z21 = AIO - A21; Zll = All + A20; Z20 = All - A20; Z12 = A12 + B19; Z19 = A12 - B19; Z13 = A13 + B18; Z18 = A13 - B18 ; Z14 = A14 + B17; Z17 = Al4 - B17; Z15 = A15 + B16; Z16 = = A15 - B16; ?40 = (724* (?55 - ?40) ) >> 10; ?55 = (724* (A55 + ?40) ) >> 10; Z41 = (724 * (?54 - A41) ) >> 10; ?54 = (724* (A54 + A41) ) >> 10; ?42 = (724 * (?53 - ?42) ) >> 10; ?53 = (724* (A53 + ?42) ) >> 10; ?43 = (724 * (?52 - ?43) ) >> 10; ?52 = (724* (A52 + ?43) ) >> 10; ?44 = (724 * (A51 - ?44) ) >> 10; Z51 = (724* (A51 + ?44) ) >> IC?45 = (724 * (?50 - ?45) ) >> 10; ?50 = (724* (A50 + ?45) ) >> IO; ?46 = (724 * (?49 - ?46) ) >> 10; ?49 = (724* (A49 + ?46) ) >> 10; ?47 = (724 * (?48 - ?47) ) >> 10; ?48 - (724* (A48 + ?47) ) >> 10; /etapa 9 YO = ?? + ?63; ?63 = ?? - ?63; ?1 = Zl + ?62; ?62 = ?1 - A62; Y2 = ?2 + A61; Y61 = ?2 - A61; ?3 = ?3 + ?60; ?60 = ?3 - A60; Y4 = ?4 + ?59; ?59 = ?4 - ?59; ?5 = ?5 + ?58; ?58 = ?5 - ?58; ?6 = ?6 + ?57; ?57 = ?6 - ?57; ?7 = ?7 + ?56; ?56 = ?7 - ?56; ?8 = ?8 + ?55; ?55 = ?8 - ?55; ?9 = ?9 + ?54; ?54 = ?9 - ?54; Y10 = Z10 + ?53; ?53 = Z10 - ?53; Y11 = Zll + ?52; ?52 = Zll - ?52; Y12 = Z12 + Z51; Y51 = Z12 - Z51; Y13 = Z13 + ?50; ?50 = Z13 - ?50; Y14 = Z14 + ?49; ?49 = Z14 - ?49; Y15 = Z15 + ?48; ?48 = Z15 - ?48; Y16 = Z16 + ?47; ?47 = Z16 - ?47; Y17 = Z17 + ?46; ?46 = Z17 - ?46; Y18 = Z18 + ?45; ?45 = Z18 -?45; Y19 = Z19 + ?44; ?44 = Z19 - ?44; ?20 = ?20 + ?43; ?43 = Z20 - Z43; Y21 = Z21 + Z42; Y42 = Z21 - Z42; Y22 = Z22 + Z41; Y41 = Z22 - Z41; Y23 = Z23 + Z40; Y40 = Z23 - Z40; Y24 = Z24 + A39; Y39 = Z24 - A39; Y25 = Z25 + A38; Y38 = Z25 - A38; Y26 = Z26 + A37; Y37 = Z26 - A37; Y27 = Z27 + A36; Y36 = Z27 -A36; Y28 = Z28 + A35; Y35 = Z28 - A35; Y29 = Z29 + A34; Y34 = Z29 - A34; Y30 = Z30 + A33; Y33 = Z30 - A33; Y31 = Z31 + A32; Y32 = Z31 - A32; }
13. El método de transformación inversa de imagen de conformidad con la reivindicación 10, caracterizado porque, cuando M y N son 32, a y d son 16, X0 hasta XI5 denotan valores de entrada a ser transformados a la inversa, Ai, Bi, Ci, Di, Ex, Fi, y Zi denotan valores intermedios, y YO hasta Y63 denotan valores de salida, la restauración del bloque MxN se realiza repitiendo la siguiente transformación inversa de punto con respecto a los valores de entrada en dirección de la hilera y los valores de entrada en dirección de la columna de un bloque de entrada 16x16, en donde i denota un entero que varía desde 0 a 31: /etapa 0 D0= X0; E24 = XI; E12 = X2 ; F16 = - X3 ; D4 = X4 ; F31 = X5; E8 = X6; E26 = - X7 ; D2 = X8 ; E21 = X9 ; E15 = X10; F29 = Xll; E5 = X12; F18 = - X13 ; D13 = X14 ; D22 = XI5 ; /etapa 1 E16 = (251*F16) >> 8; E17 = (- 49*F16) >> 8; E18 = (212*F18) >> 8; E19 = (- 142*F18) >> 8; E28 = (142*F29) >> 8; E29 = (212*F29) >> 8; E30 = (49*F31) >> 8; E31 = (251*F31) >> 8; /etapa 2 D5 = (181* (E5)) » 8; D7 = (181*(E5)) >> 8; D8 = (97*E8) >> 8; D9 = (- 236*E8) >> 8; Dll = (181* (- E12)) >> 8; D12 = (181* (E12)) >> 8; D14 = (236*E15) >> 8; D15 = (97*E15) >> 8; D16 = E16 + E18; C18 = E16 - E18; C17 = E17 + E19; D19 = E17 - E19; D20 = (- 97*E21) >> 8; D21 = (236*E21) >> 8; D23 = (181* (- E24)) >> 8; D24 = (181* (E24)) >> 8; D26 = (236*E26) >> 8; D27 = (97*E26) >> 8; D28 = - E28 + E30; C30 = E28 + E30; C29 = - E29 + E31; D31 = E29 + E31; /etapa 3 CO = (181*D0) >> 8; Cl = (181*D0) >> 8; C2 = (97*D2) >> 8; C3 = (236*D2) >> 8; C4 = D4 + D5 ; C5 = D4 - D5; C6 = D7 ; C7 = D7; C8 = D8 + D14 ; C14 = D8 - D14 ; C9 = D9 + D15; C15 = D9 - D15; CIO = Dll; Cll = - Dll; C12 = D12 + D13 ; C13 = D12 - D13; C16 = (181* (D16 - D19) ) >> 8; C19 = (181* (D16 + D19) ) >> 8; C20 = D20 + D26; C26 = D20 - D26; C21 = D21 + D27; C27 = D21 - D27; C22 = D22 + D23; C23 = D22 - D23; C24 = D24 ; C25 = D24; C28 = (181* (D28 - D31) ) >> 8; C31 = (181* (D28 + D31) ) > > 8 ; /etapa 4 BO = C0 + C3; B3 = CO - C3 ; Bl = Cl + C2 ; B2 = Cl - C2 ; B4 = (49*C4 - 251*C7) >> 8; B7 = (251*C4 + 49*C7) >> 8; B5 = (142*C5 - 212*C6) >> 8; B6 = (212*C5 + 142*C6) >> 8; B8 = C8 + Cll; Bll = C8 - Cll; B9 = C9 + CIO; B10 = C9 - CIO; B12 = C12 + C15; B15 = C12 - C15; B13 = C13 + C14 ; B14 = C13 - C14 ; B16 = C16 + C28; B28 = C16 - C28; B17 = C17 + C29; B29 = C17 - C29; B18 = C18 + C30; B30 = C18 - C30;- B19 = C19 + C31; B31 = C19 - C31; B20 = C20 + C23; B23 = C20 - C23; B21 = C21 + C22; B22 = C21 - C22; B24 = C24 + C27; B27 = C24 - C27; B25 = C25 + C26; B26 = C25 - C26; /etapa 5 AO = BO + B7; A7 = BO - B7; Al = Bl + B6; A6 = Bl - B6; A2 = B2 + B5; A5 = B2 - B5 ; A3 = B3 + B4 ; A4 = B3 - B4 ; A8 = (197*B8 - 162*B15) >> 8; A15 = (162*B8 + 197*B15) >> 8; A9 = (120*B9 + 225*B14) >> 8; A14 = (- 225*B9 + 120*B14) >> 8; A10 = (244*B10 - 74*B13) >> 8; A13 = (74*B10 + 244*B13) >> 8; All = (25*B11 + 254*B12) >> 8; A12 = (- 254*B11 + 25*B12) >> 8 ; A16 = B16 + B23; A23 = B16 - B23 ; A17 = B17 + B22; A22 = B17 - B22; A18 = B18 + B21; A21 = B18 - B21; A19 = B19 + B20; A20 = B19 - B20; A24 = B24 + B31; A31 = B24 - B31; A25 = B25 + B30; A30 = B25 - B30; A26 = B26 + B29; A29 = B26 - B29; A27 = B27 + B28; A28 = B27 - B28; /etapa 6 ZO = AO + A15; Zl = Al + A14 ; Z2 = A2 + A13 ; Z3 = A3 + A12; Z4 = A4 + All; Z5 = A5 + A10; Z6 = A6 + A9 ; Z7 = A7 + A8; Z8 = A7 - A8 ; Z9 = A6 - A9 ; Z10 = A5 - A10 ; Zll = A4 -All; Z12 = A3 - A12 ; Z13 = A2 - A13 ; Z14 = Al - A14 ; Z15 = AO - A15; Z16 = (171*A16 + 189*A31) >> 8; Z31 = (- 189*A16 + 171*A31) >> 8; Z17 = (205*A17 - 152*A30) >> 8; Z30 = (152*A17 + 205*A30) >> 8; Z18 = (131*A18 + 219*A29) >> 8; Z29 = (- 219*A18 + 131*A29) >> 8; Z19 = (231*A19 - 109*A28) >> 8; Z28 = (109*A19 + 231*A28) >> 8; Z20 = (86*A20 + 241*A27) >> 8; Z27 = (- 241*A20 + 86*A27) >> 8; Z21 = (248*A21 - 62*A26) >> 8; Z26 = (62*A21 + 248*A26) >> 8; Z22 = (37*A22 + 253*A25) >> 8; Z25 = (- 253*A22 + 37*A25) >> 8; Z23 = (255*A23 - 12*A24) >> 8; Z24 = (12*A23 + 255*A24) >> 8; /etapa 7 YO = ZO + Z31; Y31 = ZO - Z31; Yl = Zl + Z30; Y30 = Zl - Z30; Y2 = Z2 + Z29; Y29 = Z2 - Z29; Y3 = Z3 + Z28; Y28 = Z3 - Z28; Y4 = Z4 + Z27; Y27 = Z4 - Z27; Y5 = Z5 + Z26; Y26 = Z5 - Z26; Y6 = Z6 + Z25 ; Y25 = Z6 - Z25; Y7 = Z7 + Z24; Y24 = Z7 - Z24 ; Y8 = Z8 + Z23; Y23 = Z8 - Z23; Y9 = Z9 + Z22; Y22 = Z9 - Z22 ; Y10 = : ZIO + Z21 ; Y21 = ZIO - Z21; Yll = Zll + Z20 ; Y20 = Zll - Z20; Y12 = Z12 + Z19; Y19 = Z12 -- Z19; Y13 =¦ Z13 + Z18; Y18 = Z13 - Z18; Y14 = Z14 + Z17; Y17 = Z14 - Z17; Y15 = Z15 + Z16; Y16 = Z15 - Z16;
14. El método de transformación inversa de imagen de conformidad con la reivindicación 10, caracterizado porque, cuando M y N son 32, a y d son 16, X0 hasta X31 denotan valores de entrada a ser transformados a la inversa, Ai, Bi, Ci, Di, Ei, Fi, y Zi denotan valores intermedios, y YO hasta Y32 denotan valores de salida, la restauración del bloque MxN se realiza repitiendo la siguiente transformación inversa de punto con respecto a los valores de entrada en dirección de la hilera y los valores de entrada en dirección de la columna del bloque de entrada 16x16, en donde i denota un entero que varía desde 0 a 31: /etapa 0 D0= XO; E24 = XI; E12 = X2 ; F16 = - X3 ; D4 = X4 ; F31 = X5; E8 = X6; E26 = - X7 ; D2 = X8 ; E21 = X9 ; E15 = X10; F29 XI1; E5 = X12; F18 = - X13; D13 = X14 ; D22 = X15 ; /etapa 1 E17 = - (48*F16>> 8); E16 = F16 + (50*E17>> 8); E19 = (118 *F18 >> 8) ; E18 = F18 + (171*E19>> 8) ; E29 = F29; E28 = (171*E29>> 8); E31 = F31; E30 (50* E31>> 8) ; /etapa 2 D7 = (E5 >> 1) ; D5= E5 - D7; D9 = - E8; D8 = - (106*D9>> 8); D12 = E12; Dll = - D12; D15 = (90*E15>> 8) ; D14 = E15 - (106*D15>> 8) ; D16 = E16 + E18; C18 = E16 - E18; C17 = E17 + E19; D19 E17 - E19; D21 = : E21; D20 = - (106*D21>> 8); D24 = E24 ; D23 = D24 ; D27 = = (90*E26>> 8) ; D26 = E26 - (106*D27>> 8) ; D28 = E28 + E30; C30 = E28 + E30; C29 = - E29 + E31; D31 = E29 E31; /etapa 3 Cl = DO >> 1; CO = DO - Cl ; C3 = D2; C2 = (106*C3>> 8) ; C4 = D4 + D5; C5 = D4 - D5 ; C6 = D7 ; C7 = D7 ; C8 = D8 + D14; C14 = D8 - D14 ; C9 = D9 + D15; C15 = D9 - D15; CIO = Dll; CU = - Dll ; C12 = D12 + D13 ; C13 = D12 -D13 ; D16 = D16 - (106*D19>> 8) ; C19 = D19 + (181*D16>> 8) ; C16 = D16 - (106*C19>> 8) ; C20 = D20 + D26; C26 = D20 - D26 C21 = D21 + D27; C27 = D21 - D27; C22 = D22 + D23; C23 = D22 - D23; C24 = D24 ; C25 = D24; D28 = D28 - (106*D31>> 8) ; C31 = D31 + (181*D28>> 8) ; C28 = D28 - (106*C31>> 8) ; /etapa 4 BO = CO + C3; B3 = CO - C3 ; Bl = Cl + C2 ; B2 = Cl - C2 ; C4 = C4 - (210*C7>> 8) ; B7 = C7 + (251*C4>> 8) ; B4 = C4 - (210*B7>> 8) ; C5 = C5 - (136*C6>> 8) ; B6 = C6 + (212*C5>> 8) ; B5 = C5 - (136*B6>> 8) ; B8 = C8 + CU; BU = C8 - CU; B9 = C9 + CIO; B10 = C9 - CIO; B12 = C12 + C15; B15 = C12 - C15; B13 = C13 + C14 ; B14 = C13 - C14; B16 = C16 + C28; B28 = C16 - C28; B17 = C17 + C29; B29 = C17 - C29; B18 = C18 + C30; B30 = C18 - C30; B19 = C19 + C31; B31 = C19 - C31; B20 = C20 + C23; B23 = C20 - C23; B21 = C21 + C22; B22 = C21 - C22; B24 = C24 + C27; B27 = C24 - C27; B25 = C25 + C26; B26 = C25 - C26; /etapa 5 AO = BO + B7; A7 = BO - B7; Al = Bl + B6; A6 = Bl - B6 ; A2 = B2 + B5; A5 = B2 - B5; A3 = B3 + B ; A4 = B3 - B4 ; B8 = B8 - (91*B15>> 8); A15 = B15 + (162*B8>> 8) ; A8 = B8 - (91*A15>> 8) ; B9 = B9 + (153*B14>> 8) ; A14 = B14 - (225*B9>> 8); A9 = B9 + (153*A14>> 8) ; BIO = BIO - (37*B13>> 8) ; A13 = B13 + (74*B10>> 8); A10 = BIO - (37*A13>> 8) ; Bll = Bll + (232*B12>> 8); A12 = B12 - (254*B11>> 8) ; All = Bll + (232*A12>> 8) ; Al6 = B16 + B23 ; A23 = B16 - B23; Al7 = B17 + B22; A22 = B17 - B22; Al8 = B18 + B21; A21 = B18 - B21; Al9 = B19 + B20; A20 = B19 - B20; A24 = B24 + B31; A31 = B24 - B31; A25 = B25 + B30; A30 = B25 - B30; A26 = B26 + B29; A29 = B26 - B29; A27 = B27 + B28; A28 = B27 - B28; /etapa 6 ZO = AO + A15; Zl = Al + Al4 ; Z2 = A2 + A13 ; Z3 = A3 + A12; Z4 = A4 + All; Z5 = A5 + A10; Z6 = A6 + A9 ; Z7 = A7 + A8; Z8 = A7 - A8 ; Z9 = A6 - A9 ; Z10 = A5 - A10; Zll = A4 -All; Z12 = A3 - A12; Z13 = A2 - A13 ; Z14 = Al - Al4 ; Z15 = AO - A15; Al6 = Al6 + (113*A31>> 8) ; Z31 = A31 - (189*A16>> 8) ; Z16 = A16 + (113*Z31>> 8) ; Al7 = Al7 - (84*A30>> 8) ; Z30 = A30 + (152*A17>> 8); ?17 = A17 - (84*Z30>> 8); A18 = A18 + (145*A29>> Z29 = A29 (219*A18>> Z18 = A18 (145*Z29>> A19 = A19 (57*A28>> Z28 = A28 (109*A19>> Z19 = A19 (57*Z28>> A20 = A20 (180*A27>> Z27 = A27 (241*A20>> Z20 = A20 (180*Z27>> A21 = A21 (31*A26>> Z26 = A26 (62*A21>> Z21 = A21 (31*Z26>> 8) ; A22 = A22 + (220*A25>> Z25 = A25 (253*A22>> 8) Z22 = A22 + (220*Z25>> A23 = A23 - (6*A24>> 8) ; Z24 = A24 + (12*A23>> 8); Z23 = A23 - (6*Z24>> 8); /etapa 7 Y0 = zo + Z31; Y31 = ZO - Z31; Yl = Zl + Z30; Y30 = Zl Z30; Y2 = Z2 + Z29; Y29 = Z2 - Z29; Y3 = Z3 + Z28; Y28 = Z3 Z28 ; Y4 = Z4 + Z27; Y27 = Z4 - Z27; Y5 = Z5 + Z26; Y26 = Z5 Z26; Y6 = Z6 + Z25 ; Y25 = Z6 - Z25; Y7 = Z7 + Z24; Y24 = Z7 Z24 ; Y8 = Z8 + Z23 ; Y23 = Z8 - Z23; Y9 = Z9 + Z22; Y22 ' = Z9 Z22 ; Y10 = Z10 + Z21; Y21 = ZIO - Z21; Yll = : Zll + Z20; Y20 Zll - Z20; Y12 = Z12 + Z19; Y19 = Z12 -- Z19; Y13 = Z13 + Zl; Y18 = = Z13 - Z18; Y14 = Z14 + Z17; Y17 = Z14 - Z17; Y15 = z + Z16 ;,· Yi6 — Z15 - Z16;
15. Un aparato de transformación inversa de imagen, caracterizado porque comprende: una unidad de adquisición de matriz de transformada inversa truncada la cual adquiere una matriz de transformada inversa truncada seleccionando elementos para la transformación inversa con respecto a los coeficientes de transformación correspondientes a una banda de frecuencia predeterminada de entre los elementos de una matriz de transformada inversa MxN para el uso en la transformación inversa de frecuencia con respecto a un bloque MxN, en donde M y N son enteros positivos; y una unidad de transformación inversa la cual restaura el bloque MxN realizando transformación inversa de frecuencia aplicando la matriz de transformada inversa truncada a los coeficientes de transformación de la banda de frecuencia predeterminada.
MX2013003017A 2010-09-28 2011-09-28 Metodo y dispositivo para transformacion y metodo y dispositivo para transformacion inversa de imagenes. MX2013003017A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38711210P 2010-09-28 2010-09-28
PCT/KR2011/007164 WO2012044075A2 (ko) 2010-09-28 2011-09-28 영상의 변환 방법 및 장치, 역변환 방법 및 장치

Publications (1)

Publication Number Publication Date
MX2013003017A true MX2013003017A (es) 2013-06-28

Family

ID=45893662

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2013003017A MX2013003017A (es) 2010-09-28 2011-09-28 Metodo y dispositivo para transformacion y metodo y dispositivo para transformacion inversa de imagenes.

Country Status (9)

Country Link
US (1) US20130195177A1 (es)
EP (1) EP2624561A2 (es)
JP (1) JP2013542664A (es)
KR (1) KR20120032457A (es)
CN (1) CN103250415A (es)
AU (1) AU2011308203A1 (es)
BR (1) BR112013007024A2 (es)
MX (1) MX2013003017A (es)
WO (1) WO2012044075A2 (es)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8902988B2 (en) 2010-10-01 2014-12-02 Qualcomm Incorporated Zero-out of high frequency coefficients and entropy coding retained coefficients using a joint context model
US8891627B1 (en) 2011-04-18 2014-11-18 Google Inc. System and method for coding video using color segmentation
JP2013051522A (ja) * 2011-08-30 2013-03-14 Honda Elesys Co Ltd 画像圧縮装置、画像圧縮方法および画像圧縮プログラム
US9516345B2 (en) 2014-03-17 2016-12-06 Qualcomm Incorporated Systems and methods for low complexity forward transforms using mesh-based calculations
US9432696B2 (en) 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
US9392272B1 (en) 2014-06-02 2016-07-12 Google Inc. Video coding using adaptive source variance based partitioning
US9578324B1 (en) 2014-06-27 2017-02-21 Google Inc. Video coding using statistical-based spatially differentiated partitioning
US9998746B2 (en) 2016-02-10 2018-06-12 Amazon Technologies, Inc. Video decoder memory optimization
US10305717B2 (en) 2016-02-26 2019-05-28 VertoCOMM, Inc. Devices and methods using the hermetic transform for transmitting and receiving signals using multi-channel signaling
FR3050598B1 (fr) * 2016-04-26 2020-11-06 Bcom Procede de decodage d'une image numerique, procede de codage, dispositifs, et programmes d'ordinateurs associes
CN111684809B (zh) 2017-12-15 2022-08-19 Lg电子株式会社 基于变换的图像编码方法和用于该方法的装置
RU2760566C2 (ru) * 2017-12-15 2021-11-29 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ кодирования изображения на основе неразделимого вторичного преобразования и устройство для него
CN115776572A (zh) 2017-12-21 2023-03-10 Lg电子株式会社 图像解码和编码方法、存储比特流的介质和数据发送方法
KR102650865B1 (ko) * 2018-04-01 2024-03-22 엘지전자 주식회사 분할된 블록에 2차 변환을 적용하여 비디오 신호를 처리하는 방법 및 장치
HRP20231341T1 (hr) 2018-04-01 2024-02-16 Lg Electronics Inc. Obrada video signala korištenjem smanjene sekundarne transformacije
CA3113988A1 (en) * 2018-09-23 2020-03-26 Lg Electronics Inc. Method for encoding/decoding video signals and apparatus therefor
CN116760982A (zh) * 2019-01-12 2023-09-15 Lg电子株式会社 解码设备、编码设备、存储介质和图像数据发送设备
US11343495B2 (en) * 2020-06-03 2022-05-24 Tencent America LLC Methods of simplification of temporal filtering

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS622721A (ja) * 1985-06-28 1987-01-08 Nec Corp 画像信号の符号化・復号化装置
US5719961A (en) * 1994-07-22 1998-02-17 Apple Computer, Inc. Adaptive technique for encoder and decoder signal transformation
JP3423585B2 (ja) * 1997-08-13 2003-07-07 日本電信電話株式会社 画像処理方法および装置
JPH11196262A (ja) * 1997-11-07 1999-07-21 Matsushita Electric Ind Co Ltd デジタル情報埋込み・抽出装置および方法並びに当該方法を実行するためのプログラムを記録した媒体
KR100522121B1 (ko) * 1997-12-17 2006-01-12 삼성전자주식회사 버퍼상태에 따른 dct계수를 제한하는 mpeg인코더
JP2002204552A (ja) * 2000-12-29 2002-07-19 Ricoh Co Ltd 直流モータ
EP2373033A3 (en) * 2004-01-30 2011-11-30 Panasonic Corporation Picture coding and decoding method, apparatus, and program thereof
EP1879401A4 (en) * 2005-05-03 2012-03-28 Panasonic Corp DYNAMIC IMAGE ENCODING METHOD, DYNAMIC IMAGE DECODING METHOD, AND DEVICE THEREFOR
KR20090078494A (ko) * 2008-01-15 2009-07-20 삼성전자주식회사 영상 데이터의 디블록킹 필터링 방법 및 디블록킹 필터

Also Published As

Publication number Publication date
KR20120032457A (ko) 2012-04-05
CN103250415A (zh) 2013-08-14
WO2012044075A2 (ko) 2012-04-05
EP2624561A2 (en) 2013-08-07
BR112013007024A2 (pt) 2019-09-24
US20130195177A1 (en) 2013-08-01
WO2012044075A3 (ko) 2012-05-31
JP2013542664A (ja) 2013-11-21
AU2011308203A1 (en) 2013-04-11

Similar Documents

Publication Publication Date Title
MX2013003017A (es) Metodo y dispositivo para transformacion y metodo y dispositivo para transformacion inversa de imagenes.
KR102087990B1 (ko) 비디오의 부호화 방법 및 장치, 복호화 방법 및 장치
JP6479237B2 (ja) ビデオ符号化のための簡素化されたイントラ予測
CA2527654C (en) Adaptive coefficient scan order
US8265162B2 (en) Context adaptive position and amplitude coding of coefficients for video compression
AU2015202669A1 (en) Method and apparatus for encoding and decoding image through intra prediction
KR101480412B1 (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
KR20110118598A (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
AU2018200072B2 (en) Video encoding method and device and decoding method and device
AU2015221483A1 (en) Video encoding method and device and decoding method and device

Legal Events

Date Code Title Description
FG Grant or registration