PT754393E - Codificacao de cores de imagens de video - Google Patents

Codificacao de cores de imagens de video Download PDF

Info

Publication number
PT754393E
PT754393E PT96900402T PT96900402T PT754393E PT 754393 E PT754393 E PT 754393E PT 96900402 T PT96900402 T PT 96900402T PT 96900402 T PT96900402 T PT 96900402T PT 754393 E PT754393 E PT 754393E
Authority
PT
Portugal
Prior art keywords
color
predominant
pixels
execution
code
Prior art date
Application number
PT96900402T
Other languages
English (en)
Inventor
David Edward Penna
Asher John Hoskins
Original Assignee
Koninkl Philips Electronics Nv
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26306435&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=PT754393(E) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from GBGB9502172.1A external-priority patent/GB9502172D0/en
Application filed by Koninkl Philips Electronics Nv filed Critical Koninkl Philips Electronics Nv
Publication of PT754393E publication Critical patent/PT754393E/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • H04N11/042Codec means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/644Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Color Television Systems (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Processing Of Color Television Signals (AREA)

Description

15434¾
DESCRIÇÃO
CODIFICAÇÃO DE CORES DE IMAGENS DE VÍDEO A presente invenção abrange a codificação e descodificação de configurações de imagens digitais de vídeo e particularmente a codificação de valores de cores de pixels.
Uma técnica bem conhecida é a codificação em extensão de execução, usada por exemplo como um dos modos de codificação no padrão interactivo (CD-i) de Disco Compacto. A técnica permite que conjuntos de valores de pixels adjacentes sejam codificados de maneira mais compacta pela especificação da cor uma vez e depois pela contagem do número (n) de pixels idênticos em vez de repetir o código de cores (n) vezes. Na Patente US 4.843.466 descreve-se um exemplo de um método e um sistema baseados na codificação da extensão da execução. No método e sistema descritos para descomprimir dados de vídeo a cores para utilização num sistema de comunicação de informações de vídeo, cada cor diferente inserida numa configuração de imagem tem um valor de cor respectivo que lhe é atribuído, com uma extensão de execução digitalizada e uma informação de cores representando os pixels nas linhas de exploração da configuração de uma imagem de vídeo.
Podem encontrar-se mais informações acerca da codificação em extensão de execução por exemplo em «Principies of Interactive Computer Graphics» por W. M. Newman e R. F. Sproul, International Student Edition, 1979, págs. 287-289, publ. McGraw-Hill, ISBN 0-07-066455-2, e abaixo far-se-á um breve resumo dos pontos relevantes com referência às Figuras 1 a 3 dos desenhos anexos, referentes à técnica anterior.
Embora a codificação em extensão de execução seja muito eficiente em termos de compressão de dados para execuções longas, esta eficiência fica reduzida nas execuções mais curtas e as configurações com um grande número de execuções curtas podem tornar-se de codificação informaticamente dispendiosa. Assim, é um objectivo da presente invenção proporcionar um esquema de codificação que obtenha pelo menos um grau razoável de compressão sem incorrer em grandes despesas devido à sua complexidade. 1
De acordo com a presente invenção, proporciona-se um método para codificar valores de cores de pixels para uma configuração de imagens digitais de vídeo em que a cada cor diferente inserida na imagem é atribuído um valor de cor, caracterizado por se identificar uma cor predominante para a configuração das imagens, e se codificarem execuções de pelo menos três pixels sucessivos da cor predominante como uma primeira palavra de código que indica uma execução e uma segunda palavra de código que indica a extensão da execução e em que pixels com cores diferentes da cor predominante são codificados como códigos contendo pelo menos os valores das cores respectivas.
Também de acordo com a presente invenção, proporciona-se um aparelho codificador de imagens de vídeo preparado para codificar valores de cores de pixels para uma configuração de imagens digitais de vídeo pela atribuição a cada cor diferente contida na imagem um valor de cor correspondente; caracterizado por, sendo identificada uma cor predominante para a configuração das imagens, o aparelho incluir um dispositivo que pode ser accionado para identificar execuções de pelo menos três pixels sucessivos da cor predominante e codificar cada uma destas execuções como uma primeira palavra de código que indica uma execução e uma segunda palavra de código que indica a extensão da execução, e um dispositivo que pode ser accionado para identificar pixels com cores diferentes da cor predominante e codificá-los como códigos que contêm pelo menos os valores das cores respectivas. A invenção proporciona adicionalmente um aparelho para exibição de imagens de vídeo preparado para receber e descodificar um sinal de imagens de vídeo que compreende configurações codificadas de valores de cores de pixels, em que execuções de três ou mais pixels sucessivos de uma cor predominante predeterminada para a configuração foram codificadas sob a forma de uma primeira palavra de código que indica uma execução e uma segunda palavra de código que indica a extensão da execução, e pixels de cores diferentes da cor predeterminada foram codificados sob a forma de um código que contém pelo menos o valor da cor respectiva, incluindo o referido aparelho pelo menos uma tabela de consulta de cores de pixels, incluindo a cor predominante, para as configurações das imagens digitais de vídeo endereçadas pelos valores codificados das cores de pixels, e um dispositivo que pode ser accionado para gerar execuções de visualização de pelo menos três pixels sucessivos da 2 cor predominante bem como pixels gerados individualmente com cores diferentes da cor predominante.
Numa primeira forma de realização da invenção, só a cor predominante da configuração é codificada em extensão de execução. Assim, para a cor predominante, não é necessário especificar o código da cor todas as vezes que se especifica uma execução. Por outro lado, no que se refere à cor predominante, aumenta a eficiência, pois a semelhança de execuções é geralmente a mais elevada. Uma situação particularmente comum será a de haver muitas execuções de extensão curta a média na cor predominante, com menos execuções deste tipo noutras cores. Para atingir uma eficiência superior para esta situação, todas as execuções de, por exemplo, três ou mais pixels da mesma cor podem ser codificadas em extensão de execução para obter uma elevada compressão de dados mas ainda sem a exigência de pelo menos as execuções de extensão curta a média (por exemplo 3 a 9 pixels) conterem um código de cores quando a execução é da cor predominante. A primeira palavra de código pode incluir, de modo adequado, um subcódigo indicando uma gama de uma certo número de gamas de extensões de execução, indicando a segunda palavra de código uma extensão de execução pertencente à gama indicada. Deste modo, a extensão da segunda palavra de código pode permanecer mais curta que seria o caso se fosse indispensável especificar a extensão absoluta.
De modo a permitir situações em que a cor predominante muda dentro da configuração (por exemplo um «ecrã dividido» com um fundo com uma cor diferente em cada parte), pode providenciar-se um código adicional incluindo a especificação de um valor de cor, em que, depois da instalação do código adicional num fluxo de códigos de cores de pixels, a cor predominante especificada para execuções codificadas é alterada para a cor especificada no código adicional. Este código adicional é identificado na descrição que se segue como um código de MUDANÇA DE FUNDO e pode compreender uma primeira palavra de código que indica uma execução e um subcódigo que indica uma mudança da cor predominante, e uma segunda palavra de código que compreende o valor da cor para a nova cor predominante. Como a primeira palavra de código tem o mesmo subcódigo para indicar tanto uma execução 3 como uma mudança da cor predominante, sendo a diferença indicada por um subcódigo específico da primeira palavra de código, o número de códigos de «controlo» é reduzido ao mínimo, permitindo assim um número superior de códigos «livres» que podem ser atribuídos a cores.
Para evitar a falta de eficiência associada à codificação em extensão de execução de execuções curtas, podem ser respectivamente codificadas execuções de um ou dois pixels da cor predominantes sob a forma de uma ou duas iterações sucessivas do valor da cor para a cor predominante, ou podem ser respectivamente atribuídos códigos curtos únicos.
Para tomar em consideração a situação em que a cor predominante muda entre configurações sucessivas, a sequência de códigos para uma configuração pode, de modo adequado, iniciar-se com o código adicional que especifica a cor predominante inicial, isto é, dando instruções para uma mudança à cor predominante especificada a ser usada para todas as execuções subsequentes, mesmo não sofrendo alterações em relação à configuração anterior.
Se for o caso de a cor predominante poder mudar um certo número de vezes no decorrer de uma configuração, o comando da mudança pode revelar-se ineficiente. Assim, numa outra forma de realização da presente invenção, pode identificar-se um subconjunto das cores contidas na imagem como cores predominantes, sendo atribuídos a outras cores (diferentes das predominantes) os respectivos códigos de cores de uma primeira extensão, sendo atribuída às cores predominantes a palavra de código das cores respectivas de uma segunda extensão, inferior à primeira, e sendo codificadas execuções de uma das cores predominantes como uma primeira palavra de código que indica a execução de uma cor predominante e uma segunda palavra de código que indica respectivamente, em subcódigos separados, a extensão da execução e o código (mais curto) da cor.
Descrever-se-ão agora formas de realização preferidas da presente invenção, apenas a título de exemplo, e com referência aos desenhos anexos, nos quais: 4 a Figura 1 representa um código de cores conhecido para um único pixel; a Figura 2 representa um código de cores conhecido para uma execução de pixels com a extensão L; a Figura 3 representa uma sequência de valores de cores de pixels convertidos em códigos de cores como nas Figuras 1 e 2; a Figura 4 é uma tabela de valores de código de acordo com uma primeira forma de realização da invenção; a Figura 5 é uma versão alternativa da tabela da Figura 4, representando uma primeira forma de realização alternativa da invenção; as Figuras 6 e 7 são tabelas de valores de código para pixels respectivamente de fundo e de não-fundo, representando uma outra forma de realização alternativa da invenção; a Figura 8 é um diagrama esquemático de conjunto de uma fase de detecção do código dos pixels para um aparelho descodificador; e as Figuras 9 a 13 são diagramas de circulação que ilustram o funcionamento do controlador da Figura 8. A título de ilustração, inicialmente será útil considerar um esquema convencional para codificar valores de cores de pixels, com referência às Figuras 1 a 3. No caso de cada valor de cor de pixel ocupar 7 bits (Figura 1), como na codificação em extensão de execução usada para CD-i, a especificação da execução (Figura 2) ocupa dois bytes. Um dos bytes contém o valor da cor C em sete dos seus bits e o outro contém um valor de contagem L. Para uma execução com uma extensão de mais de dois pixels, a forma codificada da extensão de execução será mais compacta que codificando separadamente cada pixel da execução. 5
Contudo, neste caso, a codificação de um único pixel como uma execução com a extensão um seria ineficiente dado que ocuparia dois bytes, enquanto o pixel de uma única cor podia ser contido num byte. O esquema de codificação da extensão de execução usado para CD-i permite portanto que se definam dois pixels adjacentes tanto num código de um byte repetido como numa sequência de extensão de execução de dois bytes. O bit de reserva no byte de cor (o bit mais significativo) é usado para indicar esta diferença. Se um byte de cor tiver o seu bit mais significativo regulado para zero, nesse caso é um valor de uma única cor como na Figura 1, enquanto, se o bit mais significativo for regulado para um, nesse caso este byte é o início da especificação de uma execução e será seguido por um byte de extensão como na Figura 2. Estes códigos de um e dois bytes são combinados da maneira necessária para produzir uma sequência codificada, da qual se apresenta uma selecção na Figura 3. A primeira forma de realização da invenção proporciona a codificação para o caso específico em que uma imagem consiste principalmente numa cor de fundo com poucas instâncias de execuções significativas de qualquer outro valor de cor. Nestas circunstâncias, prefere-se codificar pela extensão de execução as execuções de pixels da cor de fundo, mas codificar individualmente pela cor dos pixels de outras execuções. Isto elimina a necessidade de indicar, no fluxo de dados codificados, quais são os valores de cores do fluxo codificado que representam material codificado por extensão de execução e quais os que não o representam: deste modo, não é necessária a regulação inicial dos bits em 0 ou 1 (como nas Figuras 2 e 3). A técnica também assegura que os dados codificados por extensão de execução precisem de conter apenas um valor de contagem; visto que se especifica uma cor como fundo, não é necessário especificar um valor de cor para a execução.
Como se descreverá abaixo, o método usa um código de extensão variável, que pode compreender palavras de código de extensão variável, para optimizar ainda mais a qualidade do desempenho. Na implementação específica que será descrita, todos os códigos de extensão variável são regulados de maneira a serem um número inteiro com a extensão de palavras de quatro bits (nibbles). 6
Cada valor de cor dos pixels é definido em quatro bits. Convencionalmente, isto permitiria a especificação de dezasseis cores possíveis através da utilização de uma tabela de consulta de cores embora, nesta forma de realização, o número de cores diferentes se limite a quinze, por razões que se explicam abaixo, para melhorar o funcionamento do esquema de codificação.
Os códigos de cores 1 a 15 (expressos como valores de nibbles 0001 a 1111) não são comprimidos, mas são simplesmente adicionados ao fluxo de dados codificados sem mais compressão. A codificação usada para indicar extensões de execução da cor de fundo está representada na tabela da Figura 4: os nomes atribuídos aos diferentes códigos (CURTO, MÉDIO, etc.) são meramente ilustrativos e não têm qualquer efeito sobre os códigos propriamente ditos. Os benefícios da codificação em extensão de execução podem observar-se claramente pelo código mais longo apresentado na Figura 4, para uma execução de 303 pixels de cores de fundo, que, em vez de requerer um nibble de código de cores para cada pixel, requer apenas 4 nibbles para definir a execução.
Para execuções de fundo de 3 ou mais pixels, o código de cores 0 (binário 0000) é colocado no fluxo codificado para indicar o início de uma sequência codificada de execução da cor 0, que se assume que seja a cor do fundo. Se o código de quatro bits seguinte se situar na gama de 0011 a 1111, nesse caso a execução (CURTO) tem uma extensão entre 3 e 15 pixels, em que o número codificado do binário do segundo nibble representa directamente a extensão da execução. Quando o segundo nibble tem também código 0 (0000), a execução (MÉDIO) tem uma extensão entre 17 e 31 pixels, em que um terceiro nibble especifica um valor de 1 a 15 (binário 0001 a 1111) a adicionar a 16 para dar a extensão da execução.
Se, por outro lado, o segundo nibble da sequência é 0001, nesse caso o terceiro nibble do fluxo de dados tem valores entre 0000 e 1111, representando extensões de execução (LONGO) entre 32 e 47 pixels. 7 O último caso (MAIS LONGO) é aquele em que o segundo nibble tem o valor 0010 e os dois nibbles de quatro bits seguintes são tomados em conjunto como um valor de oito bits representando extensões de execução entre 48 e 303.
Para permitir que um único pixel da cor de fundo seja representado num único nibble de quatro bits, sem que o código seguinte seja erradamente elaborado como uma extensão de execução, o código de cores 0001 é também levado a representar a cor de fundo: esta é a razão pela qual apenas podem representar-se 15 cores neste esquema. Adicionalmente, a menos que se siga imediatamente ao código de cores 0000 (como nos códigos para extensões de execução de 17, 32 ou 49 pixels), o código 0001 representa um único pixel da cor de fundo. Como se observará na Figura 4, nunca haverá mais de dois códigos de cores 0 (0000) em sequência: isto permite que o esquema satisfaça as restrições MPEG, em que uma série destes códigos é usada para indicar uma re-sincronização.
Dado que a disposição da codificação acima descrita só permite execuções de cores de fundo de 3 ou mais pixels, uma execução da cor de fundo com a extensão 2 (ÚNICO +) é representada por dois valores de cores consecutivos de 0001. Por outro lado, apresenta-se uma execução da cor de fundo com uma extensão 16 (CURTO +) sob a forma de uma execução codificada com a extensão 15, seguida por um único pixel com a codificação 0001. Pela utilização deste segundo código de cores para a cor predominante ou de fundo, evita-se a expansão - o que significa que um ecrã de N pixels será codificado num máximo de N códigos, e geralmente muitos menos.
Num meio ambiente em que as extensões de códigos não são obrigatoriamente um múltiplo de quatro bits, a codificação Huffman (que atribui os códigos mais curtos às extensões de execução mais correntemente especificadas) podia proporcionar uma compressão ainda mais eficiente. Podem usar-se códigos de 8 bits ou mais quando é necessário dispor de uma vasta gama de cores disponíveis e podem usar-se códigos de 2 bits quando são necessárias muito poucas cores. 8
Numa forma de realização alternativa, o método acima descrito pode ser modificado como se descreve abaixo com referência à tabela da Figura 5, para permitir que a cor de fundo representada pelo código de cores 0000 seja dinamicamente modificada. Isso seria útil quando a cor de fundo mudasse parcialmente uma imagem ou quando houvesse uma grande área de qualquer outra cor em que a vantagem da codificação da execução compensasse a despesa de modificar a cor codificada da execução.
Comparando as Figuras 4 e 5, verifica-se que os dois esquemas são praticamente idênticos, excepto no facto de os códigos para execuções de 4 pixels acima da forma de realização original representarem agora respectivamente extensões de execução com um pixel a menos. O código da forma de realização original para uma execução de 3 pixels (0000 0011) é agora usado como um código de MUDANÇA DE FUNDO que indica qué o valor binário (cccc) de 1 a 15 do nibble seguinte (0 é reservado para a designação geral do fundo) é o código da cor para a nova cor de fundo. O novo fundo será usado até que o código 0000 0011 0001 (código de mudança + código da cor de fundo original) seja recebido ou seja especificada uma mudança para uma terceira cor de fundo. Observe-se que, com um fundo mudado, o código para uma execução de uma extensão de 15 pixels terá o código de cores desse novo fundo como o terceiro nibble.
Esta forma de realização alternativa permite a especificação de uma mudança na cor geral de fundo da imagem com o custo de 12 bits de dados. Uma mudança temporária para permitir a codificação de uma execução longa de alguma cor de não-fundo custará 24 bits (12 para mudar para a cor de não-fundo e 12 para regressar de novo à cor de fundo), o que proporciona uma economia para execuções de 9 ou mais pixels.
Numa outra forma de realização alternativa, todas as execuções de valores de cores (predominante/de fundo ou outra) podem ser codificadas em extensão de execução, continuando a usar a identificação de uma cor predominante, o que produz uma economia para a ocorrência mais comum, isto é, execuções relativamente curtas de pixels de cores de fundo. Os esquemas de codificação para as execuções de fundo e de não-fundo estão representados nas Figuras 6 e 7, respectivamente. Neste esquema, estão disponíveis os 9 códigos de cores 0 a 15 (indicados na Figura 7 como código cccc de quatro bits), apenas com o código 0 reservado para a cor predominante. Como o código 0 também é usado para indicar o início de uma execução (de qualquer cor), o código para um único pixel de fundo (0000 1111) é desperdiçado mas necessário para evitar anomalias. Se fosse atribuído um segundo código de cores (por exemplo 1) à cor de fundo, o único pixel de fundo podia ser codificado num único nibble, como sucede nos esquemas das Figuras 4 e 5, embora à custa de uma redução dos códigos de cores disponíveis. Como mostra a Figura 6, a economia específica em relação a este esquema ocorre com execuções do fundo de três a nove pixels, cada um dos quais é codificado num código de dois nibbles. Para execuções de fundo de 10 pixels ou mais, usa-se o mesmo esquema de codificação em extensão de execução que para as cores de não-fundo (representado na Figura 7), isto é, compreendendo o código de execução (código 0), um código de amplitude (1100 ou 1101 para execuções MÉDIA ou LONGA, respectivamente), a extensão de execução (4 bits para MÉDIO, 8 bits para LONGO) e o código de cores.
Como se mostra na Figura 7, as execuções de 1 a 3 pixels de cor de não-fundo são simplesmente codificadas como instâncias separadas do código de cores. As execuções de 4 a 7 pixels são codificadas como código de execução (código 0), um código de extensão de execução (4 a 7, indicados pelos valores binários respectivos 1000 a 1011) e o código de cores (cccc). De modo semelhante aos códigos CURTO + dos esquemas das Figuras 4 e 5, uma execução de oito pixels de não-fundo é codificada como uma execução de sete pixels seguida por uma repetição do código de cores (isto é, o código para um único pixel).
Como os valores dos pixels codificados serão geralmente enviados ou guardados como blocos de valores, proporciona-se um código adicional (0000 0000) para indicar o fim de um bloco. A determinação referente ao início de um código será tratada a nível de sistema, de modo que o aparecimento de dois nibbles consecutivos de 0000 depois do início de um código (como no código para uma execução de 25 pixels de fundo) não será considerado como indicando o fim de um bloco. 10
Numa outra forma de realização alternativa, os benefícios decorrentes de uma cor predominante ou cor de fundo podem ser alargados de modo a permitir a especificação de um subconjunto de cores predominantes: deste modo, pode evitar-se a utilização repetida do código de MUDANÇA DE FUNDO do esquema da Figura 5. A especificação de um subconjunto tem uma vantagem particular quando se utilizam códigos mais longos, por exemplo um esquema de 8 bits em que estão disponíveis 256 códigos de cores. Com este esquema, as 16 cores mais geralmente utilizadas são codificadas como valores de 4 bits (de preferência a 8 bits). Deste modo, as execuções de 3 a 9 pixels podem ser codificadas em duas palavras de 8 bits como 0000 0000 OLLL cccc em que a primeira palavra indica uma execução de uma das cores predominantes, a primeira metade da segunda palavra especifica a extensão da execução (0001 a 0111) e a segunda metade da segunda palavra compreende o código de cores de 4 bits. Observar-se-á que, nesta disposição, o primeiro bit da segunda palavra é 0: isto permite outras possibilidades de codificação, incluindo uma gama completa de cores (indicada pela utilização de 1 no início desta palavra).
Como se avaliará, embora os benefícios sejam maiores para esquemas com maior número de bits, a técnica de subconjuntos acima descrita podia ser aplicada a um esquema de 4 bits, embora a gama de extensões de execução disponíveis de códigos de cores ficasse altamente restringida.
Analisando agora o aparelho para aplicar os esquemas acima descritos, a codificação será geralmente realizada por um microprocessador adequadamente programado que executará as funções de identificação da cor predominante, atribuição de códigos de cores aos pixels e detecção de instâncias únicas e de execuções da cor predominante. Também pode fornecer-se hardware exclusivo, mas prefere-se a flexibilidade de um sistema reprogramável. 11
Considerando em pormenor a implementação do esquema da Figura 4, o detector de código, para ser utilizado num aparelho descodificador, pode, de modo adequado, ser formado em hardware e ter uma disposição como a que se apresenta na Figura 8, em que o controlador 20 controla o valor dos nibbles de saída (o código de cores para cada pixel específico) bem como um sinal de relógio de saída que temporiza os valores desses nibbles. O controlador requer a entrada de um nibble na linha 22 através do envio de um sinal de disparo na linha 24. Este nibble de entrada é fornecido à primeira entrada de um multiplexador 26 bem como a cada uma de três fases do comparador 28, 30 e 32, cujas saídas são fornecidas ao controlador 20. Os três comparadores 28, 30, 32 comparam respectivamente o nibble de entrada com os códigos 0000, 0001 e 0010: se a saída do comparador 28 for positiva, isto é, se o nibble de entrada tiver o código 0000, nesse caso é indicado o início de uma execução, caso em que o controlador envia um sinal na linha de selecção 34 para o multiplexador 26, fazendo com que ele seleccione, em vez do valor do nibble de entrada, o código de cores para a cor predominante (de fundo) guardada no registo 36.
Depois de determinar que está a iniciar-se uma execução, o nibble seguinte será chamado (através da linha 24) e, se as saídas de qualquer um dos comparadores 28, 30 ou 32 forem positivas, isso indicará que a execução se enquadra nos parâmetros identificados respectivamente como MÉDIO, LONGO OU MAIS LONGO, tal como são identificados na Figura 4. Se nenhum dos comparadores apresentar uma saída positiva, nesse caso a execução encontra-se nos parâmetros CURTO, isto é, entre três e quinze pixels e o valor do nibble de entrada é na realidade a duração da execução. Este valor do nibble é temporizado num contador de 8 bits 38 como o nibble menos significativo controlado por um sinal de relógio na linha 40 proveniente do controlador 20. Á medida que o contador 38 faz a contagem decrescente do valor representado pelo nibble, o sinal do relógio de saída da linha 32 temporiza o valor da cor de fundo proveniente do registo 36 que se encontra na linha de saída 44 até todo o tempo do valor do nibble ter sido contado, momento em que um sinal de detecção de zero proveniente do contador é transmitido ao controlador através da linha 46.
No caso de ter sido detectada uma execução e de o segundo nibble produzir uma saída positiva de um dos comparadores 28, 30 ou 32, o nibble seguinte (depois de ter sido 12 chamado) será temporizado para o contador 38 como o nibble menos significativo (no caso de saída positiva dos comparadores 28 ou 30) e os dois nibbles seguintes serão lidos para o contador respectivamente como o mais e o menos significativos nibbles no caso de uma saída positiva do comparador 32. Quando o tempo dos dois nibbles é controlado para o contador de 8 bits 38, isto é, no caso de uma execução MAIS LONGA, o tempo do nibble mais significativo é controlado para o contador sob o controlo de outra linha de relógio 48 proveniente do controlador.
As operações do controlador 20 da Figura 8 para determinar se o código de entrada descreve uma execução e, no caso afirmativo, qual a sua extensão, serão agora descritas com referência aos diagramas de circulação das Figuras 9 a 13. De um ponto de partida A (Figura 9), é disparado um novo nibble de entrada em 71, a seguir ao que a saída dos comparadores é controlada, no passo 72, para verificar se o nibble tem o código 0000. Se não tiver, o código representa pois o código de cores (cor diferente da de fundo) para um pixel e, no passo 73, o multiplexador 26 (Figura 8) é regulado para dar saída ao valor do nibble de entrada. No passo 74, é também dada saída a um sinal de relógio para este valor de nibble, a seguir ao que o procedimento volta ao ponto inicial A, para o nibble de entrada seguinte.
Quando, no passo 72, o valor do nibble é 0000, indica-se uma execução que é geralmente processada como se mostra na Figura 10. O processamento de uma execução inicia-se no passo 81, com o disparo do nibble de entrada seguinte e, no passo 82, pela regulação do multiplexador 26 (Figura 8) para o código da cor de saída 0000 a partir do registo 36. A seguir a isto, o novo nibble de entrada é controlado nos passos 83, 84 e 85, para verificar se corresponde a um dos dois códigos do nibble da Figura 4, representando uma execução MÉDIA, LONGA OU MAIS LONGA, tal como é identificada nessa Figura. Se a resposta for “Não” a todos estes controlos, então a execução situa-se na gama de três a quinze pixels e o valor do nibble, carregado no contador de 8 bits, determina o valor a ser temporizado. A saída repetida de sinais de relógio para o código de cores 0000 é manuseado pelas fases de ciclo 87, 88 e 89, que decrementam repetidamente o valor do relógio e o controlo de zero, ao mesmo tempo que dão saída ao sinal de relógio até ao momento em que o contador atinge 13 zero, ponto este em que o processo regressa ao princípio A (Figura 9) para o valor do nibble de entrada seguinte.
Quando qualquer uma das fases 83, 84 ou 85 da Figura 10 responde “Sim”, é especificada uma execução na gama de 17 a 303 pixels. Quando é a saída da fase 83 que é “Sim” (o valor do segundo nibble é 0000), a execução é na gama de 17 a 31 pixels e é tratada como se mostra na Figura 11. Inicialmente, na fase 91, o valor 0000 do registo 36 é temporizado 16 vezes, posto o que é disparado um novo nibble de entrada no passo 92, nibble este que é temporizado para o contador de 8 bits no passo 93. Este valor de nibble menos significativo no contador 38 é então temporizado por contagem decrescente/ciclo de detecção de zero (passos 94, 95 e 96) até o contador atingir zero, ponto em que o processo regressa ao princípio A (Figura 9) para o nibble de entrada seguinte.
Quando o valor do nibble 2 é detectado como 0001, no passo 84 da Figura 10, a execução é entre 32 e 47 pixels, que é tratada como se mostra na Figura 12. O tratamento da execução LONGA da Figura 12 é substancialmente idêntico ao da execução MÉDIA da Figura 11, à excepção de que o código de cores 0000 é temporizado 32 vezes na fase 101 antes do disparo e temporização para o contador do valor do nibble seguinte nos passos 102 e 103. Mais uma vez, o ciclo de contagem decrescente dos passos 104, 105 e 106 provoca a saída dos valores adicionais do relógio para além de 32 que formam a extensão total da execução.
Quando a saída do passo 85 da Figura 10 é positivo, isto é, a execução é MAIS LONGA, com uma extensão entre 48 e 303 pixels, a execução é tratada como se mostra na Figura 13. Neste caso, o processo começa pela temporização do valor 0000 48 vezes no passo 111, a seguir ao que o nibble de entrada seguinte é disparado no passo 112. Como, para uma execução MAIS LONGA, a extensão da execução para além de 48 pixels é especificada como um código de 8 bits, o nibble disparado no passo 112 representa a metade mais significativa do código de 8 bits e é temporizado para o contador de 8 bits como tal, sob o controlo de um sinal proveniente do controlador da linha 48 (Figura 8). A seguir a isto, o nibble seguinte é disparado no passo 114, nibble este que, compreendendo a metade menos significativa do código de 8 bits, é temporizado como o nibble menos significativo para o 14 contador de 8 bits 38. Finalmente, o ciclo de contagem decrescente formado pelos passos 116, 117 e 118 faz a contagem decrescente do valor de 8 bits representado no contador até este atingir zero, ponto em que o processo volta ao princípio A da Figura 9.
Embora não esteja representado na Figura 8, entender-se-á que, onde é permitida uma mudança de fundo (como na tabela da Figura 5), o conteúdo do registo 36 pode ser modificado sob o controlo do controlador 20, de maneira a conter o valor da cor de fundo seleccionada por último, em vez de 0000. Além disso, o número de vezes que este valor é inicialmente temporizado para uma execução, nos passos 91, 101 e 111 das Figuras 11, 12 e^ 13 respectivamente, será 15, 31 e 47 em vez de 16, 32 e 48, como se descreveu anteriormente.
Para efectuar o esquema de codificação das Figuras 6 e 7, as modificações do aparelho da Figura 8 serão geralmente evidentes para o leitor perito e não serão analisadas em pormenor. Entender-se-á que as fases de comparação 28, 30, 32 precisarão de ser configuradas para controlar as palavras de código específicas usadas e que o registo 36 estará preparado para receber, guardar e dar saída (sob o controlo de um controlador 26) a valores de cores diferentes do valor da cor de fundo durante execuções das cores de não-fundo. Considerações semelhantes aplicam-se à forma de realização que permite subconjuntos de cores predominantes.
Lisboa, Μ Λ »
Por Koninklijke Philips Electronics N.V.
DR. PAULO VIEIRA BARREIO * * *. Industrial Agente CViciu! ou . . <*.->.
Ar«o & Conceição, 3-12" 1100 LISBOA 15

Claims (12)

  1. REIVINDICAÇÕES 1. Método de codificação de valores de cores de pixels para uma configuração de imagens digitais de vídeo em que a cada cor diferente contida na imagem é atribuído um valor de cor, caracterizado por ser identificada uma cor predominante para a configuração da imagem e serem codificadas execuções de pelo menos três pixels sucessivos da cor predominante como uma primeira palavra de código que indica uma execução e uma segunda palavra de código que indica a extensão da execução, e em que pixels com cores diferentes da cor predominante são codificados como códigos contendo pelo menos os valores da cor respectiva.
  2. 2. Método tal como reivindicado na Reivindicação 1, em que cada pixel com uma cor diferente da cor predominante é codificado separadamente apenas como o valor da cor respectiva.
  3. 3. Método tal como reivindicado na Reivindicação 1, em que execuções de dois ou mais pixels sucessivos de uma cor diferente da cor predominante são codificados juntos como uma primeira palavra de código que indica uma execução, uma segunda palavra de código que indica a extensão da execução e uma terceira palavra de código que indica o valor da cor.
  4. 4. Método tal como reivindicado na Reivindicação 1, em que a primeira palavra de código inclui um subcódigo que indica uma gama de uma série de gamas de extensões de execução e a segunda palavra de código indica uma extensão de execução incluída na gama indicada.
  5. 5. Método tal como reivindicado em qualquer uma das Reivindicações 1 a 4, em que é proporcionado um código adicional que inclui a especificação de um valor de código, em que, depois da colocação do código adicional num fluxo de códigos de cores de pixels, a cor predominante especificada para execuções codificadas é alterada para a cor especificada no código adicional. 1 Ψ
  6. 6. Método tal como reivindicado na Reivindicação 5, em que o código adicional compreende uma primeira palavra de código que indica uma execução e um subcódigo que indica uma mudança da cor predominante, e uma segunda palavra de código que compreende o valor da cor para a nova cor predominante.
  7. 7. Método tal como reivindicado na Reivindicação 1, em que execuções de um ou dois pixels da cor predominante são respectivamente codificados como uma ou duas iterações sucessivas do valor da cor para a cor predominante.
  8. 8. Método tal como reivindicado na Reivindicação 5, em que a sequência de códigos para uma configuração se inicia com o código adicional que especifica a cor predominante inicial.
  9. 9. Método tal como reivindicado na Reivindicação 1, em que um subconjunto das cores contidas na imagem é identificado como cores predominantes, às cores diferentes das cores predominantes são atribuídos os códigos respectivos de uma primeira gama de códigos de valores de cores de uma primeira extensão, às cores predominantes são atribuídos os códigos respectivos de uma segunda gama de códigos de valores de cores de uma segunda extensão mais pequena que a primeira extensão, e uma execução de pelo menos dois pixels de uma das cores predominantes é codificada como uma primeira palavra de código que indica a execução de uma cor predominante e uma segunda palavra de código que indica, em subcódigos separados, respectivamente a extensão de execução e o código do valor de cor.
  10. 10. Método tal como reivindicado na Reivindicação 1, em que a segunda palavra de código precede a primeira palavra de código no código para uma execução.
  11. 11. Aparelho de codificação de imagens de vídeo preparado para codificar valores de cores de pixels para a configuração de uma imagem digital de vídeo pela atribuição de um valor de cor respectivo a cada cor diferente contida na imagem, 2 caracterizado por, sendo identificada uma cor predominante para a configuração da imagem, o aparelho incluir meios que podem ser accionados para identificar execuções de pelo menos três pixels sucessivos da cor predominante, e codificar cada uma dessas execuções como uma primeira palavra de código que indica uma execução e uma segunda palavra de código que indica a extensão da execução, e um dispositivo que pode ser accionado para determinar pixels com cores diferentes da cor predominante e codificá-los como códigos contendo pelo menos os valores das cores respectivas.
  12. 12. Aparelho de exibição de imagens de vídeo preparado para receber e descodificar um sinal de imagens de vídeo que compreende configurações codificadas de valores de cores de pixels, em que execuções de três ou mais pixels sucessivos de uma cor predominante predeterminada para a configuração foram codificadas sob a forma de uma primeira palavra de código que indica uma execução e uma segunda palavra de código que indica a extensão da execução, e em que pixels de cores diferentes da cor predominante foram codificados sob a forma de um código contendo pelo menos o valor da cor respectiva, em que o referido aparelho inclui pelo menos uma tabela de consulta de cores de pixels, incluindo a cor predominante, para as configurações das imagens digitais de vídeo endereçadas pelos valores codificados das cores de pixels, e um dispositivo que pode ser accionado para gerar execuções para a exibição de pelo menos três pixels sucessivos da cor predominante bem como pixels gerados individualmente com cores diferentes da cor predominante. Lisboa, 2 0 JUN. 2000 Por Koninklijke Philips Electronics N.V.
    3 RESUMO CODIFICAÇÃO DE CORES DE IMAGENS DE VÍDEO Descreve-se um método de codificação de valores de cores de pixels para uma configuração de imagens digitais de vídeo em que a cada cor diferente contida na imagem é atribuído um valor de cor. É identificada uma cor predominante para a configuração das imagens e, numa primeira forma de realização, cada pixel que tem uma cor diferente da cor predominante é codificado separadamente sob a forma do valor da cor respectiva (0010 a 1111), em que as execuções de três ou mais pixels sucessivos da cor predominante são codificados em extensão de execução. É instalado um código adicional (0000 0011 cccc), com uma disposição semelhante à que indica uma execução, para permitir uma mudança na cor predominante especificada no decurso de uma configuração. Numa outra forma de realização, execuções de todas as cores são codificadas em extensão mas com um esquema de codificação mais curto para execuções da cor predominante ou, numa outra forma de realização, de uma pequena gama de cores predominantes. Uma utilização de princípio para estes esquemas de codificação é melhorar a eficiência da codificação de certas classes de materiais de imagens. 1 CÓDIGO NIBBLE 1 NIBBLE 2 NIBBLE 3 NIBBLE 4 EXTENSÃO DA EXECUÇÃO ÚNICO 0001 - - - 1 PIXEL ÚNICO + 0001 0001 - - 2 PIXELS 0000 0100 - - 3 PIXELS CURTO 0000 A 0000 1111 - - 14 PIXELS CURTO + 0000 1111 0001 - 15 PIXELS 0000 0000 00001 - 16 PIXELS MÉDIO 0000 0000 A 0000 0000 1111 - 30 PIXELS 0000 0001 0000 - 31 PIXELS LONGO 0000 0001 A 0000 0001 1111 - 46 PIXELS MAIS 0000 0010 0000 0000 47 PIXELS LONGO 0000 0010 A 0000 0010 1111 1111 302 PIXELS MUDANÇA 0000 0011 cccc - - DE FUNDO cccc = 0010 a 1111 2
PT96900402T 1995-02-03 1996-01-26 Codificacao de cores de imagens de video PT754393E (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9502172.1A GB9502172D0 (en) 1995-02-03 1995-02-03 Video image encoding
GBGB9503063.1A GB9503063D0 (en) 1995-02-03 1995-02-16 Video image colour encoding

Publications (1)

Publication Number Publication Date
PT754393E true PT754393E (pt) 2000-09-29

Family

ID=26306435

Family Applications (1)

Application Number Title Priority Date Filing Date
PT96900402T PT754393E (pt) 1995-02-03 1996-01-26 Codificacao de cores de imagens de video

Country Status (23)

Country Link
US (1) US6301389B1 (pt)
EP (1) EP0754393B1 (pt)
JP (1) JP3688297B2 (pt)
CN (1) CN1181694C (pt)
AR (1) AR001077A1 (pt)
AT (1) ATE191600T1 (pt)
AU (1) AU695626B2 (pt)
BR (1) BR9605110A (pt)
CA (1) CA2187018C (pt)
CZ (1) CZ289508B6 (pt)
DE (1) DE69607529T2 (pt)
EA (1) EA000082B1 (pt)
ES (1) ES2145991T3 (pt)
GR (1) GR3033579T3 (pt)
HK (1) HK1013385A1 (pt)
HU (1) HU228534B1 (pt)
IL (1) IL117028A (pt)
IN (1) IN187262B (pt)
MY (1) MY115792A (pt)
PL (1) PL186340B1 (pt)
PT (1) PT754393E (pt)
TR (1) TR199600787T1 (pt)
WO (1) WO1996025010A2 (pt)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9806767D0 (en) 1998-03-31 1998-05-27 Philips Electronics Nv Pixel colour valve encoding and decoding
FR2806227B1 (fr) * 2000-03-09 2003-09-05 Auteuil Participation Et Conse Procede pour le codage d'images
US20030086605A1 (en) * 2001-11-08 2003-05-08 Doner John R. Compression method for aviation weather products
EP1494456A1 (en) * 2003-07-01 2005-01-05 Deutsche Thomson-Brandt GmbH Method for run-length encoding of a bitmap data stream
US7010033B2 (en) * 2004-02-02 2006-03-07 Adams Platform Pty Ltd. System and method for compressing and encoding video
KR100595663B1 (ko) * 2004-04-13 2006-07-03 엘지전자 주식회사 휴대폰의 이미지 파일 압축/신장 방법
EP3023940B1 (en) 2005-05-27 2019-02-27 Telefonaktiebolaget LM Ericsson (publ) Weight based image processing
EP1988703A1 (en) * 2007-05-02 2008-11-05 TTPCOM Limited Image transformation
WO2010018494A1 (en) * 2008-08-11 2010-02-18 Nxp B.V. Image compression
US8582902B2 (en) * 2008-09-23 2013-11-12 Telefonaktiebolaget Lm Ericsson (Publ) Pixel block processing
US20120082395A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Entropy Coder for Image Compression
CN103186544B (zh) * 2011-12-28 2017-11-14 广东新岸线计算机***芯片有限公司 一种色位深度存取方法和***
US9772850B2 (en) * 2014-11-14 2017-09-26 Intel Corporation Morton coordinate adjustment processors, methods, systems, and instructions
US9772849B2 (en) 2014-11-14 2017-09-26 Intel Corporation Four-dimensional morton coordinate conversion processors, methods, systems, and instructions
US9772848B2 (en) 2014-11-14 2017-09-26 Intel Corporation Three-dimensional morton coordinate conversion processors, methods, systems, and instructions
US20160373735A1 (en) * 2015-06-18 2016-12-22 Telekom Malaysia Berhad Method For Encoding Four Bits Color Construct Code
JP6855722B2 (ja) * 2016-09-21 2021-04-07 富士ゼロックス株式会社 画像処理装置およびプログラム
US10341689B1 (en) * 2017-05-23 2019-07-02 Moddable Tech, Inc. Weighted runlength encoding
CN116453455B (zh) * 2023-06-14 2023-11-14 长春希达电子技术有限公司 像素复用方法、数据传输***以及显示屏控制***和方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4229768A (en) * 1978-03-30 1980-10-21 Canon Kabushiki Kaisha Information processing apparatus
US4301469A (en) * 1980-04-30 1981-11-17 United Technologies Corporation Run length encoder for color raster scanner
US4610027A (en) * 1983-12-30 1986-09-02 International Business Machines Corporation Method for converting a bit map of an image to a run length or run end representation
US4646356A (en) * 1984-06-29 1987-02-24 International Business Machines Corporation Method for converting a bit map of an image to a run length or run end representation
US4673977A (en) * 1985-06-20 1987-06-16 International Business Machines Corporation Method of spatially thresholding a discrete color image
US4760459A (en) * 1986-07-30 1988-07-26 Kabushiki Kaisha Toshiba Binary data compression and expansion processing apparatus
US4847677A (en) * 1988-04-27 1989-07-11 Universal Video Communications Corp. Video telecommunication system and method for compressing and decompressing digital color video data
US4843466A (en) * 1988-04-27 1989-06-27 Universal Video Communications Corp. Method and system for decompressing color video slope encoded data
JPH02179071A (ja) * 1988-12-28 1990-07-12 Fuji Photo Film Co Ltd 画像圧縮装置
US5353132A (en) * 1989-02-06 1994-10-04 Canon Kabushiki Kaisha Image processing device
JP2766302B2 (ja) * 1989-04-06 1998-06-18 株式会社東芝 可変長符号並列解読方法および装置
US5172237A (en) * 1989-05-17 1992-12-15 Ricoh Corporation High quality color image compression system
JP2511158B2 (ja) * 1989-12-19 1996-06-26 シャープ株式会社 画像圧縮装置
US5046119A (en) * 1990-03-16 1991-09-03 Apple Computer, Inc. Method and apparatus for compressing and decompressing color video data with an anti-aliasing mode
US5198898A (en) * 1990-10-10 1993-03-30 Fuji Xerox Co., Ltd. Data compressing system for compressing serial image data with color information
JP3095810B2 (ja) * 1991-05-31 2000-10-10 株式会社リコー 画像データ符号化装置
JPH05130434A (ja) * 1991-10-31 1993-05-25 Canon Inc 画像圧縮装置
US5339164A (en) * 1991-12-24 1994-08-16 Massachusetts Institute Of Technology Method and apparatus for encoding of data using both vector quantization and runlength encoding and using adaptive runlength encoding
US5552832A (en) * 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals

Also Published As

Publication number Publication date
HUP9602710A2 (en) 1997-05-28
IL117028A0 (en) 1996-06-18
IN187262B (pt) 2002-03-16
CN1181694C (zh) 2004-12-22
ES2145991T3 (es) 2000-07-16
CN1148927A (zh) 1997-04-30
CA2187018C (en) 2005-10-18
HU228534B1 (en) 2013-03-28
DE69607529T2 (de) 2000-10-12
EA199700011A1 (ru) 1997-09-30
AU4398596A (en) 1996-08-27
JPH10500273A (ja) 1998-01-06
AR001077A1 (es) 1997-09-24
EP0754393B1 (en) 2000-04-05
WO1996025010A2 (en) 1996-08-15
JP3688297B2 (ja) 2005-08-24
EP0754393A1 (en) 1997-01-22
AU695626B2 (en) 1998-08-20
PL186340B1 (pl) 2003-12-31
GR3033579T3 (en) 2000-09-29
BR9605110A (pt) 1997-10-14
TR199600787T1 (tr) 1997-03-21
ATE191600T1 (de) 2000-04-15
CA2187018A1 (en) 1996-08-15
US6301389B1 (en) 2001-10-09
EA000082B1 (ru) 1998-06-25
HUP9602710A3 (en) 1999-07-28
DE69607529D1 (de) 2000-05-11
CZ288596A3 (en) 1997-03-12
PL316679A1 (en) 1997-02-03
CZ289508B6 (cs) 2002-02-13
IL117028A (en) 1999-06-20
HK1013385A1 (en) 1999-08-20
MY115792A (en) 2003-09-30
WO1996025010A3 (en) 1996-10-10

Similar Documents

Publication Publication Date Title
PT754393E (pt) Codificacao de cores de imagens de video
US5748904A (en) Method and system for segment encoded graphic data compression
US5289577A (en) Process-pipeline architecture for image/video processing
JP4023548B2 (ja) 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法
USRE39925E1 (en) Fast JPEG huffman encoding and decoding
US7230630B2 (en) Graphics display systems with data compression and methods of performing data compression of graphics data
US5818368A (en) Method and apparatus for lossless digital data compression
JPH0662262A (ja) デジタル画像codec(圧縮及び伸長)プロセッサ用ブロック制御方法及び装置
US5877711A (en) Method and apparatus for performing adaptive data compression
JPH08237138A (ja) 圧縮装置および圧縮方法
JP3410629B2 (ja) 可変長符号化回路及び可変長符号化方法
JP2006502598A (ja) データの隣接したブロック内のパターンを決定するための方法および装置
JPH11145849A (ja) 符号化方法及びデータ圧縮器
US7218788B2 (en) Image coder/decoder, image coding/decoding method, and storage medium
JPH07307675A (ja) 可変長復号器及び可変長符号値を復号化する方法
US6618506B1 (en) Method and apparatus for improved compression and decompression
US5832507A (en) Method and apparatus for converting ASCII path names to parsed path name structures
JP4098187B2 (ja) 可変長コード復号化装置及び方法
US5701125A (en) Method for compression of data using single pass LZSS and run-length encoding
US6442680B1 (en) Method and system for compressing reduced instruction set computer (RISC) executable code
US6995696B2 (en) System, method, and apparatus for variable length decoder
AU2007249117B2 (en) Variable-length encoding for image data compression
US9712848B2 (en) Frame buffer compression using separate aggregation of fixed-length and variable-length components of codewords
US20090256730A1 (en) Advanced Lossless Bit Coding
JPH07107303A (ja) ハフマン符号の復号化方法