[go: up one dir, main page]

BRPI0303661B1 - método e dispositivo de codificação de comprimento variável e meio de armazenamento - Google Patents

método e dispositivo de codificação de comprimento variável e meio de armazenamento Download PDF

Info

Publication number
BRPI0303661B1
BRPI0303661B1 BRPI0303661A BR0303661A BRPI0303661B1 BR PI0303661 B1 BRPI0303661 B1 BR PI0303661B1 BR PI0303661 A BRPI0303661 A BR PI0303661A BR 0303661 A BR0303661 A BR 0303661A BR PI0303661 B1 BRPI0303661 B1 BR PI0303661B1
Authority
BR
Brazil
Prior art keywords
data
variable length
coding
probability table
unit
Prior art date
Application number
BRPI0303661A
Other languages
English (en)
Other versions
BR0303661A (pt
Inventor
Satoshi Kondo
Shinya Kadono
Yoshinori Matsui
Original Assignee
Matsushita Electric Indusrial Co Ltd
Panasonic Corp
Panasonic Ip Corp America
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Indusrial Co Ltd, Panasonic Corp, Panasonic Ip Corp America filed Critical Matsushita Electric Indusrial Co Ltd
Publication of BR0303661A publication Critical patent/BR0303661A/pt
Publication of BRPI0303661B1 publication Critical patent/BRPI0303661B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

"método de codificação de comprimento variável, método de decodificação de comprimento variável, meio de armazenamento, dispositivo de codificação de comprimento variável, dispositivo de decodificação de comprimento variável e fluxo de bits". a presente invenção decodifica, corretamente dados codificados com um método de codificação de comprimento variável que melhora a relação de compressão. o método de codificação de comprimento variável codifica dados de unidade compostos por uma pluralidade de subdados, enquanto referenciam-se tabelas de parâmetro, e inclui as seguintes etapas: uma etapa de inicialização, na qual uma tabela de parâmetro obtida é regulada para valores iniciais; uma etapa de codificação de informação de tabela de parâmetro na qual a informação relacionada à tabela de parâmetro inicializada é codificada; uma etapa de obtenção de parâmetro, na qual os parâmetros de codificação a serem usados na codificação de subdados são obtidos a partir da tabela de parâmetro; uma etapa de codificação de subdados, na qual a codificação de comprimento variável dos subdados é realizada com referência aos parâmetros de codificação obtidos; e uma etapa de colocação de informação codificada na qual a informação codificada é colocada em uma posição na qual a informação pode ser obtida antes dos dados de unidade codificados.

Description

Relatório Descritivo da Patente de Invenção para "MÉTODO E DISPOSITIVO DE CODIFICAÇÃO DE COMPRIMENTO VARIÁVEL E MEIO DE ARMAZENAMENTO".
CAMPO TÉCNICO A presente invenção refere-se a métodos de codificação de comprimento variável, a seus métodos correspondentes de decodificação de comprimento variável, meios de armazenamento que armazenam programas para a execução desses processos em um computador, dispositivos de codificação de comprimento variável e seus dispositivos correspondentes de decodificação de comprimento variável. Em particular, a presente invenção refere-se a métodos de codificação de comprimento variável adaptativos, que otimizam métodos de codificação por meio de dados codificados, métodos de decodificação de comprimento variável que correspondem àqueles métodos, meios de armazenamento que armazenam programas para a execução desses processos em um computador, dispositivos de codificação de comprimento variável adaptativos que otimizam métodos de codificação por meio de dados codificados, e dispositivos de decodificação de comprimento variável que correspondem a esses dispositivos.
FUNDAMENTOS DA TÉCNICA
Nos últimos anos, formatos tais como JPEG para imagens paradas e MPEG para filmes foram padronizados como técnicas para a compressão e a descompressão de imagens, devido a esforços em direção à criação de padrões internacionais para esquemas de codificação de imagem. O esquema de codificação MPEG (Grupo de Especialistas em Filmes) é composto, primariamente, por uma unidade de predição interqua-dro de compensação de movimento, uma unidade de DCT (transformada de co-seno discreta), e uma unidade de codificação de comprimento variável. A unidade de predição interquadro de compensação de movimento detecta vetores de movimento a partir de dados de imagem de entrada e dados de imagem anteriores, e cria dados de erro residual a partir dos vetores de movimento e dos dados de imagem anteriores. A unidade de DCT efetua transformações de DCT nos 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 vetores de movimento.
Os dados de imagem codificados no esquema de codificação de 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 imagem única, e é composta por uma pluralidade de fatias. Uma fatia é uma unidade de recuperação de sincronização, uma área em formato de banda composta por um ou por uma pluralidade de macroblocos.
Uma codificação de comprimento variável se refere a um tipo de codificação de entropia. Como há variação na probabilidade de valores, tais como coeficientes de transformação pós-DCT (coeficientes de DCT) e valores de vetor de movimento, a codificação de comprimento variável reduz a quantidade média de dados pela atribuição de palavras de código curtas àqueles valores que têm uma alta probabilidade e pela atribuição de palavras de código longas àqueles valores que têm uma probabilidade baixa.
Os tipos principais de codificação de comprimento variável incluem uma codificação de Huffman e uma codificação aritmética. A codificação de Huffman é um método no qual palavras de código são determinadas por uma árvore de código de Huffman, na qual cada símbolo é uma folha. Ele usa uma tabela de correspondência (tabela de código), que inclui palavras de código (cadeias de bits) para cada código.
Para melhorar a relação de compressão, a codificação de Huffman usa métodos, tal como um método no qual uma tabela de código é criada, que corresponde a propriedades estatísticas de mudança de imagem em movimento, e um método no qual uma pluralidade de tabelas de código é preparada, e as tabelas de código são alternadas, em resposta a proprieda- des estatísticas das imagens. A teoria da informação estabelece que uma tabela de código, na qual log2 (1/p) bits são atribuídos a códigos de probabilidade p, tem o menor volume médio de dados. E é por isso que, no método de alternância de uma pluralidade de tabelas de código, a probabilidade é calculada a partir dos dados codificados, e uma tabela de código é selecionada de modo que números de bit próximos de log2 (1/p) bits sejam atribuídos aos códigos de probabilidade p.
Uma codificação aritmética é uma técnica na qual a seqüência de símbolos é projetada para intervalos [0,1), em resposta à probabilidade, e um espaço de probabilidade em uma linha de número é expresso em binário com um número apropriado naquele intervalo. Em uma codificação aritmética, a codificação é realizada enquanto se monitoram constantemente as propriedades estatísticas. Especificamente, tabelas de probabilidade são reescritas em resposta aos conteúdos das imagens, e palavras de código são determinadas enquanto se referenciam as tabelas de probabilidade. Mais especificamente, em uma codificação aritmética, a probabilidade usada em operações aritméticas é sucessivamente adaptada por dados codificados, de modo que log2 (1/p) bits sejam atribuídos a um código da probabilidade p.
Diferentemente da codificação de Huffman, na codificação aritmética, cadeias de bit correspondentes a palavras de código podem ser obtidas apenas com operações aritméticas (adição, subtração, multiplicação e divisão) e, portanto, a quantidade de memória requerida para o armazenamento da tabela de código pode ser reduzida, se comparada com a codificação de Huffman. Além disso, é possível responder a mudanças nas propriedades estatísticas, durante uma codificação, ao se reescrever a tabela de probabilidade. Entretanto, operações aritméticas, em particular operações de multiplicação e divisão, requerem grande capacidade aritmética, desse modo um inconveniente sendo 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 eficiência de compressão pode ser melhorada, se comparado com métodos fixos de codificação, porque o método de codificação continua a ser dinamicamente otimizado com dados codificados.
Entretanto, os problemas a seguir ocorrem, quando da otimização de forma dinâmica do método de codificação com dados codificados.
Os métodos de codificação dinâmicos baseados em aprendizado são realizados, por exemplo, em dados de imagem após o cabeçalho, isto é, em cada fatia, macrobloco ou bloco. Neste caso, a codificação aritmética usa uma tabela de probabilidade fixa para os valores iniciais para cada subuni-dade, para codificação em cada imagem, e a codificação de Huffman usa uma tabela de código de comprimento variável fixa como uma tabela de código inicial em cada imagem. Como valores iniciais fixos são usados desta forma, a eficiência de compressão de codificação não pode ser considerada favorável até tabelas de probabilidade e tabelas de código ótimas serem obtidas com um aprendizado, após a inicialização. Em particular, quando a quantidade total de dados é pequena, a proporção de dados requeridos para aprendizado aumenta, e a relação de compressão não é tão alta.
Por outro lado, quando uma porção dos dados codificados usados no aprendizado é perdida na linha de transmissão, um aprendizado apropriado não pode ser realizado no dispositivo de decodificação, e a de-codificação se torna impossível. E, no caso de dados de imagem, a deterioração da qualidade da imagem ocorre devido a erros de transmissão. Embora reiniciar regularmente os resultados do aprendizado proteja contra erros de transmissão, esta proteção é vulnerável a erros, quando o intervalo de reinicialização é longo e, assim, é inevitável que o intervalo de reinicialização seja curto até um certo ponto. A menos que o problema descrito acima de erro de transmissão seja resolvido, a eficiência de compressão de métodos de codificação adaptativos não melhorará o suficiente.
DESCRIÇÃO DA INVENÇÃO
Um objeto da presente invenção é melhorar a eficiência de compressão de métodos de codificação de comprimento variável usados em áreas tais como a compressão de imagem.
Um outro objeto da presente invenção é decodificar dados corretamente, que são codificados por um método de codificação de comprimento variável tendo uma eficiência de compressão melhorada.
Em um aspecto da presente invenção, um método de codificação de comprimento variável codifica dados de unidade compostos por uma pluralidade de subdados, enquanto se referencia tabelas de parâmetro, o método compreendendo as etapas de: regulagem de uma tabela de parâmetro para valores iniciais; codificação de uma informação relacionada à tabela de parâmetro inicializada; obtenção de parâmetros de codificação a serem usados na codificação dos subdados a partir da tabela de parâmetro; realização de uma codificação de comprimento variável dos subdados com referência aos parâmetros de codificação obtidos; e colocação da informação codificada relacionada à tabela de parâmetro inicializada em uma posição na qual a informação pode ser obtida antes dos dados de unidade codificados.
Deve ser notado que os parâmetros de codificação se referem a uma informação, que indica a freqüência de ocorrência de dados, e são obtidos a partir da tabela de parâmetro e referenciados durante a codificação de subdados. No caso de uma codificação aritmética, embora a tabela de parâmetro corresponda a uma tabela de probabilidade, e os parâmetros de codificação correspondam a uma probabilidade aqui, a presente invenção não está limitada a estes.
Com este método de codificação, a eficiência de compressão é melhorada quando da codificação dos dados de unidade, porque os parâmetros de codificação obtidos a partir da tabela de parâmetro são usados na codificação de subdados. Além disso, devido ao fato de a informação relacionada à tabela de parâmetro inicializada ser codificada e colocada em uma posição na qual ela pode ser obtida antes dos dados de unidade codificados, os dados de unidade codificados podem ser decodificados corretamente, durante uma decodificação, pelo uso daquela tabela de parâmetro como va- lores iniciais.
Em um outro aspecto da presente invenção, o método de codificação de comprimento variável atualiza a tabela de parâmetro com base nos valores de subdados codificados, e obtém os parâmetros de codificação a partir da tabela de parâmetro atualizada.
Com este método de codificação, a eficiência de compressão é melhorada, quando da codificação dos dados de unidade, porque a tabela de parâmetro é atualizada com base nos valores de subdados codificados.
Em um outro aspecto da presente invenção, o método de codificação de comprimento variável obtém valores iniciais dos parâmetros de codificação a serem usados na etapa de codificação de subdados a partir da tabela de parâmetro, com base em valores dos subdados codificados imediatamente anteriores.
Com este método de codificação, os parâmetros de codificação podem ser derivados em tempo real, e a velocidade de codificação aumentará, porque os valores iniciais dos parâmetros de codificação são obtidos a partir da tabela de parâmetro com base em valores dos subdados codificados imediatamente anteriores.
Em um outro aspecto da presente invenção, o método de codificação de comprimento variável obtém os valores iniciais dos parâmetros de codificação na etapa de codificação de subdados a partir da tabela de parâmetro, com base em valores dos subdados codificados a serem codificados.
Com este método de codificação, os valores iniciais dos parâmetros de codificação na etapa de codificação de subdados são obtidos a partir da tabela de parâmetro, com base em valores dos subdados codificados a serem codificados, e há uma alta eficiência de compressão, mesmo quando os conteúdos dos subdados e dos subdados imediatamente anteriores forem grandemente diferentes.
Em um outro aspecto da presente invenção, o método de codificação de comprimento variável efetua uma codificação aritmética dos subdados na etapa de codificação de subdados com referência aos parâmetros de codificação. Há uma boa eficiência de compressão com este método de codificação, porque a codificação aritmética é usada como um método de codificação dos subdados. Deve ser notado que a tabela de parâmetro corresponde a uma tabela de probabilidade, e que os parâmetros de codificação correspondem a uma probabilidade.
Em um outro aspecto da presente invenção, a informação relacionada à tabela de parâmetro no método de codificação de comprimento variável é o parâmetro em si.
Em um outro aspecto da presente invenção, apenas uma porção da tabela de parâmetro é codificada na etapa de codificação de informação do método de codificação de comprimento variável.
Com este método de codificação, apenas uma porção da tabela de parâmetro inicializada é codificada, não a tabela de parâmetro inicializada inteira e, portanto, a quantidade de codificação pode ser diminuída.
Em um outro aspecto da presente invenção, uma porção da tabela de parâmetro no método de codificação de comprimento variável é uma porção dos parâmetros que corresponde aos dados codificados com uma alta probabilidade.
Com este método de codificação, a quantidade de codificação pode ser diminuída, enquanto se garante que uma decodificação satisfatoriamente correta seja realizada, durante a decodificação, porque apenas uma porção da tabela de parâmetro inicializada que corresponde a dados codificados com uma alta probabilidade é codificada.
Em um outro aspecto da presente invenção, a informação codificada relacionada à tabela de parâmetro no método de codificação de comprimento variável é uma informação que indica a tabela de parâmetro.
Com este método de codificação, a quantidade de codificação pode ser diminuída, porque a informação codificada indicando a tabela de parâmetro é codificada e não a tabela de parâmetro em si.
Em um outro aspecto da presente invenção, a informação codificada que indica a tabela de parâmetro codificada é colocada como uma porção de dados comuns para os dados de unidade na etapa de colocação de informação codificada do método de codificação de comprimento variável.
Com este método de codificação, uma informação que indica a tabela de parâmetro é colocada como uma porção de dados comuns nos dados de unidade, e funciona como uma porção ali e, portanto, a quantidade de codificação pode ser diminuída.
Em um outro aspecto da presente invenção, a informação relacionada à tabela de parâmetro é codificada com um método fixo de codificação na etapa de codificação do método de codificação de comprimento variável.
Com este método de codificação, a informação relacionada à tabela de parâmetro inicializada é codificada estatisticamente porque um método fixo de codificação é usado e, assim, a informação relacionada à tabela de parâmetro inicializada pode ser decodificada de forma confiável.
Em um outro aspecto da presente invenção, o método de codificação de comprimento variável ainda inclui uma etapa de determinação de codificação, na qual é determinado se uma informação relacionada à tabela de parâmetro inicializada está codificada, e uma etapa de colocação de indicador, na qual um indicador, que identifica um resultado da determinação, é colocado em uma posição na qual o indicador pode ser obtido, antes dos dados de unidade codificados.
Com este método de codificação, pode ser feita uma determinação quanto à informação relacionada à tabela de parâmetro codificada estar ou não codificada, pelo uso de um indicador, que é colocado em uma posição na qual a informação relacionada à tabela de parâmetro usada como valores iniciais não está codificada quando, por exemplo, a quantidade de dados até a próxima tabela de probabilidade ser inicializada é suficientemente grande (em outras palavras, a proporção da quantidade de dados requerida para aprendizado até a quantidade total de dados é suficientemente pequena, e a eficiência de aprendizado, portanto, é boa), ou quando a tabela de parâmetro usada como valores iniciais é substancialmente consistente com a tabela de parâmetro ótima obtida por aprendizado.
Em um outro aspecto da presente invenção, a unidade de dados no método de codificação é uma imagem em dados de imagem.
Com este método de codificação, a freqüência com a qual as tabelas de parâmetro são codificadas é ótima para todos os dados de imagem e, portanto, mesmo se uma porção dos dados codificados que devem ser usados no aprendizado for perdida em um erro de transmissão, e a mesma tabela de probabilidade que aquela do momento da codificação não puder ser reproduzida quando da decodificação, as imagens não serão impossíveis de se exibir por mais de alguns segundos, já que a tabela de probabilidade codificada é decodificada com alta freqüência. Além disso, não haverá uma grande quantidade de dados redundantes de tabela de parâmetro.
Em um outro aspecto da presente invenção, a unidade de dados no método de codificação de comprimento variável é uma fatia nos dados de imagem.
Com o método de codificação, a freqüência com que as tabelas de parâmetro são codificadas é ótima para todos os dados de imagem, e mesmo se uma porção dos dados codificados que seriam usados em aprendizado for perdida por um erro de transmissão, e a mesma tabela de probabilidade tal como aquela do tempo de codificação não possa ser reproduzida quando decodifica, as imagens não serão impossíveis de se exibir por mais do que alguns segundos uma vez que a tabela de probabilidade codificada é decodificada com alta freqüência. Mais ainda, não haverá uma grande quantidade de dados redundantes de tabela de parâmetro.
Em um outro aspecto da presente invenção, o método de decodificação de comprimento variável decodifica um fluxo de dados de unidade com referência a tabelas de parâmetro, os dados de unidade compostos por uma pluralidade de subdados, e o método inclui as etapas de: decodificação de uma informação codificada relacionada à tabela de parâmetro do fluxo; regulagem do valor inicial da tabela de parâmetro com base na informação decodificada relacionada à tabela de parâmetro; obtenção dos parâmetros de codificação a serem usados na de- codificação de subdados a partir da tabela de parâmetro; e realização de uma decodificação de comprimento variável dos subdados do fluxo com referência aos parâmetros de codificação obtidos.
Com este método de decodificação, devido ao fato de uma informação relacionada à tabela de parâmetro ser decodificada, e com base no fato de a tabela de parâmetro obtida ser regulada como os valores iniciais, os dados de unidade podem ser corretamente decodificados.
Em um outro aspecto da presente invenção, o método de decodificação de comprimento variável atualiza a tabela de parâmetro com base nos valores de subdados decodificados, e obtém os parâmetros de codificação a partir da tabela de parâmetro atualizada.
Em um outro aspecto da presente invenção, o método de decodificação de comprimento variável realiza uma decodificação aritmética dos subdados com referência aos parâmetros de codificação na etapa de decodificação de subdados.
Em um outro aspecto da presente invenção, o método de decodificação de comprimento variável decodifica a informação envolvida relacionada à tabela de parâmetro com um método fixo de decodificação na etapa de decodificação da informação envolvida.
Em um outro aspecto da presente invenção, um meio de armazenamento armazena um programa para execução de uma codificação de comprimento variável em um computador. A codificação de comprimento variável é um método de codificação de comprimento variável que codifica dados de unidade composto por uma pluralidade de subdados, enquanto referencia tabelas de parâmetro, e inclui as etapas de: regulagem de uma tabela de parâmetro para valores iniciais; codificação de uma informação relacionada à tabela de parâmetro inicializada; obtenção de parâmetros de codificação a serem usados na codificação dos subdados a partir da tabela de parâmetro; realização de uma codificação de comprimento variável dos subdados com referência aos parâmetros de codificação obtidos; e colocação de uma informação relacionada à tabela de parâmetro codificada em uma posição na qual a informação pode ser obtida antes dos dados de unidade codificados.
Com este meio de armazenamento, uma codificação de comprimento variável pode ser processada em um computador ao se carregar o programa armazenado em um computador. A eficiência de compressão é aumentada quando da codificação dos dados de unidade, porque os parâmetros codificados obtidos a partir da tabela de parâmetro são usados na codificação dos subdados neste processo. Além disso, devido ao fato de a informação relacionada à tabela de parâmetro inicializada estar codificada, e colocada em uma posição na qual a informação pode ser obtida antes dos dados de unidade codificados, os dados de unidade codificados podem ser corretamente decodificados quando da decodificação com aqueles parâmetros usados como valores iniciais.
Em um outro aspecto da presente invenção, o meio de armazenamento armazena um programa para execução de uma decodificação de comprimento variável em um computador. A decodificação de comprimento variável é um método de decodificação de comprimento variável que decodifica um fluxo de dados de unidade com referência a tabelas de parâmetro, os dados de unidade compostos por uma pluralidade de subdados, e o método inclui as etapas de: decodificação de uma informação codificada relacionada à tabela de parâmetro do fluxo; regulagem de valores iniciais da tabela de parâmetro com base na informação decodificada relacionada à tabela de parâmetro; obtenção de parâmetros de codificação a serem usados na decodificação dos subdados a partir da tabela de parâmetro; e realização de uma decodificação de comprimento variável dos subdados do fluxo com referência aos parâmetros de codificação obtidos.
Com este meio de armazenamento, uma decodificação de comprimento variável pode ser processada em um computador pelo carregamento do programa armazenado em um computador. Neste processo, os dados de unidade podem ser corretamente decodificados, porque a informação relacionada à tabela de parâmetro é decodificada e, com base nisso, a tabela de parâmetro obtida é regulada como os valores iniciais.
Em um outro aspecto da presente invenção, um método de codificação de comprimento variável codifica dados de unidade compostos por uma pluralidade de subdados, enquanto se alternam tabelas de código de comprimento variável, e inclui as etapas de: regulagem de uma tabela de código de comprimento variável para valores iniciais; codificação de uma informação que indica as tabelas de código de comprimento variável; seleção de uma tabela de código de comprimento variável a ser usada na codificação de subdados; realização de uma codificação dos subdados com referência à tabela de código de comprimento variável selecionada; e colocação da informação codificada que indica a tabela de código de comprimento variável inicializada em uma posição na qual a informação possa ser obtida antes dos dados de unidade codificados.
Com este método de codificação, a eficiência de compressão é melhorada, quando da codificação dos dados de unidade, porque uma tabela de código de comprimento variável selecionada é usada na codificação dos subdados. Além disso, devido ao fato de uma informação que indica a tabela de código de comprimento variável inicializada estar codificada e colocada em uma posição na qual a informação pode ser obtida antes dos dados de unidade, os dados de unidade codificados podem ser corretamente decodificados com a tabela de código de comprimento variável indicada pela informação como os valores iniciais na decodificação.
Em um outro aspecto da presente invenção, o método de codificação de comprimento variável seleciona a tabela de código de comprimento variável com base nos valores de subdados codificados.
Com este método de codificação, a eficiência de compressão é melhorada quando da codificação dos dados de unidade, porque a tabela de código de comprimento variável é selecionada com base nos valores de subdados codificados.
Em um outro aspecto da presente invenção, a tabela de código de comprimento variável a ser usada na codificação na etapa de codificação de subdados do método de codificação de comprimento variável é uma tabela de código de comprimento variável selecionada com base em valores dos subdados codificados imediatamente anteriores.
Com este método de codificação, a codificação pode ser realizada em tempo real e a velocidade da codificação será aumentada, porque os subdados são codificados com base em uma tabela de código de comprimento variável que é selecionada com base em valores dos subdados codificados imediatamente anteriores.
Em um outro aspecto da presente invenção, a tabela de código de comprimento variável a ser usada na codificação na etapa de codificação de subdados do método de codificação de comprimento variável é uma tabela de código de comprimento variável selecionada com base nos subdados codificados a serem codificados.
Com este método de codificação, há uma alta eficiência de compressão, mesmo quando o conteúdo dos subdados e os subdados imediatamente anteriores forem grandemente diferentes, porque os subdados são codificados com base em uma tabela de código de comprimento variável que é selecionada com base em valores dos subdados codificados a serem codificados.
Em um outro aspecto da presente invenção, o método de codificação de comprimento variável realiza uma codificação com um método fixo de codificação na etapa de codificação de informação.
Com este método de codificação, a informação que indica a tabela de código de comprimento variável inicializada é decodificada de forma confiável, porque um método fixo de codificação é usado.
Em um outro aspecto da presente invenção, o método de codificação de comprimento variável ainda inclui as etapas de: determinar se uma informação que indica a tabela de código de comprimento variável inicializa- da está codificada ou não; e colocação de um indicador, que identifica um resultado da determinação em uma posição na qual o indicador pode ser obtido, antes dos dados de unidade codificados.
Com este método de codificação, se a informação que indica a tabela de código de comprimento variável inicializada foi codificada ou não pode ser determinado por um indicador colocado em uma posição na qual o indicador pode ser obtido antes dos dados de unidade codificados. Deve ser notado que a informação que indica a tabela de código de comprimento variável usada como valores iniciais não está codificada em casos tais como quando, por exemplo, a quantidade de dados até a próxima tabela de código de comprimento variável ser inicializada for suficientemente grande (em outras palavras, a proporção da quantidade de dados requerida para aprendizado para a quantidade total de dados é suficientemente pequena, e a eficiência de aprendizado, portanto, é boa), ou quando a tabela de código de comprimento variável usada como valores iniciais é substancialmente consistente com a tabela de código de comprimento variável ótima obtida por aprendizado.
Em um outro aspecto da presente invenção, a unidade de dados no método de codificação de comprimento variável é uma imagem dados dado de imagem.
Com este método de codificação, a frequência com a qual a informação indicando as tabelas de código de comprimento variável é codificada é ótima para todos os dados de imagem, e, portanto, mesmo se uma porção de dados de informação codificados for perdida em um erro de transmissão, as imagens não serão impossíveis de se exibir por mais de alguns segundos. Além disso, não haverá uma grande quantidade de dados de informação codificada redundantes.
Em um outro aspecto da presente invenção, a unidade de dados do método de codificação de comprimento variável é uma fatia em dados de imagem.
Com este método de codificação, a frequência com a qual a informação indicando as tabelas de código de comprimento variável é codifi- cada é ótima para todos os dados de imagem e, portanto, mesmo se uma porção de dados de informação codificados for perdida em um erro de transmissão, as imagens não serão impossíveis de se exibir por mais de vários segundos. Além disso, não haverá uma grande quantidade de dados de informação codificada redundantes.
Em um outro aspecto da presente invenção, uma pluralidade de elementos de sintaxe dos subdados do método de codificação de comprimento variável inclui uma porção codificada por um método de codificação de comprimento variável, no qual as tabelas de código de comprimento variável são alternadas, e uma porção codificada por um método fixo de codificação.
Com este método de codificação, por exemplo, com dados de imagem, uma alta eficiência de compressão pode ser obtida por um método de codificação de comprimento variável, no qual as tabelas de código de comprimento variável são alternadas, e cabeçalhos de dados comuns podem ser codificados facilmente com um método fixo de codificação. Deve ser notado que, como a eficiência de compressão para cabeçalhos sempre é baixa, não há nenhum impedimento em particular no uso de um método fixo de codificação.
Em um outro aspecto da presente invenção, um método de de-codificação de comprimento variável decodifica um fluxo de dados de unidade enquanto alterna tabelas de código de comprimento variável, os dados de unidade compostos por uma pluralidade de subdados, o método incluindo as etapas de: decodificação de uma informação codificada que indica uma tabela de código de comprimento variável do fluxo; regulagem de valores iniciais da tabela de código de comprimento variável com base na informação decodificada que indica uma tabela de código de comprimento variável; seleção de uma tabela de código de comprimento variável a ser usada na decodificação dos subdados; e realização de uma decodificação de comprimento variável dos subdados do fluxo com referência à tabela de código de comprimento variável selecionada.
Com este método de decodificação, os dados de unidade codificados podem ser decodificados corretamente, porque a informação codificada relacionada à tabela de código de comprimento variável está decodificada, e a tabela de código de comprimento variável indicada pela informação é regulada como os valores iniciais.
Em um outro aspecto da presente invenção, um meio de armazenamento armazena um programa para execução da codificação de comprimento variável em um computador. A codificação de comprimento variável é um método de codificação de comprimento variável que codifica dados de unidade compostos por uma pluralidade de subdados, enquanto se alternam tabelas de código de comprimento variável, e inclui as etapas de: regulagem de uma tabela de código de comprimento variável para valores iniciais; codificação de uma informação que indica as tabelas de código de comprimento variável inicializadas; seleção de uma tabela de código de comprimento variável para ser usada na codificação de subdados; realização de uma codificação dos subdados com referência à tabela de código de comprimento variável selecionada; e colocação da informação codificada que indica uma tabela de código de comprimento variável codificada em uma posição na qual a informação pode ser obtida antes dos dados da unidade codificados.
Com este meio de armazenamento, a eficiência de compressão é aumentada, quando da codificação de dados de unidade, porque uma tabela de código de comprimento variável selecionada é usada nos processos de codificação dos subdados pelo programa armazenado em um computador. Além disso, devido ao fato de uma informação relacionada à tabela de código de comprimento variável inicializada estar codificada e colocada em uma posição na qual a informação pode ser obtida antes dos dados de unidade codificados, os dados de unidade codificados podem ser corretamente decodificados, quando da decodificação com a tabela de código de comprimento variável que a informação indicar como valores iniciais.
Em um outro aspecto da presente invenção, um meio de armazenamento armazena um programa para execução de uma decodificação de comprimento variável em um computador. A decodificação de comprimento variável é um método de decodificação de comprimento variável que decodifica um fluxo de dados de unidade, enquanto se alternam tabelas de código de comprimento variável, os dados de unidade compostos por uma pluralidade de subdados, e inclui as etapas de: decodificação de uma informação codificada que indica a tabela de código de comprimento variável do fluxo; regulagem de valores iniciais das tabelas de código de comprimento variável com base na informação decodificada que indica uma tabela de código de comprimento variável; seleção de uma tabela de código de comprimento variável a ser usada na decodificação dos subdados; e realização de uma decodificação de comprimento variável dos subdados do fluxo com referência à tabela de código de comprimento variável selecionada.
Com este meio de armazenamento, os dados de unidade codificados podem ser corretamente decodificados, porque a informação indicando a tabela de código é decodificada, e a tabela de código de comprimento variável indicada pela informação é regulada como os valores iniciais no processo de decodificação pelo programa armazenado em um computador.
Em um outro aspecto da presente invenção, um dispositivo de codificação de comprimento variável codifica dados de unidade compostos por uma pluralidade de subdados enquanto se referenciam tabelas de parâmetro, e inclui um meio de inicialização, um meio de codificação de informação de tabela de parâmetro, um meio de obtenção de parâmetro, um meio de codificação de subdados e um meio de colocação de informação codificada. O meio de inicialização regula uma tabela de parâmetro para valores iniciais. O meio de codificação de informação de tabela de parâmetro codifi- ca uma informação relacionada à tabela de parâmetro inicializada. O meio de obtenção de parâmetro obtém parâmetros de codificação a serem usados na codificação de subdados a partir da tabela de parâmetro. O meio de codificação de subdados realiza uma codificação de comprimento variável dos subdados com referência aos parâmetros de codificação obtidos. O meio de colocação de informação codificada coloca uma informação relacionada à tabela de parâmetro codificada em uma posição na qual a informação pode ser obtida, antes dos dados de unidade codificados.
Com este dispositivo de codificação, a eficiência de compressão é melhorada, quando da codificação dos dados de unidade, porque os parâmetros codificados obtidos a partir da tabela de parâmetro são usados quando o meio de codificação de subdados codifica subdados. Além disso, devido ao fato de a informação relacionada à tabela de parâmetro inicializada estar codificada pelo meio pode codificação de informação de tabela de parâmetro, e colocada em uma posição pelo meio de colocação de informação codificada, na qual a informação pode ser obtida antes dos dados de unidade codificados, a tabela de parâmetro pode ser obtida durante a deco-dificação com base naquela informação, e os dados de unidade codificados podem ser corretamente decodificados com aquela tabela de parâmetro como valores iniciais.
Em um outro aspecto a presente invenção, um dispositivo de decodificação de comprimento variável decodifica um fluxo de dados de unidade com referência a tabelas de parâmetro, os dados de unidade compostos por uma pluralidade de subdados. O dispositivo inclui um meio de decodificação de informação de tabela de parâmetro, um meio de inicialização de tabela de parâmetro, um meio de obtenção de parâmetro, e um meio de decodificação de subdados. O meio de decodificação de informação de tabela de parâmetro decodifica uma informação codificada relacionada a uma tabela de parâmetro do fluxo. O meio de inicialização de tabela de parâmetro regula valores iniciais da tabela de parâmetro com base na informação decodificada relacionada à tabela de parâmetro. O meio de obtenção de parâmetro obtém parâmetros de codificação a serem usados na decodificação de subdados a partir da tabela de parâmetro. O meio de decodificação de sub-dados executa uma decodificação de comprimento variável dos subdados do fluxo com referência aos parâmetros de codificação obtidos.
Com este dispositivo de decodificação, os dados de unidade podem ser corretamente decodificados, e a tabela de parâmetro que é obtida com base naquela informação é regulada como os valores iniciais.
Em um outro aspecto da presente invenção, um dispositivo de codificação de comprimento variável codifica um dado de unidade composto por uma pluralidade de subdados, enquanto se alternam tabelas de código de comprimento variável. O dispositivo inclui um meio de inicialização, um meio de codificação de informação, um meio de seleção de tabela de código de comprimento variável, um meio de codificação de subdados e um meio de colocação de informação codificada. O meio de inicialização regula uma tabela de código de comprimento variável para valores iniciais. O meio de codificação de informação codifica uma informação indicando a tabela de código de comprimento variável inicializada. O meio de seleção de tabela de código de comprimento variável seleciona uma tabela de código de comprimento variável a ser usada na codificação dos subdados. O meio de codificação de subdados realiza uma codificação dos subdados com referência à tabela de código de comprimento variável selecionada. O meio de colocação de informação codificada coloca a informação codificada indicando a tabela de código de comprimento variável codificada em uma posição na qual a informação pode ser obtida, antes dos dados de unidade codificados.
Com este dispositivo de codificação, a eficiência de compressão é melhorada, quando da codificação de dados de unidade, porque uma tabela de código de comprimento variável selecionada é usada quando o meio de codificação de subdados codifica os subdados. Além disso, devido ao fato de a informação que indica as tabelas de código de comprimento variável ser codificada por meio da codificação de informação de tabela de parâmetro e colocada em uma posição por meio de colocação de informação codificada, na qual a informação pode ser obtida antes dos dados de unidade codificados, a tabela de código de comprimento variável indicada por aquela informação pode ser obtida durante a decodificação, e os dados de unidade codificados podem ser corretamente decodificados com aquela tabela de código de comprimento variável como valores iniciais.
Em um outro aspecto da presente invenção, um dispositivo de decodificação de comprimento variável decodifica um fluxo de dados de unidade codificados, enquanto se alternam tabelas de código de comprimento variável, os dados de unidade compostos por uma pluralidade de subdados. O dispositivo inclui um meio de decodificação de informação de tabela de código de comprimento variável, um meio de inicialização de tabela de código de comprimento variável, um meio de seleção de tabela de código de comprimento variável e um meio de decodificação de subdados. O meio de decodificação de informação de tabela de código de comprimento variável decodifica uma informação codificada que indica uma tabela de código de comprimento variável do fluxo. O meio de inicialização de tabela de código de comprimento variável regula valores iniciais de uma tabela de código de comprimento variável com base na informação decodificada indicando a tabela de código de comprimento variável. O meio de seleção de tabela de código de comprimento variável seleciona uma tabela de código de comprimento variável a ser usada na decodificação de subdados. O meio de decodificação de subdados realiza uma decodificação de comprimento variável dos subdados do fluxo com referência à tabela de código de comprimento variável selecionada.
Com este dispositivo de decodificação, os dados de unidade podem ser corretamente decodificados, porque a informação codificada relacionada a tabelas de código de comprimento variável é decodificada, e a tabela de código de comprimento variável é selecionada com base naquela informação.
Em um outro aspecto da presente invenção, um fluxo de bits é gerado por um método de codificação de comprimento variável para a codificação dos dados de unidade, enquanto se referenciam tabelas de parâmetro. O método de codificação de comprimento variável que gera o fluxo de bits é qualquer um dos métodos de codificação de comprimento variável descritos acima como aspectos da presente invenção.
Os efeitos desses métodos de codificação de comprimento variável podem ser obtidos com um fluxo de bits, tal como uma eficiência de compressão melhorada quando da codificação de dados de unidade.
BREVE DESCRIÇÃO DOS DESENHOS A Figura 1 é um diagrama de blocos que mostra a configuração geral de um dispositivo de codificação de comprimento variável de acordo com uma primeira modalidade da presente invenção; A Figura 2 é um diagrama de blocos que mostra a configuração geral de um dispositivo de codificação de imagem padronizado; A Figura 3 é um fluxograma que mostra um esboço da operação de uma unidade de codificação de dados; A Figura 4 é um fluxograma que mostra um esboço da operação de uma versão modificada da unidade de codificação de dados; A Figura 5 mostra um exemplo da estrutura de um fluxo de dados de imagem; A Figura 6 mostra um outro exemplo da estrutura de um fluxo de dados de imagem; A Figura 7 mostra estruturas de dados de fluxo de bits geradas por um dispositivo de codificação de comprimento variável; A Figura 8 mostra estruturas de dados de fluxo de bits geradas por um dispositivo de codificação de comprimento variável; A Figura 9 é um diagrama de blocos que mostra a configuração geral de um dispositivo de decodificação de comprimento variável de acordo com a primeira modalidade da presente invenção; A Figura 10 é um diagrama de blocos que mostra a configuração geral de um dispositivo de decodificação de imagem padronizado. A Figura 11 é um fluxograma que mostra um esboço da operação de uma unidade de decodificação de dados; A Figura 12 é um diagrama de blocos que mostra a configuração geral de um dispositivo de codificação de comprimento variável de acordo com uma segunda modalidade da presente invenção; A Figura 13 mostra as estruturas de uma pluralidade de tabelas de código de comprimento variável; A Figura 14 é um fluxograma que mostra um esboço da operação de uma unidade de codificação de dados; A Figura 15 mostra estruturas de dados de fluxo de bits geradas por um dispositivo de codificação de comprimento variável; A Figura 16 mostra estruturas de dados de fluxo de bits geradas por um dispositivo de codificação de comprimento variável; A Figura 17 é um diagrama de blocos que mostra a configuração geral de um dispositivo de decodificação de comprimento variável de acordo com a segunda modalidade da presente invenção; A Figura 18 é um fluxograma que mostra um esboço da operação de uma unidade de decodificação de dados; A Figura 19 ilustra uma situação na qual a presente invenção é executada em um sistema de computador pelo uso de um disco flexível, no qual o método de codificação de comprimento variável ou o método de decodificação de comprimento variável de acordo com a primeira ou a segunda modalidade é armazenado; A Figura 20 é um diagrama de blocos que mostra toda a configuração de um sistema de provisão de conteúdo; A Figura 21 mostra um exemplo de um telefone móvel que usa um método de codificação de filme e um método de decodificação de filme; A Figura 22 é um diagrama de blocos de um telefone móvel; e A Figura 23 mostra um exemplo de um sistema para difusão digital. MELHOR MODO DE REALIZAÇÃO DA INVENÇÃO 1. Primeira Modalidade (1) Configuração de um 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 Figura 1 é um diagrama de blocos da configuração geral de um dispositivo de codificação de comprimento variável 1, de acordo com uma modalidade da presente invenção. O dispositivo de codificação de comprimento variável 1 é um dispositivo para a realização de uma codificação de comprimento variável em dados introduzidos e para a criação de fluxos de bits. Em particular, o dispositivo de codificação de comprimento variável 1 é caracterizado pelo fato de ele empregar uma 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 eficiência de codificação pela atualização dinâmica de uma tabela de parâmetro em resposta à probabilidade de símbolos realmente produzidos. Vários tipos de dados de entrada são possíveis para o dispositivo de codificação de comprimento variável 1, mas esta modalidade será descrita como uma na qual os dados de imagem são introduzidos. Em outras palavras, o dispositivo de codificação de comprimento variável 1 tem uma função que realiza uma codificação de entropia em sinais de imagem que foram convertidos em dados. Com o esquema MPEG em particular, os dados de imagem que são introduzidos no dispositivo de codificação de comprimento variável 1 são dados de imagem tais como coeficientes de DCT quantificados e vetores de movimento. O dispositivo de codificação de comprimento variável 1 inclui uma unidade de codificação de dados 2 e um codificador de cabeçalho 3. A unidade de codificação de dados 2 é um dispositivo para a realização de uma codificação aritmética em outros dados além de cabeçalhos para cada unidade de dados, e é provida com um codificador aritmético 7, uma unidade de atualização de tabela de probabilidade 8 e uma unidade de inicialização 9. Deve ser notado que no caso de dados de imagem, os dados de unidade referidos aqui são definidos como uma imagem ou uma fatia. 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 ou blocos, e quando a unidade de dados é uma fatia, os subdados são macroblocos ou blocos. O codificador aritmético 7 é um dispositivo para extração de dados gerados para a unidade de atualização de tabela de probabilidade 8, após dados serem introduzidos, e para a codificação de dados com base nas tabelas de probabilidade, isto é, as palavras de código, que são extraídos a partir da unidade de atualização de tabela de probabilidade 8. A unidade de atualização de tabela de probabilidade 8 tem uma função que atualiza as tabelas de probabilidade, e é um dispositivo para extração das tabelas de probabilidade, isto é, das palavras de código para o codificador aritmético 7, enquanto se atualizam as tabelas de probabilidade em resposta à probabilidade de dados gerados serem extraído a partir do codificador aritmético 7. A unidade de inicialização 9 é um dispositivo para extração de instruções de inicialização de tabela de probabilidade para a unidade de atualização de tabela de probabilidade 8. O codificador de cabeçalho 3 é um dispositivo para a codificação de dados de cabeçalho com um método fixo de codificação. Um método fixo de codificação se refere a um método no qual a palavra chave para cada código não muda durante a codificação, e inclui métodos de codificação de comprimento fixo e métodos fixos de codificação de comprimento variável. Devido ao fato de um método fixo de codificação ser usado, 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 mudam é referido como um método adaptativo de codificação. Além disso, nos métodos adaptativos de codificação, há métodos de codificação estáticos, nos quais as tabelas que indicam a relação entre códigos e as palavras de código que correspondem aos códigos são simplesmente alternados, e uma codificação dinâmica, na qual as palavras de código em si são sucessivamente atualizadas. Em outras palavras, isso significa que um método estático de codificação não é um método dinâmico de codificação (um método de codificação tal como uma codificação aritmética, no qual a relação correspondente entre códigos e as palavras de código que correspondem àqueles códigos é dinamicamente variada). Conseqüentemente, a relação de compressão pode ser melhorada com um método dinâmico de codificação mais do que com um método estático de codificação. O dispositivo de codificação de comprimento variável 1 ainda é provido com um codificador de tabela de probabilidade 6. O codificador de tabela de probabilidade 6 é um dispositivo para a codificação das tabelas de probabilidade que são extraídas da unidade de atualização de tabela de probabilidade 8 com um método fixo de codificação. Uma vez que ele usa um método fixo de codificação, as tabelas de probabilidade podem ser facilmente codificadas.
Um multiplexador 4 é um dispositivo para a multiplexação dos dados de cabeçalho codificados que são extraídos do codificador de cabeçalho 3, os outros dados codificados além dos de cabeçalho, que são extraídos do codificador aritmético 7, e dos dados de tabela de probabilidade codificados que são extraídos do codificador de tabela de probabilidade 6 e, também, para a geração de cadeias de códigos (fluxos de bits) e extração destas para uma linha de transmissão.
[2] Dispositivo de codificação de imagem padrão Aqui, o diagrama de blocos da Figura 2 será usado para ilustração de uma configuração de um dispositivo de codificação de imagem padrão 100. O dispositivo de codificação de imagem padrão 100 inclui uma unidade de estimativa/compensação de movimento (ME/MC) 102, um sub-trator 103, uma unidade de codificação de conversão 104, uma unidade de decodificação de conversão 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 imagem de entrada Picln, e gera dados de blocos preditos para blocos que devem 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 112 e uma memória de imagem 113. A unidade de estimativa de movimento 111 recebe as imagens de entrada Picln e calcula vetores de movimento MV, os quais são movimentos das imagens de entrada Picln para imagens reconstruídas na memória de imagem 113. A unidade de estimativa de movimento 111 extrai os vetores de movimento MV para a unidade de compensação de movimento 112, a memória de imagem 113 e para a unidade de codificação de entropia 107. Com base nos vetores de movimento MV da unidade de estimativa de movimento 111, a unidade de compensação de movimento 112 gera (compensa o movimento) dados de imagem como imagens de referência que correspondem aos movimentos das imagens reconstruídas armazenadas na memória de imagem 113, e extrai isto para o subtrator 103 e o adicionador 106. A memória de imagem 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 de uma codificação intraimagem, o valor de pixel da imagem de referência de movimento compensado é tomado como 0, e o subtrator 103 e o adicionador 106 extraem o dado de entrada como ele estiver, sem subtração ou adição. O subtrator 103 determina valores diferenciais entre dados alvo da imagem de entrada Picln e uma imagem de referência a partir da unidade de compensação de movimento 112, e extrai dados diferenciais correspondentes àqueles valores diferenciais para a unidade de codificação de conversão 104. A unidade de codificação de conversão 104 executa um processamento de compressão de dados nos dados diferenciais a partir do subtrator 103, e extrai dados comprimidos. A unidade de codificação de conversão 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 transformada de co-seno discreta (processamento de DCT) nos dados diferenciais a partir do subtrator 103, e extrai aqueles dados para a unidade de quantificação 115. O processamento de DCT é um tipo de processamento de transformação ortogonal no qual dados do domínio espa- ciai são convertidos em dados do domínio de freqüê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 extrai coeficientes de quantificação para a unidade de decodificação de conversão 105 e para a unidade de codificação de entropia 107. A unidade de decodificação de conversão 105 realiza um processamento de expansão de dados na saída da unidade de codificação de conversão 104, e extrai dados expandidos. A unidade de decodificação de conversão 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 da unidade de codificação de conversão 104 com a etapa de quantificação descrita acima, e extrai aquela para a unidade de transformação ortogonal inversa 117. A unidade de transformação ortogonal inversa 117 realiza um processamento de transformação de co-seno discreta inversa {processamento de IDCT) na saída da unidade de quantificação inversa 116, e extrai dados expandidos como sinais residuais preditivos para o adicionador 106. O IDCT é um processo no qual dados do domínio de freqüência são transformados em dados do domínio espacial.
Quando os macroblocos sofreram uma codificação de predição de compensação de movimento interquadro, o adicionador 106 extrai dados de imagem obtidos pela adição dos sinais residuais preditivos da unidade de decodificação de conversão 105 e as imagens de referência da unidade de compensação de movimento 112 para a memória de imagem 113, como imagens reconstruídas. A unidade de codificação de entropia 107 realiza uma codificação de entropia nos dados pós-DCT quantificados da unidade de codificação de conversão 104. A codificação de entropia se refere a uma codificação na qual uma cadeia de bits de "0"s e "T's é convertida em uma cadeia de bits mais curta, usando-se propriedades estatísticas da cadeia 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 probabilidade A Figura 3 é um fluxograma que mostra um esboço da operação da unidade de codificação de dados 2 e do codificador de tabela de probabilidade 6.
Na etapa S1, a unidade de inicialização 9 extrai uma instrução de inicialização para a unidade de atualização de tabela de probabilidade 8, e a unidade de atualização de tabela de probabilidade 8 estabelece uma tabela de probabilidade para cada unidade de dados, para valores iniciais. Nesta operação de inicialização, a unidade de inicialização 9 e a unidade de atualização de tabela de probabilidade 8 realizam uma inicialização de tabela de probabilidade com base nos dados de inicialização no cabeçalho. Dados que são comuns a todas as unidades de dados podem ser usados como dados de inicialização nas tabelas de probabilidade. Quando a unidade de dados é uma imagem, os exemplos de dados comuns efetivos para inicialização incluem tipos de codificação de imagem (distinção entre imagens intracodificadas, imagens codificadas preditivas e imagens codificadas bipreditivas) e valores iniciais de parâmetros de quantificação de imagem. Deve ser notado que dados comuns sem muita relação com inicialização incluem parâmetros tais como a ordem de codificação de imagem, a ordem de exibição de imagem, vetores de movimento e tamanho de imagem. Quando a unidade de dados é uma fatia, os exemplos incluem tipos de codificação de fatia (distinção entre fatias intracodificadas, fatias codificadas preditivas e fatias bipreditivas), e valores iniciais de parâmetros de quantificação de fatia.
Na etapa S2, o codificador aritmético 7 e a unidade de atualização de tabela de probabilidade 8 cooperam para a realização de uma codificação aritmética em subdados. Mais especificamente, com base na tabela de probabilidade extraída da unidade de atualização de tabela de probabilidade 8, o codificador aritmético 7 obtém probabilidades usadas na codificação de subdados a partir da tabela de probabilidade, e referencia àquelas probabilidades para a codificação dos subdados. Especificamente, a unidade de dados é de imagens ou fatias, e macroblocos ou blocos que são os sub- dados são codificados.
Na etapa S3, a tabela de probabilidade de dados gerados é atualizada pela unidade de atualização de tabela de probabilidade 8, de acordo com os dados gerados. Nesta modalidade, a tabela de probabilidade atualizada é usada quando a codificação aritmética for realizada nos próximos subdados.
Na etapa S4, é 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 para a etapa S2, e a operação descrita acima é repetida.
Na etapa S5, é determinado se é para codificar ou não a tabela de probabilidade, e se ela for para ser codificada, o procedimento prossegue para a etapa S6 e, se ela não for para ser codificada, a etapa S6 é pulada. O codificador aritmético 7 gera um indicador de valor inicial que serve para a identificação do resultado da determinação, e extrai aquilo juntamente com os dados codificados para o multiplexador 4. Deve ser notado que a tabela de probabilidade usada como valores iniciais não é codificada em casos tais como quando, por exemplo, a quantidade de dados até a próxima tabela de probabilidade ser inicializada for suficientemente grande (em outras palavras, a proporção da quantidade de dados requeridos para aprendizado para a quantidade total de dados que é ocupada é suficientemente pequena, e a eficiência de aprendizado, portanto, é boa), ou quando a tabela de probabilidade usada como valores iniciais é substancial ou completamente consistente com a tabela de probabilidade ótima obtida por aprendizado.
Na etapa S6, a tabela de probabilidade da unidade de atualização de tabela de probabilidade 8 é codificada pelo codificador de tabela de probabilidade 6. A eficiência de compressão é melhorada pelo método de codificação descrito acima porque, exceto pela primeira codificação de subdados, a tabela de probabilidade é atualizada com base nos valores de subdados codificados, e as probabilidades são obtidas a partir da tabela de probabilidade. Em particular, devido ao fato de a tabela de probabilidade a ser usada na codificação de subdados ser uma tabela de probabilidade atualizada pela codificação aritmética dos subdados prévios, a codificação pode ser obtida em tempo real e a velocidade de codificação será aumentada. Além disso, uma eficiência de compressão favorável pode ser obtida devido à correlação espacial e temporal das imagens.
Deve ser notado que a codificação aritmética pode ser realizada usando-se uma tabela de probabilidade obtida pela realização de uma codificação aritmética dos valores iniciais dos dados de unidade. Neste caso, há uma alta eficiência de compressão, mesmo quando há uma grande diferença entre os conteúdos dos dados de unidade e dos dados de unidade prévios. O fluxograma mostrado na Figura 4 é uma modificação do fluxo-grama mostrado na Figura 3, e uma situação na qual apenas uma porção da tabela de probabilidade é codificada quando a tabela de código da unidade de atualização de tabela de probabilidade 8 é codificada pelo codificador de tabela de probabilidade 6 na etapa S6. Nesta situação, a quantidade de códigos pode ser reduzida e, além disso, pelo emprego de um método no qual apenas as porções dos dados codificados com alta probabilidade na tabela de probabilidade obtida são codificadas, uma decodificação suficientemente correta pode ser obtida, quando da decodificação. Porções de dados com baixa probabilidade são inicializadas com valores iniciais. Na etapa S7, porções que não foram codificadas na tabela de probabilidade são inicializadas com valores iniciais. Isto é, quando apenas as porções importantes da tabela de probabilidade são codificadas, pela inicialização com valores iniciais das porções que não estão codificadas, todas as relações da tabela de probabilidade podem ser reguladas para valores específicos, quando a tabela de probabilidade for especificada para a codificação sem se confiar em valores da tabela de probabilidade até então, e as tabelas de probabilidade do dispositivo de codificação e do dispositivo de decodificação podem ser combinadas.
[2] Operação da unidade de codificação de cabeçalho O codificador de cabeçalho 3 codifica os dados de cabeçalho introduzidos, e extrai os dados de cabeçalho codificados para o multiplexa- dor 4.
[3] Operação de multiplexação O multiplexador 4 gera um fluxo de bits a partir dos dados que são extraídos do codificador aritmético 7, do codificador de cabeçalho 3 e do codificador de tabela de probabilidade 6, e extrai isto para uma linha de transmissão. A Figura 5 mostra um exemplo da estrutura de um fluxo de dados de imagem. Como mostrado na Figura 5, o fluxo é composto por áreas de dados comuns, tais como um cabeçalho e áreas de GOP (Grupo de Imagem). As áreas de GOP são compostas por áreas de dados comuns, tais como um cabeçalho e similar, e uma pluralidade de áreas de imagem. As áreas de imagem são compostas por áreas de dados comuns, tais como um cabeçalho e similar, e uma pluralidade de áreas de dados de fatia. As áreas de dados de fatia são compostas por áreas de dados comuns, tais como um cabeçalho e similar, e uma pluralidade de áreas de dados de macrobloco.
Além disso, o fluxo não tem de ser um fluxo de bits contínuo. Quando da transmissão em pacotes (os quais são unidades de dados finamente divididas), então, porções de cabeçalho e porções de dados podem ser separadas e transmitidas separadamente. Neste caso, as porções de cabeçalho e as porções de dados não são um fluxo de bits único tal como aquele mostrado na Figura 5. Entretanto, no caso de pacotes, apesar da se-qüência de transmissão para a porção de cabeçalho e a porção de dados não ser contínua, as porções de dados correspondentes e suas porções 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 que para o fluxo de bits ilustrado na Figura 5. A Figura 6 mostra um outro exemplo da estrutura de um fluxo de dados de imagem. A estrutura deste fluxo é basicamente a mesma estrutura que a estrutura do fluxo mostrada na Figura 5 e, portanto, apenas os pontos de diferença serão descritos abaixo. Na estrutura deste fluxo, os GOPs e as imagens não têm cabeçalhos. Apenas as fatias têm cabeçalhos. Os GOPs e as imagens têm vários parâmetros como dados comuns em suas porções de começo. Os parâmetros correspondem a um cabeçalho, mas a diferença é que os parâmetros também são efetivos para imagens subsequentes, à medida que os parâmetros não são atualizados. Por exemplo, isso significa que os parâmetros correspondentes a um cabeçalho de imagem são o cabeçalho de imagem para todas as imagens até parâmetros correspondentes ao próximo cabeçalho de imagem serem transmitidos. A Figura 7 mostra a estrutura de dados de um fluxo de bits que é extraído a partir do multiplexador 4, quando os dados de unidade descrito acima foram os dados de imagem de uma imagem. Uma imagem, geralmente, é composta por um cabeçalho e uma pluralidade de fatias, como subdados codificados. O cabeçalho indica o começo de dados codificados para uma imagem e é composto, primariamente, por dados comuns para cada fatia (por exemplo, o tipo de codificação de imagem [distinção entre imagens intracodificadas e imagens codificadas preditivas] e parâmetros tais como números que indicam a ordem de codificação de imagem ou a ordem de exibição).
Um indicador de valor inicial é colocado no cabeçalho. O indicador de valor inicial é um indicador para identificar se a tabela de probabilidade usada para os valores iniciais está codificada ou não. Se a tabela de probabilidade estiver codificada, o indicador é Ί" e se não estiver codificada, o indicador é "0".
Além disso, como mostrado na Figura 7(a), dados de tabela de probabilidade codificados são colocados no cabeçalho como valores iniciais de tabela de probabilidade. Quando a tabela de probabilidade não está codificada, os dados codificados de tabela de probabilidade não são extraídos a partir do codificador de tabela de probabilidade 6 para o multiplexador 4, cujo resultado, como mostrado na Figura 7(b) é que os dados codificados de tabela de probabilidade não são colocados no fluxo de bits.
Como descrito acima, o cabeçalho inclui porções de dados comuns (as quais estão, originalmente, na porção de cabeçalho) que são codificadas pelo codificador de cabeçalho 3, um indicador de valor inicial gerado pelo codificador aritmético 7, e dados codificados de tabela de probabilidade codificados pelo codificador de tabela de probabilidade 6. Mais particularmente, as porções de dados comuns são divididas em um lado de porção entrelinhamento e uma porção de dados de imagem, e são inseridos entre eles o indicador de valor inicial e os dados codificados de tabela de probabilidade, naquela ordem. A Figura 8 mostra a estrutura de dados de um fluxo de bits que é extraído a partir do multiplexador 4, quando a unidade de dados é uma fatia de dados de imagem. Uma fatia é geralmente composta por um cabeçalho, e uma pluralidade de blocos (ou macroblocos) como subdados codificados. O cabeçalho indica o começo dos dados codificados de uma fatia e é primariamente composto por dados comuns de cada fatia (parâmetros tais como um código de começo e uma escala de quantificação). Além disso, um indicador de valor inicial é colocado no cabeçalho. O indicador de valor inicial é um indicador para se identificar se a tabela de probabilidade usada como os valores iniciais é codificada ou não. Se a tabela de probabilidade estiver codificada, o indicador é Ί11 e se não codificada, o indicador é "0".
Além disso, como mostrado na Figura 8(a), os dados codificados de tabela de probabilidade são colocados no cabeçalho como valores iniciais de tabela de probabilidade. Quando a tabela de probabilidade não está codificada, os dados codificados de tabela de probabilidade não são extraídos do codificador de tabela de probabilidade 6 para o multiplexador 4, cujo resultado, como mostrado na Figura 8(b) é que os dados de tabela de probabilidade codificada não são colocados no fluxo de bits.
Como descrito acima, o cabeçalho inclui porções de dados comuns (as quais estão, originalmente, na porção de cabeçalho) que são codificadas pelo codificador de cabeçalho 3, um indicador de valor inicial gerado pelo codificador aritmético 7 e dados codificados de tabela de probabilidade codificados pelo codificador de tabela de probabilidade 6. Mais especificamente, as porções de dados comuns são divididas em um lado de porção de entrelinhamento e lados de dados de imagem, e são inseridos entre elas o indicador de valor inicial e os dados codificados de tabela de probabilidade, naquela ordem.
Deve ser notado que, nesta modalidade, a tabela de probabilidade em si foi codificada e embutida no cabeçalho como dados relacionados à tabela de probabilidade, mas, ao invés disto, uma informação indicando a tabela de probabilidade obtida (por exemplo, uma fórmula, um indicador indicando a tabela de probabilidade, ou uma informação indicando uma combinação destas) pode ser codificada e embutida no cabeçalho. Neste caso, a quantidade de codificação pode ser reduzida, porque a tabela de probabilidade em si não foi codificada.
Como um outro exemplo de informação indicando a tabela de probabilidade obtida, é possível usar uma porção de dados comuns no cabeçalho. Neste caso, a quantidade de codificação pode ser mais reduzida porque aqueles dados também funcionam como uma porção de dados comuns nos dados de unidade. Quando os dados de unidade são uma imagem, os exemplos de dados comuns incluem tipos de codificação de imagem (distinção entre imagens intracodificadas, imagens codificadas prediti-vas e imagens bipreditivas) e valores iniciais de parâmetros de quantificação de imagem. Deve ser notado que dados comuns sem muita relação com inicialização incluem parâmetros tais como a ordem de codificação de imagem, a ordem de exibição de imagem, vetores de movimento e tamanho de imagem. Quando a unidade de dados é uma fatia, os exemplos incluem tipos de codificação de fatia (distinção entre fatias intracodificadas, fatias codificadas preditivas e fatias bipreditivas), e valores iniciais de parâmetros de quantificação de fatia. Além disso, o indicador de valor inicial pode ser omitido ao se assegurar que os valores iniciais sejam sempre atualizados, isto é, ao se assegurar que os valores iniciais sempre sejam enviados. f3) Configuração de dispositivo de decodificação de comprimento variável [1] Dispositivo de decodificação de comprimento variável de acordo com a presente invenção A Figura 9 é um diagrama de blocos que mostra a configuração geral de um dispositivo de decodificação de comprimento variável 11 de acordo com uma modalidade da presente invenção. O dispositivo de decodificação de comprimento variável 11, por exemplo, é um dispositivo para a decodificação de dados que foram codificados pelo dispositivo de codificação de comprimento variável 1. Quando os objetos são dados de imagem, o dispositivo de decodificação de comprimento variável 11 tem as funções de realização de uma decodificação de entropia de dados e obtenção de dados de imagem transformados. O dispositivo de decodificação de comprimento variável 11 é provido, primariamente, com uma unidade de decodificação de dados 12 e uma unidade de decodificação de cabeçalho 13. A unidade de decodificação de dados 12 é um dispositivo para a realização de uma decodificação aritmética em outros dados além do cabeçalho de cada unidade de dados, e é provido com um decodificador aritmético 17, uma unidade de atualização de tabela de probabilidade 18 e uma unidade de inicialização 19. Deve ser notado que a unidade de dados referida aqui no caso de dados de imagem significa uma imagem ou uma fatia. O decodificador aritmético 17 é um dispositivo para extração de dados gerados para a unidade de atualização de tabela de probabilidade 18, após dados codificados serem introduzidos, e para a decodificação de dados codificados introduzidos com base nos dados de tabela de probabilidade, isto é, palavras de código, que são extraídos a partir da unidade de atualização de tabela de probabilidade 18. A unidade de atualização de tabela de probabilidade 18 tem a função de atualizar as tabelas de probabilidade, e é um dispositivo para extração da tabela de probabilidade, isto é, das palavras de código para o decodificador aritmético 17, enquanto se atualiza a tabela de probabilidade em resposta à tabela de probabilidade de dados gerados que é extraída do decodificador aritmético 17. A unidade de inicialização 19 é um dispositivo para a extração de uma instrução de inicialização a partir da tabela de probabilidade para a unidade de atualização de tabela de probabilidade 18. O decodificador de cabeçalho 13 é um dispositivo para a decodificação de dados de cabeçalho codificados com um método fixo de decodificação. 0 dispositivo de decodificação de comprimento variável 11 é ainda provido com um decodificador de tabela de probabilidade 16. O deco-dificador de tabela de probabilidade 16 é um dispositivo para a decodificação de dados codificados de tabela de probabilidade com um método fixo de decodificação.
Um demultiplexador 14 é um dispositivo para a demultiplexação e a extração de um fluxo de bits como dados de cabeçalho codificados, dados codificados além de cabeçalhos, e dados codificados de tabela de probabilidade.
[2] Dispositivo de decodificação de imagem padrão Aqui, o diagrama de blocos da Figura 10 será usado para ilustração de uma configuração interna de um dispositivo de decodificação de imagem padrão 200. O dispositivo de decodificação de imagem 200 inclui uma unidade de geração de dados de predição 202, uma unidade de decodificação de conversão 204, um adicionador 206 e uma unidade de decodificação de entropia 207. Deve ser notado que a unidade de decodificação de dados 12, que foi mencionada anteriormente, corresponde à unidade de decodificação de entropia 207. A unidade de decodificação de entropia 207 realiza uma decodificação de entropia do fluxo de dados que é introduzido, com base na tabela de probabilidade, e extrai aqueles dados para a unidade de decodificação de conversão 204 e para a unidade de geração de dados de predição 202. A decodificação de entropia é um processo na direção inversa da codificação de entropia, e se refere a uma decodificação aritmética nesta modalidade. 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 ilustração 213. As imagens extraídas do adicionador 206 são extraídas como imagens de referência e armazenadas na memória de imagem 213. Com base nos vetores de movimento MV decodificados pela unidade de decodificação de entropia 207, a unidade de compensação de movimento 212 gera dados de imagem como imagens de predição (compensação de movimento) correspondentes aos vetores de movimento MV das imagens de referência arma- zenadas na memória de imagem 213, e extrai isso para o adicionador 206. Deve ser notado que, quando da codificação de imagens intracodificadas, os valores de pixel da imagem de referência de movimento compensado são tomados como 0, e o adicionador 206 extrai os dados de entrada como estiverem, sem a realização de adições. Além disso, os vetores de movimento decodificados são armazenados na memória de imagem 213. A unidade de decodificação de conversão 204 realiza um processamento de expansão de dados na saída da unidade de decodificação de entropia 207, e extrai dados expandidos. A unidade de decodificação de conversão 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 saída da unidade de decodificação de entropia 207, e a extrai para a unidade de transformação ortogonal inversa 215. A unidade de transformação ortogonal inversa 215 realiza um processamento de transformação de co-seno discreta inversa (processamento de IDCT) na saída da unidade de quantificação inversa 214, e extrai os dados expandidos para o adicionador 206. O processamento de IDCT é um processo no qual dados do domínio de freqüência são transformados em dados do domínio espacial. O adicionador 206 extrai, como imagens de saída, os dados de imagem obtidos pela adição dos dados de imagem a partir da unidade de decodificação de conversão 204, e os dados de imagem adicionados com a imagem de estimativa da unidade de compensação de movimento 212 e, também, extrai o resultado para a memória de imagem 213. (A) Operação de dispositivo de decodificação de comprimento variável [1] Operação de demultiplexador O demultiplexador 14 demultiplexa um fluxo de bits, extrai dados codificados de cabeçalho para o decodificador de cabeçalho 13, extrai outros dados codificados além dos cabeçalhos para o decodificador aritmético 17, e extrai dados codificados de tabela de probabilidade para o decodificador de tabela de probabilidade 16, quando houver dados codificados de tabela de probabilidade. Deve ser notado que o decodificador de cabeçalho 13 extrai o indicador de valor inicial decodificado do cabeçalho para a unidade de inicialização 19.
[2] Operação de decodificador de cabeçalho O decodificador de cabeçalho 13 decodifica os dados codificados de cabeçalho que são extraídos do demultiplexador 14, e extrai dados de cabeçalho.
[3] Operação de unidade de decodificação de dados e codificador de tabela de probabilidade A Figura 11 é um fluxograma que mostra um esboço da operação da unidade de decodificação de dados 12 e do decodificador de tabela de probabilidade 16.
Na etapa S21, a unidade de inicialização 19 inicializa a unidade de atualização de tabela de probabilidade 18, de modo a regular uma tabela de probabilidade para valores iniciais.
Na etapa S22, com base no indicador de valor inicial embutido no cabeçalho, a unidade de inicialização 19 determina se a tabela de probabilidade está ou não codificada. Se for determinado que a tabela de probabilidade está codificada, o procedimento prossegue para a etapa S23, e se for determinado que a tabela de probabilidade não está codificada, o procedimento pula a etapa S23 e prossegue para a etapa S24.
Na etapa S23, a unidade de atualização de tabela de probabilidade 18 atualiza a tabela de probabilidade com a tabela de probabilidade que é extraída do decodificador de tabela de probabilidade 16. Os dados codificados de tabela de probabilidade que são introduzidos no decodificador de tabela de probabilidade 16, às vezes, é toda a tabela de probabilidade e, às vezes, uma porção da tabela de probabilidade. Mesmo quando apenas uma porção da tabela de probabilidade é codificada, se a porção correspondente aos dados codificados com uma alta probabilidade na tabela de probabilidade obtida estiver codificada, a uma decodificação apropriada pode ser obtida em uma operação de decodificação (que será descrita abaixo). Deve ser notado que, quando apenas uma porção da tabela de código é codificada, a tabela de probabilidade que não está codificada é inicializada com os mesmos valores que na etapa S21.
Deve ser notado, também, que quando uma informação indicando a tabela de probabilidade está codificada e não a tabela de probabilidade em si, aquela informação é decodificada primeiro, então, a unidade de atualização de tabela de probabilidade 18 seleciona a tabela de probabilidade indicada por aqueles dados.
Na etapa S24, o decodificador aritmético 17 e a unidade de atualização de tabela de probabilidade 18 cooperam para a realização da deco-dificação aritmética nos subdados. Especificamente, com base na tabela de probabilidade a partir da unidade de atualização de tabela de probabilidade 18, o decodificador aritmético 17 decodifica os subdados codificados e extrai dados. Quando a unidade de dados é uma imagem, por exemplo, as fatias são decodificadas. Na etapa S26, os dados gerados do decodificador aritmético 17 são extraídos para a unidade de atualização de tabela de probabilidade 18, e a unidade de atualização de tabela de probabilidade 18 reescre-ve a tabela de probabilidade com os dados gerados. A tabela de probabilidade atualizada é usada na decodificação dos próximos subdados na etapa S24.
Na etapa S25, é determinado se a decodificação de todos os subdados está completa. Se for determinado que a decodificação de todos os subdados não está completa, o procedimento retorna para a etapa S24, e a operação descrita acima é repetida. (5) Efetividade do método de codificação e do método de decodificação descritos acima [1] A eficiência de compressão é melhorada com os métodos de codificação e decodificação descritos acima, porque os subdados são codificados com base na tabela de probabilidade obtida pela codificação aritmética. Em outras palavras, com esses métodos de codificação e decodificação, a eficiência de compressão pode ser aumentada devido à alta eficiência de aprendizado, mesmo se a quantidade total de dados for pequena e, assim, a proporção da quantidade de dados codificados que seria requerida com métodos convencionais até uma codificação ótima ser obtida por aprendizado é considerável.
Além disso, devido ao fato de a tabela de probabilidade iniciali-zada ser codificada e colocada no cabeçalho dos dados codificados de unidade, os dados codificados de unidade podem ser apropriadamente decodificados, durante uma decodificação com aquela tabela de probabilidade como valores iniciais.
[2] A freqüência com a qual a tabela de probabilidade é codificada é apropriada com os métodos de codificação e decodificação descritos acima, uma vez que a tabela de probabilidade é codificada em unidades de imagem ou fatia. Em primeiro lugar, mesmo se uma porção dos dados codificados que devem ser usados no aprendizado for perdida em um erro de transmissão, e a mesma tabela de probabilidade que aquela do momento da codificação não puder ser reproduzida quando da decodificação, um estado no qual as imagens não podem ser exibidas não dura mais do que alguns segundos, já que a tabela de probabilidade codificada é decodificada com alta freqüência. Se a codificação em unidades de fluxo ou GOP, a freqüência de codificação da tabela de probabilidade é baixa, e quando uma porção de dados codificados que deve ser usada no aprendizado é perdida em um erro de transmissão e a tabela de probabilidade não pode ser reproduzida, é criada uma condição na qual as imagens não podem ser exibidas por mais do que alguns segundos. Em segundo lugar, não haverá uma grande quantidade de dados redundantes de tabela de probabilidade. Se a codificação for em unidades de bloco (ou macrobloco), a redundância dos dados de inicialização tornar-se-á grande demais.
[3] A eficiência de alta compressão para a parte principal dos dados de imagem é obtida com uma codificação aritmética nos métodos de codificação e decodificação descritos acima. Em contraste com isso, os cabeçalhos, os quais são dados comuns, são codificados de forma simples e estática com um método fixo de codificação. Mais particularmente, as porções de cabeçalho originais no cabeçalho são codificadas com um método fixo de codificação e os valores iniciais de tabela de probabilidade inseridos também são codificados com um método de codificação fixo. Devido ao fato de a eficiên- cia de compressão para cabeçalhos ser sempre baixa se comparado com a parte principal dos dados de imagem, não há problema particularmente grande em se usar um método fixo de codificação em termos da eficiência de compressão total. 2. Segunda Modalidade (1) Configuração de dispositivo de codificação de comprimento variável A Figura 12 é um diagrama de blocos da configuração geral de um dispositivo de codificação de comprimento variável 21, de acordo com uma modalidade da presente invenção. O dispositivo de codificação de comprimento variável 21 é um dispositivo para a realização de uma codificação de comprimento variável em dados de entrada e para a criação de fluxos de bits. Em particular, o dispositivo de codificação de comprimento variável 21 é caracterizado pelo fato de alternar entre uma pluralidade de tabelas de código de comprimento variável como um método primário de codificação. Um exemplo típico de codificação de comprimento variável é a codificação de Huffman, e a explanação a seguir usará a codificação de Huffman como um exemplo. Vários tipos de dados de entrada são possíveis para o dispositivo de codificação de comprimento variável 21, mas esta modalidade será descrita como uma na qual os dados de imagem são introduzidos. Isto é, o dispositivo de codificação de comprimento variável 21 tem uma função que realiza uma codificação de entropia nos sinais de imagem que foram convertidos em dados, Com o esquema MPEG em particular, os dados de imagem que são introduzidos no dispositivo de codificação de comprimento variável 21 são de coeficientes de DCT quantificados e vetores de movimento. O dispositivo de codificação de comprimento variável 21 inclui uma unidade de codificação de dados 22 e um codificador de cabeçalho 23. A unidade de codificação de dados 22 é um dispositivo para a realização de uma codificação de Huffman de outros dados além 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ódigo 28 e uma unidade de inicialização 29. Deve ser notado que os dados da unidade são compos- tos por uma pluralidade de conjuntos de subdados, e quando a unidade de dados é uma fatia, os subdados são fatias, macroblocos, ou blocos, e quando a unidade de dados é uma fatia, os subdados 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 imagem padrão 100 mostrado na Figura 2. O codificador de comprimento variável 27 é um dispositivo para a extração de dados gerados para a unidade de seleção de tabela de código 28, após dados serem introduzidos, e para a 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 alternadas pela unidade de seleção de tabela de código 28. A unidade de seleção de tabela de código 28 é um dispositivo para a extração de um sinal de seleção de tabela de código para uma chave 25, em resposta à probabilidade de dados gerados extraída do codificador de comprimento variável 27. A chave 25 é um dispositivo para alternância das tabelas de código de comprimento variável 30 que são usadas quando o codificador de comprimento variável 27 codifica dados, de acordo com o sinal de seleção de tabela de código que é extraído da unidade de seleção de tabela de código 28. A unidade de inicialização 29 é um dispositivo para a extração de uma instrução de inicialização do sinal de seleção de tabela de código para a unidade de seleção de tabela de código 28. A Figura 13 mostra exemplos específicos de tabelas de código 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 dados e cadeias de bits, que correspondem àqueles dados. As cadeias de bits comuns são empregadas nas porções brancas das tabelas de código de comprimento variável 30a a 30c (a partir dos dados 1 na tabela de código 30a, dos dados 2 na tabela de código 30b e dos dados 4 na tabela de código 30c). Além disso, cadeias de bits diferentes são empregadas em porções comuns (dados 0 na tabela de código 30a, dados 0 e 1 na tabela de código 30b, da- dos 0 a 3 na tabela de código 30c). Os dados das porções comuns são dados com uma probabilidade comparativamente alta. Se dados com uma alta probabilidade podem ser processados com um bit, a tabelas de código 30a é selecionada, se dados com uma alta probabilidade podem ser processados com dois bits, a tabela de código 30b é selecionada, e se códigos com uma alta probabilidade podem ser processados com três bits, a tabela de código 30c é selecionada. Em contraste com isto, os códigos das porções brancas são para dados com uma probabilidade relativamente baixa. Desta forma, pelo arranjo de cadeias de bit comuns para dados com uma probabilidade relativamente baixa, diferentes tabela de código de comprimento variável podem ser preparadas com uma pequena quantidade de dados, para redução de memória e, além disso, a operação de codificação tomar-se-á mais fácil. O codificador de cabeçalho 23 é um dispositivo para a codificação de dados de cabeçalho com um método fixo de codificação. O dispositivo de codificação de comprimento variável 21 ainda é provido com um codificador de sinal de seleção 26. O codificador de sinal de seleção 26 é um dispositivo para a codificação dos sinais de seleção de tabela de código que são extraídos da unidade de seleção de tabela de código 28 com um método fixo de codificação.
Um multiplexador 24 é um dispositivo para a multiplexação dos dados codificados de cabeçalho que são extraído a partir do codificador de cabeçalho 23, dos outros dados codificados além de cabeçalhos que são extraídos a partir do codificador de comprimento variável 27, e dos dados codificados de sinal de seleção que são extraídos a partir do codificador de sinal de seleção 26, e para a geração de cadeias de código (fluxos de bits) e extração desses para uma linha de transmissão. (2) Operação de dispositivo de codificação de comprimento variável [1] Operação de unidade de codificação de dados e dispositivo de codificação de sinal de seleção A Figura 14 é um fluxograma que mostra um esboço da operação da unidade de codificação de dados 22 e do codificador de sinal de se- leção 26.
Na etapa S31, a unidade de inicialização 29 extrai uma instrução de inicialização para a unidade de seleção de tabela de código 28, e a unidade de seleção de tabela de código 28 extrai um sinal de seleção de tabela de código para a chave 25. O resultado disto é que a chave 25 seleciona uma tabela de código de comprimento variável 30 como os valores iniciais da codificação dos dados de unidade. Nesta operação de inicialização, a unidade de inicialização 29 e a unidade de seleção de tabela de código 28 selecionam uma tabela de código de comprimento variável 30 com base nos dados de inicialização no cabeçalho. Deve ser notado que a linha por meio da qual os dados de cabeçalho são enviados para a unidade de inicialização 29 e a unidade de seleção de tabela de código 28 é omitida na Figura 12.
Na etapa S32, o codificador de comprimento variável 27 e a unidade de seleção de tabela de código 28 cooperam para a realização da codificação de Huffman de subdados. Mais especificamente, a unidade de seleção de tabela de código 28 extrai um sinal de seleção de tabela de código para a chave 25, com base em dados gerados até aquele ponto. Com base no sinal de seleção de tabela de código, a chave 25 alterna as tabelas de código 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ódigo de comprimento variável 30 selecionada. Além disso, cada unidade de dados é composta por uma pluralidade de conjuntos de subdados. Especificamente, fatias, macroblocos ou blocos são codificados como subdados, quando a unidade de dados é uma imagem, e macroblocos ou blocos são codificados como subdados quando a unidade de dados é uma fatia.
Na etapa S33, os subdados são extraídos para a unidade de seleção de tabela de código 28, e a unidade de seleção de tabela de código 28 atualiza a freqüência de geração de subdados, a qual indica qual tabela de código deve ser selecionada, quando a chave 25 em segunda realizar uma alternância. Nesta modalidade, esta tabela de código é usada quando uma codificação de comprimento variável é realizada no próximo subdado.
Na etapa S34, é determinado se a codificação de todos os sub- dados está concluída ou não. Se for determinado que a codificação de todos os subdados não está concluída, o procedimento retorna para a etapa S32 e a operação descrita acima é repetida.
Na etapa S35, é determinado se a informação que indica a tabela de código de comprimento variável 30 usada para os valores iniciais (isto é, os sinais de seleção de tabela de código) é para ser codificada ou não. Se esta informação for para ser codificada, o procedimento prossegue para a etapa S36, e se esta informação não for para ser codificada, a etapa S36 é pulada. Deve ser notado que a tabela de código de comprimento variável usada para os valores iniciais não está codificada em casos tais como quando, por exemplo, a quantidade de dados até a próxima tabela de código de comprimento variável ser inicializada é suficientemente grande (em outras palavras, a proporção da quantidade de dados requeridos para aprendizado para a quantidade total de dados é suficientemente pequena, e a eficiência de aprendizado, portanto, é boa), ou quando a tabela de código de comprimento variável usada como valores iniciais é consistente com a tabela de código ótima selecionada por aprendizado. O codificador de comprimento variável 27 gera um indicador de valor inicial para a identificação do resultado da determinação, e extrai isso juntamente com os dados codificados para o multiplexador 24.
Na etapa S36, os sinais de seleção de tabela de código por meio dos quais a unidade de seleção de tabela de código 28 indica a tabela de código de comprimento variável concernida são extraídos para o codificador de sinal de seleção 26. A eficiência de compressão para subdados é melhorada pelo método de codificação descrito acima, porque, exceto para a primeira codificação de subdados, a tabela de código de comprimento variável é selecionada com base nos valores de subdados codificados. Em particular, devido ao fato de a tabela de código de comprimento variável usada na codificação de subdados ser uma tabela de código de comprimento variável selecionada pela codificação de Huffman dos subdados prévios, a codificação pode ser obtida em tempo real, e a velocidade de codificação será aumentada. Além disso, uma eficiência de compressão favorável pode ser obtida com uma correlação espacial e temporal das imagens.
[2] Operação de unidade de codificação de cabeçalho O codificador de cabeçalho 23 codifica os dados de cabeçalho introduzidos e os extrai para o multiplexador 24.
[3] Operação de multiplexador O multiplexador 24 gera um fluxo de bits a partir dos dados que são extraídos do codificador de comprimento variável 27, do codificador de cabeçalho 23 e do codificador de sinal de seleção 26, e os extrai para uma linha de transmissão. A Figura 15 mostra estruturas de dados de fluxo de bits que são extraídas a partir do multiplexador 24, quando a unidade de dados for uma imagem de dados de imagem. Uma imagem é composta, geralmente, por um cabeçalho e uma pluralidade de fatias como subdados codificados. O cabeçalho indica o começo de dados codificados de uma imagem e tem dados comuns para cada fatia (por exemplo, o tipo de codificação de imagem [distinção entre imagens intracodificadas, imagens codificadas preditivas e imagens codificadas bipreditivas], e valores iniciais de parâmetros de quantificação de imagem). Deve ser notado que dados comuns sem muita relação com inicialização inclui parâmetros tais como a ordem de codificação de imagem, a ordem de exibição de imagem, vetores de movimento e tamanho de imagem.
Um indicador de valor inicial é colocado no cabeçalho. O indicador de valor inicial é um indicador para se identificar se a informação que indica a tabela de código de comprimento variável está ou não codificada. Se a informação que indica a tabela de código de comprimento variável estiver codificada, o indicador será "1" e se não estiver codificada, o indicador será "0".
Além disso, como mostrado na Figura 15(a), dados de sinal de seleção codificados (por exemplo, uma fórmula, um indicador indicando uma tabela de probabilidade, ou uma informação indicando uma combinação destes), que indica a tabela de código de comprimento variável a ser usada, são colocados no cabeçalho. Deve ser notado que quando a informação que indica a tabela de código de comprimento variável não está codificada, os dados codificados de sinal de seleção não são extraídos do codificador de sinal de seleção 26 para o multiplexador 24 e, assim, o resultado é que os dados codificados de sinal de seleção não são colocados no fluxo de bits, como mostrado na Figura 15(b).
Como descrito acima, o cabeçalho inclui porções de dados comuns (as quais estão originalmente na porção de cabeçalho) que são codificadas pelo codificador de cabeçalho 23, um indicador de valor inicial gerado pelo codificador de comprimento variável 27, e dados codificados de sinal de seleção codificados pelo codificador de sinal de seleção 26. Mais particularmente, as porções de dados comuns são divididas em um lado de porção de entrelinhamento e um lado de dados de imagem, e são inseridos entre elas o indicador de valor inicial e os dados codificados de sinal de seleção, naquela ordem. A Figura 16 mostra a estrutura de dados de um fluxo de bits que é extraído a partir do multiplexador 24, quando a unidade de dados é uma fatia de dados de imagem. Uma fatia, geralmente, é composta por um cabeçalho e por uma pluralidade de blocos (ou macroblocos) como subdados codificados. O cabeçalho indica o começo de dados codificados em uma fatia e é composto, primariamente, por dados comuns para cada fatia (parâmetros tais como código de começo e uma escala de quantificação).
Os exemplos de dados comuns incluem tipos de codificação de fatia (distinção entre fatias intracodificadas, fatias codificadas preditivas e fatias codificadas bipreditivas), e valores iniciais de parâmetros de quantificação de fatia.
Além disso, um indicador de valor inicial é colocado no cabeçalho. O indicador de valor inicial é um indicador para identificar se a informação que indica a tabela de código de comprimento variável está ou não codificada. Se a informação que indica a tabela de código de comprimento variável estiver codificada, o indicador será "1", e se não estiver codificada, o indicador será "0".
Além disso, como mostrado.na Figura 16(a), a informação codificada de sinal de seleção que indica a tabela de código de comprimento variável a ser usada está colocada no cabeçalho. Deve ser notado que quando a tabela de código de comprimento variável não está codificada, dados codificados de sinal de seleção não são extraídos do codificador de sinal de seleção 26 para o multiplexador24 e, assim, o resultado é que os dados codificados de sinal de seleção não são colocados no fluxo de bits, como mostrado na Figura 16(b).
Como descrito acima, o cabeçalho inclui porções de dados comuns (as quais estão originalmente na porção de cabeçalho) que são codificadas pelo codificador de cabeçalho 23, um indicador de valor inicial gerado pelo codificador de comprimento variável 27, e dados codificados de sinal de seleção codificados pelo codificador de sinal de seleção 26. Mais particularmente, as porções de dados comuns são divididas em um lado de porção de entrelinhamento e um lado de dados de imagem, e são inseridos entre elas o indicador de valor inicial e uma informação codificada de sinal de seleção, naquela ordem.
Deve ser notado que, nesta modalidade, a tabela de código de comprimento variável em si não foi codificada ou embutida no cabeçalho, mas, ao invés disso, uma informação codificada de sinal de seleção indicando a tabela de código de comprimento variável a ser usada foi embutida no cabeçalho. Conseqüentemente, a quantidade de codificação pode ser reduzida, porque a tabela de código de comprimento variável não está codificada.
Como um exemplo adicional de informação codificada de sinal de seleção indicando a tabela de código de comprimento variável a ser usada, é possível usar uma porção de dados comuns no cabeçalho. Neste caso, a quantidade de codificação pode ser mais reduzida, porque aqueles dados também funcionam como uma porção de dados comuns na unidade de dados. Quando a unidade de dados é uma imagem, os exemplos de dados comuns incluem tipos de codificação de imagem (distinção entre imagens intracodificadas, imagens codificadas preditivas e imagens codificadas bi- preditivas), e valores iniciais de parâmetros de quantificação de imagem. Deve ser notado que dados comuns sem muita relação com a inicialização incluem parâmetros tais como a ordem de codificação de imagem, a ordem de exibição de imagem, vetores de movimento e tamanho de imagem. Quando a unidade de dados é uma fatia, os exemplos incluem tipos de codificação de fatia (distinção entre fatias intracodificadas, fatias codificadas preditivas e fatias codificadas bipreditivas), e valores iniciais de parâmetros de quantificação de fatia.
Além disso, o indicador de valor inicial pode ser omitido ao se garantir que os valores iniciais sejam sempre atualizados. (3) Configuração de dispositivo de decodificação de comprimento variável A Figura 17 é um diagrama de blocos que mostra a configuração geral de um dispositivo de decodificação de comprimento variável 31 de acordo com uma modalidade da presente invenção. O dispositivo de decodificação de comprimento variável 31, por exemplo, é um dispositivo para a decodificação de dados que foram codificados pelo dispositivo de codificação de comprimento variável 21. Quando os objetos são dados um dado de imagem, o dispositivo de decodificação de comprimento variável 31 tem as funções de realização de uma decodificação de entropia de dados, e obtenção dos dados de imagem transformados. O dispositivo de decodificação de comprimento variável 31 inclui uma unidade de decodificação de dados 32 e uma unidade de decodificação de cabeçalho 33. A unidade de decodificação de dados 32 é um dispositivo para a realização de uma decodificação de Huffman em outros dados além do cabeçalho de unidade de dados, e é provida com um dispositivo de decodificação de comprimento variável 37 e um decodificador de sinal de seleção 36. Deve ser notado que a unidade de dados referida aqui, no caso de dados de imagem, significa uma imagem ou uma fatia. Além disso, a unidade de decodificação de dados 32 corresponde à unidade de decodificação de entropia 207 no dispositivo de codificação de imagem padrão 200 mostrado na Figura 10. 0 dispositivo de decodificação de comprimento variável 37 é um dispositivo para a decodificação de dados codificados com base nas palavras de código das tabelas de código de comprimento variável 30, as quais foram alternadas por uma chave 35. O decodificador de sinal de seleção 36 é um dispositivo para a decodificação dos dados codificados de sinal de seleção que são extraídos a partir de um demultiplexador 34 com um método fixo de decodificação, e extração dos mesmos para a chave 35. A chave 35 é um dispositivo para alternância das tabelas de código de comprimento variável 30 que são usadas quando o dispositivo de decodificação de comprimento variável 37 decodifica dados de acordo com o sinal de seleção de tabela de código que é extraído da unidade de decodificação de sinal de seleção 36. A unidade de inicialização 39 é um dispositivo para a extração de instruções de inicialização para a unidade de decodificação de sinal de seleção 36. O decodificador de cabeçalho 33 é um dispositivo para a decodificação de dados codificados de cabeçalho com um método fixo de decodificação.
Um demultiplexador 34 é um dispositivo para a demultiplexação e extração de um fluxo de bits como dados codificados de cabeçalho, outros dados codificados além de cabeçalhos, e dados codificados de sinal de seleção. (4) Operação de dispositivo de decodificação de comprimento variável [1 ] Operação de demultiplexador O demultiplexador 34 demultiplexa um fluxo de bits, e extrai dados codificados de cabeçalho para o decodificador de cabeçalho 33, extrai outros dados codificados além de cabeçalhos para o dispositivo de decodificação de comprimento variável 37 e extrai dados codificados de sinal de seleção para o decodificador de sinal de seleção 36, quando houver dados codificados de sinal de seleção. Deve ser notado que o decodificador de cabeçalho 33 extrai o indicador de valor inicial do cabeçalho para a unidade de inicialização 39.
[2] Operação de decodificador de cabeçalho O decodificador de cabeçalho 33 decodifica os dados codificados de cabeçalho que são extraídos a partir do demultiplexador 34 e extrai dados de cabeçalho.
[3] Operação de unidade de decodificação de dados A Figura 18 é um fluxograma que mostra o esboço da operação da unidade de decodificação de dados 32.
Na etapa S51, a unidade de inicialização 39 extrai instruções de inicialização para o decodificador de sinal de seleção 36, e o decodificador de sinal de seleção 36 extrai um sinal de seleção de tabela de código para a chave 35. O resultado é que a chave 35 seleciona a tabela de código de comprimento variável 30 como os valores iniciais para a decodificação dos dados de unidade.
Na etapa S52, a unidade de decodificação de comprimento variável 37 determina se a informação que indica a tabela de código de comprimento variável a ser usada está ou não codificada, com base no indicador de valor inicial embutido no cabeçalho. Se for determinado que a informação indicando a tabela de código de comprimento variável está codificada, o procedimento prossegue para a etapa S53, e se for determinado que ela não está codificada, o procedimento pula a etapa S53 e prossegue para a etapa S54.
Na etapa S53, a chave 35 seleciona a tabela de código de comprimento variável 30 que é indicada pelo sinal de seleção extraído do decodificador de sinal de seleção 36.
Na etapa S54, o dispositivo de decodificação de comprimento variável 37 realiza uma decodificação de Huffman nos subdados. Mais especificamente, com base na tabela de código de comprimento variável 30 selecionada pela chave 35, o dispositivo de decodificação de comprimento variável 37 decodifica os subdados codificados, e extrai dados. Quando dados de unidade são uma imagem, por exemplo, as fatias são decodificadas. Na etapa S56, o dispositivo de decodificação de comprimento variável 37 seleciona a tabela de código de comprimento variável 30 com os dados gerados através da chave 35. A tabela de código de comprimento variável selecionada 30 é usada na decodificação dos próximos subdados na etapa S54.
Na etapa S55, é determinado se a decodificação de todos os subdados está ou não concluída. Se for determinado que a decodificação de todos os subdados não está concluída, o procedimento retorna para a etapa S52, e a operação descrita acima é repetida. (5) Efetividade do método de codificação e do método de decodificação descritos acima [1] A eficiência de compressão é melhorada com os métodos de codificação e decodificação descritos acima, porque os subdados são codificados com base em uma tabela de código de comprimento variável obtida pela codificação de Huffman. Em outras palavras, com esses métodos de codificação e decodificação, a eficiência de compressão pode ser aumentada com uma eficiência de aprendizado alta, mesmo se a quantidade total de dados for pequena e, assim, a proporção da quantidade de dados codificados que seria requerida com métodos convencionais até uma codificação ótima ser obtida por aprendizado é considerável.
Além disso, devido ao fato de a informação que indica a tabela de código inicializada estar codificada e colocada no cabeçalho de um dado codificado de unidade, os dados codificados de unidade podem ser apropriadamente decodificados durante a decodificação com a tabela de código de comprimento variável indicada por aquela informação como os valores iniciais.
[2] A freqüência com a qual a informação que indica a tabela de código de comprimento variável é codificada é apropriada com os métodos de codificação e decodificação descritos acima, porque a tabela de código de comprimento variável é codificada em unidades de imagem ou de fatia. Em primeiro lugar, mesmo quando dados codificados de sinal de seleção são perdidos em um erro de transmissão, as imagens nunca serão impossíveis de se exibir por mais de alguns segundos, porque a tabela de probabilidade codificada é decodificada com alta freqüência. Quando da decodificação em unida- des de fluxo ou GOP, a informação que indica a tabela de código de comprimento variável está codificada a uma baixa freqüência e quando os dados codificados de sinal de seleção são perdidos em um erro de linha de transmissão, as imagens não poderão ser exibidas por mais de alguns segundos. Em segundo lugar, não haverá uma grande quantidade de informação redundante que indica a tabela de código de comprimento variável. Quando da codificação em unidades de bloco (ou macrobloco), os dados de inicialização redundante se tornam grandes demais.
[3] Uma alta eficiência de compressão para a parte principal dos dados de imagem é obtida com a codificação de Huffman alternando entre uma pluralidade de tabelas de código de comprimento variável nos métodos de codificação e decodificação descritos acima. Em contraste com isto, os cabeçalhos (os quais são dados comuns) são codificados com um método fixo de codificação. Mais particularmente, as porções de cabeçalho originais no cabeçalho são codificadas com um método fixo de codificação e uma informação inserida que indica a tabela de código de comprimento variável também é codificada com um método fixo de codificação. Devido ao fato da eficiência de compressão para cabeçalhos ser sempre baixa, se comparada com a parte principal dos dados de imagem, não haverá nenhum problema particularmente grande em se usar um método fixo de codificação em termos da eficiência de compressão geral. 3. Modalidade de meio de armazenamento Pelo armazenamento de um programa que executa o método de codificação de comprimento variável ou o método de decodificação de comprimento variável, mostrados nas modalidades descritas acima, em um meio de armazenamento tal como um disco flexível, é possível se executar facilmente os processos mostrados nas modalidades em um sistema de computador independente. A Figura 19 ilustra um caso no qual a presente invenção é executada em um sistema de computador que usa um disco flexível, no qual um método de codificação de comprimento variável ou um método de decodificação de comprimento variável das modalidades descritas acima é armaze- nado. A Figura 19(b) mostra uma vista frontal da aparência externa de um disco flexível, uma vista em seção transversal do mesmo e um disco flexível. A Figura 19(a) mostra um exemplo do formato físico de um disco flexível (o qual e a porção primária do meio de armazenamento). Um disco flexível FD é construído em um invólucro F, e uma pluralidade de trilhas Tr é formada concentricamente a partir da borda externa até a borda interna da superfície do disco. Cada trilha é dividida em uma orientação angular em 16 setores Se. Assim, com um disco flexível no qual o programa descrito acima é armazenado, o método de codificação de comprimento variável e o método de decodificação de comprimento variável serão gravados em regiões atribuídas do disco flexível FD, como o programa mencionado acima.
Além disso, a Figura 19(c) mostra uma configuração para gravação e reprodução do programa no disco flexível FD. Quando da gravação do programa no disco flexível FD, o método de codificação de comprimento variável ou o método de decodificação de comprimento variável é escrito em um sistema de computador Cs através de uma unidade de disco flexível. Além disso, quando da construção do método de codificação de comprimento variável do método de decodificação de comprimento variável em um sistema de computador por meio do programa no disco flexível, o programa é lido a partir do disco flexível por uma unidade de disco flexível e transferido para um sistema de computador.
Deve ser notado que um disco flexível é usado como um meio de armazenamento para ilustração da explanação acima, mas um disco ótico também pode ser usado de modo similar. Além disso, o meio de armazenamento não está limitado aos exemplos mencionados anteriormente, e à medida que seja um meio no qual uma gravação pode ser feita, tal como um CD-ROM, uma placa de memória ou um cassete de ROM, o programa pode ser executado da mesma forma. 4. Aplicações de exemplo da presente invenção e sistemas que usam esta O que vem a seguir é uma explanação de aplicações de exemplo dos métodos de codificação de filme e dos métodos de decodificação de filme nas modalidades descritas acima, bem como de sistemas que usam estes. A Figura 20 é um diagrama de blocos que mostra toda uma configuração de um sistema de provisão de conteúdo ex100 que efetua um serviço de provisão de conteúdo. As áreas para a provisão de serviços de comunicação estão divididas em tamanhos desejados, e estações de base ex107 a ex110 (as quais são estações sem fio fixas) são instaladas nas respectivas células. O sistema de provisão de conteúdo ex100 conecta, por exemplo, um provedor de serviços de Internet ex102 na Internet ex101, e uma rede de telefonia ex104, bem como vários dispositivos, tais como um computador ex111, um PDA (assistente pessoal digital) ex112, uma câmera ex113, um telefone móvel ex114 e um telefone móvel equipado com uma câmera ex115 através das estações de base ex107 a ex110.
Entretanto, o sistema de provisão de conteúdo ex100 não está limitado ao arranjo mostrado na Figura 17, e qualquer combinação desses dispositivos pode ser disposta e conectada. Além disso, os dispositivos podem ser conectados diretamente pela rede de telefonia ex104, e não através das estações de base ex107 a ex110 (as quais são estações sem fio fixas). A câmera ex113 é um dispositivo tal como uma câmera de vídeo digital, que é capaz de capturar uma imagem em movimento. Além disso, os telefones móveis podem ser dispositivos os quais operam em protocolos tais como PDC (Comunicações Digitais Pessoais), CDMA (Acesso Múltiplo de Divisão de Código), W-CDMA (Acesso Múltiplo de Divisão de Código de Banda Larga) ou GSM (Sistema Global para Comunicações Móveis), PHS (Sistema de Telefone Portátil Pessoal), e similares.
Além disso, um servidor de streaming ex103 é conectado à câmera ex113 através da estação de base ex109 e da rede de telefonia ex104, e um usuário usando a câmera ex113 pode fazer uma transmissão ao vivo, com base nos dados codificados. O processamento para a codificação dos dados capturados pode ser realizado pela câmera ex113 ou por um servidor ou similar, que transmite os dados. Além disso, os dados de filme captura- dos por uma câmera ex116 podem ser enviados através do computador ex111 para o servidor de streaming ex103. A câmera ex116 é um dispositivo, tal como uma câmera digital, que é capaz de capturar imagens paradas ou imagens em movimento. Neste caso, a codificação dos dados de filme pode ser realizada pela câmera ex116 ou pelo computador ex111. Além disso, o processo de codificação é realizado por um chip de LSI ex117 provido no computador ex111 ou na câmera ex116. Deve ser notado que um software para a codificação/decodificação de imagens pode ser incorporado em qualquer meio de armazenamento (tal como CD-ROMs, discos flexíveis e discos rígidos), que possa ser lido pelo computador ex111 ou similar. Além disso, os dados de filme podem ser transmitidos pelo telefone móvel equipado com uma câmera ex115. Quando isto ocorre, os dados de filme são dados codificados por um chip de LSI provido no telefone móvel ex115.
Com o sistema de provisão de conteúdo ex100, um conteúdo (por exemplo, imagens capturando um concerto ao vivo) que um usuário esteja capturando com a câmera ex113, a câmera ex116 ou similar, é codificado da mesma forma que nas modalidades descritas acima e transmitido para o servidor de streaming ex103, e o servidor de streaming ex103 cria um fluxo do conteúdo para um cliente que o tiver requisitado. Os exemplos de cliente incluem dispositivos capazes da decodificação dos dados codificados, tais como o computador ex111, o PDA ex112, a câmera ex113 e o telefone móvel ex114. Assim, o sistema de provisão de conteúdo ex100 é um sistema que torna possível que um cliente receba e reproduza dados codificados. Além disso, difusões digitais podem ser obtidas com o sistema, pelo recebimento, pela decodificação e reprodução de dados codificados em um cliente. O dispositivo de codificação de filme ou o dispositivo de decodificação de filme mostrado nas modalidades descritas acima pode ser usado nos dispositivos de codificação e decodificação que constituem este sistema. O exemplo a seguir descreve o uso de um telefone móvel com a presente invenção. A Figura 21 mostra um telefone móvel ex115 que usa o método de codificação de filme e o método de decodificação de filme descritos nas modalidades acima. O telefone móvel ex115 é provido com uma antena ex201 para o envio e a recepção de ondas de rádio para e a partir da estação de base ex110, uma unidade de câmera ex203, tal como uma câmera de CCD, que é capaz de capturar imagens em movimento e imagens paradas, uma unidade de exibição ex202, tal como um visor de cristal líquido que exibe dados de imagem decodificados capturados pela unidade de câmera ex203 ou recebidos pela antena ex201, uma unidade principal composta por teclas de operação ex204, uma unidade de saída de voz ex208, tal como alto-falantes para a extração de vozes, uma unidade de entrada de voz ex205, tal como um microfone para a introdução de voz, um meio de armazenamento ex207 para se salvarem dados codificados ou decodificados, tais como dados capturados de filmes ou de imagens paradas, dados de e-mails recebidos, e dados de filme ou dados de imagem parada, e um conector ex206, para permitir que o meio de armazenamento ex207 seja equipado no telefone móvel ex115. O meio de armazenamento ex207 é alojado em um dispositivo de memória flash, o qual é um tipo de EEPROM (Memória Apenas de Leitura Eletricamente Apagável e Programável) que é uma memória não-volátil alojada em um invólucro de plástico e capaz de ser eletricamente reescrita e apagada, tal como uma placa de SD. O telefone móvel ex115 será adicionalmente descrito com referência à Figura 22. Uma unidade de circuito de potência ex310, uma unidade de controle de entrada em operação ex304, uma unidade de codificação de imagem ex312, uma unidade de interface de câmera ex303, uma unidade de controle de LCD (visor de cristal líquido) ex302, uma unidade de decodificação de imagem ex309, uma unidade de multiplexação/demultiplexaçã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 ex305 são interconectadas através de um barramento de sincronização ex313 a uma unidade de controle principal ex311 que controla, de modo central, cada unidade da unidade principal provida com a unidade de exibição ex202 e as teclas de operação ex204.
Quando uma chamada termina ou a tecla de energia é ligada pelo usuário, a unidade de circuito de energia ex310 supre energia para cada unidade a partir da bateria, desse modo ativando o telefone móvel digital equipado com câmera ex115 para operação.
Com base no controle da unidade de controle principal ex311 (a qual inclui uma CPU, uma ROM, uma RAM ou similar), o telefone móvel ex115 converte os sinais de voz coletados durante um modo de chamada pela unidade de entrada de voz ex205 em dados de voz digitais, com a unidade de processamento de voz ex305, e esses sofrem um processamento de espectro amplo pela unidade de circuito de modem ex306 e são transmitidos através da antena ex201 pela unidade de circuito de recepção/envio ex301 após sofrerem uma conversão de digital para analógico e uma transformação de freqüência. Além disso, durante um modo de chamada de voz com o telefone móvel ex115, após a recepção de sinais recebidos pela antena ex201 serem amplificados e sofrerem uma transformação de freqüência, uma conversão de digital para analógico e um processamento de espectro de freqüência amplo inverso pela unidade de circuito de modem ex306, e serem convertidos em sinais de voz analógicos pela unidade de processamento de voz ex305, eles são extraídos através da unidade de saída de voz ex208.
Além disso, quando do envio de um e-mail em modo de transmissão de dados, os dados de texto do e-mail que são introduzidos pela operação das teclas de operação ex204 na unidade principal são enviados para a unidade de controle principal ex311, através da unidade de controle de entrada em operação ex304. A unidade de controle principal ex311 transmite os dados de texto para a estação de base ex110 através da antena ex201, após um processamento de espectro amplo ser executado nele pela unidade de circuito de modem ex306, e, então, sofrem uma conversão de digitais para analógicos e uma transformação de freqüência pela unidade de circuito de recepção/envio ex301.
Quando do envio de dados de imagem em um modo de transmissão de dados, os dados de imagem capturados pela unidade de câmera ex203 são supridos para a unidade de codificação de imagem ex312 através da unidade de interface de câmera ex303. Além disso, se os dados de imagem não estiverem sendo enviados, também é possível que o dados de imagem capturados pela unidade de câmera ex203 sejam diretamente exibidos na unidade de exibição ex202, através da unidade de interface de câmera ex303 e da unidade de controle de LCD ex302. A unidade de codificação de imagem ex312 é uma configuração provida com um dispositivo de codificação de imagem, descrito no presente pedido. Os dados de imagem supridos pela unidade de câmera ex203 são convertidos em dados de imagem codificados ao sofrerem uma codificação de compressão com o método de codificação usado no dispositivo de codificação de imagem mostrado nas modalidades descritas acima, e estes dados são enviadas para a unidade de multiplexação/demultiplexação ex308. Além disso, o dispositivo de telefone móvel ex115 simultaneamente envia voz coletada pela unidade de entrada de voz ex205, durante a captura de imagens pela unidade de câmera ex203 para a unidade de multiplexação/demultiplexação ex308, como dados de voz digitais através da unidade de processamento de voz ex305. A unidade de multiplexação/demultiplexação ex308 executa um processamento de multiplexação dos dados de imagem codificados supridos a partir da unidade de codificação de imagem ex312 e a unidade de processamento de voz ex305, e após os dados multiplexados obtidos como um resultado disto sofrerem um processamento de espectro amplo pela unidade de circuito de modem ex306, e sofrerem uma conversão de digital para analógico e uma transformação de freqüência pela unidade de circuito de recepção/envio ex301, estes dados são transmitidos através da antena ex201.
Quando do recebimento de dados de arquivo de filme ligados a um website ou similar em um modo de transmissão de dados, os sinais de recepção recebidos a partir da estação de base ex110 através da antena ex201 sofrem um processamento de espectro amplo inverso pela unidade de circuito de modem ex306, e os dados multiplexados obtidos como resultado disto são enviados para a unidade de separação de multiplexação ex308.
Além disso, na decodificação de dados multiplexados recebidos através da antena ex201, a unidade de separação de multiplexação ex308 divide os dados multiplexados pela demultiplexação dele em um fluxo de bits de dados de imagem codificados e em um fluxo de bits de dados codificados de voz, e os dados de voz são supridos para a unidade de processamento de voz ex305 juntamente com os dados de imagem codificados sendo supridos para a unidade de decodificação de imagem ex309 através do barra-mento de sincronização ex313.
Em seguida, a unidade de decodificação de imagem ex309 é uma configuração provida com um dispositivo de decodificação de imagem descrito no presente pedido, e dados de filme contidos em um arquivo de filme ligado a partir de um website, por exemplo, são exibidos pela decodificação do fluxo de bits dos dados de imagem codificados com um método de decodificação correspondente ao método de codificação mostrado nas modalidades acima, pela geração de dados de filme de reprodução, e pelo suprimento destes para a unidade de exibição ex202 através da unidade de controle de LCD ex302. Simultaneamente com isto, a unidade de processamento de voz ex305 converte os dados de voz em dados de voz analógicos e, então, suprem os mesmos para a unidade de saída de voz ex208, desse modo permitindo que os dados de voz contidos no arquivo de filme ligado a partir de um website, por exemplo, sejam reproduzidos.
Deve ser notado que não há limitação para os exemplos do sistema descrito acima. Nos últimos anos, uma difusão digital via satélite ou ondas terrestres se tornou uma questão, e pelo menos um dos dispositivos de codificação de imagem ou dos dispositivos de decodificação de imagem das modalidades descritas acima pode ser incorporado em sistemas que usam uma difusão digital como mostrado na Figura 23. Especificamente, os fluxos de bits codificados de dados de imagem são transmitidos através de ondas de rádio para um satélite de comunicações ou de difusão ex410 com uma estação de difusão ex409. O satélite de difusão ex410 que recebe os fluxos de bits emite ondas de rádio de difusão, e estas ondas de rádio são recebidas por uma antena ex406 de um domicílio equipado com instalações de recepção de difusão por satélite. O fluxo de bits codificado é decodificado por um dispositivo tal como uma televisão {dispositivo de recepção) ex401 ou uma caixa de decodificador (STB) ex407 ou similar, e este fluxo de bits decodificado é reproduzido. Além disso, é possível instalar um dispositivo de decodificação de imagem mostrado nas modalidades descritas acima em um dispositivo de reprodução ex403 que lê e decodifica fluxos de bits codificados gravados em um meio de armazenamento ex402, tal como um CD ou um meio de armazenamento em DVD. Neste caso, os sinais de imagem reproduzidos são exibidos em um monitor ex404. Além disso, também é possível uma configuração na qual o dispositivo de decodificação de imagem é instalado em uma caixa de decodificador ex407 conectada a um cabo ex405 para televisão a cabo, ou uma antena para uma difusão por satélite/baseada em terra ex406, e este é reproduzido em um monitor de televisão ex408. Aqui, o dispositivo de decodificação de imagem pode ser incorporado na televisão, ao invés de na caixa de decodificador. Além disso, é possível que sinais do satélite ex410, a partir da estação de base ex107, ou similar, sejam recebidos por um automóvel ex412 provido com uma antena ex411, e filmes possam ser reproduzidos em um dispositivo de exibição no automóvel ex412, tal como um sistema de navegação de carro ex413.
Além disso, é possível codificar sinais de imagem com um dispositivo de codificação de imagem mostrado nas modalidades descritas acima, e gravar estes em um meio de armazenamento. Os exemplos específicos incluem gravadores de DVD que gravam sinais de imagem em um disco de DVD ex421, e um gravador ex420 tal como um gravador de DVD, que grava para um disco rígido. Além disso, a gravação pode ser para uma placa SD ex422. Se o gravador ex420 for provido com um dispositivo de decodificação de imagem mostrado nas modalidades descritas acima, os sinais de imagem gravados no disco de DVD ex421 ou na placa SD ex422 podem ser reproduzidos e exibidos no monitor ex408.
Deve ser notado que a configuração do sistema de navegação de carro ex413 pode ser tal que, por exemplo, a unidade de câmera ex203, a unidade de interface de câmera ex303 e o dispositivo de codificação de imagem ex312, como mostrado na Figura 19, sejam excluídos, e isto também é possível, de modo similar, para o computador ex111 e a televisão (dispositivo de recepção) ex401.
Além disso, o terminal do telefone móvel descrito acima ex114 não apenas pode ser um tipo de terminal de envio/recepção tendo ambos um dispositivo de codificação e um dispositivo de decodificação, mas também pode ser um terminal de envio apenas com um dispositivo de codificação, ou um terminal de recepção apenas com um dispositivo de decodificação (três tipos de instalação).
Desta forma, o método de codificação de filme e o método de decodificação de filme mostrados nas modalidades descritas acima podem ser usados em qualquer um dos dispositivos ou sistemas descritos acima, e obterem os efeitos desejados dessas modalidades ao fazê-lo. 5. Outras modalidades. A presente invenção não está limitada às modalidades descritas acima, e várias outras modalidades e modificações são possíveis, sem se desviar do escopo da presente invenção.
REIVINDICAÇÕES

