BRPI0417576B1 - "método e sistema para comprimir um bloco de imagem, para codificar uma imagem, para processar uma representação comprimida de um bloco de imagem, e para decodificar uma imagem codificada, e, representação de sinal de um bloco de imagem". - Google Patents

"método e sistema para comprimir um bloco de imagem, para codificar uma imagem, para processar uma representação comprimida de um bloco de imagem, e para decodificar uma imagem codificada, e, representação de sinal de um bloco de imagem". Download PDF

Info

Publication number
BRPI0417576B1
BRPI0417576B1 BRPI0417576A BRPI0417576A BRPI0417576B1 BR PI0417576 B1 BRPI0417576 B1 BR PI0417576B1 BR PI0417576 A BRPI0417576 A BR PI0417576A BR PI0417576 A BRPI0417576 A BR PI0417576A BR PI0417576 B1 BRPI0417576 B1 BR PI0417576B1
Authority
BR
Brazil
Prior art keywords
intensity
color
representation
image
modifier
Prior art date
Application number
BRPI0417576A
Other languages
English (en)
Inventor
Ström Jacob
Akenine-Möller Tomas
Original Assignee
ERICSSON TELEFON AB L M (publ)
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 ERICSSON TELEFON AB L M (publ) filed Critical ERICSSON TELEFON AB L M (publ)
Publication of BRPI0417576A publication Critical patent/BRPI0417576A/pt
Publication of BRPI0417576B1 publication Critical patent/BRPI0417576B1/pt

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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/98Adaptive-dynamic-range coding [ADRC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Color Television Systems (AREA)
  • Image Processing (AREA)

Abstract

"método e sistema para comprimir um bloco de imagem, para codificar uma imagem, para processar uma representação comprimida de um bloco de imagem, e para decodificar uma imagem codificada, e, representação de sinal de um bloco de imagem". em um esquema de codificação de imagem, um imagem de entrada é decomposta em vários blocos de imagem (600) compreendendo múltiplos elementos de imagem (610), por exemplo pixéis ou texéis. os blocos de imagem (600) são então codificados em representações de bloco codificadas (700). tal representação de bloco (700) compreende uma palavra-código de cor (710), uma palavra-código de intensidade (720) e uma seqüência (730) de representações de intensidade. a palavra-código de cor (710) é uma representação das cores dos elementos de imagem (610) do bloco (600). a palavra-código de intensidade (720) é uma representação de um conjunto de múltiplos modificadores de intensidade para modificar a intensidade dos elementos de imagem (610) no bloco (600). a seqüência de representação (730) compreende uma representação de intensidade para cada elemento de imagem (610) no bloco (600), onde uma representação identifica um de modificadores de intensidade no conjunto de modificadores de intensidade. durante decodificação, as palavras-código de cor e intensidade (710, 720) e representações de intensidade (730) são usadas para gerar uma representação decodificada dos elementos de imagem (610) no bloco (600).

Description

“MÉTODO E SISTEMA PARA COMPRIMIR UM BLOCO DE IMAGEM, PARA CODIFICAR UMA IMAGEM, PARA PROCESSAR UMA REPRESENTAÇÃO COMPRIMIDA DE UM BLOCO DE IMAGEM, E PARA DECODIFICAR UMA IMAGEM CODIFICADA, E, REPRESENTAÇÃO DE SINAL DE UM BLOCO DE IMAGEM” CAMPO TÉCNICO A presente invenção se refere geralmente a processamento de imagem, e em particular a métodos e sistemas para codificar e decodificar imagens.
FUNDAMENTO
Apresentação e representação de imagens e gráficos em sistemas de processamento de dados e terminais de usuário, tais como computadores, e em particular em terminais móveis, aumentou tremendamente nos últimos anos. Por exemplo, gráficos e imagens tridimensionais (3D) têm várias aplicações atraentes em tais terminais, incluindo jogos, mapas 3D e transmissão de mensagem, protetores de tela e interfaces de homem-máquina.
Um processo de representação de gráficos 3D compreende tipicamente três sub-fases. Brevemente, uma primeira fase, a fase de aplicação, cria vários triângulos. Os cantos destes triângulos são transformados, projetados e iluminados em uma segunda fase, a fase de geometria. Em uma terceira fase, a fase de quadriculação, imagens, freqüentemente denotadas texturas, podem ser "coladas", sobre os triângulos, aumentando o realismo da imagem representada. A terceira fase também executa classificação usando uma memória temporária z.
Porém, representação de imagens e texturas, e em particular imagens e gráficos 3D, é uma tarefa computacionalmente cara em termos de largura de banda de memória e potência de processamento requeridas para os sistemas gráficos. Por exemplo, texturas são caras ambos em termos de memória, as texturas devem ser colocadas em memória em chip rápida, e em termos de largura de banda de memória, uma textura pode ser acessada várias vezes para extrair um único pixel. A fim de reduzir os requisitos de largura de banda e potência de processamento, um método ou sistema para codificar uma imagem (textura) é empregado tipicamente. Tal sistema de codificação deveria resultar em uso mais eficiente de memória em chip cara e largura de banda de memória mais baixa durante representação e, assim, em consumo de energia mais baixo e/ou representação mais rápida. Esta redução em requisitos de largura de banda e potência de processamento é particularmente importante para clientes finos, tais como unidades e telefones móveis, com uma pequena quantidade de memória, pouca largura de banda de memória e potência limitada (energizados por baterias).
Delp e Mitchell [1] descrevem um esquema simples, chamado codificação de truncamento de bloco (BTC), para codificação de imagem. Seu esquema codifica imagens em escala de cinza considerando um bloco de 4 pixéis x 4 pixéis de cada vez. Para cada tal bloco, dois valores de escala de cinza de 8 bits são gerados e cada pixel no bloco então usa um único bit para indexar uma destas escalas de cinza. Isto resulta em uma taxa de compressão de 2 bits por pixel (bpp). Porém, BTC sofre de produção de artefatos, acima de tudo em regiões ao redor de bordas e em áreas de baixo contraste contendo um nível de cinza declinante. Além disso, bordas em uma imagem de escala de cinza processadas por BTC têm uma tendência a serem rugosas.
Uma extensão simples de BTC, chamada compressão de célula de cor (CCC), foi apresentada por Campbell e outros [2], Em vez de usar dois valores de escala de cinza de 8 bits para cada bloco de imagem, dois valores de 8 bits são empregados como índices em uma palheta de cores. Esta palheta compreende 256 cores representadas por 8 bits para cada do componente R, G e B, Um índice de 8 bits então aponta a uma cor (24 bits) na palheta. Isto permite compressão de imagens a 2 bpp. Porém, isto requer uma consulta de memória na palheta. Além disso, a palheta é restrita em tamanho. O esquema de CCC também introduz grandes "recortes" de cor e codifica pobremente o caso onde mais que duas cores existem em um bloco de imagem.
Em uma descrição de patente [3], Iourcha e outros, expõem um esquema de compressão de textura chamado S3TC (Compressão de Textura S3) ou DXTC (Compressão de Textura DirectX), que pode ser visto como uma extensão de CCC. Uma imagem é decomposta em vários blocos de imagem de 4 pixéis x 4 pixéis. Cada tal bloco de imagem é codificado em uma seqüência de bits de 64 bits, assim resultando em uma taxa de compressão de 4 bpp. A seqüência de 64 bits compreende duas cores básicas ou palavras-código de cor (16 bits cada) e uma seqüência de 32 bits de índices de 2 bits, um índice para cada pixel no bloco de imagem. Durante decodificação, uma palheta de quatro cores é gerada. As primeiras duas cores de RGB (vermelho, verde e azul) da palheta correspondem às duas cores básicas (palavras-código). As duas cores adicionais, situadas entre as cores básicas no espaço de RGB, são então interpoladas delas. Cada índice de 2 bits então identifica, para cada pixel, uma das quatro cores da palheta ao usar para aquele pixel.
Embora o esquema de S3TC funcione bastante bem para terminais de computador, não é bem adaptado para unidades móveis e outros clientes finos. Tais unidades móveis tipicamente só têm barramentos de memória de 16 ou 32 bits quando muito. Assim, pelo menos dois, e possivelmente até quatro, acessos de memória são requeridos para ler a versão comprimida de 64 bits de um bloco de imagem, se S3TC for implementado em uma unidade móvel. Além disso, durante a interpolação das duas cores adicionais da palheta de cor, multiplicação por 1/3 e 2/3 é executada, que não é ideal em hardware. A compressão usando S3TC também é relativamente demorada, pelo menos em um terminal móvel.
Akenine-Mõller e Strõm [4] desenvolveram uma variante de S3TC, chamada POOMA, que é visada especificamente para telefones móveis. Em POOMA, um bloco de imagem de 3 pixéis x 2 pixéis é codificado em 32 bits, dando 5,33 bpp. A representação de 32 bits codificada de um bloco de imagem é adaptada para os barramentos de memória de telefones móveis, que tipicamente são 32 bits quando muito. Assim, um pixel pode ser representado usando só um acesso de memória comparado a dois acessos para S3TC. POOMA usa duas cores básicas, mas só uma cor adicional interpolada entre as cores básicas, resultando em uma palheta de cor de três cores.
Uma desvantagem principal de POOMA é o tamanho de bloco de 3 x 2 pixéis. Como resultado, cálculo do endereço de bloco para um pixel ou texel (elemento de textura) particular requer divisão por 3, que não é ideal para projeto de hardware. Além disso, as larguras e alturas de texturas (imagens) em gráficos são tipicamente sempre uma potência de dois, que significa que uma largura de bloco de 3 é inconveniente. Como para S3TC, a codificação usando POOMA é relativamente demorada, em particular quando implementada em um terminal móvel.
Fenny [5] expõe um esquema de codificação de imagem usado na plataforma de hardware de gráfico de MBX para telefones móveis. Este esquema usa duas imagens de baixa resolução, onde uma imagem normalmente é uma versão filtrada em passa-baixa da imagem original. Durante decodificação, uma ampliação bi-linear (ampliação) destas duas imagens é criada. Cada pixel também armazena um fator de mistura entre estas duas imagens ampliadas. 64 bits são usados para codificar cada bloco de imagem e uma taxa de compressão de 2 bpp e 4 bpp são descritas. Informação de blocos de imagem vizinhos é precisada, que complica decodificação.
SUMÁRIO A presente invenção supera estas e outras desvantagens dos arranjos da arte anterior. É um objetivo geral da presente invenção prover um processamento de imagem eficiente. É outro objetivo da invenção prover uma codificação de imagem e decodificação de imagem eficiente.
Ainda outro objetivo da invenção é prover codificação e decodificação de imagem adaptadas para uso em clientes finos com capacidade de baixa memória e largura de banda de memória.
Um objetivo adicional da invenção é prover codificação e decodificação de imagem adaptadas para gráficos e imagens tridimensionais (3D).
Estes e outros objetos são cumpridos pela invenção como definida pelas reivindicações de patente acompanhantes.
Brevemente, a presente invenção envolve processamento de imagem na forma de codificar (comprimir) uma imagem e decodificar (descomprimir) uma imagem codificada (comprimida).
De acordo com a invenção, uma imagem a ser codificada é decomposta em vários blocos de imagem compreendendo múltiplos elementos de imagem (pixéis ou elementos de textura, texéis). Um bloco de imagem preferivelmente compreende oito elementos de imagem e tem um tamanho de 2m x 2n elementos de imagem, onde m = 3-n e n = 0, .1, 2,3. Cada elemento de imagem em um bloco é caracterizado por uma cor, por exemplo, uma cor de RGB de 12 bits (vermelho, verde, azul). Os blocos de imagem são então codificados.
Nesta codificação de bloco sem perdas, uma palavra-código de cor é determinada para o bloco de imagem. A palavra-código de cor é uma representação das cores dos elementos de imagem do bloco de imagem. Uma representação preferida é um valor médio das cores dos elementos de imagem em bloco, quantizado em 12 bits (4 bits para cada um dos três componentes de cor para uma cor de RGB). Assim, uma e a mesma palavra-código de cor (isto é, representação de cor) é gerada para um bloco de ímagem, isto é, para todos os elementos de imagem do bloco de imagem. Depois disso, uma palavra-código de intensidade é provida para o bloco de imagem. Esta palavra-código de intensidade é uma representação de um conjunto de múltiplos modificadores de intensidade que são usados (durante decodificação) para modificar ou modular a intensidade dos elementos de imagem no bloco de imagem. Uma vez que a palavra-código de intensidade seja provida, representações de intensidade para os elementos de imagem no bloco de imagem são selecionadas. Cada tal representação de intensidade é associada com um modificador de intensidade do conjunto de modificadores de intensidade. Em outras palavras, a representação de intensidade permite a identificação de qual modificador de intensidade do conjunto usar para um elemento de imagem específico para o bloco. O bloco de imagem codificado resultante então compreende a palavra-código de cor, preferivelmente 12 bits, a palavra-código de intensidade, preferivelmente 4 bits, e uma seqüência das representações de intensidade, preferivelmente 8x2=16 bits. O tamanho resultante de um bloco de imagem codificado é, assim, só 32 bits e uma taxa de compressão de 4 bits por pixel (elemento de imagem) é obtida. Este pequeno tamanho de 32 bits é bem adaptado para clientes finos, tais como unidades móveis e telefones, que tipicamente têm barramentos de memória de 16 ou 32 bits. Como resultado, só um ou na pior das hipóteses dois acessos de memória são então precisados para ler o bloco de imagem codificado de um local de memória.
Em uma concretização preferida da invenção, a palavra-código de intensidade é um índice de intensidade permitindo a identificação de um conjunto de modifícadores de intensidade. Este índice podería então identificar ou apontar para o conjunto em uraa tabela ou lista de códigos compreendendo vários conjuntos de modifícadores de intensidade diferentes. Cada conjunto preferivelmente compreende quatro valores (matematicamente) de modifícadores complementares. Em tal caso, os conjuntos de modifícadores armazenados na tabela só têm que compreender dois valores de modificador de intensidade diferentes cada um e então os outros dois valores (complementares) do conjunto poderíam ser calculados deles. Além disso, a tabela de intensidade preferivelmente compreende ambos os conjuntos que compreendem valores de modificador de intensidade pequenos, que são adaptados para permitir a representação de superfícies suavemente variáveis, e conjuntos que compreendem grandes valores de modificador de intensidade, que são adaptados para permitir a representação de bordas nítidas.
Durante decodificação, os blocos de imagem codificados que deveríam ser decodificados, são identificados e buscados por exemplo de um local de memória. Uma vez que o bloco de imagem codificado correto seja identificado, um conjunto de modifícadores de intensidade é provido. Este conjunto de modifícadores é provido baseado na palavra-código de intensidade no bloco de imagem codificado. Esta provisão é preferivelmente executada identificando, por meio da palavra-código de intensidade, um conjunto de modifícadores de intensidade de uma tabela de intensidade compreendendo múltiplos conjuntos de modifícadores.
Depois disso, uma representação de cor é gerada para pelo menos um dos elementos de imagem do bloco de imagem. Esta geração de cor é executada baseado na palavra-código de cor na representação de bloco codificada. O modificador de intensidade a usar para o elemento de imagem que deveria ser decodificado, é então selecionado. O valor de modificador é selecionado do conjunto de modificadores providos baseado na representação de intensidade associada com o elemento de imagem e achada na seqüência de representação do bloco de imagem codificado. Uma vez que o valor de modificador de intensidade correto seja selecionado, a intensidade do elemento de imagem é modificada com este valor. A seleção de modificador de intensidade e modificação da intensidade são executadas preferivelmente para todos os elementos de imagem que deveríam ser decodificados no bloco de imagem codificado atual. A decodificação de bloco é então preferivelmente repetida para todos os blocos de imagem que compreendem elementos de imagem que deveríam ser decodificados. Depois disso, uma representação decodificada de uma imagem original, ou uma porção dela, pode ser gerada baseado nos elementos e blocos de imagem decodificados. A representação de cor é preferivelmente gerada expandindo os três componentes de cor de 4 bits da palavra código de cor em três componentes de 8 bits. A cor de 24 bits resultantes é então designada aos elementos de imagem do bloco de imagem que é para ser decodificado. A intensidade dos elementos de imagem é preferivelmente modificada adicionando ou multiplicando o modificador de intensidade para cada componente de cor, ou cada componente de cor é modulado caso contrário com o modificador de intensidade. Depois disso, os componentes de cor modificados em intensidade resultantes são limitados entre um valor de limiar mínimo e máximo. A codificação e decodificação de imagem da invenção pode ser aplicada a vários tipos diferentes de imagens, incluindo imagens "sintéticas" 1D, 2D e 3D, fotografias, texto, jogos, mapas e cenas 3D, mensagens 3D, por exemplo, mensagens animadas, protetores de tela, interfaces de homem-máquina (MMIs), etc.
Devido ao pequeno tamanho (32 bits) de um bloco de imagem codificado, a invenção é bem adaptada para clientes finos com capacidade e largura de banda de memória limitadas. Além disso, a codificação é muito rápida de forma que pode ser executada também em terminais com baixas freqüências de referência de tempo. Além disso, a decodificação pode ser implementada extremamente simplesmente em por exemplo, hardware usando poucos componentes padrão. A invenção oferece as vantagens seguintes: Bem adaptada para casar com o sistema visual humano, desde que o componente de luminância é preservado melhor do que os componentes de crominância; Dá alta qualidade (relação de sinal/ruído de pico) para tipos de imagem diferentes;
Implementação de hardware de decodificação é extremamente simples; Codificação é muito rápida, que habilita implementações também em terminais com baixas freqüências de referência de tempo;
Codificação exaustiva é possível a velocidade pratica em um computador; e Dados de imagem codificados têm um tamanho que é adequado para clientes finos com capacidade de largura de banda de memória limitadas.
Outras vantagens oferecidas pela presente invenção serão apreciadas na leitura da descrição abaixo das concretizações da invenção.
BREVE DESCRIÇÃO DOS DESENHOS A invenção junto com objetivos e vantagens adicionais dela, pode ser melhor entendida fazendo referência à descrição seguinte tomada junto com os desenhos acompanhantes, em que: Figura 1 é um fluxograma ilustrando um método de codificação de imagem de acordo com a presente invenção;
Figura 2 ilustra uma concretização de um bloco de imagem de acordo com a presente invenção;
Figura 3 ilustra outra concretização de um bloco de imagem de acordo com a presente invenção;
Figura 4 ilustra uma concretização de uma representação codificada de um bloco de imagem de acordo com a presente invenção;
Figura 5 é um fluxograma ilustrando a etapa de determinação de palavra-código de cor da Figura 1 em mais detalhe;
Figura 6 é um fluxograma ilustrando a etapa de provisão de palavra-código de intensidade e a etapa de seleção de representação de intensidade da Figura 1 em mais detalhe;
Figura 7 é um fluxograma ilustrando um método de decodifícação de imagem de acordo com a presente invenção;
Figura 8 é um fluxograma ilustrando as etapas de prover conjunto de modificadores de intensidade e gerar representação de cor da Figura 7 em mais detalhe;
Figura 9 é um fluxograma ilustrando a etapa de modificação de intensidade da Figura 7 em mais detalhe;
Figura 10 ilustra esquematicamente um exemplo de um terminal de usuário com um codificador e decodificador de imagem de acordo com a presente invenção;
Figura 11 é um diagrama de bloco ilustrando esquematicamente uma concretização de um codificador de imagem de acordo com a presente invenção;
Figura 12 é um diagrama de bloco ilustrando esquematicamente outra concretização de um codificador de imagem de acordo com a presente invenção;
Figura 13 é um diagrama de bloco ilustrando esquematicamente uma concretização de um codificador de bloco de acordo com a presente invenção;
Figura 14 é um diagrama de bloco ilustrando esquematicamente outra concretização de um codificador de bloco de acordo com a presente invenção;
Figura 15 é um diagrama de bloco ilustrando esquematicamente o quantizador de cor do codificador de bloco das Figuras 13 e 14 em mais detalhe;
Figura 16 é um diagrama de bloco ilustrando esquematicamente uma concretização de um decodificador de imagem de acordo com a presente invenção;
Figura 17 é um diagrama de bloco ilustrando esquematicamente outra concretização de um decodificador de imagem de acordo com a presente invenção;
Figura 18 é um diagrama de bloco ilustrando esquematicamente uma concretização de um decodificador de bloco de acordo com a presente invenção;
Figura 19 é um diagrama de bloco de hardware ilustrando esquematicamente uma concretização de um decodificador de bloco de acordo com a presente invenção;
Figura 20 é um diagrama de bloco de hardware ilustrando uma concretização dos extensores de bit da Figura 19 em mais detalhe;
Figura 21 é um diagrama de bloco de hardware ilustrando uma concretização da tabela de consulta da Figura 19 em mais detalhe; e Figura 22 é um diagrama de bloco de hardware ilustrando uma concretização dos limitadores da Figura 19 em mais detalhe.
DESCRIÇÃO DETALHADA
Ao longo dos desenhos, os mesmos caracteres de referência serão usados para elementos correspondentes ou semelhantes. A presente invenção relaciona-se a um processamento de imagem e gráfico, e em particular a codificar ou comprimir imagens e decodificar ou descomprimir imagens codificadas (comprimidas).
Geralmente, de acordo com a invenção, durante codificação de imagem, uma imagem é decomposta ou dividida em vários blocos de imagem. Cada tal bloco de imagem então compreende múltiplos elementos de imagem tendo, entre outros, uma certa cor. Os blocos de imagem são então codificados para gerar uma representação codificada da imagem.
Quando uma imagem codificada ou primitivo gráfico subseqüentemente é para ser representado, por exemplo, exibido em uma tela, os elementos de imagem pertinentes dos blocos de imagem codificados são identificados e decodificados. Estes elementos de imagem decodificados são então usados para gerar uma representação decodificada da imagem original ou primitivo de gráfico. A presente invenção é bem adaptada para uso com gráficos tridimensionais (3D), tais como jogos, mapas e cenas 3D, mensagens 3D, por exemplo, mensagens animadas, protetores de tela, interfaces de homem-máquina (MMIs), etc., mas não está limitada a isso. Assim, a invenção também poderia ser empregada para codificar outros tipos de imagens ou gráficos, por exemplo, imagens unidimensionais (1D) ou bidimensionais (2D).
Em processamento de gráficos 3D, tipicamente vários triângulos são criados e as coordenadas de tela correspondentes dos cantos destes triângulos são determinadas. Sobre cada triângulo, uma imagem (ou porção de uma imagem), ou uma denominada textura, é mapeada ("colada"). A administração de texturas é, entretanto, cara para um sistema gráfico, ambos em termos de memória utilizada para armazenamento de texturas e em termos de largura de banda de memória durante acessos de memória, quando texturas são buscadas da memória. Isto é um problema particularmente para clientes finos, tais como unidades móveis e telefones, com largura de banda e capacidade de memória limitadas. Como conseqüência, um esquema de codificação de textura ou imagem é freqüentemente empregado. Em tal esquema, uma textura é tipicamente decomposta ou dividida em vários blocos de imagem compreendendo múltiplos texéis. Os blocos de imagem são então codificados e armazenados em uma memória. Note que o tamanho de um bloco de imagem codificado (versão de um) é menor do que o tamanho correspondente da versão não codificada do bloco de imagem.
Na presente invenção a expressão "elemento de imagem" se refere a um elemento em um bloco de imagem ou representação codificada de um bloco de imagem. Este bloco de imagem, por sua vez, corresponde a uma porção de uma imagem ou textura. Assim, de acordo com a invenção, um elemento de imagem poderia ser um texel (elemento de textura) de uma textura (1D, 2D ou 3D) ou um pixel de uma imagem (1D, 2D ou 3D). Geralmente, um elemento de imagem é caracterizado por certas propriedades de elemento de imagem, tal como um valor de cor. Além disso, no seguinte, o termo "imagem" é usado para denotar qualquer imagem ou textura 1D, 2D ou 3D que possa ser codificada e decodificada por meio da presente invenção, incluindo, mas não limitada, a fotografias, texturas de tipo de jogo, texto, desenhos, etc.
Figura 1 ilustra um método (sem perdas) de codificar uma imagem de acordo com a presente invenção. Em uma primeira etapa Sl, a imagem é decomposta ou dividida em vários blocos de imagem. Cada tal bloco de imagem então compreende múltiplos elementos de imagem. Em uma concretização preferida da invenção, um bloco de imagem compreende oito elementos de imagem (pixéis ou texéis) e tem um tamanho de 2m x 2n elementos de imagem, onde m = 3-n e n = 0,1,2, 3. Mais preferivelmente, n é 1 ou 2. Figuras 2 e 3 ilustram esquematicamente dois exemplos de um bloco de imagem 600 com oito elementos de imagem 610 de acordo com a presente invenção. Na Figura 2, a altura são dois elementos de imagem 610 e a largura são quatro elementos de imagem 610, isto é, m = 1 e n = 2, enquanto para o bloco de imagem 600 na Figura 3, m = 2 e n = 1. Retomando à Figura 1, o bloco de imagem inteiro é preferivelmente decomposto em blocos de imagem (não sobrepostos) na etapa Sl. Porém, em algumas aplicações, só uma porção de uma imagem é codificada e, assim, só esta porção é decomposta em blocos de imagem.
As etapas seguintes S2 a S4 executam uma codificação ou compressão dos blocos de imagem. Primeiramente, na etapa S2, uma palavra-código de cor é determinada para um bloco de imagem. Esta palavra-código de cor é uma representação das cores dos elementos de imagem no bloco de imagem. Em uma concretização preferida, a palavra-código de cor é uma representação de uma cor média dos elementos de imagem do bloco. A cor podería ser uma cor de RGB (Vermelho, Verde, Azul), uma cor no espaço de YUV ou espaço de YCrCb, ou qualquer outro espaço de cor de proprietário usado em processamento e administração de imagem e gráficos. A palavra-código de cor está preferivelmente no mesmo formato de cor (espaço) como a imagem. Porém, em alguns casos, pode ser útil converter a imagem para um formato de cor diferente, isto é, tendo a palavra-código de cor em um primeiro espaço de cor e a imagem original em um segundo espaço de cor diferente. A palavra-código de cor é preferivelmente uma seqüência de representação de cor de 12 bits. Por exemplo, uma palavra-código de cor de RGB podería compreender 4 bits para o componente de cor vermelho, 4 bits para o componente de cor verde e 4 bits para o componente de cor azul.
Correspondentemente, uma palavra-código de cor de YUV podería incluir 6 bits, 3 bits e 3 bits, respectivamente, para os três componentes diferentes.
Note que e uma e a mesma palavra-código de cor (isto é, representação de cor) é gerada para um bloco de imagem, isto é, para todos os elementos de imagem do bloco de imagem.
Depois disso, uma palavra-código de intensidade é provida na etapa S3. Esta palavra-código de intensidade é uma representação de um conjunto de múltiplos modificadores de intensidade que são usados (durante decodificação) para modificar a intensidade dos elementos de imagem no bloco de imagem.
Em uma concretização preferida da invenção, a palavra-código de intensidade é um índice de intensidade permitindo a identificação de um conjunto de modificadores de intensidade. Este índice podería então identificar ou apontar para o conjunto em uma tabela ou lista de códigos compreendendo vários conjuntos de modificadores de intensidade diferentes. Cada conjunto compreende dois ou mais valores de modificador de intensidade, preferivelmente pelo menos quatro valores de modificador. Além disso, os valores de um modificador de um conjunto são preferivelmente valores matematicamente complementares, isto é, cada conjunto é preferivelmente simétrico. Por exemplo, um possível conjunto de modificadores de intensidade podería ser [- a, - b, b, a], onde a e b são inteiros positivos e a > b. A tabela de intensidade preferivelmente compreende conjuntos incluindo pequenos valores de modificador de intensidade, que são adaptados para permitir a representação de superfícies suavemente variáveis. Além disso, a tabela preferivelmente também compreende conjuntos que compreendem grandes valores de modificador de intensidade, que são adaptados para permitir a representação de bordas nítidas.
Os valores de modificador de intensidade atuais dos conjuntos na tabela podem ser achados começando com valores aleatórios e otimizando estes valores usando vários esquemas e algoritmos de otimização diferentes, tais como versões do algoritmo de LBG (Linde, Buzo e Gray) [6], pesquisa de têmpera e coordenada simulada, que são conhecidos a uma pessoa qualificada na arte. Um punhado de imagens de tipos diferentes por exemplo fotografias, texturas de tipo de jogo, texto, etc., podem ser usados como dados de treinamento. A fim de fazer uma implementação de hardware da tabela de intensidade menos cara, os modificadores de intensidade de um conjunto podem ser forçados a serem simétricos, como foi discutido acima, e/ou os modificadores de intensidade de um dado conjunto poderíam ser uma cópia de modificadores de intensidade de outro conjunto modificado por um fator, por exemplo dois.
Tabela 1 ilustra um exemplo presentemente preferido de uma tabela de intensidade compreendendo 16 conjuntos de modificadores de intensidade, com quatro valores de modificador em cada conjunto.
Tabela 1 Na Tabela 1, os conjuntos de modificadores de intensidade 916 são uma cópia de conjuntos 1-8 multiplicados por um fator de dois.
Se a tabela de intensidade compreender no máximo 16 conjuntos de modificadores de intensidade diferentes, a palavra-código de intensidade é preferivelmente um índice de 4 bits (OOOObin-llllbin) identificando um dos (16) conjuntos, por exemplo [-8, -2, 2, 8] para palavra-código OOOObin (0000 base 2), da tabela. Devido a escolha cuidadosa dos valores de modificador nos conjuntos (conjuntos simétricos e metade dos conjuntos é um fator dois da metade restante), a Tabela 1 inteira pode ser reconstruída usando só 16 valores de modificador, e os 48 valores restantes poderíam ser calculados deles. A presente invenção contudo, não está limitada ao uso de Tabela 1, mas podería usar outras tabelas com outros conjuntos e valores de modificador de intensidade. Além disso, para mais ou menos 16 conjuntos em uma tabela, o tamanho da palavra-código de intensidade podería ter que ser mudado. Por exemplo, se a tabela compreender dois (3-4, 5-8 ou mais que 16) conjuntos de modificadores de intensidade, o tamanho de palavra-código podería ser limitado a um bit (dois bits, três bits ou mais de quatro bits). Além disso, o número de valores de modificador de intensidade por conjunto podería diferir de quatro, por exemplo cinco valores poderíam ser usados por conjunto, dando um exemplo de [-8, -2, 0,2, 8]. Os valores de intensidade dos conjuntos na tabela poderíam ser determinados usando vários tipos diferentes de imagens como dados de treinamento, como foi discutido acima. Porém, se só um tipo de imagem específico for para ser codificado, os valores de modificador poderíam ser determinados usando dados de treinamento correspondendo àquele tipo de imagem, isto é, dando uma tabela de intensidade dedicada para um tipo de imagem específico. Também podería ser possível ter uma tabela de intensidade com valores de modificador de intensidade adaptados para uma imagem específica. Nestes casos, isto é, tabela dedicada para imagem ou tipo de imagem, podería ser necessário incluir os valores de modificador de intensidade da tabela no arquivo comprimido de blocos de imagem codificados ou caso contrário associá-los com eles.
Além disso, a palavra-código de intensidade não tem que ser um índice ou um ponteiro para um conjunto de modificadores de intensidade em uma tabela, mas podería de fato ser um próprio conjunto de modificadores de intensidade, por exemplo compreende dois valores de modificador, tais como 2 e 8, e onde os outros valores de modificador, tais como -2 e -8, podem ser determinados destes dois valores.
Note que um e o mesmo conjunto de modificadores de intensidade é usado para o bloco de imagem. Uma vez que a palavra-código de intensidade seja provida na etapa S3, uma próxima etapa S4 seleciona representações de intensidade para os elementos de imagem no bloco de imagem. Cada tal representação de intensidade é associada com um valor de modificador de intensidade do conjunto de modificadores de intensidade provido na etapa S3. Em outras palavras, a representação de intensidade permite a identificação de qual modificador de intensidade do conjunto usar para um elemento de imagem específico para o bloco.
No caso de um conjunto de modificadores de intensidade compreendendo quatro valores de modificador, tais como -8, -2, 2, 8, a representação de intensidade podería ser uma seqüência de 2 bits identificando um destes quatro valores, por exemplo, llbin corresponde a -8, lObin corresponde a -2, OObin corresponde a 2 e Olbin corresponde a 8. Se mais de quatro valores de modificador de intensidade forem usados por conjunto, então mais de dois bits são requeridos para cada elemento de intensidade para identificar o modificador correto.
Etapa S4 é preferivelmente repetida para todos os elementos de imagem no bloco de imagem (ilustrado esquematicamente por linha 1), O resultado da codificação das etapas S2 a S4 é um bloco de imagem codificado ou mais precisamente uma representação codificada (comprimida) do bloco de imagem. Tal representação de bloco codificada 700 é ilustrada na Figura 4. A representação 700 (bloco de imagem codificado) compreende a palavra-código de cor 710, a palavra-código de intensidade 720 e uma seqüência ou mapa de bits 730 de representações de intensidade (preferivelmente uma representação de intensidade para cada elemento de imagem no bloco). Note que a ordem mútua da palavra-código de cor 710, palavra-código de intensidade 720 e seqüência de representação de intensidade 730 do bloco de imagem codificado 700 pode diferir do que é ilustrado na figura.
Se o bloco de imagem compreender oito elementos de imagem (veja por exemplo Figuras 2 e 3) e cada representação de intensidade for 2 bits, o tamanho da seqüência 730 é 16 bits. Além disso, assuma que tamanhos correspondentes das palavras-código de cor e intensidade são 12 e 4 bits, respectivamente. O tamanho total da representação codificada 700 do bloco de imagem é então 32 bits e uma taxa de compressão de 4 bits por pixel (elemento de imagem) (bpp) é obtida. Este pequeno tamanho (32 bits) da representação 700 é bem adaptado para clientes finos, tais como unidades móveis, que tipicamente têm barramentos de memória de 16 ou 32 bits. Como resultado, só um ou na pior das hipóteses dois acessos de memória são então precisados para ler a representação codificada 700.
Retomando à Figura 1, as etapas S2 a S4 são preferivelmente repetidas para todos os blocos de imagem providos durante a decomposição da etapa SI (ilustrado esquematicamente por linha 2). O resultado é então uma seqüência ou arquivo de blocos de imagem codificados. Os blocos de imagem codificados resultantes (representações codificadas dos blocos de imagem) poderíam ser ordenados em um arquivo da esquerda à direita e de cima para baixo, na mesma ordem na qual eles foram separados na decomposição de bloco da etapa S1. O método então termina. A imagem codificada podería então ser provida a uma memória para armazenamento nela até uma representação subseqüente, por exemplo, exibição da imagem. Além disso, a imagem codificada podería ser provida como um sinal de representações de bloco codificadas para um transmissor para transmissão (sem fios ou por fios) para outra unidade.
Figura 5 ilustra uma concretização da etapa S2 da Figura 1 em mais detalhe. Na etapa S10, uma cor média dos elementos de imagem no bloco de imagem é determinada. No seguinte, é assumido que a cor de um pixel ou texel (elemento de imagem) de uma imagem é representada por 24 bits de cor de RGB, isto é, 8 bits do componente vermelho, 8 bits do componente verde e 8 bits do componente azul. Porém, a invenção não está limitada a este exemplo particular, mas pode ser aplicável a qualquer representação de cor de pixéis e texéis. A cor média (R, G, B) é então determinada como: (1) onde Rj, Gh B, são os componentes de R, G, B de elemento de imagem i, e N é o número total de elementos de imagem no bloco de imagem.
Uma vez que a cor média (R, G, B) seja determinada na etapa S10, uma próxima etapa Sll quantiza a cor média. A cor média (24 bits) é preferivelmente quantizada em uma seqüência de 12-bits (palavra-código de cor). Em outras palavras, cada componente médio de 8 bits é quantizado em um componente médio de 4 bits. Por exemplo, se a cor média R ,B for calculada para: uma versão quantizada de 4 bits (R, G, R) podena ser gerada de: isto é, [A, 5, l]hex = [1010, 0101, 0001]bin podería ser usada como uma palavra-código de cor (12 bits). O método então continua à etapa S3 da Figura 1.
Figura 6 ilustra uma concretização das etapas S3 e S4 da Figura 1 em mais detalhe. Etapa S20 investiga os conjuntos modificadores de intensidade diferentes da tabela e os valores de modificador diferentes dos conjuntos e calcula um valor de erro para cada tal conjunto de modificadores e teste de valor de modificador. Baseado nestes valores de erro, um conjunto de modificadores e valores de modificador de intensidade do conjunto que resulta em um valor de erro menor é selecionado na etapa S21. Isto é descrito em mais detalhe abaixo. O método então termina.
No seguinte, codificação de blocos de imagem é ademais discutida em mais detalhe com relação a três exemplos diferentes. Nestes exemplos, uma tabela de intensidade correspondendo a Tabela 1 é usada.
Codificação simules A fim de codificar um bloco de imagem de acordo com esta concretização da invenção, basicamente uma palavra-código de cor e um conjunto de modificadores de intensidade correto são selecionados. Uma vez isto feito, codificação de cada elemento de imagem no bloco de imagem é feito tentando todos os quatro modificadores de intensidade do conjunto e calculando o erro. Assuma que a cor original (24 bits) de um elemento de imagem é (R, G, B) e que a palavra-código de cor (cor média quantizada, 12 bits) é (R, G, B) e que o conjunto de modificadores escolhido é [-a, -b, b, a], Um valor de erro podería então ser determinado como: (2) onde α e [-a, -b, b, a]. Para cada um dos elementos de imagem no bloco de imagem, ο α que minimiza o erro ε é selecionado. Isto podería ser implementado calculando o valor de erro para uma primeira seleção de valores de modificador para os elementos de imagem e armazenar este primeiro valor de erro (e a seleção escolhida de valores de modificador). Depois disso, um valor de erro é calculado para uma seleção diferente de valores de modificador, Este valor de erro é então comparado ao valor armazenado. Se for menor do que o valor armazenado, o valor armazenado é substituído por este novo valor de erro e os valores de modificador usados no cálculo deste valor de erro também são armazenados. Isto é então repetido para todas as combinações de modificadores e conjuntos.
Equação (2) dará o melhor desempenho em termos de Relação de Sinal/Ruído de Pico (PSNR), desde que minimizará o erro quadrado médio na imagem. Porém, perceptivamente, pode não produzir o melhor resultado. Para alguns pixéis (elementos de imagem) pi e p2, onde pi parece mais luminoso do que p2 na imagem original, p2 pode parecer mais luminoso que pi em uma versão decodificada da imagem. A razão para isto é que os componentes vermelho, verde e azul não dão contribuições iguais a que o sistema visual humano percebe como intensidade. Como o componente verde dá uma contribuição desproporcionada à percepção de intensidade, sua aproximação deveria ser representada em precisão mais alta (mais precisa) do que aquelas de vermelho e azul. Como resultado, um valor de erro ponderado podería ser empregado, tal como: (3) onde Wr, Wg, Wb são pesos diferentes para os componentes de cor. Além disso, WG é preferivelmente maior do que WR e WB. Por exemplo, WR = 5/16, WG - 9/16 e WB = 2/16, ou WR = 0,299, WG = 0,587 e Wb = 0,114.
Nesta codificação simples, uma cor média de oito elementos de imagem no bloco, quantizada a 4 bits por componente de cor, é usada como palavra-código de cor. O conjunto de modificadores de intensidade correto é então escolhido por procura exaustiva, isto é, todos os 16 conjuntos na tabela são tentados, e o conjunto que minimiza o valor de erro é selecionado. Isto requer 16x4 = 64 avaliações por elemento de imagem. Se pesos forem WR = 5/16, WG = 9/16 e WB = 2/16, aritmética de inteiro pode ser usada e a codificação se toma rápida. Para esta seleção de pesos, codificação de uma imagem de 128 x 128 pixéis (elementos de imagem) usando a codificação simples leva ao redor de 60 ms em um PC laptop de 1,2 GHz.
Codificação exaustiva Na codificação simples descrita acima, a cor média quantizada era simplesmente usada como uma representação (palavra-código de cor) das cores dos elementos de imagem no bloco de imagem. Nesta concretização da codificação exaustiva de acordo com a invenção, ambos as cores e os conjuntos de modificadores de intensidade (incluindo os valores de modificador) são escolhidos, isto é, toda possível combinação é tentada. Para um dado elemento de imagem, uma iteração adicional por todos os 12 bits de cor é adicionada além da iteração prévia de todos os 4 bits de conjunto de modificadores de intensidade e os 2 bits de representação de intensidade, que juntos da 218 etapas. Codificar uma imagem de 128 x 128 pixéis leva aproximadamente 5 minutos usando o mesmo PC laptop como para a compressão simples. Embora isto pudesse ser demorado demais para aplicações em tempo corrido, não é proibitivo para codificação fora de linha. Comparar os resultados da codificação exaustiva com os da codificação simples acima mostra uma diferença em PSNR de aproximadamente 1,5 dB. Visualmente, as imagens diferem visto que algumas áreas nas imagens codificadas com o esquema de codificação simples mostram deslocamentos de cor. Blocos de imagem únicos em áreas caso contrário cinzas obtém subitamente uma sombra verde leve. A razão para isto é que no esquema simples, os componentes R, G e B da palavra-código de cor são quantizados individualmente, que é sub-ótimo.
Quantizacão combinada Como para o esquema de codificação simples, esta concretização da presente invenção inicia com uma cor média (24 bits) (R, G, B), mas os componentes de cor desta cor média são quantizados juntos com os componentes de intensidade, isto é, seleção de conjuntos de modificadores de intensidade e valores.
Se Rbaixo e Raito denotarem os níveis ou valores de quantização de 4 bits que estão diretamente debaixo e acima de R, respectivamente de forma que Rbaix0 < R < Ran0- A tarefa é então escolher R como tanto Rbaixo ou Raito. O mesmo é verdadeiro para os componentes verde e azul.
Primeiramente, o valor de erro é calculado com (R, G, B) = (Rb aixoj Cbaixo, Bbaixo)· Isto pode ser simplificado em: onde onde Ôr — Rbaixo ■ ^ ? do — Gbaixo ■ G > — Bbaixo- ^ · Ademais assuma que α (o modifj^dgg: ^ntensidade) pode ser escolhido livremente, isto é, é igual ao α = - 3 ótimo. Inserindo este α ótimo na equação (5) dá depois de simplificação: (6) onde ξ é a expressão nos parênteses.
Porém, se o valor mais alto ao invés for escolhido para o componente vermelho, isto é, (R, G, B) = (Rait0; Gbaix0, Bbaixo), e o fato que Raito - ^ = 17+Gr é usado, equação (5) pode ser reescrita como: (7) Esta expressão pode ser ademais simplificada, inserindo ο α ~ -ótimo para este caso, em: A fim de determinar quais destas duas cores quantizadas (palavras-código de cor) (Rbaixo, Gbaix0, Bbaixo) ou (Rait0, Gait0, Bbaixo) é a melhor, isto é, dá o menor valor de erro, a expressão extra nos parênteses retos da equação (8) é investigada. Em outras palavras, se 17 + 25r - ôG - ÔB < 0, (Ra]t0, GbaiXo, Bbaixo) deveria ser escolhido, senão (Rbaix0, Gbaixo, Bbaixo) é escolhido (no caso 17 + 2Ôr - ÔG - δΒ = 0, qualquer palavra-código podería ser escolhida). ' Este procedimento é então repetido para todas as possíveis combinações de quantizações baixa e alta para os três componentes de cor, isto é, para todas as cores quantizadas vizinhas da cor média. O resultado é apresentado na Tabela 2 abaixo.
Tabela 2 Note que ξ não é requerido ser calculado explicitamente, só as expressões (representações de erro) nos parênteses retos da Tabela 2 tem que ser calculados a fim de selecionar os níveis de quantização (palavra-código de cor) usar. Ademais note que a palavra-código de cor (RbaiX0) Gbaixo, Bbaix0) e (Raito, Gait0, Baito) dá o mesmo valor de erro. Isto está sob a suposição que qualquer α (valor de modificador de intensidade) pode ser alcançado. Na realidade, porém, α está limitado aos valores de modificador de intensidade dos conjuntos de modificadores usados, por exemplo os valores de modificador da Tabela 1. De acordo com Tabela 1, valores de modificador menores (a) podem ser especificados com maior precisão do que valores maiores, que significa que é melhor escolher (Rait0, Gait0, Baitü) em lugar de (Rbaixo, Gbaixo, Bbaixo) sc (A, G 5 B) estiver mais perto de (Raito, Gait0, Bait0) do que (Rbaixo, GbaiXo, Bbaixo) e vice-versa. A quantização combinada desta concretização da invenção aumenta a PSNR com cerca de 1 dB comparada à codificação simples. Assim, a PSNR é só cerca de 0,5 dB mais baixa do que o resultado do esquema de codificação exaustiva (ótima). O tempo de codificação total não era mudado mensuravelmente comparado com a codificação simples, isto é, uma imagem de 128 x 128 pixéis ainda é comprimida em cerca de 60 ms.
Também é possível construir uma tabela correspondendo à Tabela 2 usando a medida de erro perceptivamente ponderada da equação (3). Ο α ótimo é então α = -[(w2ròr+ w2g5g + w2BóB)/(w2R + w2q + w2b)] para (R , G, ^ ) — (Rbaixo, Gbaixo, Bbaixo)· Se os valores de erro para Rbaix0, Gbaixo, Bbaixo e Ra,t0, Gaito, Saito forem "normalizados" a 0 (basicamente corresponde a subtrair 2/3 ξ do valor de erro ε2 para todas as variantes diferentes de R, G e B na Tabela 2), a tabela seguinte de valores de erro normalizados é obtida. Note que os valores de erro normalizados para as palavras-código de cor diferentes de Rbaix0, GbaiX0J Bbaixo e Rait0, Gano, Bait0 da Tabela 3 correspondem às expressões nos parênteses retos da Tabela 2.
Tabela 3 Quais das cores quantizadas vizinhas (RxGyBz> onde X, Y, Z representam independentemente baixo ou alto) usar coma palavra-código de cor pode então ser determinado comparando os valores de erro "normalizados" ou representações e selecionando como palavra-código de cor a cor quantizada vizinha que resulta em um menor valor de erro.
Outro modo para escolher palavra-código de cor entre as cores quantizadas vizinhas é comprimir o bloco de imagem com cada tal cor quantizada e selecionar a associada com um menor erro. Porém, uma tal abordagem é algo mais lenta do que simplesmente usar as representações de erro da Tabela 2 ou 3 para determinar uma palavra-código de cor adequada como o bloco então tem que ser comprimido oito vezes comparado a uma vez.
Figura 7 ilustra um fluxograma de um método para decodificar uma imagem codificada ou versão codificada de uma imagem original de acordo com a presente invenção. A imagem codificada inclui basicamente várias representações codificadas de blocos de imagem, tais como representações 700 da Figura 4. Estas representações de bloco codificadas são geradas preferivelmente pelo método de codificação de imagem discutido acima com relação à Figura 1. 0 método geralmente inicia identificando blocos de imagem codificados para decodificar. Podería ser possível que todos os blocos de imagem codificados de uma imagem codificada deveríam ser decodificados para gerar uma representação decodificada da imagem original. Altemativamente, só uma porção da imagem original é para ser acessada. Como uma conseqüência, só um número selecionado de blocos de imagem tem que ser decodificado (ou mais precisamente, uma quantidade selecionada de elementos de imagem de certos blocos de imagem tem que ser decodificada).
Uma vez que os blocos de imagem codificados corretos (representações) sejam identificados, a etapa S30 provê um conjunto de modificadores de intensidade. Este conjunto de modifícadores é provido baseado na palavra-código de intensidade na representação codificada. Esta provisão de conjunto é executada preferivelmente identificando, por meio da palavra-código de intensidade, um conjunto de modifícadores de intensidade de uma tabela, por exemplo, Tabela 1 acima, compreendendo múltiplos conjuntos de modifícadores. Porém, em algumas aplicações, podería ser possível que a própria palavra-código de intensidade inclua o conjunto de modifícadores e que nenhuma consulta de tabela seja requerida.
Em uma próxima etapa S31, uma representação de cor é gerada para pelo menos um dos elementos de imagem do bloco de imagem (isto é, para os elementos de imagem que deveríam ser decodificados). Esta geração de cor é executada baseada na palavra-código de cor na representação de bloco codificada. Na etapa S32, o modificador de intensidade a usar para o elemento de imagem que deveria ser decodificado, é selecionado. O valor de modificador é selecionado do conjunto de modifícadores provido na etapa S30 baseado na representação de intensidade associada com o elemento de imagem e achada na sequência de representação da representação de bloco codificada. Uma vez que o valor de modificador de intensidade correto seja selecionado na etapa S32, a intensidade do elemento de imagem é modificada ou modulada com este valor na etapa S33. Modificação de intensidade de acordo com a invenção se refere a modificar, por exemplo, adicionar ou multiplicar, todos os componentes de cor da representação de cor pelo valor de modificador de intensidade (possivelmente ponderado).
Etapas S32 e S33 poderíam ser executadas para vários elementos de imagem no bloco de imagem (ilustrado esquematicamente por linha 3). É antecipado pela invenção que em algumas aplicações, só um único elemento de imagem é decodificado de um bloco de imagem específico, múltiplos elementos de imagem de um bloco de imagem específico são decodificados e/ou todos os elementos de imagem de um bloco específico são decodificados.
Etapas S30 a S33 são então repetidas preferivelmente para todos os blocos de imagem que compreendem elementos de imagem que deveríam ser decodificados (ilustrado esquematicamente por linha 4). Isto significa que a malha de etapas S30 a S33 podería ser executada uma vez, mas freqüentemente várias vezes para blocos de imagem codificados diferentes e/ou várias vezes para um bloco de imagem codificado específico, Na etapa opcional S34, uma representação decodificada da imagem original, ou uma porção dela, é gerada baseado nos elementos e blocos de imagem decodificados. Note que em algumas aplicações, vários elementos de imagem têm que ser decodificados a fim de produzir um único pixel da representação decodificada. Por exemplo, durante interpolação tri-linear, oito elementos de imagem vizinhos são decodificados e para interpolação bi-linear, o número correspondente é quatro elementos de imagem, que é bem conhecido à pessoa qualificada na arte. O método então termina.
Figura 8 ilustra uma concretização das etapas S30 e S31 da Figura 7 em mais detalhes. Na etapa S40, um conjunto de modificadores de intensidade correto é identificado e selecionado da tabela de intensidade por meio da palavra-código de intensidade. Se o conjunto de modificadores de intensidade armazenado na tabela de intensidade compreender um primeiro sub-conjunto de valores de modificador, por exemplo, [a, b], um segundo subconjunto de valores de modificador de intensidade pode ser determinado dos valores do primeiro sub-conjunto, por exemplo, [-a, -b]. Em uma próxima etapa S41, a cor quantizada da palavra-código de cor, preferivelmente 12 bits, é expandida ou estendida em, preferivelmente, 24 bits. Para o caso com uma cor de RGB, cada componente de cor de 4 bits quantizado da palavra-código de cor é então expandido em um componente de cor de 8 bits. Esta expansão de cor pode ser realizada multiplicando os componentes de cor de 4 bits quantizados por 17 para uma implementação com 256 cores diferentes Isto é a mesma coisa como duplicar o padrão de 4 bits para os primeiros (topo) e últimos (inferior) 4 bits da palavra-código de cor de 8 bits expandida. Em outras palavras, um componente de cor de 4 bits de lOlObm é expandido em 1010 1010^. Se a palavra-código de cor em vez disso compreender 15 bits (5 bits para cada componente de R, G, B), a expansão resultaria em uma cor de 30 bits. Isto pode ser realizado multiplicando o componente de cor (5 bits) por 33 , ou duplicando o padrão de 5 bits para os 5 bits de topo e inferior da palavra de cor expandida de 10 bits. Na etapa S42, a cor expandida é então designada aos elementos de imagem do bloco de imagem, que são para serem decodificados. O método então continua na etapa S32 da Figura 7.
Figura 9 ilustra uma concretização da etapa S33 na Figura 7 em mais detalhe. Na etapa S50, o valor de modificador de intensidade identificado e selecionado é adicionado à cor expandida. Assim, este valor de modificador é adicionado a todos os componentes (todos os três para uma cor de RGB) da cor para o elemento de imagem. Isto podería ser implementado como uma simples adição do valor de modificador a todos os componentes de cor. Porém, em algumas aplicações, podería ser preferido ponderar o valor de modificador antes de adicioná-lo aos componentes. Em tal caso, pesos diferentes podem ser empregados para os componentes de cor diferentes. Em uma concretização alternativa, outro tipo de modificação diferente de uma adição simples podería ser empregada, por exemplo, multiplicação, XOR ou outra modificação. Em tal caso, a mesma modulação é executada para todos os componentes da cor expandida usando um e o mesmo valor de modificador de intensidade, embora este valor possa ser ponderado diferente para os componentes. Em uma próxima etapa S51, os valores de componente de cor modificados em intensidade resultantes são limitados entre um limiar de cor mínimo e um limiar de cor máximo. Por exemplo, se depois de adicionar o valor de modificador de intensidade (possivelmente ponderado) a um componente de cor, o valor resultante é menor do que o limiar mínimo, o valor é limitado ao valor deste limiar. Correspondentemente, se o valor resultante for maior do que o limiar máximo, o valor do limiar deveria ao invés ser usado para aquele componente. Um exemplo não limitante de um limiar mínimo e máximo é 0 e 255, respectivamente, para o caso com 256 cores diferentes. Limiares correspondentes para 1024 cores poderíam ser 0 e 1023. O método então continua na etapa S34 da Figura 7.
Decodificar um bloco de imagem codificado será ilustrado ademais por um exemplo aqui abaixo. Neste exemplo, uma representação de bloco codificada como ilustrado na Figura 4 e um bloco de imagem como ilustrado na Figura 2 são assumidos. A representação codificada do bloco de imagem está de acordo com 1010 0101 0001 0111 11 01 10 00 10 01 00bin (a517D890hex), onde o bit 0-3 é o componente vermelho da palavra-código de cor, bit 4-7 é o componente verde da palavra-código de cor, bit 8-11 é o componente azul da palavra-código de cor, bit 12-15 é a palavra-código de intensidade e bit 16-31 é a sequência de representações de intensidade para os elementos de imagem do bloco. A palavra-código de cor é então decodificada (expandida) para gerar a representação de cor do bloco de imagem. Cada componente de cor na palavra-código de cor está em 4 bits, mas é expandido a 8 bits multiplicando por 17 (17 = llhex), que é a mesma coisa como duplicar o padrão de 4 bits para ambos os 4 bits de topo e inferior da palavra de 8 bits: Vermelho: ahex x Hhex = aahexO 1010 1010bín <=>170 Verde: 5hexx llhex = 55hex«0101 0101bin« 85 Azul: lhexX HheX= llhex«0001 0001bin« 17 Esta cor expandida é então designada aos elementos de imagem dos blocos de imagens dando: O conjunto de modificadores de intensidade correto a usar é selecionado da Tabela 1 baseado na palavra-código de intensidade, Como é visto na Tabela 1, uma palavra-código de intensidade de 011 lbin corresponde a modificadores de intensidade [-127, -42,42,127]. A seqüência de representações de intensidade habilita a identificação de quais destes quatro valores de modificador usar para o elemento de imagem diferente de acordo com: A primeira representação de intensidade é llbifl, que significa que o primeiro valor de modificador de intensidade, -127, deveria ser adicionado a todos os três componentes do primeiro elemento de imagem: Os componentes resultantes são então limitados entre 0 e 255, assim dando (43, 0, 0). O bloco de imagem decodificado parcialmente está agora de acordo com: Para o próximo elemento de imagem, a representação de intensidade é Olbin» isto é, o modificador de intensidade 127 deveria ser adicionado a todos os três componentes de cor. O resultado depois de limitação é (255, 212, 144). Repetindo este procedimento para todos os elementos de imagem no bloco criaria o bloco de imagem decodificado final mostrado abaixo: O esquema de codificação de imagem (codificação de bloco de imagem) e decodificação de imagem (decodificação ou processamento de bloco de imagem) de acordo com a presente invenção podería ser provido em um sistema de processamento de dados geral, por exemplo, em um terminal de usuário ou outra unidade configurada para processar e/ou representar imagens. Tal terminal podería ser um computador. Porém, a invenção é bem adaptada para clientes finos, tais como Assistente Digital Pessoal (PDA), unidades móveis e telefones. Tais terminais são caracterizados tipicamente por capacidade de memória e largura de banda de memória limitadas, e são energizados por baterias, isto é, também provisão de energia limitada. Desde que ambas codificação e decodificação de acordo com a presente invenção podem ser implementadas muito simplesmente em hardware, software ou uma combinação de hardware e software e um bloco de imagem codificado preferivelmente só tem um tamanho máximo de 32 bits, a invenção podería com vantagem ser aplicada a um cliente fino.
Figura 10 ilustra um terminal de usuário 100 representado por uma unidade móvel. Porém, a invenção não está limitada a unidades móveis e podería ser implementada em outros terminais e unidades de processamento de dados. Só meios e elementos na unidade móvel 100 envolvidos diretamente na presente invenção estão ilustrados na figura. A unidade móvel 100 compreende uma unidade de processamento (central) (CPU) 200 para processar dados, incluindo dados de imagem, dentro da unidade móvel 100. Um sistema gráfico 130 é provido na unidade móvel 100 para administrar dados de imagem e gráfico. Em particular, o sistema gráfico 130 é adaptado para representar ou exibir imagens em uma tela conectada 120 ou outra unidade de exibição. A unidade móvel 100 também compreende um armazenamento ou memória 140 para armazenar dados nela. Nesta memória 140, dados de imagem podem ser armazenados, em particular dados de imagem codificados (blocos de imagem codificados) de acordo com a presente invenção. Devido ao pequeno tamanho total de blocos de imagem (32 bits) e alta taxa de compressão (4 bpp), dados de imagem podem ser armazenados eficientemente na memória 140 também em casos com uma unidade móvel 100 com capacidade de memória limitada.
Um codificador de imagem 210 de acordo com a presente invenção é provido na unidade móvel 100. Este codificador 210 é configurado para codificar uma imagem ou textura em uma representação codificada da imagem (ou textura). Como foi discutido acima, uma tal representação codificada compreende uma sequência ou arquivo de múltiplos blocos de imagem decodificados. Este codificador de imagem 210 pode ser provido como software correndo na CPU 200, como é ilustrado na figura.
Altemativamente, ou além disso, o codificador 210 poderia ser arranjado no sistema gráfico 130 ou em outro lugar na unidade móvel 100.
Uma representação codificada de uma imagem do codificador de bloco 210 pode ser provida à memória 140 através de um barramento (memória) 150, para armazenamento nela até uma representação subsequente da imagem. Altemativamente, ou além disso, os dados de imagem codificados podem ser remetidos a uma unidade de entrada e saída (I/O) 110 para transmissão (sem fios ou por fios) para outros terminais ou unidades externas. Esta unidade de I/O 110 também pode ser adaptada para receber dados de imagem de uma unidade externa. Estes dados de imagem poderíam ser uma imagem que deveria ser codificada pelo codificador de imagem 210 ou dados de imagem codificados que deveríam ser decodificados. Também poderia ser possível armazenar a representação de imagem codificada em uma memória de textura dedicada provida, por exemplo, no sistema gráfico 130. Além disso, porções da imagem codificada também poderíam, ou altemativamente, ser armazenadas (temporariamente) em uma memória 'cache' de textura, por exemplo no sistema gráfico 130, Se o barramento (memória) 150 tiver uma largura de banda máxima de 32 bits, um único acesso de memória é requerido para buscar ou ler uma representação de imagem codificada da invenção da memória 140. Se porém, o barramento 150 tiver capacidade de largura de banda maior, por exemplo 64 bits ou até mesmo 128 bits, múltiplas representações de imagem codificadas poderíam ser buscadas em um único acesso de memória. Por exemplo, assuma um barramento de 64 bits 150 e tamanho de bloco de imagem de acordo com a Figura 2. Se os blocos de imagem forem empilhados "um em cima do outro", um bloco de imagem junto com o bloco de imagem subseqüente na memória 140 formará um quadrado de 4x4 de elementos de imagem. Porém, se os blocos forem posicionados "lado a lado", o bloco de imagem junto com o bloco seguinte formará uma caixa de 2x8. Um quadrado de 4x4 é mais preferido, como a probabilidade de achar um elemento de imagem desejado no quadrado de 4x4 é maior do que para a caixa de 2x8, se alguma forma de sistema de 'caching' de textura for empregada, que é bem conhecido à pessoa qualificada na arte.
Um decodificador de imagem 220 de acordo com a presente invenção é provido na unidade móvel 100 para decodificar uma imagem codificada a fim de gerar uma representação de imagem decodificada. Esta representação decodificada poderia corresponder à imagem original inteira ou uma porção dela. O decodificador de imagem 220 provê dados de imagem decodificados ao sistema gráfico 130, que por sua vez processa tipicamente os dados antes que sejam representados ou apresentados na tela 120. O decodificador de imagem 220 pode ser arranjado no sistema gráfico 130, como é ilustrado na figura. Altemativamente, ou além disso, o decodificador 200 pode ser provido como software correndo na CPU 200 ou em outro lugar na unidade móvel 100. A unidade móvel 100 poderia ser equipada com ambos um codificador de imagem 210 e um decodificador de imagem 220, como é ilustrado na figura. Porém, para alguns terminais 100, poderia ser possível só incluir um codificador de imagem 210. Em tal caso, dados de imagem codificados poderíam ser transmitidos para outro terminal que executa a decodificação e, possivelmente, representação da imagem. Correspondentemente, um terminal 100 poderia só incluir um decodificador de imagem 220, isto é, nenhum codificador. Tal terminal 100 então recebe um sinal compreendendo dados de imagem codificados de outro terminal e os decodifica para gerar uma representação de imagem decodificada. Assim, o sinal de imagem codificado poderia ser transmitido em modo sem fios entre os terminais usando transmissor e receptor de rádio, Altemativamente, outras técnicas para distribuir imagens e representações de imagem codificadas entre terminais de acordo com a invenção poderíam ser empregadas, tais como técnicas de IR usando portas de IR e transferência por fios de dados de imagem entre terminais. Também cartões ou chips de memória que poderíam ser conectados e trocados entre terminais poderíam ser usados para esta distribuição inter-terminal de dados de imagem.
As unidades 110, 130, 200, 210 e 220 da unidade móvel 100 podem ser providas como software, hardware ou uma combinação disso.
Figura 11 ilustra um diagrama de bloco de uma concretização de um codificador de imagem 210 de acordo com a presente invenção. O codificador 210 tipicamente compreende um decompositor de imagem 215 para decompor ou dividir uma imagem de entrada em vários blocos de imagem. O decompositor 215 é preferivelmente configurado para decompor a imagem em blocos de imagem compreendendo oito elementos de imagem (pixéis ou texéis), isto é, tendo um tamanho geral de 8x1 ou 8x1 elementos de imagem, mais preferivelmente 4x2 ou 2x4 elementos de imagem. Este decompositor 215 podería ser adaptado para decompor imagens de entrada diferentes em blocos de imagem com tamanhos diferentes. Por exemplo, para um primeiro tipo de imagem, um tamanho de bloco de imagem de 4x2 elementos de imagem é usado, enquanto para um segundo tipo, um tamanho de bloco de 8x1 podería ser usado. Em tal caso, o decompositor 215 preferivelmente recebe informação de entrada, habilitando a identificação de qual formato de bloco de imagem usar para uma dada imagem.
Esta concretização do codificador de imagem 210 compreende um único codificador de bloco 300. Este codificador de bloco 300 codifica os blocos de imagem recebidos do decompositor de imagem para gerar representações de bloco codificadas. Tal representação de bloco de imagem compreende uma palavra-código de cor, uma palavra-código de intensidade e uma sequência de representações de intensidade. O tamanho global da representação de bloco é muito menor do que o tamanho correspondente do bloco de imagem não codificado. O codificador de bloco 300 é preferivelmente configurado para processar (codificar) cada bloco de imagem do decompositor 215 seqüencialmente. O codificador de bloco 300 preferivelmente compreende, ou tem acesso a uma tabela de intensidade 500 compreendendo múltiplos conjuntos de modificadores de intensidade. Os conjuntos de modificadores da tabela 500 são usados durante a codificação para a geração da palavra-código de intensidade, e possivelmente cor. A tabela de intensidade 500 podería ser arranjada no codificador de bloco 300 ou em outro lugar no codificador de imagem 210. O codificador de imagem 210 podería compreender uma única tabela de intensidade 500. Altemativamente, várias tabelas diferentes poderíam ser arranjadas no codificador 210, onde os modificadores de intensidade das tabelas são adaptados para tipos de imagem diferentes ou uma tabela podería ser adaptada para uma imagem específica. Por exemplo, uma primeira tabela de intensidade podería ser usada durante codificação de um primeiro tipo de imagem, por exemplo, fotografia, enquanto uma segunda tabela é usada para codificar uma imagem de um segundo tipo, por exemplo texto. Porém, a fim de economizar memória, uma única tabela de intensidade 500 gerada com dados de treinamento de vários tipos de imagem diferentes é preferivelmente empregada no codificador 210.
As unidades 215 e 300 do codificador de imagem 210 podem ser providas como software, hardware ou uma combinação disso. As unidades 215, 300 e 500 podem ser implementadas juntas no codificador de imagem 210. Altemativamente, uma implementação distribuída também é possível com algumas das unidades providas em outro lugar na unidade móvel.
Figura 12 ilustra um diagrama de bloco de outra concretização do codificador de imagem 210 de acordo com a presente invenção. Este codificador de imagem 210 compreende um decompositor de imagem 215 como a concretização da Figura 11, que não é discutida ademais. Porém, o codificador 210 inclui múltiplos codificadores de bloco 300-1 a 300-M (M, onde M é um inteiro positivo maior que um). Cada tal codificador de bloco 300-1 a 300-M corresponde basicamente ao codificador de bloco do codificador de imagem na Figura 11. Provendo múltiplos codificadores de bloco 300-1 a 300-M no codificador de imagem 210, múltiplos blocos de imagem do decompositor 215 podem ser processados (codificados) em paralelo, que reduz o tempo de codificação de imagem total.
Cada codificador de bloco 300-1 a 300-M poderia compreender uma tabela de intensidade 500. As tabelas de intensidade 500 nos codificadores diferentes 300-1 a 300-M poderíam todas incluir valores de modificador de intensidade idênticos. Altemativamente, codificadores de bloco diferentes poderíam incluir tabelas diferentes. Em tal caso, um ou vários codificadores de bloco poderíam ser adaptados para um certo tipo de imagem, enquanto outros codificadores de bloco são adaptados para outros tipos de imagem. Em uma implementação alternativa, uma única tabela de intensidade 500 é arranjada no codificador de imagem 210 e conectada a todos os codificadores de bloco 300-1 a 300-M.
As unidades 215 e 300-1 a 300-M do codificador de imagem 210 podem ser providas como software, hardware ou uma combinação disso. As unidades 215, 300-1 a 300-M e 500 podem ser implementadas juntas no codificador de imagem 210. Altemativamente, uma implementação distribuída também é possível com algumas das unidades providas em outro lugar na unidade móvel.
Figura 13 ilustra um diagrama de bloco de uma concretização de um codificador de bloco 300 de acordo com a presente invenção, tal como o codificador de bloco do codificador de imagem na Figura 11 ou um dos codificadores de bloco no codificador de imagem da Figura 12.0 codificador 300 compreende um quantizador de cor 310, que determina uma representação de cor das cores dos elementos de imagem no bloco de imagem e quantiza esta representação de cor. A representação de cor é preferivelmente uma cor média de 24 bits do elemento de imagem e é quantizada subsequentemente a uma representação de cor de 12 bits, isto é, a palavra-código de cor, pelo quantizador 310.
Um quantizador de intensidade 320 é provido no codificador de bloco 300 para identificar um conjunto de modificadores de intensidade a usar para um bloco de imagem atual. O quantizador 320 é preferivelmente configurado para selecionar este conjunto de modificadores de uma tabela de intensidade associada 500. O quantizador 320 então gera uma palavra-código de intensidade que é associada com o conjunto de modificadores selecionado. O codificador 300 ademais inclui um seletor de intensidade 330 que seleciona, para os elementos de imagem no bloco de imagem, um modificador de intensidade do conjunto de modificadores de intensidade identificado. O quantizador de cor 310, quantizador de intensidade 320 e seletor de intensidade 330 são preferivelmente configurados para quantização combinada da palavra-código de cor e intensidade, como foi discutido em detalhes no antecedente.
As unidades 310, 320 e 330 do codificador de bloco 300 podem ser providas como software, hardware ou uma combinação disso. As unidades 310,320,330 e 500 podem ser implementadas juntas no codificador de bloco 300. Altemativamente, uma implementação distribuída também é possível com algumas das unidades providas em outro lugar no codificador de imagem.
Figura 14 ilustra um diagrama de bloco de outra concretização de um codificador de bloco 300 de acordo com a presente invenção. Este codificador de bloco 300 compreende um estimador de erro 340 para estimar valores de erro para o propósito de selecionar conjunto e valores de modificadores de intensidade, e possivelmente valor de cor quantizado, ao usar para um bloco de imagem. Este estimador 340 é preferivelmente configurado para calcular um valor de erro para uma primeira seleção de um conjunto de modificadores de intensidade e valores (e cor no caso de codificação exaustiva) para os elementos de imagem no bloco de imagem. Este primeiro valor de erro é então armazenado. O cálculo de erro é então repetido para todas as possíveis seleções de conjunto de modificadores e valores (e cor), e depois de cada cálculo, o valor de erro estimado é comparado ao erro armazenado. Se for menor do que o valor armazenado, ele substitui o erro previamente armazenado. Além disso, a seleção de conjunto de modificadores e valores (e cor) associados com o valor de erro também são armazenados. Uma vez que todas as combinações foram testadas, a seleção resultando no menor erro é usada para geração de palavra-código de intensidade (e cor) e representações de intensidade. Um seletor de conjunto de modificadores de intensidade 322 e seletor de intensidade 330 então seleciona o conjunto de modificadores e valores de modificador que são associados com o menor erro. As unidades restantes do codificador de bloco 300 tem correspondências na Figura 13 e não são discutidas ademais. Altemativamente, esta concretização do codificador de bloco 300 podería operar de acordo com a quantização combinada como descrito acima. Em tal caso, o quantizador de cor 310 provê as cores quantizadas vizinhas da cor média calculada do bloco de imagem. O estimador de erro 340 determina representações de erro para cada tal cor quantizada vizinha, por exemplo como ilustrado na Tabela 2 ou 3, e a cor quantizada vizinha que resulta em uma representação de erro menor é selecionada como a palavra-código de cor para o bloco de imagem.
As unidades 310, 320, 322, 330 e 340 do codificador de bloco 300 podem ser providas como software, hardware ou uma combinação disso. As unidades 310, 320, 322, 330, 340 e 500 podem ser implementadas juntas no codificador de bloco 300. Altemativamente, uma implementação distribuída também é possível com algumas das unidades providas em outro lugar no codificador de imagem.
Uma implementação preferida de um quantizador de cor 310 de acordo com a presente invenção é ilustrada no diagrama de bloco da Figura 15. O quantizador 310 compreende meio 312 configurado para determinar uma média das cores dos elementos de imagem no bloco de imagem. Esta cor média é preferivelmente uma cor de RGB, mas podería ser qualquer outro formato de cor usado em processamento de imagem. Esta cor média determinada é então provida ao meio de quantização 314, que quantiza a cor média. O quantizador 314 é preferivelmente configurado para quantizar uma cor de RGB média de 24 bits do calculador de média de cor 312 em uma cor de RGB de 12 bits.
As unidades 312 e 314 do quantizador de cor 310 podem ser providas como software, hardware ou uma combinação disso. As unidades 310 e 314 podem ser implementadas juntas no quantizador de cor 310. Altemativamente, uma implementação distribuída também é possível com algumas das unidades providas em outro lugar no codificador de bloco.
Figura 16 ilustra um diagrama de bloco de uma concretização de um decodificador de bloco 220 de acordo com a presente invenção. O decodificador de bloco 220 preferivelmente compreende um seletor de bloco 222, que é adaptado para selecionar, por exemplo, de uma memória, quais blocos de imagem codificados que deveríam ser providos a um decodificador de bloco 400 para decodificação. O seletor de bloco 222 preferivelmente recebe informação de entrada associada com os dados de imagem codificados, por exemplo de um cabeçalho ou uma máquina de representação. Um endereço de um bloco de imagem codificado tendo os elementos de imagem desejados é então computado baseado na informação de entrada. Este endereço computado é preferivelmente dependente das coordenadas de elemento de imagem (pixel ou texel) dentro de uma imagem. Usando o endereço, o seletor de bloco 222 identifica o bloco de imagem codificado da memória. Este bloco de imagem codificado identificado é então buscado do armazenamento e provido ao decodificador de bloco 400. O acesso (aleatório) a elementos de imagem de um bloco de imagem habilita vantajosamente a decodificação seletiva só daquelas porções de uma imagem que são precisadas Além disso, a imagem pode ser decodificada em qualquer ordem que os dados são requeridos. Por exemplo, em mapeamento de textura só porções da textura podem ser requeridas e estas porções geralmente serão requeridas em uma ordem não seqüencial. Assim, a decodificação de imagem da presente invenção pode ser aplicada com vantagem para processar só uma porção ou seção de uma imagem. O bloco de imagem codificado selecionado é então remetido ao decodificador de bloco 400. Além do bloco de imagem, o decodificador 400 preferivelmente recebe informação especificando quais elementos de imagem do bloco que deveríam ser decodificados. A informação poderia especificar que o bloco de imagem inteiro, isto é, todos os elementos de imagem nele, deveríam ser decodificados. Porém, a informação recebida poderia identificar só um único ou alguns dos elementos de imagem que deveríam ser decodificados. O decodificador de bloco 400 então gera uma representação decodificada dos elementos de imagem no bloco. Esta representação decodificada é preferivelmente uma cor de P bits, onde P é o número de bits por elemento de imagem na imagem original, por exemplo uma cor de RGB de 24 bits. O decodificador de bloco 400 preferivelmente compreende uma tabela de intensidade 500, que é usada durante o procedimento de decodificação, Altemativamente, esta tabela de intensidade 500 poderia ser provida em outro lugar no decodificador de imagem 220. Uso de tabelas de intensidade diferentes para tipos de imagem diferentes, discutido acima em conexão à Figura 11, também se aplica ao decodificador de imagem 220.
Um compositor de imagem 224 opcional poderia ser provido no decodificador 220. Este compositor recebe os elementos de imagem decodificados do decodificador de bloco 400 e os compõe para gerar um pixel que pode ser representado ou exibido em uma tela. O compositor 224 poderia requerer vários elementos de imagem de entrada para gerar um único pixel. Este compositor de imagem 224 poderia altemativamente ser provido no sistema gráfico.
As unidades 222, 224 e 400 do decodificador de bloco 220 podem ser providas como software, hardware ou uma combinação disso. As unidades 222, 224, 400 e 500 podem ser implementadas juntas no decodificador de bloco 220. Altemativamente, uma implementação distribuída também é possível com algumas das unidades providas em outro lugar na unidade móvel.
Figura 17 ilustra um diagrama de bloco de outra concretização de um decodificador de imagem 220 de acordo com a presente invenção. O seletor de bloco 222 e compositor de imagem 224 são semelhantes às unidades correspondentes na Figura 16 e não são discutidos ademais. O decodificador de imagem 220 compreende múltiplos decodificadores de bloco 400-1 a 400-Q (Q é um inteiro positivo maior que um). Tendo acesso a múltiplos decodificadores de bloco 400-1 a 400-Q, o decodificador de imagem 220 pode processar (decodificar) múltiplos blocos de imagem codificados em paralelo. Estes múltiplos decodificadores de bloco 400-1 a 400-Q permitem processamento paralelo, que aumenta o desempenho de processamento e eficiência do decodificador de imagem 220. Por exemplo, um elemento de imagem decodificado é geralmente suficiente para interpolação de vizinho mais próximo, enquanto quatro (oito) elementos de imagem são precisados para interpolação bi-linear (tri-linear). Cada decodificador de bloco 400-1 a 400-Q poderia compreender uma tabela de intensidade 500 usada para a decodificação. Altemativamente, uma única tabela 500 é arranjada no decodificador de imagem 220 e conectada a todo os decodificadores de bloco 400-1 a 400-Q. A discussão adicional de usar tipos diferentes de tabelas de intensidade, veja acima com relação à Figura 12, também se aplica para o decodificador de imagem 220.
As unidades 222, 224 e 400-1 a 400-Q do decodificador de imagem 220 podem ser providas como software, hardware ou uma combinação disso. As unidades 222, 224, 400-1 a 400-Q e 500 podem ser implementadas juntas no decodificador de imagem 220. Altemativamente, uma implementação distribuída também é possível com algumas das unidades providas em outro lugar na unidade móvel.
Figura 18 é uma ilustração de uma concretização de um decodificador de bloco 400 de acordo com a presente invenção. O decodificador de bloco 400 compreende meio 410 para prover um conjunto de modificadores de intensidade uma tabela de intensidade 500 associada baseada na palavra-código de intensidade. Este provedor 410 poderia ser configurado para buscar um primeiro sub-conjunto de valores de modificador da tabela de intensidade 500 e determinar um segundo sub-conjunto de modificadores baseado no primeiro sub-conjunto. Um gerador de cor 420 gera uma única representação de cor para todos os elementos de imagem no bloco de imagem baseado na palavra-código de cor. Este gerador 420 preferivelmente expande a cor de 12 bits da palavra-código em uma cor de 24 bits (RGB).
Um seletor de modificador de intensidade 430 é arranjado para selecionar um dos valores de modificador de intensidade do conjunto de modificadores provido pelo meio 410. O seletor de modificador 430 é configurado para selecionar valores de modificador corretos para os elementos de imagem no bloco de imagem codificado baseado na seqüência de representações de intensidade. A cor expandida do gerador de cor 420 e valor de modificador de seletor de modificador 430 são remetidos a um modulador ou modificador de intensidade 440, que modifica a intensidade dos componentes de cor da cor expandida com o valor de modificador. O modificador 440 podería usar um valor de modificador de intensidade ponderado, com pesos diferentes para os componentes de cor diferentes. Além disso, uma vez que os componentes de cor foram modificados em intensidade, o modificador 440 preferivelmente limita os componentes entre um limiar máximo e mínimo, por exemplo entre 0 e 255.
As unidades 410, 420, 430 e 440 do decodificador de bloco 400 podem ser providas como software, hardware ou uma combinação disso. As unidades 410, 420, 430, 440 e 500 podem ser implementadas juntas no decodificador de bloco 400. Altemativamente, uma implementação distribuída também é possível com algumas das unidades providas em outro lugar no decodificador de imagem.
Figura 19 ilustra esquematicamente uma possível implementação de hardware de um decodificador de bloco 400 de acordo com a presente invenção. A entrada para o decodificador de bloco 400 é uma representação de bloco codificada 700 compreendendo uma palavra-código de cor de 12 bits 710 (4 bits para cada um do componente vermelho, verde e azul), uma palavra-código de intensidade de 4 bits 720 e uma seqüência de 16 bits de intensidade 730. A palavra-código de cor é provida ao gerador de cor 420, que é realizado por três extensores de bit 422 a 426. Um primeiro extensor de bit 422 recebe o componente vermelho de 4 bits, um segundo extensor 424 e terceiro 426 recebe o componente verde e azul de 4 bits, respectivamente. A saída de extensor respectivo 422 a 426 é um componente de cor de 8 bits. Este componente de 8 bits é simplesmente obtido multiplicando o componente de entrada com 17, ou multiplicando o componente com 16 e então adicionando o componente. Altemativamente, o extensores 422 a 426 poderíam ser implementados como deslocadores de bit e porta OU, por exemplo (101 lbm < < 4) 0U lOllbm =1011 0000bin OU lOllto = 1011 1011 bin onde « 4 corresponde a deslocar uma palavra quatro bits à esquerda.
Um seletor de modificador 430 é implementado como um multiplexador 435. Um índice de endereço de 3 bits é introduzido neste multiplexador 435. Baseado no índice de endereço, o multiplexador 435 seleciona qual dos oito elementos de imagem decodificar. A representação de intensidade de 2 bits associada com o elemento de imagem selecionado é então remetida a uma consulta de tabela 415. Esta consulta de tabela corresponde ao provedor de conjunto de modificadores 410 e tabela de intensidade 500 da Figura 18. Usando a palavra-código de intensidade de entrada e representação de intensidade, a consulta 415 busca o valor de modificador de intensidade correto de um dos conjuntos de modificadores na tabela. Este valor de modificador assinado de 9 bits (positivo ou negativo) é então provido a um modificador de intensidade 440. Nesta implementação de hardware, o modificador 440 compreende três somadores 441 a 443 e três limitadores 444 a 446. O valor de modificador é introduzido no somador respectivo 441 a 443. Um primeiro somador 441 adiciona o valor de modificador de intensidade ao componente vermelho de 8 bits de extensor de bit 422. Correspondentemente, o somador 442 e somador 443 adiciona o valor de modifícador ao componente verde e azul de 8 bits de extensor de bit 424 e 426, respectivamente. Em uma implementação alternativa, os somadores 441 a 443 podem ser substituídos com outros elementos de modificação, por exemplo multiplicadores ou portas de XOR. As saídas dos somadores 441 a 443 são remetidas a limitadores 444 a 446, que limitam os componentes de cor modificados em intensidade entre 0 e 255. A saída dos limitadores 444 a 446 é a cor de 24 bits descomprimida ou decodificada do elemento de imagem.
Figura 20 ilustra esquematicamente uma possível implementação de hardware dos extensores de bit 422; 424; 426 da Figura 19. Estes extensores recebem um componente de cor de 4 bits (vermelho, verde ou azul) e saem com um componente de cor de 8 bits correspondente estendido. No componente de cor de 8 bits de saída, os quatro bits mais significantes (MSBs) constituem o componente de cor de 4 bits e entrada, o "quinto MSB" corresponde ao MSB do componente de entrada, o "sexto MSB" corresponde ao "segundo MSB" do componente de entrada e os dois bits menos significantes (LSBs) restantes correspondem ao dois LSBs do componente de entrada.
Figura 21 ilustra esquematicamente uma possível implementação de hardware da consulta de tabela 415 da Figura 19. O três LSBs das palavras-código de intensidade de entrada de 4 bits são introduzidos a dois multiplexadores 411 e 412 para selecionar um valor de modificador de intensidade de 7 bits de oito possíveis valores de modificador para cada multiplexador 411 e 412. Destes 16 modificadores de intensidade, os 48 valores restantes poderíam ser calculados se empregar uma tabela de intensidade de acordo com Tabela 1. Os valores de modificador de intensidade selecionados dos multiplexadores 411 e 412 são introduzidos a outro multiplexador 413, que seleciona um destes valores baseado em dados de entrada de 1 bit (1 bit da representação de intensidade de 2 bits) do multiplexador 435 na Figura 19. O valor de modificador selecionado é então remetido ambos a um multiplexador 416 e ao meio de negação 414, que nega o valor de modificador. Também este valor negado é remetido ao multiplexador 416. Este multiplexador 416 seleciona tanto o valor de modificador de intensidade de 7 bits positivo ou o valor negado baseado no bit restante da representação de intensidade do multiplexador 435 na Figura 19. O valor de modificador selecionado (8 bits) é então trazido ambos a um multiplexador 418 e a um deslocador de bit 417, que desloca o valor de modificador um bit à esquerda, resultando em um modificador de intensidade de 9 bits (corresponde a uma multiplicação do valor, em base dez, por dois). O multiplexador 418 então seleciona tanto o valor de modificador de 8 bits ou o valor de modificador de 9 bits baseado no MSB da palavra-código de intensidade. O resultado da seleção é o valor de modificador de intensidade de 9 bits, fora dos 64 possíveis valores de modificador, a usar para um elemento de imagem específico.
Figura 22 ilustra esquematicamente uma possível implementação de hardware do limitadores 444; 445; 446 da Figura 19. A entrada ao limitador 444; 445; 446 é um valor de componente de cor modificado em intensidade de 10 bits. Os oito LSBs deste valor de entrada são trazidos a um multiplexador 447. A outra entrada ao multiplexador é o valor de limiar máximo (255; 8 bits). O multiplexador 447 seleciona tanto o valor de entrada de 8 bits ou o valor de limiar máximo baseado no segundo MSB do componente de cor modificado em intensidade. Em outras palavras, se este segundo MSB for igual a um, o multiplexador 447 sai com o valor de limiar, caso contrário (o segundo MSB é igual a zero), o valor de entrada de 8 bits é saído a um segundo multiplexador 448. Este segundo multiplexador 448 compara a saída do primeiro multiplexador 447 com o valor de limiar mínimo (0; 8 bits) baseado no MSB do componente de cor. Se este MSB ou bit de sinal for igual a um, a saída do primeiro multiplexador 447 é negativa e o valor de limiar mínimo deveria ser selecionado pelo segundo multiplexador 448. Porém, se o bit de sinal for zero, a saída do primeiro multiplexador 447 também deveria ser saída do segundo multiplexador 448. A solução de hardware para o codificador de bloco 400 na Figura 19 é muito simples, compreende basicamente só três adições, uma negação e 12 multiplexadores se os extensores de bit 422; 424; 426, consulta de tabela 415 e limitadores 444; 445; 446 forem implementados de acordo com Figura 20, Figura 21 e Figura 22, respectivamente.
Isto deveria ser comparado à descompressão usando o esquema de S3TC [3], que requer até 42 adições e dois multiplexadores.
Será entendido por uma pessoa qualificada na arte que várias modificações e mudanças podem ser feitas à presente invenção sem partida da extensão dela, que é definida pelas reivindicações anexas.
REFERÊNCIAS
[1] E. J. Delp e O. R. Mitchell, "Image compression using block truncation coding", Transações em Comunicações IEEE, Vol. COM-2, N° 9, pp. 1335-1342, setembro de 1979.
[2] G. Campbell, T. A. DeFanti, J. Frederiksen, S. A. Joyce, L. A. Leske, J. A. Lindberg e D. J.Sandin, "Two bit/pixel Ml color encoding", SIGGRAPH 86, Vol. 20, N° 4, pp. 215-223, agosto de 1986.
[3] Patente US N° 5.956.431.
[4] T. Akenine-Mõller e J. Strõm, "Graphics for the masses: A hardware architecture for mobile phones", Transações em Gráficos ACM, Vol. 22, N° 3, Procedimentos de ACM SIGGRAPH 2003, pp. 801-808, julho de 2003.
[5] S. Fenney, "Texture compression using low-frequency signal modulation", Graphics Hardware 2003, pp.84-91, julho de 2003.
[6] Y. Linde, A. Buzo e R. Gray, "An algorithm for vector quantizer design", Transações em Comunicações IEEE, Vol. 28, pp. 84-94, janeiro de 1980.
REIVINDICAÇÕES

