ES2635540T3 - Sistema y método de descodificación utilizable en bloques de elementos de textura codificada - Google Patents

Sistema y método de descodificación utilizable en bloques de elementos de textura codificada Download PDF

Info

Publication number
ES2635540T3
ES2635540T3 ES10833652.0T ES10833652T ES2635540T3 ES 2635540 T3 ES2635540 T3 ES 2635540T3 ES 10833652 T ES10833652 T ES 10833652T ES 2635540 T3 ES2635540 T3 ES 2635540T3
Authority
ES
Spain
Prior art keywords
adder
operator
texel
output
decoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES10833652.0T
Other languages
English (en)
Inventor
Jacob STRÖM
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2635540T3 publication Critical patent/ES2635540T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/127Prioritisation of hardware or computational resources
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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
    • 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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un sistema de descodificación (1) para generar un píxel descodificado basado en al menos N téxeles (30-36) de al menos un bloque téxel codificado (40), N siendo un número más grande que 1, dicho sistema de descodificación (1) comprende: N descodificadores diferentes (100, 200, 300, 400), cada uno de los cuales tiene un circuito que tiene un nivel de complejidad que es diferente del nivel de complejidad de los circuitos de los otros N - 1 descodificadores y cada uno de los cuales se configura para descodificar un bloque téxel codificado (40) para generar al menos un valor de téxel respectivo; un selector de valor (500) conectado a dichos N descodificadores (100, 200, 300, 400) y configurado para producir, de manera selectiva, los al menos N valores de téxel asociados a dichos al menos N téxeles (30-36) de al menos uno de dichos N descodificadores (100, 200, 300, 400) según las posiciones de los al menos N valores de téxeles (30-36) respecto a un límite de un bloque téxel (10) que comprende al menos uno de dichos al menos N téxeles (30-36); y un calculador de píxeles (600) configurado para calcular un valor de píxel descodificado de dicho píxel descodificado según dichos al menos N valores de téxel producidos, de forma selectiva, por dicho selector de valor (500).

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Sistema y metodo de descodificacion utilizable en bloques de elementos de textura codificada CAMPO TECNICO
La presente invencion se refiere, en general, a la descodificacion y, en particular, a un sistema y metodo de descodificacion utilizable en bloques de elementos de textura codificada.
ANTECEDENTES
Cuando se intenta aumentar el rendimiento de las unidades de procesamiento grafico (GPU, por sus siglas en ingles), una solucion es aplicar varias tecnicas para reducir el consumo de ancho de banda de memoria. La reduccion de ancho de banda se esta convirtiendo tambien en algo cada vez mas importante dado que la tasa de crecimiento de rendimiento para la potencia de procesamiento es mucho mayor que la tasa de crecimiento de rendimiento para el ancho de banda y latencia para la memoria de acceso aleatorio (RAM, por sus siglas en ingles).
La compresion de textura es un modo popular de reducir los requisitos de ancho de banda. Mediante el almacenamiento de texturas en forma comprimida en la memoria y la transferencia de bloques de datos comprimidos en el bus, el ancho de banda de textura se reduce de manera sustancial.
Actualmente, los sistemas de compresion de textura mas usados son DXTC [1] para sistemas basados en Windows y Xbox, y ETC [2] para microtelefonos moviles. Ambos sistemas dividen una imagen, textura denotada, en bloques de elementos de textura (texel) de 4 x 4 texeles y los datos rojos, verdes y azules (RGB, por sus siglas en ingles) de los texeles se comprimen luego (8+8+8)x16=384 bits a 64 bits. Por consiguiente, a cada bloque texel se le da el mismo numero de bits. Esto es importante dado que el rasterizador usado en la descompresion puede necesitar acceder a una parte de la textura y necesita poder calcular, de forma facil, la direccion de memoria del bloque texel deseado. En otras palabras, un codec de tasa fija, a saber, un codec donde cada bloque texel ocupa la misma cantidad de espacio de almacenamiento, es muy deseable y es la norma entre los algoritmos de compresion de textura de hoy en dla.
El desarrollo del descodificador ETC ha resultado en el as! llamado descodificador ETC2 [3] que tiene una funcionalidad adicional para manejar el as! llamado modo T, modo H y un modo PLANAR. Los modos T y H se disenan para manejar bloques texel con distribucion irregular de color y colores dispuestos en dos grupos, respectivamente. Los circuitos de hardware del descodificador ETC se pueden reusar en gran medida para incluir los modos T y H adicionales. El modo PLANAR es, sin embargo, bastante diferente del ETC y de los modos T y H y se disena para manejar bloques texel con suaves transiciones de colores. Los circuitos de hardware complejos para el modo PLANAR suponen que la complejidad del descodificador ETC2 aumenta de manera significativa en comparacion con el descodificador ETC.
Existe, por consiguiente, una necesidad de proveer una implementacion eficiente del modo PLANAR y, en particular, de dicha implementacion que se puede proveer como implementacion de hardware usando un circuito rentable. Dicho circuito rentable es, en particular, deseable si el modo PLANAR se usa junto con el descodificador ETC y los modos T y H para formar el descodificador ETC2.
Un problema similar se presenta, en general, en la tecnica, a saber, existe una necesidad general de una tecnica que se pueda aplicar a un sistema de descodificacion con el proposito de reducir la complejidad de implementacion.
Se-Jeong Park y otros: "A Reconfigurable Multilevel Parallel Texture Cache Memory With 75-GB/s Parallel Cache Replacement Bandwith", IEEE Journal of Solid-State Circuits, IEEE Service Center, Piscataway, NJ, Estados Unidos, vol. 37, No. 5, 1 mayo 2002 (), XP011065764, ISSN: 0018-9200 describe una memoria cache de textura paralela multinivel reconfigurable con multiples descodificadores identicos que trabajan en paralelo, lo cual apunta a reducir el ancho de banda requerido para cargar datos de imagenes de textura y admitir tuberlas de graficos paralelas.
COMPENDIO
Es un objetivo general proveer una descodificacion eficiente de bloques texel codificados.
Es un objetivo particular proveer una estructura de descodificacion que se pueda implementar, de manera eficiente, en hardware.
Estos y otros objetivos se cumplen a traves de las realizaciones de la invencion segun se establece en el conjunto anexo de reivindicaciones; los ejemplos adicionales llamados realizaciones en la descripcion son ejemplos ilustrativos, no realizaciones reivindicadas en la presente solicitud.
De manera breve, una realizacion se refiere a un sistema de descodificacion para generar un pixel descodificado basado en al menos un bloque texel codificado. El sistema de descodificacion comprende N descodificadores paralelos que se configuran, cada uno, para descodificar un bloque texel codificado para generar uno o mas valores
5
10
15
20
25
30
35
40
45
50
55
60
65
de texel. Segun la realizacion, los circuitos de los N descodificadores son diferentes en comparacion unos con otros de modo que cada descodificador de los N descodificadores tiene un circuito unico que es diferente de los circuitos de los otros N-1 descodificadores. Ello permite a los circuitos de descodificador tener diferentes niveles de complejidad dado que los descodificadores tienen capacidades diferentes en terminos de las posiciones del texel dentro de un bloque texel que pueden manejar.
El sistema de descodificacion comprende tambien un selector de valor conectado a los N descodificadores y configurado para producir, de manera selectiva, N valores de texel. Dichos N valores de texel se producen ademas a partir de uno o mas de los N descodificadores. Los valores de texel particulares para producir y desde los cuales el descodificador depende de la posicion de un parche de N texeles, tienen los N valores de texel, respecto a un bloque texel que comprende al menos uno de los N texeles. En otras palabras, la posicion de los N texeles respecto a los llmites del bloque texel de una textura dicta que resultados del descodificador se seleccionan por el selector de valor y se reenvlan ademas a un calculador de plxeles. El calculador de plxeles se configura para calcular un valor de pixel descodificado segun los N valores de texel producidos selectivamente por el selector de valor.
La eleccion cuidadosa del selector de valor permite el diseno de los descodificadores de modo que al menos algunos de los N descodificadores pueden tener un circuito menos complejo que los otros descodificadores. Ello es posible limitando algunos de los descodificadores para que solamente puedan descodificar y producir valores de texel para ciertas posiciones de texel dentro de un bloque texel. Como consecuencia, los N descodificadores no necesitan tener circuitos identicos sino, en claro contraste, diferentes circuitos con diferentes niveles de complejidad en terminos de las estructuras de hardware por circuito.
Una realizacion define un metodo para generar un pixel descodificando al menos un bloque texel codificado. El metodo comprende producir, selectivamente, N valores de texel a partir de al menos uno de los N descodificadores diferentes, cada uno de los cuales tiene un circuito que es unico y diferente de los circuitos de los otros N - 1 descodificadores. Cada descodificador produce, ademas, al menos un valor de texel segun un bloque texel codificado de entrada. La seleccion de dichos valores de texel de los N descodificadores para usar para el calculo del valor de pixel del pixel a descodificar se lleva a cabo segun la posicion de los N texeles asociados a los N valores de texel respecto al limite de un bloque texel. Los N valores de texel seleccionados se usan entonces para calcular el valor del pixel.
Las realizaciones permiten una implementacion eficiente de una estructura de descodificacion de pixeles reduciendo la complejidad que se necesita para al menos algunos de los descodificadores paralelos. La complejidad total de la estructura de descodificacion se reduce, por consiguiente, en comparacion con los N descodificadores paralelos identicos, como en la tecnica anterior.
BREVE DESCRIPCION DE LOS DIBUJOS
La invencion, junto con objetos y ventajas adicionales de la presente, se podra comprender mejor mediante referencia a la siguiente descripcion tomada junto con los dibujos anexos, en los cuales:
Las Figuras 1A a 1D ilustran diferentes posiciones de un parche bilineal respecto a los bordes del bloque texel;
la Figura 2 es una vision general esquematica de una disposicion de descodificacion que comprende un sistema de descodificacion segun una realizacion;
la Figura 3 es una ilustracion de un sistema de descodificacion segun una realizacion;
la Figura 4 ilustra, de forma esquematica, un bloque texel codificado segun una realizacion;
la Figura 5 ilustra el concepto de emplear una aproximacion planar de valores de propiedad de texel en un
bloque texel;
la Figura 6 es un ejemplo de implementacion de hardware del cuarto descodificador en la Figura 3;
la Figura 7 es un ejemplo de implementacion de hardware del tercer descodificador en la Figura 3;
la Figura 8 es un ejemplo de implementacion de hardware del segundo descodificador en la Figura 3;
la Figura 9 es un ejemplo de implementacion de hardware del primer descodificador en la Figura 3;
la Figura 10 es un ejemplo de implementacion de hardware de un extensor de bits de siete a ocho; la Figura 11 es una implementacion de hardware de un fijador; la Figura 12 es otra implementacion de hardware de un fijador;
la Figura 13 es un ejemplo de implementacion de hardware del selector de valor de la Figura 3; y la Figura 14 es un diagrama de flujo que ilustra un metodo de descodificacion segun una realizacion.
DESCRIPCION DETALLADA
A lo largo de los dibujos, los mismos numeros de referencia se usan para elementos similares o correspondientes.
Las realizaciones se refieren, en general, a la descodificacion o descompresion de bloques de elementos de textura (texel) codificada o comprimida con el fin de generar valores de pixeles descodificados.
La descodificacion se adapta bien para su uso con graficos tridimensionales (3D) como, por ejemplo, juegos, mapas y escenas 3D, mensajes 3D, p.ej., mensajes animados, protectores de pantalla, interfaces hombre-maquina (MMI,
5
10
15
20
25
30
35
40
45
50
55
60
65
por sus siglas en ingles), etc., pero no se limita a ello. Por consiguiente, las realizaciones se pueden emplear tambien para descodificar otros tipos de imagenes o graficos, p.ej., imagenes unidimensionales (1D), bidimensionales (2D) o 3D.
Un proceso de renderizacion de graficos comprende, normalmente, tres subetapas. De manera breve, una primera etapa, la etapa de aplicacion, crea varios triangulos. Las esquinas de dichos triangulos se transforman, proyectan e iluminan en una segunda etapa, la etapa de geometrla. En una tercera etapa, la etapa de rasterizacion, las imagenes, con frecuencia texturas denotadas, se pueden "pegar" en los triangulos y aumentar as! el realismo de la imagen renderizada. La tercera etapa tambien lleva a cabo la clasificacion usando un bufer de profundidad.
Sin embargo, la renderizacion de texturas y, en particular, de graficos e imagenes 3D, es una tarea computacionalmente costosa en terminos de ancho de banda de memoria y potencia de procesamiento requeridos para los sistemas graficos. Por ejemplo, las texturas son costosas tanto en terminos de memoria, las texturas se pueden ubicar en memoria rapida en chip, como en terminos de ancho de banda de memoria, se puede acceder a una textura varias veces para dibujar un solo pixel. Asimismo, multiples texturas se pueden necesitar, a veces, para dibujar un pixel.
Con el fin de reducir los requisitos de ancho de banda y potencia de procesamiento, normalmente se emplea un metodo o sistema de codificacion de textura. Dicho sistema de codificacion resulta en un uso mas eficiente de la memoria en chip costosa y en un ancho de banda de memoria mas bajo durante la renderizacion y, por consiguiente, en un consumo de potencia inferior y/o en una renderizacion mas rapida. Dicha reduccion de los requisitos de ancho de banda y potencia de procesamiento es particularmente importante para clientes livianos como, por ejemplo, unidades y telefonos moviles, con una pequena cantidad de memoria, poco ancho de banda de memoria y potencia limitada, a saber, alimentados por baterias.
En la tecnica, las texturas se dividen en los asi llamados bloques texel, cada uno de los cuales comprende un numero de texeles. Dicho bloque texel es, normalmente, rectangular o cuadratico como, por ejemplo, un tamano de MrxMc texeles, donde Mr, Mc son numero integros positivos con la condicion de que tanto Mr como Me no sean simultaneamente uno. Preferiblemente, MR=2mR y Me=2me, donde mR, me son integros positivos. En una implementacion tipica, Mr = Me y las realizaciones preferidas de dicho bloque podrian ser de 4 x 4 texeles.
En la tecnica, el elemento de pixel o imagen se emplea, a veces, para denotar un elemento de textura de una textura. En la siguiente descripcion, el texel se emplea, sin embargo, para denotar un elemento de textura de una textura y el pixel se usa para denotar un elemento de imagen generado a partir de dichos texeles en conexion con la rasterizacion.
Un texel se asocia a un valor de texel y un pixel se asocia a un valor de pixel. Los valores de texel y pixel pueden ser, de manera ventajosa, valores de color. Un valor de color se puede representar en varios formatos de color como, por ejemplo, de color rojo, verde, azul (RGB) o como luminancia y crominancia. Ademas, un valor de texel puede representar otras propiedades de un texel como, por ejemplo, un valor normal o valor Z. En la siguiente descripcion, un valor de texel se ejemplifica, sin limitacion, como un valor de color.
Un rasterizador tipico no accede a la textura un solo texel por vez. En su lugar, se emplea un pequeno grupo de texeles como, por ejemplo, texeles 2x2. Por ejemplo, durante el filtrado bilineal, cuatro de dichos texeles vecinos se leen para producir un valor filtrado de manera bilineal, a saber, un valor de pixel. En la tecnica, dicho grupo de texeles vecinos coprocesados para generar un valor de pixel es, normalmente, un parche denotado. Por lo tanto, un grupo de texeles de 2x2 empleado en el filtrado bilineal se denota como un parche bilineal. Dicho concepto se puede ampliar ademas, por ejemplo, para el filtrado trilineal. El filtrado trilineal usa dos parches bilineales a partir de dos mapas MIP diferentes.
Un problema con el manejo de parches de texeles es que los texeles en un parche pueden abarcar mas de un bloque texel. Ello se ilustra de forma esquematica en las Figuras 1A a 1D. La Figura 1A ilustra el caso donde un parche bilineal 20 de cuatro texeles 30-36 se encuentra en un solo bloque texel 10. Las Figuras 1B y 1C ilustran otra situacion donde el parche bilineal 20 abarca dos bloques de pixeles 10, 12, 14 ya sea presentes lado a lado (Figura 1B) o unos sobre otros (Figura 1C). El caso extremo se ilustra en la Figura 1D con un texel 30-36 del parche bilineal 20 en un bloque texel 10-16 respectivo.
El modo tradicional de resolver este problema es usar cuatro descodificadores identicos, cada uno de los cuales descodifica un texel predeterminado en el parche bilineal. Por ejemplo, en el caso de la Figura 1A, el bloque texel codificado que representa el bloque texel 10 se ingresa en los cuatro descodificadores. El primer texel de salida de descodificador (1, 2) 30, texel (2, 2) se obtiene del segundo descodificador con el tercer y cuarto descodificadores que generan texel (1, 3) y (2, 3) 36 del parche bilineal, respectivamente. Se asume un sistema de coordenadas en el cual el origen se encuentra en el texel izquierdo superior del bloque texel 10. En la Figura 1D, el bloque texel codificado del bloque texel 10 se ingresa en el primer descodificador para generar un texel (3, 3) 10, el bloque texel codificado del bloque texel 12 se procesa por el segundo descodificador para obtener un texel (0, 3) 32. El texel (3,
5
10
15
20
25
30
35
40
45
50
55
60
65
0) 34 se obtiene del tercer descodificador segun el bloque texel codificado para el bloque texel 14 y el cuarto descodificador produce el texel (0, 0) 36 a partir del bloque texel codificado del bloque texel 16.
De esta manera, es, por lo tanto, posible producir un parche bilineal 2x2 en cada ciclo de reloj independientemente del tipo de configuracion (Figuras 1A-lD) que se encuentre. El hardware de rasterizacion de alto rendimiento produce dos de dichos parches bilineales por ciclo de reloj para permitir el filtrado trilineal. Sin embargo, en dicho caso, ocho descodificadores identicos se necesitan segun las tecnicas de la tecnica anterior.
El concepto de coprocesamiento de texeles en descodificadores paralelos, sin embargo, aumenta radicalmente la complejidad del sistema de descodificacion, lo cual es un problema para los clientes livianos. Por ejemplo, anadir el modo PLANAR previamente mencionado al sistema de descodificacion ETC llevarla a un aumento de la complejidad, definida como el numero de sumadores, de 6 sumadores a 21 sumadores [3] por descodificador. Por consiguiente, PLANAR usa 3,5 mas sumadores que ETC y la complejidad del sistema de descodificacion que tiene cuatro descodificadores ETC y cuatro descodificadores PLANAR aumentarla con 3,5.
Las realizaciones, segun se describen en la presente memoria, reducen la complejidad de un sistema de descodificacion mediante el no uso de descodificadores paralelos identicos. En claro contraste, diferentes circuitos de descodificador se pueden usar para los descodificadores si los descodificadores se disenan para manejar diferentes numeros de texeles y diferentes posiciones de texel dentro de un parche.
En una realizacion general, el sistema de descodificacion comprende N descodificadores diferentes. Dicho sistema de descodificacion 1 se ilustra en la Figura 3, N ejemplificado como cuatro. En una realizacion general, N es un Integra igual a o mayor que dos, preferiblemente igual a cuatro. Cada descodificador 100, 200, 300, 400 tiene un circuito que es diferente del circuito de los otros N - 1 descodificadores. Por consiguiente, el sistema de descodificacion 1 no comprende descodificadores identicos como en la tecnica anterior sino, en claro contraste, diferentes descodificadores 100, 200, 300, 400 con diferentes circuitos unicos. La diferencia en los circuitos de los N descodificadores 100, 200, 300, 400 supone que la combinacion de los elementos de circuito de uno de los descodificadores es diferente de la combinacion de los elementos de circuito en los otros descodificadores. Los descodificadores 100, 200, 300, 400 tienen, por lo tanto, diferente costo y complejidad de implementacion.
Cada descodificador 100, 200, 300, 400 se configura ademas para descodificar un bloque texel codificado para generar al menos un valor de texel. El sistema de descodificacion 1 comprende tambien un selector de valor 500 conectado a los N descodificadores 100, 200, 300, 400 y configurado para producir, de manera selectiva, al menos N valores de texel, preferiblemente N valores de texel. Dichos al menos N valores de texel se producen a partir de al menos uno de los N descodificadores 100, 200, 300, 400. Ademas, el selector de valor 500 selecciona cuales de los al menos N valores de texel y desde que descodificador los valores de texel deben producirse segun las posiciones de los al menos N texeles asociados a los al menos N valores de texel respecto a un llmite de un bloque texel que comprende al menos uno de los N texeles. Por consiguiente, las posiciones de los N texeles, cuyo valor de texel se debe generar por el sistema de descodificacion 1, respecto a un bloque texel, determinan desde que descodificador o desde que descodificadores de los N descodificadores 100, 200, 300, 400, se deben traer los valores de texel. Un calculador de plxeles 600 del sistema de descodificacion 1 se conecta al selector de valor 500 y se configura para calcular un valor de pixel descodificado de un pixel descodificado segun los al menos N valores de texel producidos, de manera selectiva, por el selector de valor 500.
La realizacion general logra una reduccion de la complejidad de los descodificadores 100, 200, 300, 400 limitando algunos de los descodificadores para que solamente puedan manejar texeles en ciertas posiciones de texel dentro de un bloque texel. Como consecuencia, los circuitos de dichos descodificadores 100, 200, 300, 400 se pueden reducir, de manera significativa, en comparacion con el caso de la tecnica anterior sin dichas restricciones sobre los descodificadores.
En una realizacion preferida, el primer descodificador 100 de los N descodificadores 100, 200, 300, 400 se configura para descodificar un bloque texel codificado de entrada para generar N valores de texel. El selector de valor 500 se configura entonces para producir, de manera selectiva, dichos N valores de texel a partir del primer descodificador 100 y calculador de plxeles 500 si los N texeles se posicionan dentro de los llmites de un bloque texel. La Figura 1A ilustra el presente caso con N = 4. Por consiguiente, si los cuatro texeles 30-36 de un parche bilineal 20 se posicionan todos dentro de un solo bloque texel 10, los cuatro valores de texel se generan todos por el primer descodificador 100. Ello significa que cualquier salida de los otros descodificadores 200, 300, 400 no se selecciona por el selector de valor 500 ni se usa por el calculador de plxeles 600 para calcular un valor de pixel descodificado.
Si la mitad de los N texeles 30, 34 (30, 32) se posiciona dentro de los limites de un bloque texel 10 y la mitad restante de los N texeles 32, 36 (34, 36) se posiciona dentro de los limites de un bloque de plxeles vecino 12 (14), es preciso ver la Figura 1B (Figura 1C), el selector de valor 500 se configura, preferiblemente, para producir, de manera selectiva, la mitad de los N valores de texel a partir del primer descodificador 100 y la mitad restante de los N valores de texel a partir del segundo descodificador 200.
5
10
15
20
25
30
35
40
45
50
55
60
En una realizacion preferida con N = 4, el primer descodificador 100 tiene un primer circuito configurado para descodificar un bloque texel codificado de entrada para generar cuatro valores de texel. El segundo descodificador 200 tiene un segundo circuito y produce dos valores de texel segun un bloque texel codificado de entrada. El tercer 300 y cuarto 400 descodificadores comprenden un tercer circuito y un cuarto circuito, respectivamente. El tercer 300 y cuarto 400 descodificadores producen, cada uno, un solo valor de texel dado un bloque texel codificado de entrada.
En la situacion ilustrada en la Figura 1D, preferiblemente los cuatro descodificadores 100, 200, 300, 400 producen valores de texel que se seleccionan por el selector de valor 500. Por consiguiente, el selector de valor 500 se configura entonces para producir, de manera selectiva, un primer valor de texel a partir del primer descodificador 100, un segundo valor de texel a partir del segundo descodificador 200, un tercer valor de texel a partir del tercer descodificador 300 y, finalmente, un cuarto valor de texel a partir del cuarto descodificador 400. En el presente caso, cada uno de los cuatro texeles 30-36 se posiciona dentro de un bloque texel 10-16 respectivo.
La Figura 2 ilustra, de manera esquematica, una estructura de implementation con un sistema de descodificacion 1 segun una realizacion. La estructura comprende una memoria 5, normalmente una RAM, que tiene ubicaciones de memoria que comprenden bloques texel codificados 40. Una unidad de procesamiento grafico (GPU) 4 se conecta a la memoria 5 a traves de un bus de memoria. La GPU 4 incluye un identificador de bloque texel 2 para identificar un bloque texel, cuyo bloque codificado 40 se debe traer desde la memoria 5. El identificador de bloque texel 2 calcula basicamente la direction del bloque texel codificado 40 en la memoria 5 y envla una solicitud de acceso a la memoria en el bus a la memoria 5. El bloque texel codificado 40 presente en la ubicacion de memoria asignada o dedicada al bloque texel se lee desde la memoria 5 y se transfiere en el bus al sistema de descodificacion 1 o a un cache 3 de la GpU 4.
El sistema de descodificacion 1 comprende o se conecta a al menos un cache 3 que tiene ubicaciones cache o areas para almacenar bloques texel codificados o valores de texel descodificados. En una realizacion alternativa, la GPU 4 puede comprender multiples caches 3 como, por ejemplo, un cache de textura y un cache de bufer de color. La GPU 4 se conecta, normalmente, a una pantalla de visualization 6, en la cual se visualiza una imagen descodificada.
La GPU 4 y sus unidades incluidas 1, 2, 3 se pueden proveer en uno o mas chips, por ejemplo de una tarjeta grafica, tarjeta de video o una placa madre. La estructura de implementacion de la Figura 2 se puede implementar en cualquier dispositivo o unidad de procesamiento de textura o imagen incluidos, por ejemplo, un ordenador, una consola de juegos, un dispositivo portatil como, por ejemplo, un telefono movil o un dispositivo de procesamiento de medios.
A continuation, las realizaciones del sistema de descodificacion se describiran en mas detalle en relation con diferentes ejemplos de implementacion. Dichos ejemplos se disenan ademas para que sean apropiados para manejar bloques texel codificados segun el PLANAR descrito en [3, 4]. De manera breve, PLANAR se disena para manejar bloques texel con crominancias suavemente variables. PLANAR aproxima los componentes de color (rojo, verde, azul) en el bloque texel con una aproximacion planar. Con el fin de especificar un plano, es suficiente especificar los colores en tres ubicaciones en el bloque texel. La Figura 5 ilustra dicho concepto con tres componentes rojos Ro, Rh y Rv en ciertas posiciones respecto a un bloque texel 10. Con dicho posicionamiento de los tres componentes rojos, el componente rojo se puede calcular en cualquier lugar en el bloque texel 10 usando la siguiente ecuacion:
imagen1
Los componentes azul y verde se calculan de igual manera que el componente rojo. Un bloque texel codificado 40 se ilustra en la Figura 4 y comprende, por lo tanto, tres palabras de codigo de color 41-49 por componente de color, a saber, X0, Xh y Xv, donde X es R por el componente rojo, G por el componente verde y B por el componente azul. En una implementacion preferida, seis bits se gastan preferiblemente en cada una de las palabras de codigo rojas 41-43 y las palabras de codigo azules 47-49 y siete bits para cada una de las palabras de codigo verdes 44-46 dado que el ojo humano es mas sensible al componente verde en comparacion con los componentes rojo y azul. El tamano total del bloque texel codificado sera de 57 bits, el cual encaja exactamente en el modo de 57 bits de ETC2 [3]. Si PLANAR se usa de manera autonoma y no como un modo especial para ETC, el bloque texel codificado 40 gasta, de manera ventajosa, siete bits para todas, excepto una de, las palabras de codigo de color 41-47 como, por ejemplo, G0 que, en cambio, es de ocho bits. El tamano total sera entonces de 64 bits.
En una implementacion PLANAR, el primer descodificador 100 de la Figura 3 puede descodificar cualquier parche bilineal 2x2 que tenga los cuatro texeles dentro del bloque texel, es preciso ver la Figura 1A. El segundo descodificador 200 es menos avanzado y produce valores de texel para los texeles en la primera fila o la primera
5
10
15
20
25
30
35
40
45
columna de un bloque texel, es preciso ver el texel 32, 36 en la Figura 1B y los texeles 34, 36 en la Figura 1C. El segundo descodificador 200 produce, por lo tanto, preferiblemente, dos valores de texel a la vez, ya sea un parche de 2x1 o un parche de 1x2. El tercer descodificador 300 descodifica un bloque texel codificado para generar un solo valor de texel, preferiblemente el derecho superior en la coordenada (3, 0), es preciso ver el texel 34 en la Figura 1D. El cuarto descodificador 400 produce, tambien preferiblemente, un solo valor de texel del texel de origen (0, 0), es preciso ver el texel 36 en la Figura 1D.
Ello significa que si todos los texeles 30-36 de un parche bilineal 20 se encuentran dentro del limite de un bloque texel 10 como en la Figura 1A, la salida del primer descodificador 100 se selecciona por el selector de valor 500. Si dos texeles 30, 34 (30, 32) se encuentran en un bloque texel 10 y dos 32, 36 (34, 36) se encuentran en un bloque texel vecino 12 (14) como se muestra en las Figuras 1B y 1C, los valores de texel de los dos texeles izquierdos 30, 34 o superiores 30, 32 se obtienen del primer descodificador 100 y los valores de texel de los dos texeles derechos 32, 36 o inferiores 34 provienen del segundo descodificador 200. Finalmente, si los cuatro texeles 30-36 se encuentran en diferentes bloques texel 10-16 como en la Figura 1D, el selector de valor 500 selecciona el valor de texel para el texel izquierdo superior 30 del primer descodificador 100, el valor de texel para el texel derecho superior 32 del segundo descodificador 200, el valor de texel para el texel derecho inferior 34 del tercer descodificador 300 y el valor de texel para el texel izquierdo inferior 36 del cuarto descodificador 400. De esta manera, los cuatro texeles 30-36 de un parche bilineal 20 se pueden obtener en un solo ciclo de reloj, con la ventaja de que el segundo al cuarto descodificadores 200, 300, 400 se pueden implementar usando muy poco hardware.
De la ecuacion
X(x, y) = redondo X0 + - (XH - X0 )x + - (Xv - X0 )y
, sigue que el texel
en el origen (0, 0) es
x(0,0)=redondolx0+-(XH -X0)0 + -(XF -Xo)0 =
especialmente simple para calcular . Como se describe mas
arriba, el cuarto descodificador se configura, preferiblemente, para solamente descodificar texeles en el origen. Ello significa que el circuito del cuarto descodificador se puede volver extremadamente simple. La Figura 6 ilustra el circuito del cuarto descodificador 400 para uno de los componentes de color. Como se ve en la figura, la unica estructura es un extensor 480 opcional pero preferido que se configura para extender la primera palabra de codigo de color de entrada Xo a una longitud de bit definida, preferiblemente de ocho bits. Como se describe tambien en la presente memoria en relation con la Figura 10, dicho extensor 480 se puede implementar sin estructuras de hardware y, en su lugar, solo con cables desde donde los respectivos componentes de color se almacenan para la salida del cuarto descodificador 400.
Por lo tanto, el cuarto descodificador 400 se puede implementar sin puertas.
El tercer descodificador 300 debe, segun la descripcion de mas arriba, preferiblemente, manejar texeles en la
( 1 1
*(3,0) = redondo Jfg H— (X„-X0)x3+-(Xp-X0)xO
posicion
. El ultimo termino no contribuye y se puede eliminar. Con
el fin de eliminar el operador redondo(), el resultado se puede calcular en unidades de (1/4), anadir dos y desplazar
»2: j(3,0) - ((J0« 2)+(xH - X0)X 3 + 2)» 2
a la derecha dos veces, indicado por .
La multiplicacion por tres se puede intercambiar anadiendo el numero a una version desplazada de si misma:
3t = 2t + t = (t«l)+t con
t=XH-X0
La ecuacion se puede, por lo tanto, escribir como
X(3,0H(Jo « 2) + (/«l)+/ + 2)» 2
En cada sumador, existe la posibilidad de anadir 1 estableciendo el arrastre en = 1 en lugar de 0. Por lo tanto, la adicion de 2 se puede reemplazar cambiando los dos sumadores de esta manera. En la ecuacion de mas abajo, +!
X0 +\(XH~ Xo )x 3 + ^(XV - X0 )x 0) = .
se usa para indicar un sumador que tiene el arrastre establecido en uno:
A'(5„0 ) = redondo
Expresado de otra forma similitud a lo establecido ma
X(3,0)= (Xa+\((XH « iY'.Xh))» 2
comparacion con la presentada mas arriba.
X(3,0) = {(XQ « 2)+!(/ «l)+!/)» 2
+3x
X 0 X H
En como
s arriba, la ecuacion se puede escribir . Dicha expresion se implementa mas facilmente en hardware en
5
10
15
20
25
30
35
40
45
50
55
60
65
Los operadores de desplazamiento se pueden implementar conectando cables de manera diferente. Las unicas operaciones restantes que se necesitan para calcular X(3,0) son tres sumas.
La Figura 7 ilustra una realizacion de los circuitos del tercer descodificador 300. El tercer descodificador 300 comprende un operador de desplazamiento izquierdo 310 para desplazar la segunda palabra de codigo de color Xh una posicion de bit a la izquierda para obtener una secuencia de bits desplazada a la izquierda. El operador de desplazamiento izquierdo 310 se conecta a un primer sumador 320 que tiene el arrastre establecido en uno. El primer sumador 320 adiciona la secuencia de bits desplazada a la izquierda a la segunda palabra de codigo de color Xh. La salida resultante se anade a la primera palabra de codigo de color X0 en un segundo sumador 322 que tiene el arrastre establecido en uno y que se conecta al primer sumador 320. Finalmente, el segundo sumador 322 se conecta a un operador de desplazamiento derecho 330 configurado para desplazar la secuencia de bits correspondiente a la salida del segundo sumador 322 dos posiciones de bit a la derecha para formar la salida final del tercer descodificador 300, a saber el valor de texel X(3,0).
En una realizacion opcional pero preferida, la primera palabra de codigo de color X0 y la segunda palabra de codigo de color Xh se extienden o expanden primero preferiblemente de seis o siete bits a ocho bits. Como consecuencia, un primer extensor 380 se dispone preferiblemente conectado al segundo sumador 322 y se configura para extender la primera palabra de codigo de color X0 a un tamano de bit predefinido, preferiblemente de ocho bits. Un segundo extensor 382 se dispone preferiblemente conectado al operador de desplazamiento izquierdo 310 y al primer sumador 320 y se configura para extender o expandir la segunda palabra de codigo de color Xh al tamano de bit predefinido, a saber, preferiblemente de ocho bits.
Un extensor se puede implementar muy facilmente mediante un simple cableado de modo que los k bits mas significativos de una secuencia de bits I (k<I) se copian a los K bits menos significativos para obtener una secuencia de bits l+k. La Figura 10 es una ilustracion esquematica de una implementacion del primer y segundo extensores 380, 382 apropiados para el componente de color verde. Como se puede ver en la figura, el bit mas significativo de la secuencia de 7 bits de entrada se copia a la posicion del bit menos significativo para obtener una secuencia de 8 bits de salida. Para los componentes rojos y azules, los dos bits mas significativos se copian a las dos posiciones de bit menos significativo para ir de una secuencia de 6 bits a una secuencia de 8 bits.
Con el tamano de bit previo mencionado para el bloque texel codificado, a saber, seis bits por palabra de codigo de color para los componentes rojos y azules y siete bits por palabra de codigo de color para el componente verde y el uso de los dos extensores, los circuitos de hardware del tercer descodificador 300 se pueden implementar con un total de 250,8 puertas, si cada sumador cuesta 4,4 puertas por bit:
R/G/B: 1 sumador de 9 bits ^ 9x4,4=39,6 puertas
1 sumador de 10 bits ^ 10x4,4=44 puertas
Total: 3x83,6=250,8 puertas
No se necesita ningun fijador para el tercer descodificador 300 como en una implementacion preferida del primer y segundo descodificadores, lo cual se describe en la presente memoria.
La Figura 8 ilustra una realizacion de una implementacion de hardware del segundo descodificador 200. El segundo descodificador 200 comprende un primer multiplexor 250 configurado para producir una de la segunda palabra de codigo de color Xh y la tercera palabra de codigo de color Xv. La seleccion de palabra de codigo de color depende de si la mitad de los cuatro texeles se posiciona en la primera fila o primera columna dentro del llmite del bloque texel, cuyo bloque texel codificado se ingresa en el segundo descodificador 200. Si los dos plxeles se posicionan en la primera fila, la segunda palabra de codigo de color Xh se produce desde el primer multiplexor 250, de lo contrario, se produce la tercera palabra de codigo de color Xv. Un operador de negacion 240 se configura para negar la primera palabra de codigo de color Xo. Un primer sumador 220 se conecta al primer multiplexor 250 y al operador de negacion 240 y adiciona la salida de dichas unidades 240, 250 para formar la diferencia Xh-X0 o Xv-X0. En una implementacion alternativa, el operador de negacion 240 se reemplaza por un operador NOT por el primer sumador 220 que es un sumador con arrastre establecido en uno. El uso de un operador NOT junto con un sumador con arrastre establecido en uno se prefiere, en general, a un operador de negacion con un sumador normal en terminos de complejidad de hardware.
Un operador de desplazamiento izquierdo 210 se conecta al primer sumador 220 y se configura para desplazar la secuencia de bits correspondiente a la salida de sumador una posicion de bit a la izquierda.
Un segundo multiplexor 252 se configura para producir una de una coordenada de fila y una coordenada de columna de un texel. Dicho texel es el primer texel de los dos texeles presentes en el bloque texel, cuyo bloque texel codificado se ingresa en el segundo descodificador 200. En la figura, Sx denota la coordenada de columna y Sy denota la coordenada de fila de dicho texel. Si los dos texeles se posicionan en la primera fila, la coordenada de columna Sx se produce desde el segundo multiplexor 252, de lo contrario, la coordenada de fila Sy.
5
10
15
20
25
30
35
40
45
50
55
60
65
Un tercer multiplexor 254 se conecta al operador de desplazamiento izquierdo 210 y al primer sumador 220. El tercer multiplexor 254 selecciona entre 2x(XH«-X0)=2d, a saber, la salida del operador de desplazamiento izquierdo 210 y (XHw-Xo)=d, a saber, la salida del primer sumador 220. La selection se lleva a cabo segun el valor del bit mas significativo de la coordenada de fila o columna producido desde el segundo multiplexor 252.
Un operador OR 360 se conecta al segundo multiplexor 352 y se configura para llevar a cabo una operation OR en el bit mas significativo y el bit menos significativo de la coordenada de fila o columna desde el segundo multiplexor 352. El operador OR 360 y el tercer multiplexor 254 se conectan ademas a un operador AND 270. Dicho operador AND 270 lleva a cabo una operacion AND del bit a bit de salida del multiplexor con el unico bit del operador Or 260. El resultado aqul es que la salida del multiplexor se preserva si la salida OR es 1 bin y la salida del operador AND 270 es cero si la salida OR es 0bin. Por lo tanto, la salida del operador AND 270 es 2d, d o 0.
Un segundo sumador 222 se conecta al operador AND 270 y se configura para anadir la salida del operador AND 270 y una secuencia de bits que tiene 10bin como los dos bits menos significativos precedidos por la primera palabra de codigo de color X0. Dicha secuencia de bits corresponde a f=4xX0+2, que se puede implementar desplazando la secuencia de bits de la primera palabra de codigo de color Xo dos posiciones de bit a la izquierda e insertando 2=10bin como los ultimos dos bits, los cuales de otra forma son cero despues del desplazamiento. La salida del segundo sumador 222 es, por lo tanto, 2d+f, d+f o f.
Un tercer sumador 224 se conecta al primer sumador 220 y al segundo sumador 222 y se configura para anadir las salidas de dichos sumadores 220, 222. Dicho tercer sumador 224, por lo tanto, da el resultado 3d+f, 2d+f o d+f. Un primer operador de desplazamiento derecho 230 se conecta al tercer sumador 224 y se configura para desplazar la secuencia de bits del tercer sumador 224 dos posiciones de bit a la derecha para obtener el valor de texel del texel inferior o derecho de los dos texeles en la primera columna o primera fila en el parche bilineal. Un segundo operador de desplazamiento derecho 232 se conecta al segundo sumador 222 y desplaza las dos posiciones de bit de salida de sumador a la derecha para formar el valor de texel del superior del texel izquierdo de los dos texeles en la primera columna o primera fila.
Las palabras de codigo de color de entrada X0, Xh, Xv se expanden preferiblemente de seis o siete bits a ocho bits en similitud con el tercer descodificador en la Figura 7. Como consecuencia, los extensores 280, 282, 284 opcionales pero preferidos se disponen preferiblemente en los terminales de entrada para tener as! un primer extensor 280 configurado para extender la primera palabra de codigo de color X0 antes de la suma de 10bin como los dos bits menos significativos para formar, en el presente caso, una secuencia de 10 bits. El primer extensor 280 se conecta tambien al operador de negation 240. Un segundo 282 y tercer 284 extensor se conectan al primer multiplexor 250 y extiende la segunda Xh y la tercera Xv palabras de codigo de color, respectivamente.
En una implementation opcional, los operadores de desplazamiento derecho 230, 232 se conectan preferiblemente a un fijador u operador de fijacion 290, 292 respectivo. Dichos fijadores 290, 292 se configuran para fijar la salida de los operadores de desplazamiento derecho 230, 232 entre un valor de texel mlnimo y un valor de texel maximo. Por consiguiente, los fijadores 290, 292 aseguran que la secuencia de bits de salida del segundo descodificador 200 se encuentra dentro de un intervalo de valor permitido. Un ejemplo de dicho intervalo de valor permitido va de 0 a 255 si las secuencias de salida del segundo descodificador 200 son de 8 bits.
La Figura 11 ilustra un ejemplo de una implementacion de hardware de un fijador 190-196, 290, 292 como, por ejemplo, empleado en el segundo descodificador de la Figura 8 o primer descodificador de la Figura 9. La presente realization de fijador se disena para fijar una secuencia de 11 bits que potencialmente representa un valor en el intervalo de [-1024, 1023] a una secuencia de 8 bits que representa un valor en el intervalo de [0, 255]. El fijador 190-196, 290, 292 comprende ocho operadores OR 701-708, cada uno de los cuales recibe uno de los ocho bits menos significativos de la secuencia de bits de entrada. Las otras entradas respectivas a los operadores OR 701708 se conectan a la salida de otro operador OR 700. Dicho operador OR 700 recibe los dos bits mas significativos de la secuencia de bits de entrada. Las salidas de los ocho operadores OR 701-708 se conectan, cada una, a un operador AND 711-718 respectivo. La otra entrada respectiva de los operadores AND 711-718 recibe el bit de signo de la secuencia de bits de entrada.
Una realizacion de implementacion alternativa para el fijador 190-196, 290, 292 se ilustra en la Figura 12. En la presente realizacion, los ocho operadores OR se reemplazan por ocho operadores NOR 721-724. En consecuencia, los ocho operadores AND de la Figura 11 se reemplazan tambien por ocho operadores NOR 731-738. Ademas, un operador NOT 740 se conecta entre los ocho operadores NOR 731-738 y la entrada para el bit de signo de la secuencia de bits de entrada.
El costo de implementacion de la realizacion de hardware ilustrada en la Figura 12 es:
16 NOR ^16x1=16 puertas
1 OR ^ 1x1,5=1,5 puertas
1 NOT ^ 1x0,5=0,5 puertas
5
10
15
20
25
30
35
40
45
50
55
60
65
Total: 16+1,5+0,5=18 puertas
El numero de puertas para el ejemplo de implementation del segundo descodificador 200 en la Figura 8, excluidos los fijadores, es:
R/G/B: 1 sumador de 8 bits — 8x4,4=35,2 puertas 1 sumador de 11 bits—^ 11x4,4=48,4 puertas 1 sumador de 12 bits —12x4,4=52,8 puertas
1 mux de 8 bits — 8x2,2=17,6 puertas 1 mux de 10 bits — 10x2,2=22 puertas 1 mux de 2 bits — 2x2,2=4,4 puertas
1 OR de 1 bit — 1x1,5=1,5 puertas 1 AND de 10 bits — 10x1,5=15 puertas 1 NOT de 8 bits — 8x0,5=4 puertas
Total: 3x200,9=602,7 puertas
Finalmente, la Figura 9 es un ejemplo de una implementacion de hardware del primer descodificador 100. El primer descodificador 100 comprende un operador de negation 140 configurado para negar la primera palabra de codigo de color X0. Un primer sumador 120 se conecta al operador de negacion 140 y suma la primera palabra de codigo de color negada a la segunda palabra de codigo de color Xh para obtener g=XH-X0. Un segundo sumador 122 se conecta tambien al operador de negacion 140 y suma la primera palabra de codigo de color negada a la tercera palabra de codigo de color Xv para obtener h=Xv-X0. En una implementacion alternativa, el operador de negacion 140 se reemplaza por un operador NOT. El primer sumador 120 y el segundo sumador 122 tienen, ambos, arrastre establecido en uno.
Un primer operador de desplazamiento izquierdo 110 se conecta al primer sumador 120 y desplaza una position de bit de salida de sumador a la izquierda para obtener una secuencia de bits desplazada a la izquierda correspondiente a 2g. Un segundo operador de desplazamiento izquierdo 112 se conecta al segundo sumador 122 y desplaza una posicion de bit de salida de sumador a la izquierda para obtener la secuencia de bits de 2h. Un primer multiplexor 150 se conecta al primer operador de desplazamiento izquierdo 110 y al primer sumador 120 y se configura para seleccionar entre g y 2g segun el bit mas significativo de una coordenada de columna Sx. Un segundo multiplexor 152 se conecta, por consiguiente, al segundo operador de desplazamiento izquierdo 112 y al segundo sumador 122 y selecciona entre h y 2h segun el bit mas significativo de una coordenada de fila Sy. Las coordenadas de columna y fila son las coordenadas del texel izquierdo superior en el parche bilineal 2x2, a saber, texel 30 en las Figuras 1A a 1D.
Un primer operador OR 160 lleva a cabo una operation OR en el bit mas significativo y el bit menos significativo de la coordenada de columna Sx. Un segundo operador OR 162 lleva a cabo una operacion OR en el bit mas significativo y el bit menos significativo de la coordenada de fila Sy. El primer operador OR 160 y el primer multiplexor 150 se conectan a un primer operador AND 170 que lleva a cabo una operacion AND bit a bit en la salida de multiplexor con el unico bit del primer operador OR 160. La salida del primer operador AND 170 es, por lo tanto, 2g, g o 0. Un segundo operador AND 172 se conecta al segundo multiplexor 152 y al segundo operador OR 162. El segundo operador AND 172 lleva a cabo una operacion AND bit a bit en la salida de multiplexor con el bit del segundo operador OR 162 para obtener una salida de 2h, h o 0.
Un tercer sumador 124 se conecta al primer operador AND 124 y suma la salida de sumador a una secuencia de bits que tiene 10bin como los dos bits menos significativos precedidos por la primera palabra de codigo de color. Dicha secuencia de bits corresponde, como se ha descrito previamente, a f=4Xo+2. La salida de sumador es, por lo tanto, 2g+f, g+f o f. Un cuarto sumador 126 se conecta al primer sumador 120 y al tercer sumador 124 y se configura para anadir las salidas de dichos sumadores 120, 124 para obtener 3g+f, 2g+f o g+f. Un quinto sumador 128 se conecta al segundo sumador 122 y al segundo operador AND 172 y suma las salidas de dichas dos unidades 122, 172 para obtener 3h, 2h o h.
Un sexto sumador 121 se conecta al tercer sumador 124 y al segundo operador AND 172 y se configura para anadir las salidas de dichas unidades 124, 172. Un primer operador de desplazamiento derecho 130 se conecta al sexto sumador 121 y se configura para desplazar la secuencia de bits de la salida de sumador dos posiciones de bit a la derecha para obtener un valor de texel del texel 30 en la Figura 1A.
Un septimo sumador 123 se conecta al cuarto sumador 126 y al segundo operador AND 172 y se configura para anadir las salidas de dichas unidades 126, 172. Un segundo operador de desplazamiento derecho 132 se conecta al septimo sumador 123 y se configura para desplazar la secuencia de bits de la salida de sumador dos posiciones de bit de a la derecha para obtener el valor de texel del texel 32 en la Figura 1A.
5
10
15
20
25
30
35
40
45
50
55
60
65
Un octavo sumador 125 se conecta al tercer sumador 124 y el quinto sumador 128 y se configura para anadir las salidas de dichos sumadores 124, 128. Un tercer operador de desplazamiento derecho 134 se conecta al octavo sumador 125 y se configura para desplazar la secuencia de bits de la salida de sumador dos posiciones de bit de a la derecha para obtener el valor de texel del texel 34 en la Figura 1A.
Un noveno sumador 127 se conecta al cuarto sumador 126 y al quinto sumador 128 y se configura para anadir las salidas de dichos sumadores 126, 128. Un cuarto operador de desplazamiento derecho 136 se conecta al cuarto sumador 127 y se configura para desplazar la secuencia de bits de la salida de sumador dos posiciones de bit a la derecha para obtener el valor de texel del texel 36 en la Figura 1A.
En una implementacion opcional pero preferida, las palabras de codigo de color de entrada Xo, Xh, Xv se extienden o expanden primero de seis o siete bits a ocho bits. Como consecuencia, un primer extensor de bits 180 se dispone preferiblemente conectado al operador de negacion 140 y se configura ademas para extender o expandir la primera palabra de codigo de color Xo a la secuencia de bits predefinida, preferiblemente de ocho bits, antes de anadir 10bin como los bits menos significativos para obtener una secuencia de 10 bits. Un segundo extensor 182 se dispone, por consiguiente, conectado al primer sumador 120 y se configura para extender la segunda palabra de codigo de color XH. Finalmente, un tercer extensor 184 se conecta al segundo sumador 122 y se configura para extender la tercera palabra de codigo de color XV.
En una implementacion opcional, cada operador de desplazamiento derecho 130-136 se conecta preferiblemente a un fijador u operador de fijacion 190-196 respectivo. Dichos fijadores 190-196 se configuran para fijar la salida de los operadores de desplazamiento derecho 130-136 entre un valor de texel mlnimo y un valor de texel maximo. Por consiguiente, los fijadores 190-196 aseguran que la secuencia de bits de salida del primer descodificador 100 se encuentra dentro de un intervalo de valor permitido. Un ejemplo de dicho intervalo de valor permitido va de 0 a 255 si las secuencias de salida del primer descodificador 100 son de 8 bits.
El numero de puertas para el ejemplo de implementacion de la Figura 8, excluidos los fijadores opcionales 190-196, es:
R/G/B: 2 sumadores de 8 bits ^ 16x4,4=70,4 puertas 1 sumador de 10 bits ^ 10x4,4=44 puertas
1 sumador de 11 bits ^ 11x4,4=48,4 puertas
5 sumadores de 12 bits ^ 60x4,4=264 puertas
2 mux de 10 bits ^ 20x2,2=44 puertas
2 OR de 1 bit ^ 2x1,5=3 puertas 2 AND de 10 bits ^ 20x1,5=30 puertas 1 NOT de 8 bits ^ 8x0,5=4 puertas
Total: 3x507,8=1523,4 puertas
Los cuatro descodificadores del sistema de descodificacion pueden, por lo tanto, implementarse con solo 0+250,8+602,7+1523,4=2376,9 puertas, excluidos los fijadores.
Una implementacion tradicional con cuatro descodificadores identicos, como se sugiere en la tecnica anterior [3], serla muy similar al primer descodificador en la Figura 9. La unica diferencia serla que se necesitarla solo un texel en la salida en lugar de cuatro como en la figura. Por lo tanto, los cuatro sumadores 121, 123, 125, 127 se reemplazarlan entonces por dos multiplexores de cuatro direcciones seguidos por un sumador. Ello costarla 6 sumadores, 4 multiplexores y dos operadores AND por canal de color. Ello significa que con cuatro descodificadores y tres componentes de color diferentes, el costo de hardware o la complejidad segun la tecnica anterior hubieran sido:
6x3x4=72 sumadores 4x3x4=48 multiplexores 2x3x4= 24 operadores AND
Ello se compara con las realizaciones de implementacion descritas de las Figuras 6-8 que necesitan
(9+3+2+0)x3=42 sumadores (2+3+0+0)x3=15 multiplexores (2+1+0+0)x3=9 operadores AND
El numero de sumadores se ha reducido, por lo tanto, de 72 a 42, o en un 42%. Los multiplexores se han reducido incluso mas en terminos relativos, de 48 a 15, o en un 69%.
5
10
15
20
25
30
35
40
45
50
55
60
65
La Figura 13 ilustra una realizacion de una implementacion de hardware del selector de valor 500. En la presente realizacion, el selector de valor 500 comprende cuatro multiplexores 510, cada uno de los cuales produce un valor de texel de un texel 30-36 del parche bilineal. El primer multiplexor 510 se conecta a las cuatro salidas del primer descodificador 100 y selecciona una de las cuatro secuencias de bits como el valor de texel del primer texel 30 en el parche bilineal. El segundo multiplexor 520 se conecta a la segunda y cuarta salidas del primer descodificador 100 y a las dos salidas del segundo descodificador 200. Dicho segundo multiplexor 520 produce el valor de texel del segundo texel 32 en el parche bilineal. Un tercer multiplexor 530 se conecta a la tercera y cuarta salidas del primer descodificador 100, a la primera salida del segundo descodificador 200 y a la unica salida del tercer descodificador 300. El tercer multiplexor 530 produce el valor de texel para el tercer texel 34 en el parche bilineal. Finalmente, el cuarto multiplexor 540 se conecta a la cuarta salida del primer descodificador 100, a la segunda salida del segundo descodificador 200 y a la unica salida del cuarto descodificador 400. El cuarto multiplexor 540 selecciona y produce el valor de texel del cuarto texel 36 en el parche bilineal.
La posicion del parche bilineal respecto de un borde del bloque texel dicta que secuencias de bits se producen desde los multiplexores 510-540. Por consiguiente, en la situacion ilustrada en la Figura 1A, las secuencias de bits de las cuatro salidas del primer descodificador 100 se seleccionan por los multiplexores 510-540. En mayor detalle, el primer multiplexor 510 produce la secuencia de bits desde la primera salida del primer descodificador 100, el segundo multiplexor 520 produce la secuencia de bits desde la segunda salida con el tercer 530 y cuarto 540 multiplexores que producen las secuencias de bits desde la tercera y cuarta salidas de descodificador, respectivamente. Un parche bilineal ubicado como se ilustra en la Figura 1B supone que el primer multiplexor 510 selecciona la secuencia de bits de la segunda salida del primer descodificador 100. El segundo multiplexor 520 selecciona la secuencia de bits de la primera salida del segundo descodificador 200. El tercer descodificador 300 selecciona la secuencia de bits de la cuarta salida del primer descodificador 100 y el cuarto descodificador 400 selecciona la secuencia de bits de la segunda salida del segundo descodificador 200. El concepto puede entonces aplicarse de manera similar a las otras dos posiciones de parche ilustradas en las Figuras 1C y 1D.
El costo en terminos de numero de puertas de implementar la realizacion del selector de valor 500 como se ilustra en la Figura 13 es:
3 mux de 4 direcciones de 8 bits ^ 24x6,6=158,4 puertas 1 mux de 3 direcciones de 8 bits ^ 8x4,4=35,2 puertas
Total: 158,4+35,2=193,6 puertas
El costo total para los descodificadores y el selector de valor, incluidos los fijadores, es de 2376,9+6x18+193,6=2678,5 puertas.
Si los fijadores del primer y segundo descodificadores como se ilustran en las Figuras 8 y 9 se hubieran omitido y, en su lugar, se hubieran reemplazado por cuatro fijadores, cada uno conectado a uno de los multiplexores 510-540 del selector de valor 500, el costo de implementacion del selector de valor 500 aumentarla dado que entonces se necesitarlan los tres multiplexores de 4 direcciones de 11 bits y un multiplexor de 3 direcciones de 11 bits y ello resultarla en un costo de 266,2 puertas en lugar de 193,6 puertas.
El calculador de plxeles del sistema de descodificacion se puede implementar en hardware segun las tecnicas conocidas en la tecnica. En mayor detalle, supongamos que los cuatro valores de texel, en el caso del filtrado bilineal, del selector de valor se denotan A, B, C y D. El calculador de plxeles entonces calcula el valor de pixel como:
valor de pixel = A(1 - dx)(1 - dy)+Bdx(1 - dy)+C(1 - dx)dy + Ddxdy
donde dx es la distancia a lo largo del eje x entre el punto medio del texel A y el punto de muestra para el pixel y dy es la distancia correspondiente a lo largo del eje y entre el punto medio del texel A y el punto de muestra para el pixel.
La ecuacion descrita mas arriba se lleva a cabo en paralelo para los componentes de color rojo, verde y azul. Una implementacion de hardware se puede entonces definir segun la ecuacion. Por ejemplo, supongamos que la posicion del punto de muestra se puede expresar con tres decimales binarios, p.ej. la posicion dx puede asumir los siguientes valores [0,000, 0,125, 0,250, 0,375, 0,500, 0,625, 0,750, 0,875]. En dicho caso, la posicion se puede definir en ochos de modo que los valores de mas arriba se pueden representar por [0, 1, 2, 3, 4, 5, 6, 7]. La ecuacion de mas arriba puede entonces reescribirse como:
valor de pixel = A(8 - DX)(8 - DY)+BDX(8 - DY)+C(8 - DX)DY + DDXDY)>>6 donde DX=8xdx y DY=8xdy y DX, DY son integros entre 0 y 7.
5
10
15
20
25
30
35
40
45
50
55
Al investigar el segundo termino 8DX(8 - DY) nos damos cuenta de que tanto DX como (8-DY) son Integros entre 0 y 8. Con el fin de representar ocho, se requieren cuatro bits. Se puede usar un operador de multiplicacion que maneja cuatro bits en cada entrada y produce una secuencia de 8 bits. Sin embargo, el mayor numero que el operador de multiplicacion puede producir es 7x8=56 de modo que solamente los seis bits menos significativos se necesitan de la salida.
La salida del operador de multiplicacion se debe luego multiplicar por el valor de texel B, preferiblemente un numero entre 0 y 255. Dicha multiplicacion se puede manejar por un operador de multiplicacion que toma dos entradas de 8 bits y produce una secuencia de bits de 16 bits. Sin embargo, se necesitan solo los catorce bits menos significativos del operador de multiplicacion dado que el mayor numero posible es 56x255<214.
Una implementation correspondiente se lleva a cabo luego para los otros terminos en la ecuacion y las salidas de los respectivos operadores de multiplicacion final se anaden y desplazan seis pasos a la derecha con el fin de obtener el valor de pixel final de 8 bits.
Los ejemplos de implementacion descritos mas arriba se deben ver simplemente como realizaciones preferidas pero no restrictivas de como las unidades del sistema de descodificacion se pueden implementar en hardware. Diferentes variantes de aquel son posibles y dentro del alcance de la invention. La caracterlstica importante es, sin embargo, que los circuitos de los descodificadores incluidos son diferentes con la creciente complejidad y que cada descodificador se configura para manejar y producir el valor de texel de uno o mas texeles en posiciones predefinidas en el parche.
La Figura 14 es un diagrama de flujo que ilustra un metodo para generar un pixel descodificado descodificando al menos un bloque texel codificado. El metodo comienza en la etapa E1 donde se determina la position de al menos N valores de texel, a saber, un parche, respecto a un borde de bloque texel. Un bloque texel codificado respectivo, ya sea el mismo bloque texel codificado o bloques texel codificados diferentes que dependen de la posicion de parche relativa determinada, se ingresa en N descodificadores para obtener valores de texel descodificados. Una siguiente etapa E2 produce, de manera selectiva, al menos N valores de texel desde al menos uno de los N descodificadores. Los al menos N valores de texel particulares para seleccionar en la etapa E2 y desde cuyos descodificadores se traen se determinan segun la posicion de parche relativa obtenida en la etapa E1. Ademas, cada uno de los N descodificadores tiene un circuito respectivo que es diferente de los circuitos de los otros N - 1 descodificadores. La etapa final E3 calcula un valor de pixel descodificado segun al menos N valores de texel seleccionados en la etapa E2, preferiblemente como una combination lineal de dichos al menos N valores de texel. El metodo entonces finaliza o comienza de nuevo en la etapa E1 con el fin de generar un nuevo pixel descodificado.
La etapa E2 incluye preferiblemente producir, de manera selectiva, todos los N valores de texel desde un primer descodificador de los N descodificadores si los N texeles se posicionan dentro del limite de un bloque texel. Sin embargo, si la mitad de los N texeles se posiciona dentro de un bloque texel y la mitad restante de los texeles se encuentra, en cambio, dentro de un bloque texel vecino, la mitad de los N valores de texel se selecciona preferiblemente de la salida del primer descodificador con la mitad restante de un segundo descodificador.
En una realization preferida, N = 4. Si los cuatro texeles se posicionan entonces de modo que cada texel se encuentra en un bloque texel separado, la etapa E2 incluye, preferiblemente, seleccionar un valor de texel respectivo de cada uno de los cuatro descodificadores.
Las realizaciones descritas mas arriba se deben comprender como unos pocos ejemplos ilustrativos de la presente invencion.
El alcance de la presente invencion se define por las reivindicaciones anexas.
REFERENCIAS
[1] Patente de Estados Unidos No. 5,956,431
[2] Strom y Moller, "iPACKMAN: High-Quality, Low-Complexity Texture Compression for Mobile Phones", Graphics Hardware, 2005, ACM Press, pp. 63-70
[3] Strom y Pettersson, "ETC2: Texture Compression using Invalid Combinations", Graphics Hardware, 2007, aCm Press, pp. 49-54
[4] Solicitud internacional No. WO 2006/126949

Claims (17)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    REIVINDICACIONES
    1. Un sistema de descodificacion (1) para generar un pixel descodificado basado en al menos N texeles (30-36) de al menos un bloque texel codificado (40), N siendo un numero mas grande que 1, dicho sistema de descodificacion (1) comprende:
    N descodificadores diferentes (100, 200, 300, 400), cada uno de los cuales tiene un circuito que tiene un nivel de complejidad que es diferente del nivel de complejidad de los circuitos de los otros N - 1 descodificadores y cada uno de los cuales se configura para descodificar un bloque texel codificado (40) para generar al menos un valor de texel respectivo;
    un selector de valor (500) conectado a dichos N descodificadores (100, 200, 300, 400) y configurado para producir, de manera selectiva, los al menos N valores de texel asociados a dichos al menos N texeles (30-36) de al menos uno de dichos N descodificadores (100, 200, 300, 400) segun las posiciones de los al menos N valores de texeles (30-36) respecto a un llmite de un bloque texel (10) que comprende al menos uno de dichos al menos N texeles (30-36); y
    un calculador de plxeles (600) configurado para calcular un valor de pixel descodificado de dicho pixel descodificado segun dichos al menos N valores de texel producidos, de forma selectiva, por dicho selector de valor (500).
  2. 2. El sistema de descodificacion segun la reivindicacion 1, en donde dicho selector de valor (500) se configura para producir, de forma selectiva, N valores de texel de un primer descodificador (100) de dichos N descodificadores (100, 200, 300, 400) si los N texeles (30-36) asociados a dichos N valores de texel se posicionan dentro de dicho limite de un bloque texel (10).
  3. 3. El sistema de descodificacion segun la reivindicacion 1 o 2, en donde dicho selector de valor (500) se configura para producir, de forma selectiva, una mitad de N valores de texel de un primer descodificador (100) de dichos N descodificadores (100, 200, 300, 400) y una mitad restante de dichos N valores de texel de un segundo descodificador (200) de dichos N descodificadores (100, 200, 300, 400) si la mitad de los N texeles (30-36) asociados a dichos N valores de texel se posicionan dentro de dicho limite de dicho bloque texel (10) y la mitad de dichos N texeles (30-36) se posiciona dentro del limite de un bloque texel vecino (12, 14).
  4. 4. El sistema de descodificacion segun cualquiera de las reivindicaciones 1 a 3, en donde N es igual a cuatro y dicho selector de valor (500) se configura para producir, de forma selectiva, un primer valor de texel de dichos cuatro valores de texel de un primer descodificador (100) de dichos cuatro descodificadores (100, 200, 300, 400), un segundo valor de texel de dichos cuatro valores de texel de un segundo descodificador (200) de dichos cuatro descodificadores (100, 200, 300, 400), un tercer valor de texel de dichos cuatro valores de texel de un tercer descodificador (300) de dichos cuatro descodificadores (100, 200, 300, 400) y un cuarto valor de texel de dichos cuatro valores de texel de un cuarto descodificador (400) de dichos cuatro descodificadores (100, 200, 300, 400) si uno de dichos cuatro texeles (30-36) se posiciona dentro de dicho limite de dicho bloque texel (10) y cada uno de los tres texeles restantes se posiciona dentro del limite de un bloque texel vecino (12, 14, 16) respectivo.
  5. 5. El sistema de descodificacion segun cualquiera de las reivindicaciones 1 a 4, en donde N es igual a cuatro y
    un primer descodificador (100) de dichos cuatro descodificadores (100, 200, 300, 400) tiene un primer circuito y se
    configura para descodificar un bloque texel codificado (40) para generar cuatro valores de texel;
    un segundo descodificador (200) de dichos cuatro descodificadores (100, 200, 300, 400) tiene un segundo circuito y
    se configura para descodificar un bloque texel codificado (40) para generar dos valores de texel;
    un tercer descodificador (300) de dichos cuatro descodificadores (100, 200, 300, 400) tiene un tercer circuito y se
    configura para descodificar un bloque texel codificado (40) para generar un valor de texel; y
    un cuarto descodificador (400) de dichos cuatro descodificadores (100, 200, 300, 400) tiene un cuarto circuito y se configura para descodificar un bloque texel codificado (40) para generar un valor de texel.
  6. 6. El sistema de descodificacion segun cualquiera de las reivindicaciones 1 a 5, en donde dicho bloque texel codificado (40) comprende una primera palabra de codigo de color (41, 44, 47), una segunda palabra de codigo de color (42, 45, 48) y una tercera palabra de codigo de color (43, 46, 49).
  7. 7. El sistema de descodificacion segun las reivindicaciones 5 y 6, en donde dicho cuarto descodificador (400) comprende al menos un cable para producir dicha primera palabra de codigo de color (41, 44, 47).
  8. 8. El sistema de descodificacion segun la reivindicacion 6 o 7, en donde dicho tercer descodificador (300) comprende:
    un operador de desplazamiento izquierdo (310) configurado para desplazar una secuencia de bits correspondiente a dicha segunda palabra de codigo de color (42, 45, 48) una posicion de bit a la izquierda para formar una secuencia de bits desplazada a la izquierda;
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    un primer sumador (320) que tiene arrastre establecido en uno y que se conecta a dicho operador de desplazamiento izquierdo (310) y se configura para sumar dicha segunda palabra de codigo de color (42, 45, 48) y dicha secuencia de bits desplazada a la izquierda;
    un segundo sumador (322) que tiene arrastre establecido en uno y que se conecta a dicho primer sumador (320) y se configura para sumar la salida de dicho primer sumador (320) y dicha primera palabra de codigo de color (41, 44, 47); y
    un operador de desplazamiento derecho (330) conectado a dicho segundo sumador (322) y configurado para desplazar una secuencia de bits correspondiente a la salida de dicho segundo sumador (322) dos posiciones de bit a la derecha para formar una secuencia desplazada a la derecha.
  9. 9. El sistema de descodificacion segun cualquiera de las reivindicaciones 6 a 8, en donde dicho segundo descodificador (200) comprende:
    un primer multiplexor (250) configurado para producir una de dicha segunda palabra de codigo de color (42, 45, 48) y dicha tercera palabra de codigo de color (43, 46, 49) segun si la mitad de los cuatro texeles (30-36) se posiciona en una fila o columna dentro de dicho llmite de dicho bloque texel (10);
    un operador de negacion (240) configurado para negar dicha primera palabra de codigo de color (41, 44, 47); un primer sumador (220) conectado a dicho primer multiplexor (250) y a dicho operador de negacion (240) y configurado para sumar la salida de dicho primer multiplexor (250) y dicha primera palabra de codigo de color negada;
    un operador de desplazamiento izquierdo (210) conectado a dicho primer sumador (220) y configurado para desplazar una secuencia de bits correspondiente a la salida de dicho primer sumador (220) una posicion de bit a la izquierda para formar una secuencia de bits desplazada a la izquierda;
    un segundo multiplexor (252) configurado para producir una de una coordenada de fila y una coordenada de columna de un texel (32, 34) segun si dicha mitad de cuatro texeles (30-36) se posiciona en una fila o columna dentro de dicho llmite de dicho bloque texel (10);
    un tercer multiplexor (254) conectado a dicho operador de desplazamiento izquierdo (210) y a dicho primer sumador (220) y configurado para producir una de dicha salida de dicho primer sumador (220) y dicha secuencia de bits desplazada a la izquierda segun el bit mas significativo de la salida de dicho segundo multiplexor (252);
    un operador OR (260) conectado a dicho segundo multiplexor (252) y configurado para recibir dicho bit mas significativo de dicha salida de dicho segundo multiplexor (252) y el bit menos significativo de dicha salida de dicho segundo multiplexor;
    un operador AND (270) conectado a dicho tercer multiplexor (254) y a dicho operador OR (260) y configurado para recibir la salida de dicho tercer multiplexor (254) y la salida de dicho operador OR (260); un segundo sumador (222) conectado a dicho operador AND (270) y configurado para sumar la salida de dicho operador AND (270) y una secuencia de bits que tiene 10bin como los dos bits menos significativos precedidos por dicha primera palabra de codigo de color (41, 44, 47);
    un tercer sumador (224) conectado a dicho primer sumador (220) y a dicho segundo sumador (222) y configurado para sumar dicha salida de dicho primer sumador (220) y la salida de dicho segundo sumador (222);
    un primer operador de desplazamiento derecho (230) conectado a dicho tercer sumador (224) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho tercer sumador (224) dos posiciones de bit a la derecha para formar una primera secuencia desplazada a la derecha;
    un segundo operador de desplazamiento derecho (232) conectado a dicho segundo sumador (222) y configurado para desplazar la secuencia de bits correspondiente a dicha salida de dicho segundo sumador (222) dos posiciones de bit a la derecha para formar una segunda secuencia desplazada a la derecha.
  10. 10. El sistema de descodificacion segun cualquiera de las reivindicaciones 6 a 8, en donde dicho segundo descodificador (200) comprende:
    un primer multiplexor (250) configurado para producir una de dicha segunda palabra de codigo de color (42,
    45, 48) y dicha tercera palabra de codigo de color (43, 46, 49) segun si la mitad de cuatro texeles (30-36) se
    posiciona en una fila o columna dentro de dicho llmite de dicho bloque texel (10);
    un operador not configurado para negar dicha primera palabra de codigo de color (41, 44, 47);
    un primer sumador (220) que tiene arrastre establecido en uno conectado a dicho primer multiplexor (250) y a
    dicho operador not y configurado para sumar la salida de dicho primer multiplexor (250) y dicha primera
    palabra de codigo de color negada;
    un operador de desplazamiento izquierdo (210) conectado a dicho primer sumador (220) y configurado para desplazar una secuencia de bits correspondiente a la salida de dicho primer sumador (220) una posicion de bit a la izquierda para formar una secuencia de bits desplazada a la izquierda;
    un segundo multiplexor (252) configurado para producir una de una coordinada de fila y una coordinada de columna de un texel (32, 34) segun si dicha mitad de cuatro texeles (30-36) se posiciona en una fila o columna dentro de dicho llmite de dicho bloque texel (10);
    un tercer multiplexor (254) conectado a dicho operador de desplazamiento izquierdo (210) y a dicho primer sumador (220) y configurado para producir una de dicha salida de dicho primer sumador (220) y dicha
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    secuencia de bits desplazada a la izquierda segun el bit mas significativo de la salida de dicho segundo multiplexor (252);
    un operador OR (260) conectado a dicho segundo multiplexor (252) y configurado para recibir dicho bit mas significativo de dicha salida de dicho segundo multiplexor (252) y el bit menos significativo de dicha salida de dicho segundo multiplexor;
    un operador AND (270) conectado a dicho tercer multiplexor (254) y a dicho operador OR (260) y configurado para recibir la salida de dicho tercer multiplexor (254) y la salida de dicho operador OR (260); un segundo sumador (222) conectado a dicho operador AND (270) y configurado para sumar la salida de dicho operador AND (270) y una secuencia de bits que tiene 10bin como los dos bits menos significativos precedidos por dicha primera palabra de codigo de color (41, 44, 47);
    un tercer sumador (224) conectado a dicho primer sumador (220) y a dicho segundo sumador (222) y configurado para sumar dicha salida de dicho primer sumador (220) y la salida de dicho segundo sumador (222);
    un primer operador de desplazamiento derecho (230) conectado a dicho tercer sumador (224) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho tercer sumador (224) dos posiciones de bit a la derecha para formar una primera secuencia desplazada a la derecha;
    un segundo operador de desplazamiento derecho (232) conectado a dicho segundo sumador (222) y configurado para desplazar la secuencia de bits correspondiente a dicha salida de dicho segundo sumador (222) dos posiciones de bit a la derecha para formar una segunda secuencia desplazada a la derecha.
  11. 11. El sistema de descodificacion segun cualquiera de las reivindicaciones 6 a 10, en donde dicho primer descodificador (100) comprende:
    un operador de negacion (140) configurado para negar dicha primera palabra de codigo de color (41, 44, 47); un primer sumador (120) conectado a dicho operador de negacion (140) y configurado para sumar dicha segunda palabra de codigo de color (42, 45, 48) y dicha primera palabra de codigo de color negada; un segundo sumador (122) conectado a dicho operador de negacion (140) y configurado para sumar dicha tercera palabra de codigo de color (43, 46, 49) y dicha primera palabra de codigo de color negada; un primer operador de desplazamiento izquierdo (110) conectado a dicho primer sumador (120) y configurado para desplazar una secuencia de bits correspondiente a la salida de dicho primer sumador (120) una posicion de bit a la izquierda para formar una primera secuencia de bits desplazada a la izquierda; un segundo operador de desplazamiento izquierdo (112) conectado a dicho segundo sumador (122) y configurado para desplazar una secuencia de bits correspondiente a la salida de dicho segundo sumador (122) una posicion de bit a la izquierda para formar una segunda secuencia de bits desplazada a la izquierda; un primer multiplexor (150) conectado a dicho primer sumador (120) y a dicho primer operador de desplazamiento izquierdo (110) y configurado para producir una de dicha salida de dicho primer sumador (120) y dicha primera secuencia de bits desplazada a la izquierda segun el bit mas significativo de una coordenada de columna de un texel (30);
    un segundo multiplexor (152) conectado a dicho segundo sumador (122) y a dicho segundo operador de desplazamiento izquierdo (112) y configurado para producir una de dicha salida de dicho segundo sumador (122) y dicha segunda secuencia de bits desplazada a la izquierda segun el bit mas significativo de una coordenada de fila de dicho texel (30);
    un primer operador OR (160) configurado para recibir dicho bit mas significativo de dicha coordenada de columna y dicho bit menos significativo de dicha coordenada de columna;
    un segundo operador OR (162) configurado para recibir dicho bit mas significativo de dicha coordenada de fila y dicho bit menos significativo de dicha coordenada de fila;
    un primer operador AND (170) conectado a dicho primer multiplexor (150) y a dicho primer operador OR (160) y configurado para recibir la salida de dicho primer multiplexor (150) y la salida de dicho primer operador OR (160);
    un segundo operador AND (172) conectado a dicho segundo multiplexor (152) y a dicho segundo operador OR (162) y configurado para recibir la salida de dicho segundo multiplexor (152) y la salida de dicho segundo operador Or (162);
    un tercer sumador (124) conectado a dicho primer operador AND (170) y configurado para sumar la salida de dicho primer operador AND (170) y una secuencia de bits que tiene 10bin como los dos bits menos significativos precedidos por dicha primera palabra de codigo de color (41,44, 47);
    un cuarto sumador (126) conectado a dicho primer sumador (120) y a dicho tercer sumador (124) y configurado para sumar dicha salida de dicho primer sumador (120) y la salida de dicho tercer sumador (124); un quinto sumador (128) conectado a dicho segundo sumador (122) y a dicho segundo operador AND (172) y configurado para sumar dicha salida de dicho segundo sumador (122) y la salida de dicho segundo operador AND (172);
    un sexto sumador (121) conectado a dicho tercer sumador (124) y a dicho segundo operador AND (172) y configurado para sumar dicha salida de dicho tercer sumador (124) y dicha salida de dicho segundo operador AND (172);
    un septimo sumador (123) conectado a dicho cuarto sumador (126) y a dicho segundo operador AND (172) y configurado para sumar dicha salida de dicho cuarto sumador (126) y dicha salida de dicho segundo operador AND (172);
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    un octavo sumador (125) conectado a dicho tercer sumador (124) y a dicho quinto sumador (128) y configurado para sumar dicha salida de dicho tercer sumador (124) y la salida de dicho quinto sumador (128); un noveno sumador (127) conectado a dicho cuarto sumador (126) y a dicho quinto sumador (128) y configurado para sumar dicha salida de dicho cuarto sumador (126) y dicha salida de dicho quinto sumador (128);
    un primer operador de desplazamiento derecho (130) conectado a dicho sexto sumador (121) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho sexto sumador (121) dos posiciones de bit a la derecha para formar una primera secuencia desplazada a la derecha;
    un segundo operador de desplazamiento derecho (132) conectado a dicho septimo sumador (123) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho septimo sumador (123) dos posiciones de bit a la derecha para formar una segunda secuencia desplazada a la derecha; un tercer operador de desplazamiento derecho (134) conectado a dicho octavo sumador (125) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho octavo sumador (125) dos posiciones de bit a la derecha para formar una tercera secuencia desplazada a la derecha; y
    un cuarto operador de desplazamiento derecho (136) conectado a dicho noveno sumador (127) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho noveno sumador (127) dos posiciones de bit a la derecha para formar una cuarta secuencia desplazada a la derecha.
  12. 12. El sistema de descodificacion segun cualquiera de las reivindicaciones 6 a 10, en donde dicho primer descodificador (100) comprende:
    un operador not configurado para negar dicha primera palabra de codigo de color (41, 44, 47); un primer sumador (120) que tiene arrastre establecido en uno conectado a dicho operador not y configurado para sumar dicha segunda palabra de codigo de color (42, 45, 48) y dicha primera palabra de codigo de color negada;
    un segundo sumador (122) que tiene arrastre establecido en uno conectado a dicho operador not y configurado para sumar dicha tercera palabra de codigo de color (43, 46, 49) y dicha primera palabra de codigo de color negada;
    un primer operador de desplazamiento izquierdo (110) conectado a dicho primer sumador (120) y configurado para desplazar una secuencia de bits correspondiente a la salida de dicho primer sumador (120) una posicion de bit a la izquierda para formar una primera secuencia de bits desplazada a la izquierda; un segundo operador de desplazamiento izquierdo (112) conectado a dicho segundo sumador (122) y configurado para desplazar una secuencia de bits correspondiente a la salida de dicho segundo sumador (122) una posicion de bit a la izquierda para formar una segunda secuencia de bits desplazada a la izquierda; un primer multiplexor (150) conectado a dicho primer sumador (120) y a dicho primer operador de desplazamiento izquierdo (110) y configurado para producir una de dicha salida de dicho primer sumador (120) y dicha primera secuencia de bits desplazada a la izquierda segun el bit mas significativo de una coordenada de columna de un texel (30);
    un segundo multiplexor (152) conectado a dicho segundo sumador (122) y a dicho segundo operador de desplazamiento izquierdo (112) y configurado para producir una de dicha salida de dicho segundo sumador (122) y dicha segunda secuencia de bits desplazada a la izquierda segun el bit mas significativo de una coordenada de fila de dicho texel (30);
    un primer operador OR (160) configurado para recibir dicho bit mas significativo de dicha coordenada de columna y dicho bit menos significativo de dicha coordenada de columna;
    un segundo operador OR (162) configurado para recibir dicho bit mas significativo de dicha coordenada de fila y dicho bit menos significativo de dicha coordenada de fila;
    un primer operador AND (170) conectado a dicho primer multiplexor (150) y a dicho primer operador OR (160) y configurado para recibir la salida de dicho primer multiplexor (150) y la salida de dicho primer operador OR (160);
    un segundo operador AND (172) conectado a dicho segundo multiplexor (152) y a dicho segundo operador OR (162) y configurado para recibir la salida de dicho segundo multiplexor (152) y la salida de dicho segundo operador Or (162);
    un tercer sumador (124) conectado a dicho primer operador AND (170) y configurado para sumar la salida de dicho primer operador AND (170) y una secuencia de bits que tiene 10bin como los dos bits menos significativos precedidos por dicha primera palabra de codigo de color (41,44, 47);
    un cuarto sumador (126) conectado a dicho primer sumador (120) y a dicho tercer sumador (124) y configurado para sumar dicha salida de dicho primer sumador (120) y la salida de dicho tercer sumador (124); un quinto sumador (128) conectado a dicho segundo sumador (122) y a dicho segundo operador AND (172) y configurado para sumar dicha salida de dicho segundo sumador (122) y la salida de dicho segundo operador AND (172);
    un sexto sumador (121) conectado a dicho tercer sumador (124) y a dicho segundo operador AND (172) y configurado para sumar dicha salida de dicho tercer sumador (124) y dicha salida de dicho segundo operador AND (172);
    un septimo sumador (123) conectado a dicho cuarto sumador (126) y a dicho segundo operador AND (172) y configurado para sumar dicha salida de dicho cuarto sumador (126) y dicha salida de dicho segundo operador AND (172);
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    un octavo sumador (125) conectado a dicho tercer sumador (124) y a dicho quinto sumador (128) y configurado para sumar dicha salida de dicho tercer sumador (124) y la salida de dicho quinto sumador (128); un noveno sumador (127) conectado a dicho cuarto sumador (126) y a dicho quinto sumador (128) y configurado para sumar dicha salida de dicho cuarto sumador (126) y dicha salida de dicho quinto sumador (128);
    un primer operador de desplazamiento derecho (130) conectado a dicho sexto sumador (121) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho sexto sumador (121) dos posiciones de bit a la derecha para formar una primera secuencia desplazada a la derecha;
    un segundo operador de desplazamiento derecho (132) conectado a dicho septimo sumador (123) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho septimo sumador (123) dos posiciones de bit a la derecha para formar una segunda secuencia desplazada a la derecha; un tercer operador de desplazamiento derecho (134) conectado a dicho octavo sumador (125) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho octavo sumador (125) dos posiciones de bit a la derecha para formar una tercera secuencia desplazada a la derecha; y
    un cuarto operador de desplazamiento derecho (136) conectado a dicho noveno sumador (127) y configurado para desplazar la secuencia de bits correspondiente a la salida de dicho noveno sumador (127) dos posiciones de bit a la derecha para formar una cuarta secuencia desplazada a la derecha.
  13. 13. El sistema de descodificacion segun cualquiera de las reivindicaciones 6 a 12, en donde dicho selector de valor (500) comprende:
    un primer multiplexor (510) conectado a dicho primer descodificador (100) y configurado para producir un primer valor de texel;
    un segundo multiplexor (520) conectado a dicho primer descodificador (100) y a dicho segundo descodificador (200) y configurado para producir un segundo valor de texel;
    un tercer multiplexor (530) conectado a dicho primer descodificador (100), a dicho segundo descodificador (200) y a dicho tercer descodificador (300) y configurado para producir un tercer valor de texel; y un cuarto multiplexor (540) conectado a dicho primer descodificador (100), a dicho segundo descodificador (200) y a dicho cuarto descodificador (400) y configurado para producir un cuarto valor de texel.
  14. 14. Un metodo para generar un pixel descodificado descodificando al menos N texeles (30-36) de al menos un bloque texel codificado (40), siendo N un numero mas grande que 1, dicho metodo comprende:
    producir, de manera selectiva, al menos N valores de texel asociados a dichos al menos N texeles (30-36) de al menos uno de N descodificadores diferentes (100, 200, 300, 400), cada uno de los cuales tiene un circuito que tiene un nivel de complejidad que es diferente del nivel de complejidad de los circuitos de los otros N - 1 descodificadores y cada uno de los cuales se configura para descodificar un bloque texel codificado (40) para generar al menos un valor texel respectivo, segun las posiciones de los al menos N valores de texeles (30-36) respecto a un llmite de un bloque texel (10) que comprende al menos uno de dichos al menos N texeles (3036); y
    calcular un valor de pixel descodificado de dicho pixel descodificado segun dichos al menos N valores de texel.
  15. 15. El metodo segun la reivindicacion 14, en donde dicha produccion selectiva comprende producir, de forma selectiva, N valores de texel a partir de un primer descodificador (100) de dichos N descodificadores (100, 200, 300, 400) si los N texeles (30-36) asociados a dichos N valores de texel se posicionan dentro de dicho llmite de un bloque texel (10).
  16. 16. El metodo segun la reivindicacion 14 o 15, en donde dicha produccion selectiva comprende producir, de forma selectiva, una mitad de N valores de texel a partir de un primer descodificador (100) de dichos N descodificadores (100, 200, 300, 400) y una mitad restante de dichos N valores de texel a partir de un segundo descodificador (200) de dichos N descodificadores (100, 200, 300, 400) si la mitad de los N texeles (30-36) asociados a dichos N valores de texel se posiciona dentro de dicho llmite de dicho bloque texel (10) y la mitad de dichos N texeles (30-36) se posiciona dentro del llmite de un bloque texel vecino (12, 14).
  17. 17. El metodo segun cualquiera de las reivindicaciones 14 a 16, en donde N es igual a cuatro y dicha produccion selectiva comprende producir, de forma selectiva, un primer valor de texel de dichos cuatro valores de texel a partir de un primer descodificador (100) de dichos cuatro descodificadores (100, 200, 300, 400), un segundo valor de texel de dichos cuatro valores de texel a partir de un segundo descodificador (200) de dichos cuatro descodificadores (100, 200, 300, 400), un tercer valor de texel de dichos cuatro valores de texel a partir de un tercer descodificador (300) de dichos cuatro descodificadores (100, 200, 300, 400) y un cuarto valor de texel de dichos cuatro valores de texel a partir de un cuarto descodificador (400) de dichos cuatro descodificadores (100, 200, 300, 400) si uno de dichos cuatro texeles (30-36) se posiciona dentro de dicho limite de dicho bloque texel (10) y cada uno de los tres texeles restantes se posiciona dentro del limite de un bloque texel vecino (12, 14, 16) respectivo.
ES10833652.0T 2009-11-24 2010-02-24 Sistema y método de descodificación utilizable en bloques de elementos de textura codificada Active ES2635540T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US263922P 2001-01-24
US26392209P 2009-11-24 2009-11-24
US26631609P 2009-12-03 2009-12-03
US266316P 2009-12-03
PCT/SE2010/050217 WO2011065886A1 (en) 2009-11-24 2010-02-24 Decoding system and method operable on encoded texture element blocks

Publications (1)

Publication Number Publication Date
ES2635540T3 true ES2635540T3 (es) 2017-10-04

Family

ID=44066774

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10833652.0T Active ES2635540T3 (es) 2009-11-24 2010-02-24 Sistema y método de descodificación utilizable en bloques de elementos de textura codificada

Country Status (11)

Country Link
US (1) US8655063B2 (es)
EP (1) EP2504814B1 (es)
JP (1) JP2013512482A (es)
KR (1) KR101709822B1 (es)
CN (1) CN102687175B (es)
BR (1) BR112012012273B1 (es)
DK (1) DK2504814T3 (es)
ES (1) ES2635540T3 (es)
PL (1) PL2504814T3 (es)
RU (1) RU2510939C2 (es)
WO (1) WO2011065886A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2729917A4 (en) 2011-07-08 2016-03-30 Ericsson Telefon Ab L M MULTI-MODE PROCESSING OF TEXTURE BLOCKS
US10148972B2 (en) * 2016-01-08 2018-12-04 Futurewei Technologies, Inc. JPEG image to compressed GPU texture transcoder
US10055810B2 (en) * 2016-03-04 2018-08-21 Samsung Electronics Co., Ltd. Cache architecture for efficiently accessing texture data using buffers
GB2584764B (en) * 2017-04-28 2021-12-29 Imagination Tech Ltd Decoder unit for texture decompression
GB2562041B (en) * 2017-04-28 2020-11-25 Imagination Tech Ltd Multi-output decoder for texture decompression
US11244492B2 (en) * 2018-11-02 2022-02-08 Facebook Technologies, Llc. Parallel texture sampling

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
US5956431A (en) 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
JPH11341496A (ja) * 1998-05-28 1999-12-10 Matsushita Electric Ind Co Ltd 画像処理方法,画像処理装置,及びデータ記憶媒体
DE19917092A1 (de) * 1999-04-15 2000-10-26 Sp3D Chip Design Gmbh Verfahren zur Rasterisierung eines Graphikgrundelements
US6968006B1 (en) * 2001-06-05 2005-11-22 At&T Corp. Method of content adaptive video decoding
SE0401852D0 (sv) * 2003-12-19 2004-07-08 Ericsson Telefon Ab L M Image processing
SE0401850D0 (sv) * 2003-12-19 2004-07-08 Ericsson Telefon Ab L M Image processing
SE526226C2 (sv) * 2003-12-19 2005-08-02 Ericsson Telefon Ab L M Bildbehandling
CA2572967C (en) 2004-07-08 2012-10-16 Telefonaktiebolaget L M Ericsson (Publ) Multi-mode image processing
EP1886277B1 (en) 2005-05-27 2016-02-17 Telefonaktiebolaget LM Ericsson (publ) Weight based image processing
EP1977605B1 (en) * 2006-01-23 2020-04-15 Telefonaktiebolaget LM Ericsson (publ) Image processing
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
JP5296535B2 (ja) * 2006-05-24 2013-09-25 パナソニック株式会社 画像復号装置
US7890750B2 (en) * 2006-07-06 2011-02-15 Accenture Global Services Limited Encryption and decryption on a graphics processing unit
US9967590B2 (en) * 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter

Also Published As

Publication number Publication date
WO2011065886A1 (en) 2011-06-03
CN102687175B (zh) 2015-02-04
US8655063B2 (en) 2014-02-18
US20120281915A1 (en) 2012-11-08
CN102687175A (zh) 2012-09-19
PL2504814T3 (pl) 2017-10-31
EP2504814B1 (en) 2017-05-03
RU2510939C2 (ru) 2014-04-10
DK2504814T3 (en) 2017-08-21
KR101709822B1 (ko) 2017-02-23
WO2011065886A8 (en) 2012-07-19
EP2504814A4 (en) 2016-04-06
BR112012012273B1 (pt) 2020-11-03
EP2504814A1 (en) 2012-10-03
KR20120097515A (ko) 2012-09-04
BR112012012273A2 (pt) 2018-04-17
JP2013512482A (ja) 2013-04-11
RU2012126120A (ru) 2013-12-27

Similar Documents

Publication Publication Date Title
ES2635540T3 (es) Sistema y método de descodificación utilizable en bloques de elementos de textura codificada
ES2277086T3 (es) Metodo y aparato para codificar informacion de texturas.
ES2569419T3 (es) Procesamiento de imágenes basado en peso
US8761528B2 (en) Compression of image data
EP2854108B1 (en) Anti-aliasing for graphics hardware
US9159114B2 (en) Texture decompression for graphics processors
JP2012053895A (ja) デプスエンジンの動的な再配置を用いたグラフィックシステム
TWI517089B (zh) 色彩緩衝器快取技術
WO2017222633A1 (en) Image rotation method and apparatus
EP2797049B1 (en) Color buffer compression
EP2327058A1 (en) Pixel block processing
US20180097527A1 (en) 32-bit hdr pixel format with optimum precision
US11263786B2 (en) Decoding data arrays
JP7490029B2 (ja) 動画レンダリング方法、装置、電子機器及び記憶媒体
US9129543B2 (en) Texture compression and decompression
EP2652707A1 (en) Tile encoding and decoding
US9171523B2 (en) GPU-accelerated, two-pass colorspace conversion using multiple simultaneous render targets
CN113496530A (zh) 对数据阵列进行编码
Russell HDR Image-Based Lighting on the Web
CN116934952A (zh) 头发渲染方法及装置、计算机存储介质、电子设备