Claims (11)

1. Método de codificação de comprimento variável que codifica dados de unidade compostos por uma pluralidade de subdados, com referência a uma tabela de probabilidade, compreendendo as etapas de: regulagem (S1, S7) da tabela de probabilidade para valores iniciais com base em um valor inicial de um parâmetro de quantização dos dados de unidade; codificação (S6) de informação relacionada à inicialização da tabela de probabilidade, a informação indicando a tabela de probabilidade iniciada; obtenção de parâmetros de codificação a serem usados na codificação dos subdados a partir da tabela de probabilidade; colocação da informação codificada relacionada à inicialização da tabela de probabilidade em uma posição na qual a informação codificada pode ser obtida antes dos dados de unidade codificados; e caracterizado pelo fato de que ainda compreende: realização de uma codificação aritmética (S2) dos subdados com referência aos parâmetros de codificação obtidos; e atualização (S3) da tabela de probabilidade com base em um valor dos subdados codificados.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação relacionada à inicialização da tabela de probabilidade é a própria tabela de probabilidade.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que somente uma parte da tabela de probabilidade é codificada na codificação da informação relacionada com a inicialização da tabela de probabilidade.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que a parte da tabela de probabilidade é uma parte da tabela de probabilidade que corresponde aos dados codificados com uma alta probabilidade.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que a informação codificada relacionada com a inicialização da tabela de probabilidade é colocada em uma parte de dados comuns para os dados de unidade na colocação de informação codificada.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que a informação relacionada à inicialização da tabela de parâmetros é codificada com um método fixo de codificação na codificação de informação relacionada à inicialização da tabela de probabilidade.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que ainda compreende as etapas de: determinar se uma informação relacionada ou não a inicialização da tabela de probabilidade está codificada; e colocar um indicador que identifica um resultado da determinação em uma posição na qual o indicador pode ser obtido, antes dos dados de unidade codificados.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que os dados da unidade são dados de imagem.
9. Método, de acordo com qualquer uma das reivindicações 1 a 8, caracterizado pelo fato de que os dados da unidade são dados de fatia.
10. Meio de armazenamento que armazena um programa para execução de uma codificação de comprimento variável em um computador, em que a codificação de comprimento variável é um método de codificação de comprimento variável que codifica dados de unidade compostos por uma pluralidade de subdados, com referência a uma tabela de probabilidade, compreendendo as etapas de: regulagem (S1, S7) a tabela de probabilidade para valores iniciais com base em um valor inicial do parâmetro de quantização dos dados de unidade; codificação (S6) de uma informação relacionada à inicialização da tabela de probabilidade, a informação indicando à tabela de probabilidade iniciada; obtenção de parâmetros de codificação a serem usados na codificação dos subdados a partir da tabela de probabilidade; colocação da informação codificada relacionada à inicialização da tabela de probabilidade em uma posição na qual a informação codificada pode ser obtida antes dos dados de unidade codificados; caracterizado pelo fato de que ainda compreende: realização de uma codificação aritmética (S2) dos subdados com referência aos parâmetros de codificação obtidos; e atualização (S3) da tabela de probabilidade com base em um valor dos subdados codificados.
11. Dispositivo de codificação de comprimento variável que codifica dados de unidade compostos por uma pluralidade de subdados, com referência a uma tabela de parâmetros, compreendendo: um meio de inicialização (8, 9) que regula a tabela de probabilidade para valores iniciais com base em um valor inicial de um parâmetro de quantização dos dados de unidade; um meio de codificação de informação de inicialização (6) que codifica uma informação relacionada à inicialização da tabela de probabilidade, a informação indicando a tabela de probabilidade iniciada; um meio de obtenção de parâmetro (7) que obtém parâmetros de codificação a serem usados na codificação de subdados a partir da tabela de probabilidade; um meio de colocação de informação codificada (4) que coloca a informação codificada relacionada à inicialização da tabela de probabilidade em uma posição na qual a informação codificada pode ser obtida antes dos dados de unidade codificados; caracterizado pelo fato de que ainda compreende: um meio de codificação de subdados (7) que executa uma codificação aritmética dos subdados com referência aos parâmetros de codificação obtidos; e um meio de atualização de tabela de probabilidade (8) que atualiza a tabela de probabilidade com base em um valor dos subdados.
BRPI0303661A 2002-03-27 2003-03-13 método e dispositivo de codificação de comprimento variável e meio de armazenamento BRPI0303661B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002088345 2002-03-27
PCT/JP2003/003035 WO2003081784A1 (en) 2002-03-27 2003-03-13 Variable length encoding method, variable length decoding method, storage medium, variable length encoding device, variable length decoding device, and bit stream