Claims (54)

1. Método para comprimir um bloco de imagem (600) compreendendo múltiplos elementos de imagem (610), o método compreendendo a etapa de: determinar uma palavra-código de cor (710) que é uma representação das cores de ditos elementos de imagem (610) em dito bloco de imagem (600); o método sendo caracterizado pelo fato de compreender ainda: prover uma palavra-código de intensidade (720) que é uma representação de um conjunto de múltiplos modtficadores de intensidade para modificar a intensidade de uma representação de cor gerada com base em dita palavra-código de cor (710); e selecionar, para cada elemento de imagem (610) em dito bloco de imagem (600), uma representação de intensidade (730) associada com um modifícador de intensidade de dito conjunto de modificadorcs de intensidade.
2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que dita etapa de determinar dita palavra-código de cor (710) compreende as etapas de: determinar uma cor média de ditos elementos de imagem (610) em dito bloco de imagem (600); e quantízar dita cor média.
3. Método de acordo com a reivindicação 2, caracterizado pelo fato de que dita etapa de quantizar dita cor média compreende as etapas de: determinar, para cada cor quantizada vizinha de dita cor média, uma representação de cito; e selecionar a cor quantizada vizinha associada com uma representação de erro menor como dita cor média quantizada.
4. Método de acordo com a reivindicação 3, caracterizado pelo fato de que dita representação de erro é uma representação de erro ponderada.
5. Método de acordo com a reivindicação 3 ou 4, caracterizado pelo fato de que dita etapa de determinar dita representação de erro compreende as etapas de: comprimir, para cada cor quantizada vizinha, dito bloco de imagem (600); e determinar, para cada cor quantizada vizinha, dita representação de erro com base em uma comparação de dito bloco de imagem (600) e dita representação comprimida de dito bloco de imagem (600).
6. Método de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que dito conjunto de modificadores de intensidade compreende valores de modificadores de intensidade matematicamente complementares.
7. Método de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que dita etapa de prover palavra-código de intensidade (720) compreende selecionar dito conjunto de modificadores de intensidade de uma tabela de intensidade (500) compreendendo múltiplos conjuntos de modificadores de intensidade, por meio de que dita palavra-código de intensidade (720) habilita a identificação de dito conjunto de modificadores de intensidade selecionado de dita tabela (500).
8. Método de acordo com a reivindicação 7, caracterizado pelo fato de que ditas etapas de selecionar dito conjunto de modificadores de intensidade e selecionar dita representação de intensidade (730) compreendem as etapas de: determinar, para cada elemento de imagem (610) em dito bloco de imagem (600), uma diferença entre um valor de cor original e uma intensidade de cor média modificada com um modificador de intensidade de um conjunto de modificadores de intensidade de dita tabela de intensidade (500); estimar um valor de erro com base em ditas diferenças determinadas; e selecionar um conjunto de modifícadores de intensidade e modificadores de intensidade que minimizam dito valor de erro,
9. Método de acordo com a reivindicação 8, caracterizado pelo fato de que dito valor de erro é um valor de erro ponderado, um peso para um dado componente de cor sendo igual para dita cor original e dita cor média,
10. Método de acordo com a reivindicação 7, caracterizado pelo fato de que ditas etapas de determinar dita palavra-código de cor {710), selecionar dito conjunto de modific adores de intensidade e selecionar dita representação de intensidade (730) compreendem as etapas de; determinar, para cada elemento de imagem (610) em dito bloco de imagem (600), uma diferença entre um valor de cor original e uma intensidade de cor quantízada modificada com um modificador de intensidade de um conjunto de modific adores de intensidade de dita tabela de intensidade (500); estimar um valor de erro com base em ditas diferenças determinadas; e selecionar uma cor quantízada, um conjunto de modificadores de intensidade e modificadores de intensidade que minimizam dito valor de erro, por meio de que dita palavra-código de cor (710) compreende dita cor quantízada selecionada.
11. Método de acordo com a reivindicação 10, caracterizado pelo fato de que dito valor de erro é um valor de erro ponderado, um peso para um dado componente de cor sendo igual para dita cor original e dita cor quantízada.
12. Método de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que dito bloco de imagem (600) compreende elementos de imagem de 2™ x 2" (610), onde m = 3-n e n = 0, 1,2, 3.
13. Método de acordo com a reivindicação 1, caracterizado pelo fato de que uma representação comprimida (700) de dito bloco de imagem (600) é uma sequência de 32 bits, onde dita palavra-código de cor (710) compreende 12 bits, dita palavra-código de intensidade (720) compreende 4 bits e uma sequência de ditas representações de intensidade (730) compreende 16 bits.
14. Método para codificar uma imagem, caracterizado pelo fato de compreender as etapas de: decompor dita imagem em blocos de imagem (600), cada bloco de imagem (600) compreendendo múltiplos elementos de imagem (610); e determinar, para pelo menos um bloco de imagem (600), uma representação codificada (700) comprimindo dito pelo menos um bloco de imagem (600) pelo método conforme definido em qualquer uma das reivindicações 1 a 12.
15. Método de acordo com a reivindicação 14, caracterizado pelo fato de que dita etapa de determinar dita representação codificada (700) é executada para cada bloco de imagem (600).
16. Método de acordo com a reivindicação 14, caracterizado pelo fato de que dita representação codificada (700) de dito bloco de imagem (600) é uma sequência de 32 bits, onde dita palavra-código de cor (710) compreende 12 bits, dita palavra-código de intensidade (720) compreende 4 bits e uma sequência de ditas representações de intensidade (730) compreende 16 bits.
17. Método para processar uma representação comprimida (700) de um bloco de imagem (600) compreendendo múltiplos elementos de imagem (610), dita representação comprimida (700) compreendendo uma palavra-código de cor (710), o método compreendendo a etapa de: gerar uma representação de cor com base em dita palavra-código de cor (710) para pelo menos um elemento de imagem (610) em dito bloco de imagem (600), caracterizado pelo fato de que dita representação comprimida (700) compreende adicionalmente uma palavra-código de intensidade (720) e uma sequência de representação de intensidade (730), e dito método compreendendo adicionalmente as etapas de: prover um conjunto de múltiplos modificadores de intensidade com base em dita palavra-código de intensidade (720); para pelo menos um elemento de imagem (610) em dito bloco de imagem (600): selecionar um modificador de intensidade de dito conjunto de modificadores de intensidade com base em dita sequência de representação de intensidade (730); e modificar a intensidade de dita representação de cor para dito pelo menos um elemento de imagem (610) com base em dito modificador de intensidade selecionado.
18. Método de acordo com a reivindicação 17, caracterizado pelo fato de que dito conjunto de modificadores de intensidade compreende valores de modificador de intensidade matematicamente complementares.
19. Método de acordo com a reivindicação 17 ou 18, caracterizado pelo fato de que dita etapa de prover dito conjunto de modificadores de intensidade compreende selecionar, com base em dita palavra-código de intensidade (720), dito conjunto de modificadores de intensidade de uma tabela de intensidade (500) compreendendo múltiplos conjuntos de modificadores de intensidade.
20. Método de acordo com a reivindicação 19, caracterizado pelo fato de que dita tabela (500) compreende um primeiro sub-conjunto de conjuntos de modificadores de intensidade, dito método compreendendo adicionalmente determinar modificadores de intensidade de conjuntos de modificadores de intensidade para um segundo sub-conjunto com base em modificadores de intensidade de conjuntos de modificadores de intensidade em dito primeiro sub-conjunto.
21. Método de acordo com qualquer uma das reivindicações 17 a 20, caracterizado pelo fato de que dita sequência de representação de intensidade (730) é uma sequência compreendendo, para cada elemento de imagem (610) em dita representação (700) de dito bloco de imagem (600), um índice de intensidade habilitando a identificação de qual de ditos múltiplos modificadores de intensidade de dito conjunto de modificadores de intensidade usar para dito elemento de imagem (610).
22. Método de acordo com qualquer uma das reivindicações 17 a 21, caracterizado pelo fato de que dita etapa de modificação de intensidade compreende adicionar um valor de modificador de intensidade selecionado a todos os valores de componente de cor de dita representação de cor.
23. Método de acordo com qualquer uma das reivindicações 17 a 21, caracterizado pelo fato de que dita etapa de modificação de intensidade compreende adicionar um valor de modificador de intensidade selecionado multiplicado por pesos específicos para componente a todos os valores de componente de cor de dita representação de cor.
24. Método de acordo com a reivindicação 22 ou 23, caracterizado pelo fato de limitar as somas de dito valor de modificador de intensidade e ditos valores de componente de cor entre um valor de limiar mínimo e um valor de limiar máximo.
25. Método de acordo com qualquer uma das reivindicações 17 a 24, caracterizado pelo fato de que dito bloco de imagem (600) compreende elementos de imagem de 2mx2n (610), onde m = 3-n e n = 0, 1,2, 3.
26. Método de acordo com qualquer uma das reivindicações 17 a 25, caracterizado pelo fato de que dita representação (700) de dito bloco de imagem (600) é uma sequência de 32 bits, onde dita palavra-código de cor (710) compreende 12 bits, dita palavra-código de intensidade (720) compreende 4 bits e dita sequência de representação de intensidade (730) compreende 16 bits,
27. Método para decodificar uma imagem codificada que compreende representações codificadas (700) de blocos de imagem (600) compreendendo múltiplos elementos de imagem (610), uma representação codificada (700) compreendendo uma palavra-código de cor (710), uma palavra-código de intensidade (720) e uma sequência de representação de intensidade (730), o método sendo caracterizado pelo fato de que compreende, para pelo menos uma representação codificada (700) de um bloco de imagem (600), as etapas de: processar dita pelo menos uma representação codificada (700) de dito bloco de imagem (600) pelo método conforme definido em qualquer uma das reivindicações 17 a 26; e gerar uma representação decodificada de dita imagem codificada compondo múltiplos elementos de imagem coloridos e modificados em intensidade (610),
28. Representação de sinal (700) de um bloco de imagem (600) compreendendo múltiplos elementos de imagem (610), dita representação de sinal (700) compreendendo: uma palavra-código de cor (710) que ê uma representação das cores de ditos elementos de imagem (610) em dito bloco de imagem (600); a representação de sinal caracterizada pelo fato de compreender ainda: uma palavra-código de intensidade (720), que é uma representação de um conjunto de múltiplos modificadores de intensidade para modificar a intensidade de uma representação de cor gerada com base em dita palavra-código de cor (710); e uma sequência (730) de representações de intensidade, onde uma representação de intensidade é associada, para um elemento de imagem (610) em dito bloco de imagem (600), com um modificador de intensidade de dito conjunto de modificadores de intensidade.
29. Representação de sinal de acordo com a reivindicação 28, caracterizada pelo fato de que dita representação de sinal (700) é uma sequência de 32 bits, onde dita palavra-código de cor (710) compreende 12 bits, dita palavra-código de intensidade (720) compreende 4 bits e dita sequência de representação de intensidade (730) compreende 16 bits.
30. Sistema (300) para comprimir um bloco de imagem (600) compreendendo múltiplos elementos de imagem (610), dito sistema compreendendo: um quantizador de cor (310) para determinar uma palavra-código de cor (710) que é uma representação das cores de ditos elementos de imagem (610) em dito bloco de imagem (600); dito sistema sendo caracterizado pelo fato de que compreende ainda: um quantizador de intensidade (320) para prover uma palavra-código de intensidade (720) que é uma representação de um conjunto de múltiplos modificadores de intensidade para modificar a intensidade de uma representação de cor gerada com base em dita palavra-código de cor (710); e um seletor de representação de intensidade (330) para selecionar, para cada elemento de imagem (610) em dito bloco de imagem (600), uma representação de intensidade (730) associada com um modificador de intensidade de dito conjunto de modificadores de intensidade.
31. Sistema de acordo com a reivindicação 30, caracterizado pelo fato de que dito quantizador de cor (310) compreende: meio (312) para determinar uma cor média de ditos elementos de imagem em dito bloco de imagem; e meio (314) para quantizar dita cor média.
32. Sistema de acordo com a reivindicação 31, caracterizado pelo fato de que dito meio de quantização (314) é configurado para prover cores quantizadas vizinhas de dita cor média, dito sistema (300) compreendendo ainda um estimador de erro (340) para determinar, para cada cor quantizada vizinha de dita cor média, uma representação de erro e para selecionar a cor quantizada vizinha associada com uma representação de erro menor como dita cor média quantizada.
33. Sistema de acordo com a reivindicação 32, caracterizado pelo fato de que dita representação de erro é uma representação de erro ponderada.
34. Sistema de acordo com a reivindicação 32 ou 33, caracterizado pelo fato de que dito sistema (300) é configurado para comprimir, para cada cor quantizada vizinha, dito bloco de imagem (600) e dito estimador de erro (340) é configurado para determinar, para cada cor quantizada vizinha, dita representação de erro baseada em uma comparação de dito bloco de imagem (600) e dita representação comprimida de dito bloco de imagem (600).
35. Sistema de acordo com qualquer uma das reivindicações 30 a 34, caracterizado pelo fato de que dito conjunto de modificadores de intensidade compreende valores de modificadores de intensidade matematicamente complementares.
36. Sistema de acordo com a reivindicação 30, caracterizado pelo fato de compreender uma tabela de intensidade (500) compreendendo múltiplos conjuntos de modificadores de intensidade, e dito quantizador de intensidade (320) compreendendo um seletor (322) para selecionar dito conjunto de modificadores de intensidade de dita tabela de intensidade (500), por meio de que dita palavra-código de intensidade (720) habilita a identificação de dito conjunto de modificadores de intensidade selecionado de dita tabela (500).
37. Sistema de acordo com a reivindicação 36, caracterizado pelo fato de compreender: meio (340) para determinar, para cada elemento de imagem (610) em dito bloco de imagem (600), uma diferença entre um valor de cor original e uma cor média modificada em intensidade com um modificador de intensidade de um conjunto de modificadores de intensidade de dita tabela de intensidade (500); e um estimador de erro (340) para estimar um valor de erro com base em ditas diferenças determinadas, e dito seletor de conjunto de modificadores (322) e dito seletor de representação (330) são configurados para selecionar um conjunto de modificadores de intensidade e modificadores de intensidade que minimizam dito valor de erro.
38. Sistema de acordo com a reivindicação 37, caracterizado pelo fato de que dito estimador de erro (340) é adaptado para estimar um valor de erro ponderado, um peso para um dado componente de cor sendo igual para dita cor original e dita cor média.
39. Sistema de acordo com a reivindicação 36, caracterizado pelo fato de compreender: meio (340) para determinar, para cada elemento de imagem (610) em dito bloco de imagem (600), uma diferença entre um valor de cor original e uma cor quantizada modificada em intensidade com um modificador de intensidade de um conjunto de modificadores de intensidade de dita tabela de intensidade (500); e um estimador de erro (340) para estimar um valor de erro com base em ditas diferenças determinadas, e dito quantizador de cor (310), dito seletor de conjunto de modificadores (322) e dito seletor de representação (330) são configurados para selecionar uma cor quantizada, um conjunto de modificadores de intensidade e modificadores de intensidade que minimizam dito valor de erro, por meio de que dita palavra-código de cor (710) compreende dita cor quantizada selecionada.
40. Sistema de acordo com a reivindicação 39, caracterizado pelo fato de que dito estimador de erro (340) é adaptado para estimar um valor de erro ponderado, um peso para um dado componente de cor sendo igual para dita cor original e dita cor quantizada.
41. Sistema de acordo com qualquer uma das reivindicações 30 a 40, caracterizado pelo fato de que dito bloco de imagem (600) compreende elementos de imagem de 2mx 2n (610), onde m = 3-n e n = 0, 1, 2,3.
42. Sistema de acordo com a reivindicação 30, caracterizado pelo fato de que uma representação comprimida (700) de dito bloco de imagem (600) é uma sequência de 32 bits, onde dita palavra-código de cor (710) compreende 12 bits, dita palavra-código de intensidade (720) compreende 4 bits e uma sequência (730) de ditas representações de intensidade compreende 16 bits.
43. Sistema para codificar uma imagem (210), caracterizado pelo fato de compreender: um decompositor de imagem (215) para decompor uma imagem em blocos de imagem (600), cada bloco de imagem (600) compreendendo múltiplos elementos de imagem (610); e um sistema (300) para comprimir um bloco de imagem (600) conforme definido em qualquer uma das reivindicações 30 a 41 para gerar uma representação codificada (700) de dito bloco de imagem (600).
44. Sistema de acordo com a reivindicação 43, caracterizado pelo fato de que dita representação codificada (700) de dito bloco de imagem (600) é uma sequência de 32 bits, onde dita palavra-código de cor (710) compreende 12 bits, dita palavra-código de intensidade (720) compreende 4 bits e uma sequência (730) de ditas representações de intensidade compreende 16 bits.
45. Sistema (400) para processar uma representação comprimida (700) de um bloco de imagem (600) compreendendo múltiplos elementos de imagem (610), dita representação comprimida (700) compreendendo uma palavra-código de cor (710), dito sistema (400) compreendendo: um gerador de cor (420) para gerar uma representação de cor para pelo menos um elemento de imagem (610) em dito bloco de imagem (600) com base em dita palavra-código de cor (710), caracterizado pelo fato de que dita representação comprimida (700) compreende ainda uma palavra-código de intensidade (720) e uma sequência de representação de intensidade (730), e dito sistema (400) compreendendo ainda: meio (410) para prover um conjunto de múltiplos modificadores de intensidade com base em dita palavra-código de intensidade (720); um seletor (430) para selecionar, para dito pelo menos um elemento de imagem (610), um modificador de intensidade de dito conjunto de modificadores de intensidade identificado baseado em dita sequência de representação de intensidade (730); e um modificador de intensidade (440) para modificar a intensidade de dita representação de cor para dito pelo menos um elemento de imagem (610) com base em dito modificador de intensidade selecionado.
46. Sistema de acordo com a reivindicação 45, caracterizado pelo fato de compreender uma tabela de intensidade (500) compreendendo múltiplos conjuntos de modificadores de intensidade, e dito meio (410) para prover dito conjunto de modificadores de intensidade é configurado para selecionar dito conjunto de modificadores de intensidade de dita tabela de intensidade (500) com base em em dita palavra-código de intensidade (720).
47. Sistema de acordo com a reivindicação 45 ou 46, caracterizado pelo fato de que dito conjunto de modificadores de intensidade compreende valores de modificadores de intensidade matematicamente complementares.
48. Sistema de acordo com qualquer uma das reivindicações 45 a 47, caracterizado pelo fato de que dita sequência de representação de intensidade (730) é uma sequência compreendendo, para cada elemento de imagem (610) em dita representação (700) de dito bloco de imagem (600), um índice de intensidade habilitando a identificação de qual de ditos múltiplos modificadores de intensidade de dito conjunto de modificadores de intensidade usar para dito elemento de imagem (610).
49. Sistema de acordo com qualquer uma das reivindicações 45 a 48, caracterizado pelo fato de que dito modificador de intensidade (440) é configurado para adicionar um valor de modificador de intensidade selecionado a todos os valores de componente de cor de dita representação de cor.
50. Sistema de acordo com qualquer uma das reivindicações 45 a 48, caracterizado pelo fato de que dito modificador de intensidade (440) é configurado para adicionar um valor de modificador de intensidade selecionado multiplicado por pesos específicos para componente a todos os valores de componente de cor de dita representação de cor.
51. Sistema de acordo com a reivindicação 49 ou 50, caracterizado pelo fato de que dito modificador de intensidade (440) é configurado para limitar as somas de dito valor de modificador de intensidade e ditos valores de representação de cor entre um valor de limiar mínimo e um valor de limiar máximo.
52. Sistema de acordo com qualquer uma das reivindicações 45 a 51, caracterizado pelo fato de que dito bloco de imagem (600) compreende elementos de imagem de 2m x 2n (610), onde m = 3-n e n = 0, 1, 2,3.
53. Sistema de acordo com qualquer uma das reivindicações 45 a 52, caracterizado pelo fato de que dita representação (700) de dito bloco de imagem (600) é uma sequência de 32 bits, onde dita palavra-código de cor (710) compreende 12 bits,, dita palavra-código de intensidade (720) compreende 4 bits e dita sequência de representação de intensidade (730) compreende 16 bits.
54. Sistema (220) para decodificar uma imagem codificada que compreende representações codificadas (700) de blocos de imagem (600) compreendendo múltiplos elementos de imagem (610), uma representação codificada (700) compreendendo uma palavra-código de cor (710), uma palavra-código de intensidade (720) e uma sequência de representação de intensidade (730), dito sistema (220) sendo caracterizado pelo fato de compreender: um sistema (400) para processar uma representação codificada (700) de um bloco de imagem (600) conforme definido em. qualquer uma das reivindicações 45 a 53; c meio (225) para compor múltiplos elementos de imagem modificados em intensidade e coloridos (610) para gerar uma representação decodificada de dita imagem codificada.
BRPI0417576A 2003-12-19 2004-07-08 "método e sistema para comprimir um bloco de imagem, para codificar uma imagem, para processar uma representação comprimida de um bloco de imagem, e para decodificar uma imagem codificada, e, representação de sinal de um bloco de imagem". BRPI0417576B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE0303497A SE526226C2 (sv) 2003-12-19 2003-12-19 Bildbehandling
PCT/SE2004/001120 WO2005059836A1 (en) 2003-12-19 2004-07-08 Image processing

