PT1445869E - Descodificação de comprimento variável, suporte de armazenamento, dispositivo de codificação de comprimento variável, dispositivo de descodificação de comprimento variável, e fluxo de bits - Google Patents

Descodificação de comprimento variável, suporte de armazenamento, dispositivo de codificação de comprimento variável, dispositivo de descodificação de comprimento variável, e fluxo de bits Download PDF

Info

Publication number
PT1445869E
PT1445869E PT3710347T PT03710347T PT1445869E PT 1445869 E PT1445869 E PT 1445869E PT 3710347 T PT3710347 T PT 3710347T PT 03710347 T PT03710347 T PT 03710347T PT 1445869 E PT1445869 E PT 1445869E
Authority
PT
Portugal
Prior art keywords
data
variable length
coding
unit
probability table
Prior art date
Application number
PT3710347T
Other languages
English (en)
Inventor
Satoshi Kondo
Shinya Kadono
Yoshinori Matsui
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Publication of PT1445869E publication Critical patent/PT1445869E/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

1
DESCRIÇÃO "MÉTODO DE CODIFICAÇÃO DE COMPRIMENTO VARIÁVEL, MÉTODO DE DESCODIFICAÇÃO DE COMPRIMENTO VARIÁVEL, SUPORTE DE ARMAZENAMENTO, DISPOSITIVO DE CODIFICAÇÃO DE COMPRIMENTO VARIÁVEL, DISPOSITIVO DE DESCODIFICAÇÃO DE COMPRIMENTO VARIÁVEL, E FLUXO DE BITS"
DOMÍNIO TÉCNICO A presente invenção refere-se a métodos de codificação de comprimento variável, os seus métodos de descodificação de comprimento variável correspondentes, suportes de armazenamento que armazenam programas para execução de tais processos num computador, dispositivos de codificação de comprimento variável, e seus dispositivos de descodificação de comprimento variável correspondentes. Em particular, a presente invenção refere-se a métodos de codificação de comprimento variável adaptativos que otimizam os métodos de codificação por meio de dados codificados, métodos de descodificação de comprimento variável que correspondem a estes métodos, suportes de armazenamento que armazenam programas para execução destes processos num computador, dispositivos de codificação de comprimento variável adaptativos que otimizam os métodos de codificação por meio de dados codificados, e dispositivos de descodificação de comprimento variável que correspondem a estes dispositivos.
TÉCNICA ANTECEDENTE
Em anos recentes, formatos tais como o JPEG para imagens fixas e o MPEG para imagens em movimento têm sido padronizados como técnicas para compressão e descompressão de imagens devido aos esforços para a criação de normas internacionais para esquemas de codificação de imagens. 2 0 esquema de codificação MPEG (Moving Picture Experts Group Grupo de Especialistas em Imagens em Movimento) é principalmente composto por uma unidade de predição inter-trama de compensação de movimento, uma unidade de DCT (discrete cosine transform - transformada discreta de cosseno) e uma unidade de codificação de comprimento variável. A unidade de predição inter-trama de compensação de movimento deteta os vetores de movimento a partir de dados de imagens de entrada e dados de imagens anteriores, e cria dados de erro residual a partir dos vetores de movimento e dos dados de imagens anteriores. A unidade de DCT executa transformações de DCT sobre os dados de erro residual. Uma unidade de quantização quantiza coeficientes de DCT, e a unidade de codificação de comprimento variável atribui palavras de código aos coeficientes de DCT quantizados e aos vetores de movimento.
Os dados de imagens codificados no esquema de codificação MPEG possuem uma estrutura hierárquica de seis camadas: sequência, GOP (Group of Picture - Grupo de Imagem), imagem, fatia, macrobloco e bloco. Uma imagem é a unidade de codificação básica que corresponde a uma única imagem e é composta por uma pluralidade de fatias. Uma fatia é uma unidade de recuperação de sincronismo, uma área em forma de banda composta por um ou por uma pluralidade de macroblocos. A codificação de comprimento variável refere-se a um tipo de codificação de entropia. Como não existe variação na probabilidade de valores como coeficientes de transformação de pós-DCT (coeficientes de DCT) e valores de vetores de movimento, a codificação de comprimento variável reduz a quantidade média de dados, atribuindo palavras de código curtas para aqueles valores que têm uma probabilidade 3 elevada, e atribuindo palavras de código longas para aqueles valores que têm uma probabilidade baixa.
Os principais tipos de codificação de comprimento variável incluem a codificação de Huffman e a codificação aritmética. A codificação de Huffman é um método em que as palavras de código são determinadas por uma árvore de códigos de Huffman em que cada simbolo é uma folha. Utiliza uma tabela de correspondência (tabela de códigos) que inclui palavras de código (sequências de bits) para cada código.
Para melhorar a taxa de compressão, a codificação de Huffman utiliza métodos tais como um método no qual é criada uma tabela de códigos que corresponde a propriedades estatísticas da imagem em movimento que se altera, e um método no qual uma pluralidade de tabelas de código é preparada e as tabelas de código são comutadas em resposta a propriedades estatísticas das imagens. A teoria da informação estabelece que uma tabela de códigos na qual log2 (1/p) bits são atribuídos aos códigos de probabilidade p tem o menor volume médio de dados. E é por esse motivo que, no método de comutação de uma pluralidade de tabelas de códigos, a probabilidade é calculada a partir de dados codificados, e uma tabela de códigos é selecionada para que os números de bit próximos de log2 (1/p) bits sejam atribuídos aos códigos da probabilidade p. A codificação aritmética é uma técnica em que a sequência de simbolos é projetada para intervalos (0, 1) em resposta à probabilidade, e um espaço de probabilidade numa linha de números é expresso em binário com um número apropriado dentro desse intervalo. Na codificação aritmética, a 4 codificação é realizada enquanto monitoriza constantemente as propriedades estatísticas. Especificamente, as tabelas de probabilidades são reconfiguradas em resposta ao conteúdo das imagens e as palavras de código são determinadas enquanto se referenciam as tabelas de probabilidades. Mais especificamente, na codificação aritmética, a probabilidade usada em operações aritméticas é sucessivamente atualizada por dados codificados para que log2 (1/p) bits sejam atribuídos a um código de probabilidade p.
Ao contrário da codificação de Huffman, na codificação aritmética, as sequências de bits correspondendo a palavras de código podem ser obtidas com apenas operações aritméticas (adição, subtração, multiplicação e divisão), e portanto a quantidade de memória necessária para armazenar a tabela de códigos pode ser reduzida em comparação com a codificação de Huffman. Além disso, é possível responder a alterações nas propriedades estatísticas durante a codificação através da reescrita da tabela de probabilidades. No entanto, as operações aritméticas, em particular as operações de multiplicação e divisão exigem uma grande capacidade aritmética, deste modo uma desvantagem é que é difícil efetuar operações aritméticas em dispositivos com baixa capacidade aritmética.
Nos métodos de codificação adaptativos acima descritos, a eficiência de compressão pode ser melhorada em relação ao métodos de codificação fixa, porque o método de codificação continua a ser dinamicamente otimizado com dados codificados.
No entanto, os problemas seguintes ocorrem ao se otimizar dinamicamente o método de codificação com dados codificados. 5
Os métodos de codificação dinâmicos baseados em aprendizagem são executados, por exemplo, sobre dados de imagens após o cabeçalho, ou seja, em cada fatia, macrobloco ou bloco. Neste caso, a codificação aritmética usa uma tabela de probabilidades fixas para os valores iniciais para cada sub-unidade para codificação em cada imagem, e a codificação de Huffman usa uma tabela de códigos de comprimento variável fixos como uma tabela de códigos inicial em cada imagem. Como os valores iniciais fixos são utilizados desta forma, a eficiência de compressão da codificação não pode ser considerada favorável até tabelas de probabilidades e tabelas de código ideais serem obtidas com aprendizagem após a inicialização. Em particular, quando a quantidade total de dados é pequena, a proporção de dados necessários para aprendizagem aumenta e a taxa de compressão não é tão alta.
Por outro lado, quando uma parte dos dados codificados usados na aprendizagem é perdida na linha de transmissão, uma aprendizagem apropriada não pode ser executada no dispositivo de descodificação e a descodificação torna-se impossível. E no caso dos dados de imagens, a deterioração da qualidade das imagens ocorre devido a erros de transmissão. Embora a reinicialização regular dos resultados da aprendizagem proteja contra erros de transmissão, esta proteção é vulnerável a erros quando o intervalo de reinicialização é longo, e portanto é inevitável que o intervalo de reinicialização seja curto até certo ponto. A menos que o problema acima descrito de erros de transmissão seja resolvido, a eficiência de compressão dos métodos de codificação adaptativos atuais não vai melhorar suficientemente. 6
DIVULGAÇÃO DA INVENÇÃO
Um objetivo da presente invenção é melhorar a eficiência de compressão dos métodos de codificação de comprimento variável utilizados em áreas como compressão de imagens.
Outro objetivo da presente invenção é descodificar corretamente os dados que são codificados por um método de codificação de comprimento variável tendo melhorado a eficiência de compressão.
Meios para resolver estes objetivos de acordo com a presente invenção são definidos nas reivindicações em anexo.
BREVE DESCRIÇÃO DOS DESENHOS A Fig. 1 é um diagrama de blocos, mostrando a configuração global de um dispositivo de codificação de comprimento variável de acordo com uma primeira forma de realização da presente invenção; A Fig. 2 é um diagrama de blocos, mostrando a configuração global de um dispositivo de codificação de imagens padrão; A Fig. 3 é um fluxograma mostrando um resumo da operação de uma unidade de codificação de dados; A Fig. 4 é um fluxograma mostrando um resumo da operação de uma versão modificada da unidade de codificação de dados; A Fig. 5 mostra um exemplo da estrutura de um fluxo de dados de imagens; A Fig. 6 mostra outro exemplo da estrutura de um fluxo de dados de imagens; 7 A Fig. 7 mostra estruturas de dados com fluxo de bits geradas por um dispositivo de codificação de comprimento variável; A Fig. 8 mostra estruturas de dados com fluxo de bits geradas por um dispositivo de codificação de comprimento variável; A Fig. 9 é um diagrama de blocos mostrando a configuração global de um dispositivo de descodificação de comprimento variável de acordo com a primeira forma de realização da presente invenção; A Fig. 10 é um diagrama de blocos mostrando a configuração global de um dispositivo de descodificação de imagens padrão. A Fig. 11 é um fluxograma mostrando um resumo da operação de uma unidade de descodificação de dados; A Fig. 12 é um diagrama de blocos mostrando a configuração global de um dispositivo de codificação de comprimento variável de acordo com uma segunda forma de realização da presente invenção; A Fig. 13 mostra as estruturas de uma pluralidade de tabelas de códigos de comprimento variável; A Fig. 14 é um fluxograma mostrando um resumo da operação de uma unidade de codificação de dados; A Fig. 15 mostra estruturas de dados de fluxo de bits geradas por um dispositivo de codificação de comprimento variável; 8 A Fig. 16 mostra estruturas de dados de fluxo de bits geradas por um dispositivo de codificação de comprimento variável; A Fig. 17 é um diagrama de blocos mostrando a configuração global de um dispositivo de descodificação de comprimento variável de acordo com a segunda forma de realização da presente invenção; A Fig. 18 é um fluxograma mostrando um resumo da operação de uma unidade de descodificação de dados; A Fig. 19 ilustra uma situação em que a presente invenção é executada num sistema informático usando uma disquete na qual o método de codificação de comprimento variável ou o método de descodificação de comprimento variável de acordo com a primeira ou segunda forma de realização é armazenado; A Fig. 20 é um diagrama de blocos mostrando a configuração inteira de um sistema de fornecimento de conteúdos; A Fig. 21 mostra um exemplo de um telefone móvel que usa um método de codificação de imagens em movimento e um método de descodificação de imagens em movimento; A Fig. 22 é um diagrama de blocos do telefone móvel; e A Fig. 23 mostra um exemplo de um sistema para difusão digital.
MELHOR MODO PARA A EXECUÇÃO DA INVENÇÃO 1. Primeira Forma de Realização 9 (1) Configuração de dispositivo de codificação de comprimento variável [1] Dispositivo de codificação de comprimento variável de acordo com a presente invenção A Fig. 1 é um diagrama de blocos da configuração global de um dispositivo de codificação de comprimento variável 1 segundo uma forma de realização da presente invenção. 0 dispositivo de codificação de comprimento variável 1 é um dispositivo para realizar codificação de comprimento variável de dados introduzidos e para criar fluxos de bits. Em particular, o dispositivo de codificação de comprimento variável 1 é caracterizado por empregar codificação aritmética como um método de codificação primário. Deverá ser notado que a codificação aritmética refere-se a um método de codificação que aumenta a eficiência da codificação atualizando dinamicamente uma tabela de probabilidades em resposta à probabilidade dos simbolos efetivamente produzidos. Vários tipos de dados de entrada são possíveis para o dispositivo de codificação de comprimento variável 1, mas esta forma de realização irá ser descrita como uma na qual são introduzidos dados de imagens. Por outras palavras, o dispositivo de codificação de comprimento variável 1 tem uma função que realiza codificação de entropia em sinais de imagens que foram convertidos em dados. Com o esquema MPEG em particular, os dados de imagens que são introduzidos no dispositivo de codificação de comprimento variável 1 são dados de imagens tais como coeficientes quantizados de DCT e vetores de movimento. 10 O dispositivo de codificação de comprimento variável 1 inclui uma unidade de codificação de dados 2 e um codificador de cabeçalhos 3. A unidade de codificação de dados 2 é um dispositivo para realizar codificação aritmética em dados que não cabeçalhos para cada uma das unidades de dados, e é fornecido com um codificador aritmético 7, uma unidade de atualização de tabela de probabilidades 8 e uma unidade de inicialização 9. Deverá ser notado que no caso de dados de imagens, as unidades de dados aqui referidas são definidas como uma imagem ou uma fatia. Além disso, cada uma das unidades de dados é composta por uma pluralidade de conjuntos de sub-dados. Quando a unidade de dados é uma imagem, os sub-dados são fatias, macroblocos e blocos, e quando a unidade de dados é uma fatia, os sub-dados são macroblocos ou blocos. 0 codificador aritmético 7 é um dispositivo para produzir dados gerados para a unidade de atualização de tabela de probabilidades 8 após a introdução de dados, e para codificação de dados com base nas tabelas de probabilidades, isto é, as palavras de código, que são produzidas pela unidade de atualização de tabela de probabilidades 8. A unidade de atualização de tabela de probabilidades 8 tem uma função que atualiza as tabelas de probabilidades e é um dispositivo para produzir as tabelas de probabilidades, isto é, as palavras de código, para o codificador aritmético 7 enquanto atualiza as tabelas de probabilidades em resposta à probabilidade dos dados gerados que são produzidos pelo codificador aritmético 7. A unidade de inicialização 9 é um dispositivo para produção de instruções de inicialização de tabela de probabilidades 11 para a unidade de atualização de tabela de probabilidades 0 codificador de cabeçalhos 3 é um dispositivo para codificar dados de cabeçalho com um método de codificação fixa. Um método de codificação fixa refere-se a um método em que a palavra de código para cada código não se altera durante a codificação, e inclui métodos de codificação de comprimento fixo e métodos de codificação fixa de comprimento variável. Visto que é usado um método de codificação fixa, podem ser facilmente codificados dados de cabeçalho.
Por outro lado, um método de codificação no qual as palavras de código que correspondem a cada código se alteram é referido como um método de codificação adaptativo. Além disso, entre os métodos de codificação adaptativos, existem métodos estáticos de codificação nos quais as tabelas que indicam a relação entre os códigos e as palavras de código que correspondem aos códigos são simplesmente comutadas, e a codificação dinâmica, na qual as próprias palavras de código são sucessivamente atualizadas. Por outras palavras, isto significa que um método de codificação estática não é um método de codificação dinâmica (um método de codificação tal como codificação aritmética no qual a relação correspondente entre os códigos e as palavras de código que correspondem a esses códigos é variada dinamicamente). Consequentemente, a taxa de compressão pode ser ainda mais melhorada com um método de codificação dinâmica do que com um método de codificação estática. 0 dispositivo de codificação de comprimento variável 1 é fornecido adicionalmente com um codificador de tabela de probabilidades 6. 0 codificador de tabela de probabilidades 12 6 é um dispositivo para codificação das tabelas de probabilidades que são produzidas pela unidade de atualização de tabela de probabilidades 8 com um método de codificação fixa. Uma vez que usa um método de codificação fixa, as tabelas de probabilidades podem ser facilmente codificadas.
Um multiplexador 4 é um dispositivo para multiplexação dos dados de cabeçalho codificados que são produzidos pelo codificador de cabeçalhos 3, os dados codificados que não os cabeçalhos que são produzidos pelo codificador aritmético 7, e os dados codificados da tabela de probabilidadess que são produzidos pelo codificador tabela de probabilidades 6, e também para geração de sequências de códigos (fluxos de bits) e produzindo-os para uma linha de transmissão.
[2] Dispositivo de codificação de imagens padrão
Aqui, o diagrama de blocos da Fig. 2 irá ser usado para ilustrar uma configuração de um dispositivo de codificação de imagens padrão 100. O dispositivo de codificação de imagens padrão 100 inclui uma unidade de estimativa/compensação de movimento (ME/MC) 102, um subtrator 103, uma unidade de codificação conversora 104, uma unidade de descodificação conversora 105, um somador 106, e uma unidade de codificação de entropia. Deverá ser notado que a unidade de codificação de dados 2 que foi mencionada anteriormente corresponde à unidade de codificação de entropia 107. A unidade de estimativa/compensação de movimento 102 recebe dados de imagens de entrada Picln e gera dados de blocos previstos para blocos que vão ser codificados na imagem a ser codificada. A unidade de estimativa/compensação de 13 movimento 102 inclui uma unidade de estimativa de movimento (ME) 111, uma unidade de compensação de movimento (MC) 112, e uma memória de imagens 113. A unidade de estimativa de movimento 111 recebe os dados de imagens de entrada Picln e calcula os vetores de movimento MV, que são movimentos das imagens de entrada Picln para imagens reconstruídas na memória de imagens 113. A unidade de estimativa de movimento 111 produz os vetores de movimento MV para a unidade de compensação de movimento 112, a memória de imagens 113 e para a unidade de codificação de entropia 107. Com base nos vetores de movimento MV a partir da unidade de estimativa de movimento 111, a unidade de compensação de movimento 112 gera (compensa por movimento) dados de imagens como imagens de referência que correspondem aos movimentos das imagens reconstruídas na memória de imagens 113 e produz esses dados para o subtrator 103 e para o somador 106. A memória de imagens 113 armazena as imagens reconstruídas, e as imagens reconstruídas são lidas com a unidade de estimativa de movimento 111 e a unidade de compensação de movimento 112. Deverá ser notado que quando se codifica intra-imagens, o valor de píxel da imagem de referência do movimento compensado é tomado como 0, e o subtrator 103 e o somador 106 produzem os dados de entrada tal como estão sem subtraírem ou adicionarem. O subtrator 103 determina valores diferenciais entre os dados de destino da imagem de entrada Picln e uma imagem de referência da unidade de compensação de movimento 112 e gera dados diferenciais correspondentes a esses valores diferenciais para a unidade de codificação conversora 104. A unidade de codificação conversora 104 executa o processamento de compressão de dados nos dados diferenciais 14 do subtrator 103 e produz dados comprimidos. A unidade de codificação conversora 104 inclui uma unidade de transformação ortogonal 114 e uma unidade de quantização 115. A unidade de transformação ortogonal 114 realiza um processamento de transformada discreta de cosseno (processamento de DCT) dos dados diferenciais do subtrator 103, e envia esses dados para a unidade de quantização 115. O processamento de DCT é um tipo de processamento de transformação ortogonal, no qual os dados do dominio espacial são convertidos em dados do dominio da frequência. A unidade de quantização 115 quantiza os dados de DCT da unidade de transformação ortogonal 114 com uma etapa de quantização, e produz coeficientes de quantização para a unidade de descodificação conversora 105 e para a unidade de codificação de entropia 107. A unidade de descodificação conversora 105 realiza processamento de expansão de dados sobre a sarda da unidade de codificação conversora 104, e produz dados expandidos. A unidade de descodificação conversora 105 inclui uma unidade de quantização inversa 116 e uma unidade de transformação ortogonal inversa 117. A unidade de quantização inversa 116 quantiza inversamente a saida da unidade de codificação conversora 104 com a etapa de quantização acima descrita e produz isso para a unidade de transformação ortogonal inversa 117. A unidade de transformação ortogonal inversa 117 realiza processamento de transformação discreta de cosseno inversa (processamento de IDCT) na saída da unidade de quantização inversa 116, e produz dados expandidos como sinais residuais preditivos para o somador 106. O processamento de IDCT é um processo no qual os dados do dominio da frequência são transformados em dados do dominio espacial. 15
Quando os macroblocos tiverem sofrido uma codificação de predição de compensação do movimento inter-trama, o somador 106 produz dados de imagens obtidos adicionando os sinais residuais preditivos da unidade de descodificação conversora 105 e as imagens de referência da unidade de compensação de movimento 112 para a memória de imagens 113 como imagens reconstruídas. A unidade de codificação de entropia 107 realiza codificação de entropia nos dados quantizados pós-DCT da unidade de codificação de DCT 104. A codificação de entropia refere-se à codificação em que uma sequência de bits de "0"s e "l"s é convertida numa sequência de bits mais curta, usando propriedades estatísticas da sequência de bits. (2) Operação do dispositivo de codificação de comprimento variável [1] Operação da unidade de codificação de dados e do codificador de tabela de probabilidades A Fig. 3 é um fluxograma mostrando um resumo da operação da unidade de codificação de dados 2 e do codificador de tabela de probabilidades 6.
Na etapa Sl, a unidade de inicialização 9 produz uma instrução de inicialização para a unidade de atualização de tabela de probabilidades 8, e a unidade de atualização de tabela de probabilidades 8 define uma tabela de probabilidades para cada unidade de dados para valores iniciais. Nesta operação de inicialização, a unidade de inicialização 9 e a unidade de atualização de tabela de probabilidades 8 executam a inicialização da tabela de probabilidades com base em dados de inicialização no 16 cabeçalho. Dados que são comuns a todas as unidades de dados podem ser usados como dados de inicialização nas tabelas de probabilidades. Quando a unidade de dados é uma imagem, exemplos de dados comuns eficazes para inicialização incluem tipos de codificação de imagens (distinguindo entre imagens intra-codifiçadas, imagens codificadas preditivas e imagens codificadas bi-preditivas) e valores iniciais de parâmetros de quantização de imagens. Deverá ser notado que dados comuns sem muita relação com inicialização incluem parâmetros tais como a ordem de codificação de imagens, a ordem de exibição de imagens, vetores de movimento e dimensão das imagens. Quando a unidade de dados é uma fatia, os exemplos incluem tipos de codificação de fatias (distinguindo entre fatias intra-codificadas, fatias codificadas preditivas e fatias bi-preditivas) , e valores iniciais de parâmetros de quantização de fatias.
Na etapa S2, o codificador aritmético 7 e a unidade de atualização de tabela de probabilidades 8 cooperam para realizar codificação aritmética nos sub-dados. Mais especificamente, com base na saida da tabela de probabilidades da unidade de atualização de tabela de probabilidades 8, o codificador aritmético 7 obtém probabilidades usadas na codificação de sub-dados a partir da tabela de probabilidades e faz referência a essas probabilidades para codificar os sub-dados. Especificamente, a unidade de dados são imagens ou fatias, e os macroblocos ou blocos que são os sub-dados são codificados.
Na etapa S3, a tabela de probabilidades de dados gerados é atualizada pela unidade de atualização de tabela de probabilidades 8 de acordo com os dados gerados. Na presente forma de realização, a tabela atualizada de 17 probabilidades é usada quando é realizada codificação aritmética sobre os próximos sub-dados.
Na etapa S4, é determinado se a codificação de todos os sub-dados está ou não completa. Se for determinado que a codificação de todos os sub-dados não está completa, o procedimento retorna para a etapa S2 e a operação acima descrita é repetida.
Na etapa S5, é determinado se se codifica ou não a tabela de probabilidades, e se for para ser codificada, o procedimento procede para a etapa S6, e se não for para ser codificado, a etapa S6 é ignorada. 0 codificador aritmético 7 gera um sinalizador de valor inicial que serve para identificar o resultado da determinação e produz esse resultado juntamente com os dados codificados para o multiplexador 4. Deverá ser notado que a tabela de probabilidades usada como valores iniciais não é codificada em tais casos quando, por exemplo, a quantidade de dados até a próxima tabela de probabilidades ser inicializada é suficientemente grande (por outras palavras, a proporção da quantidade de dados necessária para aprendizagem para a quantidade total de dados que é ocupada é suficientemente pequena e a eficiência da aprendizagem, portanto, é boa) , ou quando a tabela de probabilidades usada como valores iniciais é substancial ou completamente consistente com a tabela de probabilidades ideal obtida pela aprendizagem.
Na etapa S6, a tabela de probabilidades da unidade de atualização de tabela de probabilidades 8 é codificada pelo codificador de tabela de probabilidades 6. A eficiência de compressão é melhorada pelo método de codificação acima descrito porque, com exceção da primeira codificação de sub-dados, a tabela de probabilidades é 18 atualizada com base nos valores de sub-dados codificados e as probabilidades são obtidas a partir da tabela de probabilidades. Em particular, porque a tabela de probabilidades a ser usada na codificação de sub-dados é uma tabela de probabilidades atualizada pela codificação aritmética dos sub-dados anteriores, a codificação pode ser alcançada em tempo real e a velocidade de codificação irá aumentar. Além disso, uma eficiência de compressão favorável pode ser obtida devido à correlação espacial e temporal das imagens.
Deverá ser notado que a codificação aritmética pode ser realizada usando uma tabela de probabilidades obtida por meio de codificação aritmética dos valores iniciais da unidade de dados. Neste caso, existe uma elevada eficiência de compressão, mesmo quando há uma grande diferença entre os conteúdos da unidade de dados e da unidade de dados anterior. 0 fluxograma mostrado na Fig. 4 é uma modificação do fluxograma mostrado na Fig. 3, e uma situação em que apenas uma parte da tabela de probabilidades é codificada quando a tabela de códigos da unidade de atualização de tabela de probabilidades 8 é codificada pelo codificador de tabela de probabilidades 6 na etapa S6. Nesta situação, a quantidade de códigos pode ser reduzida, e além disso, ao ser utilizado um método em que apenas as partes de dados codificados com elevada probabilidade na tabela de probabilidades obtida são codificadas, pode ser alcançada descodificação suficientemente correta quando em descodificação. As partes de dados com baixa probabilidade são inicializadas com valores iniciais. Na etapa S7, as partes que não foram codificadas na tabela de probabilidades são inicializadas com valores iniciais. Isto é, quando apenas as partes importantes da tabela de 19 probabilidades são codificadas, inicializando com valores iniciais somente as partes que não são codificadas, todas as relações da tabela de probabilidades podem ser definidas para valores específicos quando a tabela de probabilidades é especificada para codificação sem depender de valores da tabela de probabilidades até esse momento, e as tabelas de probabilidades do dispositivo de codificação e do dispositivo de descodificação podem ser comparadas.
[2] Operação da unidade de codificação de cabeçalhos 0 codificador de cabeçalhos 3 codifica os dados de cabeçalho introduzidos e produz os dados de cabeçalho codificados para o multiplexador 4.
[3] Operação do multiplexador 0 multiplexador 4 gera um fluxo de bits a partir dos dados que são produzidos pelo codificador aritmético 7, pelo codificador de cabeçalhos 3 e pelo codificador de tabela de probabilidades 6 e coloca-o numa linha de transmissão. A Fig. 5 mostra um exemplo da estrutura de um fluxo de dados de imagens. Conforme mostrado na Fig. 5, o fluxo é composto de áreas de dados comuns tais como um cabeçalho e áreas de GOP (Group of Picture - Grupo de Imagens) . As áreas de GOP são compostas por áreas de dados comuns tais como um cabeçalho e similares, e uma pluralidade de áreas de imagens. As áreas de imagens são compostas por áreas de dados comuns tais como um cabeçalho e similares e por uma pluralidade de áreas de dados de fatias. As áreas de dados de fatias são compostas por áreas de dados comuns tais como um cabeçalho e similares, e por uma pluralidade de áreas de dados de macroblocos. 20
Além disso, o fluxo não tem de ser um fluxo de bits contínuo. Quando se transmitem pacotes (que sãa unidades de dados finamente divididas), então partes do cabeçalho e partes dos dados podem ser separadas e transmitidas separadamente. Neste caso, as partes do cabeçalho e as partes dos dados não são um fluxo de bits único, conforme mostrado na Fig. 5. No entanto, no caso dos pacotes, embora a sequência de transmissão para a parte do cabeçalho e para a parte dos dados não seja contínua, as partes de dados correspondentes e as suas partes de cabeçalho correspondentes são simplesmente transmitidas em pacotes separados, e embora este não seja um fluxo de bits único, o conceito é o mesmo do fluxo de bits ilustrado na Fig. 5. A Fig. 6 mostra outro exemplo da estrutura de um fluxo de dados de imagens. A estrutura deste fluxo é basicamente a mesma estrutura que a estrutura do fluxo mostrado na Fig. 5, e portanto apenas os pontos de diferença serão descritos abaixo. Na estrutura deste fluxo, os GOPs e as imagens não têm cabeçalhos. Apenas as fatias têm cabeçalhos. Os GOPs e as imagens têm vários parâmetros como dados comuns nas suas partes principais. Os parâmetros correspondem a um cabeçalho, mas a diferença é que os parâmetros também são eficazes para imagens subsequentes enquanto os parâmetros não são atualizados. Por exemplo, isto significa que os parâmetros correspondentes a um cabeçalho de uma imagem são o cabeçalho da imagem para todas as imagens, até que os parâmetros correspondentes ao próximo cabeçalho de imagem sejam transmitidos. A Fig. 7 mostra a estrutura de dados de um fluxo de bits que é produzido pelo multiplexador 4 quando a unidade de dados acima descrita corresponde aos dados de imagem de uma imagem. Uma imagem é geralmente composta por um cabeçalho, 21 e por uma pluralidade de fatias como sub-dados codificados. 0 cabeçalho indica o inicio dos dados codificados para uma imagem e é primariamente composto pelos dados comuns para cada fatia (por exemplo, o tipo de codificação da imagem [distinguindo entre imagens intra-codifiçadas e imagens codificadas preditivas], e parâmetros tais como números que indicam a ordem da codificação de imagens ou a ordem de exibição) .
Um sinalizador de valor inicial é colocado no cabeçalho. 0 sinalizador de valor inicial é um sinalizador para identificar se a tabela de probabilidades utilizada para os valores iniciais está ou não codificada. Se a tabela de probabilidades estiver codificada, o sinializador é "1", e se não estiver codificada, o sinalizador é "0".
Além disso, tal como mostrado na Fig. 7(a), os dados codificados da tabela de probabilidades são colocados dentro do cabeçalho como valores iniciais da tabela de probabilidades. Quando a tabela de probabilidades não está codificada, os dados codificados da tabela de probabilidades não são produzidos pelo codificador de tabela de probabilidades 6 para o multiplexador 4, cujo resultado tal como mostrado na Fig. 7 (b) , é que os dados codificados da tabela de probabilidades não são colocados no fluxo de bits.
Tal como descrito acima, o cabeçalho inclui partes de dados comuns (que estão originalmente na parte do cabeçalho) que são codificados pelo codificador de cabeçalhos 3, um sinalizador de valor inicial gerado pelo codificador aritmético 7, e dados codificados da tabela de probabilidades codificados pelo codificador de tabela de probabilidades 6. Mais particularmente, as partes de dados comuns são divididas num lado de parte principal e num lado 22 de dados de imagem, e inseridos entre elas são o sinalizador de valor inicial e os dados codificados de tabela de probabilidades, nessa ordem. A Fig. 8 mostra a estrutura de dados de um fluxo de bits que é produzida pelo multiplexador 4 quando a unidade de dados é uma fatia de dados de imagens. Uma fatia é geralmente composta por um cabeçalho e por uma pluralidade de blocos (ou macroblocos) como sub-dados codificados. 0 cabeçalho indica o inicio dos dados codificados de uma fatia e é primariamente composto pelos dados comuns para cada fatia (parâmetros tais como um código inicial e uma escala de quantização). Além disso, um sinalizador de valor inicial é colocado no cabeçalho. 0 sinalizador de valor inicial é um sinalizador para identificar se a tabela de probabilidades usada como os valores iniciais está codificada ou não. Se a tabela de probabilidades estiver codificada, o sinalizador é "1", e se não estiver codificada, o sinalizador é "0".
Além disso, conforme mostrado na Fig. 8 (a), os dados codificados da tabela de probabilidades são colocados dentro do cabeçalho como valores iniciais da tabela de probabilidades. Quando a tabela de probabilidades não está codificada, os dados codificados da tabela de probabilidades não são produzidos pelo codificador de tabela de probabilidades 6 para o multiplexador 4, cujo resultado, conforme mostrado na Fig. 8 (b) , é que os dados codificados da tabela de probabilidades não são colocados no fluxo de bits.
Tal como descrito acima, o cabeçalho inclui partes de dados comuns (que estão originalmente na parte do cabeçalho) que são codificados pelo codificador de cabeçalhos 3, um sinalizador de valor inicial gerado pelo codificador 23 aritmético 7, e dados codificados de tabela de probabilidades codificados pelo codificador de tabela de probabilidades 6. Mais especificamente, as partes de dados comuns são divididas num lado de parte principal e num lado de dados de imagens, e inserido entre elas são o sinalizador de valor inicial e os dados codificados de tabela de probabilidade, nessa ordem.
Deverá ser notado que nesta forma de realização a própria tabela de probabilidades foi codificada e incorporada no cabeçalho como dados relacionados com a tabela de probabilidades, mas em vez disso, informação indicando a tabela de probabilidades obtida (por exemplo, uma fórmula, um sinalizador que indica a tabela de probabilidades, ou informação indicando uma combinação destes) pode ser codificada e incorporada no cabeçalho. Neste caso, a quantidade de codificação pode ser reduzida, porque a própria tabela de probabilidades não é codificada.
Como mais um exemplo de informação que indica a tabela de probabilidades obtida, é possivel usar uma parte de dados comuns no cabeçalho. Neste caso, a quantidade de codificação pode ser ainda mais reduzida porque esses dados também funcionam como uma parte de dados comuns na unidade de dados. Quando a unidade de dados é uma imagem, exemplos de dados comuns incluem tipos de codificação de imagens (distinguindo entre imagens intra-codifiçadas, imagens codificadas preditivas e imagens bi-preditivas), e valores iniciais de parâmetros de quantização de imagens. Deverá ser notado que dados comuns sem muita relação com inicialização incluem parâmetros tais como a ordem de codificação de imagens, a ordem de exibição de imagens, vetores de movimento, e dimensão das imagens. Quando a unidade de dados é uma fatia, os exemplos incluem tipos de codificação de fatias (distinguindo entre fatias intra- 24 codificadas, fatias codificadas preditivas e fatias bi-preditivas), e os valores iniciais dos parâmetros de quantização de fatias. Além disso, o sinalizador de valor inicial pode ser omitido, assegurando que os valores iniciais são sempre atualizados, ou seja, garantindo que os valores iniciais são sempre enviados. (3) Configuração do dispositivo de descodificação de comprimento variável [1] Dispositivo de descodificação de comprimento variável de acordo com a presente invenção A Fig. 9 é um diagrama de blocos, mostrando a configuração global de um dispositivo de descodificação de comprimento variável 11 de acordo com uma forma de realização da presente invenção. 0 dispositivo de descodificação de comprimento variável 11 é, por exemplo, um dispositivo para descodificar dados que foram codificados pelo dispositivo de codificação de comprimento variável 1. Quando o objeto é dados de imagens, o dispositivo de descodificação de comprimento variável 11 tem as funções de execução da descodificação de entropia dos dados e obtenção de dados de imagens transformadas. 0 dispositivo de descodificação de comprimento variável 11 é primariamente fornecido com uma unidade de descodificação de dados 12 e uma unidade de descodificação de cabeçalhos 13. A unidade de descodificação de dados 12 é um dispositivo para executar descodificação aritmética sobre dados que não sejam o cabeçalho de cada unidade de dados, e é fornecido com um descodificador aritmético 17, uma unidade de atualização de tabela de probabilidades 18, e uma unidade 25 de inicialização 19. Deverá ser notado que a unidade de dados referida aqui no caso dos dados de imagens significa uma imagem ou uma fatia. 0 descodificador aritmético 17 é um dispositivo para produção de dados gerados para a unidade de atualização de tabela de probabilidades 18, após os dados codificados serem introduzidos, e descodificação de dados codificados com base nos dados da tabela de probabilidades, ou seja, palavras de código, que são produzidos a partir da unidade de atualização de tabela de probabilidades 18. A unidade de atualização de tabela de probabilidades 18 tem a função de atualizar as tabelas de probabilidades, e é um dispositivo para produzir a tabela de probabilidades, isto é, as palavras de código para o descodificador aritmético 17 enquanto é atualizada a tabela de probabilidades em resposta à probabilidade dos dados gerados que é produzida pelo descodificador aritmético 17. A unidade de inicialização 19 é um dispositivo para produzir uma instrução de inicialização a partir da tabela de probabilidades para a unidade de atualização de tabela de probabilidades 18. 0 descodificador de cabeçalhos 13 é um dispositivo para descodificar os dados de cabeçalho codificados com um método de descodificação fixa. 0 dispositivo de descodificação de comprimento variável 11 é adicionalmente fornecido com um descodificador de tabela de probabilidades 16. 0 descodificador de tabela de probabilidades 16 é um dispositivo para a descodificação dos dados codificados da tabela de probabilidades com um método de descodificação fixa. 26
Um desmultiplexador 14 é um dispositivo para desmultiplexação e produção de um fluxo de bits como dados de cabeçalho codificados, dados codificados que não os cabeçalhos, e dados codificados da tabela de probabilidades.
[2] Dispositivo de descodificação de imagens padrão
Aqui, o diagrama de blocos da Fig. 10 será usado para ilustrar uma configuração interior de um dispositivo de descodificação de imagens padrão 200. 0 dispositivo de descodificação de imagens 200 inclui uma unidade de geração de dados de predição 202, uma unidade de descodificação conversora 204, um somador 206 e uma unidade de descodificação de entropia 207. Deverá ser notado que a unidade de descodificação de dados 12 que foi mencionada anteriormente corresponde à unidade de descodificação de entropia 207. A unidade de descodificação de entropia 207 realiza descodificação de entropia dos dados do fluxo que são introduzidos, com base na tabela de probabilidades, e produz esses dados para a unidade de descodificação conversora 204 e para a unidade de geração de dados de predição 202. A descodificação de entropia é um processo na direção inversa da codificação de entropia e refere-se a descodificação aritmética na presente forma de realização. A unidade de geração de dados de predição 202 inclui uma unidade de compensação de movimento 212 e uma memória de imagens 213. As imagens de saida do somador 206 são produzidas como imagens de referência e armazenadas na memória de imagens 213. Com base nos vetores de movimento MV descodificados pela unidade de descodificação de 27 entropia 207, a unidade de compensação de movimento 212 gera dados de imagens como imagens de predição (compensação de movimento) correspondentes aos vetores de movimento MV das imagens de referência armazenadas na memória de imagens 213, e produz estes dados para o somador 206. Deverá ser notado que, quando se codificam imagens intra-codifiçadas, os valores de pixel da imagem de referência compensada em movimento são tomados como 0, e o somador 206 produz os dados de entrada tal como estavam anteriormente, sem realizar adições. Além disso, os vetores de movimento descodificados são armazenados na memória de imagens 213. A unidade de descodificação conversora 204 realiza processamento de expansão de dados sobre a sarda da unidade de descodificação de entropia 207, e produz dados expandidos. A unidade de descodificação conversora 204 inclui uma unidade de quantização inversa 214 e uma unidade de transformação ortogonal inversa 215. A unidade de quantização inversa 214 quantiza inversamente a saída da unidade de descodificação de entropia 207, e produz isso para a unidade de transformação ortogonal inversa 215. A unidade de transformação ortogonal inversa 215 realiza processamento de transformação discreta de cosseno inversa (processamento de IDCT) na sarda da unidade de quantização inversa 214, e produz os dados expandidos para o somador 206. O processamento de IDCT é um processo no qual os dados do dominio da frequência são transformados em dados do dominio espacial. O somador 206 produz, como imagens de saída, os dados de imagens obtidos, adicionando os dados de imagens da unidade de codificação conversora 204, e os dados de imagens adicionados com a imagem de estimativa da unidade de compensação de movimento 212, e também produz o resultado para a memória de imagens 213. 28 (4) Operação do dispositivo de descodificação de comprimento variável [1] Operação do desmultiplexador 0 desmultiplexador 14 desmultiplexa um fluxo de bits, produz dados de cabeçalho codificados para o descodificador de cabeçalhos 13, produz dados codificados que não os cabeçalhos para o descodificador aritmético 17, e produz os dados codificados da tabela de probabilidades para o descodificador de tabela de probabilidades 16 quando existem dados codificados da tabela de probabilidades. Deverá ser notado que o descodificador de cabeçalhos 13 produz o sinalizador de valor inicial descodificado do cabeçalho para a unidade de inicialização 19.
[2] Operação do descodificador de cabeçalhos 0 descodificador de cabeçalhos 13 descodifica os dados de cabeçalho codificados que são produzidos pelo desmultiplexador 14, e produz dados de cabeçalho.
[3] Operação da unidade de descodificação de dados e do codificador de tabela de probabilidades A Fig. 11 é um fluxograma mostrando um resumo da operação da unidade de descodificação de dados 12 e do descodificador de tabela de probabilidades 16.
Na etapa S21, a unidade de inicialização 19 inicializa a unidade de atualização de tabela de probabilidades 18 por forma a definir uma tabela de probabilidades para valores iniciais. 29
Na etapa S22, com base no sinalizador de valor inicial incorporado no cabeçalho, a unidade de inicialização 19 determina se a tabela de probabilidades está codificada ou não. Se for determinado que a tabela de probabilidades está codificada, o procedimento prossegue para a etapa S23, e se for determinado que a tabela de probabilidades não está codificada, o procedimento salta a etapa S23 e prossegue para a etapa S24.
Na etapa S23, a unidade de atualização da tabela de probabilidades 18 atualiza a tabela de probabilidades com a tabela de probabilidades que é produzida pelo descodificador de tabela de probabilidades 16. Os dados codificados da tabela de probabilidades que são introduzidos no descodificador de tabela de probabilidades 16 são por vezes a tabela de probabilidades inteira, e por vezes uma parte da tabela de probabilidades. Mesmo quando apenas uma parte da tabela de probabilidades está codificada, se a parte correspondente aos dados codificados com uma probabilidade elevada na tabela de probabilidades obtida está codificada, uma descodificação adequada pode ser alcançada numa operação de descodificação (que será descrita abaixo). Deverá ser notado que, quando apenas uma parte da tabela de códigos está codificada, a tabela de probabilidades que não está codificada é inicializada com os mesmos valores tal como na etapa S21.
Também deverá ser notado que quando informação indicando que a tabela de probabilidades está codificada e não a própria tabela de probabilidades, essa informação é primeiro descodificada, em seguida a unidade de atualização de tabela de probabilidades 18 seleciona a tabela de probabilidades indicada por esses dados. 30
Na etapa S24, o descodificador aritmético 17 e a unidade de atualização de tabela de probabilidades 18 cooperam para realizar descodificação aritmética sobre os sub-dados. Especificamente, com base na tabela de probabilidades da unidade de atualização de tabela de probabilidades 18, o descodificador aritmético 17 descodifica os sub-dados codificados e produz dados. Quando a unidade de dados é uma imagem, por exemplo, as fatias são descodificadas. Na etapa S26, os dados gerados do descodificador aritmético 17 são produzidos para a unidade de atualização de tabela de probabilidades 18, e a unidade de atualização de tabela de probabilidades 18 reescreve a tabela de probabilidades com os dados gerados. A tabela de probabilidades atualizada é usada na descodificação dos próximos sub-dados na etapa S24 .
Na etapa S25, é determinado se a descodificação de todos os sub-dados está completa ou não. Se for determinado que a descodificação de todos os sub-dados não está completa, o procedimento retorna para a etapa S24, e a operação acima descrita é repetida. (5) Eficácia dos métodos de codificação e descodificação acima descritos [1] A eficiência de compressão é melhorada com os métodos de codificação e descodificação acima descritos porque os sub-dados são codificados com base na tabela de probabilidades obtida por codificação aritmética. Por outras palavras, com estes métodos de codificação e descodificação, a eficiência de compressão pode ser aumentada devido à elevada eficiência de aprendizagem, mesmo que a quantidade total de dados seja pequena e portanto, a proporção da quantidade de dados codificados que seriam necessários com métodos convencionais até à 31 codificação ideal ser obtida por aprendizagem é considerável.
Além disso, porque a tabela de probabilidades inicializada é codificada e colocada no cabeçalho da unidade de dados codificados, a unidade de dados codificados pode ser descodificada adequadamente durante a descodificação com essa tabela de probabilidades como valores iniciais.
[2] A frequência com que a tabela de probabilidades é codificada é apropriada com os métodos de codificação e descodificação acima descritos, uma vez que a tabela de probabilidades é codificada em unidades de imagens ou fatias. Em primeiro lugar, mesmo que uma parte dos dados codificados que deveriam ser usados na aprendizagem seja perdida num erro de transmissão, e a mesma tabela de probabilidades do que a do momento de codificação não possa ser reproduzida durante a descodificação, um estado em que as imagens não são reproduzíveis não dura mais do que vários segundos visto que a tabela de probabilidades codificadas é descodificada com uma frequência elevada. Se a codificação for realizada em fluxo ou unidades de GOP, a frequência de codificação da tabela de probabilidades é baixa, e quando uma parte dos dados codificados que deveriam ser usados na aprendizagem é perdida num erro de transmissão e a tabela de probabilidades não pode ser reproduzida, é criada uma condição na qual as imagens não são reproduzíveis por mais do que alguns segundos. Em segundo lugar, não haverá uma grande quantidade de dados redundantes de tabela de probabilidades. Se a codificação for realizada em unidades de bloco (ou macrobloco), a redundância dos dados de inicialização vai tornar-se demasiado grande. 32 [3] É alcançada uma elevada eficiência de compressão para a parte principal dos dados de imagens com codificação aritmética nos métodos de codificação e descodificação acima descritos. Em contraste com isto, os cabeçalhos, que são dados comuns, são simples e estaticamente codificados com um método de codificação fixa. Mais particularmente, partes do cabeçalho original no cabeçalho são codificadas com um método de codificação fixa, e os valores iniciais da tabela de probabilidades inserida são também codificados com um método de codificação fixa. Porque a eficiência de compressão para cabeçalhos é sempre baixa em relação à parte principal dos dados de imagens, não há nenhum problema particularmente grande na utilização de um método de codificação fixa em termos da eficiência de compressão global. 2. Segunda forma de realização (1) Configuração do dispositivo de codificação de comprimento variável A Fig. 12 é um diagrama de blocos da configuração global de um dispositivo de codificação de comprimento variável 21 segundo uma forma de realização da presente invenção. 0 dispositivo de codificação de comprimento variável 21 é um dispositivo para realizar codificação de comprimento variável em dados introduzidos e para criar fluxos de bits. Em particular, o dispositivo de codificação de comprimento variável 21 é caracterizado por comutar entre uma pluralidade de tabelas de códigos de comprimento variável como principal método de codificação. Um exemplo tipico de codificação de comprimento variável é a codificação de Huffman, e a explicação seguinte usará a codificação de Huffman como um exemplo. 33 Vários tipos de dados introduzidos são possíveis para o dispositivo de codificação de comprimento variável 21, mas a presente forma de realização será descrita como um no qual são introduzidos dados de imagens. Ou seja, o dispositivo de codificação de comprimento variável 21 tem uma função que realiza codificação de entropia em sinais de imagens que foram convertidos em dados. Com o esquema MPEG em particular, os dados de imagens que são introduzidos no dispositivo de codificação de comprimento variável 21 são coeficientes de DCT quantizados e vetores de movimento. 0 dispositivo de codificação de comprimento variável 21 inclui uma unidade de codificação de dados 22 e um codificador de cabeçalhos 23. A unidade de codificação de dados 22 é um dispositivo para a realização de codificação de Huffman de dados diferentes de cabeçalhos para cada unidade de dados, e inclui um codificador de comprimento variável 27, uma unidade de seleção de tabela de códigos 28 e uma unidade de inicialização 29. Deverá ser notado que a unidade de dados é composta por uma pluralidade de conjuntos de sub-dados e quando a unidade de dados é uma imagem, os sub-dados são fatias, macroblocos ou blocos, e quando a unidade de dados é uma fatia, os sub-dados são macroblocos ou blocos. Além disso, a unidade de codificação de dados 22 corresponde à unidade de codificação de entropia 107 no dispositivo de codificação de imagens padrão 100 mostrado na Fig. 2. O codificador de comprimento variável 27 é um dispositivo para produzir dados gerados para a unidade de seleção de tabela de códigos 28 após a introdução de dados, e para codificação de dados com base nas tabelas de código de comprimento variável 30, ou seja, as palavras de código, 34 que são comutadas pela unidade de seleção de tabela de códigos 28. A unidade de seleção de tabela de códigos 28 é um dispositivo para produção de um sinal de seleção de tabela de códigos para um comutador 25 em resposta à probabilidade dos dados gerados produzidos pelo codificador de comprimento variável 27. 0 comutador 25 é um dispositivo para comutar as tabelas de código de comprimento variável 30 que são usadas quando o codificador de comprimento variável 27 codifica dados em conformidade com o sinal de seleção de tabela de códigos que é produzido pela unidade de seleção de tabela de códigos 28. A unidade de inicialização 29 é um dispositivo para produção de uma instrução de inicialização do sinal de seleção de tabela de códigos para a unidade de seleção de tabela de códigos 28. A Fig. 13 mostra exemplos específicos de tabelas de códigos de comprimento variável 30. Cada uma das tabelas de código de comprimento variável 30a até 30c é composta por uma combinação de fluxos de dados e bits que correspondem a esses dados. Fluxos de bits comuns são empregues nas partes brancas das tabelas de códigos de comprimento variável 30a até 30c (a partir dos dados 1 na tabela de código 30a, a partir dos dados 2 na tabela de código 30b, e a partir dos dados 4 na tabela de código 30c). Além disso, são empregues fluxos de bits diferentes nas partes comuns (dados 0 na tabela de códigos 30a, dados 0 e 1 na tabela de códigos 30b, dados 0 a 3 na tabela de códigos 30c) . Os dados das partes comuns são dados com uma probabilidade relativamente 35 elevada. Se dados com uma probabilidade elevada podem ser processados com um bit, a tabela de códigos 30a é selecionada, se dados com uma probabilidade elevada podem ser processados com dois bits, a tabela de códigos 30b é selecionada, e se códigos com uma probabilidade elevada podem ser processados com três bits, a tabela de códigos 30c é selecionada. Em contraste com isto, os códigos das partes brancas são para dados com uma probabilidade relativamente baixa. Desta forma, ao se organizarem sequências de bits comuns para dados com uma probabilidade relativamente baixa, podem ser preparadas diferentes tabelas de códigos de comprimento variável com uma pequena quantidade de dados para reduzir memória, e além disso, a operação de codificação será mais fácil. 0 codificador de cabeçalhos 23 é um dispositivo para codificar dados de cabeçalho com um método de codificação fixa. O dispositivo de codificação de comprimento variável 21 é adicionalmente fornecido com um codificador de sinal de seleção 26. O codificador de sinal de seleção 26 é um dispositivo para codificar os sinais de seleção de tabela de códigos que são produzidos a partir da unidade de seleção de tabelas de códigos 28 com um método de codificação fixa.
Um multiplexador 24 é um dispositivo para multiplexação dos dados de cabeçalho codificados que são produzidos a partir do codificador de cabeçalhos 23, os dados codificados que não cabeçalhos que são produzidos a partir do codificador de comprimento variável 27, e os dados de sinal de seleção codificados que são produzidos a partir do codificador de sinal de seleção 26, e para geração de sequências de código 36 (fluxos de bits) e produzindo-os para uma linha de transmissão. (2) Operação do dispositivo de codificação de comprimento variável [1] Operação da unidade de codificação de dados e do dispositivo de codificação de sinal de seleção A Fig. 14 é um fluxograma mostrando um resumo da operação da unidade de codificação de dados 22 e do codificador de sinal de seleção 26.
Na etapa S31, a unidade de inicialização 29 produz uma instrução de inicialização para a unidade de seleção de tabela de códigos 28, e a unidade de seleção de tabela de códigos 28 produz um sinal de seleção de tabela de códigos para o comutador 25. 0 resultado disto é que o comutador 25 seleciona uma tabela de códigos de comprimento variável 30 como os valores iniciais da codificação da unidade de dados. Nesta operação de inicialização, a unidade de inicialização 29 e a unidade de seleção de tabela de códigos 28 selecionam uma tabela de códigos de comprimento variável 30 com base nos dados de inicialização no cabeçalho. Deverá ser notado que a linha pela qual os dados de cabeçalho são enviados para a unidade de inicialização 29 e para a unidade de seleção de tabela de códigos 28 está omitida na Fig. 12.
Na etapa S32, o codificador de comprimento variável 27 e a unidade de seleção de tabela de códigos 28 cooperam para realizar a codificação de Huffman de sub-dados. Mais especificamente, a unidade de seleção de tabela de códigos 28 produz um sinal de seleção de tabela de códigos para o comutador 25 com base nos dados gerados até aquele ponto. 37
Tendo como base o sinal de seleção de tabela de códigos, o comutador 25 comuta as tabelas de códigos de comprimento variável 30, e o codificador de comprimento variável 27 codifica os sub-dados com as palavras de código da tabela de códigos de comprimento variável selecionada 30. Além disso, cada unidade de dados é composta por uma pluralidade de conjuntos de sub-dados. Especificamente, fatias, macroblocos ou blocos são codificados como sub-dados quando a unidade de dados é uma imagem, e macroblocos ou blocos são codificados como sub-dados quando a unidade de dados é uma fatia.
Na etapa S33, os sub-dados são produzidos para a unidade de seleção de tabela de códigos 28, e a unidade de seleção de tabela de códigos 28 atualiza a frequência de geração dos sub-dados, a qual indica qual a tabela de códigos que deve ser selecionada quando o comutador 25 executa em seguida uma comutação. Na presente forma de realização, esta tabela de códigos é usada quando a codificação de comprimento variável é realizada sobre os sub-dados seguintes.
Na etapa S34, é determinado se a codificação de todos os sub-dados está completa ou não. Se for determinado que a codificação de todos os sub-dados não está completa, o procedimento retorna à etapa S32 e a operação acima descrita é repetida.
Na etapa S35, é determinado se se codifica ou não a informação que indica a tabela de códigos de comprimento variável 30 usada para os valores iniciais (isto é, os sinais de seleção da tabela de códigos). Se esta informação deve ser codificada, o procedimento prossegue para a etapa S36, e se esta informação não deve ser codificada, a etapa S36 é ignorada. Deverá ser notado que a tabela de códigos de comprimento variável usada para os valores iniciais não 38 é codificada nos casos quando, por exemplo, a quantidade de dados até a próxima tabela de códigos de comprimento variável ser inicializada é suficientemente grande (por outras palavras, a proporção da quantidade de dados necessários para aprendizagem da quantidade total de dados é suficientemente pequena, e a eficiência de aprendizagem é portanto boa), ou quando a tabela de códigos de comprimento variável usada como valores iniciais é consistente com a tabela de códigos ótima selecionada através de aprendizagem. 0 codificador de comprimento variável 27 gera um sinalizador de valor inicial para identificar o resultado da determinação, e produz isso juntamente com os dados codificados para o multiplexador 24.
Na etapa S36, os sinais de seleção da tabela de códigos através dos quais a unidade de seleção de tabela de códigos 28 indica a tabela de códigos de comprimento variável em causa são produzidos para o codificador de sinal de seleção 26. A eficiência de compressão para os sub-dados é melhorada pelo método de codificação acima descrito porque, à exceção da primeira codificação dos sub-dados, a tabela de códigos de comprimento variável é selecionada com base nos valores de sub-dados codificados. Em particular, porque a tabela de códigos de comprimento variável usada na codificação de sub-dados é uma tabela de códigos de comprimento variável selecionada por codificação de Huffman dos sub-dados anteriores, a codificação pode ser alcançada em tempo real, e a velocidade de codificação irá ser aumentada. Além disso, pode ser obtida uma eficiência de compressão favorável com correlação espacial e temporal das imagens.
[2] Operação da unidade de codificação de cabeçalhos 39 0 codificador de cabeçalhos 23 codifica os dados de cabeçalho introduzidos, e produz esses dados para o multiplexador 24.
[3] Operação do multiplexador 0 multiplexador 24 gera um fluxo de bits a partir dos dados que são produzidos a partir do codificador de comprimento variável 27, do codificador de cabeçalhos 23 e do codificador de sinal de seleção 26, e produz esse fluxo para uma linha de transmissão. A Fig. 15 mostra estruturas de dados de fluxo de bits que são produzidas a partir do multiplexador 24 quando a unidade de dados é uma imagem de dados de imagens. Uma imagem é geralmente composta por um cabeçalho e por uma pluralidade de fatias como sub-dados codificados. 0 cabeçalho indica o inicio de dados codificados de uma imagem e tem dados comuns para cada fatia (por exemplo, o tipo de codificação de imagens [distinguindo entre imagens intra-codifiçadas, imagens codificadas preditivas, e imagens codificadas bi-preditivas] e valores iniciais de parâmetros de quantização de imagens). Deverá ser notado que dados comuns sem muita relação com inicialização incluem parâmetros tais como a ordem de codificação de imagens, a ordem de exibição de imagens, vetores de movimento, e dimensão das imagens. e se nao
Um sinalizador de valor inicial é colocado no cabeçalho. 0 sinalizador de valor inicial é um sinalizador para identificar se a informação que indica a tabela de códigos de comprimento variável está codificada ou não. Se a informação que indica a tabela de códigos de comprimento variável estiver codificada, o sinalizador é "1", estiver codificada, o sinalizador é "0". 40
Além disso, tal como mostrado na Fig. 15 (a) , os dados de sinal de seleção codificados (por exemplo, uma fórmula, um sinalizador indicando uma tabela de probabilidades, ou informação indicando uma combinação destes) que indicam a tabela de códigos de comprimento variável a ser usada são colocados no cabeçalho. Deverá ser notado que quando a informação que indica a tabela de códigos de comprimento variável não está codificada, os dados de sinal de seleção codificados não são produzidos a partir do codificador de sinal de seleção 26 para o multiplexador 24, e assim o resultado é que os dados de sinal de seleção codificados não são colocados no fluxo de bits conforme mostrado na Fig. 15 (b) .
Tal como descrito acima, o cabeçalho inclui partes de dados comuns (que estão originalmente na parte do cabeçalho) que são codificados pelo codificador de cabeçalhos 23, um sinalizador de valor inicial gerado pelo codificador de comprimento variável 27, e dados de sinal de seleção codificados codificados pelo codificador de sinal de seleção 26. Mais particularmente, as partes de dados comuns são divididas num lado de parte principal e num lado de dados de imagens, e inseridas entre elas estão o sinalizador de valor inicial e os dados de sinal de seleção codificados, por essa ordem. A Fig. 16 mostra a estrutura de dados de um fluxo de bits que é produzida pelo multiplexador 24 quando a unidade de dados é uma fatia de dados de imagens. Uma fatia é geralmente composta por um cabeçalho e por uma pluralidade de blocos (ou macroblocos) como sub-dados codificados. O cabeçalho indica o inicio de dados codificados numa fatia e é primariamente composto pelos dados comuns para cada fatia 41 (parâmetros tais como um código de inicio, e uma escala de quantização).
Exemplos de dados comuns incluem tipos de codificação de fatias (distinguindo entre fatias intra-codifiçadas, fatias codificadas preditivas e fatias codificadas bi-preditivas), e os valores iniciais dos parâmetros de quantização de fatias.
Além disso, um sinalizador de valor inicial é colocado no cabeçalho. 0 sinalizador de valor inicial é um sinalizador para identificar se a informação que indica a tabela de códigos de comprimento variável está codificada ou não. Se a informação que indica a tabela de códigos de comprimento variável estiver codificada, o sinalizador é "1", e se não estiver codificada, o sinalizador é "0".
Além disso, tal como mostrado na Fig. 16 (a), a informação de sinal de seleção codificada que indica a tabela de códigos de comprimento variável a ser usada é colocada no cabeçalho. Deverá ser notado que quando a tabela de códigos de comprimento variável não está codificada, os dados de sinal de seleção codificados não são produzidos a partir do codificador de sinal de seleção 26 para o multiplexador 24, e portanto o resultado é que os dados de sinal de seleção codificados não são colocados no fluxo de bits tal como mostrado na Fig. 16 (b).
Tal como descrito acima, o cabeçalho inclui partes de dados comuns (que estão originalmente na parte do cabeçalho) que são codificados pelo codificador de cabeçalhos 23, um sinalizador de valor inicial gerado pelo codificador de comprimento variável 27, e dados de sinal de seleção codificados codificados pelo codificador de sinal de seleção 26. Mais particularmente, as partes de dados comuns 42 são divididas num lado de parte principal e num lado de dados de imagens, e inseridas entre elas são o sinalizador de valor inicial e a informação de sinal de seleção codificada, por essa ordem.
Deverá ser notado que na presente forma de realização a própria tabela de códigos de comprimento variável não foi codificada e incorporada no cabeçalho, mas em vez disso, informação de sinal de seleção codificada indicando a tabela de códigos de comprimento variável a ser usada foi incorporada no cabeçalho. Consequentemente, a quantidade de codificação pode ser reduzida, porque a própria tabela de códigos de comprimento variável não está codificada.
Como um exemplo adicional de informação de sinal de seleção codificada indicando a tabela de códigos de comprimento variável a ser usada, é possivel usar uma parte de dados comuns no cabeçalho. Neste caso, a quantidade de codificação pode ser reduzida ainda mais porque esses dados também funcionam como uma parte de dados comuns na unidade de dados. Quando a unidade de dados é uma imagem, exemplos de dados comuns incluem tipos de codificação de imagens (distinguindo entre imagens intra-codifiçadas, imagens codificadas preditivas e imagens codificadas bi-preditivas) e valores iniciais de parâmetros de quantização de imagens. Deverá ser notado que dados comuns sem muita relação com inicialização incluem parâmetros tais como a ordem de codificação de imagens, a ordem de exibição de imagens, vetores de movimento e dimensão das imagens. Quando a unidade de dados é uma fatia, exemplos incluem tipos de codificação de fatias (distinguindo entre fatias intra-codificadas, fatias codificadas preditivas e fatias codificadas bi-preditivas) e valores iniciais de parâmetros de quantização de fatias. 43
Além disso, o sinalizador de valor inicial pode ser omitido ao ser garantido que os valores iniciais são sempre atualizados. (3) Configuração do dispositivo de descodificação de comprimento variável A Fig. 17 é um diagrama de blocos mostrando a configuração global de um dispositivo de descodificação de comprimento variável 31 segundo uma forma de realização da presente invenção. 0 dispositivo de descodificação de comprimento variável 31 é, por exemplo, um dispositivo para descodificar dados que foram codificados pelo dispositivo de codificação de comprimento variável 21. Quando o objeto são dados de imagens, o dispositivo de descodificação de comprimento variável 31 tem as funções de realizar a descodificação de entropia dos dados, e obter dados de imagens transformados. 0 dispositivo de descodificação de comprimento variável 31 inclui uma unidade de descodificação de dados 32 e uma unidade de descodificação de cabeçalhos 33. A unidade de descodificação de dados é um dispositivo para a realização de descodificação de Huffman em dados que não sejam o cabeçalho de cada unidade de dados, e é fornecido com um dispositivo de descodificação de comprimento variável 37 e um descodificador de sinal de seleção 35. Deverá ser notado que a unidade de dados referida aqui no caso dos dados de imagens significa uma imagem ou uma fatia. Além disso, a unidade de descodificação de dados 32 corresponde à unidade de descodificação de entropia 207 no dispositivo de codificação de imagens padrão 200 mostrado na Fig. 10. 44 0 dispositivo de descodificação de comprimento variável 37 é um dispositivo para descodificar dados codificados baseados nas palavras de código das tabelas de códigos de comprimento variável 30, que foi comutado por um comutador 35. O descodificador de sinal de seleção 36 é um dispositivo para descodificar os dados de sinal de seleção codificados que são produzidos a partir de um desmultiplexador 34 com um método de descodificação fixa, e produzir esses dados para o comutador 35. 0 comutador 35 é um dispositivo para comutar as tabelas de códigos de comprimento variável 30 que são usadas quando o dispositivo de descodificação de comprimento variável 37 descodifica dados em conformidade com o sinal de seleção de tabela de códigos que é produzido a partir da unidade de descodificação de sinal de seleção 36. A unidade de inicialização 39 é um dispositivo para produção de instruções de inicialização para a unidade de descodificação de sinal de seleção 36. O descodificador de cabeçalhos 33 é um dispositivo para a descodificação de dados de cabeçalho codificados com um método de descodificação fixa.
Um desmultiplexador 34 é um dispositivo para desmultiplexação e produção de um fluxo de bits como dados codificados de cabeçalho, dados codificados que não sejam cabeçalhos, e dados de sinal de seleção codificados. (4) Operação do dispositivo de descodificação de comprimento variável 45 [1] Operação do desmultiplexador 0 desmultiplexador 34 demultiplexa um fluxo de bits, produz dados de cabeçalho codificados para o descodificador de cabeçalhos 33, produz dados codificados que não sejam cabeçalhos para o dispositivo de descodificação de comprimento variável 37, e produz dados de sinal de seleção codificados para o descodificador de sinal de seleção 36 quando existem dados de sinal de seleção codificados. Deverá ser notado que o descodificador de cabeçalhos 33 produz o sinalizador de valor inicial do cabeçalho para a unidade de inicialização 39.
[2] Operação do descodificador de cabeçalhos 0 descodificador de cabeçalhos 33 descodifica os dados de cabeçalho codificados que são produzidos a partir do desmultiplexador 34, e produz dados de cabeçalho.
[3] Operação da unidade de descodificação de dados A Fig. 18 é um fluxograma mostrando um resumo do funcionamento da unidade de descodificação de dados 32.
Na etapa S51, a unidade de inicialização 39 produz instruções de inicialização para o descodificador de sinal de seleção 36, e o descodif icador de sinal de seleção 36 produz um sinal de seleção de tabela de códigos para o comutador 35. 0 resultado é que o comutador 35 seleciona a tabela de códigos de comprimento variável 30 como os valores iniciais para descodificação das unidades de dados.
Na etapa S52, a unidade de descodificação de comprimento variável 37 determina se a informação que indica a tabela de códigos de comprimento variável a ser usada está 46 codificada ou não, com base no sinalizador de valor inicial incorporado no cabeçalho. Se for determinado que a informação que indica a tabela de códigos de comprimento variável está codificada, o procedimento prossegue para a etapa S53, e se for determinado que não está codificada, o procedimento ignora a etapa 53 e prossegue para a etapa S54 .
Na etapa S53, o comutador 35 seleciona a tabela de códigos de comprimento variável 30 que é indicada pela sarda de sinal de seleção do descodificador de sinal de seleção 36.
Na etapa S54, o dispositivo de descodificação de comprimento variável 37 realiza descodificação de Huffman sobre os sub-dados. Mais especificamente, com base na tabela de códigos de comprimento variável 30 selecionada pelo comutador 35, o dispositivo de descodificação de comprimento variável 37 descodifica os sub-dados codificados, e produz dados. Quando a unidade de dados é uma imagem, por exemplo, as fatias são descodificadas. Na etapa S56, o dispositivo de descodificação de comprimento variável 37 seleciona a tabela de códigos de comprimento variável 30 com os dados gerados através do comutador 35. A tabela de códigos de comprimento variável selecionada 30 é usada na descodificação dos sub-dados seguintes na etapa S54 .
Na etapa S55, é determinado se a descodificação de todos os sub-dados está completa ou não. Se for determinado que a descodificação de todos os sub-dados não está completa, o procedimento retorna à etapa S54 e a operação acima descrita é repetida. (5) Eficácia do método de codificação e do método de descodificação acima descritos 47 [1] A eficiência de compressão é melhorada com os métodos de codificação e métodos de descodificação acima descritos porque os sub-dados são codificados com base numa tabela de códigos de comprimento variável obtida por codificação de Huffman. Por outras palavras, com estes métodos de codificação e descodificação, a eficiência de compressão pode ser aumentada com elevada eficiência de aprendizagem, mesmo que a quantidade total de dados seja pequena, e portanto a proporção da quantidade de dados codificados que seriam necessários com métodos convencionais até à codificação ideal ser obtida por aprendizagem é considerável.
Além disso, porque a informação que indica a tabela de códigos inicializada é codificada e colocada no cabeçalho de uma unidade de dados codificados, a unidade de dados codificados pode ser descodificada corretamente durante a descodificação com a tabela de códigos de comprimento variável indicada por essa informação como valores iniciais.
[2] A frequência com que a informação que indica a tabela de códigos de comprimento variável é codificada justifica-se com os métodos de codificação e métodos de descodificação acima descritos porque a tabela de códigos de comprimento variável é codificada em unidades de imagens ou fatias. Em primeiro lugar, mesmo quando os dados de sinal de seleção codificados se perdem num erro de transmissão, as imagens nunca irão ser ilegíveis por mais do que alguns segundos porque a tabela de probabilidades codificada é descodificada a uma frequência elevada. Quando se codifica em fluxos ou unidades de GOP, a informação que indica a tabela de códigos de comprimento variável é codificada a baixa frequência, e quando os dados de sinal 48 de seleção codificados se perdem num erro de linha de transmissão, as imagens não serão ilegíveis por mais de alguns segundos. Em segundo lugar, não haverá uma grande quantidade de informação redundante que indica a tabela de códigos de comprimento variável. Quando se codifica em unidades de blocos (ou macroblocos) , os dados de inicialização redundantes tornam-se muito grandes.
[3] A eficiência elevada de compressão para a parte principal dos dados de imagens é obtida com codificação de Huffman comutando entre uma pluralidade de tabelas de códigos de comprimento variável nos métodos de codificação e métodos de descodificação acima descritos. Em contraste com isto, os cabeçalhos (que são dados comuns) são codificados com um método de codificação fixa. Mais particularmente, as partes do cabeçalho original no cabeçalho são codificadas com um método de codificação fixa e as informações inseridas que indicam a tabela de códigos de comprimento variável são também codificadas com um método de codificação fixa. Porque a eficiência de compressão para cabeçalhos é sempre baixa em relação à parte principal dos dados de imagens, não há nenhum problema particularmente grande na utilização de um método de codificação fixa em termos da eficiência de compressão global. 3. Forma de realização do suporte de armazenamento
Ao se armazenar um programa que executa o método de codificação de comprimento variável ou o método de descodificação de comprimento variável mostrado nas formas de realização acima descritas num suporte de armazenamento tal como uma disquete, é possivel executar facilmente os processos mostrados nas formas de realização num sistema informático independente. 49 A Fig. 19 ilustra um caso no qual a presente invenção é executada num sistema informático usando uma disquete na qual é armazenado um método de codificação de comprimento variável ou um método de descodificação de comprimento variável das formas de realização acima descritas. A Fig. 19 (b) mostra uma vista frontal da aparência exterior de uma disquete, uma vista em corte transversal da mesma e uma disquete. A Fig. 19 (a) mostra um exemplo do formato fisico de uma disquete (que é a parte principal do suporte de armazenamento). Uma disquete FD é colocada num invólucro F, e uma pluralidade de faixas Tr são formadas de forma concêntrica a partir da borda exterior para a borda interior na superfície da disquete. Cada faixa é dividida numa orientação angular em 16 setores Se. Assim, com uma disquete na qual está armazenado o programa acima descrito, o método de codificação de comprimento variável ou o método de descodificação de comprimento variável será gravado em regiões assignadas da disquete FD como o programa acima mencionado.
Por outro lado, a Fig. 19 (c) mostra uma configuração para gravação e reprodução do programa na disquete FD. Ao gravar o programa na disquete FD, o método de codificação de comprimento variável ou o método de descodificação de comprimento variável é escrito a partir de um sistema informático Cs através de uma unidade de disquetes. Além disso, ao construir o método de codificação de comprimento variável do método de descodificação de comprimento variável num sistema informático por meio do programa na disquete, o programa é lido a partir da disquete por uma unidade de disquetes e transferido para um sistema informático. 50
Deverá ser notado que uma disquete é usada como o suporte de armazenamento para ilustrar a explicação acima, mas um disco ótico também pode ser usado da mesma forma. Além disso, o suporte de armazenamento não está limitado aos exemplos acima mencionados, e desde que seja um suporte no qual pode ser feita uma gravação, como um CD-ROM, um cartão de memória ou uma cassete de ROM, o programa pode ser executado da mesma forma. 4. Aplicações de exemplo da presente invenção e sistemas que usam estas O seguinte é uma explicação de aplicações de exemplo dos métodos de codificação de imagens em movimento e métodos de descodificação de imagens em movimento mostrados nas formas de realização acima descritas, bem como sistemas que os usam. A Fig. 2 0 é um diagrama de blocos mostrando uma configuração inteira de um sistema de disponibilização de conteúdos exlOO que efetua um serviço de disponibilização de conteúdos. As áreas para fornecer serviços de comunicações são divididas em tamanhos desejados e as estações base exl07 a exllO (que são estações sem fios fixas) são instaladas dentro das respetivas células. O sistema de disponibilização de conteúdos exlOO conecta, por exemplo, um provedor de serviços de Internet exl02 à Internet exlOl e uma rede telefónica exl04, bem como vários dispositivos como um computador exlll, um PDA (Personal Digital Assistant - Assistente Pessoal Digital) exll2, uma câmara 113, um telemóvel exll4, e um telemóvel equipado com câmara exll5 através das estações base exl07 a exllO. 51
No entanto, o sistema de disponibilização de conteúdos exlOO não está limitado ao arranjo mostrado na Fig. 17, e qualquer combinação destes dispositivos pode ser arranjada e conectada. Além disso, os dispositivos podem ser diretamente conectados pela rede telefónica exl04, e não através das estações base exl07 a exllO (que são estações sem fios fixas). A câmara é um dispositivo como uma câmara de video digital que é capaz de capturar imagens em movimento. Além disso, os telemóveis podem ser dispositivos que operam em protocolos como PDC (Personal Digital Communications Comunicações Digitais Pessoais), CDMA (Code Division Multiple Access - Acesso Múltiplo por Divisão de Código), W-CDMA (Wideband Code Division Multiple Access - Acesso Múltiplo por Divisão de Código sobre Banda Larga), ou GSM (Global System for Mobile Communications - Sistema Global para Comunicações Móveis), PHS (Personal Handy phone System - Sistema Telefónico Pessoal) e similares.
Além disso, um servidor de disponibilização de fluxos exl03 pode ser conectado à câmara exll3 através da estação base exl09 e da rede telefónica exl04, e um utilizador usando a câmara exll3 pode fazer uma transmissão ao vivo com base em dados codificados. 0 processamento para codificar os dados capturados pode ser realizado pela câmara exll3, ou por um servidor ou similar que transmite os dados. Além disso, os dados de imagens em movimento capturados por uma câmara exllô podem ser enviados através do computador exlll para o servidor de disponibilização de fluxos exl03. A câmara exllô é um dispositivo como uma câmara digital que é capaz de capturar imagens fixas e imagens em movimento. Neste caso, a codificação dos dados das imagens em movimento pode ser realizada pela câmara exllô ou pelo computador exlll. 52
Além disso, o processo de codificação é realizado por um chip LSI exll7 fornecido no computador exlll ou na câmara exllô. Deverá ser notado que o software para codificação/descodificação de imagens pode ser incorporado em qualquer suporte de armazenamento (como CD-ROMs, discos flexíveis e discos rígidos) que pode ser lido pelo computador exlll ou similar. Além disso, os dados de imagens em movimento podem ser transmitidos pelo telemóvel equipado com câmara exll5. Quando isto ocorre, os dados de imagens em movimento são codificados em dados por um chip LSI fornecido no telemóvel exll5.
Com o sistema de disponibilização de conteúdos exlOO, os conteúdos (por exemplo, imagens capturando um concerto ao vivo) que um utilizador está a capturar com a câmara exll3, a câmara exllô ou similar são codificados da mesma forma como nas formas de realização acima descritas e transmitidos para o servidor de disponibilização de fluxos exl03 e o servidor de disponibilização de fluxos exl03 transmite os conteúdos para um cliente que os solicitou. Exemplos do cliente incluem dispositivos capazes de descodificar os dados codificados tais como o computador exlll, o PDA exll2, a câmara exll3 e o telemóvel exll4. Assim, o sistema de disponibilização de conteúdos exlOO é um sistema que torna possível para um cliente receber e reproduzir dados codificados. Além disso, podem ser conseguidas difusões individuais com o sistema recebendo, descodificando e reproduzindo dados codificados num cliente. 0 dispositivo de codificação de imagens em movimento ou o dispositivo de descodificação de imagens em movimento mostrados nas formas de realização acima descritas podem ser utilizados nos dispositivos de codificação e descodificação que compõem este sistema. 53 0 seguinte exemplo descreve o uso de um telemóvel com a presente invenção. A Fig. 21 mostra um telemóvel exll5 que usa o método de codificação de imagens em movimento e o método de descodificação de imagens em movimento descritos nas formas de realização acima. 0 telemóvel exll5 é fornecido com uma antena ex201 para enviar e receber ondas de rádio a partir de e para a estação base exllO, uma câmara ex203 como uma câmara CCD que é capaz de capturar imagens e imagens fixas, uma unidade de exibição ex202 tal como um visor de cristal liquido que exibe dados de imagens descodificados capturados pela câmara ex203 ou recebidos pela antena ex201, uma unidade principal composta por chaves de operação ex204, uma unidade de saida de voz ex208 tal como colunas para produção de voz, uma unidade de entrada de voz ex205 tal como um microfone para introdução de voz, um suporte de armazenamento ex207 para gravar dados codificados ou descodificados tais como imagens em movimento ou imagens fixas capturadas, dados de e-mail recebidos, dados de imagens em movimento ou dados de imagens fixas, e um intervalo ex206 para habilitar o suporte de armazenamento ex207 a ser equipado no telemóvel exll5. 0 suporte de armazenamento ex207 está alojado num dispositivo de memória flash, que é um tipo de EEPROM (Electrically Erasable and Programmable Read Only Memory -Memória Só de Leitura Eletricamente Apagável e Programável) que é uma memória não-volátil alojada num invólucro de plástico e capaz de ser eletricamente reescrita e apagada, tal como um cartão SD. 0 telemóvel exll5 será descrito adicionalmente com referência à Fig. 22. Uma unidade de circuito de alimentação ex310, uma unidade de controlo de entrada de 54 operação ex304, uma unidade de codificação de imagens ex312, uma unidade de interface de câmara ex303, uma unidade de controlo de LCD (liquid crystal display - visor de cristal liquido) ex302, uma unidade de descodificação de imagens ex309, uma unidade de multiplexação/desmultiplexação ex308, uma unidade de reprodução de gravação ex307, uma unidade de circuito de modem ex306 e uma unidade de processamento de voz 305 são interligados através de um barramento de sincronismo ex313 para uma unidade de controlo principal ex311 que controla centralmente cada unidade da unidade principal fornecida com a unidade de exibição ex202 e as chaves de operação ex204.
Quando uma chamada termina ou a tecla de alimentação (power) é ativada pelo utilizador, a unidade de circuito de alimentação ex310 fornece alimentação a cada unidade de bateria, ativando assim o telemóvel digital equipado com câmara exll5 para operação.
Com base no controlo da unidade de controlo principal ex311 (que inclui um CPU, uma ROM, uma RAM, e similar) , o telemóvel exll5 converte os sinais de voz recolhidos durante um modo de chamada de voz pela unidade de entrada de voz ex205 para dados de voz digital com a unidade de processamento de voz ex305, e estes passam por processamento de espalhamento de espetro pela unidade de circuito de modem ex306 e são transmitidos através da antena ex201 pela unidade de circuito de receção/envio ex301 depois de sofrer uma conversão digital-analógica e transformação de frequência. Além disso, durante o modo de chamada de voz com o telemóvel exll5, após os sinais de receção recebidos pela antena ex201 serem amplificados e sofrerem transformação de frequência, conversão digital-analógica, e processamento inverso de espalhamento de 55 espetro pela unidade de circuito de modem ex306, e são convertidos em sinais de voz analógicos pela unidade de processamento de voz ex305, são produzidos através da unidade de sarda de voz ex208.
Além disso, ao enviar um e-mail no modo de transmissão de dados, os dados de texto do e-mail que são introduzidos pela operação das chaves de operação ex204 da unidade principal são enviados para a unidade de controlo principal ex311 através da unidade de controlo de entrada de operação ex304. A unidade de controlo principal ex311 transmite os dados de texto para a estação base exllO através da antena ex201 após o processamento do espalhamento de espetro ser executado pela unidade de circuito de modem ex306, e em seguida sofre uma conversão digital-analógica e transformação de frequência pela unidade de circuito de receção/envio ex301.
Ao enviar dados de imagens em modo de transmissão de dados, os dados de imagens capturados pela câmara ex203 são fornecidos para a unidade de codificação de imagens ex312 através da unidade de interface de câmara ex303. Além disso, se os dados de imagens não estão a ser enviados, é também possível para os dados de imagens capturados pela câmara ex203 serem exibidos diretamente na unidade de exibição ex202 através da unidade de interface de câmara ex303 e da unidade de controlo de LCD ex302. A unidade de codificação de imagens ex312 é uma configuração fornecida com um dispositivo de codificação de imagens descrito no presente pedido. Os dados de imagens fornecidos pela câmara ex203 são convertidos para dados de imagens codificados através de codificação de compressão com o método de codificação usado no dispositivo de codificação de imagens mostrado nas formas de realização 56 acima descritas, e estes dados são enviados para a unidade de multiplexação/desmultiplexação ex308. Além disso, o dispositivo de telemóvel exll5 envia simultaneamente voz recolhida pela unidade de entrada de voz ex205 durante a captura de imagens pela câmara ex203 para a unidade de multiplexação/desmultiplexação ex308 como dados de voz digital através da unidade de processamento de voz ex305. A unidade de multiplexação/desmultiplexação ex308 realiza processamento de multiplexação dos dados de imagens codificados fornecidos a partir da unidade de codificação de imagens ex312 e dos dados de voz fornecidos a partir da unidade de processamento de voz ex305, e após os dados multiplexados obtidos como resultado disto sofrerem processamento de espalhamento de espetro pela unidade de circuito de modem ex306 e sofrerem conversão digital-analógica e transformação de frequência pela unidade de circuito de receção/envio ex301, este dados são transmitidos através da antena ex201.
Ao receber dados de ficheiro de imagens em movimento com ligação a um website ou similar no modo de transmissão de dados, os sinais de receção recebidos da estação base exllO através da antena ex201 sofrem processamento inverso de espalhamento de espetro pela unidade de circuito de modem ex306, e os dados multiplexados obtidos como resultado disto são enviados para a unidade de separação de multiplexação ex308.
Além disso, na descodificação de dados multiplexados recebidos através da antena ex201, a unidade de separação de multiplexação ex308 divide os dados multiplexados desmultiplexando-os num fluxo de bits de dados de imagens codificados e num fluxo de bits de dados de voz codificados e os dados de voz são fornecidos à unidade de processamento 57 de voz ex305 juntamente com os dados de imagens codificados sendo fornecidos à unidade de descodificação de imagens ex309 através do barramento de sincronismo ex313.
Em seguida, a unidade de descodificação de imagens ex309 é uma configuração fornecida com um dispositivo de descodificação de imagens descrito no presente pedido, e os dados de imagens em movimento contidos num ficheiro de imagens em movimento ligado a partir de um website, por exemplo, são exibidos descodificando o fluxo de bits dos dados de imagens codificados com um método de descodificação correspondente ao método de codificação mostrado nas formas de realização acima descritas, gerando dados de imagens em movimento de reprodução, e fornecendo-os à unidade de exibição ex202 através da unidade de controlo de LCD ex302. Em simultâneo com isto, a unidade de processamento de voz ex305 converte os dados de voz em sinais de voz analógicos, e em seguida fornece-os à unidade de saída de voz ex208, permitindo assim que os dados de voz contidos no ficheiro de imagens em movimento ligado a partir de um website, por exemplo, sejam reproduzidos.
Deverá ser notado que não existe nenhuma limitação para os exemplos do sistema acima descrito. Nos últimos anos, a difusão digital via satélite ou ondas terrestres tornou-se um problema, e pelo menos um dos dispositivos de codificação de imagens ou dos dispositivos de descodificação de imagens das formas de realização acima descritas pode ser incorporado em sistemas que usam difusão digital, tal como mostrado na Fig. 23. Especificamente, os fluxos de bits codificados de dados de imagens são transmitidos através de ondas de rádio para um satélite de comunicações ou difusão ex410 com uma estação de difusão ex409. 0 satélite de difusão ex410 que recebe os fluxos de 58 bits emite ondas de difusão de rádio, e estas ondas de rádio são recebidas por uma antena ex406 de uma casa equipada com meios de receção de difusão via satélite. 0 fluxo de bits codificados é descodificado por um dispositivo tal como uma televisão (dispositivo recetor) ex401, uma set-top-box (STB) ex407 ou similar, e este fluxo de bits descodificados é reproduzido. Além disso, é possivel instalar um dispositivo de descodificação de imagens mostrado nas formas de realização acima descritas num dispositivo de reprodução ex403 que lê e descodifica fluxos de bits codificados gravados num suporte de armazenamento ex402, tal como os suportes de armazenamento CD e DVD. Neste caso, os sinais de imagens reproduzidas são exibidos num monitor ex404. Além disso, é também possivel uma configuração na qual o dispositivo de descodificação de imagens é instalado numa set-top-box ex407 conectada a um cabo ex405 para televisão por cabo, ou a uma antena de difusão por satélite/ondas terrestres ex406, e isto é reproduzido num monitor de televisão ex408. Aqui, o dispositivo de descodificação de imagens pode ser incorporado na televisão em vez de o ser na set-top-box. Além disso, é possivel para sinais do satélite ex410, da estação base exl07, ou similar serem recebidos por um automóvel ex412 fornecido com uma antena ex411, e imagens em movimento podem ser reproduzidas num dispositivo de exibição no automóvel ex412, como um sistema de navegação do carro ex413.
Além disso, é possivel codificar sinais de imagens com um dispositivo de codificação de imagens mostrado nas formas de realização acima descritas, e gravar estes num suporte de armazenamento. Exemplos específicos incluem gravadores de DVD que gravam sinais de imagens num disco DVD ex421, e um gravador ex420 tal como um gravador de discos que grava 59 num disco rigido. Além disso, a gravação pode ser feita para um cartão SD ex422. Se o gravador ex420 for fornecido com um dispositivo de descodificação de imagens mostrado nas formas de realização acima descritas, os sinais de imagens gravados no disco DVD ex421, ou no cartão SD ex422, podem ser reproduzidos e exibidos no monitor ex408.
Deverá ser notado que a configuração do sistema de navegação do carro ex413 pode ser tal que, por exemplo, a câmara ex203, a unidade de interface de câmara ex303, e o dispositivo de codificação de imagens ex312 tal como mostrado na Fig. 19 são excluídos e isto é também da mesma forma possível para o computador exlll e para a televisão (dispositivo de receção) ex401.
Além disso, o terminal do telemóvel exll4 acima descrito pode não ser apenas um tipo de terminal de envio/receção tendo tanto um dispositivo de codificação como um dispositivo de descodificação, mas também pode ser um terminal de envio com apenas um dispositivo de codificação, ou um terminal de receção com apenas um dispositivo de descodificação (três tipos de instalação).
Desta forma, o método de codificação de imagens em movimento ou o método de descodificação de imagens em movimento mostrados nas formas de realização acima descritas podem ser usados em qualquer um dos dispositivos ou sistemas acima descritos, e obter os efeitos descritos destas formas de realização ao fazê-lo.
Lisboa, 29 de Novembro de 2012