Publications (2)

Publication Number Publication Date
BR0303661A BR0303661A (pt) 2004-07-13
BRPI0303661B1 true BRPI0303661B1 (pt) 2016-09-27

Family

ID=28449441

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0303661A BRPI0303661B1 (pt) 2002-03-27 2003-03-13 método e dispositivo de codificação de comprimento variável e meio de armazenamento

Country Status (16)

Country Link
US (3) US6954156B2 (pt)
EP (4) EP3098969B1 (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) DK2765708T3 (pt)
ES (4) ES2493616T3 (pt)
HU (2) HUE030635T2 (pt)
MX (1) MXPA03010827A (pt)
PT (3) PT2391019E (pt)
SI (3) SI2391019T1 (pt)
TR (1) TR201906516T4 (pt)
WO (1) WO2003081784A1 (pt)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400727B2 (en) * 1997-07-03 2008-07-15 Matsushita Electric Industrial Co., Ltd. Information embedding method, information extracting method, information embedding apparatus, information extracting apparatus, and recording media
US7286670B2 (en) * 1999-11-09 2007-10-23 Chaoticom, Inc. Method and apparatus for chaotic opportunistic lossless compression of data
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
KR100701810B1 (ko) * 2002-04-26 2007-04-02 가부시키가이샤 엔티티 도코모 신호 부호화 방법, 신호 복호 방법, 신호 부호화 장치, 신호 복호 장치, 및 컴퓨터로 판독가능한 기록매체
FI114071B (fi) * 2003-01-13 2004-07-30 Nokia Corp Kuvien käsitteleminen rajoitetulla bittimäärällä
EP1604483A2 (en) * 2003-03-07 2005-12-14 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
AU2005294353A1 (en) * 2004-10-05 2006-04-20 Vectormax Corporation Method and system for authorizing 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
US8660188B2 (en) * 2006-08-08 2014-02-25 Panasonic Corporation Variable length coding apparatus, and method and integrated circuit of the same
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 パナソニック株式会社 符号量推定装置、符号量推定方法、符号量推定プログラムおよび、符号量推定集積回路
JP5702377B2 (ja) 2009-06-29 2015-04-15 トムソン ライセンシングThomson Licensing コード化されていないシンタックスに対する適応型確率更新のための方法および装置
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
CN102754437B (zh) 2009-10-29 2015-03-18 松下电器(美国)知识产权公司 图像编码方法、图像编码装置及集成电路
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
CN101794219B (zh) * 2009-12-30 2012-12-12 飞天诚信科技股份有限公司 .net文件的压缩方法和装置
CN101770367B (zh) * 2009-12-30 2012-10-31 飞天诚信科技股份有限公司 .net文件压缩方法和装置
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
MY179769A (en) * 2010-07-20 2020-11-13 Fraunhofer Ges Forschung Audio encoder, audio decoder,method for encoding and 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
KR101823188B1 (ko) 2011-05-04 2018-01-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 기지국을 위한 스펙트럼 할당 기법
US9635374B2 (en) 2011-08-01 2017-04-25 Apple Inc. Systems and methods for coding video data using switchable encoders and decoders
US9130711B2 (en) 2011-11-10 2015-09-08 Microsoft Technology Licensing, Llc Mapping signals from a virtual frequency band to physical frequency bands
US8989286B2 (en) 2011-11-10 2015-03-24 Microsoft Corporation Mapping a transmission stream in a virtual baseband to a physical baseband with equalization
JP6641857B2 (ja) * 2015-10-05 2020-02-05 富士通株式会社 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
US20170180757A1 (en) * 2015-12-18 2017-06-22 Blackberry Limited Binarizer selection for image and video coding
US10869032B1 (en) 2016-11-04 2020-12-15 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
US10484701B1 (en) 2016-11-08 2019-11-19 Amazon Technologies, Inc. Rendition switch indicator
US10264265B1 (en) 2016-12-05 2019-04-16 Amazon Technologies, Inc. Compression encoding of images
US10681382B1 (en) 2016-12-20 2020-06-09 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
US10944423B2 (en) 2019-03-14 2021-03-09 International Business Machines Corporation Verifying the correctness of a deflate compression accelerator
CN112399181B (zh) * 2019-08-19 2022-08-26 华为技术有限公司 图像编解码的方法、装置和存储介质

