BRPI0304543B1 - Método de codificação de comprimento variável e método de decodificação de comprimento variável - Google Patents
Método de codificação de comprimento variável e método de decodificação de comprimento variável Download PDFInfo
- Publication number
- BRPI0304543B1 BRPI0304543B1 BRPI0304543-9A BRPI0304543A BRPI0304543B1 BR PI0304543 B1 BRPI0304543 B1 BR PI0304543B1 BR PI0304543 A BRPI0304543 A BR PI0304543A BR PI0304543 B1 BRPI0304543 B1 BR PI0304543B1
- Authority
- BR
- Brazil
- Prior art keywords
- coefficients
- coefficient
- variable
- decoding
- length
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/93—Run-length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
- Vehicle Body Suspensions (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Automatic Focus Adjustment (AREA)
- Studio Devices (AREA)
Abstract
"método de codificação de comprimento variável e método de decodificação de comprimento variável". a presente invenção refere-se a um método de codificação de comprimento variável para a codificação de coeficientes em cada bloco, os quais são obtidos pela realização de uma transformação de freqüência em dados de imagem de uma imagem em movimento por bloco, tendo um tamanho predeterminado, e compreende: uma etapa de varredura de coeficiente para varredura dos coeficientes no bloco em uma ordem predeterminada; e uma etapa de codificação para codificação dos coeficientes varridos na etapa de varredura de coeficiente em códigos de comprimento variável, em uma ordem predeterminada pela alternância de uma pluralidade de tabelas a serem usadas para a codificação. aqui, uma direção de alternância entre as tabelas pode ser unidirecional. também, a codificação pode ser uma codificação não-aritmética.
Description
(54) Título: MÉTODO DE CODIFICAÇÃO DE COMPRIMENTO VARIÁVEL E MÉTODO DE DECODIFICAÇÃO DE COMPRIMENTO VARIÁVEL (51) Int.CI.: H04N 19/136 (52) CPC: H04N 19/136 (30) Prioridade Unionista: 13/12/2002 JP 363106/2002, 19/04/2002 JP 118483/2002, 26/04/2002 JP 126029/2002 (73) Titular(es): GODO KAISHA IP BRIDGE 1 (72) Inventor(es): SATOSHI KONDO; SHINYA KADONO; MAKOTO HAGAI; KIYOFUMI ABE
Relatório Descritivo da Patente de Invenção para MÉTODO DE CODIFICAÇÃO DE COMPRIMENTO VARIÁVEL E MÉTODO DE DECODIFICAÇÃO DE COMPRIMENTO VARIÁVEL.
Campo da Invenção
A presente invenção refere-se a um método de codificação de comprimento variável para codificar coeficientes em cada bloco, os quais são obtidos pela realização de uma transformação de freqüência nos dados de imagem de uma imagem em movimento por bloco, tendo um tamanho predeterminado, bem como a um método de decodificação de comprimento variável e similares.
Técnica Anterior
Na codificação de uma imagem em movimento, uma compressão de volume de informação é usualmente realizada pela utilização de redundâncias em ambas as direções espacial e temporal, as quais a imagem em movimento tem. Usualmente, uma transformação em um domínio de freqüência é usada como um método de utilização da redundância espacial, enquanto uma codificação de predição inter-imagem é usada como um método de utilização da redundância temporal.
Em um método de codificação de imagem em movimento, o qual está presentemente sob o processo de padronização, uma quantificação é realizada em cada bloco de tamanho 4x4 pixels, de modo a gerar coeficientes após uma transformação de freqüência ser realizada nesse bloco, com vistas a melhorar a eficiência de codificação de um método de codificação de uma imagem em movimento MPEG-4 convencional. Então, uma varredura é realizada começando nos componentes de corrente contínua em direção a componentes de alta freqüência, e combinações de um valor R (Série (Run), a ser simplesmente referida como R a partir deste ponto), indicando o número de coeficientes nulos consecutivos, e de um valor de coeficiente L (Nível, a ser referido simplesmente como L a partir deste ponto), subseqüente a ele, são gerados, de modo que uma seqüência de combinação (R, L) seja feita. Após a transformação desta (R, L) em um número de código, usando-se uma tabela de código predeterminada, uma codificação é realiza
da pela transformação do número de código em um código VLC, adicionalmente usando-se uma tabela de Codificação de Comprimento Variável (VLC) única. Na tabela de código, um número de código menor é usualmente atribuído conforme uma probabilidade de ocorrência fica mais alta. Por exemplo, um número de código pequeno é atribuído a uma combinação onde ambos R e L indicam valores pequenos, uma vez que sua probabilidade de ocorrência é alta. Em certas tabelas de código VLC, um código VLC, tendo um comprimento de código curto é atribuído a um número de código pequeno (veja uma referência à ISO/IEC 14496-2: Information technology Coding of audio-visual objects - Part 2: Visual 7.4.1, pp. 119-120, 1999.12).
Entretanto, usar o método existente engendra uma diminuição na eficiência de codificação, uma vez que o comprimento de código fica mais longo, conforme o número de coeficientes nulos consecutivos R e um valor de coeficiente L ficam maiores. Usualmente, a diminuição na eficiência de codificação é óbvia, quando um valor de componente de baixa freqüência é codificado, uma vez que o valor de coeficiente L, como um valor de componente de baixa freqüência, é grande.
Especificamente, como resultado da atribuição de uma tabela de VLC única, de acordo com a probabilidade de ocorrência e um código de comprimento variável único, de acordo com um par de R e L, o valor de coeficiente L indicando um valor grande é transformado em um código de comprimento variável que tem um comprimento de código muito longo. Mesmo quando se codifica L separadamente de R (codificação unidimensional de L), usando-se uma tabela de VLC única, o mesmo problema ocorre como no caso de codificação de R e L como um par.
Descrição da Invenção
A presente invenção é concebida tendo em vista os problemas acima, e tem por objetivo prover o método de codificação de comprimento variável e o método de decodificação de comprimento variável que podem melhorar a eficiência de codificação quando o valor de codificação L for codificado.
De modo a se obter o objetivo acima, o método de codificação de comprimento variável, de acordo com a presente invenção, codifica coeficientes em cada bloco, os quais são obtidos pela realização de uma transformação de freqüência nos dados de imagem de uma imagem em movimento por bloco, tendo um tamanho predeterminado, o método compreen5 dendo: uma etapa de varredura de coeficiente para varredura dos coeficientes em cada referido bloco em uma ordem predeterminada; e uma etapa de codificação para codificação dos coeficientes varridos na etapa de varredura de coeficiente nos códigos de comprimento variável em uma ordem predeterminada pela alternância entre uma pluralidade de tabelas a serem usadas para a codificação.
Assim, é possível melhorar a eficiência de codificação, uma vez que o código de comprimento variável do comprimento de código baseado no coeficiente pode ser adaptado a cada tabela. Em outras palavras, é possível encurtar um comprimento de código notadamente pela alternância en15 tre as tabelas, dependendo do coeficiente, de modo que um coeficiente possa ser codificado em um código de comprimento variável, cujo comprimento de código é mais curto em uma tabela do que na outra tabela, quando o coeficiente for pequeno, e um coeficiente pode ser codificado em um código de comprimento variável, cujo comprimento de código é mais curto em uma ta20 bela do que na outra, quando o coeficiente for grande.
Aqui, uma direção de alternância entre a pluralidade de tabelas pode ser unidirecional. Assim, a alternância freqüente das tabelas é impedida e, desse modo, o número de vezes de alternância entre as tabelas diminui. Portanto, é possível melhorar a eficiência de codificação. Por exemplo, uma vez que uma área de trabalho na memória é de espaço limitado, apenas uma tabela a ser usada é armazenada. Neste caso, leva tempo para se começar a codificação do próximo coeficiente, uma vez que leva-se tempo para ler a próxima tabela da ROM e expandí-la na área de trabalho a cada vez que a tabela for alternada. A alternância desta forma unidirecional entre as tabelas é eficaz na limitação do número de vezes de alternância entre as tabelas e na redução do tempo total necessário para a codificação do próximo coeficiente.
............ :···: i/l
Na etapa de codificação, a codificação pode ser realizada em cada referido bloco pela alternância entre a pluralidade de tabelas, e os coeficientes podem ser coeficientes não-nulos que são tornados unidimensionais.
É preferível que a codificação seja uma codificação nãoaritmética. Assim, quando uma tabela a ser usada para a codificação for determinada, a codificação de coeficientes em códigos de comprimento variável pode ser realizada por uma referência à tabela.
Também é preferível que cada uma das tabelas tenha uma taxa diferente de mudança no comprimento de código para coeficientes, de modo que um comprimento de código para um coeficiente menor fique mais longo em uma ordem ascendente de números atribuídos, respectivamente, a cada uma das tabelas, e um comprimento de código para um coeficiente maior não fique mais longo na mesma ordem ascendente dos referidos números. Também, é preferível que cada uma das tabelas seja construída, de modo que uma taxa de aumento no comprimento de código, correspondente a um aumento nos coeficientes, fique menor em uma ordem ascendente de números atribuídos a cada uma das tabelas. Assim, o melhoramento na eficiência de codificação pode ser seguramente realizado, uma vez que uma faixa, na qual um comprimento de código fica mais curto em cada tabela, pode ser atribuída.
Também, é preferível que, na etapa de codificação, cada uma das tabelas seja alternada com base em um valor limite predeterminado para um valor absoluto do coeficiente. Assim, é fácil avaliar uma temporização para alternância entre as tabelas e, desse modo, a eficiência de codificação pode ser obtida.
Também é preferível que, na etapa de varredura de coeficiente, os coeficientes sejam varridos começando-se em componentes de alta freqüência em direção a componentes de baixa freqüência. Uma vez que há uma grande tendência do valor absoluto do coeficiente gradualmente ficar maior em torno de 1, é fácil, portanto, determinar uma tabela para a codificação do primeiro coeficiente no bloco, uma estrutura de cada tabela e um
« ·· • · 1 • ···· valor limite.
Mais ainda, também é preferível que, na etapa de codificação, uma tabela usada para a codificação de um coeficiente corrente a ser codificado seja alternada para uma tabela, cujo número seja maior do que o nú5 mero atribuído à referida tabela, quando o valor absoluto do coeficiente corrente exceder a um valor limite. Assim, a eficiência de codificação poderá ser melhorada, uma vez que o comprimento de código poderá ser encurtado quando o próximo coeficiente for codificado.
O método de decodificação de comprimento variável, de acordo com a presente invenção, decodifica códigos de comprimento variável gerados por coeficientes de codificação em cada bloco, os quais são obtidos pela realização de uma transformação de freqüência em dados de imagem de uma imagem em movimento por bloco, tendo um tamanho predeterminado, o método compreendendo: uma etapa de decodificação para decodificação dos códigos de comprimento variável em cada referido bloco em coeficientes em uma ordem predeterminada, pela alternância entre uma pluralidade de tabelas a serem usadas para decodificação; e uma etapa de geração de coeficiente para geração de coeficientes em cada referido bloco, com base nos coeficientes gerados na etapa de decodificação. Assim, códigos codificados com taxas de compressão altas podem ser apropriadamente decodificados.
Aqui, uma direção de alternância entre a pluralidade de tabelas pode ser unidirecional.
Na etapa de decodificação, a decodificação pode ser realizada em cada referido bloco pela alternância entre a pluralidade de tabelas.
Os coeficientes podem ser coeficientes não-nulos que são tornados unidimensionais.
A decodificação pode ser uma decodificação não aritmética.
Cada uma das tabelas pode ter uma taxa de mudança diferente no comprimento de código para coeficientes, de modo que um comprimento de código, para um valor de coeficiente menor fique mais longo em uma ordem ascendente de números atribuídos, respectivamente, a cada uma das tabelas, e um comprimento de código, para um valor de coeficiente maior
.......Η : ί ·: :··:·. · /1 .·..··..· ··· ......π 7 não fique mais longo na mesma ordem ascendente dos referidos números.
Cada uma das tabelas pode ser construída, de modo que uma taxa de aumento no comprimento de código, correspondente a um aumento nos coeficientes, fique menor em uma ordem ascendente de números atribuídos, respectivamente, a cada uma das tabelas.
Na etapa de decodificação, cada uma das tabelas pode ser alternada com base em um valor limite predeterminado para um valor absoluto do coeficiente.
Na etapa de geração de coeficiente, os coeficientes podem ser varridos em uma ordem começando em componentes de alta freqüência em direção a componentes de baixa freqüência, de acordo com uma ordem na qual uma seqüência dos coeficientes é organizada.
Mais ainda, na etapa de codificação, um código de comprimento variável seguinte pode ser decodificado pela alternância de uma tabela usada para a decodificação de um código de comprimento variável corrente a ser decodificado para uma tabela, cujo número é maior do que o número atribuído à referida tabela, quando um valor absoluto do coeficiente decodificado exceder um valor limite.
A presente invenção pode ser realizada não apenas como um método de codificação de comprimento variável e um método de decodificação de comprimento variável, mas também como um aparelho de codificação de comprimento variável e um aparelho de decodificação de comprimento variável, tendo etapas características como unidades incluídas no método de codificação de comprimento variável e no método de decodificação de comprimento variável, como um método de codificação de imagem em movimento e um método de decodificação de imagem em movimento, usando-se as etapas características incluídas no método de codificação de comprimento variável e no método de decodificação de comprimento variável, e como um programa tendo um computador executando essas etapas. Esse programa pode ser distribuído com segurança através de um meio de gravação, tal como um CD-ROM e um meio de transmissão, tal como a Internet.
»· ······ · • · · · · · ·· ·· · ·· · ··
Breve Descrição dos Desenhos
A Figura 1 é um diagrama de blocos que mostra uma estrutura funcional de um aparelho de codificação que usa um método de codificação de comprimento variável e um método de codificação de imagem em movimento de acordo com uma primeira modalidade da presente invenção.
A Figura 2 é um diagrama de blocos que mostra, em detalhes, uma estrutura funcional de uma unidade de codificação de comprimento variável mostrada na Figura 1.
As figuras 3A e 3B são diagramas padrão para a descrição do processamento executado por uma unidade de geração de seqüência RL mostrada na Figura 2.
As Figuras 4A e 4B são diagramas padrão para a descrição de uma seqüência RL gerada pela unidade de geração de seqüência RL, e do processamento de reordenação executado por uma unidade de reordenação mostrada na Figura 2.
A Figura 5 é um diagrama que mostra um exemplo de uma tabela de código, mantida por uma unidade de armazenamento de tabela mostrada na Figura 2.
A Figura 6 é um diagrama que mostra um exemplo de uma tabela de VLC, mantida pela unidade de armazenamento de tabela mostrada na Figura 2.
As figuras 7A e 7B são diagramas padrão para a descrição de um outro exemplo da seqüência RL, gerada pela unidade de geração de seqüência RL, e do processamento de reordenação executado pela unidade de reordenação.
A Figura 8 é um diagrama de blocos que mostra uma estrutura funcional de um aparelho de decodificação que usa um método de decodificação de comprimento variável e um método de decodificação de imagem em movimento, de acordo com uma segunda modalidade da presente invenção.
A Figura 9 é um diagrama de blocos que mostra, em detalhes, uma estrutura funcional de uma unidade de decodificação de comprimento • · · ·
variável mostrada na Figura 8.
As figuras 10A e 10B são diagramas padrão para a descrição de uma seqüência RL, gerada por uma unidade de conversão de código mostrada na Figura 9, e um processamento de reordenação executado por uma unidade de reordenação mostrada na Figura 9.
A Figura 11 é um diagrama padrão para a descrição do processamento executado por uma unidade de geração de coeficiente mostrada na Figura 9.
As figuras 12A e 12B são diagramas padrão para a descrição de 10 um outro exemplo da seqüência de RL, gerada pela unidade de conversão de código, e do processamento de reordenação executado pela unidade de reordenação.
A Figura 13 é um diagrama de blocos que mostra uma estrutura de um aparelho de codificação de acordo com uma terceira modalidade da presente invenção.
A Figura 14 é um diagrama de blocos que mostra uma estrutura interna da unidade de codificação de comprimento variável, de acordo com a terceira modalidade da presente invenção.
As figuras 15A e 15B são diagramas padrão que mostram, es20 quematicamente, uma seqüência RL extraída da unidade de geração de seqüência RL, de acordo com a terceira modalidade da presente invenção.
As Figuras 16A, 16B e 16C são diagramas padrão que mostram, esquematicamente, a seqüência RL extraída pela unidade de geração de seqüência RL, de acordo com a terceira modalidade da presente invenção.
A Figura 17 é um diagrama de transição que mostra um método de alternância entre tabelas de probabilidades de acordo com a terceira modalidade da presente invenção.
A Figura 18 é um diagrama de exibição de conteúdo de tabela de probabilidade que mostra o conteúdo de uma tabela de probabilidade, de acordo com a terceira modalidade da presente invenção.
A Figura 19 é um diagrama de blocos que mostra uma estrutura de um aparelho de decodificação de imagem, de acordo com uma quarta
·· · ····· »· · • · ·· ····· •· ·· ··' · · · modalidade da presente invenção.
A Figura 20 é um diagrama de blocos que mostra uma estrutura interna de uma unidade de decodificação de comprimento variável, de acordo com a quarta modalidade da presente invenção.
A Figura 21 é um diagrama de tabela que mostra um exemplo de uma tabela binária.
A Figura 22 é um diagrama de blocos que mostra uma estrutura funcional de um aparelho de codificação, ao qual são aplicados um método de codificação de comprimento variável e um método de codificação de ima10 gem em movimento, de acordo com uma quinta modalidade da presente invenção.
A Figura 23 é um diagrama de blocos que mostra, em detalhes, uma estrutura funcional de uma unidade de codificação de comprimento variável mostrada na Figura 22.
As figuras 24A e 24B são diagramas que mostram um exemplo de seqüência L e seqüência R, geradas por uma unidade de geração de seqüência RL mostrada na Figura 23.
A Figura 25 é um diagrama que mostra um exemplo estrutural para cada tabela de VLC, armazenada em uma unidade de armazenamento mostrada na Figura 23.
A Figura 26 é um diagrama que mostra um exemplo estrutural de uma tabela de valor limite, armazenada na unidade de armazenamento mostrada na Figura 23.
A Figura 27 é um fluxograma que mostra o processamento de 25 atribuição de códigos de comprimento variável, executado por uma unidade de atribuição de código mostrada na Figura 23.
A Figura 28 é um diagrama que mostra uma relação entre a tabela de VLC usada para a codificação e um valor limite.
A Figura 29 é um diagrama padrão que mostra como a unidade 30 de atribuição de código realiza um processamento de codificação.
A Figura 30 é um diagrama de blocos que mostra uma estrutura funcional de um aparelho de decodificação, usando um método de decodifi-
• ···· ·· · ····· • · · · · · · • ·· ······· • ·· ····· ··« • · · · · · · β cação de comprimento variável e um método de decodificação de imagem em movimento, de acordo com uma sexta modalidade da presente invenção.
A Figura 31 é um diagrama de blocos que mostra em detalhes, uma estrutura funcional de uma unidade de decodificação de comprimento variável mostrada na Figura 30.
As figuras 32A, 32B e 32C são ilustrações para um caso de realização do método de codificação de imagem em movimento, de acordo com as primeira, terceira e quinta modalidades ou do método de decodificação de imagem em movimento, de acordo com as segunda, quarta e sexta modali10 dades em um sistema de computador, usando-se um disco flexível, no qual um programa para a execução desses métodos é gravado.
A Figura 33 é um diagrama de blocos que mostra uma configuração completa de um sistema de envio de conteúdo para a realização de um serviço de envio de conteúdo.
A Figura 34 é uma ilustração que mostra um telefone celular que usa o método de predição de imagem em movimento, o aparelho de codificação de imagem em movimento e o aparelho de decodificação de imagem em movimento de acordo com a presente invenção.
A Figura 35 é um diagrama de blocos que mostra uma estrutura de um telefone celular, de acordo com a presente invenção.
A Figura 36 é um diagrama de blocos que mostra uma configuração completa de um sistema de difusão digital, de acordo com a presente invenção.
Melhor Modo para a Realização da Invenção
O que vem a seguir descreve as modalidades de acordo com a presente invenção, com referência aos diagramas.
(Primeira Modalidade)
A Figura 1 é um diagrama de blocos que mostra uma estrutura funcional de um aparelho de codificação, ao qual o método de codificação de imagem em movimento, de acordo com a presente invenção, é aplicado. A primeira modalidade ilustra a estrutura funcional em um caso de codificação intra-imagem de uma imagem de entrada, usando-se o método de codifica• · · · • · · ··· · · ···· · • · · · · · · • · · · · · · ··· · · · · · • · · · · · · • ····· · · · • · · · · · • · · · · • · · ··· ·· · ····· ····· · • · · · · · · • ·· · ·· ção de imagem em movimento, de acordo com a presente invenção.
Como mostrado no diagrama, um aparelho de codificação 100a é compreendido por uma unidade de conversão de bloco 110, uma unidade de transformação de freqüência 120, uma unidade de quantificação 130 e uma unidade de codificação de comprimento variável 140. Cada unidade compondo esse aparelho de codificação 100a é realizada com uma CPU, uma ROM para o armazenamento, de antemão, de um programa ou dados executados pela CPU, e uma memória para a provisão de uma área de trabalho, quando o programa for executado, bem como para o armazenamento temporário da imagem de entrada, ou similar.
A unidade de conversão de bloco 110 divide a imagem de entrada em blocos, cada um dos quais sendo dimensionado com 4 (horizontal) x 4 (vertical) pixels, e extrai cada bloco de pixel para a unidade de transformação de freqüência 120.
A unidade de transformação de freqüência 120 realiza uma transformação de freqüência nos blocos de pixel introduzidos, e os converte em coeficientes de freqüência e, então, extrai os coeficientes de freqüência transformados para a unidade de quantificação 130.
A unidade de quantificação 130 realiza um processamento de quantificação nos coeficientes de freqüência introduzidos. O processamento de quantificação, aqui, significa um processamento equivalente à divisão de um ooeficiente de freqüência por um valor de quantificação predeterminado. Mais ainda, um valor de quantificação varia, dependendo, geralmente, de um bloco de pixel e de uma banda de freqüência. Os coeficientes de freqüência quantificados são introduzidos na unidade de codificação de comprimento variável 140.
A unidade de codificação de comprimento variável 140 realiza uma codificação de comprimento variável nos valores dos coeficientes de freqüência no bloco, cujo tamanho é predeterminado (4x4 pixels).
A Figura 2 é um diagrama de blocos que mostra, em detalhes, uma estrutura funcional da unidade de codificação de comprimento variável 140.
Α unidade de codificação de comprimento variável 140 inclui uma unidade de geração de seqüência RL 141, uma unidade de reordenação 142, uma unidade de atribuição de código 143 e uma unidade de armazenamento de tabela 144.
Os coeficientes de freqüência quantificados extraídos da unidade de quantificação 130 são introduzidos na unidade de geração de seqüência RL 141.
A unidade de geração de seqüência RL 141, primeiramente, converte os coeficientes de freqüência quantificados em coeficientes torna10 dos unidimensionais, usando um método de varredura predeterminado. A unidade de geração de seqüência RL 141, então, gera uma seqüência (a ser referida como seqüência RL a partir deste ponto) constituída por uma combinação de um valor R, indicando o número de coeficientes nulos consecutivos, e um valor de coeficiente não-nulo L subseqüente a ele (a ser referido como valor RL a partir deste ponto). Um exemplo disto é explicado com referência às Figuras 3 e 4.
A Figura 3A é um diagrama que mostra os coeficientes de freqüência quantificados em um bloco, extraídos a partir da unidade de quantificação 130. Aqui, o coeficiente de freqüência superior esquerdo denota um componente de corrente contínua, e componentes de freqüência na direção horizontal tornam-se maiores em direção à direita, enquanto os coeficientes de freqüência na direção vertical tornam-se maiores para baixo. A Figura 3B é um diagrama que mostra um método de varredura para tornar unidimensional os coeficientes de freqüência quantificados. A unidade de geração de seqüência RL 141 torna unidimensional os coeficientes, pela realização de uma varredura começando no domínio de baixa freqüência em direção ao domínio de alta freqüência.
Um resultado de geração de uma seqüência RL para os valores de coeficientes tornados unidimensionais, realizado pela unidade de geração de seqüência RL 141, é mostrado na Figura 4A. Na Figura 4A, EOB (Fim De Bloco) é um identificador que indica que todos os valores de coeficiente subseqüentes no bloco são 0. Geralmente, um valor de coeficiente tem mais propensão a ser 0 no domínio de alta freqüência. Portanto, pela realização de uma varredura começando no domínio de baixa freqüência em direção ao domínio de alta freqüência, é possível reduzir a quantidade de informação incluída na seqüência RL. A seqüência RL gerada é introduzida na unidade de reordenação 142.
A unidade de reordenação 142 classifica a seqüência RL introduzida na ordem inversa. Entretanto, o EOB não será reordenado. A Figura 4B mostra um status após a reordenação ser realizada. A seqüência RL assim reordenada é introduzida na unidade de atribuição de código 143.
A unidade de armazenamento de tabela 144 mantém, de antemão, uma tabela (uma tabela de código, veja referência à Figura 5) correlacionando valores RL com números de código atribuídos aos valores RL, bem como vários tipos de tabelas (tabelas de VLC na Figura 6) correlacionando números de código com códigos de comprimento variável, e similares.
A unidade de atribuição de código 143 atribui os códigos de comprimento variável a cada par na seqüência RL, usando as tabelas armazenadas na unidade de armazenamento de tabela 144.
Para se ser mais preciso, a unidade de atribuição de código 143, primeiramente, atribui os números de código aos valores RL. Aqui, a conversão dos valores RL nos números de código é operada usando-se uma tabela de código predeterminada (veja referência à Figura 5), armazenada na unidade de armazenamento de tabela 144.
A Figura 5 é um diagrama que mostra um exemplo da tabela de código.
A tabela de código é construída fazendo-se uso de uma tendência dos números de código menores serem usualmente atribuídos conforme a probabilidade dos valores RL se tornarem maiores e a probabilidade aumenta conforme os valores RL indiquem os valores menores. Com o uso desta tabela, por exemplo, o número de código 2 é atribuído ao primeiro valor RL (0, -1). Do segundo ao quinto valor RL (1, 1), (0, -2), (0, 3) e (0, 4), os números de código 3, 8, 13 e 15 são atribuídos, respectivamente.
Então, a unidade de atribuição de código 143 converte os núme30
···· ros de código nos códigos de comprimento variável. Para a conversão dos números de código nos códigos de comprimento variável, uma pluralidade de tabelas de VLC (veja referência à Figura 6), armazenada na unidade de armazenamento de tabela 144, é usada.
A Figura 6 é um diagrama que mostra um exemplo da tabela de
VLC.
Na primeira modalidade, dois tipos de tabelas de VLC são armazenados.
A primeira tabela de VLC 1 e a segunda tabela de VLC 2 são construídas de modo que o código de comprimento variável se torne mais longo, conforme o número de código se tornar maior. A tabela de VLC 1 é construída de modo que o código de comprimento variável se torna mais curto, conforme o número de código ficar menor, se comparado com a tabela de VLC 2, ao passo que a tabela de VLC 2 é construída de modo que o código de comprimento variável se torne mais curto, conforme o número de código ficar maior, se comparado com a tabela de VLC 1. Especificamente, um código curto é atribuído a um número de código pequeno na tabela de VLC 1 e um código curto é atribuído a um número de código grande na tabela de VLC 2.
A tabela de VLC 1 é usada para o primeiro valor RL. Neste caso, o número de código para o primeiro valor RL é 2; portanto, o código de comprimento variável é 011. A conversão dos números de código nos códigos de comprimento variável é realizada subseqüentemente, e quando um valor absoluto de L excede um valor limite, a tabela de VLC 2 é usada para os valores RL seguintes. Assuma que um valor limite do valor absoluto de L seja 2, o valor absoluto de L excede o valor limite no quarto valor RL (0, 3). Portanto, a tabela de VLC 1 é usada do primeiro ao quarto valor RL e a tabela de VLC 2 é usada para o quinto valor RL e após isso.
Aqui, o valor absoluto de L novamente cai abaixo do valor limite no sétimo valor RL (1,2); contudo, a tabela não é alternada para a tabela de VLC 1, e a tabela de VLC 2 é usada para a conversão. Isso significa que uma direção de alternância entre as tabelas é unidirecional. Aqui, unidireci30
• ·· ···· ·· · onal significa que a tabela usada uma vez não é para ser usada de novo. Assim, a alternância freqüente das tabelas é impedida e, desse modo, o número de vezes de alternância entre as tabelas diminuí. O valor absoluto de L, geralmente, tende a aumentar quando os coeficientes são tornados uni5 dimensionais, começando em componentes de alta freqüência em direção a componentes de baixa freqüência. Portanto, em muitos casos, uma vez que o valor absoluto de L vá além do valor limite, é apenas o coeficiente que cai abaixo do valor limite, mesmo que o valor absoluto de L novamente caia abaixo do valor limite. Portanto, é possível melhorar a eficiência de codifica10 ção ao não usar de novo as tabelas usadas, mesmo quando o valor absoluto de L novamente cair abaixo do valor limite. Por exemplo, usualmente, apenas a tabela a ser usada em seguida é armazenada em uma área de trabalho, uma vez que a área de trabalho na memória é de espaço limitado. Neste caso, leva tempo até o próximo coeficiente começar a ser codificado, uma vez que leva tempo ler a próxima tabela da ROM e expandí-la na área de trabalho, a cada vez que a tabela for alternada. Desta forma, alternar de forma unidirecional as tabelas é eficaz na limitação do número de vezes de alternância entre as tabelas, e na abreviação de um tempo total necessário para se começar a codificação do próximo coeficiente.
A unidade de geração de seqüência RL 141 realiza uma varredura nos valores de coeficiente em uma seqüência de valor de coeficiente, começando nos componentes de baixa freqüência em direção aos componentes de alta freqüência, ao passo que a unidade de atribuição de código 143, subseqüentemente, realiza uma codificação de comprimento variável, começando do fim da seqüência de valor de coeficiente. Isso facilita decisões rápidas sobre uma tabela a ser usada para a codificação do primeiro valor de coeficiente no bloco, uma estrutura de cada tabela e um valor limite, uma vez que o valor absoluto do coeficiente tende a se tornar maior em torno de 1.
Assim, o método de codificação de comprimento variável, de acordo com a primeira modalidade, realiza uma varredura nos coeficientes de freqüência no bloco, começando no domínio de baixa freqüência em dire-
ção ao domínio de alta freqüência. Então, uma seqüência de valores RL, cada um dos quais sendo uma combinação de um valor R, indicando o número de coeficientes nulos consecutivos, e um valor de coeficiente L, indicando um coeficiente não-nulo, é gerado para os coeficientes tornados unidimensionais. Os valores RL são convertidos nos códigos de comprimento variável em uma ordem inversa à ordem para varredura. Especificamente, os valores RL podem ser convertidos diretamente. Uma pluralidade de tabelas de VLC é preparada para a conversão dos valores RL nos códigos de comprimento variável. Primeiramente, a primeira tabela de VLC é usada para a conversão, e quando o valor absoluto de L excede o valor limite, a segunda tabela de VLC é usada para os valores RL subseqüentes. Aqui, na primeira tabela de VLC, o código de comprimento variável fica mais curto, conforme o número de código se torna menor, comparado com a segunda tabela de VLC, e na segunda tabela de VLC, o código de comprimento variável fica mais curto, conforme o número de código se torna maior, comparado com a primeira tabela de VLC.
O valor absoluto de L, usualmente, se torna maior no domínio de baixa freqüência; portanto, o valor absoluto de L se torna maior, quando os valores RL são convertidos nos códigos de comprimento variável, em uma ordem inversa à ordem na quai os valores RL são gerados pela varredura dos coeficientes, a partir do domínio de baixa freqüência em direção ao domínio de alta freqüência.
Portanto, quando o valor absoluto de L fica maior após o valor absoluto de L ter excedido e valor limite, isto é, pelo uso da tabela de VLC, na qual o código de comprimento variável se torna mais curto, conforme o número de código fica maior, a quantidade total de código pode ser reduzida. Especificamente, a quantidade total de código para L pode ser reduzida também pela codificação de L e R separadamente e, também, pelo uso de várias tabelas de VLC.
A primeira modalidade descreve o caso de codificação da imagem usando-se uma codificação intra-imagem, embora os mesmos efeitos possam ser obtidos para o caso no qual uma imagem é codificada, por meio
• ··· ·· ‘ • · ♦ · • · · · » · · · • · · I • ·· · · »· ·· · ····· ···♦ • · · · · · · ► · ·· · *·· · · · ·· ····* · · · · · · • · · · · · ·· · de uma codificação inter-imagem, pela realização de uma compensação de movimento, e outros em uma imagem em movimento de entrada, usando-se o método de acordo com a presente modalidade.
Também, a primeira modalidade descreve o caso de divisão da 5 imagem de entrada em um bloco com o tamanho de 4 (horizontal) x 4 (vertical) pixels, embora um tamanho diferente possa ser dado ao tamanho do bloco.
A primeira modalidade descreve um método de varredura de um bloco com referência à Figura 3, embora um outro método de varredura pos10 sa ser empregado, desde que a varredura seja realizada começando-se no domínio de baixa freqüência em direção ao domínio de alta freqüência.
Também, um exemplo da tabela de código é descrito com referência à Figura 5, embora ela possa ser uma tabela de código diferente.
De modo similar, um exemplo da tabela de VLC é descrito com 15 referência à Figura 6, embora ela possa ser uma tabela diferente.
O caso de uso de duas tabelas de VLC é descrito na presente modalidade, embora três tabelas de VLC possam ser usadas com o uso de vários valores limites, e as tabelas de VLC possam ser alternadas a cada vez que cada valor limite for excedido.
Na primeira modalidade, é explicado que as tabelas de VLC são alternadas quando o valor absoluto de L tiver excedido o valor limite, embora os mesmos efeitos possam ser obtidos em uma alternância entre as tabelas de VLC, quando o número de código tiver excedido o valor limite.
Também é descrito na presente modalidade que o EOB é adici25 onado ao fim da seqüência RL, embora o número de valores RL possa ser adicionado ao início da seqüência RL. As figuras 7A e 7B mostram o número de valores RL a serem codificados e a seqüência RL, correspondente às Figuras 4A e 4B para este caso.
Na tabela de código mostrada na Figura 5, a atribuição do núme30 ro de código ao EOB é desnecessária.
(Segunda Modalidade)
A Figura 8 é um diagrama de blocos que mostra uma estrutura
···· · » · · · · · · · ···· «···· • · · · · funcional de um aparelho de decodificação ao qual o método de decodificação de comprimento variável, de acordo com as modalidades da presente invenção, é aplicado. Aqui, o fluxo de bits gerado, usando-se o método de codificação de comprimento variável, de acordo com a presente invenção, descrito na primeira modalidade, será introduzido.
Como mostrado na Figura 8, um aparelho de decodificação 500a é compreendido por uma unidade de decodificação de comprimento variável 510, uma unidade de quantificação inversa 520, uma unidade de transformação de freqüência inversa 530 e uma memória de imagem 540. Cada unidade compondo esse aparelho de decodificação 500a, como o aparelho de codificação 100a, é realizada com uma CPU, uma ROM para o armazenamento, de antemão, de um programa ou dados executados pela CPU e uma memória para a provisão de uma área de trabalho, quando o programa for executado, bem como para o armazenamento temporário da imagem de entrada, ou similar.
O fluxo de bits é introduzido na unidade de decodificação de comprimento variável 510. A unidade de decodificação de comprimento variável 510 decodifica o fluxo de bits que é codificado com comprimento variável. O fluxo de bits é gerado pela divisão dos dados de imagem em blocos, cada um dos quais tendo um tamanho predeterminado, tornando unidimensionais os coeficientes de freqüência no bloco, usando-se um método de varredura predeterminado, e codificando uma seqüência das combinações (valores RL) do valor R, indicando o número de coeficientes nulos consecutivos, e o valor de coeficiente L subseqüente a ele.
A Figura 9 é um diagrama de blocos que mostra, em detalhes, uma estrutura funcional da unidade de decodificação de comprimento variável 510.
Como mostrado na Figura 9, a unidade de decodificação de comprimento variável 510 inclui uma unidade de conversão de código 511, uma unidade de armazenamento de tabela 512, uma unidade de reordenação 513 e uma unidade de geração de coeficiente 514.
A unidade de armazenamento de tabela 512 é construída da
mesma maneira que a unidade de armazenamento de tabela 144, e armazena, de antemão, vários tipos de tabelas (tabelas de VLC na Figura 6) correlacionando os números de código com os códigos de comprimento variável, e a tabela (uma tabela de código, veja referência à Figura 5) correlacionando os valores RL com os números de código atribuídos a eles.
A unidade de conversão de código 511 converte o código de comprimento variável em números de código para o fluxo de bits introduzido, usando as tabelas (várias tabelas de VLC) armazenadas na unidade de armazenamento de tabela 512. A conversão dos códigos de comprimento variável nos números de código é realizada usando-se uma pluralidade de tabelas de VLC. As tabelas de VLC são armazenadas na unidade de armazenamento de tabela 512, e os códigos de comprimento variável são convertidos nos números de código por uma referência à unidade de armazenamento de tabela 512.
Um exemplo da tabela de VLC é explicado com referência à Figura 6. Aqui, dois tipos de tabelas de VLC são armazenados. Um código mais curto é atribuído a um número de código menor na tabela de VLC 1, ao passo que um código mais curto é atribuído a um número de código maior na tabela de VLC 2. Assuma que um código de uma parte de início do fluxo de bits introduzido seja 01100100000100100011100010011. A tabela de VLC 1 é usada para o primeiro código de comprimento variável. Quando a tabela de VLC 1 na Figura 6 é referida, o código de comprimento variável 011 corresponde ao fluxo de bits introduzido, portanto, o número de código é 2 neste caso.
A unidade de conversão de código 511, então, converte o número de código obtido em um valor RL. Neste caso, uma tabela de código predeterminada é usada. A tabela de código é armazenada na unidade de armazenamento de tabela 512, e o número de código é convertido em um valor RL com referência à unidade de armazenamento de tabela 512. Um exemplo da tabela de código é mostrado na Figura 5. O número de código, neste caso, é 2; portanto, o valor RL é (0, -1).
De modo similar, ao se proceder seqüencialmente à conversão
··· ·· · ····· • · · · · · • · · ·· ··· · · • · ····· ···· ·· ·· · »· · dos códigos de comprimento variável nos números de código um a um, usando-se a tabela de VLC 1, o código de comprimento variável 00100 é convertido no número de código 3, o código de comprimento variável 0001001 no número de código 8 e o código de comprimento variável 0001110 no número de código 13, respectivamente, e os respectivos números de código são, adicionalmente, convertidos nos valores RL (1, 1), (0,-2) e (0, 3).
Aqui, quando o valor absoluto de L do valor RL obtido excede o valor limite, a unidade de conversão de código 511 usa a tabela de VLC 2 para a conversão dos códigos de comprimento variável subseqüentes. Assuma que o valor limite do valor absoluto de L seja 2, o valor absoluto de L vai além do valor limite no quarto valor RL (0, 3). Portanto, para os valores RL subseqüentes, a conversão é operada usando-se a tabela de VLC 2. Conseqüentemente, o próximo código de comprimento variável 0010011 é convertido no número de código 15 e, adicionalmente, convertido para o valor RL (0, 4).
Mesmo quando o valor absoluto L do valor RL obtido na decodificação subsequente cai abaixo do valor limite de novo, a alternância para a tabela de VLC 1 não é operada, e a tabela de VLC 2 é usada para a conversão. Assim, quando os valores RL equivalentes a um único bloco são gerados (um EOB é detectado), eles são introduzidos na unidade de reordenação 513. Aqui, é assumido que a seqüência RL mostrada na Figura 10A é gerada.
A unidade de reordenação 513 classifica a seqüência RL introduzida na ordem inversa. Entretanto, o EOB não será reordenado. A Figura 10B mostra o status após a reordenação. A seqüência RL assim reordenada é introduzida na unidade de geração de coeficiente 514.
A unidade de geração de coeficiente 514 converte a seqüência RL introduzida em coeficientes e torna bidimensional um bloco de coeficiente, usando um método de varredura predeterminado. Quando a seqüência RL é convertida nos coeficientes, um coeficiente 0 é gerado para o número indicado por R, com base na ordem de varredura predeterminada e, então, o ·· ··· ·· ···· • · · · · · • · · · · · ·· · · · · · ··· ·· ·· ·· ·
coeficiente indicado por L é gerado. Aqui, assumindo que os coeficientes sejam varridos em ziguezagues, começando no domínio de baixa freqüência em direção ao domínio de alta freqüência, a seqüência RL mostrada na Figura 10B é convertida no bloco de coeficiente mostrado na Figura 11.0 bloco de coeficiente gerado é introduzido na unidade de quantificação inversa 520.
A unidade de quantificação inversa 520 realiza um processamento de quantificação inversa no bloco de coeficiente introduzido. A quantificação inversa aqui significa integrar um valor de quantificação predeterminado para cada coeficiente no bloco de coeficiente. O valor quantificado aqui depende, usualmente, de um bloco ou uma banda de freqüência, usando-se um valor obtido a partir do fluxo de bits ou um valor predeterminado. O bloco coeficiente quantificado invertido é introduzido na unidade de transformação de freqüência inversa 530.
A unidade de transformação de freqüência inversa 530 realiza uma transformação de freqüência inversa nos outros blocos de coeficiente quantificados inversos, de modo a convertê-los em blocos de pixel. Os blocos de pixel convertidos são introduzidos na memória de imagem 540.
Os blocos de pixel decodificados são armazenados um a um na memória de imagem 540, e encaminhados como uma imagem de saída, após os blocos de pixel, equivalentes a uma única imagem, serem armazenados.
Assim, o método de decodificação de comprimento variável, de acordo com a presente invenção, decodifica um fluxo de bits de entrada, primeiramente, pelo uso da primeira tabela de VLC, e gera uma seqüência de valores RL, a qual é uma combinação de R, indicando o número de coeficientes nulos consecutivos, e L, indicando um coeficiente não-nulo subseqüente a ele. Então, quando o valor absoluto de L excede o valor limite, a segunda tabela de VLC é usada para a decodificação dos códigos de com30 primento variável subseqüentes. O valor RL, então, é convertido em um coeficiente com base em um método predeterminado de varredura do bloco, após os valores RL serem colocados na ordem inversa.
Com o processamento acima, é possível decodificar apropriadamente o fluxo de bits, que é codificado usando-se o método de codificação de comprimento variável, de acordo com a presente invenção, pelo uso do método de decodificação de comprimento variável da presente invenção.
Na segunda modalidade, o caso de decodificação do fluxo de bits gerado usando-se codificação intra-imagem é explicado, embora os mesmos efeitos possam ser obtidos em um caso de decodificação do fluxo de bits gerado pela realização de uma codificação inter-imagem em uma imagem em movimento de entrada, com o uso de compensação de movimento, e outros, empregando-se o método de acordo com a presente modalidade.
A segunda modalidade descreve o caso no qual a imagem de entrada é dividida em blocos, cada um dos quais dimensionado para 4 (horizontal) x 4 (vertical) pixels e codificado, embora um tamanho diferente possa ser dado para o tamanho do bloco.
Também, a segunda modalidade descreve um método de varredura de um bloco com referência à Figura 11, embora uma ordem de varredura diferente possa ser usada, desde que ela seja aquela usada para a codificação.
Na segunda modalidade, o exemplo da tabela de código é explicado com referência à Figura 11, embora uma tabela de código diferente possa ser usada, desde que ela seja aquela usada para a codificação.
Também, um exemplo da tabela de VLC é explicado com referência à Figura 6, embora uma tabela diferente possa ser usada, desde que ela seja aquela usada para a codificação. O caso de uso de duas tabelas de VLC é descrito na presente modalidade, embora três tabelas de VLC possam ser usadas com o uso de vários valores limites, e a tabela de VLC pode ser alternada a cada vez que cada valor limite for excedido. Entretanto, a estrutura da tabela de VLC e o valor limite devem ser os mesmos que aqueles usados para a codificação.
A segunda modalidade também descreve o caso de alternância entre as tabelas de VLC, quando o valor absoluto de L tiver excedido o valor
·· ··· ·· ···· ·· · • · · · ·· ·· • · · · ·· ··· ·· ·· · ·· · ··· • ·· ·· ·· ·· · limite, embora os mesmos efeitos possam ser obtidos na alternância entre as tabelas de VLC, quando o número de código tiver excedido o valor limite.
O caso de decodificação do fluxo de bits, codificado com EOB anexado ao final da seqüência RL, é descrito na segunda modalidade, embora o fluxo de bits, que é codificado com o número de valores RL, anexados ao começo da seqüência RL, possa ser decodificado. As figuras 12A e 12B mostram o número de valores RL, e a seqüência RL obtidos a partir do processamento de decodificação correspondente às Figuras 10A e 10B para este caso. Neste caso, na tabela de código mostrada na Figura 5, a atribuição do número de código ao EOB é desnecessária.
O método de codificação de comprimento variável, de acordo com a presente invenção, realiza uma varredura nos coeficientes de freqüência no bloco, começando no domínio de baixa freqüência em direção ao domínio de alta freqüência e os torna unidimensionais. Então, uma seqüência de valores RL, cada um dos quais sendo uma combinação de R, o número de coeficientes nulos consecutivos, e L, o coeficiente não-nulo subseqüente a ele, é gerada para os coeficientes tornados unidimensionais. Os valores RL, então, são convertidos em códigos de comprimento variável em uma ordem inversa à ordem de varredura. Uma pluralidade de tabelas de VLC é preparada para a conversão dos valores RL em códigos de comprimento variável. Então, a conversão é feita, primeiramente, pelo uso da primeira tabela de VLC, e, quando o valor absoluto de L ou o número de código excede o valor limite, a segunda tabela de VLC é usada para a conversão dos valores RL subseqüentes. Neste caso, na primeira tabela de VLC, o código de comprimento variável se torna mais curto, conforme o número de código fica menor, se comparado com a segunda tabela de VLC, e, na segunda tabela de VLC, o código de comprimento variável se torna mais curto, conforme o número de código fica maior, se comparado com a primeira tabela de VLC.
Usualmente, o valor absoluto de L e o número de código se tornam maiores no domínio de baixa freqüência; portanto, o valor absoluto de L fica maior quando os valores RL são convertidos nos códigos de compri24 mento variável, em uma ordem inversa à ordem na qual os valores RL são gerados, pela realização da varredura começando no domínio de baixa frequência em direção ao domínio de alta freqüência. Portanto, a quantidade de código total pode ser reduzida pelo uso da tabela de VLC, na qual o código de comprimento variável fica mais curto, conforme o número de código se torna maior, após o valor absoluto de L ter excedido o valor limite.
O método de decodificação de comprimento variável, de acordo com a presente invenção, decodifica, primeiramente, o fluxo de bits de entrada, usando a primeira tabela de VLC, e gera uma seqüência de valores RL, cada um dos quais sendo uma combinação de R, o número de coeficientes nulos consecutivos, e L, o coeficiente não-nulo que se segue a ele. Quando o valor absoluto de L ou o número de código excede o valor limite, a segunda tabela de VLC é usada para a decodificação dos códigos de comprimento variável subseqüentes. Os valores RL, então, são convertidos nos coeficientes, com base na ordem predeterminada de varredura do bloco, após os valores RL serem colocados em ordem inversa.
Com o processamento acima, é possível, pelo uso do método de decodificação de comprimento variável, de acordo com a presente invenção, decodificar apropriadamente o fluxo de bits que é codificado, usando-se o método de codificação de comprimento variável de acordo com a presente invenção.
(Terceira Modalidade)
O que vem a seguir descreve um aparelho de codificação de acordo com a terceira modalidade com referência aos diagramas.
A Figura 13 é um diagrama de blocos que mostra uma estrutura do aparelho de codificação 100b, de acordo com a terceira modalidade da presente invenção.
Este aparelho de codificação de filme 100b, o qual realiza uma codificação intra-imagem em uma imagem de entrada (dados de imagem) com uma eficiência de codificação melhorada, é compreendido por uma unidade de conversão de bloco 101, uma unidade de transformação de freqüência 102, uma unidade de quantificação 103 e uma unidade de codifica/7
ção de comprimento variável 150.
A unidade de conversão de bloco 101 divide a imagem de entrada em blocos de pixel, cada um dos quais tendo um tamanho de 4 (horizontal) x 4 (vertical) pixels, e os encaminha para a unidade de transformação de freqüência 102.
A unidade de transformação de freqüência 102 realiza uma transformação de freqüência em cada um dos blocos de pixel, de modo a gerar coeficientes de freqüência. Então, a unidade de transformação de freqüência 102 encaminha os coeficientes de freqüência gerados para a unidade de quantificação 103.
A unidade de quantificação 103 realiza uma quantificação nos coeficientes de freqüência encaminhados pela unidade de transformação de freqüência 102. A quantificação aqui significa um processamento equivalente a dividir o coeficiente de freqüência por um valor de quantificação predeterminado. Mais ainda, um valor de quantificação varia dependendo, geralmente, de um bloco de pixel e de uma banda de freqüência. Subseqüentemente, a unidade de quantificação 103 encaminha os coeficientes de freqüência quantificados para a unidade de codificação de comprimento variável 150.
A unidade de codificação de comprimento variável 150 realiza uma codificação de comprimento variável nos coeficientes de freqüência quantificados pela unidade de quantificação 103.
A Figura 14 é um diagrama de blocos que mostra uma estrutura interna da unidade de codificação de comprimento variável 150.
Como mostrado na Figura 14, a unidade de codificação de comprimento variável 150 é constituída por uma unidade de geração de seqüência RL 201, uma unidade de reordenação 202, uma unidade binária 203, uma unidade de armazenamento de tabela 204 e uma unidade de codificação aritmética 205.
A unidade de geração de seqüência RL 201 converte os coeficientes de freqüência quantificados (a serem abreviados como coeficientes a partir deste ponto) encaminhada pela unidade de quantificação 103 em coe-
ficientes tornados unidimensionais, usando-se um método de varredura predeterminado. Então, a unidade de geração de seqüência RL 201 gera uma seqüência (a ser referida como uma seqüência RL a partir deste ponto) constituída por combinações de um valor R, indicando o número de coeficientes nulos consecutivos, e um valor de coeficiente de freqüência L, indicando um coeficiente não-nulo (a serem referidos como valores RL a partir deste ponto). Um exemplo disto é descrito com referência às Figuras 15 e 16.
A Figura 15A mostra um bloco de coeficiente constituído por uma pluralidade de coeficientes encaminhados pela unidade de quantificação 103. Aqui, o coeficiente de freqüência superior esquerdo denota um componente de corrente contínua, e componentes de freqüência na direção horizontal se tornam maiores em direção à direita, enquanto os componentes de freqüência na direção vertical se tornam maiores para baixo.
A Figura 15B é um diagrama de explanação para explicar um método de varredura para se tornar unidimensional uma pluralidade de coeficientes em um bloco de coeficiente. Como indicado pelas setas na Figura 15B, a unidade de geração de seqüência RL 201 torna unidimensionais os coeficientes, pela realização de uma varredura no bloco de coeficiente começando no domínio de baixa freqüência em direção ao domínio de alta freqüência.
A Figura 16A mostra uma seqüência RL encaminhada pela unidade de geração de seqüência RL 201. Na Figura 16A, o primeiro número indica o número de coeficientes. Geralmente, um valor de coeficiente tem mais tendência a ser 0 no domínio de alta freqüência. Portanto, pela realização de uma varredura começando no domínio de baixa freqüência em direção ao domínio de alta freqüência, é possível se reduzir a quantidade de informação incluída em uma seqüência RL (da qual, a quantidade de informação dos números R). A seqüência RL gerada é introduzida na unidade de reordenação 202.
A unidade de reordenação 202 classifica a seqüência RL introduzida em ordem inversa. Entretanto, o número de coeficientes não será
reordenado.
A Figura 16B mostra a seqüência RL reordenada pela unidade de reordenação 202. Pela realização da reordenação desta forma, é possível se reduzir a quantidade de informação, como descrito acima, e, conseqüen5 temente, tornar unidimensionais coeficientes pela aplicação de uma varredura ao bloco de coeficiente do domínio de alta freqüência em direção ao domínio de baixa freqüência. Subseqüentemente, a seqüência RL assim reordenada é encaminhada para a unidade binária 203.
A unidade binária 203 realiza uma conversão binária no número 10 de coeficientes e em cada valor RL, isto é, os converte em dados binários constituídos por 0s e 1s. Aqui, o valor R e o valor de coeficiente L são convertidos em binário separadamente.
A Figura 16C mostra apenas os valores de coeficiente L na seqüência RL reordenados pela unidade de reordenação 202. Os valores ab15 solutos e os sinais desses valores de coeficiente L são separadamente processados. Mais ainda, a unidade binária 203 realiza uma conversão binária nos valores R e nos valores absolutos dos valores de coeficiente L, usando uma tabela binária predeterminada, como mostrado na Figura 21, por exemplo. Então, a unidade binária 203 encaminha, para a unidade de codificação aritmética 205, dados binários resultantes da realização da conversão binária deles.
A unidade de codificação aritmética 205 realiza uma codificação aritmética binária nos valores dos números R e nos valores absolutos dos valores de coeficiente L representados como dados binários, enquanto codi25 fica os sinais dos valores de coeficiente L ao mesmo tempo. Uma explanação é dada aqui para a codificação aritmética a ser realizada no valor absoluto do valor de coeficiente L. A unidade de codificação aritmética 205 usa uma pluralidade de tabelas de probabilidade ao alternar entre elas, enquanto realiza uma codificação aritmética no valor absoluto do valor de coeficiente L representado como dados binários. A pluralidade de tabelas de probabilidade é armazenada na unidade de armazenamento de tabela 204.
A Figura 17 é um diagrama de transição que mostra um método
·· · ····· ···· • · · · · ··· ··· · · · ····· ····· · ·· · ·· · ·· de alternância entre as tabelas de probabilidade.
Como mostra a Figura 17, a unidade de codificação aritmética 205 usa quatro tabelas de probabilidade, das quais a tabela de probabilidade é usada para a realização de uma codificação aritmética no valor absoluto do primeiro valor de coeficiente L. Enquanto isso, para os valores de coeficiente subseqüentes L, a unidade de codificação aritmética 205 alterna para uma outra tabela de probabilidade para uso, dependendo do número de tabela da tabela de probabilidade usada para a codificação do valor absoluto do valor de coeficiente L prévio, bem como do valor absoluto. Aqui, as quatro tabelas de probabilidade são a tabela de probabilidade 1, a tabela de probabilidade 2, a tabela de probabilidade 3 e a tabela de probabilidade 4, e o número de tabela da tabela de probabilidade 1 é 1, o número de tabela da tabela de probabilidade 2 é 2, o número de tabela da tabela de probabilidade 3 é 3 e o número de tabela da tabela de probabilidade 4 é 4.
Mais especificamente, a tabela de probabilidade 2 é usada quando uma das condições a seguir for satisfeita: quando a tabela de probabilidade 1 for usada para a codificação do valor absoluto do valor de coeficiente L prévio e seu valor absoluto for 1e quando a tabela de probabilidade for usada para a codificação do valor absoluto do valor de coeficiente L prévio e seu valor absoluto for 1. Enquanto isso, a tabela de probabilidade é usada quando uma das condições a seguir for satisfeita: quando a tabela de probabilidade 1 for usada para a codificação do valor absoluto do valor de coeficiente prévio L e seu valor absoluto for 2; quando a tabela de probabilidade 2 for usada para a codificação do valor absoluto do valor de coeficiente prévio L e seu valor absoluto for 2; e quando a tabela de probabilidade 3 for usada para a codificação do valor absoluto do valor de coeficiente prévio L e seu valor absoluto for 2 ou menor. E a tabela de probabilidade 4 é usada quando uma das condições a seguir for satisfeita: quando o valor absoluto do valor de coeficiente prévio L for 3 ou maior; e quando a tabela de probabilidade 4 for usada para a codificação do valor absoluto do valor de coeficiente prévio L.
Como descrito acima, as tabelas de probabilidade são alterna-
• · das em uma direção, isto é, de uma tabela de probabilidade com um número de tabela menor para uma tabela de probabilidade com um número de tabela maior. Assim sendo, mesmo quando o valor absoluto do valor de coeficiente prévio L é igual ou menor do que um valor limite predeterminado, as tabelas de probabilidade não serão alternadas de volta na direção oposta. Este é o ponto que distingue a presente invenção da técnica existente.
A Figura 18 é um diagrama de exibição de conteúdos de tabela de probabilidade, que mostra os conteúdos das quatro tabelas de probabilidade 1 a 4 mencionadas anteriormente.
Como mostrado na Figura 18, cada uma das quatro tabelas de probabilidade 1 a 4 é constituída pela probabilidade com a qual 0 ocorre e a probabilidade com a qual 1 ocorre.
Por exemplo, a tabela de probabilidade 1 é constituída pela probabilidade 0,1, com a qual 0 ocorre, e a probabilidade 0,9 com a qual 1 ocorre, e a tabela de probabilidade 2 é constituída pela probabilidade 0,2 com a qual 0 ocorre e a probabilidade 0,8 com a qual 1 ocorre.
Para colocar de uma outra forma, quando o valor absoluto do valor de coeficiente L é 2, o resultado da conversão binária de 2 é 01 e, portanto, quando se usa a tabela de probabilidade 4 para a realização da codificação aritmética em 01, a unidade de codificação aritmética 205 realiza uma codificação aritmética em 01 usando a probabilidade 0,1, correspondente a 0 nesse 01, e a probabilidade 0,9 correspondente a 1 nesse 01.
Aqui, uma vez que a soma da probabilidade com a qual 0 ocor25 re e da probabilidade com a qual 1 ocorre é 1,0, não é necessário manter ambas essas probabilidades e, portanto, apenas uma das probabilidades pode ser retida.
O que vem a seguir explica um exemplo de alternância entre tabelas de probabilidade, no caso em que uma codificação é realizada nos valores absolutos (os convertidos em binário) dos valores de coeficiente L mostrados na Figura 16C.
A unidade de codificação aritmética 205 usa a tabela de probabi-
lidade 1 para o valor absoluto do primeiro valor de coeficiente L (-2). Aqui, uma vez que o valor absoluto desse valor de coeficiente L é 2, a unidade de codificação aritmética 205 alterna da tabela de probabilidade 1 para a tabela de probabilidade 3 para uso. Assim sendo, a unidade de codificação aritmética 205 usa a tabela de probabilidade 3 para a realização de uma codificação aritmética no valor absoluto do segundo valor de coeficiente L (3). Aqui, uma vez que o valor absoluto desse valor de coeficiente L é 3, a unidade de codificação aritmética 205 alterna da tabela de probabilidade 3 para a tabela de probabilidade 4 para uso. Assim sendo, a unidade de codificação aritmética 205 usa a tabela de probabilidade 4 para a realização da codificação aritmética no valor absoluto do terceiro valor de coeficiente L (6). Aqui, uma vez que a tabela de probabilidade a ser usada foi alternada para a tabela de probabilidade 4, a unidade de codificação aritmética 205 usa a tabela de probabilidade 4 para a realização da codificação aritmética nos valores absolutos de todos os valores de coeficiente L subseqüentes. Por exemplo, o valor absoluto do quinto valor de coeficiente L é 2, mas, diferentemente da técnica existente, a unidade de codificação aritmética 205 usa a tabela de probabilidade 4 quando da realização da codificação aritmética no valor absoluto do sexto valor de coeficiente L e, após isso, sem alternância para uma outra tabela de probabilidade.
Mais ainda, uma vez que cada uma das tabelas de probabilidade é atualizada quando necessário, dependendo de uma entrada ser 0 ou 1, essas tabelas de probabilidade são atualizadas para se adaptarem à entrada.
Como descrito acima, no método de codificação de comprimento variável empregado pela unidade de codificação de comprimento variável 150 no aparelho de codificação de imagem em movimento 100b, de acordo com a presente invenção, uma operação de tornar unidimensional é realizada nos coeficientes em um bloco de coeficiente pela varredura deles no domínio de baixa freqüência em direção ao domínio de alta freqüência. Então, ela gera uma seqüência de valores RL (seqüência RL) constituída por uma combinação de um número R, indicando valores de coeficiente nulos conse-
cutivos, e um valor de coeficiente não-nulo L, subseqüente a ele. Esses valores RL, então, são convertidos em códigos de comprimento variável em uma ordem oposta àquela na qual a varredura foi aplicada. Quando os valores RL são convertidos em códigos de comprimento variável, os números R, os valores absolutos dos valores de coeficiente L e os sinais dos valores de coeficiente L são convertidos separadamente. Quando eles são convertidos, uma conversão binária é realizada primeiro, a qual é seguida por uma codificação aritmética. De modo a se realizar a codificação aritmética nos valores absolutos dos valores de coeficiente, uma pluralidade de tabelas de probabilidade é alternada entre eles. Quando uma tabela de probabilidade é alternada para uma outra tabela de probabilidade, uma tabela de probabilidade a ser usada para a codificação do valor absoluto do próximo valor de coeficiente L é determinada, dependendo do número de tabela da tabela de probabilidade corrente e do valor absoluto do valor de coeficiente L corrente. As tabelas de probabilidade devem ser alternadas apenas em uma direção, e uma vez que o valor absoluto de um valor de coeficiente L exceda um valor predeterminado, a mesma tabela de probabilidade é usada, dali em diante, para a realização da codificação aritmética.
Quando uma varredura é aplicada ao domínio de alta freqüência primeiro e, após, ao domínio de baixa freqüência, é provável que o valor absoluto do valor de coeficiente L se torne maior, uma vez que o valor absoluto do valor de coeficiente L se torna geralmente maior em direção ao domínio de baixa freqüência. Portanto, uma vez que o valor absoluto do valor de coeficiente L exceda um valor predeterminado, mesmo se o valor absoluto de um outro valor de coeficiente L se tornar menor do que o valor predeterminado após aquilo, é altamente possível que apenas o valor absoluto desse valor de coeficiente seja pequeno. Assim, pela realização de uma codificação aritmética com o uso da mesma tabela de probabilidade, uma atualização de uma tabela de probabilidade se torna mais facilmente adaptativa às entradas. Isso, conseqüentemente, torna possível que a probabilidade de ocorrência de símbolos (0 ou 1 em dados binários) em cada tabela de probabilidade seja mais orientada (isto é, a probabilidade de ocorrência de
·· ·· e ·· · ·« ou 1 se torna um valor mais próximo de 1,0). A codificação aritmética tem uma característica que, quanto mais os valores de probabilidade são orientados em uma tabela de probabilidade, mais alta se torna a eficiência de codificação. Conseqüentemente, a eficiência de codificação pode ser melhorada pelo uso do método de codificação de comprimento variável de acordo com a presente invenção.
O aparelho de codificação de imagem em movimento, de acordo com a presente invenção, foi explicado usando-se a presente modalidade, mas a presente invenção não está limitada a isso.
Na presente modalidade, por exemplo, uma explanação é provida para o caso em que uma imagem é codificada por meio de codificação intra-imagem, mas os mesmos efeitos podem ser obtidos também para o caso em que uma imagem é codificada por meio de codificação interimagem pela realização de uma compensação de movimento, e outros em uma imagem em movimento de entrada.
Mais ainda, na presente modalidade, embora uma explanação seja dada para o caso em que uma imagem de entrada é dividida em blocos de pixel, cada um dos quais tendo um tamanho de 4 (horizontal) x 4 (vertical) pixels, um tamanho diferente pode ser dado para o bloco de pixel.
Também, na presente modalidade, embora a Figura 15B seja usada para a explicação de um método de realização de varredura em um bloco de coeficiente, uma outra ordem de varredura também pode ser empregada, desde que a varredura seja realizada do domínio de baixa freqüência em direção ao domínio de alta freqüência.
Mais ainda, na presente modalidade, é dada uma explanação para o caso em que a unidade de geração de seqüência RL 201 converte coeficientes de freqüência quantificados em coeficientes unidimensionais usando-se um método de varredura predeterminado, e gera uma seqüência (seqüência RL) constituída por combinações de R, indicando o número de valores de coeficiente nulos consecutivos, e L, indicando um valor de coeficiente não-nulo subseqüente a ele, mas uma seqüência dos números R e uma seqüência dos valores de coeficiente L podem ser geradas separada-
• · ··· ·· ···· • · · · · · • · · · · · • · · · · · · • · · · · · • · · ·· ·· • « · · • · * ··· · · •···· ····· • · · ♦ · • ·· · mente. Quando uma seqüência dos valores de coeficiente L é gerada, por exemplo, a unidade de reordenação 202 pode ser omitida, se essa seqüência for gerada pela realização de uma varredura começando no domínio de alta freqüência em direção ao domínio de baixa freqüência e pela seleção dos coeficientes, cujos valores indicam outro além de zero.
Mais ainda, é dada uma explanação na presente modalidade para o caso no qual as tabelas de probabilidade são alternadas de acordo com a tabela de transição ilustrada na Figura 17, mas valores diferentes podem ser dados para o número de tabelas de probabilidade e para os valores limites para o valor absoluto do valor de coeficiente L, quando as tabelas de probabilidade forem alternadas como ilustrado na Figura 17.
Também, a Figura 21 é apresentada como um exemplo de uma tabela binária, mas uma outra tabela pode ser empregada.
Mais ainda, na presente modalidade, uma explanação é dada para o caso em que a unidade de codificação aritmética realiza uma codificação aritmética binária, embora uma codificação aritmética de valor múltiplo possa ser realizada. Nesse caso, é possível omitir a unidade de conversão binária 203.
(Quarta Modalidade)
O que vem a seguir explica um aparelho de decodificação de imagem, de acordo com a quarta modalidade da presente invenção, com referência aos diagramas.
A Figura 19 é um diagrama de blocos que mostra uma estrutura de um aparelho de decodificação 500b, de acordo com a quarta modalidade da presente invenção.
Este aparelho de decodificação 500b realiza uma decodificação intra-imagem em um fluxo de bits resultante da realização de uma codificação intra-imagem nos dados de imagem, e é compreendido por uma unidade de decodificação de comprimento variável 601, uma unidade de quantificação inversa 602, uma unidade de transformação de freqüência inversa 603 e uma memória de imagem 604. O fluxo de bits a ser introduzido aqui é gerado usando-se o método de codificação de comprimento variável empregado »···
• · • · · • ··· pelo aparelho de codificação 100b, de acordo com a terceira modalidade, e é primeiramente obtido pela unidade de decodificação de comprimento variável 601.
Mediante a recepção do fluxo de bits, a unidade de decodifica5 ção de comprimento variável 601 gera um bloco de coeficiente constituído por uma pluralidade de coeficientes, como mostrado na Figura 15A, pela realização de uma decodificação de comprimento variável nesse fluxo de bits.
A unidade de quantificação inversa 602, recebendo o bloco de 10 coeficiente da unidade de decodificação de comprimento variável 601, realiza uma quantificação inversa nesse bloco de coeficiente. Uma quantificação inversa aqui significa integrar um valor de quantificação predeterminado para cada coeficiente no bloco de coeficiente. Geralmente, um valor de quantificação varia em uma base de bloco de coeficiente ou banda de freqüência, e é obtido a partir de um fluxo de bits. A unidade de quantificação inversa 602, então, encaminha o bloco de coeficiente quantificado inverso para a unidade de transformação de freqüência inversa 603.
A unidade de transformação de freqüência inversa. 603 realiza uma transformação de freqüência inversa no bloco de coeficiente quantifica20 do inverso, e converte o bloco de coeficiente em um bloco de pixel. Em seguida, a unidade de transformação de freqüência inversa 603 encaminha o bloco de pixel convertido para a memória de imagem 604.
A memória de imagem 604 armazena os blocos de pixel decodificados em seqüência, e quando os blocos de pixel equivalentes a uma ima25 gem são armazenados, ela encaminha esses blocos de pixel como uma imagem de saída.
Aqui, é dada uma explanação detalhada para a unidade de decodificação de comprimento variável 601, descrita acima.
A Figura 20 é um diagrama de blocos que mostra uma estrutura interna da unidade de decodificação de comprimento variável 601.
Como mostrado na Figura 20, a unidade de decodificação de comprimento variável 601 é compreendida por uma unidade de decodifica35 ·· ção aritmética 701, uma unidade de conversão de multivalor 702, uma unidade de armazenamento de tabela 703, uma unidade de reordenação 704 e uma unidade de geração de coeficiente 705.
A unidade de armazenamento de tabela 703 armazena, por exemplo, quatro tabelas de probabilidade 1 a 4, como mostrado na Figura 18.
Mediante o recebimento do fluxo de bits, a unidade de decodificação aritmética 701, primeiramente, realiza uma decodificação aritmética no fluxo de bits. Aqui, é dada uma explanação para a decodificação aritmética binária a ser realizada nos valores absolutos (os convertidos em binário) de valores de coeficiente L codificados incluídos no fluxo de bits.
Quando da realização da decodificação aritmética no valor absoluto do valor de coeficiente L codificado, a unidade de decodificação aritmética 701 obtém, a partir da unidade de conversão de multivalor 702, o valor absoluto do valor de coeficiente L prévio, o qual já foi decodificado e convertido em um multivalor. Então, a unidade de decodificação aritmética 701 alterna entre as tabelas de probabilidade 1 a 4 armazenadas pela unidade de armazenamento de tabela 703, de uma maneira como mostrado na Figura 17, dependendo do valor absoluto desse valor de coeficiente L, e realiza uma decodificação aritmética binária no valor absoluto de cada um dos valores de coeficiente L codificados, de modo a encaminhar dados binários correspondentes a cada um deles.
A unidade de conversão de multivalor 702 converte os dados binários encaminhados pela unidade de decodificação aritmética 701 em multivalores, usando, por exemplo, uma tabela binária, como mostrado na Figura 21, de modo a representá-los como os valores absolutos dos valores de coeficiente L. A seguir, a unidade de conversão de multivalor 702 encaminha os valores absolutos desses valores de coeficiente L para a unidade de decodificação aritmética 701 e para a unidade de reordenação 704.
É dada uma explanação para as operações detalhadas da unidade de decodificação aritmética 701 e da unidade de conversão de multivalor 702.
Primeiramente, a unidade de decodificação aritmética 701 usa a tabela de probabilidade 1 para a realização da decodificação aritmética no valor absoluto do primeiro valor de coeficiente L codificado. A unidade de decodificação aritmética 701, então, encaminha para a unidade de conversão de multivalor 702 os dados binários obtidos pela realização da decodificação aritmética. A unidade de conversão de multivalor 702 usa a tabela binária de modo a converter os dados binários no valor absoluto do valor de coeficiente L, e encaminha o valor absoluto para a unidade de decodificação aritmética 701 e para a unidade de reordenação 704.
Então, para os valores absolutos dos valores de coeficiente L codificados subseqüentes, a unidade de decodificação aritmética 701 alterna da tabela de probabilidade para uma outra para uso, dependendo do número de tabela da tabela de probabilidade usada, quando o valor absoluto do valor prévio de coeficiente L codificado é decodificado de modo aritmético binário, bem como do valor absoluto desse valor prévio de coeficiente L, obtido a partir da unidade de conversão de multivalor 702. Como mostrado na Figura 17, a tabela de probabilidade 2 é usada quando uma das seguintes condições for satisfeita: quando a tabela de probabilidade 1 for usada para a decodificação aritmética do valor absoluto do valor prévio de coeficiente L codificado e o valor absoluto do valor prérvio de coeficiente L, obtido a partir da unidade de conversão de multivalor 702 indicar Ί; e quando a tabela de probabilidade 2 for usada para a realização da codificação aritmética do valor absoluto do valor prévio de coeficiente L codificado e o valor prévio absoluto do valor de coeficiente L, obtido a partir da unidade de conversão de multivalor 702 indicar 1. A tabela de probabilidade 3 é usada quando uma das condições a seguir for satisfeita: quando a tabela de probabilidade 1 for usada para a realização da decodificação aritmética do valor absoluto do valor prévio de coeficiente codificado L e o valor absoluto do valor prévio de coeficiente L, obtido a partir da unidade de conversão de multivalor 702 indicar 2; quando a tabela de probabilidade 2 for usada para a realização da decodificação aritmética do valor absoluto do valor prévio de coeficiente codificado L e o valor prévio absoluto do valor de coeficiente L obtido a partir • ·· ···· ·· · • · · · · · • · · · · · · • · ·· ···· ·· · ·· da unidade de conversão de multivalor 702 indica 2; e quando a tabela de probabilidade 3 for usada para a realização da decodificação aritmética do valor absoluto do valor prévio de coeficiente codificado L e o valor absoluto do valor prévio de coeficiente L, obtido a partir da unidade de conversão de multivalor 702 indicar 2 ou menor. E a tabela de probabilidade 4 é usada quando uma das condições a seguir for satisfeita: quando o valor absoluto do valor prévio de coeficiente codificado L, obtido a partir da unidade de conversão de multivalor 702 indica 3 ou valor maior; e quando a tabela de probabilidade 4 for usada para a realização da decodificação aritmética do valor absoluto do valor prévio de coeficiente codificado L. Como mostrado acima, as tabelas de probabilidade 1 a 4 são alternadas em uma direção, isto é, de uma tabela de probabilidade com um número de tabela menor para uma tabela de probabilidade com um número de tabela maior. Assim sendo, mesmo quando o valor absoluto do valor prévio de coeficiente L, obtido a partir da unidade de conversão de multivalor 702 é igual ou menor do que um valor limite predeterminado, as tabelas de probabilidade não serão alternadas na direção oposta. Este é o ponto que distingue a presente invenção da técnica existente.
O que vem a seguir explica um exemplo de alternância entre as tabelas de probabilidade, em um caso onde a decodificação é realizada nos valores absolutos dos valores de coeficiente L mostrados na Figura 16C.
A unidade de decodificação aritmética 701 usa a tabela de probabilidade 1 para a realização de uma decodificação aritmética do valor absoluto do primeiro valor de coeficiente L codificado (-2), de modo a decodificá-lo em dados binários 01. Uma vez que a unidade de decodificação aritmética 701 obtém, a partir da unidade de conversão de multivalor 702, 2, o qual é um multivalor convertido a partir desses dados binários 01, ela alterna da tabela de probabilidade 1 para a tabela de probabilidade 3 para uso. Assim sendo, a unidade de decodificação aritmética 701 usa a tabela de probabilidade 3 para realizar uma decodificação aritmética do valor absoluto do segundo valor de coeficiente L codificado (3), de modo a decodificá-lo em dados binários 001. Aqui, uma vez que a unidade de decodificação aritmé-
»· · ·· · ····· • · · · · · • · ··· · · · ·· • · ····· ····· • · · · tica 701 obtém, a partir da unidade de conversão de multivalor 702, 3, o qual é um multivalor convertido desses dados binários 001, ela alterna da tabela de probabilidade 3 para a tabela de probabilidade 4 para uso. Assim sendo, a unidade de decodificação aritmética 701 usa a tabela de probabili5 dade 4 para a realização da codificação aritmética do valor absoluto do terceiro valor de coeficiente L codificado (6), de modo a decodificá-lo em dados binários 000001. Aqui, uma vez que a tabela de probabilidade a ser usada é alternada para a tabela de probabilidade 4, a unidade de decodificação aritmética 701 usa a tabela de probabilidade 4 para a realização da decodifi10 cação aritmética nos valores absolutos de todos os valores de coeficiente L codificados subseqüentes. Por exemplo, o valor absoluto do quinto valor de coeficiente L codificado é decodificado é convertido em um valor múltiplo 2, mas, diferentemente da técnica existente, a unidade de decodificação aritmética 701 usa a tabela de probabilidade 4 para a realização da decodifica15 ção aritmética no valor absoluto do sexto valor de coeficiente L codificado e, após isso, sem alternar para uma outra tabela de probabilidade.
Através da operação acima, quando os valores absolutos dos valores de coeficiente L, os números R, e os sinais dos valores de coeficiente L equivalentes a um bloco de coeficiente são gerados, eles são introdu20 zidos na unidade de reordenação 704 como uma seqüência RL.
A unidade de reordenação 704 classifica essa seqüência RL introduzida em ordem inversa. Entretanto, o número de coeficientes não será reordenado. A Figura 16A ilustra uma seqüência RL reordenada. Subseqüentemente, a unidade de reordenação 704 encaminhada para a unidade de geração de coeficiente 705 a seqüência RL assim reordenada.
A unidade de geração de coeficiente 705 converte a seqüência RL introduzida em um bloco de coeficiente. Ao fazê-lo, a unidade de geração de coeficiente 705 faz uma conversão da seqüência RL em um bloco de coeficiente aó realizar repetidamente a operação a seguir: geração de coefici30 entes nulos para o número indicado por um número R e, então, geração de um coeficiente com um valor indicado por um valor de coeficiente L. Aqui, a unidade de geração de coeficiente 705 realiza uma varredura em zigueza-
gue começando no domínio de baixa freqüência em direção ao domínio de alta freqüência, como mostrado na Figura 15B, de modo a converter a seqüência RL mostrada na Figura 16A no bloco de coeficiente mostrado na Figura 15A. A seguir, a unidade de geração de coeficiente 705 encaminhada para a unidade de quantificação inversa 602 o bloco de coeficiente assim gerado.
Como descrito acima, no método de decodificação aritmética empregado pela unidade de decodificação de comprimento variável 601 no aparelho de decodificação 500b, de acordo com a presente invenção, uma pluralidade de tabelas de probabilidade é alternada, quando uma decodificação aritmética é realizada nos valores absolutos de valores de coeficiente L incluídos em um fluxo de bits de entrada. Quando da alternância para uma outra tabela de probabilidade, a tabela de probabilidade a ser usada para a decodificação do valor absoluto do próximo valor de coeficiente L é determi15 nada, dependendo do número de tabela da tabela de probabilidade corrente e do valor absoluto de um valor de coeficiente L resultante da decodificação. As tabelas de probabilidade são alternadas apenas em uma direção neste caso, e quando o valor absoluto do valor de coeficiente L resultante da decodificação excede um valor predeterminado, a mesma tabela de probabilí20 dade é usada para a realização da decodificação aritmética em todos os valores absolutos subseqüentes.
Como é óbvio a partir do dito acima, o uso do método de decodificação aritmética, de acordo com a presente invenção, torna possível decodificar apropriadamente um fluxo de bits codificado com o uso do método de codificação de comprimento variável de acordo com a presente invenção.
O aparelho de decodificação, de acordo com a presente invenção, foi explicado acima usando-se a presente modalidade, mas a presente invenção não está limitada a isto.
Na presente modalidade, por exemplo, é provida uma explana30 ção para o caso em que a decodificação é realizada em um fluxo de bits, o qual foi gerado usando-se uma codificação intra-imagem, mas os mesmos efeitos podem ser obtidos também para o caso em que uma decodificação é ··· · • · ··· · · · ···· ····· ··· ·· ·· realizada em um fluxo de bits, o qual foi gerado, usando-se uma codificação interimagem, pela realização de compensação de movimento, e outros em uma imagem em movimento de entrada.
Mais ainda, na presente modalidade é dada uma explanação para o caso em que um fluxo de bits, no qual dados de imagem são codificados sendo divididos em blocos de pixel, cada um dos quais tendo um tamanho de 4 (horizontal) x 4 (vertical) pixels, embora um tamanho diferente possa ser dado para o bloco de pixel.
Mais ainda, é dada uma explanação, na presente modalidade, para o caso em que quatro tabelas de probabilidade são usadas e alternadas de acordo com a tabela de transição ilustrada na Figura 17, mas valores diferentes podem ser empregados para o número de tabelas de probabilidade e valores limites para os valores absolutos dos valores de coeficiente L, quando as tabelas de probabilidade forem alternadas como ilustrado na Figura 17.
Também na presente modalidade, embora a Figura 15B seja usada para se explicar um método de realização de varredura em um bloco de coeficiente, uma outra ordem de varredura também pode ser empregada, desde que seja a mesma que a do método de varredura empregado no momento da codificação.
Mais ainda, um exemplo de uma tabela binária é descrito com referência à Figura 21, mas uma outra tabela pode ser empregada, desde que seja a mesma que a tabela binária usada no momento da codificação.
Mais ainda, embora uma explanação seja dada na presente modalidade, para o caso em que a unidade de decodificação aritmética 701 realiza uma decodificação aritmética binária, uma decodificação aritmética de multivalor também pode ser realizada, em vez disso. Nesse caso, é possível omitir a unidade de conversão de multivalor 702.
Subseqüentemente, outras modalidades de acordo com a presente invenção são adicionalmente descritas, com referência aos diagramas. (Quinta Modalidade)
A Figura 22 é um diagrama de blocos que mostra uma estrutura funcional de um aparelho de codificação 100c ao qual são aplicados o método de codificação de comprimento variável, de acordo com a presente invenção, e o método de codificação de imagem em movimento que o utiliza. Na quinta modalidade, a estrutura funcional para um caso de codificação intra-imagem de uma imagem de entrada usando o método de codificação de imagem em movimento da presente invenção, é descrita, como ilustrado para os aparelhos de codificação 100a e 100b, descritos na primeira e na terceira modalidades. Também, cada unidade compondo esse aparelho de codificação 100c pode ser realizada com uma CPU, uma ROM para o arma10 zenamento de antemão de um programa ou de dados executados pela CPU, e uma memória para a provisão de uma área de trabalho na execução do programa, bem como para o armazenamento temporário da imagem de entrada, ou similar.
Como mostrado na Figura 22, o aparelho de codificação 100c, de acordo com a quinta modalidade, é compreendido pela unidade de conversão de bloco 110, pela unidade de transformação de freqüência 120, pela unidade de quantificação 130 e pela unidade de codificação de comprimento variável 160.
Aqui, o aparelho de codificação 100a, de acordo com a primeira modalidade, é estruturado de modo que pares de R e L sejam codificados, usando-se uma pluralidade de tabelas de codificação de comprimento variável (tabelas de VLC), e o aparelho de codificação 100b, de acordo com a terceira modalidade, é estruturado de modo que L e R sejam codificados de modo aritmético separadamente, usando-se uma pluralidade de tabelas de probabilidade. Entretanto, o aparelho de codificação 100c, de acordo com a quinta modalidade, é estruturado de modo que L e R sejam codificados separadamente, usando-se uma pluralidade de tabelas de VLC, o que distingue o aparelho de codificação 100c dos aparelhos de codificação 100a e 100b. Portanto, o aparelho de codificação 100c inclui a unidade de codifica30 ção de comprimento variável 160, em vez das unidades de codificação de comprimento variável 140 e 150 nos aparelhos de codificação 100a e 100b. Quanto aos outros componentes, as descrições são abreviadas, uma vez que eles são os mesmos que aqueles descritos para os aparelhos de codificação 100a e 100b, e a unidade de codificação de comprimento variável 160 é descrita em detalhes.
A unidade de codificação de comprimento variável 160 gera uma seqüência L e uma seqüência R, com base nos coeficientes de freqüência quantificados pela unidade de quantificação 130 e, a seguir, gera um fluxo de bits dos valores absolutos de coeficientes ILI, ou similares, usando um método de alternância de VLC unidimensional.
A Figura 23 é um diagrama de blocos que mostra, em detalhes, uma estrutura funcional da unidade de codificação de comprimento variável 160.
Como mostrado na Figura 23, a unidade de codificação de comprimento variável 160 é compreendida por uma unidade de geração de seqüência RL 161, uma unidade de atribuição de código 163 e uma unidade de armazenamento de tabela 164.
A unidade de geração de seqüência RL 161 gera a seqüência R e a seqüência L separadamente, pela realização de uma varredura em ziguezague nos coeficientes de freqüência quantificados (a serem referidos simplesmente como coeficientes a partir deste ponto) começando no domínio de baixa freqüência em direção ao domínio de alta freqüência.
Para ser mais preciso, quando os coeficientes no bloco mostrado na Figura 3A são introduzidos, a unidade de geração de seqüência RL 161 realiza uma varredura em ziguezague, como mostrado na Figura 3B. A unidade de geração de seqüência RL 161, então, obtém, primeiramente, para a seqüência L, m indicando o número de valores de coeficiente nãonulos L, uma seqüência de valores absolutos desses coeficientes ILI e uma seqüência de sinais para esses coeficientes, como mostrado na Figura 24A. Isso ocorre porque L não depende de R, e pode ser obtido independentemente, enquanto R depende de L. Subseqüentemente, a unidade de geração de seqüência RL 161 gera uma seqüência de R (seqüência R), como mostrado na Figura 24B.
A unidade de armazenamento de tabela 164 armazena uma plu• · ···· ·· ·
ralidade de tabelas de VLC (por exemplo, 8), 1641a a 1641g, para a realização de uma codificação de comprimento variável em cada valor absoluto dos coeficientes ILI na seqüência L, uma pluralidade de valores limites para o valor absoluto do coeficiente ILI, e uma tabela de valor limite 1642 para al5 ternância adaptativa entre as tabelas de VLC, 1641a a 1641g, de acordo com o valor absoluto do coeficiente ILI.
A Figura 25 é um diagrama que mostra exemplos estruturais para as tabelas de VLC 1641a a 1641g. Cada uma das tabelas de VLC, 1641 a a 1641 g, na realidade correlaciona valores absolutos dos coeficientes
ILI e códigos binários, o que é mostrado em uma tabela única no diagrama.
Aqui, um número de código menor é atribuído ao valor absoluto do coeficiente ILI conforme uma freqüência de aparição do valor absoluto do coeficiente ILI fica mais alta e, geralmente, quanto menor for o valor absoluto do coeficiente ILI, mais alta se torna a freqüência de aparição. Isso ocorre porque o valor maior do valor absoluto do coeficiente ILI se dispersa, seja em um vídeo ou em uma tela, de modo que a freqüência de aparição do mesmo valor é baixa, ao passo que o valor menor do valor absoluto do coeficiente ILI, especificamente, uma componente de alta freqüência, tem uma tendência forte a indicar 1 e 2, e, desse modo, a freqüência de aparição do mesmo valor se torna mais alta. Por outro lado, usar apenas o valor absoluto do coeficiente ILI, o código binário e a tabela de VLC, os quais são mutuamente correlacionados, torna o comprimento de código muito longo conforme o valor absoluto do coeficiente ILI se torna maior. Portanto, as tabelas de VLC, 1641a a 1641g, a serem aplicadas, dependendo do valor ab25 soluto do coeficiente ILI, são preparadas de antemão, de modo que o comprimento de código não se torne mais longo, mesmo quando o valor absoluto do coeficiente ILI se torna maior.
Cada uma das tabelas de VLC, 1641a a 1641g, tem uma taxa diferente de mudança de comprimento de código para coeficientes: um com30 primento de código para o menor valor do coeficiente se torna maior em uma ordem ascendente do número k atribuído a cada uma das tabelas, e um comprimento de código para o maior valor do coeficiente fica mais curto na ··* ··· ·6 ···· ·· « • · · · · · · ·· • · · · · ·· ·· • · · ·· * · · · · • ······· • ··· ·· ·» «· ordem ascendente do número k.
Para ser mais objetivo, a tabela de VLC 1641a é uma tabela, na qual um comprimento de código é o mais curto quando o valor absoluto do coeficiente ILI é pequeno, e um comprimento de código é o mais longo quando o valor absoluto do coeficiente ILI é grande. Especificamente, a tabela de VLC 1641a, retirada das tabelas de VLC 1641a a 1641g, é uma tabela na qual a taxa de mudança de comprimento de código para valores absolutos dos coeficientes ILI é a maior, e é adequada para o caso no qual o valor absoluto do coeficiente ILI é pequeno (por exemplo, 1” a 3).
A tabela de comprimento variável 1641 g é uma tabela na qual um comprimento de código é o mais longo quando o valor absoluto do coeficiente ILI é grande, e um comprimento de código é o mais curto quando o valor absoluto do coeficiente ILI é grande. Especificamente, a tabela de VLC 1641 g, retirada das tabelas de VLC 1641a a 1641g, é uma tabela na qual a taxa de mudança de comprimento de código para valores absolutos dos coeficientes ILI é a menor, e é adequada para o caso no qual o valor absoluto do coeficiente ILI é grande (por exemplo, 193).
As tabelas de VLC, 1641b a1641f, são as tabelas nas quais o comprimento de código, gradualmente, fica mais longo, conforme o valor absoluto do coeficiente ILI se torna menor, e, gradualmente, fica mais curto, conforme o valor absoluto do coeficiente ILI se torna maior, em uma ordem ascendente de 1641b para 1641f. Especificamente, as tabelas de VLC, 1641 b a 1641 f, são as tabelas nas quais a taxa de mudança de comprimento de código para valores absolutos dos coeficientes ILI gradualmente fica menor. A tabela de VLC 1641b é adequada para ser usada quando o valor absoluto do coeficiente ILI está, por exemplo, entre 4 e 6, ao passo que a tabela de VLC 1641c é adequada para ser usada quando o valor absoluto do coeficiente ILI está, por exemplo, entre 7 e 12.
Assim, é possível melhorar a eficiência de codificação, uma vez que o código de comprimento variável, com o comprimento de código baseado no coeficiente, pode ser adaptado a cada tabela. Em outras palavras, ó possível encurtar o comprimento de código notadamente pela alternância entre as tabelas, dependendo do coeficiente, de modo que o coeficiente possa ser codificado no código de comprimento variável, cujo comprimento de código é mais curto em uma tabela do que na outra tabela, quando o coeficiente é pequeno, e o coeficiente possa ser codificado no código de comprimento variável, cujo comprimento de código é mais curto em uma tabela do que na outra, quando o coeficiente for grande. Mais ainda, o melhoramento de eficiência de codificação pode ser realizado, uma vez que uma faixa, na qual o comprimento de código fica mais curto, pode ser atribuída a cada uma das tabelas. A codificação não usa uma codificação aritmética, mas um método de VLC; portanto, um processamento complicado requerido de codificação aritmética é desnecessário, e a codificação de comprimento variável é realizada facilmente por uma referência a uma tabela, uma vez que a tabela seja determinada para codificação.
A Figura 26 é um diagrama que mostra um exemplo estrutural da tabela de valor limite 1642.
A tabela de valor limite 1642 é configurada, de antemão, de acordo com as características das tabelas de VLC 1641a a 1641 g, e mantém uma pluralidade de valores limites a serem usados para alternância entre as tabelas de VLC 1641a a 1641g. Por exemplo, os valores limites são estabelecidos, respectivamente, como se segue: 4 para a alternância entre as tabelas de VLC 1641a e 1641b, 7 para a alternância entre as tabelas de VLC 1641b e 1641c, ... e 193 para a alternância entre as tabelas de VLC 1641f e 1641g. Assim, a temporização para alternância entre as tabelas pode ser predita facilmente; portanto, é possível alternar para a tabela ótima de acordo com o valor absoluto do coeficiente ILI.
A unidade de atribuição de código 163 realiza uma codificação de comprimento variável nos valores absolutos dos coeficientes ILI extraídos da unidade de geração de seqüência RL 161, separadamente da seqüência R, usando as tabelas de VLC 1641a a 1641g, bem como a tabela de valor limite 1642 armazenada na unidade de armazenamento de tabela 164 e, então, atribui códigos binários a eles. Para resumir, a unidade de atribuição de código 163 torna unidimensionais os valores absolutos dos coeficientes
► · ···· ·· ·
ILI.
O que vem a seguir descreve uma operação de codificação realizada pelo aparelho de codificação 100c. As operações realizadas pela unidade de conversão de bloco 110 até a unidade de quantificação 130 são abreviadas, já que elas são as mesmas que aquelas descritas para os aparelhos de codificação 100a e 100b, e a codificação de comprimento variável, operada pela unidade de codificação de comprimento variável 160, é explicada em detalhes.
Os coeficientes de freqüência quantificados pela unidade de quantificação 130 são introduzidos na unidade de geração de seqüência RL 161, no aparelho de codificação de comprimento variável 160.
A unidade de geração de seqüência RL 161, como na Figura 3B, primeiramente, torna unidimensionais os coeficientes de freqüência quantificados no bloco pela realização de uma varredura em ziguezague neles, começando no domínio de componentes de corrente contínua em direção àquele de componentes de alta freqüência. A unidade de geração de seqüência RL 161, então, gera separadamente uma seqüência de Ls, cada um dos quais indicando um coeficiente não-nulo (a ser referido como a seqüência L a partir deste ponto) e uma seqüência de Rs, cada um dos quais indica o número de coeficientes nulos consecutivos (a ser referido como seqüência R a partir deste ponto). As figuras 24A e 24B mostram exemplos da seqüência L e da seqüência R geradas. Quanto à seqüência L, ela pode ser dividida no número de coeficientes m, valores absolutos dos coeficientes ILI e sinais dos coeficientes. Com referência aos sinais dos coeficientes, 0 indica que o coeficiente é positivo, ao passo que 1 indica que o coeficiente é negativo.
Aqui, o coeficiente da seqüência L se aproxima de 1 pela varredura do domínio de baixa freqüência em direção ao domínio de alta freqüência, uma vez que o coeficiente da componente de alta freqüência geralmente tende a se tornar 0.
A unidade de atribuição de código 163 codifica cada valor L na seqüência L gerada pela unidade de geração de seqüência RL 161, em uma
• 15 ordem oposta à ordem usada para a varredura em ziguezague, isto é, começando a partir dos coeficientes de alta freqüência. Especificamente, a unidade de atribuição de código 163 obtém em seqüência códigos de Huffman (códigos de comprimento variável) correspondentes aos valores absolutos dos coeficientes ILI começando do fim da seqüência L, usando as tabelas de VLC 1641a a 1641 g.
A razão para a codificação do valor L, em uma ordem inversa à ordem usada para a varredura em ziguezague, é que coeficientes não-nulos no domínio de alta freqüência convergem em uma periferia do coeficiente 1, e é fácil determinar a primeira tabela para a codificação, gerar as tabelas de VLC 1641a a 1641g e determinar os valores limites.
A unidade de atribuição de código 163 atribui códigos de comprimento variável a Ls na seqüência L e Rs na seqüência R, usando várias tabelas armazenadas na unidade de armazenamento de tabela 164. A unidade de atribuição de código 163 também atribui um código de comprimento variável ao número de coeficientes m, mas o processamento de atribuição dos códigos de comprimento variável aos valores absolutos dos coeficientes ILI é descrito aqui.
A Figura 27 é um fluxograma, que mostra o processamento de atribuição dos códigos de comprimento variável operados pela unidade de atribuição de código 163.
A unidade de atribuição de código 163 estabelece o número de coeficientes m, extraídos da unidade de geração de seqüência RL 161, como um começo para a codificação dos coeficientes (valores absolutos dos coeficientes ILI) no bloco (S101). Então, a unidade de atribuição de código 163 estabelece 0 para o número de tabela k como um valor inicial da tabela de VLC a ser usado para referência (S102), se refere à tabela de valor limite 1642 e estabelece um valor limite para 4 (S103).
Quando as configurações do número de coeficientes m, da tabela de VLC referencial (tabela de VLC 1641a, neste caso) e do valor limite estão terminadas, a unidade de atribuição de código 163 lê o valor absoluto do coeficiente ILI, o qual é encaminhado pela unidade de geração de se30
qüência RL 161, começando do último (S104), e codifica o valor absoluto lido do coeficiente ILI em um código de comprimento variável, usando a tabela de VLC com o número estabelecido de antemão (S105). Então, quando a codificação está terminada, a unidade de atribuição de código 163 armazena o código binário obtido pela codificação em um buffer (por exemplo, um buffer FILO), que não é mostrado no diagrama (S106), decrementa o número de coeficientes m em 1 (S107), e julga se o número decrementado m indica 0 ou não, especificamente, se todos os coeficientes incluídos na seqüência L estão codificados ou não (S108).
Quando o número de coeficientes m não indica 0 (Não em S108), é julgado se o valor absoluto do coeficiente imediatamente precedente excedeu ou não o valor limite (S109). Se ele não excedeu o valor limite (Não em S109), a unidade de atribuição de código 163 lê o valor absoluto do próximo coeficiente ILI, começando do último (S104), e executa as etapas S105 a S108, ou similares. Especificamente, a unidade de atribuição de código 163 codifica o valor absoluto do próximo coeficiente, usando a mesma tabela de VLC usada para o coeficiente prévio.
Se o valor absoluto do coeficiente ILI imediatamente precedente excedeu o valor limite (Não em S109), a unidade de atribuição de código 163 incrementa o número de tabela k em 1“ (S110). Assim, na codificação do valor absoluto do próximo coeficiente ILI, a tabela de VLC com baixa taxa de mudança no comprimento de código, a qual é aplicável à codificação do valor absoluto do coeficiente ILI cujo comprimento de código é longo, é referida (por exemplo, a tabela de VLC 1641b com k = 1 é referida, quando a tabela de VLC prévia for 1641 a com k = 0).
Quando o incremento para o número de tabela k está terminado, a unidade de atribuição de código 163 se refere à tabela de valor limite 1642 e a atualiza para o próximo valor limite (por exemplo, 7, quando o valor limite prévio for 4) (S111). Assim, a tabela pode ser alternada para a próxima tabela de VLC com uma baixa taxa de mudança de comprimento de código, o que é aplicável à codificação do valor absoluto do coeficiente ILI, cujo comprimento de código é longo, apenas quando o valor absoluto do coefici-
·· · · · · ·· ente ILI tiver excedido o novo valor limite.
Mais precisamente, quando o valor absoluto do coeficiente ILI prévio tiver excedido o valor limite 4, atribuído à alternância entre as tabelas de VLC 1641a com o número de tabela 0, e 1641b, com o número de tabela 1, a referência é alternada da tabela de VLC 1641a para a tabela de VLC 1641b para codificação do valor absoluto do próximo coeficiente, e o valor limite é estabelecido em 7, como mostrado na Figura 28.
De modo similar, quando o valor absoluto do coeficiente ILI tiver excedido o valor limite 7 a 193, entre a tabela de VLC 1641b, com o número de tabela 1, e a tabela de VLC 1641g, com o número de tabela 6, a referência para codificação do valor absoluto do próximo coeficiente ILI é alternada, seqüencialmente, da tabela de VLC 1641b, com o número de tabela 1, para a tabela de VLC 1641c, com o número de tabela 2, ... e para a tabela de VLC 1641 g. Isso é mostrado na Figura 28.
Aqui, uma direção de alternância entre as tabelas é unidirecional e não volta. Assim, a alternância freqüente das tabelas, dependendo do coeficiente, pode ser impedida e, desse modo, o número de vezes de alternância entre as tabelas pode ser reduzido. Por exemplo, uma vez que a área de trabalho na memória é de espaço limitado, apenas a tabela a ser usada é armazenada. Neste caso, leva tempo para se começar a codificação do próximo coeficiente, uma vez que leva tempo para se ler a próxima tabela da ROM e expandí-la na área de trabalho a cada vez que a tabela for alternada. A alternância de forma unidirecional desta forma entre as tabelas é efetiva na limitação do número de vezes de alternância entre as tabelas, e na abreviação do tempo total necessário para a codificação do próximo coeficiente.
Quando o incremento do número de tabela e a atualização do valor limite assim estiverem terminados, a unidade de atribuição de código 163 lê o valor absoluto do próximo coeficiente ILI, começando do último (S104) e executa as Etapas S105 a S108, ou similares. Especificamente, a codificação é realizada usando-se a tabela de VLC adequada para o caso em que o valor absoluto do coeficiente ILI é maior do que o anterior.
Esse processamento é executado repetidamente, até o número
• ·· ···· ·· · • · ·· ··· ··· • · ·· ····· · • · · ·· · ·· · ··· ·· ·· · ·· • 15 de coeficientes m indicar 0, que é o tempo em que a codificação dos valores absolutos dos coeficientes ILI no bloco corrente termina.
Para ser mais concreto, quando a seqüência dos valores absolutos dos coeficientes ILI no bloco for 1, Ί, 2, 3, 4, Ί2, 2, 3, 31, 22, 5, 9 e 38, começando do fim da seqüência, a unidade de atribuição de código 163 os codifica respectivamente em códigos binários 1, 1, 010, 011, 00100 e 0001100, nesta ordem, usando primeiramente a tabela de VLC 1641a. A unidade de atribuição de código 163, então, alterna a tabela para codificação para a tabela de VLC 1641 b com o número de tabela k = 1, uma vez que o valor limite 4 é excedido quando o valor absoluto do coeficiente ILI indicando 12 é codificado.
A unidade de atribuição de código 163, então, codifica, respectivamente, o valor absoluto do próximo coeficiente ILI indicando 2, 3 e 31 em códigos binários 11, 0100 e 0000100000, com o uso da tabela de VLC 1641b para a qual a tabela é alternada. A unidade de atribuição de código 163, então, alterna a tabela para codificação para a tabela de VLC 1641c, com o número de tabela k = 2, uma vez que o valor limite 7 é excedido na codificação do valor absoluto do coeficiente ILI indicando 31.
Mais ainda, a unidade de atribuição de código 163 codifica o valor absoluto do próximo coeficiente em um código binário 0011001, usando a tabela de VLC 1641c para a qual a tabela é alternada. A unidade de atribuição de código 163, então, alterna a tabela para codificação para a tabela de VLC 1641 d, com o número de tabela k = 3, uma vez que o valor limite 13 é excedido na codificação do valor absoluto do coeficiente ILI indicando 22.
A unidade de atribuição de código 163, então, codifica, respectivamente, os valores absolutos dos coeficientes ILI seguintes indicando 5, 9 e 38 nos códigos binários 1100, 010000 e 00101101, usando a tabela de VLC 1641 d para a qual a tabela é alternada.
Conseqüentemente, o código binário
1101001100100000110011010000001000000011001110001000000101101 é armazenado no buffer.
»· ···· ·· · • · · · · • · * · · ·
O número de coeficientes na seqüência L, m, os códigos binários dos valores absolutos dos coeficientes ILI, os sinais dos coeficientes e os códigos binários dos valores R na seqüência R, os quais são codificados, também são armazenados no buffer e transmitidos para o aparelho de decodificação através de um meio de gravação, como um CD, e um meio de transmissão, tal como a Internet, uma difusão por satélite, ou similar.
Aqui, quando é assumido que os valores absolutos dos coeficientes na seqüência L, Ί, 1, 2, 3, 4, 12, 2, 3, 31, 22, 5, 9 e são codificados usando-se apenas a tabela de VLC 1641 a, os códigos binários são 1, 1, 010, 011, 00100, 0001100, 010, 011, 010, 011, 000011111, 000010110, 00101, 001001 e 00000100110, dos quais o comprimento de código totaliza 64 bits.
Em contraste, pelo uso do método de codificação de acordo com a quinta modalidade, é possível melhorar a eficiência de codificação, mesmo quando o valor maior do valor absoluto do coeficiente ILI no bloco for relativamente pequeno, e o valor absoluto do coeficiente ILI não aumentar gradualmente, uma vez que o comprimento de código totaliza 61 bits. Isso pode ser imputado grandemente ao fato de, quando o valor absoluto do coeficiente ILI indicar, por exemplo, 22 e 381, ela requer 9 bits de 000010110 e 11 bits de 00000100110, usando apenas a tabela de VLC 1641a para a codificação, ao passo que ela requer apenas 7 bits de 0011001 e 8 bits de 00101101, usando-se o presente método. Portanto, é possível melhorar a eficiência de codificação notadamente, quando o valor maior do coeficiente ILI no bloco normal for relativamente alto e o valor absoluto do coeficiente ILI aumentar gradualmente.
Na quinta modalidade, quando o valor absoluto do coeficiente ILI imediatamente precedente exceder o valor limite (Sim em S109), o número de tabela k é incrementado em 1 (S110), e a codificação é realizada usando-se a tabela de VLC com o próximo número (veja uma referência à Figura 28). Entretanto, a tabela pode ser desviada para a tabela de VLC adaptada ao valor absoluto do coeficiente ILI, dependendo do valor absoluto do coeficiente ILI imediatamente precedente, o qual excedeu o valor limite. Especifi30 ···· camente, quando o valor absoluto do coeficiente ILI imediatamente precedente, a ser codificado com referência à tabela com o número k = 1, for 20, por exemplo, há uma alta possibilidade de o valor absoluto do próximo coeficiente ILI ser maior do que 20; portanto, a tabela com o número k = 3 pode ser usada como uma referência para a codificação do valor absoluto do próximo coeficiente ILI. Neste caso, o valor limite pode ser estabelecido para um correspondente à tabela de VLC (por exemplo, 25).
É explicado que oito tabelas de VLC são usadas, mas o número de tabelas de VLC pode estar entre 2 e 7 ou ser maior do que 8, usando-se uma pluralidade de valores limites, e a tabela de VLC pode ser alternada a cada vez que cada valor limite for excedido.
Também, na quinta modalidade, o valor absoluto e o sinal do coeficiente são codificados separadamente, e cada tabela de VLC para valores absolutos de coeficientes não contém sinais (valores absolutos), embora os coeficientes com sinais possam ser codificados. Neste caso, os códigos binários podem incluir os sinais. Por exemplo, 1 bit para o sinal pode ser adicionado ao bit LSB para o código de comprimento variável.
Na quinta modalidade, o caso no qual uma imagem é codificada por meio de uma codificação intra-imagem é descrito, embora os mesmos efeitos possam ser obtidos para o caso em que uma imagem é codificada por meio de uma codificação inter-imagem, pela realização de uma compensação de movimento, e outros em uma imagem em movimento de entrada, usando-se o método de acordo com a presente modalidade.
Também, a quinta modalidade descreve o caso de divisão da imagem de entrada em blocos, cada um dos quais sendo dimensionado 4 (horizontal) x 4 (vertical) pixels, embora um tamanho diferente possa ser dado para o tamanho do bloco.
A quinta modalidade descreve um método de varredura de um bloco com referência à Figura 3B, embora um método de varredura diferente possa ser empregado, desde que a varredura seja realizada do domínio de baixa freqüência em direção ao domínio de alta freqüência.
Também, um exemplo da tabela de VLC é descrito com referên30 • · cia à Figura 25, embora ela possa ser uma tabela diferente.
A quinta modalidade descreve o caso de adição do número de valores L ao começo da seqüência L, embora o EOB possa ser anexado ao fim da seqüência L.
(Sexta Modalidade)
A Figura 30 é um diagrama de blocos que mostra uma estrutura funcional de um aparelho de decodificação, ao qual o método de decodificação de comprimento variável e o método de decodificação de imagem em movimento, usando-os de acordo com a modalidade da presente invenção, são aplicados. Aqui, o fluxo de bits gerado, usando-se o método de codificação de comprimento variável da presente invenção descrito na quinta modalidade, será usado.
Como mostrado na Figura 30, o aparelho de decodificação 500c é compreendido por uma unidade de decodificação de comprimento variável
560, uma unidade de quantificação inversa 520, uma unidade de transformação de freqüência inversa 530 e uma memória de imagem 540. Cada unidade compondo esse aparelho de decodificação 500c pode ser realizada em uma CPU, uma ROM para armazenamento, de antemão, de um programa ou de dados executados pela CPU e uma memória para a provisão de uma área de trabalho quando o programa for executado, bem como para o armazenamento temporário de um fluxo de bits de entrada, ou similar. Quanto à unidade de quantificação inversa 520, à unidade de transformação de freqüência inversa 530 e à memória de imagem 540, as estruturas são as mesmas que aquelas descritas para os aparelhos de decodificação 500a e
500b; portanto, as descrições são abreviadas e a estrutura da unidade de decodificação de comprimento variável 560 é explicada em detalhes.
A unidade de decodificação de comprimento variável 560 é compreendida por uma unidade de conversão de código 561, uma unidade de armazenamento de tabela 562 e uma unidade de geração de coeficiente
564.
A unidade de armazenamento de tabela 562 armazena, de antemão, uma pluralidade de tabelas de VLC, 5621a a 5621 g, correlacionando códigos de comprimento variável com valores absolutos de coeficientes ILI, bem como uma tabela de valor limite 5622, ou similar. As tabelas de VLC 5621a a 5621 g são construídas da mesma maneira que as tabelas de VLC 1641a a 1641g mostradas na Figura 25, e a tabela de valor limite 5622 é construída da mesma maneira que a tabela de valor limite 1642 mostrada na Figura 26.
A unidade de conversão de código 561 realiza uma conversão em um fluxo de bits introduzido, de modo que os códigos de comprimento variável sejam convertidos no número de coeficientes na seqüência L, m, nos valores absolutos dos coeficientes ILI e nos valores R na seqüência R, usando-se as tabelas armazenadas na unidade de armazenamento de tabela 562 (as tabelas de VLC 5621a a 5621 g e a tabela de valor limite 5622, e similares). As tabelas de VLC 5621a a 5621 g são usadas para a conversão dos valores absolutos dos coeficientes ILI.
A unidade de geração de coeficiente 564 converte os valores RL em coeficientes com base na seqüência L e na seqüência R introduzidas, e as torna bidimensionais usando um método de varredura predeterminado. Quando da conversão da seqüência RL em coeficientes, um coeficiente 0 é gerado para o número indicado por R, com base em uma ordem de varredura predeterminada, então, o coeficiente indicado por L é gerado. Aqui, assumindo que os coeficientes sejam varridos em ziguezagues, começando no domínio de baixa freqüência em direção ao domínio de alta freqüência, a seqüência RL é convertida em um bloco de coeficiente mostrado na Figura 11.0 bloco de coeficiente gerado é introduzido na unidade de quantificação inversa 520.
O que vem a seguir descreve as operações de decodificação em cada unidade na unidade de decodificação de comprimento variável 560.
Aqui, isso é descrito com uma hipótese de que os códigos do fluxo de bits de entrada de código binário introduzido pela unidade de conversão de código 561 são 1, 1, 101, 011, 00100, 0001100, 11, 0100, 0000100000, 0011001, 1100, 010000 e 00101101, em seqüência começando do início.
A unidade de conversão de código 561, como um começo para a decodificação dos códigos de comprimento variável, decodifica o número de coeficientes m extraído do aparelho de codificação 100c e estabelece o número decodificado de coeficiente m. A unidade de conversão de código 561, então, estabelece um número de tabela k em “0”, como um valor inicial de uma tabela de VLC de referência. Então, a unidade de atribuição de código 163 refere-se à tabela de valor limite 5622 e estabelece um valor limite em 4 (S103). Após o número de coeficientes m, a tabela de VLC de referência (tabela de VLC 5621a neste caso) e o valor limite serem estabelecidos, a unidade de conversão de código 561 lê, seqüencialmente, os valores absolutos dos coeficientes ILI a partir do começo (especificamente, a partir daqueles no domínio de alta freqüência) em uma ordem na qual eles são encaminhados a partir do aparelho de codificação 100c, e realiza uma decodificação de comprimento variável nos códigos de comprimento variável lidos nos valores absolutos dos coeficientes ILI, usando a tabela de VLC com o número estabelecido. Após a decodificação de cada código de comprimento variável, a unidade de conversão de código 561 armazena o valor absoluto do coeficiente ILI obtido na decodificação em um buffer, que não é mostrado no diagrama (por exemplo, um buffer FILO), decrementa o número de coeficientes m em 1, e julga se o número m indica ou não 0 após o decremento, isto é, se todos os coeficientes incluídos na seqüência L estão ou não decodificados.
Quando o número de coeficientes m não indica 0, é julgado se o valor absoluto do coeficiente ILI imediatamente precedente, que é decodificado com comprimento variável, excedeu ou não o valor limite. Se ele não tiver excedido o valor limite, a unidade de conversão de código 561 lê o próximo código de comprimento variável a partir do fim, e o decodifica como um valor absoluto do coeficiente ILI, usando a mesma tabela usada para aquele antes.
Se o valor absoluto do coeficiente ILI imediatamente precedente, que é decodificado de comprimento variável, excedeu o valor limite, a unidade de conversão de código 561 incrementa o número de tabela k em 1.
* 15 • · · · · · • · · • · · ♦ · · • · · · ··· ·· ·· ·· · ··· • · · · · • · ·· · ··· • · ··· · · • · · · ·
Γί/Í 1
Assim, na codificação do valor absoluto do coeficiente ILI seguinte, a tabela de VLC com baixa taxa de mudança no comprimento de código, a qual é aplicável à codificação do valor absoluto do coeficiente ILI, cujo comprimento de código é longo (por exemplo, a tabela de VLC 5621b é referida quando a tabela de VLC prévia é 5621a), é referida. Quando o incremento para o número de tabela k é terminado, a unidade de conversão de código 561 referese à tabela de valor limite 5622 e a atualiza para o próximo valor limite (por exemplo, 7, quando o valor limite prévio for 4). Assim, a tabela pode ser alternada para a próxima tabela de VLC com baixa taxa de mudança no comprimento de código, o que é aplicável à codificação do valor absoluto do coeficiente ILI, cujo comprimento de código é longo, apenas quando o valor absoluto do coeficiente ILI tiver excedido o novo valor limite.
Para ser mais objetivo, a tabela de VLC 5621a, com o número de tabela k = 0, é referida para o primeiro código de comprimento variável. Agora, assuma que a tabela de VLC 5621a seja referida, o código de comprimento variável que corresponde ao fluxo de bits de entrada seja 1, e que o valor absoluto do coeficiente ILI neste caso seja 1. De modo similar, na conversão seqüencialmente precedente de códigos de comprimento variável em valores absolutos dos coeficientes ILI, usando-se a tabela de VLC 5621a, os códigos de comprimento variável são convertidos nos valores absolutos dos coeficientes ILI como se segue: o código de comprimento variável 1 no valor absoluto do coeficiente ILI 1; o código de comprimento variável 010 no valor absoluto do coeficiente ILI 3; o código de compriménto variável 00100 no valor absoluto do coeficiente 4; e o código de comprimento variável 0001100 no valor absoluto do coeficiente ILI 12.
Aqui, assumindo que o valor limite para o valor absoluto do coeficiente (Ll seja 4, o valor absoluto do coeficiente ILI excede o valor limite quando o sexto código de comprimento variável é convertido. Portanto, a unidade de conversão de código 561 usa a próxima tabela de VLC 5621b com o número k = 1 para a conversão dos valores absolutos subseqüentes dos coeficientes ILI, estabelece o valor limite em 7, e os converte nos valors absolutos dos coeficientes ILI. Conseqüentemente, o sétimo código de
• ··· 9
9· ···« comprimento variável 11 é convertido no valor absoluto do coeficiente ILI
O oitavo código de comprimento variável 0100 é convertido no valor absoluto do coeficiente ILI 3, ao passo que o nono código de compri5 mento variável 000010000 é convertido no valor absoluto do coeficiente ILI 31. Assumindo aqui que o valor limite para o valor absoluto do coeficiente ILI seja 7, o valor absoluto do coeficiente ILI excede o valor limite no nono valor absoluto do coeficiente ILI 31. Portanto, a unidade de conversão de código 561 usa a tabela de VLC 5621b com o número de tabela k = 2 para a conversão dos valores absolutos subseqüentes dos coeficientes ILI, estabelece o valor limite para 13 e os converte nos valores absolutos dos coeficientes ILI. Enquanto isso, mesmo quando o valor absoluto do coeficiente ILI, obtido na decodificação do sétimo valor absoluto do coeficiente ILI, fica abaixo do valor limite 7, a tabela não é alternada de volta para a tabela de VLC
5621a, e realiza a conversão usando a tabela de VLC 5621 b.
Com a repetição do processamento acima, os valores absolutos dos coeficientes ILI equivalentes a um bloco único (coeficientes m) são gerados, e eles são reordenados de forma inversa usando-se, primeiro a entrar último a sair, operado pelo buffer FILO. Os sinais também são reordenados inversamente, usando-se, primeiro a entrar último a sair, operado pelo buffer FILO. Entretanto, o número não será reordenado. É assumido aqui que a seqüência seja gerada na mesma ordem que a usada para a seqüência L mostrada na Figura 24A (especificamente, uma ordem começando no domínio de baixa freqüência em direção ao domínio de alta freqüência).
Cada um dos valores absolutos dos coeficientes ILI na seqüência L assim reordenados é introduzido na unidade de geração de coeficiente 564. A unidade de conversão de código 561 decodifica cada valor R, na seqüência R usando o mesmo processamento que o usado para os valores absolutos dos coeficientes ILI, e encamnha a seqüência R, mostrada na Fi30 gura 24A, para a unidade de geração de coeficiente 564.
A unidade de geração de coeficiente 564 converte a seqüência
RL em coeficientes com base na seqüência L e na seqüência R introduzidas.
• ·· ···· ·· · • · · · · · • · · · · · · • · · · ····· • · · · · · · • ·· ·· ·· · • ···· • · • · · • · · · · • · · • ··
Ao fazê-lo, a unidade de geração de coeficiente 564 realiza a conversão da seqüência RL em coeficientes ao realizar repetidamente a operação a seguir: geração de um coeficiente O para o número indicado por R e, então, geração do coeficiente para o valor indicado por L pela adição dos sinais. Aqui, assuma que a varredura seja realizada em ziguezague, começando no domínio de baixa freqüência em direção ao domínio de alta freqüência, a seqüência R mostrada na Figura 24A e a seqüência L, mostrada na Figura 24B, sejam convertidas em um bloco de coeficiente. O bloco de coeficiente gerado é introduzido na unidade de quantificação inversa 520.
Como descrito acima, no método de decodificação de comprimento variável de acordo com a sexta modalidade, primeiramente na etapa de decodificação, uma pluralidade de tabelas de codificação (decodificação) de comprimento variável a ser usada para a decodificação é alternada em uma direção, os códigos de comprimento variável no fluxo de bits são decodificados em coeficientes não-nulos, de acordo com um domínio de freqüência em uma ordem predeterminada, usando-se a tabela de VLC para a qual a tabela é alternada. Subseqüentemente, na etapa de conversão de coeficiente, os coeficientes não-nulos são convertidos em coeficientes em um bloco, com base nos coeficientes gerados. Aqui, cada uma das tabelas tem uma taxa diferente de mudança de comprimento de código para coeficientes, de modo que um comprimento de código do menor coeficiente fique mais longo conforme o número atribuído à tabela se torne maior, e um comprimento de código do coeficiente maior fique mais curto conforme o ro de tabela se torne maior. O valor limite é estabelecido com base na capacidade de adaptação de cada tabela, na qual um comprimento de código correspondente a um coeficiente é mais curto do que na outra tabela. Os códigos de comprimento variável no fluxo de bits são ordenados começando pelos componentes de alta freqüência em direção aos componentes de baixa freqüência. Na etapa de decodificação, os códigos de comprimento variável são decodificados nos coeficientes de acordo com a ordem na qual o fluxo de bits é composto, uma seqüência de coeficientes é gerada pela extração dos coeficientes decodificados em uma ordem começando do fim do fluxo de bits. Na etapa de geração de coeficiente, os coeficientes são varridos de acordo com a ordem na qual a seqüência de coeficientes é composta.
Na etapa de codificação, quando o valor absoluto do coeficiente decodificado excede o valor limite, o próximo código de comprimento variável é decodificado em um coeficiente pela alternância da tabela, usada para a decodificação do código de comprimento variável corrente a ser decodificado, para uma tabela cujo número é maior do que aquele atribuído à tabela presente.
Com o processamento acima, o fluxo de bits, que é codificado usando-se o método de codificação de comprimento variável, de acordo com a presente invenção, pode ser apropriadamente decodificado pelo uso do método de decodificação de comprimento variável, de acordo com a presente invenção.
Na sexta modalidade, é assumido que, quando o valor absoluto do coeficiente ILI decodificado imediatamente precedente excede o valor limite, o número de tabela k é incrementado em 1, e a decodificação é realizada usando-se a tabela de VLC com o próximo número, como na quinta modalidade. Entretanto, a tabela pode ser desviada para uma adaptada para o valor absoluto do coeficiente ILI, de acordo com o valor absoluto do coeficiente imediatamente precedente, o qual excedeu o valor limite, sob a condição de o método de alternância entre as tabelas ser o mesmo que aquele usado para codificação. Neste caso, o valor limite pode ser estabelerado para um correspondente à tabela de VLC.
Na sexta modalidade, um exemplo da tabela de VLC é descrito com referência à Figura 25, mas uma tabela diferente pode ser usada, desde que ela seja aquela usada para a codificação. Também, o caso de uso de oito tabelas de VLC é descrito, mas o número de tabelas pode estar entre dois e seis ou mais de oito, usando-se uma pluralidade de valores limites, e as tabelas de VLC podem ser alternadas a cada vez que cada um dos valores limites for excedido. Entretanto, a estrutura da tabela de VLC e o valor limite aqui serão os mesmos que aqueles usados para a codificação.
Também, na sexta modalidade, o valor absoluto e o sinal do coeficiente são codificados separadamente, e cada tabela de VLC para valores absolutos de coeficientes não contêm sinais (valores absolutos), embora os coeficientes com os sinais possam ser codificados. Neste caso, os códigos binários podem incluir os sinais. Por exemplo, 1 bit para o sinal pode ser adicionado a um bit LSB para o código de comprimento variável.
Também, na sexta modalidade, a tabela de VLC é alternada quando o valor L tiver excedido o valor limite. Uma tabela de VLC com um número grande pode ser usada para a decodificação dos valores absolutos dos coeficientes ILI em uma ordem descendente (especificamente, começando a partir daqueles no domínio de alta freqüência), e pode ser alternada para uma tabela LC com um número pequeno, quando o valor absoluto do coeficiente ILI decodificado ficar abaixo do valor limite.
Na sexta modalidade, o caso no qual uma imagem é codificada por meio de codificação intra-imagem é descrito, embora os mesmos efeitos possam ser obtidos para o caso, no qual uma imagem é codificada por meio de codificação inter-imagem, pela realização de uma compensação de movimento e outros em uma imagem em movimento de entrada, usando-se o método de acordo com a presente modalidade.
Também, a sexta modalidade descreve o caso de divisão da imagem de entrada em blocos, cada um dos quais sendo dimensionado 4 (horizontal) x 4 (vertical) pixels, embora um tamanho diferente possa ser dado para o tamanho do bloco.
A sexta modalidade descreve um método de varredura de um bloco com referência à Figura 11, embora uma ordem de varredura diferente possa ser usada, desde que seja a mesma que aquela usada para a codificação.
(Sétima Modalidade)
O que vem a seguir descreve um exemplo de realização do mé30 todo de codificação de comprimento variável, do método de decodificação de comprimento variável, de um aparelho de codificação de comprimento variável, do aparelho de decodificação de comprimento variável, do método de • · codificação de imagem em movimento, do método de decodificação de imagem em movimento e do aparelho de decodificação de imagem em movimento de acordo com a presente invenção, em uma outra modalidade.
É possível realizar o processamento descrito em cada uma das 5 montagens acima em um sistema de computação independente, pela gravação de um programa para a realização das estruturas do aparelho de codificação ou do aparelho de decodificação, mostrados em cada uma das montagens acima, em um meio de gravação, tal como um disco flexível ou similar.
A Figura 32 é uma ilustração para a realização do método de codificação de imagem em movimento descrito na primeira, na terceira e na quinta montagens ou do método de decodificação de imagem em movimento descrito na segunda, na quarta e na sexta modalidades no sistema de computação, usando-se o programa gravado no disco flexível no qual o progra15 ma é gravado.
A Figura 32A mostra uma aparência completa de um disco flexível, sua estrutura em seção transversal e o disco flexível em si, ao passo que a Figura 32B mostra um exemplo de um formato físico do disco flexível como um corpo principal de um meio de armazenamento. Um disco flexível
FD está contido em um invólucro F com uma pluralidade de trilhas Tr formadas concentricamente a partir da periferia até o interior na superfície do disco, e cada trilha é dividida em 16 setores Se na direção angular. Assim, o programa é armazenado em uma área atribuída para ele no disco flexível FD.
A Figura 32C mostra uma estrutura para a gravação e a leitura do programa no disco flexível FD. Quando o programa é gravado no disco flexível FD, o sistema de computação Cs escreve o programa através de uma unidade de disco flexível. Quando o aparelho de codificação e o aparelho de decodificação são construídos no sistema de computação, usando-se o programa no disco flexível, o programa é lido a partir do disco flexível e, então, transferido para o sistema de computação pela unidade de disco flexível.
i, »
···· · ····
A explanação acima é feita com base em uma hipótese de o meio de armazenamento ser um disco flexível, mas o mesmo processamento também pode ser realizado usando-se um disco ótico. Além disso, o meio de armazenamento não está limitado a um disco flexível e um disco ótico, mas qualquer outro meio, tal como uma placa de circuito impresso IC e um cassete de ROM, capaz de gravar um programa, pode ser usado.
O que vem a seguir é uma descrição para as aplicações do método de codificação/decodificação de imagem em movimento ilustrado na modalidade mencionada acima e de um sistema que os usa.
A Figura 33 é um diagrama de bloco que mostra uma configuração geral do sistema de suprimento de conteúdo ex100 para a realização do serviço de envio de conteúdo. A área para a provisão do serviço de comunicação é dividida em células de tamanho desejado, e locais de célula ex107 a ex110, os quais são estações sem fio fixas, são colocados nas respectivas células.
Este sistema de provisão de conteúdo ex100 é conectado a dispositivos tais como um computador ex111, um PDA (Assistente Digital Pessoal) ex112, uma câmera ex113, um telefone celular ex114 e um telefone celular com uma câmera ex115, por exemplo, Internet ex101, um provedor de serviços de Internet ex102, uma rede de telefonia ex104, bem como os locais de célula ex107 a ex110.
Entretanto, o sistema de suprimento de conteúdo ex100 não está limitado à configuração mostrada na Figura 33, e pode ser conectado a uma combinação de qualquer um deles. Também, cada dispositivo pode ser conectado diretamente à rede de telefonia ex104, não através dos locais de célula ex107 a ex110.
A câmera ex113 é um dispositivo capaz de fazer um vídeo, tal como uma câmera de vídeo digital. O telefone celular ex114 pode ser um telefone celular de qualquer um dos seguintes sistemas: um PDC (Comuni30 cações Digitais Pessoais), um sistema CDMA (Acesso Múltiplo por Divisão de Código), um sistema W-CDMA (Acesso Múltiplo por Divisão de Código de Banda Larga) ou um sistema GSM (Sistema Global para Comunicações Mó• · · · ·
«/ » veis), um PHS (Sistema de Telefone Portátil Pessoal) ou similar.
Um servidor de fluxo contínuo de dados ex103 é conectado à câmera ex113 através da rede de telefonia ex104 e também do local de célula ex109, o qual realiza uma distribuição ao vivo ou similar, usando a câ5 mera ex113, com base nos dados codificados transmitidos a partir do usuário. A câmera ex113 ou o servidor ou similar, o qual transmite os dados, pode codificar os dados. Os dados de imagem em movimento, feitos por uma câmera ex116, podem ser transmitidos para o servidor de fluxo contínuo de dados ex103, através do computador ex111. Neste caso, a câmera ex116 ou o computador ex111 pode codificar os dados de imagem em movimento. Um LSI ex117, incluído no computador ex111 e na câmera ex116, realiza o processamento de codificação. Um software para a codificação e a decodificação de imagens podem ser integrados em qualquer tipo de meio de armazenamento (tal como um CD-ROM, um disco flexível e um disco rí15 gido), que é um meio de gravação o qual pode ser lido pelo computador ex111 ou similar. Mais ainda, um telefone celular com uma câmera ex115 pode transmitir os dados de imagem em movimento. Estes dados de imagem em movimento são os dados codificados pelo LSI incluído no telefone celular ex115.
O sistema de suprimento de conteúdo ex100 codifica conteúdos (tal como um vídeo de música ao vivo) feitos por um usuário, usando a câmera ex113, a câmera ex116 ou similar, da mesma forma que a mostrada na montagem mencionada acima, e transmite-os para o servidor de fluxo de dados contínuo ex103, enquanto o servidor de fluxo de dados contínuo ex103 faz um envio contínuo dos dados de conteúdo para os clientes a seu pedido. Os clientes incluem o computador ex111, o PDA ex112, a câmera ex113, o telefone celular ex114 e assim por diante, capazes de decodificarem os dados codificados mencionados acima. No sistema de suprimento de conteúdo ex100, os clientes, assim, podem receber e reproduzir os dados codificados, e ainda podem receber, decodificar e reproduzir os dados em tempo real, de modo a realizarem uma difusão pessoal.
Quando cada dispositivo neste sistema realiza uma codificação
• · • · · , • ···· ou uma decodificação, o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem, como mostrado na montagem mencionada acima, pode ser usado.
Um telefone celular será explicado como um exemplo desse aparelho.
A Figura 34 é um diagrama que mostra o telefone celular ex115 usando o método de codificação/decodificação de imagem explicados nas montagens mencionadas acima. O telefone celular ex115 tem uma antena ex201 para comunicação com o local de célula ex110 através de ondas de rádio, uma unidade de câmera ex203 tal como uma câmera com CCD, capaz de tomar imagens em movimento e paradas, uma unidade display ex202, tal como um visor de cristal líquido para a exibição dos dados, tal como imagens decodificadas e similares feitas pela unidade de câmera ex203 e recebidos pela antena ex201, uma unidade de corpo, incluindo um conjunto de teclas de operação ex204, uma unidade de saída de voz ex208, tal como um altofalante, para a saída de voz, uma unidade de entrada de voz ex205, tal como um microfone, para a entrada de voz, um meio de armazenamento ex207 para o armazenamento de dados codificados ou decodificados, tais como dados de imagens em movimento ou paradas feitas pela câmera, dados de e-mails recebidos e de imagens em movimento ou paradas, e uma unidade de conector ex206 para conexão do meio de armazenamento ex207 ao telefone celular ex115. O meio de armazenamento ex207 armazena em si um elemento de memória flash, um tipo de EEPROM (Memória Apenas de Leitura Eletricamente Apagável e Programável), que é uma memória não volátil eletricamente apagável, e que pode ser reescrita em um invólucro de plástico, tal como um cartão SD.
Em seguida, o telefone celular ex115 será explicado com referência à Figura 35. No telefone celular ex115, uma unidade de controle principal ex311, projetada de modo a controlar, no geral, cada unidade do corpo principal, o qual contém a unidade display ex202, bem como as teclas de operação ex204, é conectada mutuamente a uma unidade de circuito de suprimento de energia 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 escri5 ta/leitura ex307, uma unidade de circuito de modem ex306 e uma unidade de processamento de voz ex305, através de um barramento síncrono ex313.
Quando uma tecla de término de chamada ou uma tecla de energia é LIGADA por uma operação do usuário, a unidade de circuito de suprimento de energia ex310 supre as respectivas unidades com energia a partir de uma bateria, de modo a ativar o telefone celular digital com uma câmera ex115, como em um estado de pronto para operar.
No telefone celular ex115, a unidade de processamento de voz ex305 converte os sinais de voz recebidos pela unidade de entrada de voz ex205 em um modo de conversação em dados de voz digitais, sob o con15 trole da unidade de controle principal ex311, incluindo uma CPU, uma ROM e uma RAM, a unidade de circuito de modem ex306 executa um processamento de espectro amplo dos dados de voz digitais, e a unidade de circuito de comunicação ex301 executa uma conversão de digital para analógico e uma transformação de freqüência dos dados, de modo a transmití-los atra20 vês da antena ex201. Também, no telefone celular ex115, a unidade de circuito de comunicação ex301 amplifica os dados recebidos pela antena ex201 em modo de conversação, e realiza uma transformação de freqüência e uma conversão de analógico para digital nos dados, a unidade de circuito de modem ex306 realiza um processamento de espectro amplo inverso dos dados, e a unidade de processamento de voz ex305 os converte em dados de voz analógicos, de modo a encaminhá-los através da unidade de saída de voz ex208.
Mais ainda, quando da transmissão de um e-mail no modo de comunicação de dados, os dados de texto do e-mail introduzidos pela ope30 ração das teclas de operação ex204 do corpo principal são enviados para a unidade de controle principal ex311 através da unidade de controle de entrada em operação ex304. Na unidade de controle principal ex311, após a
unidade de circuito de modem ex306 realizar o processamento de espectro amplo dos dados de texto e a unidade de circuito de comunicação ex301 realizar a conversão de digital para analógico e a transformação de freqüência nos dados de texto, os dados são transmitidos para o local de célula ex110 através da antena ex201.
Quando dados de imagem são transmitidos em um modo de comunicação de dados, os dados de imagem feitos 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. Quando eles não são transmiti10 dos, também é possível exibir os dados de imagem feitos pela unidade de câmera ex203 diretamente na unidade display 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, a qual inclui o aparelho de codificação de imagem, como descrito na presente invenção, com15 prime e codifica os dados de imagem supridos a partir da unidade de câmera ex203 usando o método de codificação empregado pelo aparelho de codificação de imagem, como mostrado na primeira modalidade, de modo a transformá-los em dados de imagem codificados, e os envia para a unidade de multiplexação/demultiplexação ex308. Neste momento, o telefone celular ex115 envia a voz recebida pela unidade de entrada de voz ex205, durante a obtenção de fotos com a 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 multiplexa os dados de imagem codificados supridos a partir da unidade de codificação de imagem ex312 e os dados de voz supridos a partir da unidade de processamento de voz ex305, usando um método predeterminado, a seguir a unidade de circuito de modem ex306 realiza a processamento de espectro amplo dos dados multiplexados obtidos como resultado da multiplexação e, por último, a unidade de circuito de comunicação ex301 realiza a conversão de digital para analógico e a transformação de freqüência dos dados para transmissão através da antena ex201.
···· · • · ··· · » _ ·····
Quanto ao recebimento de dados de um arquivo de imagem em movimento, o qual está ligado a uma página da Web ou similar em um modo de comunicação de dados, a unidade de circuito de modem ex306 realiza o processamento de espectro amplo inverso dos dados recebidos a partir do local de célula ex110, através da antena ex201, e envia os dados multiplexados obtidos como resultado do processamento de espectro amplo inverso.
De modo a decodificar os dados multiplexados recebidos através da antena ex201, a unidade de multiplexação/demultiplexação ex308 separa os dados multiplexados em um fluxo codificado de dados de imagem e um fluxo codificado de dados de voz, e supre os dados de imagem codificados para a unidade de decodificação de imagem ex309 e os dados de voz para a unidade de processamento de voz ex305, respectivamente, através do barramento síncrono ex313.
Em seguida, a unidade de decodificação de imagem ex309, que inclui o aparelho de decodificação de imagem, como explicado na invenção mencionada acima, decodifica o fluxo codificado de dados de imagem pelo método de decodificação correspondente ao método de codificação, como mostrado nas montagens mencionadas acima, para a geração de dados de imagem em movimento reproduzidos, e supre estes dados para a unidade display ex202, através da unidade de controle de LCD ex302 e, assim, os dados de imagem incluídos em um arquivo de imagem em movimento ligado a uma página da Web, por exemplo, são exibidos. Ao mesmo tempo, a unidade de processamento de voz ex305 converte os dados de voz em dados de voz analógicos, e supre estes dados para a unidade de saída de voz ex208, e, assim, os dados de voz incluídos no arquivo de imagem em movimento ligado a uma página da web, por exemplo, são reproduzidos.
A presente invenção não está limitada ao sistema mencionado acima, uma vez que uma difusão digital terrestre ou por satélite tem estado no noticiário nos últimos tempos, e pelo menos o aparelho de codificação de imagem ou o aparelho de decodificação de imagem descrito na modalidade mencionada acima, pode ser incorporado em um sistema de difusão digital, como mostrado na Figura 36. Mais especificamente, um fluxo codificado de
informação de vídeo é transmitido a partir da uma estação de difusão ex409 para ou comunicado com um satélite de difusão ex410, através de ondas de rádio. Mediante o recebimento dele, o satélite de difusão ex410 transmite ondas de rádio para difusão. Então, uma antena de uso doméstico ex406, com uma função de recepção de difusão por satélite, recebe as ondas de rádio, e uma televisão (receptor) ex401 ou uma caixa de decodificador (STB) ex407 decodifica o fluxo de bits codificado para reprodução. O aparelho de decodificação de imagem, como mostrado na modalidade mencionada acima, pode ser implementado no aparelho de reprodução ex403, para leitura e decodificação do fluxo codificado gravado em um meio de armazenamento ex402, que é um meio de gravação tal como um CD ou um DVD. Nesté caso, os sinais de imagem em movimento reproduzidos são exibidos em um monitor ex404. Também é concebível implementar o aparelho de decodificação de imagem na caixa de decodificador ex407 conectada a um cabo ex405 para uma televisão a cabo ou uma antena ex406 para uma difusão por satélite e/ou terrestre, de modo a reproduzí-los em um monitor ex408 da televisão ex401. O aparelho de decodificação de imagem pode ser incorporado na televisão, não na caixa de decodificador. Também, um carro ex412, tendo uma antena ex411, pode receber sinais do satélite ex410 ou do local de célula ex107, para a reprodução de imagem em movimento em um aparelho display, tal como um sistema de navegação de carro ex413 instalado no carro ex412.
Mais ainda, o aparelho de codificação de imagem, como mostrado na modalidade mencionada acima, pode codificar sinais de imagem e gravá-los em um meio de gravação. Como um exemplo concreto, há um gravador ex420, tal como um gravador de DVD, para a gravação de sinais de imagem em um disco de DVD ex412, um gravador de disco para graválos em um disco rígido pode ser citado. Eles podem ser gravados em um cartão SD ex422. Se o gravador ex420 incluir o aparelho de decodificação de imagem, como mostrado na modalidade mencionada acima, os sinais de imagem gravados no disco de DVD ex421 ou no cartão SD ex422 podem ser reproduzidos para exibição no monitor ex408.
Quanto à estrutura do sistema de navegação de carro ex413, a estrutura sem a unidade de câmera ex203, a unidade de interface de câmera ex303 e a unidade de codificação de imagem ex312, além dos componentes mostrados na Figura 35, é concebível. O mesmo vale para o computador ex111, a televisão (receptor) ex401 e outros.
Além disso, três tipos de implementações podem ser concebidos para um terminal, tal como o telefone celular ex114: um terminal de transmissão/recepção implementado com ambos um codificador e um decodificador, um terminal de transmissão implementado com um codificador apenas, e um terminal de recepção implementado com um decodificador apenas.
Como descrito acima, é possível usar o método de codificação de imagem, o método de decodificação de imagem, bem como o aparelho de codificação de comprimento variável e o aparelho de decodificação de comprimento variável que usam estes métodos, o método de codificação de imagem em movimento, o método de decodificação de imagem em movimento, o aparelho de codificação de imagem em movimento e o aparelho de decodificação de imagem em movimento, descritos na modalidade mencionada acima, para qualquer um dos aparelhos e sistemas descritos acima, e pelo uso destes métodos, os efeitos descritos nas montagens mencionadas acima podem ser obtidos.
A partir da invenção assim descrita, será óbvio que as montagens da invenção podem ser variadas de muitas formas. Essas variações não devem ser consideradas como um desvio do espírito e do escopo da invenção, e pretende-se que todas essas modificações, como seriam óbvias para uma pessoa versada na técnica, estejam incluídas no escopo das reivindicações a seguir.
É descrito que o aparelho de codificação de comprimento variável e o aparelho de decodificação de comprimento variável, de acordo com a primeira a sexta montagens, realizam uma varredura nos coeficientes em uma ordem começando no componente de baixa freqüência em direção ao componente de alta freqüência. Entretanto, a varredura pode ser realizada em uma ordem começando no componente de alta freqüência em direção ao
···· · • · ··· · • 10 componente de baixa freqüência. Neste caso, o processamento de reordenação dos coeficientes pode ser abreviado.
Aplicabilidade Industrial
O método de codificação de comprimento variável e o método de decodificação de comprimento variável, de acordo com a presente invenção, são aplicáveis para a codificação ou a decodificação de coeficientes em cada bloco tendo um tamanho predeterminado, os quais são obtidos pela realização de uma transformação de freqüência nos dados de imagem de uma imagem em movimento, usando-se um aparelho de computador, tais como um telefone celular, um assistente pessoal digital, um aparelho de difusão de TV, um monitor de TV, uma Caixa de Decodificador de sinais ou similar.
···· · ····
Claims (2)
1/36 φ
1// uma etapa de conversão de bloco de divisão de dados de imagem da imagem em movimento em blocos, cada um dos quais tendo um tamanho predeterminado;
uma etapa de transformação de freqüência para transformação 5 de cada pixel em cada referido bloco em um coeficiente de freqüência; e uma etapa de codificação de comprimento variável para codificação de coeficientes em cada referido bloco, usando-se o método de codificação de comprimento variável de acordo com qualquer uma reivindicação da reivindicação 1 a reivindicação 10.
10
16. Método de decodificação de comprimento variável para a decodificação de códigos de comprimento variável gerados pela codificação de coeficientes em cada bloco, os quais são obtidos pela realização de uma transformação de freqüência em dados de imagem de uma imagem em movimento por bloco tendo um tamanho predeterminado, o método compreen15 dendo:
uma etapa de decodificação para decodificação dos códigos de comprimento variável em cada referido bloco em coeficientes, em uma ordem predeterminada pela alternância entre uma pluralidade de tabelas a serem usadas para a decodificação; e
20 uma etapa de geração de coeficiente para geração de coeficientes em cada referido bloco com base nos coeficientes gerados na etapa de decodificação.
17. Método de decodificação de comprimento variável, de acordo com a reivindicação 16,
25 onde uma direção de alternância entre a pluralidade de tabelas é unidirecional.
18. Método de decodificação de comprimento variável, de acordo com a reivindicação 16, onde, na etapa de decodificação, a decodificação é realizada em
30 cada referido bloco pela alternância entre a pluralidade de tabelas.
19. Método de decodificação de comprimento variável, de acordo com a reivindicação 16, onde os coeficientes são coeficientes não-nulos que são tornados unidimensionais.
20. Método de decodificação de comprimento variável, de acordo com a reivindicação 16 ou com a reivindicação 17, onde a decodificação é uma decodificação não-aritmética.
21. Método de decodificação de comprimento variável, de acordo com qualquer reivindicação da reivindicação 16 a reivindicação 20, onde cada uma das tabelas tem uma taxa diferente de mudança no comprimento de código para coeficientes, de modo que um comprimento de código para um valor de coeficiente menor fique mais longo, tabela a tabela, em uma ordem ascendente de números atribuídos, respectivamente, a cada uma das tabelas, e um comprimento de código para um valor de coeficiente mais longo não fique mais longo na mesma ordem ascendente dos referidos números.
22. Método de decodificação de comprimento variável, de acordo com qualquer reivindicação da reivindicação 16 a reivindicação 20, onde cada uma das tabelas é construída, de modo que uma taxa de aumento no comprimento de código correspondente a um aumento nos coeficientes fique menor, tabela a tabela em uma ordem ascendente de números atribuídos, respectivamente, a cada uma das tabelas.
23. Método de decodificação de comprimento variável, de acordo com qualquer reivindicação da reivindicação 16 a reivindicação 21, onde, na etapa de decodificação, cada uma das tabelas é alternada com base em um valor limite predeterminado para um valor absoluto do coeficiente.
24. Método de decodificação de comprimento variável, de acordo com qualquer reivindicação da reivindicação 16 a reivindicação 23, onde, na etapa de geração de coeficiente, os coeficientes são varridos em uma ordem começando em componentes de alta freqüência em direção a componentes de baixa freqüência, de acordo com uma ordem na qual uma seqüência dos coeficientes é organizada.
25. Método de decodificação de comprimento variável, de acor···· ···· • · ·· · · · ··· ··· ·· ···· ·· · ;···· ···· • · ·· · ·· ·· *·· · · · ·· ····· ····· · ·· · ··· ·· · ··· ·· ·· ·· /I do com a reivindicação 24, onde, na etapa de codificação, um código de comprimento variável seguinte é decodificado pela alternância de uma tabela, usada para a decodificação de um código de comprimento variável atual a ser decodificado, para uma tabela cujo número é maior do que o número atribuído à referida tabela, quando um valor absoluto do coeficiente decodificado excede a um valor limite.
26. Aparelho de decodificação de comprimento variável usando um método de decodificação de comprimento variável para decodificação de códigos de comprimento variável gerados pela codificação de coeficientes em cada bloco, os quais são obtidos pela realização de uma transformação de freqüência de dados de imagem de uma imagem em movimento por bloco tendo um tamanho predeterminado, usando o método de decodificação de comprimento variável, como definido em qualquer reivindicação da reivindicação 16 a reivindicação 25.
27. Programa para a decodificação de coeficientes em cada bloco em códigos de comprimento variável, os quais são obtidos pela realização de uma transformação de freqüência em dados de imagem de uma imagem em movimento por bloco, tendo um tamanho predeterminado, o programa fazendo com que um computador execute a decodificação dos coeficientes com o uso do método de decodificação de comprimento variável, como definido em qualquer uma reivindicação da reivindicação 16 a reivindicação 25.
28. Método de decodificação de imagem em movimento para a decodificação de uma imagem em movimento, que compreende:
uma etapa de decodificação de comprimento variável para decodificação de códigos de comprimento variável em coeficientes em um domínio de freqüência em um bloco;
uma etapa de transformação de freqüência inversa para transformação de coeficientes de freqüência no bloco em valores de pixel; e uma etapa de armazenamento de armazenamento seqüencial, em uma memória de valores de pixel decodificados por bloco totalizando uma imagem única.
29. Aparelho de decodificação de imagem em movimento para a decodificação de uma imagem em movimento, que compreende:
uma unidade de decodificação de comprimento variável operável 5 para a decodificação de códigos de comprimento variável em um domínio de freqüência em um bloco, usando o método de decodificação de comprimento variável, como definido em qualquer reivindicação da reivindicação 16 a reivindicação 25;
uma unidade de transformação de freqüência inversa operável 10 para transformar os coeficientes de freqüência no bloco em valores de pixel;
e uma memória operável para, seqüencialmente, armazenar valores de pixel decodificados por bloco totalizando uma imagem única.
30. Programa para a decodificação de uma imagem em movi15 mento, fazendo com que um computador execute as etapas a seguir:
uma etapa de decodificação de comprimento variável para decodificação de códigos de comprimento variável em coeficientes em um domínio de freqüência em um bloco, usando o método de decodificação de comprimento variável, como definido em qualquer reivindicação da reivindi20 cação 16 a reivindicação 25;
uma etapa de transformação de freqüência inversa para transformação de coeficientes de freqüência no bloco em valores de pixel; e uma etapa de armazenamento de armazenamento seqüencial de valores de pixel decodificados por bloco totalizando uma imagem única.
25 31. Sistema de envio de dados de imagem para o envio de dados de imagem de uma imagem em movimento, que é codificado com compressão em uma taxa de bits baixa, através de um meio de gravação ou de um meio de transmissão, o sistema compreendendo:
um aparelho de codificação, como definido na reivindicação 14, 30 e o aparelho de decodificação de acordo com a reivindicação 29.
1. Método de codificação de comprimento variável para a codificação de coeficientes em cada bloco, os quais são obtidos pela realização de uma transformação de freqüência em dados de imagem de uma imagem em movimento por bloco, tendo um tamanho predeterminado, o método compreendendo:
uma etapa de varredura de coeficiente para varredura dos coeficientes em cada referido bloco em uma ordem predeterminada; e uma etapa de codificação para codificação dos coeficientes varridos na etapa de varredura de coeficiente em códigos de comprimento variável, em uma ordem predeterminada pela alternância entre uma pluralidade de tabelas a serem usadas para a codificação.
2. Método de codificação de comprimento variável, de acordo com a reivindicação 1, onde uma direção de alternância entre a pluralidade de tabelas é unidirecional.
3. Método de codificação de comprimento variável, de acordo com a reivindicação 1, onde, na etapa de codificação, a codificação é realizada em cada referido bloco pela alternância entre a pluralidade de tabelas.
4. Método de codificação de comprimento variável, de acordo com a reivindicação 1, onde os coeficientes são coeficientes não-nulos que são tomados unidimensionais.
5. Método de codificação de comprimento variável, de acordo com a reivindicação 2, onde a codificação é uma codificação não-aritmética.
6. Método de codificação de comprimento variável, de acordo com qualquer reivindicação da reivindicação 1 a reivindicação 5, onde cada uma das tabelas tem uma taxa diferente de mudança no comprimento de código para coeficientes, de modo que um comprimento de código para um coeficiente menor fique mais longo, tabela a tabela, em uma ordem ascendente de números atribuídos, respectivamente, a cada uma das tabelas e um comprimento de código para um coeficiente mais longo não fique mais longo na mesma ordem ascendente dos referidos números.
7. Método de codificação de comprimento variável, de acordo com qualquer reivindicação da r1 a reivindicação 5, onde cada uma das tabelas é construída, de modo que uma taxa de aumento no comprimento de código correspondente a um aumento nos coeficientes fique menor, tabela a tabela, em uma ordem ascendente de números atribuídos a cada uma das tabelas.
8. Método de codificação de comprimento variável, de acordo com qualquer reivindicação da reivindicação 1 a reivindicação 6, onde, na etapa de codificação, cada uma das tabelas é alternada com base em um valor limite predeterminado para um valor absoluto do coeficiente.
9. Método de codificação de comprimento variável, de acordo com qualquer reivindicação da reivindicação 1 a reivindicação 8, onde, na etapa de varredura de coeficiente, os coeficientes são varridos começando em componentes de alta freqüência em direção a componentes de baixa freqüência.
10. Método de codificação de comprimento variável, de acordo com a reivindicação 9, onde, na etapa de codificação, uma tabela, usada para a codificação de um coeficiente corrente a ser codificado, é alternada para uma tabela cujo número é maior do que o número atribuído à referida tabela, quando o valor absoluto do coeficiente atual excede um valor limite.
11. Aparelho de codificação de comprimento variável usando um método de codificação de comprimento variável para codificação de coeficientes em cada bloco em códigos de comprimento variável, os referidos coeficientes sendo obtidos pela realização de uma transformação de freqüência de dados de imagem de uma imagem em movimento por bloco, tendo um tamanho predeterminado, o referido aparelho de codificação de comprimento • · · ····· ···· • · · · · ·· · · · •···· · • · · · • · · · · · • · · · · »· ·· ·· variável, a referida codificação de comprimento variável usando o método de codificação de comprimento variável, como definido em qualquer reivindicação da reivindicação 1 a reivindicação 10.
12. Programa para a codificação de coeficientes em cada bloco em códigos de comprimento variável, os coeficientes sendo obtidos pela realização de uma transformação de freqüência em dados de imagem de uma imagem em movimento para cada bloco, tendo um tamanho predeterminado, o programa fazendo com que um computador execute um processamento de codificação com o uso do método de codificação de comprimento variável, como definido em qualquer uma reivindicação da reivindicação 1 a reivindicação 10.
13. Método de codificação de imagem em movimento para a codificação de uma imagem em movimento, que compreende:
uma etapa de transformação de freqüência para transformar cada pixel de dados de imagem na imagem em movimento em um coeficiente de freqüência para cada bloco tendo um tamanho predeterminado; e uma etapa de codificação de comprimento variável para codificação de coeficientes em cada referido bloco, usando-se um método de codificação de comprimento variável de acordo com qualquer uma reivindicação da reivindicação 1 a reivindicação 10.
14. Aparelho de codificação de imagem em movimento para a codificação de uma imagem em movimento, que compreende:
uma unidade de transformação de freqüência operável para transformar cada pixel de dados de imagem, na imagem em movimento, em um coeficiente de freqüência por cada bloco, tendo um tamanho predeterminado; e uma unidade de codificação de comprimento variável operável para codificar coeficientes em cada referido bloco, usando o método de codificação de comprimento variável como definido em qualquer uma reivindicação da reivindicação 1 a reivindicação 10.
15. Programa para a codificação de uma imagem em movimento, que faz com que um computador execute as etapas a seguir:
2/36
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002118483 | 2002-04-19 | ||
| JP118483/2002 | 2002-04-19 | ||
| JP126029/2002 | 2002-04-26 | ||
| JP2002126029 | 2002-04-26 | ||
| JP2002363106A JP4368575B2 (ja) | 2002-04-19 | 2002-12-13 | 可変長復号化方法、可変長復号化装置およびプログラム |
| JP363106/2002 | 2002-12-13 | ||
| PCT/JP2003/004803 WO2003090472A1 (en) | 2002-04-19 | 2003-04-16 | Variable length encoding method and variable length decoding method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI0304543B1 true BRPI0304543B1 (pt) | 2018-02-14 |
| BRPI0304543B8 BRPI0304543B8 (pt) | 2020-12-29 |
Family
ID=29255105
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0304543A BRPI0304543B8 (pt) | 2002-04-19 | 2003-04-16 | método de codificação de comprimento variável e método de decodificação de comprimento variável |
| BR0304543-9A BR0304543A (pt) | 2002-04-19 | 2003-04-16 | Método de codificação de comprimento variável e método de decodificação de comprimento variável |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BR0304543-9A BR0304543A (pt) | 2002-04-19 | 2003-04-16 | Método de codificação de comprimento variável e método de decodificação de comprimento variável |
Country Status (17)
| Country | Link |
|---|---|
| US (12) | US7305035B2 (pt) |
| EP (13) | EP1965590B1 (pt) |
| JP (1) | JP4368575B2 (pt) |
| KR (8) | KR101001411B1 (pt) |
| CN (1) | CN1319385C (pt) |
| AT (5) | ATE354258T1 (pt) |
| AU (1) | AU2003235171C1 (pt) |
| BR (2) | BRPI0304543B8 (pt) |
| CA (2) | CA2448771C (pt) |
| DE (5) | DE60318918T2 (pt) |
| DK (5) | DK2919390T3 (pt) |
| ES (11) | ES2279945T3 (pt) |
| HU (1) | HUE044271T2 (pt) |
| MX (1) | MXPA03011198A (pt) |
| PT (7) | PT2919390T (pt) |
| SI (2) | SI1742484T1 (pt) |
| WO (1) | WO2003090472A1 (pt) |
Families Citing this family (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
| JP4368575B2 (ja) * | 2002-04-19 | 2009-11-18 | パナソニック株式会社 | 可変長復号化方法、可変長復号化装置およびプログラム |
| JP2005004718A (ja) * | 2003-05-16 | 2005-01-06 | Canon Inc | 信号処理装置及び制御方法 |
| US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
| JPWO2006011197A1 (ja) * | 2004-07-27 | 2008-05-01 | 三菱電機株式会社 | 符号化データ再符号化装置及びその復号装置並びにプログラム |
| KR101349599B1 (ko) * | 2005-09-26 | 2014-01-10 | 미쓰비시덴키 가부시키가이샤 | 동화상 복호 장치 |
| JP4540585B2 (ja) * | 2005-10-20 | 2010-09-08 | パナソニック株式会社 | 符号化装置及び復号化装置 |
| US7903973B1 (en) * | 2005-12-23 | 2011-03-08 | Lockheed Martin Corporation | Dynamic temporal duration optical transmission privacy |
| JP4863840B2 (ja) * | 2006-10-27 | 2012-01-25 | 株式会社リコー | 画素形成装置、光走査装置、光走査方法、画像形成装置、カラー画像形成装置 |
| KR100987028B1 (ko) * | 2008-08-20 | 2010-10-11 | 연세대학교 산학협력단 | 무작위 데이터가 가지는 정렬 구조의 불확실성을 산출하는 장치 및 그 방법, 상기 방법을 구현하는 프로그램이 기록된기록매체 |
| TR201001101A2 (tr) * | 2010-02-12 | 2011-09-21 | Vestel Elektroni̇k Sanayi̇ Ve Ti̇caret A.Ş. | Bir veri sıkıştırma metodu. |
| CN107241604B (zh) * | 2010-04-01 | 2020-11-03 | 索尼公司 | 图像处理设备和方法 |
| US8410959B2 (en) | 2010-04-09 | 2013-04-02 | Qualcomm, Incorporated | Variable length codes for coding of video data |
| US20120082230A1 (en) * | 2010-10-01 | 2012-04-05 | Qualcomm Incorporated | Variable length coding of video block coefficients |
| US9490839B2 (en) | 2011-01-03 | 2016-11-08 | Qualcomm Incorporated | Variable length coding of video block coefficients |
| US8755620B2 (en) | 2011-01-12 | 2014-06-17 | Panasonic Corporation | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding |
| US8687904B2 (en) | 2011-01-14 | 2014-04-01 | Panasonic Corporation | Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding |
| US9516316B2 (en) * | 2011-06-29 | 2016-12-06 | Qualcomm Incorporated | VLC coefficient coding for large chroma block |
| US9338456B2 (en) | 2011-07-11 | 2016-05-10 | Qualcomm Incorporated | Coding syntax elements using VLC codewords |
| KR101710633B1 (ko) | 2011-08-05 | 2017-02-27 | 삼성전자주식회사 | 자동 초점 조절 방법, 자동 초점 조절 장치, 및 이를 포함하는 디지털 촬영장치 |
| WO2013065262A1 (ja) * | 2011-11-04 | 2013-05-10 | 日本電気株式会社 | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム |
| US9912968B2 (en) * | 2014-01-24 | 2018-03-06 | Mediatek Inc. | Decoding apparatus capable of controlling repetition number of scan procedure based on at least one syntax element decoding result and related method |
| US10171810B2 (en) | 2015-06-22 | 2019-01-01 | Cisco Technology, Inc. | Transform coefficient coding using level-mode and run-mode |
| WO2018045970A1 (en) * | 2016-09-06 | 2018-03-15 | Mediatek Inc. | Efficient coding switching and modem resource utilization in wireless communication systems |
| JP2018085008A (ja) * | 2016-11-25 | 2018-05-31 | 株式会社ジャパンディスプレイ | 画像処理装置および画像処理装置の画像処理方法 |
| US10666985B1 (en) * | 2018-11-18 | 2020-05-26 | Sony Corporation | Sub-block based entropy coding for image coding |
| US10728555B1 (en) * | 2019-02-06 | 2020-07-28 | Sony Corporation | Embedded codec (EBC) circuitry for position dependent entropy coding of residual level data |
| CN112399181B (zh) | 2019-08-19 | 2022-08-26 | 华为技术有限公司 | 图像编解码的方法、装置和存储介质 |
| CN113889046B (zh) * | 2020-07-02 | 2022-12-09 | 京东方科技集团股份有限公司 | 显示面板及其驱动方法、以及显示装置 |
Family Cites Families (62)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4541012A (en) * | 1982-01-04 | 1985-09-10 | Compression Labs, Inc. | Video bandwidth reduction system employing interframe block differencing and transform domain coding |
| CA1296430C (en) * | 1986-11-10 | 1992-02-25 | Masahide Kaneko | Encoding system capable of accomplishing a high efficiency by anterior and/or posterior processing to quantization |
| JPH04100390A (ja) | 1990-08-20 | 1992-04-02 | Hitachi Ltd | 高能率符号化方式 |
| JP3205028B2 (ja) | 1991-02-05 | 2001-09-04 | キヤノン株式会社 | 画像圧縮装置及びその方法 |
| US6546145B1 (en) * | 1991-02-05 | 2003-04-08 | Canon Kabushiki Kaisha | Image compression using selection of quantization method |
| JPH04315270A (ja) | 1991-04-15 | 1992-11-06 | Toshiba Corp | 符号化装置 |
| JP2670201B2 (ja) * | 1991-08-30 | 1997-10-29 | 富士写真フイルム株式会社 | 画像データ圧縮符号化装置および方法 |
| JP3016456B2 (ja) | 1992-06-15 | 2000-03-06 | 日本電信電話株式会社 | 適応的可変長符号化方法 |
| JPH06178282A (ja) | 1992-12-02 | 1994-06-24 | Mitsubishi Electric Corp | 画像の符号化装置 |
| US5367629A (en) * | 1992-12-18 | 1994-11-22 | Sharevision Technology, Inc. | Digital video compression system utilizing vector adaptive transform |
| JP3278948B2 (ja) * | 1993-02-05 | 2002-04-30 | 日本電信電話株式会社 | 可変長符号化方法 |
| JP3277425B2 (ja) * | 1993-03-19 | 2002-04-22 | ソニー株式会社 | ディジタル信号の符号化方法、符号化用テーブル生成方法、符号化装置及び符号化方法 |
| US5510785A (en) * | 1993-03-19 | 1996-04-23 | Sony Corporation | Method of coding a digital signal, method of generating a coding table, coding apparatus and coding method |
| JP3111750B2 (ja) | 1993-06-08 | 2000-11-27 | 松下電器産業株式会社 | 可変長符号復号方式 |
| JP3210996B2 (ja) * | 1993-07-30 | 2001-09-25 | 三菱電機株式会社 | 高能率符号化装置及び高能率復号化装置 |
| JPH0759086A (ja) * | 1993-07-30 | 1995-03-03 | Canon Inc | 画像処理装置 |
| JP3220598B2 (ja) * | 1994-08-31 | 2001-10-22 | 三菱電機株式会社 | 可変長符号テーブルおよび可変長符号化装置 |
| KR100209877B1 (ko) * | 1994-11-26 | 1999-07-15 | 윤종용 | 복수개의 허프만부호테이블을 이용한 가변장부호화장치 및 복호화장치 |
| US5883976A (en) * | 1994-12-28 | 1999-03-16 | Canon Kabushiki Kaisha | Selectively utilizing multiple encoding methods |
| JP3305140B2 (ja) | 1994-12-28 | 2002-07-22 | キヤノン株式会社 | 符号化装置及び方法 |
| JP3624450B2 (ja) * | 1995-02-06 | 2005-03-02 | ソニー株式会社 | 画像データ符号化方法及び画像データ符号化装置 |
| JP3431331B2 (ja) * | 1995-03-01 | 2003-07-28 | 株式会社日立製作所 | 動画像符号化装置及び動画像伝送装置並びにテレビ会議装置 |
| US6104754A (en) * | 1995-03-15 | 2000-08-15 | Kabushiki Kaisha Toshiba | Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system |
| US6704494B1 (en) * | 1995-03-15 | 2004-03-09 | Kabushiki Kaisha Toshiba | Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system |
| JPH08256266A (ja) * | 1995-03-17 | 1996-10-01 | Mitsubishi Electric Corp | 画像符号化方式 |
| JP3992303B2 (ja) * | 1995-06-22 | 2007-10-17 | ソニー株式会社 | 信号圧縮装置と信号伸長装置および信号圧縮方法と信号伸長方法 |
| EP0762771A3 (en) | 1995-09-11 | 1998-09-23 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method for variable-length coding |
| JP3114796B2 (ja) | 1995-09-11 | 2000-12-04 | 松下電器産業株式会社 | 可変長符号化装置及び方法 |
| US5818877A (en) * | 1996-03-14 | 1998-10-06 | The Regents Of The University Of California | Method for reducing storage requirements for grouped data values |
| JPH09307901A (ja) | 1996-05-13 | 1997-11-28 | Toshiba Corp | 映像信号処理装置 |
| JP3743837B2 (ja) | 1996-06-14 | 2006-02-08 | 株式会社大宇エレクトロニクス | ランレングス符号器 |
| US5831977A (en) | 1996-09-04 | 1998-11-03 | Ericsson Inc. | Subtractive CDMA system with simultaneous subtraction in code space and direction-of-arrival space |
| TW366669B (en) | 1996-10-30 | 1999-08-11 | Matsushita Electric Industrial Co Ltd | Picture encoding device and picture encoding method, picture decoding device and picture decoding method, and data recording media |
| JP2870515B2 (ja) * | 1996-12-27 | 1999-03-17 | 日本電気株式会社 | 可変長符号化装置 |
| US5995148A (en) * | 1997-02-14 | 1999-11-30 | At&T Corp | Video coder having scalar dependent variable length coder |
| JP3410629B2 (ja) * | 1997-05-21 | 2003-05-26 | シャープ株式会社 | 可変長符号化回路及び可変長符号化方法 |
| US6118822A (en) | 1997-12-01 | 2000-09-12 | Conexant Systems, Inc. | Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes |
| JPH11243343A (ja) | 1998-02-25 | 1999-09-07 | Victor Co Of Japan Ltd | 可変長符号化方法、可変長復号化方法、及び可変長符号記録媒体 |
| JPH11341497A (ja) | 1998-05-29 | 1999-12-10 | Matsushita Electric Ind Co Ltd | 画像符号化復号化装置及び、画像符号化復号化方法 |
| JP3888597B2 (ja) * | 1998-06-24 | 2007-03-07 | 日本ビクター株式会社 | 動き補償符号化装置、及び動き補償符号化復号化方法 |
| JP2000059234A (ja) * | 1998-08-10 | 2000-02-25 | Mitsubishi Electric Corp | 可変長符号処理装置 |
| JP2001024515A (ja) * | 1999-07-07 | 2001-01-26 | Sony Corp | 信号処理方法及び装置 |
| KR100644498B1 (ko) * | 1999-08-25 | 2006-11-10 | 마츠시타 덴끼 산교 가부시키가이샤 | 노이즈 검출방법과 노이즈 검출장치 및 화상 복호화장치 |
| JP2001308715A (ja) * | 2000-04-20 | 2001-11-02 | Mitsubishi Electric Corp | 可変長符号化装置および可変長復号装置 |
| TW515192B (en) | 2000-06-06 | 2002-12-21 | Noa Kk Off | Compression method of motion picture image data and system there for |
| JP2002261623A (ja) * | 2001-02-28 | 2002-09-13 | Canon Inc | 復号装置、復号方法、記憶媒体及びプログラムソフトウェア |
| WO2002078355A1 (en) * | 2001-03-23 | 2002-10-03 | Nokia Corporation | Variable length coding |
| KR101030862B1 (ko) * | 2001-11-22 | 2011-04-22 | 파나소닉 주식회사 | 부호화 방법 및 부호화 장치 |
| US7099387B2 (en) * | 2002-03-22 | 2006-08-29 | Realnetorks, Inc. | Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses |
| JP4090862B2 (ja) * | 2002-04-26 | 2008-05-28 | 松下電器産業株式会社 | 可変長符号化方法および可変長復号化方法 |
| JP4368575B2 (ja) * | 2002-04-19 | 2009-11-18 | パナソニック株式会社 | 可変長復号化方法、可変長復号化装置およびプログラム |
| US6646578B1 (en) * | 2002-11-22 | 2003-11-11 | Ub Video Inc. | Context adaptive variable length decoding system and method |
| US7602850B2 (en) * | 2003-12-19 | 2009-10-13 | Intel Corporation | Content adaptive variable length coding (CAVLC) decoding |
| US7843997B2 (en) * | 2004-05-21 | 2010-11-30 | Broadcom Corporation | Context adaptive variable length code decoder for decoding macroblock adaptive field/frame coded video data |
| US7643694B2 (en) * | 2004-12-31 | 2010-01-05 | Zoran Corporation | Method and apparatus for processing a compressed image in an order other than the order in which it was compressed |
| JP4540585B2 (ja) * | 2005-10-20 | 2010-09-08 | パナソニック株式会社 | 符号化装置及び復号化装置 |
| US7903973B1 (en) * | 2005-12-23 | 2011-03-08 | Lockheed Martin Corporation | Dynamic temporal duration optical transmission privacy |
| KR100813877B1 (ko) * | 2006-05-11 | 2008-03-18 | 전자부품연구원 | 효율적인 h.264/avc cavlc 디코딩 방법 |
| US7885473B2 (en) * | 2007-04-26 | 2011-02-08 | Texas Instruments Incorporated | Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors |
| US7813567B2 (en) * | 2007-04-26 | 2010-10-12 | Texas Instruments Incorporated | Method of CABAC significance MAP decoding suitable for use on VLIW data processors |
| CN101335000B (zh) * | 2008-03-26 | 2010-04-21 | 华为技术有限公司 | 编码的方法及装置 |
| US7876257B2 (en) * | 2008-04-28 | 2011-01-25 | Mitsubishi Electric Research Laboratories, Inc. | Method and apparatus for compressing SAR signals |
-
2002
- 2002-12-13 JP JP2002363106A patent/JP4368575B2/ja not_active Expired - Lifetime
-
2003
- 2003-04-16 PT PT15161640T patent/PT2919390T/pt unknown
- 2003-04-16 ES ES03720905T patent/ES2279945T3/es not_active Expired - Lifetime
- 2003-04-16 ES ES06123093T patent/ES2307267T3/es not_active Expired - Lifetime
- 2003-04-16 DK DK15161640.6T patent/DK2919390T3/da active
- 2003-04-16 HU HUE15161640 patent/HUE044271T2/hu unknown
- 2003-04-16 AT AT03720905T patent/ATE354258T1/de not_active IP Right Cessation
- 2003-04-16 AT AT06123093T patent/ATE397355T1/de not_active IP Right Cessation
- 2003-04-16 WO PCT/JP2003/004803 patent/WO2003090472A1/ja not_active Ceased
- 2003-04-16 EP EP20080157872 patent/EP1965590B1/en not_active Expired - Lifetime
- 2003-04-16 ES ES06123090T patent/ES2297811T3/es not_active Expired - Lifetime
- 2003-04-16 KR KR1020037011694A patent/KR101001411B1/ko not_active Expired - Lifetime
- 2003-04-16 DK DK06123093T patent/DK1742484T3/da active
- 2003-04-16 DE DE2003618918 patent/DE60318918T2/de not_active Expired - Lifetime
- 2003-04-16 AU AU2003235171A patent/AU2003235171C1/en not_active Expired
- 2003-04-16 PT PT141629956T patent/PT2752994E/pt unknown
- 2003-04-16 DK DK14162995.6T patent/DK2752994T3/en active
- 2003-04-16 ES ES14162991.5T patent/ES2550993T3/es not_active Expired - Lifetime
- 2003-04-16 EP EP20100180442 patent/EP2271118B1/en not_active Expired - Lifetime
- 2003-04-16 CA CA2448771A patent/CA2448771C/en not_active Expired - Lifetime
- 2003-04-16 PT PT141629915T patent/PT2765707E/pt unknown
- 2003-04-16 ES ES19156147T patent/ES2886861T3/es not_active Expired - Lifetime
- 2003-04-16 ES ES14162995.6T patent/ES2549252T3/es not_active Expired - Lifetime
- 2003-04-16 DE DE60311734T patent/DE60311734T2/de not_active Expired - Lifetime
- 2003-04-16 KR KR1020087008522A patent/KR100975487B1/ko not_active Expired - Lifetime
- 2003-04-16 AT AT06123090T patent/ATE385140T1/de not_active IP Right Cessation
- 2003-04-16 KR KR1020087008525A patent/KR101001459B1/ko not_active Expired - Lifetime
- 2003-04-16 ES ES06123096T patent/ES2309913T3/es not_active Expired - Lifetime
- 2003-04-16 KR KR1020087008521A patent/KR100975486B1/ko not_active Expired - Lifetime
- 2003-04-16 PT PT06123096T patent/PT1744560E/pt unknown
- 2003-04-16 DE DE60321406T patent/DE60321406D1/de not_active Expired - Lifetime
- 2003-04-16 KR KR1020087008524A patent/KR101001417B1/ko not_active Expired - Lifetime
- 2003-04-16 KR KR1020107006563A patent/KR101001097B1/ko not_active Expired - Lifetime
- 2003-04-16 ES ES19156149T patent/ES2886874T3/es not_active Expired - Lifetime
- 2003-04-16 KR KR1020087008523A patent/KR101001478B1/ko not_active Expired - Lifetime
- 2003-04-16 DE DE60329873T patent/DE60329873D1/de not_active Expired - Lifetime
- 2003-04-16 SI SI200331210T patent/SI1742484T1/sl unknown
- 2003-04-16 PT PT06123093T patent/PT1742484E/pt unknown
- 2003-04-16 EP EP20060123096 patent/EP1744560B1/en not_active Expired - Lifetime
- 2003-04-16 ES ES08157872T patent/ES2332159T3/es not_active Expired - Lifetime
- 2003-04-16 EP EP14162995.6A patent/EP2752994B8/en not_active Expired - Lifetime
- 2003-04-16 EP EP20100180446 patent/EP2343903B1/en not_active Expired - Lifetime
- 2003-04-16 EP EP15161640.6A patent/EP2919390B1/en not_active Expired - Lifetime
- 2003-04-16 EP EP20060123093 patent/EP1742484B1/en not_active Expired - Lifetime
- 2003-04-16 PT PT09168084T patent/PT2117236E/pt unknown
- 2003-04-16 BR BRPI0304543A patent/BRPI0304543B8/pt unknown
- 2003-04-16 DK DK06123090T patent/DK1742483T3/da active
- 2003-04-16 MX MXPA03011198A patent/MXPA03011198A/es active IP Right Grant
- 2003-04-16 EP EP20060123090 patent/EP1742483B1/en not_active Expired - Lifetime
- 2003-04-16 DK DK14162991.5T patent/DK2765707T3/en active
- 2003-04-16 EP EP20090168084 patent/EP2117236B1/en not_active Expired - Lifetime
- 2003-04-16 ES ES09168084T patent/ES2388479T3/es not_active Expired - Lifetime
- 2003-04-16 DE DE60323171T patent/DE60323171D1/de not_active Expired - Lifetime
- 2003-04-16 PT PT08157872T patent/PT1965590E/pt unknown
- 2003-04-16 BR BR0304543-9A patent/BR0304543A/pt active IP Right Grant
- 2003-04-16 AT AT08157872T patent/ATE447295T1/de active
- 2003-04-16 SI SI200331100T patent/SI1742483T1/sl unknown
- 2003-04-16 EP EP14162991.5A patent/EP2765707B1/en not_active Expired - Lifetime
- 2003-04-16 KR KR1020107006564A patent/KR101001053B1/ko not_active Expired - Lifetime
- 2003-04-16 CA CA2625292A patent/CA2625292C/en not_active Expired - Lifetime
- 2003-04-16 CN CNB038005948A patent/CN1319385C/zh not_active Expired - Lifetime
- 2003-04-16 EP EP19156149.7A patent/EP3515072B1/en not_active Expired - Lifetime
- 2003-04-16 ES ES15161640T patent/ES2730954T3/es not_active Expired - Lifetime
- 2003-04-16 US US10/478,185 patent/US7305035B2/en not_active Expired - Lifetime
- 2003-04-16 AT AT06123096T patent/ATE406051T1/de active
- 2003-04-16 EP EP03720905A patent/EP1424856B1/en not_active Expired - Lifetime
- 2003-04-16 EP EP19156147.1A patent/EP3515071B1/en not_active Expired - Lifetime
-
2007
- 2007-10-17 US US11/907,777 patent/US9020041B2/en active Active
- 2007-10-17 US US11/907,772 patent/US9025671B2/en active Active
- 2007-10-17 US US11/907,776 patent/US9020040B2/en active Active
- 2007-10-17 US US11/907,771 patent/US9054734B2/en active Active
- 2007-10-17 US US11/907,775 patent/US9031133B2/en active Active
-
2015
- 2015-03-31 US US14/674,613 patent/US9661353B2/en not_active Expired - Fee Related
-
2016
- 2016-10-14 US US15/293,707 patent/US10063890B2/en not_active Expired - Lifetime
- 2016-10-14 US US15/293,735 patent/US10057602B2/en not_active Expired - Lifetime
- 2016-10-14 US US15/293,663 patent/US10034025B2/en not_active Expired - Lifetime
- 2016-10-14 US US15/293,687 patent/US10027990B2/en not_active Expired - Lifetime
-
2018
- 2018-07-24 US US16/043,862 patent/US10623781B2/en not_active Expired - Fee Related
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI0304543B1 (pt) | Método de codificação de comprimento variável e método de decodificação de comprimento variável | |
| ES2294768T3 (es) | Procedimiento de codificacion de longitud variable. | |
| JP4819169B2 (ja) | 符号化方法、符号化装置およびプログラム | |
| AU2008201315B2 (en) | Variable length coding method and variable length decoding method |
























