Claims (15)

1 REIVINDICAÇÕES 1. Um método de codificação de comprimento variável que codifica uma unidade de dados em dados de imagens compostos de uma pluralidade de sub-dados fazendo ao mesmo tempo referência a tabelas de probabilidades, compreendendo: uma etapa de ajuste de uma tabela de ajuste de uma tabela de probabilidades para os valores iniciais com base num valor inicial de um parâmetro de quantização da unidade de dados; uma etapa de codificação de informação de codificação de informação relacionada com a tabela de parâmetros inicializada e que indica a tabela de probabilidades; uma etapa de obtenção de parâmetros de codificação de obtenção de parâmetros de codificação para serem usados na codificação de sub-dados da tabela de probabilidades; uma etapa de atualização da tabela de probabilidades de atualização da tabela de probabilidades com base no valor de sub-dados codificados; e etapa de colocação de informação codificada de colocação de informação codificada relacionada com a tabela de probabilidades inicializada numa posição na qual a informação codificada pode ser obtida antes da unidade de dados codificados.
2 . 0 método de codificação de comprimento variável de acordo com a reivindicação 1, em que os valores iniciais dos parâmetros de codificação a serem usados na etapa de codificação dos sub-dados são obtidos a partir da tabela de 2 probabilidades com base em valores dos sub-dados codificados imediatamente antes.
3. 0 método de codificação de comprimento variável de acordo com a reivindicação 1, em que os valores iniciais dos parâmetros de codificação a serem usados na etapa de codificação de sub-dados são obtidos a partir da tabela de probabilidades com base em valores dos sub-dados codificados a serem codificados.
4. 0 método de codificação de comprimento variável de acordo com qualquer uma das reivindicações 1 a 3, em que, na etapa de codificação de sub-dados a codificação aritmética dos sub-dados é realizada tendo como referência os parâmetros de codificação.
5. 0 método de codificação de comprimento variável de acordo com qualquer uma das reivindicações 1 a 4, em que a informação relacionada com a tabela de probabilidades inicializada é a própria tabela de probabilidades.
6. 0 método de codificação de comprimento variável de acordo com a reivindicação 5, em que apenas uma parte da tabela de probabilidades é codificada na etapa de codificação de informação.
7. 0 método de codificação de comprimento variável de acordo com a reivindicação 6, em que a parte da tabela de probabilidades é uma parte da tabela de probabilidades que corresponde aos dados codificados com uma elevada probabilidade.
8. 0 método de codificação de comprimento variável de acordo com qualquer uma das reivindicações 1 a 7, em que a informação codificada relacionada com a tabela de probabilidades inicializada é colocada numa parte de dados 3 comuns para a unidade de dados na etapa de colocação de informação codificada.
9. 0 método de codificação de comprimento variável de acordo com qualquer uma das reivindicações 1 a 8, em que a informação relacionada à tabela de probabilidades inicializada é codificada com um método de codificação fixa na etapa de codificação de informação.
10. O método de codificação de comprimento variável de acordo com qualquer uma das reivindicações 1 a 9, compreendendo adicionalmente as etapas de: determinar se informação relacionada com uma tabela de probabilidades inicializada está codificada ou não; e colocar um sinalizador que identifica um resultado da determinação numa posição na qual o sinalizador pode ser obtido antes da unidade de dados codificados.
11. O método de codificação de comprimento variável de acordo com qualquer uma das reivindicações 1 a 10, em que a unidade de dados é uma imagem em dados de imagens.
12. 0 método de codificação de comprimento variável de acordo com qualquer uma das reivindicações 1 a 10, em que a unidade de dados é uma fatia nos dados de imagens.
13. Um suporte de armazenamento que armazena um programa para execução de codificação de comprimento variável num computador, em que a codificação de comprimento variável é um método de codificação de comprimento variável que codifica uma unidade de dados em dados de imagens compostos por uma pluralidade de sub-dados referenciando ao mesmo tempo uma tabela de probabilidades, o método compreendendo: 4 uma etapa de ajuste de uma tabela de ajuste de uma tabela de probabilidades para os valores iniciais com base num valor inicial de um parâmetro de quantização da unidade de dados; uma etapa de codificação de informação de codificação de inicialização de informação para indicar a tabela de probabilidades inicializada; uma etapa de obtenção de parâmetros de codificação de obtenção de parâmetros de codificação a serem usados na codificação de sub-dados a partir da tabela de probabilidades ; uma etapa de codificação de sub-dados de realização de codificação aritmética dos sub-dados com referência aos parâmetros de codificação obtidos; uma etapa de atualização da tabela de probabilidades de atualização da tabela de probabilidades com base nos sub-dados codificados aritmeticamente na etapa de realização de codificação aritmética; e uma etapa de colocação de informação codificada de colocação da informação de inicialização codificada relacionada com a tabela de probabilidades inicializada numa posição na qual a informação de inicialização codificada pode ser obtida antes da unidade de dados codificados.
14. Um dispositivo de codificação de comprimento variável que codifica uma unidade de dados em dados de imagens compostos por uma pluralidade de sub-dados referenciando em simultâneo uma tabela de probabilidades, compreendendo: 5 um meio de inicialização que ajusta uma tabela de probabilidades para os valores iniciais com base num valor inicial de um parâmetro de quantização da unidade de dados; um meio de codificação de informação de inicialização que codifica informação de inicialização para indicar a tabela de probabilidades; um meio de obtenção de parâmetros que obtém parâmetros de codificação a serem usados na codificação de sub-dados a partir da tabela de probabilidades; um meio de codificação de sub-dados que realiza codificação aritmética dos sub-dados com referência aos parâmetros de codificação obtidos; um meio de atualização da tabela de probabilidades que atualiza a tabela de probabilidades com base nos sub-dados codificados aritmeticamente pelo meio de codificação de sub-dados; e um meio de colocação de informação codificada que coloca a informação de inicialização codificada numa posição na qual a informação de inicialização codificada pode ser obtida antes da unidade de dados codificados.
15. Um fluxo de bits gerado por um método de codificação de comprimento variável para codificar a unidade de dados referenciando em simultâneo as tabelas de probabilidades, em que o método de codificação de comprimento variável é o método de codificação de comprimento variável de acordo com qualquer uma das reivindicações 1 a 12. Lisboa, 29 de Novembro de 2012
PT3710347T 2002-03-27 2003-03-13 Descodificação de comprimento variável, suporte de armazenamento, dispositivo de codificação de comprimento variável, dispositivo de descodificação de comprimento variável, e fluxo de bits PT1445869E (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002088345 2002-03-27

Publications (1)

Publication Number Publication Date
PT1445869E true PT1445869E (pt) 2012-12-17

Family

ID=28449441

Family Applications (3)

Application Number Title Priority Date Filing Date
PT141630343T PT2765708T (pt) 2002-03-27 2003-03-13 Sistema de codificação de comprimento variável, método de descodificação de comprimento variável e método de codificação de comprimento variável
PT3710347T PT1445869E (pt) 2002-03-27 2003-03-13 Descodificação de comprimento variável, suporte de armazenamento, dispositivo de codificação de comprimento variável, dispositivo de descodificação de comprimento variável, e fluxo de bits
PT101817336T PT2391019E (pt) 2002-03-27 2003-03-13 Método de descodificação de comprimento variável, suporte de armazenamento, dispositivo de descodificação de comprimento ariável

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PT141630343T PT2765708T (pt) 2002-03-27 2003-03-13 Sistema de codificação de comprimento variável, método de descodificação de comprimento variável e método de codificação de comprimento variável

Family Applications After (1)

Application Number Title Priority Date Filing Date
PT101817336T PT2391019E (pt) 2002-03-27 2003-03-13 Método de descodificação de comprimento variável, suporte de armazenamento, dispositivo de descodificação de comprimento ariável

Country Status (17)

Country Link
US (3) US6954156B2 (pt)
EP (4) EP2765708B1 (pt)
KR (1) KR100927510B1 (pt)
CN (2) CN101692610B (pt)
AU (1) AU2003221378B9 (pt)
BR (1) BRPI0303661B1 (pt)
CA (1) CA2447840C (pt)
CY (1) CY1113502T1 (pt)
DK (3) DK2391019T3 (pt)
ES (4) ES2493616T3 (pt)
HK (1) HK1196720A1 (pt)
HU (2) HUE044878T2 (pt)
MX (1) MXPA03010827A (pt)
PT (3) PT2765708T (pt)
SI (3) SI2765708T1 (pt)
TR (1) TR201906516T4 (pt)
WO (1) WO2003081784A1 (pt)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400727B2 (en) * 1997-07-03 2008-07-15 Matsushita Electric Industrial Co., Ltd. Information embedding method, information extracting method, information embedding apparatus, information extracting apparatus, and recording media
US7286670B2 (en) * 1999-11-09 2007-10-23 Chaoticom, Inc. Method and apparatus for chaotic opportunistic lossless compression of data
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
ES2730953T3 (es) * 2002-04-26 2019-11-13 Ntt Docomo Inc Método de decodificación de señal, dispositivo de decodificación de señal, y programa de decodificación de señal
FI114071B (fi) * 2003-01-13 2004-07-30 Nokia Corp Kuvien käsitteleminen rajoitetulla bittimäärällä
WO2004081719A2 (en) * 2003-03-07 2004-09-23 Chaoticom, Inc. Methods and systems for digital rights management of protected content
DE102004007191B3 (de) * 2004-02-13 2005-09-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audiocodierung
US7400277B2 (en) * 2004-04-06 2008-07-15 International Business Machines Corporation Method and system for the compression of probability tables
US7573406B2 (en) * 2004-05-21 2009-08-11 Broadcom Corporation System and method for decoding context adaptive variable length coding
EP1797723A1 (en) * 2004-10-05 2007-06-20 Vectormax Corporation A video compression system
WO2007067168A1 (en) * 2005-12-05 2007-06-14 Thomson Licensing Watermarking encoded content
US7365658B2 (en) * 2006-02-28 2008-04-29 The Board Of Trustees Of The University Of Arkansas Method and apparatus for lossless run-length data encoding
JP4997243B2 (ja) * 2006-08-08 2012-08-08 パナソニック株式会社 画像符号化装置、その方法およびその集積回路
US8942292B2 (en) * 2006-10-13 2015-01-27 Qualcomm Incorporated Efficient significant coefficients coding in scalable video codecs
JP2009152990A (ja) * 2007-12-21 2009-07-09 Panasonic Corp 画像符号化装置及び画像復号化装置
US7557740B1 (en) * 2008-04-18 2009-07-07 Realtek Semiconductor Corp. Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof
US20090260397A1 (en) * 2008-04-21 2009-10-22 Cornejo Ivan A Glass Structure Having Sub-Micron and Nano-Size Bandgap Structures and Method For Producing Same
GB2465809B (en) * 2008-12-01 2012-12-12 Advanced Risc Mach Ltd Dynamic selection of suitable codes for variable length coding and decoding
CN102282770B (zh) * 2009-01-23 2014-04-16 日本电信电话株式会社 一种参数选择方法、参数选择装置
JP5274317B2 (ja) * 2009-03-17 2013-08-28 パナソニック株式会社 符号量推定装置、符号量推定方法、符号量推定プログラムおよび、符号量推定集積回路
US9615108B2 (en) 2009-06-29 2017-04-04 Thomson Licensing Methods and apparatus for adaptive probability update for non-coded syntax
US8565811B2 (en) * 2009-08-04 2013-10-22 Microsoft Corporation Software-defined radio using multi-core processor
KR101474756B1 (ko) 2009-08-13 2014-12-19 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
US9753884B2 (en) * 2009-09-30 2017-09-05 Microsoft Technology Licensing, Llc Radio-control board for software-defined radio platform
WO2011052142A1 (ja) 2009-10-29 2011-05-05 パナソニック株式会社 画像符号化方法および画像復号方法
US8627189B2 (en) 2009-12-03 2014-01-07 Microsoft Corporation High performance digital signal processing in software radios
US20110136439A1 (en) * 2009-12-04 2011-06-09 Microsoft Corporation Analyzing Wireless Technologies Based On Software-Defined Radio
CN101770367B (zh) * 2009-12-30 2012-10-31 飞天诚信科技股份有限公司 .net文件压缩方法和装置
CN101794219B (zh) * 2009-12-30 2012-12-12 飞天诚信科技股份有限公司 .net文件的压缩方法和装置
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
PL3751564T3 (pl) * 2010-07-20 2023-03-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Dekoder audio, sposób dekodowania audio i program komputerowy
US20120195366A1 (en) * 2011-02-01 2012-08-02 Mediatek Singapore Pte. Ltd. Method and Apparatus of Adaptive Inter Mode Coding Using Variable Length Codes
WO2012149679A1 (en) 2011-05-04 2012-11-08 Microsoft Corporation Spectrum allocation for base station
US9635374B2 (en) 2011-08-01 2017-04-25 Apple Inc. Systems and methods for coding video data using switchable encoders and decoders
US9130711B2 (en) 2011-11-10 2015-09-08 Microsoft Technology Licensing, Llc Mapping signals from a virtual frequency band to physical frequency bands
US8989286B2 (en) 2011-11-10 2015-03-24 Microsoft Corporation Mapping a transmission stream in a virtual baseband to a physical baseband with equalization
JP6641857B2 (ja) * 2015-10-05 2020-02-05 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US20170180757A1 (en) * 2015-12-18 2017-06-22 Blackberry Limited Binarizer selection for image and video coding
US10869032B1 (en) 2016-11-04 2020-12-15 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
US10484701B1 (en) * 2016-11-08 2019-11-19 Amazon Technologies, Inc. Rendition switch indicator
US10264265B1 (en) 2016-12-05 2019-04-16 Amazon Technologies, Inc. Compression encoding of images
US10681382B1 (en) 2016-12-20 2020-06-09 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
US10944423B2 (en) 2019-03-14 2021-03-09 International Business Machines Corporation Verifying the correctness of a deflate compression accelerator
CN112399181B (zh) * 2019-08-19 2022-08-26 华为技术有限公司 图像编解码的方法、装置和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287468A (en) * 1987-06-03 1994-02-15 Sony Corporation Method and apparatus for processing information data
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
JPH05199422A (ja) * 1992-01-20 1993-08-06 Fujitsu General Ltd 画像伝送装置
JPH06225279A (ja) 1992-10-26 1994-08-12 Sony Corp 符号化方法、復号化方法、符号化装置及び復号化装置
WO1994023428A1 (en) * 1993-03-26 1994-10-13 Sony Corporation Disklike recording medium, apparatus for recording data on disk, and apparatus for reproducing data from disk
US5666161A (en) * 1993-04-26 1997-09-09 Hitachi, Ltd. Method and apparatus for creating less amount of compressd image data from compressed still image data and system for transmitting compressed image data through transmission line
KR970009408B1 (ko) 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
JP3274284B2 (ja) * 1994-08-08 2002-04-15 キヤノン株式会社 符号化装置およびその方法
JP2840589B2 (ja) * 1996-02-09 1998-12-24 富士通株式会社 データ圧縮装置及びデータ復元装置
JP3747525B2 (ja) * 1996-08-28 2006-02-22 株式会社日立製作所 並列データベースシステム検索方法
US5995148A (en) * 1997-02-14 1999-11-30 At&T Corp Video coder having scalar dependent variable length coder
US6493385B1 (en) * 1997-10-23 2002-12-10 Mitsubishi Denki Kabushiki Kaisha Image encoding method, image encoder, image decoding method, and image decoder
CN1173567C (zh) * 2000-02-09 2004-10-27 德国汤姆森-布兰特有限公司 使用加密、解密来保护数据流的方法、编码和解码装置

Also Published As

Publication number Publication date
AU2003221378A1 (en) 2003-10-08
EP1445869A1 (en) 2004-08-11
CN1515078A (zh) 2004-07-21
MXPA03010827A (es) 2004-02-17
US20050156763A1 (en) 2005-07-21
EP1445869B1 (en) 2012-11-28
ES2493616T3 (es) 2014-09-12
EP1445869A4 (en) 2007-03-14
US20060145897A1 (en) 2006-07-06
US7088269B2 (en) 2006-08-08
US20050012647A1 (en) 2005-01-20
HUE030635T2 (en) 2017-06-28
KR20040099101A (ko) 2004-11-26
SI2765708T1 (sl) 2016-11-30
WO2003081784A1 (en) 2003-10-02
ES2724399T3 (es) 2019-09-10
ES2399422T3 (es) 2013-04-01
BR0303661A (pt) 2004-07-13
PT2765708T (pt) 2016-10-25
KR100927510B1 (ko) 2009-11-17
DK2391019T3 (da) 2014-09-01
SI2391019T1 (sl) 2014-09-30
DK1445869T3 (da) 2013-01-02
ES2599637T3 (es) 2017-02-02
CA2447840A1 (en) 2003-10-02
CN101692610B (zh) 2014-06-25
HK1196720A1 (zh) 2014-12-19
EP2765708B1 (en) 2016-07-27
EP2765708A1 (en) 2014-08-13
EP2391019A3 (en) 2011-12-28
CN101692610A (zh) 2010-04-07
PT2391019E (pt) 2014-08-29
AU2003221378B2 (en) 2008-07-24
US6954156B2 (en) 2005-10-11
EP2391019B1 (en) 2014-06-25
DK2765708T3 (en) 2016-11-14
US7248190B2 (en) 2007-07-24
HUE044878T2 (hu) 2019-11-28
SI1445869T1 (sl) 2013-01-31
CN100555877C (zh) 2009-10-28
EP3098969B1 (en) 2019-02-20
BRPI0303661B1 (pt) 2016-09-27
EP2391019A2 (en) 2011-11-30
CA2447840C (en) 2011-08-09
AU2003221378B9 (en) 2009-01-08
TR201906516T4 (tr) 2019-05-21
EP3098969A1 (en) 2016-11-30
CY1113502T1 (el) 2016-06-22

Similar Documents

Publication Publication Date Title
PT1445869E (pt) Descodificação de comprimento variável, suporte de armazenamento, dispositivo de codificação de comprimento variável, dispositivo de descodificação de comprimento variável, e fluxo de bits
TWI379595B (en) Memory management method and decoding apparatus
JP4130783B2 (ja) 動きベクトル符号化方法および動きベクトル復号化方法
PT2752994E (pt) Método de codificação de comprimento variável
PT3051814T (pt) Método de codificação de imagem em movimento e método de descodificação de imagem em movimento
PT2273795T (pt) Método de codificação de imagem em movimento
JP5536174B2 (ja) リファレンスビデオフレーム及びノンリファレンスビデオフレームの検出及び隠蔽の方法及び装置
WO2006118288A1 (ja) 動画像符号化方法、動画像復号化方法およびその装置
BRPI0303566B1 (pt) “Método de codificação de imagem, método de decodificação de imagem e fluxo de bits”
JP2004007563A (ja) 動画像符号化方法および動画像復号化方法
KR102267770B1 (ko) 픽쳐들의 그룹에서 변경가능 엘리먼트들의 세트를 결정하기 위한 방법 및 디바이스
JP2008245016A (ja) 画像符号化装置、画像符号化方法、及びプログラム
JP2004007473A (ja) 可変長符号化方法、可変長復号化方法、記憶媒体、可変長符号化装置、可変長復号化装置、及びビットストリーム
JP2006238453A (ja) 可変長復号化方法、記憶媒体、及び可変長復号化装置
JP3976975B2 (ja) 画像処理装置及びその方法と記憶媒体
JP4847423B2 (ja) 動画像符号化装置、および、コンピュータプログラム