Family Cites Families (13)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
BRPI0303661B1 (pt) método e dispositivo de codificação de comprimento variável e meio de armazenamento
JP5401530B2 (ja) 符号化復号化装置
BRPI0303566B1 (pt) “Método de codificação de imagem, método de decodificação de imagem e fluxo de bits”
BRPI0305554B1 (pt) “Dispositivo de gerenciamento de memória em um aparelho para a codificação ou a decodificação de imagens em movimento e método de gerenciamento de memória empregado por um aparelho para a codificação ou a decodificação de imagens em movimento”
JP4197262B2 (ja) 可変長符号化方法、可変長復号化方法、記憶媒体、可変長符号化装置、可変長復号化装置、及びビットストリーム
JP4197345B2 (ja) 可変長復号化方法、記憶媒体、及び可変長復号化装置
HK1196720B (en) Variable length encoding and decoding system and variable length encoding and decoding method

Legal Events

Date Code Title Description
B25D Requested change of name of applicant approved

Owner name: PANASONIC CORPORATION (JP)

Free format text: NOME ALTERADO DE: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.

B07A Technical examination (opinion): publication of technical examination (opinion) [chapter 7.1 patent gazette]
B25A Requested transfer of rights approved

Owner name: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AME

B06A Notification to applicant to reply to the report for non-patentability or inadequacy of the application [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B09X Decision of grant: republication

Free format text: PARECER DE DEFERIMENTO (9.1) NOTIFICADO NA RPI 2373 DE 28/06/2016 REPUBLICADO POR CONTER INCORRECOES

B16A Patent or certificate of addition of invention granted

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 27/09/2016, OBSERVADAS AS CONDICOES LEGAIS.