Publications (2)

Publication Number Publication Date
BRPI0417576A BRPI0417576A (pt) 2007-03-20
BRPI0417576B1 true BRPI0417576B1 (pt) 2017-04-18

Family

ID=30768816

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0417576A BRPI0417576B1 (pt) 2003-12-19 2004-07-08 "método e sistema para comprimir um bloco de imagem, para codificar uma imagem, para processar uma representação comprimida de um bloco de imagem, e para decodificar uma imagem codificada, e, representação de sinal de um bloco de imagem".

Country Status (15)

Country Link
US (1) US7636471B2 (pt)
EP (2) EP2688042B1 (pt)
JP (1) JP4444967B2 (pt)
CN (3) CN100550057C (pt)
AU (1) AU2004298705B2 (pt)
BR (1) BRPI0417576B1 (pt)
CA (1) CA2545414C (pt)
ES (1) ES2716560T3 (pt)
HU (1) HUE042288T2 (pt)
PL (1) PL2688042T3 (pt)
RU (1) RU2317587C1 (pt)
SE (1) SE526226C2 (pt)
TR (1) TR201901009T4 (pt)
WO (1) WO2005059836A1 (pt)
ZA (1) ZA200604184B (pt)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE526226C2 (sv) 2003-12-19 2005-08-02 Ericsson Telefon Ab L M Bildbehandling
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
ES2569419T3 (es) 2005-05-27 2016-05-10 Telefonaktiebolaget Lm Ericsson (Publ) Procesamiento de imágenes basado en peso
EP1924970B1 (en) * 2005-08-19 2009-03-11 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Texture compression based on two hues with modified brightness
US7873212B2 (en) 2006-01-24 2011-01-18 Nokia Corporation Compression of images for computer graphics
US7787691B2 (en) * 2006-04-11 2010-08-31 Telefonaktiebolaget Lm Ericsson (Publ) High quality image processing
US8233003B2 (en) 2007-03-12 2012-07-31 Seiko Epson Corporation Image processing device, image processing method, and electronic instrument
JP5157419B2 (ja) * 2007-03-12 2013-03-06 セイコーエプソン株式会社 画像処理装置、画像処理方法及び電子機器
JP5306317B2 (ja) * 2007-04-04 2013-10-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ベクトルを使用する画像処理
KR101431185B1 (ko) * 2007-06-22 2014-08-27 삼성전자 주식회사 영상 향상 방법 및 장치, 이를 이용한 영상 처리 시스템
TWI366391B (en) * 2007-06-28 2012-06-11 Novatek Microelectronics Corp Method and circuit for correcting signals and image correcting method and circuit using the same
US8013862B2 (en) * 2007-11-16 2011-09-06 Microsoft Corporation Texture codec
US20100226568A1 (en) * 2009-03-09 2010-09-09 Smith Micro Software, Inc. Effective color modeling method for predictive image compression
CN102571270A (zh) * 2009-03-27 2012-07-11 华为技术有限公司 解码方法及装置
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
JP2011066720A (ja) * 2009-09-17 2011-03-31 Canon Inc 画像処理装置、制御方法、及びプログラム
WO2011065886A1 (en) * 2009-11-24 2011-06-03 Telefonaktiebolaget L M Ericsson (Publ) Decoding system and method operable on encoded texture element blocks
US8659616B2 (en) * 2010-02-18 2014-02-25 Nvidia Corporation System, method, and computer program product for rendering pixels with at least one semi-transparent surface
CN102244779B (zh) * 2010-05-11 2014-07-30 联想(北京)有限公司 数据的发送和接收方法及设备、数据传输系统
US9129543B2 (en) * 2010-06-18 2015-09-08 Telefonaktie L M Ericsson (publ) Texture compression and decompression
EP3334161B1 (en) 2010-09-13 2019-08-21 Sony Interactive Entertainment Inc. Image processing device, image processing method, and data structure of moving image file
US10057559B2 (en) * 2010-12-03 2018-08-21 Koninklijke Philips N.V. Transferring of 3D image data
US20130294505A1 (en) * 2011-01-05 2013-11-07 Koninklijke Philips N.V. Video coding and decoding devices and methods preserving
CN103404138B (zh) * 2011-01-05 2017-01-18 皇家飞利浦电子股份有限公司 保留ppg相关信息的视频编码与解码设备及方法
GB2487717B (en) * 2011-01-25 2017-06-21 Advanced Risc Mach Ltd Image encoding method
EP2695140A1 (en) 2011-04-04 2014-02-12 Telefonaktiebolaget LM Ericsson (PUBL) A method and a processor for texture compression
WO2012146320A1 (en) * 2011-04-29 2012-11-01 Telefonaktiebolaget L M Ericsson (Publ) Encoder, decoder and methods thereof for texture compression
CN102972023B (zh) 2011-07-13 2016-09-28 松下知识产权经营株式会社 图像压缩装置、图像解压缩装置以及图像处理装置
JP6003049B2 (ja) * 2011-11-30 2016-10-05 富士通株式会社 情報処理装置、画像送信方法及び画像送信プログラム
JP5915131B2 (ja) * 2011-12-08 2016-05-11 ソニー株式会社 画像処理装置、画像処理方法及びプログラム
US9106936B2 (en) * 2012-01-25 2015-08-11 Altera Corporation Raw format image data processing
WO2014014238A1 (en) 2012-07-17 2014-01-23 Samsung Electronics Co., Ltd. System and method for providing image
KR102091137B1 (ko) * 2012-07-17 2020-03-20 삼성전자주식회사 영상 제공 시스템 및 방법
US10147202B2 (en) * 2013-03-15 2018-12-04 Arm Limited Methods of and apparatus for encoding and decoding data
US9716871B2 (en) * 2014-09-30 2017-07-25 Apple Inc. YUV signal generation for high dynamic range video content
CN104899838B (zh) * 2015-05-29 2017-11-28 小米科技有限责任公司 调整图像的方法及装置
US10645418B2 (en) * 2018-04-13 2020-05-05 Google Llc Morphological anti-ringing filter for lossy image compression
CN113076050B (zh) * 2021-04-25 2022-05-20 深圳创维-Rgb电子有限公司 基于内存拷贝的人机交互方法、装置、电视机及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6451888A (en) * 1987-08-24 1989-02-28 Sharp Kk Picture processor
CA1315392C (en) * 1988-11-18 1993-03-30 Taejeong Kim Side-match and overlap-match vector quantizers for images
US5204665A (en) * 1990-05-02 1993-04-20 Xerox Corporation Color editing with simple encoded images
DE4335143A1 (de) * 1993-10-15 1995-04-20 Hell Ag Linotype Verfahren und Einrichtung zur Umsetzung von Farbwerten
RU2105351C1 (ru) * 1995-02-06 1998-02-20 Товарищество с ограниченной ответственностью "Информ Инжиниринг" Способ анализа изображения текстуры объекта
US5742892A (en) * 1995-04-18 1998-04-21 Sun Microsystems, Inc. Decoder for a software-implemented end-to-end scalable video delivery system
US5793371A (en) * 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US6404923B1 (en) * 1996-03-29 2002-06-11 Microsoft Corporation Table-based low-level image classification and compression system
US5748904A (en) * 1996-09-13 1998-05-05 Silicon Integrated Systems Corp. Method and system for segment encoded graphic data compression
US5926647A (en) * 1996-10-11 1999-07-20 Divicom Inc. Processing system with dynamic alteration of a color look-up table
US6658146B1 (en) * 1997-10-02 2003-12-02 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values
US5956431A (en) 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
JPH11313219A (ja) * 1998-01-20 1999-11-09 Fujitsu Ltd カラーデータ変換方法
CA2347383A1 (en) 1998-07-03 2000-01-13 Hudson Co., Ltd. Image coding/decoding method and recordind medium having program for this method recorded thereon
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
AU3887600A (en) * 1999-03-19 2000-10-23 Microsoft Corporation Methods and apparatus for generating and representing luminance intensity values
US7251360B2 (en) * 2003-02-14 2007-07-31 Canon Kabushiki Kaisha Look-up table generation method, computer program, and imaging apparatus
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

