PT2765708T - 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 - Google Patents
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 Download PDFInfo
- Publication number
- PT2765708T PT2765708T PT141630343T PT14163034T PT2765708T PT 2765708 T PT2765708 T PT 2765708T PT 141630343 T PT141630343 T PT 141630343T PT 14163034 T PT14163034 T PT 14163034T PT 2765708 T PT2765708 T PT 2765708T
- Authority
- PT
- Portugal
- Prior art keywords
- data
- decoding
- encoding
- variable length
- unit
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
DESCRIÇÃO
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
DOMÍNIO TÉCNICO A presente invenção refere-se a métodos de codificação de comprimento variável, aos seus métodos de descodificação de comprimento variável correspondentes, a meios de armazenamento que armazenam programas para a execução de tais processos num computador, a dispositivos de codificação de comprimento variável, e aos 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, meios de armazenamento que armazenam programas para a 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, têm sido padronizados formatos tais como JPEG para imagens fixas e MPEG para imagens em movimento 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. 0 esquema de codificação MPEG (Grupo de Especialistas em Imagens em Movimento) é principalmente composto por uma unidade de predição inter-imagem de compensação de movimento, uma unidade de DCT (transformação discreta de cosseno) e uma unidade de codificação de comprimento variável, A unidade de predição inter-imagem de compensação de movimento deteta vetores de movimento a partir de dados de imagens introduzidos 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 realiza transformações de DCT sobre os dados de erro residual. Uma unidade de quantificação quantifica coeficientes de DCT, e a unidade de codificação de comprimento variável atribui palavras de código aos coeficientes de DCT quantificados e aos vetores de movimento.
Os dados de imagens codificados no esquema de codificação MPEG têm uma estrutura hierárquica de seis camadas: sequência, GOP (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 sincronização, 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. Dado que existe variação da probabilidade de valores tais como coeficientes de transformação 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 àqueles valores que têm uma probabilidade elevada, e atribuindo palavras de código longas àqueles 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 no qual as palavras de código são determinadas por uma árvore de códigos de Huffman na qual cada símbolo é 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 ê preparada uma pluralidade de tabelas de código e as tabelas de código são permutadas em resposta a propriedades estatísticas das imagens. A teoria da informação estabelece que uma tabela de códigos na qual são atribuídos log2 (1/p) bits aos códigos de probabilidade p tem o menor volume médio de dados. E é por esse motivo que, no método de permuta de uma pluralidade de tabelas de códigos, a probabilidade é calculada a partir de dados codificados, e é selecionada uma tabela de códigos 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 na qual a sequência de símbolos é projetada para intervalos (0, 1) em resposta à probabilidade, e é expresso um espaço de probabilidade numa linha de números em binário com um número adequado dentro desse intervalo. Na codificação aritmética, a codificação é realizada enquanto monitorizando constantemente as propriedades estatísticas. Especificamente, as tabelas de probabilidades são reescritas em resposta ao conteúdo das imagens e são determinadas palavras de código enquanto referenciando as tabelas de probabilidades. Mais especificamente, na codificação aritmética, a probabilidade utilizada em operações aritméticas é sucessivamente atualizada através de dados codificados para que sejam atribuídos log2 (1/p) bits 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 somente com operações aritméticas (adição, subtração, multiplicação e divisão), e como tal 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 das propriedades estatísticas durante a codificação reescrevendo a 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, consequentemente uma desvantagem é que é difícil efetuar operações aritméticas em dispositivos com baixa capacidade aritmética.
Nos métodos de codificação adaptativos descritos acima, a eficácia de compressão pode ser melhorada em comparação com métodos de codificação fixa, dado que o método de codificação continua a ser dinamicamente otimizado com dados codificados.
No entanto, os problemas seguintes ocorrem ao otimizar dinamicamente o método de codificação com dados codificados.
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, isto é, em cada fatia, macrobloco ou bloco. Neste caso, a codificação aritmética utiliza uma tabela de probabilidades fixas para os valores iniciais para cada subunidade para codificação em cada imagem, e a codificação de Huffman utiliza uma tabela de códigos de comprimento variável fixos como uma tabela de códigos inicial em cada imagem. Dado que 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é serem obtidas tabelas de probabilidades e tabelas de código ótimas 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 utilizados na aprendizagem é perdida na linha de transmissão, não pode ser executada uma aprendizagem adequada no dispositivo de descodificação, e a descodificação torna-se impossível. E no caso dos dados de imagens, ocorre deterioração da qualidade das imagens 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 consequentemente é inevitável que o intervalo de reinicialização seja curto até certo ponto. A menos que o problema descrito acima de erros de transmissão seja resolvido, a eficácia de compressão dos métodos de codificação adaptativos atuais não melhorará suficientemente.
DIVULGAÇÃO DA INVENÇÃO
Um objetivo da presente invenção é melhorar a eficácia de compressão dos métodos de codificação de comprimento variável utilizados em áreas tais como compressão de imagens.
Outro objetivo da presente invenção é descodificar corretamente os dados que são codificados através de um método de codificação de comprimento variável tendo eficácia de compressão melhorada. A presente invenção proporciona um sistema de codificação e descodificação de comprimento variável conforme definido na reivindicação 1 e um método de codificação e descodificação de comprimento variável conforme definido na reivindicação 3.
BREVE DESCRIÇÃO DOS DESENHOS A Fig. 1 é um diagrama em bloco 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 em bloco mostrando a configuração global de um dispositivo de codificação de imagens padrão; A Fig. 3 é um diagrama de fluxo mostrando um diagrama esquemático da operação de uma unidade de codificação de dados; A Fig. 4 é um diagrama de fluxo mostrando um diagrama esquemático 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; A Fig. 7 mostra estruturas de dados de fluxo de bits geradas por um dispositivo de codificação de comprimento variável; A Fig. 8 mostra estruturas de dados de fluxo de bits geradas por um dispositivo de codificação de comprimento variável; A Fig. 9 é um diagrama em bloco 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 em bloco mostrando a configuração global de um dispositivo de descodificação de imagens padrão. A Fig. 11 é um diagrama de fluxo mostrando um diagrama esquemático da operação de uma unidade de descodificação de dados; A Fig. 12 é um diagrama em bloco 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 diagrama de fluxo mostrando um diagrama esquemático 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; 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 em bloco 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 diagrama de fluxo mostrando um diagrama esquemático da operação de uma unidade de descodificação de dados; A Fig. 19 ilustra uma situação na qual a presente invenção é executada num sistema informático utilizando 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 estão armazenados; A Fig. 20 é um diagrama em bloco 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 utiliza 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 em bloco 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 (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 em bloco da configuração global de um dispositivo de codificação de comprimento variável 1 de acordo com 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 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. Deve ser notado que a codificação aritmética se refere a um método de codificação que aumenta a eficácia da codificação atualizando dinamicamente uma tabela de probabilidades em resposta à probabilidade dos símbolos realmente produzidos. São possíveis vários tipos de dados de entrada para o dispositivo de codificação de comprimento variável 1, mas esta forma de realização 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 quantificados de DCT e vetores de movimento. 0 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 unidade de dados, e está provido com um codificador aritmético 7, uma unidade de atualização de tabela de probabilidades 8 e uma unidade de inicialização 9. Deve ser notado que no caso de dados de imagens, a unidades de dados referida no presente documento é definida como uma imagem ou uma fatia. Para além disso, cada unidade de dados é composta por uma pluralidade de conjuntos de subdados. Quando a unidade de dados é uma imagem, os subdados são fatias, macroblocos e blocos, e quando a unidade de dados é uma fatia, os subdados são macroblocos ou blocos. 0 codificador aritmético 7 é um dispositivo para enviar 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 a partir da 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 atualizando as tabelas de probabilidades em resposta à probabilidade dos dados gerados que são produzidos a partir do 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 para a unidade de atualização de tabela de probabilidades 8. 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 no qual a palavra de código para cada código não é alterada 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. Dado que é utilizado um método de codificação fixa, os dados de cabeçalho podem ser facilmente codificados.
Por outro lado, um método de codificação no qual as palavras de código que correspondem a cada código são alteradas é referido como um método de codificação adaptativo. Além disso, entre os métodos de codificação adaptativos, existem métodos de codificação estáticos 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 permutadas, 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 melhorada mais 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 está provido adicionalmente com um codificador de tabela de probabilidades 6. 0 codificador de tabela de probabilidades 6 é um dispositivo para codificar as tabelas de probabilidades que são produzidas a partir da unidade de atualização de tabela de probabilidades 8 com um método de codificação fixa. Dado que utiliza 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 a partir do codificador de cabeçalhos 3, os dados codificados para além dos cabeçalhos que são produzidos a partir do codificador aritmético 7, e os dados codificados da tabela de probabilidades que são produzidos a partir do codificador tabela de probabilidades 6, e também para geração de sequências de códigos (fluxos de bits) e envio dos mesmos para uma linha de transmissão.
[2] Dispositivo de codificação de imagens padrão
Aqui, o diagrama de blocos da Fig. 2 será utilizado para ilustrar uma configuração de um dispositivo de codificação de imagens padrão 100. 0 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 adicionador 106, e uma unidade de codificação de entropia 107. Deve 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 se destinam a ser codificados na imagem a ser codificada. A unidade de estimativa/compensação de 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 as imagens introduzidas Picln, e calcula os vetores de movimento MV, que são movimentos das imagens introduzidas Picln para imagens reconstruídas na memória de imagens 113. A unidade de estimativa de movimento 111 envia 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 envia os mesmos para o subtrator 103 e para o adicionador 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. Deve ser notado que quando ao codificar intra-imagem, o valor de pixel da imagem de referência do movimento compensado é tomado como 0, e o subtrator 103 e o adicionador 106 produzem os dados de entrada tal como estão sem subtrair ou adicionar. O subtrator 103 determina valores diferenciais entre os dados de destino da imagem de entrada Picln e uma imagem de referência a partir da unidade de compensação de movimento 112, e envia 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 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 quantificação 115. A unidade de transformação ortogonal 114 realiza um processamento de transformação discreta de cosseno (processamento de DCT) dos dados diferenciais a partir do subtrator 103, e envia esses dados para a unidade de quantificação 115. 0 processamento de DCT é um tipo de processamento de transformação ortogonal no qual os dados do domínio espacial são convertidos em dados do domínio de frequência. A unidade de quantificação 115 quantifica os dados de DCT a partir da unidade de transformação ortogonal 114 com uma etapa de quantificação, e envia coeficientes de quantificaçã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 leva a cabo processamento de expansão de dados sobre a saída a partir da unidade de codificação conversora 104, e produz dados expandidos. A unidade de descodificação conversora 105 inclui uma unidade de quantificação inversa 116 e uma unidade de transformação ortogonal inversa 117. A unidade de quantificação inversa 116 quantifica inversamente a saída a partir da unidade de codificação conversora 104 com a etapa de quantificação descrita acima e envia-o para a unidade de transformação ortogonal inversa 117. A unidade de transformação ortogonal inversa 117 leva a cabo processamento de transformação discreta de cosseno inversa (processamento de IDCT) na saída da unidade de quantificação inversa 116, e envia dados expandidos como sinais residuais preditivos para o adicionador 106. 0 processamento de IDCT é um processo no qual os dados do domínio de frequência são transformados em dados do domínio espacial.
Quando os macroblocos tiverem sido submetidos a codificação de predição de compensação do movimento inter-imagem, o adicionador 106 envia dados de imagens obtidos adicionando os sinais residuais preditivos a partir da unidade de descodificação conversora 105 e as imagens de referência a partir 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 quantificados pós-DCT da unidade de codificação de DCT 104. A codificação de entropia refere-se à codificação na qual uma sequência de bits de "0"s e " 1"s é convertida numa sequência de bits mais curta, utilizando 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 diagrama de fluxo mostrando um diagrama esquemático da operação da unidade de codificação de dados 2 e do codificador de tabela de probabilidades 6.
Ma etapa Sl, a unidade de inicialização 9 envia 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 da tabela de probabilidades 8 executam a inicialização da tabela de probabilidades com base em dados de inicialização no cabeçalho. Podem ser utilizados dados que são comuns a todas as unidades de dados 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-codificadas, imagens codificadas preditivas e imagens codificadas bi-preditivas) e valores iniciais de parâmetros de quantificação de imagens. Deve 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-codifiçadas, fatias codificadas preditivas e fatias bi-preditivas), e valores iniciais de parâmetros de quantificação de fatias.
Na etapa S2, o codificador aritmético 7 e a unidade de atualização da tabela de probabilidades 8 cooperam para realizar codificação aritmética nos subdados. Mais especificamente, com base na saída da tabela de probabilidades a partir da unidade de atualização de tabela de probabilidades 8, o codificador aritmético 7 obtém probabilidades utilizadas na codificação de subdados a partir da tabela de probabilidades e faz referência a essas probabilidades para codificar os subdados. Especificamente, a unidade de dados são imagens ou fatias, e os macroblocos ou blocos que são os subdados são codificados.
Na etapa S3, a tabela de probabilidades de dados gerados é atualizada por parte da unidade de atualização de tabela de probabilidades 8 de acordo com os dados gerados. Nesta forma de realização, a tabela de probabilidades atualizada é utilizada quando é realizada codificação aritmética sobre os seguintes subdados.
Na etapa S4, é determinado se a codificação de todos os subdados está ou não completa. Se for determinado que a codificação de todos os subdados não está completa, o procedimento retorna para a etapa S2 e a operação descrita acima é repetida.
Na etapa S5, é determinado se codificar ou não a tabela de probabilidades, e se se destinar a ser codificada, o procedimento procede para a etapa S6, e se não se destinar a ser codificada, 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 envia esse resultado juntamente com os dados codificados para o multiplexador 4. Deve ser notado que a tabela de probabilidades utilizada como valores iniciais não é codificada em tais casos quando, por exemplo, a quantidade de dados até a seguinte tabela de probabilidades ser inicializada é suficientemente grande (por outras palavras, a proporção da quantidade de dados requerida para aprendizagem para a quantidade total de dados que é ocupada é suficientemente pequena, e a eficácia da aprendizagem é como tal boa), ou quando a tabela de probabilidades utilizada como valores iniciais é substancial ou completamente consistente com a tabela de probabilidades ótima obtida através de aprendizagem.
Na etapa S6, a tabela de probabilidades da unidade de atualização da tabela de probabilidades 8 é codificada pelo codificador de tabela de probabilidades 6. A eficácia de compressão é melhorada através do método de codificação descrito acima porque, exceto a primeira codificação de subdados, a tabela de probabilidades é atualizada com base nos valores de subdados codificados, e são obtidas probabilidades a partir da tabela de probabilidades. Em particular, dado que a tabela de probabilidades a ser utilizada na codificação de subdados é uma tabela de probabilidades atualizada através de codificação aritmética dos subdados anteriores, a codificação pode ser alcançada em tempo real e a velocidade de codificação será aumentada. Além disso, pode ser obtida eficácia de compressão favorável devido à correlação espacial e temporal das imagens.
Deve ser notado que pode ser realizada codificação aritmética utilizando uma tabela de probabilidades obtida por meio de codificação aritmética dos valores iniciais da unidade de dados. Neste caso, existe uma elevada eficácia de compressão inclusive quando há uma grande diferença entre os conteúdos da unidade de dados e da unidade de dados anterior. 0 diagrama de fluxo mostrado na Fig. 4 é uma modificação do diagrama de fluxo mostrado na Fig. 3, e uma situação em que somente é codificada uma parte da tabela de probabilidades quando a tabela de códigos da unidade de atualização da tabela de probabilidades 8 é codificada por parte do 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 empregar um método no qual somente são codificadas as porções de dados codificados com elevada probabilidade na tabela de probabilidades obtida, pode ser alcançada descodificação suficientemente correta ao descodificar. As porções de dados com baixa probabilidade são inicializadas com valores iniciais. Na etapa S7, as porções que não foram codificadas na tabela de probabilidades são inicializadas com valores iniciais. Isto é, quando somente são codificadas as partes importantes da tabela de probabilidades, inicializando com valores iniciais somente as porções 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é então, 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 envia 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 a partir do codificador aritmético 7, do codificador de cabeçalhos 3 e do codificador de tabela de probabilidades 6 e envia-o a uma 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 por áreas de dados comuns tais como um cabeçalho e áreas de GOP (Grupo de Imagens) . As áreas de GOP são compostas por áreas de dados comuns tais como um cabeçalho e semelhantes, 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 semelhantes 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 semelhantes, e por uma pluralidade de áreas de dados de macroblocos.
Além disso, o fluxo não tem de ser um fluxo de bits contínuo. Quando se transmitindo em pacotes (que são 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 único fluxo de bits, 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 porções 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 que para o 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 do que a estrutura do fluxo mostrada na Fig. 5, e como tal somente serão descritos abaixo os pontos de diferença. Na estrutura deste fluxo, os GOPs e as imagens não têm cabeçalhos. Somente as fatias têm cabeçalhos. Os GOPs e as imagens têm vários parâmetros como dados comuns nas suas porções 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 forem 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é os parâmetros correspondentes ao seguinte cabeçalho de imagem serem transmitidos. A Fig. 7 mostra a estrutura de dados de um fluxo de bits que é produzido a partir do multiplexador 4 quando a unidade de dados descrita acima corresponde aos dados de imagem de uma imagem. Uma imagem é geralmente composta por um cabeçalho, e uma pluralidade de fatias como subdados codificados. 0 cabeçalho indica o início 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). É colocado um sinalizador de valor inicial 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 sinalizador é "1", e se não estiver codificada, o sinalizador é "0".
Além disso, tal como mostrado na Fig. 7(a), são colocados dados codificados da tabela de probabilidades 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 enviados por parte do codificador de tabela de probabilidades 6 para o multiplexador 4, cujo resultado, conforme mostrado na Fig. 7(b), é que os dados codificados da tabela de probabilidades não são colocados no fluxo de bits.
Conforme descrito acima, o cabeçalho inclui porções 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 porções de dados comuns são divididas num lado de porção principal e num lado de dados de imagem, e inseridos entre as mesmas estão o sinalizador de valor inicial e os dados codificados de tabela de probabilidades, por essa ordem. A Fig. 8 mostra a estrutura de dados de um fluxo de bits que é produzida a partir do multiplexador 4 quando a unidade de dados é uma fatia de dados de imagens. Uma fatia é geralmente composta por um cabeçalho, e uma pluralidade de blocos (ou macroblocos) como subdados codificados. 0 cabeçalho indica o início 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 quantificação) . Além disso, é colocado um sinalizador de valor inicial no cabeçalho. 0 sinalizador de valor inicial é um sinalizador para identificar se a tabela de probabilidades utilizada 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), são colocados dados codificados da tabela de probabilidades 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 enviados a partir do 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.
Conforme descrito acima, o cabeçalho inclui porções de dados comuns (que estão originalmente na porção do cabeçalho) que são codificadas pelo codificador de cabeçalhos 3, um sinalizador de valor inicial gerado pelo codificador aritmético 7, e dados codificados de tabela de probabilidades codificados por parte do codificador de tabela de probabilidades 6. Mais especificamente, as partes de dados comuns são divididas num lado de porção principal e num lado de dados de imagens, e inserido entre as mesmas estão o sinalizador de valor inicial e os dados codificados de tabela de probabilidade, por essa ordem.
Deve ser notado que nesta forma de realização a tabela de probabilidades em si foi codificada e incorporada no cabeçalho como dados relacionados com a tabela de probabilidades, mas em vez disso, pode ser codificada e incorporada no cabeçalho informação indicando a tabela de probabilidades obtida (por exemplo, uma fórmula, um sinalizador indicando a tabela de probabilidades, ou informação indicando uma combinação dos mesmos). Neste caso, a quantidade de codificação pode ser reduzida, porque a tabela de probabilidades em si não é codificada.
Como um exemplo adicional de informação indicando a tabela de probabilidades obtida, é possível utilizar uma porção 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 porção 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 quantificação de imagens. Deve 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-codifiçadas, fatias codificadas preditivas e fatias bi-preditivas), e os valores iniciais dos parâmetros de quantificação de fatias. Além disso, o sinalizador de valor inicial pode ser omisso assegurando que os valores iniciais são sempre atualizados, isto é, 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 em bloco 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 por parte do dispositivo de codificação de comprimento variável 1. Quando o objeto são 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 está primariamente provido 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 para além do cabeçalho de cada unidade de dados, e está provida com um descodificador aritmético 17, uma unidade de atualização de tabela de probabilidades 18, e uma unidade de inicialização 19. Deve 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 enviar dados gerados para a unidade de atualização da tabela de probabilidades 18 após os dados codificados serem introduzidos, e descodificar dados codificados com base nos dados da tabela de probabilidades, isto é, 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 da tabela de probabilidades 18 tem a função de atualizar as tabelas de probabilidades, e é um dispositivo para enviar a tabela de probabilidades, isto é, as palavras de código para o descodificador aritmético 17 enquanto atualizando 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 enviar 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 dados de cabeçalho codificados com um método de descodificação fixa. 0 dispositivo de descodificação de comprimento variável 11 está adicionalmente provido com um descodificador da tabela de probabilidades 16. 0 descodificador da tabela de probabilidades 16 é um dispositivo para a descodificação de dados codificados da tabela de probabilidades com um método de descodificação fixa.
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á utilizado para ilustrar uma configuração interna 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 adicionador 206 e uma unidade de descodificação de entropia 207. Deve 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 envia 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 nesta 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 produzidas a partir do adicionador 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 por parte da unidade de descodificação de 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 a partir das imagens de referência armazenadas na memória de imagens 213, e envia o mesmo para o adicionador 206. Deve ser notado que ao codificar imagens intra-codifiçadas, os valores de pixel da imagem de referência compensada em movimento são tomados como 0, e o adicionador 206 produz os dados de entrada como tal 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 leva a cabo processamento de expansão de dados sobre a produção a partir da unidade de descodificação de entropia 207, e produz dados expandidos. A unidade de descodificação conversora 204 inclui uma unidade de quantificação inversa 214 e uma unidade de transformação ortogonal inversa 215. A unidade de quantificação inversa 214 quantifica inversamente a produção a partir da unidade de descodificação de entropia 207, e envia o mesmo para a unidade de transformação ortogonal inversa 215. A unidade de transformação ortogonal inversa 215 leva a cabo processamento de transformação discreta de cosseno inversa (processamento IDCT) na produção a partir da unidade de quantificação inversa 214, e envia os dados expandidos para o adicionador 206. O processamento de IDCT é um processo no qual os dados do domínio da frequência são transformados em dados do domínio espacial. O adicionador 206 produz, como imagens produzidas, os dados de imagens obtidos adicionando os dados de imagens a partir 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. (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, envia dados de cabeçalho codificados para o descodificador de cabeçalhos 13, envia dados codificados para além dos cabeçalhos para o descodificador aritmético 17, e envia os dados codificados da tabela de probabilidades para o descodificador de tabela de probabilidades 16 quando existem dados codificados da tabela de probabilidades. Deve ser notado que o descodificador de cabeçalhos 13 envia 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 diagrama de fluxo 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 de forma a definir uma tabela de probabilidades para valores iniciai s.
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 por parte do 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 porção da tabela de probabilidades. Inclusive quando apenas uma parte da tabela de probabilidades está codificada, se a porção correspondente aos dados codificados com uma probabilidade elevada na tabela de probabilidades obtida está codificada, pode ser alcançada uma descodificação adequada numa operação de descodificação (que será descrita abaixo). Deve ser notado que quando somente está codificada uma parte da tabela de códigos, 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 ê codificada informação indicando que a tabela de probabilidades e não a própria tabela de probabilidades, essa informação é primeiro descodificada, posteriormente a unidade de atualização de tabela de probabilidades 18 seleciona a tabela de probabilidades indicada por esses dados.
Na etapa S24, o descodificador aritmético 17 e a unidade de atualização da tabela de probabilidades 18 cooperam para realizar descodificação aritmética sobre os subdados. Especificamente, com base na tabela de probabilidades a partir da unidade de atualização de tabela de probabilidades 18, o descodificador aritmético 17 descodifica os subdados 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 enviados 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 é utilizada na descodificação dos próximos subdados na etapa S24.
Na etapa S25, é determinado se a descodificação de todos os subdados está completa ou não. Se for determinado que a descodificação de todos os subdados não está completa, o procedimento retorna à etapa S24, e a operação descrita acima é repetida. (5) Eficácia dos métodos de codificação e descodificação descritos acima [1] A eficácia de compressão é melhorada com os métodos de codificação e descodificação descritos acima porque os subdados são codificados com base na tabela de probabilidades obtida através de codificação aritmética. Por outras palavras, com estes métodos de codificação e descodificação, a eficácia de compressão pode ser aumentada devido à elevada eficácia de aprendizagem, inclusive se a quantidade total de dados for pequena e consequentemente a proporção da quantidade de dados codificados que seriam necessários com métodos convencionais até à codificação ótima ser obtida por aprendizagem é considerável.
Além disso, dado que 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 a qual a tabela de probabilidades é codificada é adequada com os métodos de codificação e descodificação descritos acima, uma vez que a tabela de probabilidades é codificada em unidades de imagens ou fatias. Em primeiro lugar, mesmo que uma porção dos dados codificados que deveriam ser utilizados na aprendizagem seja perdida num erro de transmissão, e a mesma tabela de probabilidades que a do momento de codificação não possa ser reproduzida durante a descodificação, um estado no qual as imagens não são reproduzíveis não dura mais de vários segundos visto que a tabela de probabilidades codificadas é descodificada com frequência elevada. Ao codificar 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 utilizados 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 durante mais do que alguns segundos. Em segundo lugar, não haverá uma grande quantidade de dados redundantes da tabela de probabilidades. Ao codificar em unidades de bloco (ou macrobloco), a redundância dos dados de inicialização tornar-se-á demasiado grande.
[3] É alcançada uma elevada eficácia 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 descritos acima. 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 inseridos são também codificados com um método de codificação fixa. Dado que a eficácia de compressão para cabeçalhos é sempre baixa em comparação com a 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 eficácia 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 de acordo com 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 criar fluxos de bits. Em particular, o dispositivo de codificação de comprimento variável 21 é caracterizado por permutar entre uma pluralidade de tabelas de códigos de comprimento variável como método de codificação primário. Um exemplo típico de codificação de comprimento variável é a codificação de Huffman, e a explicação seguinte utilizará a codificação de Huffman como um exemplo. São possíveis vários tipos de dados introduzidos para o dispositivo de codificação de comprimento variável 21, mas esta forma de realização será descrita como uma na qual são introduzidos dados de imagens. Isto é, 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 quantificados 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. Deve ser notado que a unidade de dados é composta por uma pluralidade de conjuntos de subdados e quando a unidade de dados é uma imagem, os subdados são fatias, macroblocos ou blocos, e quando a unidade de dados é uma fatia, os subdados 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. 0 codificador de comprimento variável 27 é um dispositivo para enviar 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, isto é, as palavras de código, que são permutadas 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 o envio de um sinal de seleção de tabela de códigos para um comutador 25 em resposta à probabilidade dos dados gerados produzidos por parte do codificador de comprimento variável 27. O permutador 25 é um dispositivo para comutar as tabelas de código de comprimento variável 30 que são utilizadas 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 enviar 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 a 30c é composta por uma combinação de fluxos de dados e bits que correspondem a esses dados. São empregues fluxos de bits comuns nas porções brancas das tabelas de códigos de comprimento variável 30a a 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 porções 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 porções comuns são dados com uma probabilidade comparativamente elevada. Se dados com uma probabilidade elevada podem ser processados com um bit, é selecionada a tabela de códigos 30a, se dados com uma probabilidade elevada podem ser processados com dois bits, é selecionada a tabela de códigos 30b, e se códigos com uma probabilidade elevada podem ser processados com três bits, é selecionada a tabela de códigos 30c. Em contraste com isto, os códigos das porções brancas são para dados com uma probabilidade relativamente baixa. Desta forma, ao organizar 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 tornar-se-á 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. 0 dispositivo de codificação de comprimento variável 21 está adicionalmente provido 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, dos dados codificados que não cabeçalhos que são produzidos a partir do codificador de comprimento variável 27, e dos dados de sinal de seleção codificados que são produzidos a partir do codificador de sinal de seleção 26, e geração de sequências de código (fluxos de bits) e envio das mesmas 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 diagrama de fluxo mostrando um diagrama esquemático 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 envia 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 envia um sinal de seleção de tabela de códigos para o permutador 25. 0 resultado disto é que o permutador 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. Deve 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á omissa 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 codificação de Huffman de subdados. Mais especificamente, a unidade de seleção de tabela de códigos 28 envia um sinal de seleção de tabela de códigos para o permutador 25 com base nos dados gerados até aquele ponto.
Com base no sinal de seleção de tabela de códigos, o permutador 25 permuta as tabelas de códigos de comprimento variável 30, e o codificador de comprimento variável 27 codifica os subdados com as palavras de código da tabela de códigos de comprimento variável 30 selecionada. Além disso, cada unidade de dados é composta por uma pluralidade de conjuntos de subdados. Especificamente, são codificados fatias, macroblocos ou blocos como subdados quando a unidade de dados é uma imagem, e são codificados macroblocos ou blocos como subdados quando a unidade de dados é uma fatia.
Na etapa S33, os subdados são enviados 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 subdados, a qual indica que tabela de códigos deve ser selecionada quando o permutador 25 executa em seguida uma permutação. Nesta forma de realização, esta tabela de códigos é utilizada quando é realizada codificação de comprimento variável sobre os subdados seguintes.
Na etapa S34, é determinado se a codificação de todos os subdados está completa ou não. Se for determinado que a codificação de todos os subdados não está completa, o procedimento retorna à etapa S32 e a operação descrita acima é repetida.
Na etapa S35, é determinado se codificar ou não a informação que indica a tabela de códigos de comprimento variável 30 utiliza para os valores iniciais (isto é, os sinais de seleção da tabela de códigos). Se esta informação se destina a ser codificada, o procedimento prossegue para a etapa S36, e se esta informação não se destina a ser codificada, a etapa S36 é saltada. Deve ser notado que a tabela de códigos de comprimento variável utilizada para os valores iniciais não é codificada em tais 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 eficácia de aprendizagem é como tal boa), ou quando a tabela de códigos de comprimento variável utilizada 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 o mesmo 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 enviados para o codificador de sinal de seleção 26 . A eficácia de compressão para os subdados é melhorada através do método de codificação descrito acima dado, à exceção da primeira codificação dos subdados, a tabela de códigos de comprimento variável ê selecionada com base nos valores de subdados codificados. Em particular, dado que a tabela de códigos de comprimento variável utilizada na codificação de subdados é uma tabela de códigos de comprimento variável selecionada através de codificação de Huffman dos subdados anteriores, pode ser alcançada codificação em tempo real, e a velocidade de codificação será aumentada. Além disso, pode ser obtida eficácia de compressão favorável com correlação espacial e temporal das imagens.
[2] Operação da unidade de codificação de cabeçalhos 0 codificador de cabeçalhos 23 codifica os dados de cabeçalho introduzidos, e envia 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 envia 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 subdados codificados. 0 cabeçalho indica o início 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-codificadas, imagens codificadas preditivas, e imagens codificadas bi-preditivas] e valores iniciais de parâmetros de quantificação de imagens). Deve 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.
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, conforme 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 utilizada são colocados no cabeçalho. Deve 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 consequentemente 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) .
Conforme descrito acima, o cabeçalho inclui porções 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 porções de dados comuns são divididas num lado de porção principal e num lado de dados de imagens, e inseridos entre os mesmos 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 a partir do 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 subdados codificados. 0 cabeçalho indica o início de dados codificados numa fatia e é primariamente composto pelos dados comuns para cada fatia (parâmetros tais como um código de início, e uma escala de quantificaçã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 quantificação de fatias.
Além disso, é colocado um sinalizador de valor inicial 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, conforme 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 utilizada é colocada no cabeçalho. Deve ser notado que quando a tabela de códigos de comprimento variável não está codificada, não são enviados dados de sinal de seleção codificados a partir do codificador de sinal de seleção 26 para o multiplexador 24, e consequentemente o resultado é que os dados de sinal de seleção codificados não são colocados no fluxo de bits conforme mostrado na Fig. 16(b).
Conforme descrito acima, o cabeçalho inclui porções 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 porções de dados comuns são divididas num lado de porção principal e num lado de dados de imagens, e inseridas entre os mesmos estão o sinalizador de valor inicial e a informação de sinal de seleção codificada, por essa ordem.
Deve ser notado que nesta 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 disto, foi incorporada informação de sinal de seleção codificada indicando a tabela de códigos de comprimento variável a ser utilizada no cabeçalho. Consequentemente, a quantidade de codificação pode ser reduzida dado que 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 utilizada, é possível utilizar 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 porção 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 quantificação de imagens. Deve 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-codifiçadas, fatias codificadas preditivas e fatias codificadas bi-preditivas) e valores iniciais de parâmetros de quantificação de fatias.
Além disso, o sinalizador de valor inicial pode ser omisso 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 em bloco mostrando a configuração global de um dispositivo de descodificação de comprimento variável 31 de acordo com 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 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 32 é um dispositivo para a realização de descodificação de Huffman em dados para além do cabeçalho de cada unidade de dados, e está provida com um dispositivo de descodificação de comprimento variável 37 e um descodificador de sinal de seleção 36. Deve 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. 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 permutado através de um permutador 35. 0 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 enviar esses dados para o permutador 35. 0 permutador 35 é um dispositivo para permutar as tabelas de códigos de comprimento variável 30 que são utilizadas 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 enviar instruções de inicialização para a unidade de descodificação de sinal de seleção 36. 0 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 para além de cabeçalhos, e dados de sinal de seleção codificados. (4) Operação do dispositivo de descodificação de comprimento variável [1] Operação do desmultiplexador 0 desmultiplexador 34 desmultiplexa um fluxo de bits, envia dados de cabeçalho codificados para o descodificador de cabeçalhos 33, produz dados codificados para além de cabeçalhos para o dispositivo de descodificação de comprimento variável 37, e envia 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. Deve ser notado que o descodificador de cabeçalhos 33 envia 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 diagrama de fluxo mostrando um diagrama esquemático do funcionamento da unidade de descodificação de dados 32.
Na etapa S51, a unidade de inicialização 39 envia instruções de inicialização para o descodificador de sinal de seleção 36, e o descodif icador de sinal de seleção 36 envia um sinal de seleção de tabela de códigos para o permutador 35. 0 resultado é que o permutador 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 utiliza utilizada está 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 salta a etapa 53 e prossegue para a etapa S54.
Na etapa S53, o permutador 35 seleciona a tabela de códigos de comprimento variável 30 que é indicada através da saída 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 subdados. Mais especificamente, com base na tabela de códigos de comprimento variável 30 selecionada pelo permutador 35, o dispositivo de descodificação de comprimento variável 37 descodifica os subdados 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 permutador 35. A tabela de códigos de comprimento variável selecionada 30 é utilizada na descodificação dos subdados seguintes na etapa S54.
Na etapa S55, é determinado se a descodificação de todos os subdados está completa ou não. Se for determinado que a descodificação de todos os subdados não está completa, o procedimento retorna à etapa S54 e a operação descrita acima é repetida. (5) Eficácia do método de codificação e do método de descodificação acima descritos [1] A eficácia de compressão é melhorada com os métodos de codificação e métodos de descodificação descritos acima dado que os subdados são codificados com base numa tabela de códigos de comprimento variável obtida através de codificação de Huffman. Por outras palavras, com estes métodos de codificação e descodificação, a eficácia de compressão pode ser aumentada com elevada eficácia de aprendizagem, mesmo que a quantidade total de dados seja pequena e consequentemente a proporção da quantidade de dados codificados que seriam necessários com métodos convencionais até à codificação ótima ser obtida através de aprendizagem é considerável.
Além disso, dado que 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 é adequada com os métodos de codificação e métodos de descodificação descritos acima dado que a tabela de códigos de comprimento variável é codificada em unidades de imagens ou fatias. Em primeiro lugar, inclusive quando os dados de sinal de seleção codificados se perdem num erro de transmissão, as imagens nunca serão ilegíveis durante mais do que alguns segundos porque a tabela de probabilidades codificada é descodificada com frequência elevada. Ao codificar 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 de seleção codificados se perdem num erro de linha de transmissão, as imagens não serão legíveis durante mais do que vários 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. Ao codificar em unidades de blocos (ou macroblocos), os dados de inicialização redundantes tornam-se muito grandes.
[3] É obtida eficácia de compressão elevada para a porção principal dos dados de imagens com codificação de Huffman permutando entre uma pluralidade de tabelas de códigos de comprimento variável nos métodos de codificação e métodos de descodificação descritos acima. 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 a informação inserida que indica a tabela de códigos de comprimento variável é também codificada com um método de codificação fixa. Dado que a eficácia de compressão para cabeçalhos é sempre baixa em comparação com a parte principal dos dados de imagens, não existe qualquer problema particularmente grande na utilização de um método de codificação fixa em termos da eficácia de compressão global. 3. Forma de realização do meio de armazenamento
Ao 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 descritas acima num meio de armazenamento tal como uma disquete, é possível executar facilmente os processos mostrados nas formas de realização num sistema informático independente. A Fig. 19 ilustra um caso no qual a presente invenção é executada num sistema informático utilizando 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 descritas acima. 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 físico de uma disquete (que é a parte principal do meio de armazenamento). Uma disquete FD é colocada num invólucro F, e são formadas uma pluralidade de faixas Tr de forma concêntrica a partir do extremo exterior para o extremo interior na superfície da disquete. Cada faixa é dividida numa orientação angular em 16 setores Se. Consequentemente, com uma disquete na qual está armazenado o programa descrito acima, 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 mencionado acima.
Além disso, 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 disquete. 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 através de uma unidade de disquetes e transferido para um sistema informático.
Deve ser notado que é utiliza utilizada uma disquete como o meio de armazenamento para ilustrar a explicação acima, mas também pode ser utilizado um disco ótico de forma semelhante. Além disso, o meio de armazenamento não está limitado aos exemplos mencionados acima, e contanto que seja um meio no qual pode ser realizada uma gravação, tal como um CD-ROM, um cartão de memória ou uma cassete ROM, o programa pode ser executado da mesma forma. 4. Aplicações de exemplo da presente invenção e sistemas que utilizam as mesmas 0 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 descritas acima, bem como sistemas que utilizam as mesmas. A Fig. 20 é 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 proporcionar 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. 0 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 tais como um computador exlll, um PDA (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 exlQ7 a exllO.
No entanto, o sistema de disponibilização de conteúdos exlOO não está limitado à disposição mostrada na Fig. 17, e qualquer combinação destes dispositivos pode ser disposta e conectada. Além disso, os dispositivos podem ser diretamente conectados através da 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 exll3 é um dispositivo tal como uma câmara de vídeo digital que é capaz de capturar imagens em movimento. Além disso, os telemóveis podem ser dispositivos que operam em protocolos como PDC (Comunicações Digitais Pessoais), CDMA (Acesso Múltiplo por Divisão de Código), W-CDMA (Acesso Múltiplo por Divisão de Código sobre Banda Larga), ou GSM (Sistema Global para Comunicações Móveis), PHS (Sistema Telefónico Pessoal) e semelhantes.
Além disso, um servidor de di sponibi1i zação de fluxo exl03 pode ser conectado à câmara exll3 através da estação base exl09 e da rede telefónica exl04, e um utilizador utilizando a câmara exll3 pode realizar uma transmissão em direto com base em dados codificados. 0 processamento para codificar os dados capturados pode ser realizado pela câmara exll3, ou por um servidor ou semelhante que transmite os dados. Além disso, podem ser enviados dados de imagens em movimento capturados por uma câmara exll6 através do computador exlll para o servidor de disponibilização de fluxos exl03. A câmara exll6 é um dispositivo tal 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 por parte da câmara exll6 ou do computador exlll. Além disso, o processo de codificação é realizado por um chip LSI exll7 proporcionado no computador exlll ou na câmara exll6. Deve ser notado que o softv/are para codificação/descodificação de imagens pode ser incorporado em qualquer meio de armazenamento (tal como CD-ROMs, discos flexíveis e discos rígidos) que possam ser lidos pelo computador exlll ou semelhante. Além disso, podem ser transmitidos dados de imagens em movimento pelo telemóvel equipado com câmara exll5. Quando isto ocorre, os dados de imagens em movimento são codificados em dados através de um chip LSI proporcionado no telemóvel exll5.
Com o sistema de disponibilização de conteúdos exlOO, o conteúdo (por exemplo, imagens capturando um concerto ao vivo) que um utilizador está a capturar com a câmara exll3, a câmara exll6 ou semelhante são codificados da mesma forma que nas formas de realização descritas acima e transmitidos para o servidor de disponibilização de fluxos exl03, e o servidor de disponibilização de fluxos exl03 transmite o conteúdo para um cliente que o 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. Consequentemente, 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 descritas acima podem ser utilizados nos dispositivos de codificação e descodificação que compõem este sistema. 0 seguinte exemplo descreve a utilização de um telemóvel com a presente invenção. A Fig. 21 mostra um telemóvel exll5 que utiliza 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 está provido 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 tal 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 líquido 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 saída de voz ex2Q8 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 meio de armazenamento ex207 para gravar dados codificados ou descodificados tais como imagens em movimento ou imagens fixas capturadas, dados de correio eletrónico recebidos, dados de imagens em movimento ou dados de imagens fixas, e um intervalo ex206 para habilitar o meio de armazenamento ex2G7 a ser equipado no telemóvel exll5. 0 meio de armazenamento ex207 está alojado num dispositivo de memória flash, que é um tipo de E EPROM (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 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 (visor de cristal líquido) 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 estã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 proporcionada com a unidade de exibição ex202 e as chaves de operação ex204.
Quando uma chamada termina ou a tecla de alimentação é ativada por parte do utilizador, a unidade de circuito de alimentação ex310 fornece alimentação a cada unidade a partir da 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 semelhantes), o telemóvel exll5 converte os sinais de voz recolhidos durante um modo de chamada de voz através da unidade de entrada de voz ex2 05 para dados de voz digital com a unidade de processamento de voz ex305, e estes são submetidos a processamento de dispersão de espetro por parte da unidade de circuito de modem ex306 e são transmitidos através da antena ex201 por parte da unidade de circuito de receção/envio ex301 após ser submetidos a 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 submetidos a transformação de frequência, conversão digital-analógica, e processamento inverso de dispersão de espetro por parte da unidade de circuito de modem ex306, e serem convertidos em sinais de voz analógicos por parte da unidade de processamento de voz ex3 0 5, são produzidos através da unidade de saída de voz ex208.
Além disso, ao enviar um correio eletrónico no modo de transmissão de dados, os dados de texto do e-mail que são introduzidos através da 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 dispersão de espetro ser executado pela unidade de circuito de modem ex306, e em seguida são submetidos a 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 imagem capturados por parte da unidade de câmara ex203 são proporcionados à 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 que os dados de imagens capturados pela câmara ex203 sejam 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 proporcionada com um dispositivo de codificação de imagens descrito no presente pedido. Os dados de imagens proporcionados pela câmara ex203 são convertidos para dados de imagens codificados sendo submetidos a codificação de compressão com o método de codificação utilizado no dispositivo de codificação de imagens mostrado nas formas de realização descritas acima, 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 por parte da 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 proporcionados a partir da unidade de codificação de imagens ex312 e dos dados de voz proporcionados a partir da unidade de processamento de voz ex305, e após os dados multiplexados obtidos como resultado disto serem submetidos a processamento de dispersão de espetro por parte da unidade de circuito de modem ex306, e serem submetidos a conversão digital-analógica e transformação de frequência por parte da 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 uma página web ou semelhante no modo de transmissão de dados, os sinais de receção recebidos a partir da estação base exllO através da antena ex201 são submetidos a processamento inverso de dispersão de espetro por parte da 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 proporcionados à unidade de processamento de voz ex305 juntamente com os dados de imagens codificados sendo proporcionados à 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 proporcionada 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 uma página web, 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 descritas acima, gerando dados de imagens em movimento de reprodução, e proporcionando os mesmos à unidade de exibição ex202 através da unidade de controlo de LCD ex302. De forma simultânea com isto, a unidade de processamento de voz ex305 converte os dados de voz em sinais de voz analógicos, e posteriormente proporciona os mesmos à unidade de saída de voz ex20S, consequentemente permitindo que os dados de voz contidos no ficheiro de imagens em movimento ligado a partir de uma página web, por exemplo, sejam reproduzidos.
Deve ser notado que não existe qualquer limitação para os exemplos do sistema descrito acima. 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 descritas acima pode ser incorporado em sistemas utilizando difusão digital, conforme 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 bits emite ondas de difusão de rádio, e estas ondas de rádio são recebidas por uma antena ex4 06 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 caixa adaptadora (STB) ex407 ou semelhante, e este fluxo de bits descodificados é reproduzido. Além disso, é possível instalar um dispositivo de descodificação de imagens mostrado nas formas de realização descritas acima num dispositivo de reprodução ex403 que lê e descodifica fluxos de bits codificados gravados num meio de armazenamento ex402, tal como meios de armazenamento de CD e DVD. Neste caso, os sinais de imagens reproduzidas são exibidos num monitor ex404. Além disso, é também possível uma configuração na qual o dispositivo de descodificação de imagens é instalado numa caixa adaptadora ex407 conectada a um cabo ex4 05 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 ex4 0 8. Aqui, o dispositivo de descodificação de imagens pode ser incorporado na televisão em vez de na caixa adaptadora. Além disso, é possível que sinais do satélite ex410, da estação base exl07, ou semelhante sejam recebidos por um automóvel ex412 provido com uma antena ex411, e imagens em movimento podem ser reproduzidas num dispositivo de exibição no automóvel ex412, tal como um sistema de navegação do carro ex413.
Além disso, é possível codificar sinais de imagens com um dispositivo de codificação de imagens mostrado nas formas de realização descritas acima, e gravar os mesmos num meio 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 num disco rígido. Adicionalmente, a gravação pode ser num cartão SD ex422. Se o gravador ex420 estiver provido com um dispositivo de descodificação de imagens mostrado nas formas de realização descritas acima, os sinais de imagens gravados no disco DVD ex421, ou no cartão SD ex422, podem ser reproduzidos e exibidos no monitor ex408.
Deve ser notado que a configuração do sistema de navegação do automóvel 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 conforme mostrado na Fig. 19 sejam excluídos, e isto é também possível e forma semelhante para o computador exlll e a televisão (dispositivo de receção) ex401.
Além disso, o terminal do telemóvel exll4 descrito acima pode não só ser apenas um tipo de terminal de envio/receção tendo tanto um dispositivo de codificação como um dispositivo de descodificação, mas pode também ser um terminal de envio com somente um dispositivo de codificação, ou um terminal de receção com somente 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 descritas acima podem ser utilizados em qualquer dos dispositivos ou sistemas descritos acima, e obter os efeitos descritos destas formas de realização ao fazê-lo. 5. Outras formas de realização A presente invenção não está limitada às formas de realização descritas acima, e são possíveis várias outras formas de realização e modificações sem se desviar do âmbito da presente invenção.
Claims (2)
- REIVINDICAÇÕES1. Um sistema de codificação e descodificação de comprimento variável que inclui um aparelho de codificação de comprimento variável que codifica uma unidade de dados em dados de imagens compostos por uma pluralidade de subdados com referência a uma tabela de probabilidades e um aparelho de descodificação de comprimento variável que descodifica unidades de dados em dados de imagens com referência à tabela de probabilidades, em que o dito aparelho de codificação de comprimento variável inclui: um meio de ajuste da tabela que ajusta uma tabela de probabilidades a valores iniciais com base num valor inicial de um parâmetro de quantificação da unidade de dados; um meio de codificação de informação de inicialização que codifica informação de inicialização relacionada com o dito valor inicial do parâmetro de quantificação da unidade de dados; um primeiro meio de obtenção de parâmetro que obtém parâmetros de codificação a ser utilizados na codificação de subdados a partir da tabela de probabilidades; um meio de codificação de subdados que realiza uma codificação aritmética nos subdados com referência aos parâmetros de codificação obtidos; e um primeiro meio de atualização da tabela de probabilidades que atualiza a tabela de probabilidades com base nos subdados codificados aritmeticamente por parte do meio de codificação de subdados, em que o dito aparelho de descodificação de comprimento variável inclui: um meio de descodificação de informação de inicialização que descodifica a informação de inicialização codificada relacionada com o valor inicial do parâmetro de quantificação da unidade de dados; um meio de inicialização da tabela que ajusta a tabela de probabilidades a valores iniciais com base na informação de inicialização descodificada relacionada com o valor inicial do parâmetro de quantificação da unidade de dados; um segundo meio de obtenção de parâmetro que obtém parâmetros de codificação a ser utilizados na descodificação de subdados a partir da tabela de probabilidades; um meio de descodificação de subdados que realiza uma descodificação aritmética nos subdados codificados com referência aos parâmetros de codificação obtidos; e um segundo meio de atualização da tabela de probabilidades que atualiza a tabela de probabilidades com base nos subdados descodificados aritmeticamente por parte do meio de descodificação de subdados. 2. 0 sistema de codificação e descodificação de comprimento variável de acordo com a reivindicação 1, em que a unidade de dados é uma figura ou uma fatia em dados de imagens.
- 3. Um método de codificação e descodificação de comprimento variável que inclui um método de codificação de comprimento variável de codificar uma unidade de dados em dados de imagens compostos por uma pluralidade de subdados com referência a uma tabela de probabilidades e um método de descodificação de comprimento variável de descodificar unidades de dados em dados de imagens com referência à tabela de probabilidades, em que o dito método de codificação de comprimento variável compreende: uma etapa de ajuste da tabela de ajuste de uma tabela de probabilidades a valores iniciais com base num valor inicial de um parâmetro de quantificação da unidade de dados; uma etapa de codificação de informação de inicialização de codificação de informação de inicialização relacionada com o valor inicial do parâmetro de quantificação da unidade de dados; uma primeira etapa de obtenção de parâmetro de obtenção de parâmetros de codificação a ser utilizados na codificação de subdados a partir da tabela de probabilidades; uma etapa de codificação de subdados de realização de uma codificação aritmética nos subdados com referência aos parâmetros de codificação obtidos; e uma primeira etapa de atualização da tabela de probabilidades de atualização da tabela de probabilidades com base nos subdados codificados aritmeticamente na etapa de codificação de subdados, em que o dito método de descodificação de comprimento variável compreende: uma etapa de descodificação de informação de inicialização de descodificação da informação de inicialização codificada relacionada com o valor inicial do parâmetro de quantificação da unidade de dados; uma etapa de inicialização da tabela de ajuste da tabela de probabilidades a valores iniciais com base na informação de inicialização descodificada relacionada com o valor inicial do parâmetro de quantificação da unidade de dados; uma segunda etapa de obtenção de parâmetro de obtenção de parâmetros de codificação a ser utilizados na descodificação de subdados a partir da tabela de probabilidades; uma etapa de descodificação de subdados de realização de uma descodificação aritmética nos subdados codificados com referência aos parâmetros de codificação obtidos; e uma segunda etapa de atualização da tabela de probabilidades de atualização da tabela de probabilidades com base nos subdados descodificados aritmeticamente na etapa de descodificação de subdados.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002088345 | 2002-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
PT2765708T true PT2765708T (pt) | 2016-10-25 |
Family
ID=28449441
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
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 |
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 |
---|---|---|---|
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 |
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) | ES2399422T3 (pt) |
HK (1) | HK1196720A1 (pt) |
HU (2) | HUE044878T2 (pt) |
MX (1) | MXPA03010827A (pt) |
PT (3) | PT1445869E (pt) |
SI (3) | SI1445869T1 (pt) |
TR (1) | TR201906516T4 (pt) |
WO (1) | WO2003081784A1 (pt) |
Families Citing this family (44)
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 | 三菱電機株式会社 | デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法 |
JP3842803B2 (ja) * | 2002-04-26 | 2006-11-08 | 株式会社エヌ・ティ・ティ・ドコモ | 信号符号化方法、信号復号方法、信号符号化装置、信号復号装置、信号符号化プログラム、及び信号復号プログラム |
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 |
US7978761B2 (en) * | 2004-10-05 | 2011-07-12 | Vectormax Corporation | Method and system for loss-tolerant multimedia multicasting |
JP2009518945A (ja) * | 2005-12-05 | 2009-05-07 | トムソン ライセンシング | ウォーターマークエンコードコンテンツ |
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 |
WO2010084951A1 (ja) * | 2009-01-23 | 2010-07-29 | 日本電信電話株式会社 | パラメータ選択方法、パラメータ選択装置、プログラム及び記録媒体 |
JP5274317B2 (ja) * | 2009-03-17 | 2013-08-28 | パナソニック株式会社 | 符号量推定装置、符号量推定方法、符号量推定プログラムおよび、符号量推定集積回路 |
KR101773009B1 (ko) | 2009-06-29 | 2017-08-30 | 톰슨 라이센싱 | 코딩되지 않은 구문에 대한 적응 확률 갱신을 위한 방법 및 장치 |
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 |
CA2806000C (en) * | 2010-07-20 | 2016-07-05 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using an optimized hash table |
US20120195366A1 (en) * | 2011-02-01 | 2012-08-02 | Mediatek Singapore Pte. Ltd. | Method and Apparatus of Adaptive Inter Mode Coding Using Variable Length Codes |
US8929933B2 (en) | 2011-05-04 | 2015-01-06 | 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 |
US8989286B2 (en) | 2011-11-10 | 2015-03-24 | Microsoft Corporation | Mapping a transmission stream in a virtual baseband to a physical baseband with equalization |
US9130711B2 (en) | 2011-11-10 | 2015-09-08 | Microsoft Technology Licensing, Llc | Mapping signals from a virtual frequency band to physical frequency bands |
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)
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 | 符号化方法、復号化方法、符号化装置及び復号化装置 |
US5856930A (en) * | 1993-03-26 | 1999-01-05 | Sony Corporation | Disc-shaped recording medium, disc recording apparatus and disc reproducing apparatus |
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 | 德国汤姆森-布兰特有限公司 | 使用加密、解密来保护数据流的方法、编码和解码装置 |
-
2003
- 2003-03-13 PT PT3710347T patent/PT1445869E/pt unknown
- 2003-03-13 CN CN200910175504.6A patent/CN101692610B/zh not_active Expired - Lifetime
- 2003-03-13 TR TR2019/06516T patent/TR201906516T4/tr unknown
- 2003-03-13 EP EP14163034.3A patent/EP2765708B1/en not_active Expired - Lifetime
- 2003-03-13 ES ES03710347T patent/ES2399422T3/es not_active Expired - Lifetime
- 2003-03-13 DK DK10181733.6T patent/DK2391019T3/da active
- 2003-03-13 EP EP03710347A patent/EP1445869B1/en not_active Expired - Lifetime
- 2003-03-13 KR KR1020037015428A patent/KR100927510B1/ko active IP Right Grant
- 2003-03-13 US US10/476,647 patent/US6954156B2/en not_active Expired - Lifetime
- 2003-03-13 HU HUE16171139 patent/HUE044878T2/hu unknown
- 2003-03-13 PT PT141630343T patent/PT2765708T/pt unknown
- 2003-03-13 SI SI200332219T patent/SI1445869T1/sl unknown
- 2003-03-13 SI SI200332494A patent/SI2765708T1/sl unknown
- 2003-03-13 EP EP16171139.5A patent/EP3098969B1/en not_active Expired - Lifetime
- 2003-03-13 DK DK14163034.3T patent/DK2765708T3/en active
- 2003-03-13 SI SI200332372T patent/SI2391019T1/sl unknown
- 2003-03-13 BR BRPI0303661A patent/BRPI0303661B1/pt active IP Right Grant
- 2003-03-13 ES ES10181733.6T patent/ES2493616T3/es not_active Expired - Lifetime
- 2003-03-13 CN CNB038003309A patent/CN100555877C/zh not_active Expired - Lifetime
- 2003-03-13 EP EP10181733.6A patent/EP2391019B1/en not_active Expired - Lifetime
- 2003-03-13 HU HUE14163034A patent/HUE030635T2/en unknown
- 2003-03-13 ES ES16171139T patent/ES2724399T3/es not_active Expired - Lifetime
- 2003-03-13 AU AU2003221378A patent/AU2003221378B9/en not_active Expired
- 2003-03-13 ES ES14163034.3T patent/ES2599637T3/es not_active Expired - Lifetime
- 2003-03-13 MX MXPA03010827A patent/MXPA03010827A/es active IP Right Grant
- 2003-03-13 PT PT101817336T patent/PT2391019E/pt unknown
- 2003-03-13 WO PCT/JP2003/003035 patent/WO2003081784A1/ja active Application Filing
- 2003-03-13 CA CA2447840A patent/CA2447840C/en not_active Expired - Lifetime
- 2003-03-13 DK DK03710347.0T patent/DK1445869T3/da active
-
2005
- 2005-02-24 US US11/064,455 patent/US7088269B2/en not_active Expired - Lifetime
-
2006
- 2006-03-07 US US11/368,437 patent/US7248190B2/en not_active Expired - Lifetime
-
2012
- 2012-12-27 CY CY20121101265T patent/CY1113502T1/el unknown
-
2014
- 2014-10-13 HK HK14110169.8A patent/HK1196720A1/zh not_active IP Right Cessation
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
PT2765708T (pt) | 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 | |
ES2588179T3 (es) | Método de codificación de imágenes en movimiento y método de decodificación de imágenes en movimiento | |
TWI379595B (en) | Memory management method and decoding apparatus | |
JP4130783B2 (ja) | 動きベクトル符号化方法および動きベクトル復号化方法 | |
ES2306381T3 (es) | Procedimiento de codificacion de imagenes en movimiento y procedimiento de decodificacion de imagenes en movimiento. | |
JP4594201B2 (ja) | 画像符号化方法、画像符号化装置、プログラムおよび集積回路 | |
ES2549252T3 (es) | Método de codificación de longitud variable | |
JP2004007506A (ja) | 画像符号化方法および画像復号化方法 | |
TW200423739A (en) | Picture coding method | |
MXPA04002302A (es) | APARATO DE CODIFICACION DE IMáGENES EN MOVIMIENTO Y APARATO DE DECODIFICACION DE IMáGENES EN MOVIMIENTO. | |
KR20160001714A (ko) | 픽쳐들의 그룹에서 변경가능 엘리먼트들의 세트를 결정하기 위한 방법 및 디바이스 | |
JP2008079152A (ja) | 画像符号化方法および画像復号方法 | |
ES2847856T3 (es) | Procedimientos y dispositivos para codificar y decodificar al menos una imagen implementando una estimación en el campo transformado y programa informático correspondiente | |
JP4197345B2 (ja) | 可変長復号化方法、記憶媒体、及び可変長復号化装置 | |
JP2008245016A (ja) | 画像符号化装置、画像符号化方法、及びプログラム |