Also Published As

Publication number Publication date
TR201901009T4 (tr) 2019-02-21
CN100504926C (zh) 2009-06-24
EP2688042A1 (en) 2014-01-22
CA2545414C (en) 2014-08-26
SE526226C2 (sv) 2005-08-02
CA2545414A1 (en) 2005-06-30
SE0303497L (sv) 2005-06-20
PL2688042T3 (pl) 2019-06-28
JP2007515124A (ja) 2007-06-07
CN1898699A (zh) 2007-01-17
RU2317587C1 (ru) 2008-02-20
EP2688042B1 (en) 2019-01-09
HUE042288T2 (hu) 2019-06-28
US7636471B2 (en) 2009-12-22
CN1898700A (zh) 2007-01-17
US20070140554A1 (en) 2007-06-21
ES2716560T3 (es) 2019-06-13
CN100498838C (zh) 2009-06-10
SE0303497D0 (sv) 2003-12-19
BRPI0417576A (pt) 2007-03-20
AU2004298705A1 (en) 2005-06-30
CN100550057C (zh) 2009-10-14
ZA200604184B (en) 2007-11-28
WO2005059836A1 (en) 2005-06-30
EP1697897B1 (en) 2014-05-21
JP4444967B2 (ja) 2010-03-31
CN1918602A (zh) 2007-02-21
EP1697897A1 (en) 2006-09-06
AU2004298705B2 (en) 2009-08-20

Similar Documents

Publication Publication Date Title
BRPI0417576B1 (pt) &#34;método e sistema para comprimir um bloco de imagem, para codificar uma imagem, para processar uma representação comprimida de um bloco de imagem, e para decodificar uma imagem codificada, e, representação de sinal de um bloco de imagem&#34;.
RU2407223C2 (ru) Сжатие текстуры на основании двух оттенков с модифицированной яркостью
EP1697899B1 (en) Multi-mode alpha imag eprocessing
EP1697900B1 (en) Multi-mode image processing
US7787691B2 (en) High quality image processing
ES2728097T3 (es) Procesamiento de imágenes basado en peso

Legal Events

Date Code Title Description
B06A Notification to applicant to reply to the report for non-patentability or inadequacy of the application [chapter 6.1 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: G06T 9/00 , H04N 7/30

Ipc: H04N 19/105 (2014.01), H04N 19/176 (2014.01), H04N

B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted