BRPI0206629B1 - Method for decoding a coded block image - Google Patents
Method for decoding a coded block image Download PDFInfo
- Publication number
- BRPI0206629B1 BRPI0206629B1 BRPI0206629-7A BRPI0206629A BRPI0206629B1 BR PI0206629 B1 BRPI0206629 B1 BR PI0206629B1 BR PI0206629 A BRPI0206629 A BR PI0206629A BR PI0206629 B1 BRPI0206629 B1 BR PI0206629B1
- Authority
- BR
- Brazil
- Prior art keywords
- scan
- value
- code
- level
- variable length
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/14—Digital recording or reproducing using self-clocking codes
- G11B20/1403—Digital recording or reproducing using self-clocking codes characterised by the use of two levels
- G11B20/1423—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
- G11B20/1426—Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
- H03M5/145—Conversion to or from block codes or representations thereof
-
- 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/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- 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
-
- 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/162—User input
-
- 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/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/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
- H04N19/69—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving reversible variable length codes [RVLC]
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Processing (AREA)
Abstract
"método de codificação de comprimento variável e método de decodificação de comprimento variável". de acordo com a presente invenção, um aparelho de codificação de imagem proporciona uma unidade de codificação de varredura de comprimento rle1 que sujeita os coeficientes quantizados que são obtidos por quantizar os componentes de freqüência de um sinal de imagem a um processo de codificação de comprimento variável por utilizar um valor de varredura run que indica o número de coeficientes zero sucessivos e um valor de nível lev que indica um valor de um coeficiente não-zero seguindo os coeficientes zero. a unidade de codificação de varredura de comprimento rle1 inclui uma unidade de reordenação lreodr para reordenar os valores de nível lev; um codificador de comprimento variável lvlc para codificar os valores de nível reordenados rolev por utilizar uma tabela de códigos que é selecionada de acordo com o valor de um parâmetro de quantização qp; uma unidade de reordenação rreodr para reordenar os valores de varredura run do componente de alta freqüência dos coeficientes quantizados até o componente de baixa freqüência; e um codificador de comprimento variável rvlc para codificar os valores de varredura reordenados rorun por utilizar uma tabela de códigos que é selecionada de acordo com o número de valores de varredura já processados. por conseqüência, um processo de codificação de comprimento variável para coeficientes quantizados é realizado com uma eficiência de codificação mais elevada, com a informação redundante incluída nos coeficientes sendo eficazmente reduzida.
Description
Relatório Descritivo da Patente de Invenção para "MÉTODO PARA DECODIFICAR UMA IMAGEM EM BLOCO CODIFICADA".
Campo Técnico A presente invenção refere-se a um método de codificação de comprimento variável e a um método de decodificação de comprimento variável e mais particularmente, a um método para converter vários coeficientes que são obtidos por quantizar os componentes de freqüência de dados de imagem (coeficientes de quantização) em dados codificados de acordo com um processo de codificação de comprimento variável e com um método para decodificar os dados codificados de acordo com um processo de decodificação de comprimento variável para reconstituir vários coeficientes.
Fundamento da Técnica Em anos recentes, foi-se ao encontro da idade da multimídia na qual dados de áudio, vídeo e outros dados são integralmente manipulados e a mídia de informação convencional (isto é, dispositivos para transmitir informação para as pessoas), tal como jornais, revistas, televisões, rádios e telefones têm sido adotados como objetos de multimídia. Geralmente, "multimídia" pretende representar não somente caracteres mas também diagramas, linguagens e especialmente imagens simultaneamente em relação uns aos outros. De modo a manipular a mídia de informação convencional como os objetos de multimídia, é essencial transformar a informação em formato digital.
Quando a quantidade de processos de dados por cada meio de informação descrito acima é estimada como a quantidade de dados digitais, no caso de caracteres, a quantidade de dados para cada caracter é 1 até 2 bytes. Entretanto, no caso de fala, a quantidade de dados é 64 kbits por segundo (qualidade para telecomunicação) e no caso de imagens em movimento, ela é mais do que 100 Mbits por segundo (qualidade para a difusão de televisão atual). Assim, como para os meios de informação descritos acima, não é prático manipular tais grandes quantidades de dados como eles são no formato digital. Por exemplo, telefones visuais já têm sido colo- cados em uso prático pela ISDN (Integrated Services Digital NetWork) possuindo uma taxa de transmissão de 64 kbps até 1,5 Mbps, mas é impossível transmitir uma imagem de saída de uma câmera de televisão possuindo uma grande quantidade de dados como é pela ISDN.
Assim, as tecnologias de compactação de dados são requeridas. Por exemplo, no caso de telefones visuais, as tecnologias de compactação de imagem em movimento padronizadas como H.261 e H.263 pela ITU-T (International Telecommunication Union - Telecommunication Sector) são empregadas. Adicionalmente, de acordo com a tecnologia de compactação de dados baseada no MPEG-1, é possível gravar dados de imagem, junto com dados de áudio, em um DC (disco compacto) de música normal.
Aqui, o MPEG (Moving Picure Experts Group) é um padrão internacional associado com a compactação digital para sinais de imagem de imagens em movimento. No MPEG-1, um sinal digital de uma imagem em movimento é compactada até 1,5 Mbps, isto é, os dados de um sinal de televisão são compactados até cerca de 1/100. Desde que a taxa de transmissão para a qual o MPEG-1 é direcionada é principalmente restrita até cerca de 1,5 Mbps, o MPEG-2 é padronizado para ir de encontro aos requerimentos para qualidade mais elevada da imagem. No MPEG-2, um sinal de imagem de uma imagem em movimento é compactado para 2 até 15 Mbps.
Sob as circunstâncias existentes, a padronização do MPEG-4 possuindo uma taxa de compactação mais elevada têm sido imaginada pelo grupo de trabalho para a padronização do MPEG-1 e MPEG-2 (ISO/IEC JTC1/SC29/WG11). O MPEG-4 não somente permite a codificação em uma taxa de bits inferior com alta eficiência mas também realiza a introdução de uma tecnologia resistente ao erro forte que pode reduzir uma deterioração subjetiva da qualidade da imagem mesmo quando ocorre um erro na linha de transmissão. Adicionalmente, o ITU-T está desenvolvendo a padronização do H.26L como um método de codificáção de imagem da próxima geração e o método de codificação mais recente neste ponto do tempo é um método chamado "Modelo de Teste 8" (TML8). A figura 30 é um diagrama de blocos ilustrando um aparelho de codificação de imagem convencional.
Este aparelho de codificação de imagem 201a possui uma unidade de colocação em bloco Blk para colocar em blocos um sinal de imagem informado Vin dentro das áreas unitárias (blocos), cada uma compreendendo um número predeterminado de pixels e emitir um sinal de imagem colocado em blocos BlkS e uma unidade de transformação de freqüência Trans para sujeitar a saída BlkS à transformação de freqüência para emitir os componentes de freqüência TransS correspondendo aos respectivos blocos. Aqui, o bloco é uma área com um tamanho predeterminado em uma imagem (espaço de imagem), o qual é uma unidade para um processo de codificação de um sinal de imagem e é composto de um número predeterminado de pixels. Aqui, o sinal de imagem Vin corresponde a uma imagem em movimento que é composta de vários quadros. O aparelho de codificação de imagem 201a adicionalmente inclui uma unidade de quantização Q para quantizar as saídas (componentes de freqüência) TransS a partir da unidade de transformação de freqüência e emitir componentes quantizados (coeficientes de quantização) QS correspondendo aos respectivos blocos e uma unidade de codificação RLEOa para sujeitar as saídas (componentes quantizados) Qs a partir da unidade de quantização a um processo de codificação de comprimento variável) A seguir, sua operação será descrita.
Quando um sinal de imagem Vin é informado para o aparelho de codificação de imagem 201a, a unidade de colocação em blocos Blk divide o sinal de imagem informado Vin em sinais de imagem correspondendo às unidades de bloco, para gerar um sinal de imagem (sinal de imagem colocado em blocos) BlkS correspondendo a cada bloco. A unidade de transformação de freqüência Trans transforma o sinal de imagem colocado em blocos BlkS em componentes de freqüência TransS de acordo com a DCT (Transformação de Coseno Separada) ou com a transformação Wavelet. A unidade de quantização Q quantiza os componentes de freqüência TransS em uma etapa de quantização predeterminada baseada em um parâmetro de quantização QP para emitir os componentes quantizados QS, bem como emitir o parâmetro de quantização QP. Então, a unidade de codificação RLEOa sujeita os componentes quantizados QS a um processo de codificação de comprimento variável e emite um fluxo codificado StrOa. A figura 31 é um diagrama de blocos para explicar a unidade de codificação RLEOa que constitui o aparelho de codificação de imagem 201a.
Esta unidade de codificação RLEOa possui um digitalizador em ziguezague Scan para transformar as saídas (componentes quantizados) QS da unidade de quantização Q em uma série bidimensional em um componente quantizado Coef em uma série unidimensional (isto é, ordem predeterminada) e um codificador de comprimento variável VLC para sujeitar os componentes quantizados Coef emitidos a partir do digitalizador em ziguezague Scan a um processo de codificação de comprimento variável.
Quando os componentes quantizados QS emitidos a partir da unidade de quantização Q são informados para a unidade de codificação RLEOa, o digitalizador em ziguezague Scan transforma os componentes quantizados QS em uma série bidimensional a partir da unidade de quantização Q em componentes quantizados Coef em uma série unidimensional (ordem predeterminada) e emite os componentes quantizados. A figura 43 é um diagrama para especificamente explicar o processo para transformar os componentes quantizados QS pelo digitalizador em ziguezague Scan.
Como apresentado na figura 43, os componentes quantizados QS emitidos a partir da unidade de quantização Q possuem uma série bidimensional, isto é, uma série na qual os componentes quantizados QS dispostos na forma de matriz em uma região de freqüência bidimensional Fr de acordo com a altura do componente de freqüência horizontal e com a altura do componente de freqüência vertical. O digitalizador em ziguezague Scan realiza um processo para digitalizar os componentes quantizados QS na série bidimensional de uma maneira em ziguezague como apresentado pelas setas Y1 até Y7, para transformar os componentes em componentes quantizados Coef em uma série unidimensional. Ou seja, neste processo de varredura, uma ordem predeterminada ao longo do curso de varredura é estabelecida com respeito aos vários componentes quantizados QS na série bidimensional.
Então, o codificador de comprimento variável VLC designa códigos para os componentes quantizados Coef que são emitidos a partir do digitalizador em ziguezague Scan, utilizando uma tabela de códigos que apresenta uma correlação entre os valores numéricos indicando os tamanhos dos componentes quantizados e os códigos (palavras código), para transformar os componentes quantizados em um fluxo codificado StrOa correspondendo a cada bloco. A figura 32 é um diagrama de blocos para explicar um aparelho de decodificação de imagem 202a correspondendo ao aparelho de codificação de imagem 201a como apresentado na figura 30.
Este aparelho de decodificação de imagem 202a decodifica o fluxo codificado StrOa que é emitido a partir do aparelho de codificação de imagem convencional 201a como apresentado na figura 30. O aparelho de decodificação de imagem 202a possui uma unidade de decodificação RLDOa para decodificar o fluxo codificado StrOa que é emitido a partir do aparelho de codificação de imagem 201 a e uma unidade de quantização inversa IQ para sujeitar as saídas (componentes de quantização decodificados) DQS a partir da unidade de decodificação RLDOa a um processo de quantização inversa. O aparelho de decodificação de imagem 202a adicionalmente inclui uma unidade de transformação de freqüência inversa ITrans para sujeitar as saídas (componentes de freqüência decodificados) ITransS a partir da unidade de quantização inversa IQ a um processo de transformação de freqüência inverso e uma unidade de retirada de blocos DeBlk para gerar um sinal de imagem decodificado Vout correspondendo a cada imagem baseado nas saídas (sinais de imagem colocados em blocos decodificados) DBIkS a partir da unidade de transformação de freqüência inversa ITrans. A seguir será descrita sua operação.
Quando o fluxo codificado StrOa é informado a partir do aparelho de codificação de imagem 201a para o aparelho de decodificação de imagem 202a, a unidade de decodificação RLDOa decodifica o fluxo codificado StrOa e emite os componentes quantizados decodificados DQS. A operação da unidade de decodificação RLDOa é o inverso da operação da unidade de codificação RLEOa. A unidade de quantização inversa IQ realiza o inverso da operação da unidade de quantização Q, isto é, uma operação de inversamente quantizar os componentes quantizados decodificados DQS com referência ao parâmetro de quantização QP e emite os componentes de freqüência decodificados ITransS. A unidade de transformação de freqüência inversa ITrans realiza o inverso da operação da unidade de transformação de freqüência Trans, isto é, uma operação de sujeitar os componentes de freqüência decodificados ITransS a DCT inversa ou à transformação wavelet inversa, para reconstituir os sinais de imagem decodificados DBIkS correspondendo aos respectivos blocos. Então, a unidade de retirada de blocos DeBlk integra os sinais de imagem decodificados DBIkS dos respectivos blocos para emitir um sinal de imagem decodificado Vout correspondendo a cada imagem (quadro). A figura 33 é um diagrama de blocos para explicar a unidade de decodificação RLDOa que constitui o aparelho de decodificação de imagem 202a. A unidade de decodificação RLDOa possui o decodificador de comprimento variável VLD para sujeitar o fluxo codificado StrOa a um processo de decodificação de comprimento variável para decodificar o componente quantizado Coef correspondendo a cada código incluído no fluxo codificado StrOa e um digitalizador em ziguezague inverso IScan para reconstituir os componentes quantizados DQS em uma série bidimensional a partir dos componentes quantizados decodificados Coef em uma série unidimen-sional, os quais são emitidos a partir do decodificador de comprimento variável VLD.
Nesta unidade de decodificação RLDOa, o decodificador de comprimento variável VLD decodifica o fluxo codificado StrOa de acordo com a operação inversa ao do codificador de comprimento variável VLC e emite componentes quantizados Coef correspondendo aos códigos (palavras código). Então, o digitalizador em ziguezague inverso Scan realiza a operação inversa ao digitalizador em ziguezague Scan para reconstituir os componentes quantizados decodificados DQS em uma série bidimensional a partir dos componentes quantizados Coef em uma série unidimensional, os quais são emitidos a partir do decodificador de comprimento variável VLD e emite os componentes quantizados decodificados DQS para a unidade de quanti-zação inversa IQ. O Pedido de Patente Japonês publicado Ns Hei.6-311534 revela um método no qual um sinal de imagem é dividido em um sinal de luminân-cia e em um sinal de diferença de cor para sujeitar os sinais obtidos a um processo de codificação de comprimento variável.
Os vários componentes quantizados correspondendo aos respectivos blocos, para os quais a ordem predeterminada foi estabelecida, são dados incluindo uma alta redundância, isto é, dados nos quais vários coeficientes cujos valores são zero (coeficientes zero) continuam após um coeficiente cujo valor não é zero (coeficiente não-zero). Para codificar tais componentes quantizados, um método no qual os componentes quantizados são codificados com sua informação redundante sendo deletada, por exemplo, um método de codificação varrendo o comprimento no qual os componentes quantizados são codificados pela utilização de um valor de varredura que indica o número de coeficientes zero sucessivos e um valor de nível que indica que um valor de um coeficiente não-zero seguindo aos coeficientes zero foi convencionalmente empregado.
Daqui para frente, um aparelho de codificação de imagem convencional utilizando o método de codificação varrendo o comprimento será descrito. A figura 34 é um diagrama de blocos ilustrando um aparelho de codificação de imagem convencional que realiza a codificação varrendo o comprimento.
Este aparelho de codificação de imagem 201b inclui, em vez da unidade de codificação RLEOa do aparelho de codificação de imagem 201 a apresentado na figura 30, uma unidade de codificação varrendo o comprimento RLEOb para sujeitar as saídas (componentes quantizados) QS a partir da unidade de quantização Q à codificação varrendo o comprimento e emitir um fluxo codificado StrOb. Outros componentes são os mesmos que estes do aparelho de codificação de imagem 201a. A operação do aparelho de codificação de imagem 201b é diferente desta do aparelho de codificação de imagem 201a somente na operação da unidade de codificação RLEOb. A figura 35 é um diagrama de blocos ilustrando uma construção específica da unidade de codificação RLEOb no aparelho de codificação de imagem 201b.
Esta unidade de codificação correndo o comprimento RLEOb possui, como a unidade de codificação RLEOa, um digitalizador em zigue-zague Scan para transformar as saídas (componentes quantizados) QS em uma série bidimensional a partir da unidade de quantização Q em componentes quantizados Coef em uma série unidimensional (isto é, uma ordem predeterminada).
Então, esta unidade de codificação varrendo o comprimento RLEOb adicionalmente inclui um calculador de varredura RunCal para calcular o número de componentes quantizados sucessivos cujos valores são zero (coeficientes zero) Coef e emitir um valor de varredura Run indicando o número de coeficientes zero sucessivos e um calculador de nível LevCal para calcular um valor de um componente quantizado cujo valor não é zero (coeficiente não-zero), seguindo os coeficientes zero e emitindo um valor de nível Lev indicando o valor do coeficiente não-zero. A unidade de codificação varrendo o comprimento RLEOb adicionalmente inclui um codificador de comprimento variável LevVLC para sujeitar o valor de nível Lev que é emitido a partir do calculador de nível LevCal a um processo de codificação de comprimento variável e emitir uma cadeia de códigos (cadeia de códigos de valor de nível) LStr, um codificador de comprimento variável RunVLC para sujeitar o valor da varredura Run que é emitido a partir do calculador de varredura RunCal a um processo de co- dificação de comprimento variável e emitir uma cadeia de códigos (cadeia de códigos de valor de varredura) RStr e um multiplexador MUX para multi-plexar a cadeia de códigos de valor de nível LStr e a cadeia de códigos de valor de varredura RStr para cada bloco e emitir um fluxo codificado multi-plexado StrOb. A seguir, será descrita sua operação. O digitalizador em ziguezague Scan transforma os componentes quantizados QS em uma série bidimensional, os quais são emitidos a partir da unidade de quantização Q, em componentes quantizados Coef em uma série unidimensional (ordem predeterminada) e emite os componentes quantizados Coef. O processo de transformação para os componentes quantizados QS pelo digitalizador em ziguezague Scan é realizado da mesma maneira que esta na unidade de codificação RLEOa do aparelho de codificação de imagem 201a. O calculador de varredura RunCal calcula o número de coeficientes zero sucessivos baseado nos componentes quantizados Coef que são emitidos a partir do digitalizador em ziguezague Scan e emitir um valor de varredura Run indicando o número calculado. O calculador de nível LevCal calcula um valor de um coeficiente não-zero que segue aos coeficientes zero sucessivos, baseado nos componentes quantizados Coef emitidos a partir do digitalizador em ziguezague Scan e emite um valor de nível Lev indicando este valor.
Aqui, o calculador de varredura RunCal gera um valor especial EOB (Fim de Bloco) quando detectando o componente de freqüência mais elevado (o último coeficiente não-zero) no bloco alvo a ser processado, para informar que os componentes subseqüentes com freqüência mais elevada possuem todos valor zero.
Adicionalmente, o codificador de comprimento variável RunVLC sujeita o valor de varredura Run que é emitido a partir do calculador de varredura RunCal a um processo de codificação de comprimento variável para designar um código (palavra código) para o valor de varredura de acordo com uma tabela de códigos ou com uma operação aritmética e emite uma cadeia de códigos RStr. O codificador de comprimento variável LevVLC sujeita o valor de nível Lev que é emitido a partir do calculador de nível LevCal a um processo de codificação de comprimento variável para designar um código (palavra código) para o valor de nível de acordo com uma tabela de códigos ou com uma operação aritmética e emite uma cadeia de códigos LStr. O multiplexador MUX multiplexa a cadeia de códigos LStr e a cadeia de códigos RStr para cada bloco e emite um fluxo codificado multi-plexado StrOb.
Aqui, o processo para multiplexar a cadeia de códigos LStr e a cadeia de códigos RStr é realizado para cada bloco, por exemplo, de uma maneira que a cadeia de códigos RStr correspondendo a todos os valores de varredura para um bloco alvo seja seguida pela cadeia de códigos LStr correspondendo a todos os valores de nível para o bloco alvo, ou a cadeia de códigos LStr correspondendo a todos os valores de nível para um bloco alvo seja seguida pela cadeia de códigos RStr correspondendo a todos os valores de varredura para o bloco alvo. O aparelho de codificação de imagem como descrito acima para codificar vários coeficientes quantizados em uma ordem predeterminada, pela utilização do valor de varredura Run indicando o número de componentes quantizados cujos valores são zero (coeficiente zero) Coef e o valor de nível Lev indicando um valor de um componente quantizado cujo valor não é zero (coeficiente não-zero) Coef, seguindo aos coeficientes zero, pode codificar os vários coeficientes quantizados com uma eficiência de codificação mais elevada, ao mesmo tempo que removendo sua informação redundante. A figura 36 é um diagrama de blocos para explicar um aparelho de decodificação de imagem 202b correspondendo ao aparelho de codificação de imagem 201b como apresentado na figura 34.
Este aparelho de decodificação de imagem 202b decodifica o fluxo codificado StrO que é emitido a partir do aparelho de codificação de imagem convencional 201b como apresentado na figura 34. O aparelho de decodificação de imagem 202b possui, em vez da unidade de decodificação RLDOa do aparelho de decodificação de imagem 202a apresentado na figura 32, uma unidade de decodificação de varredura de comprimento RLDOb para sujeitar o fluxo codificado StrOb que é emitido a partir do aparelho de codificação de imagem 201 b para um processo de decodificação de varredura de comprimento. Outros componentes são idênticos a estes do aparelho de decodificação de imagem 202a. A operação do aparelho de decodificação de imagem 202b é diferente do aparelho de decodificação de imagem 202a somente na operação da unidade de decodificação RLDOb. A figura 37 é um diagrama de blocos ilustrando uma construção específica da unidade de decodificação de varredura de comprimento RLDOb no aparelho de decodificação de imagem 202b.
Esta unidade de decodificação de varredura de comprimento RLDOb possui um demultiplexador DMUX para demultiplexar o fluxo codificado multiplexado StrOb que é emitido a partir do aparelho de codificação de imagem 201 b para obter a cadeia de códigos LStr correspondendo aos valores de nível e a cadeia de códigos RStr correspondendo aos valores de varredura, um decodificador de comprimento variável LevVLD para sujeitar a cadeia de códigos LStr a um processo de decodificação de comprimento variável para reconstituir os valores de nível Lev, um decodificador de comprimento variável RunVLC para sujeitar a cadeia de códigos RStr a um processo de decodificação de comprimento variável para reconstituir os valores de varredura Run e um digitalizador em ziguezague inverso IScan para reconstituir os componentes quantizados decodificados DQS em uma série bidimensional a partir dos componentes quantizados decodificados em uma série unidimensional, os quais são representados pelos valores de nível Lev e pelos valores de varredura Run. A seguir, sua operação será descrita.
No aparelho de decodificação de imagem 202b, a unidade de decodificação de varredura de comprimento RLDOb realiza a operação inversa à unidade de codificação de varredura de comprimento RLEOb. Ou seja, a unidade de decodificação de varredura de comprimento RLDOb de-multiplexa o fluxo codificado multiplexado StrOb para obter a cadeia de códigos Lstr correspondendo aos valores de nível e a cadeia de códigos RStr correspondendo aos valores de varredura.
Então, o decodificador de comprimento variável LevVLD decodifica a cadeia de códigos LStr correspondendo aos valores de nível pela operação inversa ao codificador de comprimento variável LevVLC e emite os valores de nível Lev. O decodificador de comprimento variável RunVLD decodifica a cadeia de códigos RStr correspondendo aos valores de varredura pela operação inversa ao codificador de comprimento variável RunVLC e emite os valores de varredura Run. O digitalizador em ziguezague inverso IScan reconstitui os componentes quantizados decodificados DQS em uma série bidimensional a partir dos componentes quantizados em uma série unidimensional, os quais são representados pelos valores de nível Lev e pelos valores de varredura Run, pela operação inversa ao do digitalizador em ziguezague Scan e emite os componentes quantizados decodificados para a unidade de quantização inversa IQ. Entretanto, este digitalizador em ziguezague inverso IScan (veja a figura 37) é diferente do digitalizador em ziguezague inverso IScan como apresentado na figura 33 pelo fato de que o valor de nível Lev e o valor de varredura Run são informados para o mesmo. Assim, o digitalizador em ziguezague inverso IScan apresentado na figura 37 tem uma função de converter um coeficiente que é representado pelo valor de nível Lev e pelo valor de varredura Run em componentes quantizados Coef.
De acordo com o aparelho de decodificação de imagem que realiza um processo de decodificação para decodificar vários coeficientes quantizados em uma ordem predeterminada, pela utilização do valor de varredura Run indicando o número de componentes quantizados cujos valores são zero (coeficientes zero) Coef e o valor de nível Lev indicando um valor de um componente quantizado cujo valor não é zero (coeficiente não-zero) Coef, seguindo os coeficientes zero, os dados codificados que são obtidos pela codificação dos vários componentes quantizados de acordo com a co- dificação de varredura de comprimento com a remoção de sua informação redundante com uma eficiência de codificação mais elevada são satisfatoriamente decodificados.
Daqui para frente, outro exemplo do aparelho de codificação de imagem convencional utilizando o método de codificação de varredura de comprimento será descrito. A figura 38 é um diagrama de blocos ilustrando outro exemplo do aparelho de codificação de imagem que emprega a unidade de codificação de varredura de comprimento convencional. Quase todos os aparelhos de codificação de imagem convencionais que são condescendentes com os padrões tal como o MPEG, ou H.261 e H.263 (ITU), ou uma padrão H26L projetado (TML8) que está agora sendo planejado, possuem uma construção como apresentada na figura 38.
Este aparelho de codificação de imagem 201c executa a codificação de coeficientes quantizados utilizando os valores de varredura e o valor de nível, como o aparelho de codificação de imagem 201b apresentado na figura 34, enquanto este aparelho de codificação de imagem 201c não executa um processo de codificação de comprimento variável para o valor de varredura e para o valor de nível separadamente como o aparelho de codificação de imagem 201b, mas executa um processo de codificação de comprimento variável para um par de valor de varredura e de valor de nível (par de varredura-nível).
Para ser mais específico, o aparelho de codificação de imagem 201c possui, como o aparelho de codificação de imagem 201b, uma unidade de colocação em blocos Blk para a qual um sinal de imagem Vin é informado, uma unidade de transformação de freqüência Trans para sujeitar uma saída BlkS a partir da unidade de colocação em blocos à transformação de freqüência e uma unidade de quantização Q para quantizar as saídas (componentes de freqüência) TransS a partir da unidade de transformação. O aparelho de codificação de imagem 201c adicionalmente inclui uma unidade de codificação de varredura de comprimento RLEOc para sujeitar as saídas (componentes quantizados) QS a partir da unidade de quantização a um processo de codificação de varredura de comprimento para transformar um par de varredura-nível compreendendo um valor de varredura e um valor de nível em um código de comprimento variável. A seguir, será descrita sua operação. A unidade de colocação em blocos Blk divide o sinal de imagem Vin em sinais de imagem correspondendo a unidades de bloco para gerar componentes de valor de pixel (sinais de imagem colocados em blocos) BlkS. A unidade de transformação de freqüência Trans transforma os componentes de valor de pixel BlkS em componentes de freqüência TransS de acordo com a DCT (Transformação de Coseno Separada) ou com a transformação Wavelet. A unidade de quantização Q quantiza os componentes de freqüência TransS baseada em um parâmetro de quantização QP para emitir os componentes quantizados QS, bem como emitir o parâmetro de quantização Q. A unidade de codificação de varredura de comprimento RLEOc sujeita os componentes quantizados à codificação de varredura de comprimento e emite um fluxo codificado StrOc.
Aqui, o bloco é uma área de um tamanho predeterminado na imagem (espaço de imagem), o qual é uma unidade em um processo de codificação para um sinal de imagem e composto de um número predeterminado de pixels. A codificação de varredura de comprimento é um processo para transformar um par compreendendo um valor de varredura que indica o número de componentes quantizados sucessivos cujos valores são zero (coeficientes zero) e um valor de nível que indica um valor de um componente quantizado cujo valor não é zero (coeficiente não-zero), seguindo os coeficientes zero, em um código de comprimento variável, em outras palavras, um processo para designar um código de comprimento variável (palavra código) para um par de um valor de varredura e de um valor de nível (par de varredura - nível). A seguir, a unidade de codificação de varredura de comprimento RLEOc será especificamente descrita. A figura 39 é um diagrama de blocos ilustrando uma unidade de codificação de varredura de comprimento convencional RLEOc.
Esta unidade de codificação de varredura de comprimento RLEOc possui, como a unidade de codificação de varredura de comprimento RLEOb como apresentada na figura 35, um digitalizador em ziguezague Scan para transformar as saídas (componentes quantizados) QS em uma série bidimensional a partir da unidade de quantização Q, em componentes quantizados Coef em uma série unidimensional (isto é, uma ordem predeterminada); um calculador de varredura RunCal para calcular o número de componentes quantizados sucessivos cujos valores são zero (coeficientes zero) Coef e emitir um valor de varredura Run; e um calculador de nível Le-vCal para calcular um valor de um componente quantizado cujo valor não é zero (coeficiente não-zero) Coef, seguindo os coeficientes zero e emitir um valor de nível Lev. A unidade de codificação de varredura de comprimento RLEOc adicionalmente inclui um codificador de varredura - nível RunLevEnc para obter um número de código Código correspondendo a um par de valor de nível Lev e de valor de varredura Run de acordo com uma tabela de códigos ou com uma operação aritmética baseado nas saídas a partir do calculador de varredura RunCal e do calculador de nível LevCal; e um codificador de comprimento variável VLC para designar uma palavra código para o número de código Código para gerar um fluxo codificado StrOc correspondendo ao sinal de imagem Vin. A seguir sua operação será descrita.
Na unidade de codificação de varredura de comprimento RLEOc, como na unidade de codificação de varredura de comprimento RLEOb, o digitalizador em ziguezague Scan transforma os componentes quantizados QS em uma série bidimensional, os quais são emitidos a partir da unidade de quantização Q, em componentes quantizados Coef em uma série unidimensional (ordem predeterminada) e emite aos componentes quantizados obtidos. A figura 43 é um diagrama para especificamente explicar um processo para transformar os componentes quantizados QS pelo digitalizador em ziguezague Scan.
Os componentes quantizados QS emitidos a partir da unidade de quantização Q possuem uma série bidimensional como apresentado na figura 43, isto é, uma série na qual os componentes quantizados QS dispostos na forma de matriz em uma região de freqüência bidimensional Fr de acordo com o tamanho do componente de freqüência horizontal e com o tamanho do componente de freqüência vertical. O digitalizador em ziguezague Scan realiza o processo para digitalizar os componentes quantizados QS na série bidimensional de uma maneira em ziguezague, como apresentado pelas setas Y1 até Y7, para transformar os componentes quantizados QS em componentes quantizados Coef em uma série unidimensional. Ou seja, este processo de digitalização estabelece uma ordem predeterminada ao longo do curso de digitalização, com respeito aos vários componentes quantizados QS na série bidimensional. O calculador de varredura RunCal calcula o número de coeficientes zero sucessivos baseado nos componentes quantizados Coef emitidos a partir do digitalizado em ziguezague Scan e emite um valor de varredura Run indicando o número calculado. O calculador de nível LevCal calcula um valor de um coeficiente não-zero seguindo os coeficientes zero sucessivos, baseado nos componentes quantizados Coef emitidos a partir do digitalizador em ziguezague Scan e emite um valor de nível indicando o valor calculado. Aqui, o calculador de varredura RunCal emite um valor específico EOB (Fim de Bloco) quando detectando o componente de freqüência mais elevado (o último coeficiente não-zero) em um bloco alvo a ser processado, para informar que os componentes com freqüência mais elevada sub-seqüentes possuem todos valor zero.
Adicionalmente, o codificador de varredura de comprimento RunLevEnc obtém um número de código Código correspondendo a um par de valor de nível Lev e de valor de varredura Run baseado nas saídas a partir do calculador de varredura RunCal e do calculador de nível LevCal, de acordo com uma tabela de códigos ou com uma operação aritmética. O codificador de comprimento variável VLC codifica o número de código Códi- go que é obtido pelo conversor RunLevEnc, isto é, designa uma palavra código (cadeia de bits) para o número de código para gerar um fluxo codificado StrO. A figura 42 apresenta um exemplo de uma tabela de códigos que é empregada pela unidade de codificação de varredura de comprimento RLEOc. A tabela de códigos (primeira tabela de codificação) T1 apresentada na figura 42 apresenta uma tabela de códigos correspondendo aos componentes DC de um sinal de diferença de cor que é condescendente com um padrão H.26L planejado (TML8) que está agora sendo planejado.
Esta tabela de códigos T é composta de uma parte que pode ser gerada de forma regular incluindo números de código correspondendo aos pares de valores de nível e de valores de varredura que podem ser calculados de acordo com uma operação aritmética utilizando valores de nível e valores de varredura (VLC regularmente construída) e uma parte irregular incluindo números de código correspondendo aos pares de valores de nível e de valores de varredura que não podem ser calculados pela operação aritmética (VLC de procura à tabela). Adicionalmente, uma cadeia de bits (não apresentada) é designada para cada número de código Código como uma palavra código em uma relação de um para um. Uma palavra código mais curta é designada para um número de código Código possuindo um valor menor. A seguir, uma aparelho de decodificação convencional correspondendo ao aparelho de codificação de imagem 201c será descrito. A figura 40 é um diagrama de blocos ilustrando um aparelho de decodificação de imagem 202c que emprega uma unidade de decodificação de varredura de comprimento convencional RLDO.
Este aparelho de decodificação de imagem 202c decodifica o fluxo codificado StrOc que é emitido a partir do aparelho de codificação de imagem convencional 201c apresentado na figura 39. O aparelho de decodificação de imagem 202c decodifica os coeficientes quantizados utilizando o valor de varredura e o valor de nível, como o aparelho de decodificação de imagem 202b na figura 36, enquanto este aparelho de decodificação de imagem 202c não realiza a decodificação de comprimento variável do valor de varredura e do valor de nível separadamente como o aparelho de decodificação de imagem 202b, mas realiza a decodificação de comprimento variável de um par compreendendo o valor de varredura e o valor de nível (par varredura - nível).
Para ser mais específico, o aparelho de decodificação de imagem 202c possui uma unidade de decodificação de varredura de comprimento RLDOc que sujeita o fluxo codificado StrOc emitido a partir do aparelho de codificação de imagem 201c a um processo de decodificação de varredura de comprimento utilizando um par de varredura - nível compreendendo um valor de varredura e um valor de nível. O aparelho de decodificação de imagem 202c adicionalmente possui, como o aparelho de decodificação de imagem 202b, uma unidade de quantização inversa IQ para sujeitar as saídas (componentes quantizados decodificados) DQS a partir da unidade de decodificação de varredura de comprimento RLDc a um processo de quantização inverso; uma unidade de transformação de freqüência inversa ITrans para sujeitar as saídas (componentes de freqüência decodificados) ITransS a partir da unidade de quantização inversa IQ a um processo de transformação de freqüência inverso; e uma unidade de retirada de blocos DeBlk para gerar um sinal de imagem decodificado Vout correspondendo a cada imagem baseada nas saídas (componentes de valor de pixel decodificados) DBIkS a partir da unidade de transformação de freqüência inversa ITrans. A seguir, sua operação será descrita.
No aparelho de decodificação de imagem 202c, a unidade de decodificação de varredura de comprimento RLDOc realiza o inverso da operação da unidade de codificação de varredura de comprimento RLEOc. Para ser mais específico, a unidade de decodificação de varredura de comprimento RLDOc sujeita o fluxo codificado StrOc a um processo de decodificação de varredura de comprimento para emitir os componentes quantizados decodificados DQS. A unidade de quantização inversa IQ realiza a operação inversa a da unidade de quantização Q, isto é, uma operação de in- versamente quantizar os componentes quantizados decodificados DQS com referência a um parâmetro de quantização QP para emitir os componentes de freqüência decodificados ITransS. A unidade de transformação de freqüência inversa ITrans realiza a operação inversa à unidade de transformação de freqüência Trans, isto é, uma operação de sujeitar os componentes de freqüência decodificados ITransS à DCT inversa ou à transformação Wavelet inversa, para reconstituir um sinal de valor de pixel decodificado (sinal de imagem sem blocos decodificado) DBIkS correspondendo a cada bloco. A unidade de retirada de blocos DeBlk integra os componentes de valor de pixel da imagem para os respectivos blocos e emite um sinal de imagem decodificado Vout correspondendo a cada imagem (quadro). A seguir, a unidade de decodificação de varredura de comprimento RLDOc será especificamente descrita. A figura 41 é um diagrama de blocos para explicar uma construção específica da unidade de decodificação de varredura de comprimento RLDOc.
Esta unidade de decodificação de varredura de comprimento RLDOc possui um decodificador de comprimento variável VLD para sujeitar o fluxo codificado StrOc a um processo de decodificação de comprimento variável para obter um número de código Código correspondendo a cada código (palavra código) incluído no fluxo codificado StrOc; um detector de varredura - nível RunLevDec para detectar um par de um valor de nível Lev e de um valor de varredura Run, correspondendo ao número de código Código; e um digitalizado em ziguezague inverso IScan para reconstituir os componentes quantizados decodificados DQS em uma série bidimensional a partir dos componentes quantizados decodificados em um série unidimensi-onal, os quais são representados pelos valores de nível Lev e pelos valores de varredura Run, baseado nos pares de valores de nível Lev e de valores de varredura Run. A seguir, sua operação será descrita.
Nesta unidade de decodificação de varredura de comprimento RLDOc, o decodificador de comprimento variável VLD decodifica o fluxo co- dificado StrOc e emite um número de código Código correspondendo a uma palavra código (cadeia de bits) de acordo com a operação inversa ao codificador de comprimento variável VLC. O detetor de varredura - nível RunLe-vDec refere-se a uma tabela de códigos ou executa uma operação aritmética para emitir um par de valor de nível Lev e de um valor de varredura Run, correspondendo ao número de código Código, de acordo com a operação inversa ao codificador de varredura - nível RunLevEnc. O digitalizador em ziguezague inverso IScan reconstitui os componentes quantizados decodificados DQS em uma série bidimensional a partir dos componentes quantizados em uma série unidirecional que são representados pelos pares de valores de nível Lev e de valores de varredura Run de acordo com a operação inversa ao digitalizador em ziguezague Scan e emite os componentes quantizados decodificados DQS para a unidade de quantização inversa IQ. O Pedido de Patente Japonês Publicado N9 Hei.6-237184 revela um método de codificação de varredura de comprimento no qual vários coeficientes em uma ordem predeterminada são codificados utilizando um valor de varredura Run que indica o número de componentes quantizados cujos valores são zero (coeficientes zero) Coef e um valor de nível Lev que indica um valor de um componente quantizado cujo valor não é zero (coeficiente não-zero) Coef, seguindo os coeficientes zero. A Patente Japonesa N9 3144456 (correspondendo ao Pedido de Patente Japonês Publicado N9 Hei.8-79088) revela um método pelo qual uma tabela de codificação de comprimento variável (tabela VLC) é alterada de acordo com o valor de diferença de um vetor de movimento quando o valor de diferença do vetor de movimento é codificado utilizando uma tabela de codificação de comprimento variável em um método para codificar por prognóstico dados de vídeo digital.
Adicionalmente, uma codificação aritmética é conhecida como outro método pelo qual os valores de pixel são codificados por comprimento variável, no qual a codificação de comprimento variável é executada de acordo com uma operação aritmética pela utilização da probabilidade na qual o valor do pixel pode assumir um valor predeterminado. De acordo com a codificação aritmética, um código é derivado a partir da probabilidade, de modo que uma tabela de probabilidades na qual as probabilidades correspondendo a situações individuais são descritas corresponde à tabela VLC. Aqui, "All about MPEG-4" (primeira edição, primeira tiragem, publicado em 30 de setembro de 1998, escrito e editado por Miki Sukeichi, páginas 69 até 73, da Kogyo Chosakai Publishing Co., Ltd.) descreve um método pelo qual os valores pixel de pixels correspondendo a um alvo de codificação são sujeitos à codificação aritmética pela alteração de uma tabela de probabilidades baseada em um método de prognóstico (contexto) para um pixel de codificação desejado que são prognosticados a partir de valores de pixel dos pixels circunjacentes. A unidade de codificação RLEOa mencionada acima do aparelho de codificação de imagem convencional 201a executa a codificação de comprimento variável para vários coeficientes quantizados os quais são obtidos por se quantizar os componentes de freqüência dos dados de imagem, para cada unidade de processamento predeterminada (bloco). Esta unidade de codificação emprega uma tabela de códigos predeterminada que indica as correspondências entre a informação sobre o valor numérico apresentando o tamanho de cada coeficiente quantizado e um código (palavra código). No processo de codificação de comprimento variável pela unidade de codificação, a informação redundante incluída no coeficiente quantizado (dados a serem processados) não pode ser removida de forma suficiente e assim, a taxa de compactação pode ser adicionalmente aperfeiçoada.
Além disso, na unidade de codificação de varredura de comprimento que realiza a codificação de comprimento variável dos vários coeficientes quantizados utilizando um valor de varredura que indica o número de componentes quantizados cujos valores são zero (coeficientes zero) Coef e um valor de nível que indica um valor de um componente quantizado cujo valor não é zero (coeficiente não-zero) Coef, seguindo aos coeficientes zero, como nas unidades de codificação RLEOb ou RLEOc no aparelho de codificação de imagem convencional 201b ou 201c, a informação redundante incluída nos coeficientes quantizados no processo de codificação de comprimento variável não é suficientemente removida.
Adicionalmente, a unidade de decodificação RLDOa do aparelho de decodificação de imagem convencional 202a ou a unidade de decodificação de varredura de comprimento RLDOb ou RLDOc do aparelho de decodificação de imagem convencional 202b ou 202c corresponde a uma unidade de codificação que não pode de forma suficiente remover a informação redundante incluída nos coeficientes quantizados no processo de codificação de comprimento variável para os coeficientes quantizados.
Adicionalmente, como para o método pelo qual uma tabela de codificação de comprimento variável (tabela VLC) é alterada de acordo com o valor de um valor diferencial do vetor de movimento quando o valor diferencial do vetor de movimento é codificado utilizando-se uma tabela de codificação de comprimento variável em um método para codificar por prognóstico dados de vídeo digital, uma alteração eficaz da tabela de codificação em um processo de codificação de comprimento variável para dados possuindo tais características que os vários coeficientes zero sucessivamente seguem, como os coeficientes quantizados que são obtidos por se quantizar os componentes de freqüência de um sinal de imagem, não tem sido conhecida. A presente invenção é feita para resolver os problemas mencionados acima e esta invenção tem como seu objetivo proporcionar um método de codificação de comprimento variável e um método de decodificação de comprimento variável, os quais possam remover a informação redundante incluída nos dados alvo (coeficientes quantizados) para um processo de codificação de comprimento variável, de forma mais eficaz de acordo com as características dos coeficientes quantizados e com os estados de um processo de codificação para os componentes quantizados, desse modo adicionalmente aumentando uma taxa de compactação de um sinal de imagem ou semelhante.
Revelação da Invenção De acordo com a presente invenção, é proporcionado um método de codificação de comprimento variável para codificar dados de coefici- ente os quais são compostos de vários coeficientes incluindo: uma etapa para sujeitar os respectivos coeficientes a um processo de codificação para transformar os dados de coeficiente em dados codificados os quais são compostos de vários códigos, pela utilização de várias tabelas de códigos indicando as correspondências entre os valores dos coeficientes e os códigos e esta etapa de codificação inclui: uma etapa de seleção da tabela de códigos para selecionar a tabela de códigos de acordo com pelo menos um dentre a informação a cerca de um coeficiente codificado que foi codificado e um parâmetro relacionando-se com o processo de codificação dos coeficientes; e uma etapa de designação de código para designar um código para um coeficiente não-codificado que ainda não foi codificado, utilizando a tabela de códigos selecionada. Portanto, a informação redundante incluída nos dados do coeficiente que são para ser sujeitos ao processo de codificação de comprimento variável são efetivamente deletados pela seleção de uma tabela de códigos de acordo com as características dos coeficientes que constituem os dados do coeficiente ou estados de um processo de codificação para os coeficientes, desse modo aumentando muito uma eficiência da codificação do processo de codificação de comprimento variável para sinais de imagem ou semelhantes.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, os coeficientes são obtidos por se quantizar os componentes de freqüência dos dados da imagem de acordo com uma etapa de quantização correspondendo aos dados da imagem e na etapa de seleção da tabela de códigos, a tabela de códigos que é utilizada na etapa de designação de código é selecionada de acordo com um valor da etapa de quantização. Portanto, uma tabela de códigos que é adaptada para o valor da etapa de quantização e maximiza a eficiência da codificação pode ser sempre empregada.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, de acordo com o processo de codificação para os coeficientes, um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero são cada um transformados em um código, na etapa de seleção da tabela de códigos, pelo menos um dentre um primeiro processo de seleção para selecionar uma tabela de códigos dentre várias tabelas de códigos que indicam as correspondências entre o valor de varredura e o código de acordo com o valor da etapa de quantização e um segundo processo de seleção para selecionar uma tabela de códigos dentre várias tabelas de códigos que indicam as correspondências entre o valor de nível e o código de acordo com o valor da etapa de quantização é realizado e na etapa de designação de código, um código é designado para pelo menos um dentre um valor de varredura e um valor de nível correspondendo a um coeficiente não-codificado que ainda não foi codificado, baseado na tabela de códigos selecionada. Portanto, a designação de códigos para pelo menos um dentre os valores de varredura e os valores de nível pode ser executada sempre pela utilização de uma tabela de códigos que é adaptada para o valor da etapa de quantização e minimiza o número total de bits correspondendo aos códigos designados.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, de acordo com o processo de codificação para os coeficientes, um par de varredura - nível compreendendo um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero é transformado em um código, na etapa de seleção da tabela de códigos, uma tabela de códigos é selecionada a partir de várias tabelas de códigos que indicam as correspondências entre o par de varredura - nível e o código de acordo com o valor da etapa de quantização e na etapa de designação de código, um código é designado para um par de varredura - nível correspondendo a um coeficiente não-codificado que ainda não foi codificado, baseado na tabela de códigos selecionada. Portanto, a designação de códigos para pares de varredura - nível pode ser executada sempre pela utilização de uma tabela de códigos que é adaptada para o valor da etapa de quantização e minimiza o número total de bits correspondendo aos códigos designados.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, na etapa de seleção da tabela de códigos, a tabela de códigos que é utilizada na etapa de designação de código é selecionada de acordo com a informação a cerca dos coeficientes já processados que foram codificados. Portanto, o processo de codificação para os coeficientes quantizados pode ser realizado sempre pela utilização de uma tabela de códigos que é adaptada para o número de coeficientes não-codificados e maximiza a eficiência da codificação.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, de acordo com o processo de codificação para os coeficientes, um valor de varredura que indica o número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero são transformados em um código respectivamente, na etapa de seleção da tabela de códigos, pelo menos um dentre um primeiro processo de seleção para selecionar uma tabela de códigos dentre várias tabelas de códigos que indicam correspondências entre o valor de varredura e o código de acordo com a informação a cerca de um valor de varredura correspondendo ao código e um segundo processo de seleção para selecionar uma tabela de códigos dentre várias tabelas de código que indicam correspondências entre o valor de nível e o código de acordo com a informação a cerca de um valor de nível correspondendo aos coeficientes codificados, é realizado e na etapa de designação de código, um código é designado para pelo menos um dentre um valor de varredura e um valor de nível correspondendo a um coeficiente não-codificado, baseado na tabela de códigos selecionada. Portanto, a designação de códigos para pelo menos um dentre os valores de varredura e os valores de nível pode ser executada sempre pela utilização de uma tabela de códigos que é adaptada para o número de coeficientes não-codificados e maximiza a eficiência da codificação.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, na etapa de seleção da tabela de códigos, uma tabela de códigos é selecionada dentre várias tabelas de códigos que indicam correspondência entre o valor de varredura e o código de acordo com um número de valores de varredura codificados que foram codificados e na etapa de designação de código, um código é designado para um valor de varredura não-codificado que ainda não foi codificado, baseado na tabela de códigos selecionada. Portanto, a designação de códigos para valores de varredura pode ser executada sempre pela utilização de uma tabela de códigos que é adaptada para o número de valores de varredura ainda não-processados e maximiza a eficiência da codificação.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, de acordo com o processo de codificação para os coeficientes, um par de varredura - nível compreendendo um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero é transformado em um código, na etapa de seleção de tabela, uma tabela de códigos é selecionada dentre várias tabelas de códigos que indicam correspondências entre o par de varredura - nível e o código de acordo com a informação a cerca de um par de varredura - nível correspondendo a um coeficiente codificado que foi codificado e na etapa de designação de código, um código é designado para um par de varredura - nível correspondendo a um coeficiente não-codificado que ainda não foi codificado, baseado na tabela de códigos selecionada. Portanto, a designação de códigos para os pares de varredura -nível pode ser executada sempre pela utilização de uma tabela de códigos que é adaptada para o número de coeficientes ainda não-processados e maximiza a eficiência da codificação.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, os coeficientes são obtidos pela quantização dos componentes de freqüência dos dados da imagem de acordo com uma etapa de quantização correspondendo aos dados da imagem e na etapa de codificação, o processo de codificação para os coeficientes é realizado de modo que os códigos sejam designados para os vários coeficientes que constituem os dados da imagem desde o componente de alta freqüência dos dados da imagem correspondente até o componente de baixa freqüência. Portanto, o número total de bits correspondendo aos códigos que são designados para os coeficientes pode ser adicionalmente reduzido.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, de acordo com o processo de codificação para os coeficientes, um par de varredura - nível compreendendo um valor de varredura que indica o número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero é transformado em um código, para cada bloco que é composto de um número predeterminado de coeficientes e na etapa de seleção da tabela de códigos, uma tabela de códigos é selecionada dentre várias tabelas de códigos que indicam correspondências entre o par varredura - nível e o código de acordo com uma soma de um número de coeficientes já processados que foram sujeitos ao processo de codificação em um bloco alvo que é um objeto do processo de codificação e um número de coeficientes não-zero não-codificados que ainda não foram codificados no bloco alvo e na etapa de designação de código, um código é designado para um par de varredura - nível correspondendo a um coeficiente não-codificado no bloco alvo, baseado na tabela de códigos selecionada. Portanto, uma tabela de códigos que não inclui pares de valores de varredura e de valores de nível que nunca ocorrerão pode ser empregada, desse modo aumentando a eficiência da codificação de comprimento variável.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, de acordo com o processo de codificação para os coeficientes, um par de varredura - nível compreendendo um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um coeficiente não-zero seguindo os coeficientes zero é transformado em um código, a etapa de codificação inclui uma etapa de processamento da tabela de códi- gos para regularmente alterar as correspondências entre o par de varredura - nível e o código em uma primeira tabela de códigos que indica correspondência entre o par de varredura - nível e o código correspondente de acordo com combinações do valor de varredura e do valor de nível que compõem o par de varredura - nível, baseado na primeira tabela de códigos, desse modo para formar uma segunda tabela de códigos possuindo correspondências diferentes entre o par de varredura - nível e o código da primeira tabela de códigos e na etapa de seleção da tabela de códigos, uma dentre uma primeira e uma segunda tabela de códigos é selecionada de acordo com pelo menos um dentre a informação a cerca dos coeficientes já processados e o parâmetro relacionando-se com a geração dos coeficientes. Portanto, uma dentre a primeira e a segunda tabelas de código é de forma adaptável selecionada como uma tabela de códigos ótima que é para ser utilizada quando os códigos são designados para os pares de valores de varredura e de valores de nível, por meio do que a informação redundante incluída nos dados alvo a serem processados pode ser de forma eficaz de-letada. Por conseqüência, a taxa de compactação para os sinais de imagem ou semelhantes pode ser adicionalmente aperfeiçoada, de modo que este método de codificação de comprimento variável é altamente útil.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, na primeira e na segunda tabelas de códigos, códigos mais curtos são feitos corresponder de forma adaptável aos respectivos pares de varredura -nível possuindo valores de nível menores que compõem os pares de varredura - nível e na segunda tabela de códigos, os valores de nível dos pares de varredura - nível para os quais códigos mais curtos são feitos corresponder são menores em média se comparado com a primeira tabela de códigos. Portanto, este método de codificação de comprimento variável é útil quando o parâmetro de quan-tização para os coeficientes que constituem os dados alvo a serem processados é grande.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, na primeira e na segunda ta- belas de códigos, códigos mais curtos são feitos corresponder de forma adaptável aos respectivos pares de varredura - nível possuindo valores de varredura menores que compõem os pares de varredura - nível e na segunda tabela de códigos, valores de varredura dos pares de varredura - nível para os quais códigos mais curtos são feitos corresponder são menores em média se comparado com a primeira tabela de códigos. Portanto, este método de codificação de comprimento variável é útil quando o parâmetro de quantização para os coeficientes que constituem os dados alvo a serem processados é pequeno.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, de acordo com o processo de codificação para os coeficientes, a transformação dos pares de varredura -nível em códigos é realizada para cada bloco que é composto de um número predeterminado de coeficientes e na etapa de processamento da tabela de códigos, a segunda tabela de códigos é formada de acordo com um número de coeficientes já processados os quais foram sujeitos ao processo de codificação em um bloco alvo que é um objeto do processo de codificação. Portanto, uma tabela de códigos que não inclui pares compreendendo valores de varredura e valores de nível que nunca ocorrerão pode ser empregada como a segunda tabela de códigos, desse modo adicionalmente aumentando a eficiência da codificação de comprimento variável.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, na etapa de designação de código, a designação de códigos para os pares de varredura - nível é realizada a partir de um par de varredura - nível correspondendo a um coeficiente possuindo um componente de freqüência mais elevado dos dados da imagem, desde o componente de alta freqüência até o componente de baixa freqüência. Portanto, o aumento na eficiência da codificação de comprimento variável, obtido pela utilização da tabela de códigos que não inclui pares compreendendo valores de varredura e valores de nível que nunca irão ocorrer como a segunda tabela de códigos, pode ser feita maior.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, a segunda tabela de códigos é formada por se alterar somente as correspondências que podem ser regularmente operadas, entre as correspondências entre o par de varredura -nível e o código incluído na primeira tabela de códigos. Portanto, uma operação aritmética que é requerida para a formação da segunda tabela de códigos pode ser reduzida.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, os coeficientes constituindo os dados de coeficiente são obtidos por se quantizar os componentes de frequência dos dados da imagem, de acordo com uma etapa de quantização correspondendo aos dados da imagem e a etapa de seleção da tabela de códigos é uma etapa de troca de tabela de códigos para trocar entre a primeira tabela de códigos e a segunda tabela de códigos de acordo com um valor da etapa de quantização. Portanto, uma tabela de códigos que é adaptada para a etapa de quantização pode ser empregada como a tabela de códigos a ser utilizada em um processo de codificação de comprimento variável para os coeficientes que constituem os dados alvo a serem processados.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, a etapa de seleção da tabela de códigos é uma etapa de troca de tabela de códigos para trocar entre a primeira tabela de códigos e a segunda tabela de códigos de acordo com um sinal de instrução de troca e na etapa de codificação, a codificação do sinal de instrução de troca é realizada. Portanto, a tabela de códigos a ser utilizada no processo de codificação de comprimento variável para os coeficientes pode ser alterada de acordo com as características dos dados alvo ou semelhantes.
De acordo com a presente invenção, no método de codificação de comprimento variável mencionado acima, de acordo com o processo de codificação para os coeficientes, a transformação dos pares de varredura -nível em códigos é realizada para cada bloco que é composto de um número predeterminado de coeficientes e na etapa de processamento da tabela de códigos, a segunda tabela de códigos é formada baseada em uma soma de um número de coeficientes já processados que foram sujeitos ao processo de codificação em um bloco alvo que é um objeto do processo de codificação e em um número de coeficientes não-zero não-codificados que não foram ainda codificados no bloco alvo. Portanto, uma tabela de códigos que não inclui pares de valores de varredura e de valores de nível que nunca irão ocorrer pode ser utilizada como a segunda tabela de códigos, desse modo adicionalmente aumentando a eficiência da codificação de comprimento variável.
De acordo com a presente invenção, é proporcionado um aparelho de codificação de comprimento variável que codifica dados de coeficiente que são compostos de vários coeficientes incluindo: uma unidade de codificação para sujeitar os respectivos coeficientes a um processo de codificação para transformar os dados de coeficiente em dados codificados que são compostos de vários códigos, por se utilizar várias tabelas de códigos indicando as correspondências entre os valores dos coeficientes e os códigos e esta unidade de codificação inclui: uma unidade de seleção de tabela de códigos para selecionar a tabela de códigos de acordo com pelo menos um dentre a informação a cerca de um coeficiente codificado que foi codificado e um parâmetro relacionando-se com o processo de codificação dos coeficientes; e uma unidade de designação de código para designar um código para um coeficiente não-codificado que ainda não-codificado, utilizando a tabela de códigos selecionada. Portanto, a informação redundante incluída nos dados de coeficiente que são para ser sujeitos ao processo de codificação de comprimento variável é de forma eficaz deletada pela seleção de uma tabela de códigos de acordo com as características dos coeficientes que constituem os dados de coeficientes ou estados do processo de codificação para os coeficientes, desse modo aumentando muito a eficiência da codificação no processo de codificação de comprimento variável para sinais de imagem ou semelhantes.
De acordo com a presente invenção, no aparelho de codificação de comprimento variável mencionado acima, os coeficientes são obtidos por se quantizar os componentes de freqüência dos dados da imagem de acordo com uma etapa de quantização correspondendo aos dados da imagem e a unidade de seleção da tabela de códigos seleciona a tabela de códigos que é para ser utilizada pela unidade de designação de código de acordo com o valor da etapa de quantização. Portanto, uma tabela de códigos que é adaptada para o valor da etapa de quantização e maximiza a eficiência da codificação pode ser sempre empregada.
De acordo com a presente invenção, no aparelho de codificação de comprimento variável mencionado acima, a unidade de seleção de tabela de códigos seleciona a tabela de códigos que é para ser utilizada pela unidade de designação de código, de acordo com a informação a cerca do coeficiente codificado. Portanto, o processo de codificação para coeficientes quantizados pode ser realizado sempre pela utilização de uma tabela de códigos que é adaptada para o número de coeficientes ainda não-processados e maximiza a eficiência da codificação.
De acordo com a presente invenção, no aparelho de codificação de comprimento variável mencionado acima, de acordo com o processo de codificação para os coeficientes, um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero são cada um transformados em um código, a unidade de seleção de tabela de códigos seleciona uma tabela de códigos dentre várias tabelas de códigos que indica as correspondências entre o valor de varredura e o código, de acordo com um número de valores de varredura codificados para os quais os códigos foram designados e a unidade de designação de código designa um código para um valor de varredura não-codificado que ainda não foi codificado, baseado na tabela de códigos selecionada. Portanto, a designação de códigos para valores de varredura pode ser executada sempre pela utilização de uma tabela de códigos que é adaptada para os valores de varredura ainda não-processados e maximiza a eficiência da codificação.
De acordo com a presente invenção, no aparelho de codificação de comprimento variável mencionado acima, os coeficiente são obtidos por se quantizar os componentes de freqüência dos dados da imagem, de acordo com uma etapa de quantização correspondendo aos dados da imagem e a unidade de codificação realiza o processo de codificação para os coeficientes de modo que códigos sejam designados para os vários coeficientes que constituem os dados de coeficiente desde o componente de alta freqüência até o componente de baixa freqüência. Portanto, o número total de bits correspondendo aos códigos que são designados para os coeficientes pode ser adicionalmente reduzido.
De acordo com a presente invenção, é proporcionado um meio de armazenamento que contém um programa para executar um processo de codificação de comprimento variável para codificar dados de coeficiente que são compostos de vários coeficientes, por um computador e este programa inclui: uma etapa de codificação para sujeitar os respectivos coeficientes a um processo de codificação para transformar os dados de coeficiente em dados codificados que são compostos de vários códigos, por se utilizar várias tabelas de códigos indicando as correspondências entre os valores dos coeficientes e os códigos e adicionalmente esta etapa de codificação inclui: uma etapa de seleção de tabela de códigos para selecionar a tabela de códigos de acordo com pelo menos um dentre a informação a cerca de um coeficiente codificado que foi codificado e um parâmetro relacionando-se a um processo de codificação dos coeficientes; e uma etapa de designação de código para designar um código para um coeficiente não-codificado que ainda não foi codificado, utilizando a tabela de códigos selecionada. Portanto, um processo de codificação de comprimento variável possuindo uma eficiência de codificação mais elevada, o qual pode efetivamente deletar informação redundante incluída nos dados de coeficiente como um objeto a ser sujeito ao processo de codificação de comprimento variável pela seleção de uma tabela de códigos de acordo com as características dos coeficientes constituindo os dados de coeficiente ou estados do processo de codificação para os coeficientes, pode ser implementado por software.
De acordo com a presente invenção, é proporcionado um méto- do de decodificação de comprimento variável para decodificar dados codificados que são compostos de vários códigos, obtidos por se executar a codificação de comprimento variável para dados de coeficiente os quais são compostos de vários coeficientes incluindo: uma etapa de decodificação para sujeitar os respectivos códigos a um processo de decodificação para decodificar os dados codificados para reconstituir os dados de coeficiente os quais são compostos de vários coeficientes, utilizando várias tabelas de códigos indicando as correspondências entre os valores dos coeficientes e os códigos e esta etapa de decodificação inclui: uma etapa de seleção da tabela de códigos para selecionar a tabela de códigos de acordo com pelo menos um dentre a informação a cerca de um coeficientes decodificado que foi decodificado e um parâmetro relacionando-se com o processo de decodificação; e uma etapa de detecção de valor para detectar o valor correspondendo a um código não-decodificado que ainda não foi decodificado, pela utilização da tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável possuindo uma eficiência de codificação mais elevada, o qual pode efetivamente deletar informação redundante incluída nos dados de coeficientes pela alteração de uma tabela de códigos, para codificar os dados de coeficiente pode ser realizado.
De acordo com a presente invenção, no processo de decodificação de comprimento variável mencionado acima, os coeficientes são obtidos por se quantizar os componentes de freqüência dos dados da imagem de acordo com uma etapa de quantização correspondendo aos dados da imagem e na etapa de seleção da tabela de códigos, a tabela de códigos que é utilizada na etapa de detecção de valor é selecionada de acordo com um valor da etapa de quantização. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que sempre emprega uma tabela de códigos que é adaptada para o valor da etapa de quantização e maximiza a eficiência da codificação pode ser realizado.
De acordo com a presente invenção, no processo de decodifica- ção de comprimento variável mencionado acima, no processo de decodifi-cação para os códigos, um código é decodificado para reconstituir um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero, na etapa de seleção da tabela de códigos, pelo menos um dentre um primeiro processo de seleção para selecionar uma tabela de códigos dentre várias tabelas de códigos que indicam as correspondências entre os valor de varredura e o código, de acordo com o valor da etapa de quantização e um segundo processo de seleção para selecionar uma tabela de códigos dentre várias tabelas de códigos que indicam as correspondências entre o valor de nível e o código de acordo com o valor da etapa de quantização é realizado e na etapa de detecção de valor numérico, pelo menos um dentre um valor de varredura e um valor de nível correspondendo a um código não-decodificado que ainda não foi decodificado, baseado na tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que executa a designação de códigos para pelo menos um dentre os valores de varredura e os valores de nível sempre pela utilização de uma tabela de códigos que é adaptada para o valor da etapa de quantização e minimiza o número total de bits correspondendo aos códigos designados, pode ser realizado.
De acordo com a presente invenção, no processo de decodificação de comprimento variável mencionado acima, de acordo com o processo de decodificação para os códigos, um código é decodificado para reconstituir um par de varredura - nível compreendendo um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero, na etapa de seleção da tabela de códigos, uma tabela de códigos é selecionada a partir de várias tabelas de códigos que indicam as correspondências entre o par de varredura - nível e o código de acordo com o valor da etapa de quantização e na etapa de detecção de valor numérico, um par de varredura - nível correspondendo a um código não- decodificado que tem não-decodificado é detectado baseado na tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que executa a designação de códigos para pares de varredura - nível sempre pela utilização de uma tabela de códigos que é adaptada para o valor da etapa de quantização e minimiza o número total de bits correspondendo aos códigos designados, pode ser realizado.
De acordo com a presente invenção, no processo de decodificação de comprimento variável mencionado acima, na etapa de seleção da tabela de códigos, a tabela de códigos que é utilizada na etapa de detecção de valor numérico é selecionada de acordo com a informação a cerca de um coeficiente decodificado. Portanto, um processos de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que codifica coeficientes quantizados sempre pela utilização de uma tabela de códigos que é adaptada para o número de coeficientes ainda não-processados e maximiza a eficiência da codificação, pode ser realizado.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, de acordo com o processo de decodificação para os códigos, o código é decodificados para reconstituir um valor de varredura que indica o número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero, respectivamente, na etapa de seleção da tabela de códigos, pelo menos um dentre um primeiro processo de seleção para selecionar uma tabela de códigos dentre várias tabelas de códigos que indicam correspondências entre o valor de varredura e o código de acordo com a informação a cerca de um valor de varredura decodificado e um segundo processo de seleção para selecionar uma tabela de códigos dentre várias tabelas de código que indicam correspondências entre o valor de nível e o código de acordo com a informação a cerca de um valor de nível decodificado é realizado e na etapa de detecção de valor, pelo menos um dentre um valor de varredura e um valor de nível correspon- dendo a um código não-decodificado é detectado baseado na tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que executa a designação de códigos para pelo menos um dentre os valores de varredura e os valores de nível sempre pela utilização de uma tabela de códigos que é adaptada para o número de coeficientes ainda não-processados e maximiza a eficiência da codificação, pode ser realizado.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, na etapa de seleção da tabela de códigos, uma tabela de códigos é selecionada dentre várias tabelas de códigos que indicam correspondência entre o valor de varredura e o código de acordo com um número de valores de varredura decodificados que já foram decodificados e na etapa de detecção de valor, um valor de varredura correspondendo a um código não-decodificado que ainda não foi decodificado é detectado baseado na tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que executa a designação de códigos para valores de varredura sempre pela utilização de uma tabela de códigos que é adaptada para o número de valores de varredura ainda não-processados e maximiza a eficiência da codificação, pode ser realizado.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, de acordo com o processo de decodificação para os códigos, um código é decodificado para reconstituir um par de varredura - nível compreendendo um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero, na etapa de seleção de tabela de códigos, uma tabela de códigos é selecionada dentre várias tabelas de códigos que indicam correspondências entre o par de varredura - nível e o código de acordo com a informação a cerca de um par de varredura - nível que foi obtida pelo processo de decodificação e na etapa de detecção de valor numérico, um par de varredura - nível correspondendo a um código não-decodificado que ainda não foi decodificado é detectado baseado na tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que executa a designação de códigos para os pares de varredura - nível sempre pela utilização de uma tabela de códigos que é adaptada para o número de coeficientes ainda não-processados e maximiza a eficiência da codificação, pode ser realizado.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, os coeficientes são obtidos pela quantização dos componentes de freqüência dos dados da imagem de acordo com uma etapa de quantização correspondendo aos dados da imagem e na etapa de decodificação, o processo de decodificação para os códigos é realizado de modo que os valores correspondendo aos códigos sejam obtidos desde do componente de alta freqüência até o componente de baixa freqüência. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que pode adicionalmente reduzir o número total de bits correspondendo aos códigos que são designados para os coeficientes, pode ser realizado.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, de acordo com o processo de decodificação para os códigos, um código é decodificado para reconstituir um par de varredura - nível compreendendo um valor de varredura que indica o número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero, para cada bloco que é composto de coeficientes predeterminados compreendendo os dados de coeficiente, na etapa de seleção da tabela de códigos, uma tabela de códigos é selecionada dentre várias tabelas de códigos que indicam correspondências entre o par varredura -nível e o código de acordo com uma soma de um número de coeficientes já processados em um bloco alvo que é um objeto do processo de decodifica- ção, os quais foram obtidos pelo processo de decodificação para o bloco alvo e de um número de coeficientes não-zero não-decodificados no bloco alvo, os quais ainda não foram obtidos pelo processo de decodificação para o bloco alvo e na etapa de detecção de valor numérico, um par de varredura - nível correspondendo a um coeficiente não-decodificado no bloco alvo é detectado baseado na tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que possui uma eficiência mais elevada pode ser implementado por se utilizar uma tabela de códigos que não inclui pares compreendendo valores de varredura e valores de nível que nunca ocorrerão.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, de acordo com o processo de decodificação para os códigos, um código que constitui os dados codificados é decodificado para reconstituir um par de varredura - nível compreendendo um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um coeficiente não-zero seguindo os coeficientes zero, a etapa de decodificação inclui uma etapa de processamento da tabela de códigos para regularmente alterar as correspondências entre o par de varredura - nível e o código em uma primeira tabela de códigos que indica correspondência entre o par de varredura - nível e o código correspondente de acordo com combinações do valor de varredura e do valor de nível que compõem o par de varredura - nível, baseado na primeira tabela de códigos, desse modo para formar uma segunda tabela de códigos possuindo correspondências diferentes entre o par de varredura - nível e o código da primeira tabela de códigos e na etapa de seleção da tabela de códigos, uma dentre uma primeira e uma segunda tabela de códigos é selecionada de acordo com pelo menos um dentre a informação a cerca dos coeficientes já processados e o parâmetro relacionando-se com a geração dos coeficientes. Portanto, uma dentre a primeira e a segunda tabelas de código é de forma adaptável selecionada como uma tabela de códigos ótima que é para ser utilizada quando os códigos são transformados em pares de valores de varredura e de valores de nível. Por conseqüência, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que efetivamente deleta a informação redundante incluída nos dados alvo a serem processados é satisfatoriamente realizado, de modo que este método de decodificação de comprimento variável seja altamente útil.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, na primeira e na segunda tabelas de códigos, códigos mais curtos são feitos corresponder de forma adaptável aos respectivos pares de varredura -nível possuindo valores de nível menores que compõem os pares de varredura - nível e na segunda tabela de códigos, os valores de nível dos pares de varredura - nível para os quais códigos mais curtos são feitos corresponder, são menores em média se comparado com a primeira tabela de códigos. Portanto, este método de decodificação de comprimento variável é eficaz em casos onde um parâmetro de quantização relacionando-se com os coeficientes que constituem os dados alvo a serem processados é grande.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, na primeira e na segunda tabelas de códigos, códigos mais curtos são feitos corresponder de forma adaptável aos respectivos pares de varredura - nível possuindo valores de varredura menores que compõem os pares de varredura - nível e na segunda tabela de códigos, valores de varredura dos pares de varredura - nível para os quais códigos mais curtos são feitos corresponder, são menores em média se comparado com a primeira tabela de códigos. Portanto, este método de decodificação de comprimento variável é eficaz em casos onde o parâmetro de quantização relacionando-se com os coeficientes que constituem os dados alvo a serem processados, é pequeno.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, de acordo com o processo de decodificação para os códigos, a reconstituição de um par de varredura -nível a partir de um código é executada para cada bloco que é composto de um número predeterminado de coeficientes que compõem os dados de coeficiente e na etapa de processamento da tabela de códigos, a segunda tabela de códigos é formada de acordo com um número de coeficientes já processados os quais foram obtidos pelo processo de decodificação em um bloco alvo que é um objeto do processo de decodificação. Portanto, uma tabela de códigos que não inclui pares de valores de varredura e de valores de nível que nunca ocorrerão pode ser empregada como a segunda tabela de códigos, por meio do que um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que possui uma eficiência elevada, pode ser implementado.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, na etapa de detecção de valor numérico, a detecção de um par de varredura - nível correspondendo a um código é executada a partir de um par de varredura - nível possuindo um componente de freqüência mais elevado dos dados da imagem, desde o componente de alta freqüência até o componente de baixa freqüência. Portanto, uma tabela de códigos que não inclui pares de valores de varredura e de valores de nível que nunca irão ocorrer pode ser empregada como a segunda tabela de códigos, por meio do que um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que aumenta a taxa de compactação de forma mais eficaz, pode ser implementado.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, a segunda tabela de códigos é formada por se alterar somente as correspondências que podem ser regularmente operadas, entre as correspondências entre o par de varredura - nível e o código incluído na primeira tabela de códigos. Portanto, uma operação aritmética que é requerida para a formação da segunda tabela de códigos pode ser reduzida.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, os coeficientes constituindo os dados de coeficiente são obtidos por se quantizar os componentes de freqüência dos dados da imagem, de acordo com uma etapa de quantização correspondendo aos dados da imagem e na etapa de seleção da tabela de códigos, a troca entre a primeira tabela de códigos e a segunda tabela de códigos é executada de acordo com um valor da etapa de quantização. Portanto, uma tabela de códigos que é adequada para a etapa de quantização pode ser empregada como a tabela de códigos a ser utilizada no processo de decodificação de comprimento variável para os coeficientes constituindo os dados alvo a serem processados.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, a etapa de seleção da tabela de códigos inclui uma etapa de troca de tabela de códigos para trocar entre a primeira tabela de códigos e a segunda tabela de códigos de acordo com um sinal de instrução de troca e na etapa de decodificação, a decodificação do sinal de instrução de troca é realizada. Portanto, uma tabela de códigos a ser empregada no processo de decodificação de comprimento variável pode ser trocada de acordo com as características dos dados alvo a serem processados ou semelhantes.
De acordo com a presente invenção, no método de decodificação de comprimento variável mencionado acima, de acordo com o processo de decodificação para os códigos, a reconstituição de um par de varredura -nível a partir de um código é executada para cada bloco que é composto de um número predeterminado de coeficientes que compõem os dados de coeficiente e na etapa de processamento da tabela de códigos, a segunda tabela de códigos é formada baseada em uma soma de um número de coeficientes já processados em um bloco alvo que é um objeto do processo de decodificação, os quais foram obtidos pelo processo de decodificação para o bloco alvo com um número de coeficientes não-zero não-decodificados no bloco alvo, que não foram ainda obtidos pelo processo de decodificação para o bloco. Portanto, uma tabela de códigos que não inclui pares de valores de varredura e de valores de nível que nunca irão ocorrer é empregada como a segunda tabela de códigos, por meio do que um processo de decodificação de comprimento variável correspondendo a um processo de codifi- cação de comprimento variável possuindo uma eficiência muito maior, pode ser implementado.
De acordo com a presente invenção, é proporcionado um aparelho de decodificação de comprimento variável que decodifica dados codificados que são compostos de vários códigos, obtidos pela codificação de comprimento variável para dados de coeficiente que são compostos de vários coeficientes, incluindo: uma unidade de decodificação para sujeitar os respectivos códigos a um processo de decodificação para decodificar os dados de código para reconstituir os dados de coeficiente que são compostos de vários coeficientes, utilizando-se várias tabelas de códigos indicando as correspondências entre os valores dos coeficientes e os códigos e esta unidade de decodificação inclui: uma unidade de seleção de tabela de códigos para selecionar a tabela de códigos dentre várias tabelas de códigos de acordo com pelo menos um dentre a informação a cerca de um coeficiente decodificado que foi decodificado e um parâmetro relacionando-se com o processo de decodificação dos coeficientes; e uma unidade de detecção de valor para detectar o valor correspondendo a um código não-decodificado que ainda não foi decodificado, por utilizar a tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável possuindo uma eficiência de codificação mais elevada, o qual efetivamente deleta informação redundante nos dados de coeficiente pela alteração de uma tabela de códigos, para codificar os dados de coeficiente, pode ser realizado.
De acordo com a presente invenção, no aparelho de decodificação de comprimento variável mencionado acima, os coeficientes são obtidos por se quantizar os componentes de freqüência dos dados da imagem de acordo com uma etapa de quantização correspondendo aos dados da imagem e a unidade de seleção da tabela de códigos seleciona a tabela de códigos que é utilizada pela unidade de detecção de valor numérico, de acordo com um valor da etapa de quantização. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codifi- cação de comprimento variável que sempre emprega uma tabela de códigos que é adaptada para o valor da etapa de quantização e maximiza a eficiência da codificação, pode ser realizado.
De acordo com a presente invenção, no aparelho de decodifica-ção de comprimento variável mencionado acima, a unidade de seleção de tabela de códigos seleciona a tabela de códigos que é utilizada pela unidade de detecção de valor numérico, de acordo com a informação a cerca do coeficiente decodificado. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que codifica coeficientes quantizados sempre pela utilização de uma tabela de códigos que é adaptada para o número de coeficientes não-decodificados e maximiza a eficiência da codificação, pode ser realizado.
De acordo com a presente invenção, no aparelho de decodificação de comprimento variável mencionado acima, de acordo com o processo de decodificação para os códigos, o código é decodificado para reconstituir um valor de varredura que indica um número de coeficientes zero sucessivos cujos valores são zero e um valor de nível que indica um valor de um coeficiente não-zero seguindo os coeficientes zero, respectívamente, a unidade de seleção de tabela de códigos seleciona uma tabela de códigos dentre várias tabelas de códigos que indica as correspondências entre o valor de varredura e o código, de acordo com um número de valores de varredura decodificados e a unidade de detecção de valor detectar um valor de varredura correspondendo a um código decodificado, baseado na tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que executa a designação de códigos para valores de varredura sempre pela utilização de uma tabela de códigos que é adaptada a um número de valores de varredura ainda não-processados e maximiza a eficiência da codificação, pode ser realizado.
De acordo com a presente invenção, no aparelho de decodificação de comprimento variável mencionado acima, os coeficiente são obtidos por se quantizar os componentes de freqüência dos dados da imagem, de acordo com uma etapa de quantização correspondendo aos dados da imagem e a unidade de decodificação realiza o processo de decodificação para os códigos de modo que o valor correspondendo aos códigos seja obtido a partir do componente de alta freqüência até o componente de baixa freqüência. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável que pode adicionalmente reduzir o número total de bits correspondendo aos códigos designados para os coeficientes, pode ser realizado.
De acordo com a presente invenção, é proporcionado um meio de armazenamento que contém um programa para executar um processo de decodificação de comprimento variável para decodificar dados codificados que são compostos de vários códigos, obtidos pela execução da codificação de comprimento variável para os dados de coeficiente que são compostos de vários coeficientes, por um computador e este programa inclui uma etapa de decodificação para sujeitar os respectivos códigos a um processo de decodificação dos dados codificados para reconstituir os dados de coeficiente que são compostos de vários coeficientes, utilizando várias tabelas de códigos indicando as correspondências entre o valor do coeficiente e os códigos e adicionalmente esta etapa de decodificação inclui: uma etapa de seleção de tabela de códigos para selecionar a tabela de códigos de acordo com pelo menos um dentre a informação a cerca de um coeficiente decodificado que foi decodificado e um parâmetro relacionando-se com o processo de decodificação dos coeficientes; e uma etapa de detecção de valor para detectar o valor correspondendo ao código não-decodificado que ainda não foi decodificado, pela utilização da tabela de códigos selecionada. Portanto, um processo de decodificação de comprimento variável correspondendo a um processo de codificação de comprimento variável possuindo uma eficiência de codificação mais elevada, o qual pode efetivamente deletar informação redundante incluída nos dados de coeficiente por alterar uma tabela de códigos, para codificar os dados de coeficiente, pode ser implementado por software.
Breve Descrição dos Desenhos A figura 1 é um diagrama de blocos para explicar um aparelho de codificação de imagem 101 de acordo com uma primeira modalidade da presente invenção. A figura 2 é um diagrama de blocos ilustrando uma unidade de codificação de varredura de comprimento RLE1 que constitui o aparelho de codificação de imagem 101 de acordo com a primeira modalidade.
As figuras 3(a) até 3(d) são diagramas para explicar a digitalização em ziguezague pela unidade de codificação de varredura de comprimento RLE1 e as figuras 3(e) e 3(f) são diagramas para explicar a reorde-nação dos valores de varredura e dos valores de nível.
As figuras 4 são diagramas para explicar o processamento em um codificador de comprimento variável LVLC da unidade de codificação de varredura de comprimento RLE1: a figura 4(a) é um fluxograma apresentando um processo de codificação de comprimento variável para um valor de nível e a figura 4(b) é uma tabela de códigos que é utilizada no processo de codificação de comprimento variável para o valor de nível.
As figuras 5 são diagramas para explicar o processamento em um codificador de comprimento variável RVLC da unidade de codificação de varredura de comprimento RLE1: a figura 5(a) é um fluxograma apresentando um processo de codificação de comprimento variável para um valor de varredura e a figura 5(b) é uma tabela de códigos que é utilizada no processo de codificação de comprimento variável para o valor de varredura.
As figuras 6 são diagramas apresentando o número total de bits correspondendo aos códigos que são designados para os valores de ní-vel(um parâmetro de quantização é relativamente pequeno) pelo codificador de comprimento variável LevVLC em um caso onde uma tabela de códigos L2 é empregada (figura 6(a)) e em um caso onde uma tabela de códigos L1 é empregada (figura 6(b)), respectivamente.
As figuras 7 são diagramas apresentando o número total de bits correspondendo aos códigos que são designados para os valores de nível (um parâmetro de quantização é relativamente grande) pelo codificador de comprimento variável LevVLC em um caso onde a tabela de códigos L2 é empregada (figura 7(a)) e em um caso onde a tabela de códigos L1 é empregada (figura 7(b)), respectivamente.
As figuras 8 são diagramas apresentando o número total de bits correspondendo aos códigos que são designados para os valores de varredura pelo codificador de comprimento variável RVLC em um caso onde uma tabela de códigos específica é empregada (figura 8(a)), um caso onde a alteração de uma tabela de códigos e a reordenação dos valores de varredura são executadas (figura 8(b)) e um caso onde somente a alteração de uma tabela de códigos é executada (figura 8(c)), respectivamente. A figura 9 é um diagrama de blocos para explicar um aparelho de decodificação de imagem 102 de acordo com uma segunda modalidade da presente invenção. A figura 10 é um diagrama de blocos ilustrando uma unidade de decodificação de varredura de comprimento RLD1 que constitui o aparelho de decodificação de imagem 102 de acordo com a segunda modalidade.
As figuras 11 são diagramas para explicar um processo de de-codificação de comprimento variável por um decodificador de comprimento variável LVLD: a figura 11 (a) é um fluxograma apresentando um processo de decodificação de comprimento variável para reconstituir um valor de nível e a figura 11 (b) é uma tabela de códigos que é empregada no processo de decodificação de comprimento variável.
As figuras 12 são diagramas para explicar um processo de decodificação de comprimento variável por um decodificador de comprimento variável RVLD: a figura 12(a) é um fluxograma apresentando um processo de decodificação de comprimento variável para reconstituir um valor de varredura e a figura 12(b) é uma tabela de códigos que é empregada no processo de decodificação de comprimento variável. A figura 13 é um diagrama de blocos para explicar um aparelho de codificação de imagem 103 de acordo com uma terceira modalidade da presente invenção. A figura 14 é um diagrama de blocos ilustrando uma unidade de codificação de varredura de comprimento RLE2 que constitui o aparelho de codificação de imagem 103 de acordo com a terceira modalidade.
As figuras 15 são diagramas apresentando exemplos T2a (figura 15(a)) e T2b (figura 15(b)) de uma tabela de códigos (segunda tabela de códigos) que é formada pela unidade de codificação de varredura de comprimento RLE2 de acordo com a terceira modalidade.
As figuras 16 são diagramas apresentando outros exemplos T2c (figura 16(a)), T2d (figura 16(b)), T2e (figura 16(c)) da tabela de códigos (segunda tabela de códigos) que é formada pela unidade de codificação de varredura de comprimento RLE2 de acordo com a terceira modalidade. A figura 17 é um diagrama apresentando um exemplo de uma ordem na qual os componentes quantizados são codificados pela unidade de codificação de varredura de comprimento RLE2 de acordo com a terceira modalidade. A figura 18 é um diagrama de blocos para explicar um aparelho de decodificação de imagem 104 de acordo com uma quarta modalidade da presente invenção. A figura 19 é um diagrama de blocos ilustrando uma unidade de decodificação de varredura de comprimento RLD2 que constitui o aparelho de decodificação de imagem 104 de acordo com a quarta modalidade. A figura 20 é um diagrama de blocos para explicar um aparelho de codificação de imagem 105 de acordo com uma quinta modalidade da presente invenção. A figura 21 é um diagrama de blocos ilustrando uma unidade de codificação de varredura de comprimento RLE3 que constitui o aparelho de codificação de imagem 105 de acordo com a quinta modalidade. A figura 22 é um diagrama de blocos para explicar um aparelho de decodificação de imagem 106 de acordo com uma sexta modalidade da presente invenção. A figura 23 é um diagrama de blocos ilustrando uma unidade de decodificação de varredura de comprimento RLD3 que constitui o aparelho de decodificação de imagem 106 de acordo com a sexta modalidade.
As figuras 24 são diagramas apresentando exemplos Ta (figura 24(a)), Tb (figura 24(b)) e Tc (figura 24(c)) de uma tabela de códigos de comprimento variável que é empregada pela unidade de codificação de varredura de comprimento RLE3 de acordo com a quinta modalidade e pela unidade de decodificação de varredura de comprimento RLD3 de acordo com a sexta modalidade.
As figuras 25 são diagramas para explicar um meio de armazenamento de dados que contém um programa para implementar um processo de codificação de comprimento variável ou um processo de decodificação de comprimento variável de acordo com qualquer uma das modalidades acima por um sistema de computador (figura 25 (a) e 25(b)) e o sistema de computador (figura 25(c)). A figura 26 é um diagrama para explicar uma aplicação de um método de codificação de imagem e de um método de decodificação de imagem de acordo com qualquer uma das modalidades e esta figura apresenta um sistema de suprimento de conteúdo que implementa os serviços de distribuição de conteúdo. A figura 27 é um diagrama para explicar um telefone portátil que emprega um método de codificação de imagem e um método de decodifica-ção de imagem de acordo com qualquer uma das modalidades. A figura 28 é um diagrama de blocos ilustrando o telefone portátil como apresentado na figura 27. A figura 29 é um diagrama apresentando um sistema de difusão digital que emprega um aparelho de codificação de imagem ou um aparelho de decodificação de imagem de acordo com qualquer uma das modalidades. A figura 30 é um diagrama de blocos ilustrando um aparelho de codificação de imagem convencional 201a. A figura 31 é um diagrama de blocos para explicar uma unidade de codificação RLEO que constitui o aparelho de codificação de imagem convencional 201 a. A figura 32 é um diagrama de blocos para explicar um aparelho de decodificação de imagem convencional 202a correspondendo ao apare- Iho de codificação de imagem convencional 201a. A figura 33 é um diagrama de blocos para explicar uma unidade de decodificação RLDO que constitui o aparelho de decodificação de imagem convencional 202a. A figura 34 é um diagrama de blocos ilustrando um aparelho de codificação de imagem 201b que executa a codificação de varredura de comprimento convencional. A figura 35 é um diagrama de blocos para explicar uma unidade de codificação de varredura de comprimento RLEOb que constitui o aparelho de codificação de imagem convencional 201b. A figura 36 é um diagrama de blocos para explicar um aparelho de decodificação de imagem convencional 202b correspondendo ao aparelho de codificação de imagem convencional 201b. A figura 37 é um diagrama de blocos para explicar uma unidade de decodificação de varredura de comprimento RLDOb que constitui o aparelho de decodificação de imagem convencional 202b. A figura 38 é um diagrama de blocos para explicar outro aparelho de codificação de imagem 201c que executa a codificação de varredura de comprimento convencional. A figura 39 é um diagrama de blocos ilustrando uma unidade de codificação de varredura de comprimento RLEOc que constitui o aparelho de codificação de imagem convencional 201 c. A figura 40 é um diagrama de blocos para explicar um aparelho de decodificação de imagem convencional 202c correspondendo ao aparelho de codificação de imagem convencional 201c. A figura 41 é um diagrama de blocos para explicar uma unidade de decodificação de varredura de comprimento RLDOc que constitui o aparelho de decodificação de imagem convencional 202c. A figura 42 é um diagrama apresentando um exemplo de uma tabela de códigos que é empregada pela unidade de codificação de varredura de comprimento RLEOc que constitui o aparelho de codificação de imagem convencional 201c. A figura 43 é um diagrama apresentando um exemplo de uma ordem na qual os componentes quantizados são codificados pelas unidades de codificação de varredura de comprimento convencionais RLEOa, RLEOb ou RLEOc.
Melhor Modo para Realizar a Invenção Inicialmente, serão descritos os princípios fundamentais da presente invenção.
Geralmente, quando a etapa de quantização é grosseira, os componentes quantizados possuem valores absolutos menores. Então, a varredura (o comprimento de coeficientes zero sucessivamente continuando) fica mais longa e por conseqüência, o valor de nível (o valor de um coeficiente não-zero) possui um valor absoluto menor. Ao contrário, quando a etapa de quantização é rebuscada, os componentes de quantizados possuem valores absolutos maiores. Portanto, a varredura fica mais curta e por conseqüência o valor de nível possui um valor absoluto maior.
Adicionalmente, quando a codificação de comprimento variável de vários componentes quantizados já foi completada em um bloco objeto a ser processado e o número de componentes quantizados que não estão codificados é pequeno, um valor de varredura que excede ao número de componentes quantizados não-codificados nunca ocorre. Assim, quando pares destes valores de varredura e dos valores de nível são removidos, a eficiência da codificação é aumentada. A partir deste ponto de vista, a presente invenção altera uma tabela de códigos indicando as correspondências entre a informação do valor numérico que apresenta o tamanho de um coeficiente quantizado e um código, de acordo com um estado de um processo de codificação de comprimento variável ou de um processo de decodifícação de comprimento variável para os coeficientes quantizados e um parâmetro associado com a geração dos coeficientes quantizados (parâmetro de quantização), desse modo efetivamente removendo informação redundante incluída nos dados alvo (coeficiente quantizado) do processo de codificação de comprimento variável.
Por exemplo, a alteração da tabela de códigos é realizada pela seleção de uma tabela de códigos (primeira tabela de códigos) que é empregada no processo de codificação ou de decodificação de comprimento variável convencional, ou de uma segunda tabela de códigos que é formada baseada na primeira tabela de códigos e otimizada para os dados a serem processados, baseados em um estado do processamento dos coeficientes quantizados. É desnecessário formar a segunda tabela de códigos sempre baseada na primeira tabela de códigos, mas qualquer tabela de códigos que seja adaptada para processar os dados alvo pode ser selecionada como uma tabela de códigos.
Daqui para frente, as modalidades da presente invenção serão descritas com referencia às figuras 1 até 25.
Modalidade 1 A figura 1 é um diagrama de blocos para explicar um aparelho de codificação de imagem de acordo com uma primeira modalidade da presente invenção.
Este aparelho de codificação de imagem 101 de acordo com a primeira modalidade possui, em vez da unidade de codificação de varredura de comprimento RLEOb no aparelho de codificação de imagem convencional 201b apresentando na figura 34 que sujeita uma saída (componentes quantizados) QS a partir da unidade de quantização Q a um processo de codificação de comprimento variável e emite um fluxo codificado StrOb, uma unidade de codificação RLE1 para sujeitar a saída QS a partir da unidade de quantização Q a um processo de codificação de comprimento variável baseado em um parâmetro de quantização QP e em um sinal de seleção VLC VlcSel e emite um fluxo codificado Str1.
Aqui, o parâmetro de quantização QP é um parâmetro que indica um valor de uma etapa de quantização e a etapa de quantização é aproximadamente proporcional ao parâmetro de quantização QP. Para ser mais específico, quando o parâmetro de quantização é maior, os componentes quantizados possuem menores valores absolutos, então a varredura zero dos componentes quantizados (o comprimento de componentes sucessiva- mente contínuos cujos valores são zero) fica mais longa e um valor de nível possui um valor absoluto menor. A figura 2 é um diagrama de blocos para explicar uma construção específica da unidade de codificação de varredura de comprimento RLE1.
Esta unidade de codificação de varredura de comprimento RLE1 possui, como a unidade de codificação de varredura de comprimento convencional RLEOb apresentada na figura 35, um digitalizador em ziguezague Scan para transformar uma saída a partir da unidade de quantização Q (componentes quantizados) QS em uma série bidimensional, em coeficientes quantizados Coef em uma série unidimensional (isto é, uma ordem predeterminada); um calculador de varredura RunCal para calcular o número de componentes quantizados sucessivos cujos valores são zero (coeficientes zero) Coef e emitir um valor de varredura Run que indica o número de coeficientes zero sucessivos; e um calculador de nível LevCal par calcular um valor de um componente quantizado cujo valor não é zero (coeficiente não-zero) Coef, seguindo os coeficientes zero e emitir um valor de nível Lev que indica o valor do coeficiente não-zero. A figura 3(a) apresenta uma série bidimensional de componentes quantizados Q1 até Q16 correspondendo a um bloco e a figura 3 (b) apresenta um curso de digitalização dos componentes quantizados Q1 até Q16 no digitalizador em ziguezague Scan pelas setas A1 até A15. Aqui, um componente quantizado Q1 é obtido pela quantização de componentes DC de componentes de freqüência correspondendo a um sinal de imagem e os componentes quantizados Q2 até Q16 são obtidos por se quantizar os componentes AC dos componentes de freqüência correspondendo ao sinal de imagem. A figura 3(c) apresenta uma série unidimensional (ordem de codificação) dos componentes quantizados Q1 até Q16, a qual é obtida pela digitalização em ziguezague no digitalizador em ziguezague Scan e a figura 3(d) apresenta uma série unidimensional de valores numéricos concretos os quais indicam os valores dos componentes quantizados Q1 até Q16. A unidade de codificação de varredura de comprimento RLE1 adicionalmente inclui uma unidade de reordenação Lreodr para reordenar os valores de nível Lev que são saídas do calculador de nível LevCal; uma unidade de reordenação Rreodr para reordenar os valores de varredura Run que são saídas do calculador de varredura RunCal; e um calculador de número NumClc para calcular o número Cnum dos coeficientes não-codificados em um bloco alvo baseado nas saídas do calculador de varredura RunCal e emitindo o número calculado. A figura 3(e) apresenta ordens dos valores de varredura e dos valores de nível que são obtidos a partir dos valores números dos componentes quantizados possuindo as disposições como apresentadas nas figuras 3(c) e 3(d). A figura 3(f) apresenta ordens dos valores de varredura e dos valores de nível após a reordenação. A unidade de codificação de varredura de comprimento RLE1 adicionalmente inclui um codificador de comprimento variável LVLC para sujeitar uma saída ROLev a partir da unidade de reordenação Lreodr a um processo de codificação de comprimento variável baseado no parâmetro de quantização QP e em um sinal de seleção V1Sel e emitir uma cadeia de có-digos(cadeia de códigos de valor de nível) LStr; um codificador de comprimento variável RVLC para sujeitar uma saída RORun a partir da unidade de reordenação Rreodr a um processo de codificação de comprimento variável baseado no número Cnum dos coeficientes não-codifiçados e emitir um cadeia de códigos (cadeia de códigos de valor de varredura) RStr; e um multi-plexador MUX para multiplexar a cadeia de códigos LStr e a cadeia de códigos RStr para cada bloco e emitir um fluxo codificado multiplexado Str1.
As figuras 4 são diagramas para explicar o processo de codificação de comprimento variável pelo codificador de comprimento variável LVLC. A figura 4(a) é um fluxograma explicando o processo de codificação de comprimento variável para um valor de nível e a figura 4(b) é um diagrama explicativo apresentando tabelas de códigos que são empregadas no processo de codificação de comprimento variável para o valor de nível. A figura 4(b) apresenta uma disposição Alev de valores de nível (Nível), uma disposição Ca1 de códigos (palavras código) em um caso onde o parâmetro de quantização QP é menor do que um limite e uma disposição Ca2 de códigos (palavras código) em um caso onde o parâmetro de quanti-zação QP é igual ou maior do que o limite.
Aqui, uma tabela de códigos L1 é constituída pela disposição Alev dos valores de nível (Nível) e pela disposição Ca1 dos códigos (palavras código) no caso onde o parâmetro de quantização QP é menor do que o limite. Esta tabela de códigos L1 apresenta a correspondência entre o valor de nível (Nível) e o código no caso onde o parâmetro de quantização QP é menor do que o limite. Uma tabela de códigos L2 é constituída pela disposição Alev dos valores de nível (Nível) e pela disposição Ca2 dos códigos (palavras código) no caso onde o parâmetro de quantização QP é igual ou maior do que o limite. Esta tabela de códigos L2 apresenta a correspondência entre o valor de nível (Nível) e o código no caso onde o parâmetro de quantização QP é igual ou maior do que o limite.
As figuras 5 são diagramas para explicar o processo de codificação de comprimento variável pelo codificador de comprimento variável RVLC. A figura 5(a) é um fluxograma para explicar um processo de codificação de comprimento variável para um valor de varredura e a figura 5(b) é um diagrama explicativo apresentando tabelas de códigos que são empregadas no processo de codificação de comprimento variável para o valor de varredura. A figura 5(b) apresenta uma disposição Arun dos valores de varredura (Run), uma disposição Cb1 de códigos (palavras código) em um caso onde o número de coeficientes zero não-codifiçados é um, uma disposição Cb2 de códigos (palavras código) em um caso onde o número de coeficientes zero não-codificados é dois, uma disposição Cb3 de códigos (palavras código) em um caso onde o número de coeficientes zero não-codificados é três, uma disposição Cb4 de códigos (palavras código) em um caso onde o número de coeficientes zero não-codificados é quatro, uma disposição Cb5 de códigos (palavras código) em um caso onde o número de coeficientes zero não-codificados é cinco, uma disposição Cb6 de códigos (palavras código) em um caso onde o número de coeficientes zero não-codificados é seis, uma disposição Cb7 de códigos (palavras código) em um caso onde o número de coeficientes zero não-codificados é sete e uma disposição Cb8 de códigos (palavras código) em um caso onde o número de coeficientes zero não-codificados é oito ou mais.
Aqui, uma tabela de códigos R1 é constituída pela disposição Arun dos valores de varredura (Run) e pela disposição Cb1 de códigos (palavras código)no caso onde o número de coeficientes zero não-codificados é um e esta tabela de código R1 apresenta as correspondências entre o valor de varredura (Run) e o código no caso onde o número de coeficientes zero não-codificados é um. De forma similar, as tabelas R2, R3, R4, R5, R6 e R7 são constituídas pela disposição Arun dos valores de varredura (Run) e pelas disposições Cb2, Cb3, Cb4, Cb5, Cb6 e Cb7 de códigos (palavras código) nos casos onde os números de coeficientes zero não-codificados são dois, três, quatro, cinco, seis e sete, respectivamente e apresentam a correspondência entre o valor de varredura (Run) e o código nos casos onde os números de coeficientes zero não-codificados são dois, três, quatro, cinco, seis e sete, respectivamente. Adicionalmente, uma tabela de código R8 é constituída pela disposição Arun dos valores de varredura (Run) e pela disposição Cb8 de códigos (palavras código) no caso onde o número de coeficientes zero não-codificados é oito ou mais e apresenta a correspondência entre o valor de varredura (Run) e o código no caso onde o número de coeficientes zero não-codificados é oito ou mais. A seguir, sua operação será descrita.
No aparelho de codificação de imagem 101 de acordo com a primeira modalidade, a unidade de colocação em blocos Blk, a unidade de transformação de freqüência Trans e a unidade de quantização Q operam das mesmas maneiras que aquelas no aparelho de codificação de imagem convencional 201a (veja a figura 30) ou no aparelho de codificação de imagem 201b (veja figura 34).
Mais especificamente, quando um sinal de imagem Vin é informado para o aparelho de codificação de imagem 101, a unidade de colocação em blocos Blk divide o sinal de imagem informado Vin em unidades de bloco, para gerar sinais de imagem (componentes de valor de pixel) BlkS correspondendo aos respectivos blocos. A unidade de transformação de freqüência Trans transforma os componentes de valor de pixel BlkS em componentes de freqüência TransS de acordo com a DCT (Transformação de Coseno Separada) ou com transformação Wavelet. A unidade de quanti-zação Q quantiza os componentes de freqüência TransS em uma etapa de quantização predeterminada baseada em um parâmetro de quantização QP para emitir os componentes quantizados QS, bem como emite o parâmetro de quantização QP. A unidade de codificação de varredura de comprimento RLE1 sujeita os componentes quantizados QS a um processo de codificação de comprimento variável e emite um fluxo codificado Str1.
Daqui para frente, será especificamente descrita a operação da unidade de codificação de varredura de comprimento RLE1. O digitalizador em ziguezague Scan realiza a digitalização em ziguezague dos componentes QS que são emitidos a partir da unidade de quantização Q (isto é, vários coeficientes quantizados Q1 até Q16 em uma série bidimensional como apresentado na figura 3(a)), para transformar os componentes quantizados QS em coeficientes quantizados Coef. Aqui, a digitalização em ziguezague dos componentes QS é realizada pela digitalização de vários componentes quantizados Q1 até Q16 em uma série bidimensional como apresentado na figura 3(a) ao longo de um curso indicado pelas setas A1 até A15 na figura 3(b), para transformar a série de vários coeficientes quantizados Q1 até Q16 em, uma série unidimensional (ordem de processamento) como apresentado na figura 3(c). Aqui, a figura 3(d) apresenta uma disposição de valores numéricos concretos dos vários coeficientes quantizados Q1 até Q16 que foram sujeitos à digitalização em ziguezague (20, -10, 5, 0, 2, 0, 0, 0, 1, 0, 0, 0, -1,0, 0, 1). O calculador de varredura RunCal calcula o número de coeficientes zero sucessivos baseado nos componentes quantizados Coef que são emitidos a partir do digitalizador em ziguezague Scan e emite um valor de varredura Run indicando o número calculado. A figura 3(e) apresenta valores de varredura específicos que são sucessivamente emitidos a partir do calculador de varredura RunCal, de acordo com uma ordem na qual os valo- res de varredura são emitidos: (0, 0, 0, 1, 3, 3, 2). Por outro lado, o calcula-dor de nível LevCal calcula um valor de um coeficiente não-zero seguindo aos coeficientes zero sucessivos baseado nos componentes quantizados Coef emitidos a partir do digitalizador em ziguezague Scan e emite um valor de nível Lev indicando o valor calculado. A figura 3(e) apresenta valores de nível específicos que são sucessivamente emitidos a partir do calculador de nível LevCal, de acordo com uma ordem na qual os valores de nível são emitidos: (20, -10, 5, 2, 1,-1, 1). A unidade de reordenação Rreodr reordena os valores de varredura que foram sucessivamente emitidos a partir do calculador de varredura RunCal em uma ordem inversa aos valores de varredura, foram emitidos. A figura 3(f) apresenta uma ordem alterada dos valores de varredura específicos que foram reordenados pela unidade de reordenação Rreodr: (2, 3, 3, 1, 0, 0, 0). O calculador de número NumClc calcula o número de coeficientes não-codificados baseado nos valores de varredura Run que são emitidos a partir do calculador de varredura RunCal e emite o número calculado de coeficientes não-codificados (daqui para frente, também referido como número de coeficientes não-codificados) Cnum. Por outro lado, a unidade de reordenação Lreodr reordena os valores de nível que foram sucessivamente emitidos a partir do calculador de nível LevCal em uma ordem inversa aos valores de nível, foram emitidos. A figura 3(f) apresenta uma ordem alterada dos valores de nível específicos que foram reordenados pela unidade de reordenação Lreodr: (1,-1, 1,2, 5, -10, 20). O codificador de comprimento variável RVLC sujeita os valores de varredura RORun que foram reordenados como a saída da unidade de reordenação Rreodr, a um processo de codificação de comprimento variável para designar códigos (palavras código) para os valores de varredura RORun com a utilização de várias tabelas de códigos indicando as correspondências entre os valor de varredura e o código (palavra código), baseado no número de coeficientes zero Cnum emitido a partir do calculador de número NumClc e emite uma cadeia de códigos de valor de varredura RStr. Por outro lado, o codificador de comprimento variável LVLC sujeita os valores de nível ROLev que foram reordenados como a saída da unidade de reordena-ção Lreodr a um processo de codificação de comprimento variável para designar códigos (palavras código) para os valores de nível ROL, pela utilização de várias tabelas de códigos indicando as correspondências entre o valor de nível e o código (palavra código) baseado no parâmetro de quanti-zação QP a partir da unidade de quantização Q e em um sinal de seleção VlcSel a partir da seleção de instrução do lado externo da codificação de comprimento variável e emite uma cadeia de códigos de valor de nível LStr.
Então, o multiplexador MUX multiplexa a cadeia de códigos de valor de nível Lstr e a cadeia de códigos de valor de varredura Rstr, bloco por bloco e emite uma cadeia codificada multiplexada Str1.
Aqui, o processo para multiplexar a cadeia de códigos de valor de nível LStr e a cadeia de códigos de valor de varredura RStr é realizado bloco por bloco, por exemplo, de uma maneira tal que a cadeia de códigos RStr correspondendo a todos os valores de varredura de um bloco alvo seja seguida pela cadeia de códigos LStr correspondendo a todos os valores de nível do bloco alvo, ou a cadeia de códigos LStr correspondendo a todos os valores de nível do bloco alvo é seguida pela cadeia de códigos RStr correspondendo a todos os valores de varredura do bloco alvo.
Daqui para frente, a operação do codificador de comprimento variável LVLC será especificamente descrita com referência à figura 4. O codificador de comprimento variável LVLC obtém o parâmetro de quantização QP a partir da unidade de quantização Q (etapa Sa1) e determina se o valor do parâmetro de quantização obtido QP é igual ou maior do que um limite do parâmetro de quantização QP, o qual é mantido no codificador de comprimento variável LVLC (etapa Sa2).
Quando um resultado desta determinação indica que o valor do parâmetro de quantização obtido QP é menor do que o limite do parâmetro de quantização QP, o codificador de comprimento variável LVLC seleciona a tabela de códigos L1 que é constituída pela disposição Alev de valores de nível e pela disposição Ca1 de códigos (palavras código) (veja a figura 4(b)) (etapa Sa3), enquanto quando o valor do parâmetro de quantização obtido QP é igual ou maior do que o limite do parâmetro de quantização QP, seleciona a tabela de códigos L2 que é constituída pela disposição Alev de valores de nível e pela disposição Ca2 de códigos (palavras código) (veja a figura 4(b)) (etapa Sa4).
Então, o codificador de comprimento variável LVLC determina se existe qualquer valor de nível não-codifiçado Lev em um bloco alvo (etapa Sa5). Quando um valor de nível não-codificado Lev está incluído no bloco alvo, o codificador de comprimento variável LVLC realiza um processo para codificar o valor de nível utilizando a tabela de códigos selecionada, isto é, um processo para designar um código correspondente para o valor de nível (etapa Sa6) e depois disso realiza o processo da etapa Sa5. Por outro lado, quando o resultado da decisão na etapa Sa5 indica que não existe valor de nível não-codificado Lev no bloco alvo, o codificador de comprimento variável LVLC termina o processo de codificação de comprimento variável para os valores de nível Lev.
Aqui, quando o sinal de seleção VLC VlcSel designa anteriormente um processo de codificação de comprimento variável utilizando uma tabela de códigos específica, o codificador de comprimento variável LVLC realiza um processo de codificação de comprimento variável para os valores de nível pela utilização da tabela de códigos específica, independente do valor do parâmetro de quantização QP. A seguir, a operação do codificador de comprimento variável RVLC será especificamente descrita com referência às figuras 5. O codificador de comprimento variável RVLC determina se existe qualquer coeficiente não-zero não-codificado no bloco alvo baseado na saída (o número de coeficientes não-codificados) Cnum a partir do cal-culador de número NumClc (etapa Sb1). Quando um resultado da determinação indica que existe um coeficiente não-zero não-codificado, o codificador de comprimento variável RVLC calcula o número de coeficientes zero não-codificados no bloco alvo baseado na saída Cnum a partir do calculador de número NumClc (etapa Sb2).
Então, o codificador de comprimento variável RVLC seleciona uma tabela de códigos de acordo com o número calculado de coeficientes zero não-codificados (etapa Sb3). Para ser mais específico, o codificador de comprimento variável RVLC seleciona a tabela de códigos R1 que é constituída pela disposição Arun dos valores de varredura e pela disposição Cb1 de códigos (palavras código) (veja a figura 5(b)) quando o número de coeficientes zero não-codificados é um. De forma similar, o codificador de comprimento variável RVLC seleciona a tabela de códigos R2 quando o número de coeficientes zero não-codificados é dois, a tabela de códigos R3 quando o número de coeficientes é três e a tabela de códigos R4 quando o número de coeficientes é quatro. Adicionalmente, o codificador de comprimento variável RVLC seleciona a tabela de códigos R5 quando o número de coeficientes zero não-codificados é cinco, a tabela de códigos R6 quando o número de coeficientes é seis e a tabela de código R7 quando o número de coeficientes é sete, respectivamente. Adicionalmente, quando o número de coeficientes zero não-codificados é oito ou mais, o codificador de comprimento variável RVLC seleciona a tabela de códigos R8. A seguir, o codificador de comprimento variável RVLC realiza um processo para codificar os valores de varredura Run utilizando a tabela de códigos selecionada, isto é, um processo para designar os códigos correspondentes para os valores de varredura (etapa Sb4) e então realiza o processo de determinação da etapa Sb1.
Aqui, quando o resultado da determinação na etapa Sb1 indica que não existe coeficiente não-zero não-codificado, o codificador de comprimento variável RVLC termina o processo de codificação de comprimento variável para os valores de varredura. A seguir, será descrito um exemplo específico no qual uma tabela de códigos é selecionada baseada no parâmetro de quantização na codificação de comprimento variável dos valores de nível como descrito àcima, desse modo para aumentar a eficiência da codificação.
As figuras 6 apresentam o número total de bits correspondendo aos códigos que são designados para o valores de nível quando o parâmetro de quantização QP é relativamente menor, isto é, quando as saídas (va- lores de nível) a partir do calculador de nível LevCal foram reordenadas e são emitidas a partir da unidade de reordenação Lreodr são 1, -1, 1, 2, 5, -10, 20 como apresentado na figura 3(f).
Quando o parâmetro de quantização QP é determinado como sendo igual ou maior do que um limite e a tabela de códigos L2 é empregada, os códigos (palavras código) são designados para os respectivos valores de nível como apresentado na figura 6(a) e o número total de bits correspondendo aos códigos designados é 75 bits.
Por outro lado, quando o parâmetro de quantização QP é determinado como sendo menor do que o limite e a tabela de códigos L1 é empregada, os códigos (palavras código) são designados para os respectivos valores de nível como apresentado na figura 6(b) e o número total de bits correspondendo aos códigos designados é 47 bits.
Quando o parâmetro de quantização QP é relativamente menor, a freqüência de ocorrência de componentes quantizados possuindo valores maiores é mais elevada. Assim, é eficaz selecionar a tabela de códigos L1 na qual códigos mais curtos são feitos corresponder em média também aos valores de nível cujos valores absolutos são relativamente maiores se comparados com a tabela de códigos L2 para aumentar a eficiência da codificação.
As figuras 7 apresentam o número total de bits correspondendo aos códigos que são designados para os valores de nível quando o parâmetro de quantização QP é relativamente maior, isto é, quando as saídas (valores de nível) a partir do calculador de nível LevCal que foram reordenadas e são emitidas a partir da unidade de reordenação Lreodr são 1,-1, 1, 1, 1, -2, 3, diferente do caso apresentado na figura 3(f).
Quando é determinado que o parâmetro de quantização QP é igual ou maior do que o limite e a tabela de códigos L2 é empregada, os códigos (palavras código) são designados para os respectivos valores de nível como apresentado na figura 7(a) e o número total de bits correspondendo aos códigos designados é 15 bits.
Por outro lado, quando é determinado que o parâmetro de quantização QP é menor do que o limite e a tabela de códigos L1 é empregada, os códigos (palavras código) são designados para os respectivos valores de nível como apresentado na figura 7(b) e o número total de bits correspondendo aos códigos designados é 17 bits.
Como descrito acima, quando o valor do parâmetro de quantização QP é relativamente maior, a freqüência de ocorrência de coeficientes de quantização possuindo valores maiores é menor. Assim, é eficaz selecionar a tabela de códigos L2 na qual códigos mais curtos são feitos intensivamente corresponder aos valores de nível cujos valores absolutos são relativamente menores se comparados com a tabela de códigos L1, para aumentar a eficiência da codificação.
As figuras 8 apresentam o número total de bits correspondendo aos códigos que são designados para valores de varredura emitidos a partir do calculador de varredura RunCal quando os valores de varredura são 0, 0, 0, 1,3, 3, 2 como apresentado na figura 3(e).
Quando a reordenação dos valores de varredura como na unidade de codificação de varredura de comprimento RLE1 e a alteração da tabela de códigos não são executadas mas a tabela de códigos R8 apresentada na figura 5(b) é sempre empregada, os códigos (palavras código) são designados para os respectivos valores de varredura como apresentado na figura 8(a) e o número total de bits correspondendo ao código designado é 21 bits.
Quando a reordenação dos valores de varredura e a alteração da tabela de códigos de acordo com o número de coeficientes zero não-codificados são executadas como na unidade de codificação de varredura de comprimento RLE1, os códigos (palavras código) são designados para os respectivos valores de varredura como apresentado na figura 8(b) e o número total de bits correspondendo aos códigos designados é 13 bits. Aqui, cada vez que um código é designado para um valor de varredura, o número de coeficientes não-codificados é reduzido por um valor que é obtido pela adição de um para um valor de varredura que foi codificado imediatamente antes. Isto é porque um único ou coeficientes zero sucessivos são sempre seguidos por um coeficiente não-zero. Em adição, o número de coeficientes zero não-codificados obtidos pelos vários valores de varredura reordenados correspondendo a um bloco, os quais são emitidos a partir da unidade de reordenação Rreodr, é 15. Isto é porque um bloco a ser processado sempre possui pelo menos um coeficiente não-zero.
Quando a reordenação dos valores de varredura como na unidade de codificação de varredura de comprimento RLE1 não é executada mas somente a alteração da tabela de códigos de acordo com o número de coeficientes zero não-codificados é executada, os códigos (palavras código) são designados para os respectivos valores de varredura como apresentado na figura 8(c) e o número total de bits correspondendo aos códigos designados é 20 bits.
Como descrito acima, o aparelho de codificação de imagem 101 de acordo com a primeira modalidade inclui a unidade de codificação de varredura de comprimento RLE1 que codifica os coeficientes quantizados que são obtidos por quantizar os componentes de freqüência de um sinal de imagem, utilizando um valor de varredura Run indicando o número de componentes quantizados sucessivos cujos valores são zero (coeficientes zero) Coef e um valor de nível Lev indicando um valor de um componente quanti-zado Coef cujo valor não é zero (coeficiente não-zero), seguindo os coeficientes zero. Portanto, os coeficientes quantizados podem ser codificados em uma eficiência de codificação mais elevada, com sua informação redundante sendo removida.
Adicionalmente, a unidade de codificação de varredura de comprimento RLE1 de acordo com a primeira modalidade inclui o codificador de comprimento variável LVLC que seleciona uma tabela de códigos de acordo com o valor do parâmetro de quantização QP e realiza uma codificação de comprimento variável dos valores de nível por utilizar a tabela de códigos selecionada, desse modo reduzindo o número total de bits correspondendo aos códigos que são designados para os valores de nível. A unidade de codificação de varredura de comprimento RLE1 adicionalmente inclui a unidade de reordenação Rreodr que reordena vários valores de varredura que são obtidos a partir dos coeficientes quantizados para os quais uma ordem de processamento predeterminada foi dada, a partir do componente de alta freqüência até o componente de baixa freqüência; e o codificador de comprimento variável RVLC que seleciona um tabela de códigos de acordo com o número de coeficientes zero não-codificados no bloco alvo e realiza a codificação de comprimento variável dos valores de varredura reordenados utilizando a tabela de códigos selecionada. Portanto, o número total de bits correspondendo aos códigos que são designados para os valores de varredura é efetivamente reduzido, desse modo aumentando a eficiência da codificação.
Nesta primeira modalidade, o codificador de comprimento variável RVLC seleciona uma tabela de códigos de acordo com o número de coeficientes zero não-codificados no bloco alvo (isto é, a saída Cnum a partir do calculador de número NunClc). Entretanto, o codificador de comprimento variável RVLC pode selecionar uma tabela de códigos baseada não somente na saída Cnum a partir do calculador de número NumClc mas também no sinal de seleção VLC VlcSel. Por exemplo, quando um processo de codificação de comprimento variável utilizando uma tabela de códigos específica é anteriormente indicado pelo sinal de seleção VLC VlcSel, o codificador de comprimento variável RVLC realiza um processo de codificação de comprimento variável para os valores de varredura por utilizar a tabela de códigos específica, independente do número de coeficientes zero não-codificados no bloco alvo.
Modalidade 2 A figura 9 é um diagrama de blocos para explicar um aparelho de decodificação de imagem de acordo com uma segunda modalidade da presente invenção.
Este aparelho de decodificação de imagem 102 de acordo com a segunda modalidade decodifica, por exemplo, o fluxo codificado Str1 que é emitido a partir do aparelho de codificação de imagem 101 da primeira modalidade. O aparelho de decodificação de imagem 102 possui, em vez da unidade de decodificação de varredura de comprimento RLDOb no aparelho de decodificação de imagem convencional 202b apresentado na figura 36 que sujeita o fluxo codificado informado StrOb a um processo de decodificação de comprimento variável, uma unidade de decodificação de comprimento variável RLD1 que sujeita o fluxo codificado informado Str1 a um processo de decodificação de comprimento variável baseado no parâmetro de quantização QP e em um sinal de seleção VLD VldSel, para reconstituir os coeficientes quantizados. A construção exceto para a unidade de decodificação de varredura de comprimento RLD1 é a mesma que esta do aparelho de decodificação de imagem 202b como apresentado na figura 36. A figura 10 é um diagrama de blocos para explicar uma construção específica da unidade de decodificação de varredura de comprimento RLD1. A unidade de decodificação de varredura de comprimento RLD1 possui um demultiplexador DMUX para demultiplexar o fluxo codificado mul-tiplexado Str1 que é emitido a partir do aparelho de codificação de imagem 101 para obter uma cadeia de códigos LStr correspondendo aos valores de nível e uma cadeia de códigos RStr correspondendo aos valores de varredura, como a unidade de decodificação de varredura de comprimento convencional RLDOb como apresentado na figura 37. A unidade de decodificação de varredura de comprimento RLD1 possui um decodificador de comprimento variável LVLD para sujeitar uma cadeia de códigos de valores de nível LStr que é obtida por demultiplexar o fluxo codificado multiplexado Str1 a um processo de decodificação de comprimento variável baseado no parâmetro de quantização QP e no sinal de seleção VLD VldSel, para reconstituir os valores de nível ROLev; e um decodificador de comprimento variável RVLD para sujeitar uma cadeia de códigos de valor de varredura RStr que é obtida por demultiplexar o fluxo codificado multiplexado Str1 a um processo de decodificação de comprimento variável baseado no número de coeficientes não-codificados para reconstituir os valores de varredura RORun. A unidade de decodificação de varredura de comprimento RLD1 adicionalmente inclui uma unidade de reordenação inversa Llreodr para re-ordenar os valores de nível ROLev emitidos a partir do decodificador de comprimento variável LVLD em uma ordem inversa a esta da unidade de reordenação Lreodr no fim da codificação para reconstituir as saídas Lev a partir do calculador de nível no final da codificação; uma unidade de reordenação inversa Rlreodr que reordena os valores de varredura RORun emitidos a partir do decodificador de comprimento variável RVLD em uma ordem inversa a esta da unidade de reordenação Rreord no final da codificação para reconstituir as saídas Run a partir do calculador de varredura no final da codificação; e um calculador de número NumClc que calcula o número Cnum de coeficientes não-codificados em um bloco alvo baseado nas saídas Run da unidade de reordenação inversa Rlreodr e emitir o número obtido. A unidade de decodificação de varredura de comprimento RLD1 adicionalmente inclui um digitalizador em ziguezague inverso IScan que reconstitui os componentes quantizados decodificados DQS em uma série bidimensional a partir dos componentes quantizados decodificados em uma série unidimensional, os quais são representados pelos valores de nível Lev e pelos valores de varredura Run.
As figuras 11 são diagramas para explicar um processo de decodificação de comprimento variável pelo decodificador de comprimento variável LVLD. A figura 11 (a) é um fluxograma para explicar o processo de decodificação de comprimento variável para reconstituir os valores de nível e a figura 11 (b) é um diagrama explicativo apresentando uma tabela de códigos que é empregada no processo de decodificação de comprimento variável. Aqui, as tabelas de código L1 e L2 que são empregadas no processo de decodificação de comprimento variável para os valores de nível são as mesmas que as tabelas de códigos L1 e L2 que são empregadas no processo de codificação para os valores de nível na unidade de codificação de varredura de comprimento RLE1 de acordo com a primeira modalidade.
As figuras 12 são diagramas para explicar um processo de decodificação de comprimento variável pelo decodificador de comprimento va- riável RVLD. A figura 12(a) é um fluxograma para explicar um processo de decodificação de comprimento variável para reconstituir valores de varredura. A figura 12(b) é um diagrama explicativo apresentando tabelas de códigos que são empregadas no processo de decodificação de comprimento variável. Aqui, as tabelas de códigos R1 até R8 que são empregadas no processo de decodificação de comprimento variável para os valores de varredura são as mesmas que as tabelas de códigos R1 até R8, respectivamente, que são empregadas no processo de codificação para os valores de varredura na unidade de codificação de varredura de comprimento RLE1 de acordo com a primeira modalidade. A seguir, sua operação será descrita.
Quando um fluxo codificado multiplexado Str1 é por exemplo informado para o aparelho de decodificação de imagem 102 a partir do aparelho de codificação de imagem 101 de acordo com a primeira modalidade, a unidade de decodificação de varredura de comprimento RLD1 sujeita o fluxo codificado Str1 a um processo de decodificação e emite os componentes quantizados decodificados DQS. A operação da unidade de decodificação de varredura de comprimento RLD1 é um inverso desta da unidade de codificação de varredura de comprimento RLE1.
Para ser mais específico, na unidade de decodificação de varredura de comprimento RLD1, o demultiplexador DMUX demultiplexa o fluxo codificado multiplexado informado Str1 para obter uma cadeia de códigos de valor de nível LStr correspondendo aos valores de nível e uma cadeia de códigos de valor de varredura RStr correspondendo aos valores de varredura e emite a cadeia de códigos de valor de nível e a cadeia de códigos de valor de varredura para o decodificador de comprimento variável LVLD e para o decodificador de comprimento variável RVLD, respectivamente. O decodificador de comprimento variável LVLD obtém os valores de nível ROLev correspondendo aos respectivos códigos (palavras código) para a cadeia de códigos de valor de nível LStr obtida a partir do demultiplexador DMUX, por utilizar várias tabelas de códigos que indicam as correspondências entre o valor de nível e o código (palavra código), basea- do no parâmetro de quantização QP a partir da unidade de quantização Q e em um sinal de seleção VLD VldSel a partir da seleção de instrução do lado externo da decodificação de comprimento variável e emite os valores de nível obtidos para a unidade de reordenação inversa Llreodr. Por outro lado, o decodificador de comprimento variável RVLD obtém os valores de varredura ROLev correspondendo aos respectivos códigos (palavras código) para a cadeia de códigos de valor de varredura RStr obtida a partir do de-multiplexador DMUX, por utilizar várias tabelas de códigos que indicam as correspondências entre o valor de varredura e o código (palavras código), baseado no número Cnum de coeficientes não-codificados emitido a partir do calculador de número NumClc e emite os valores de varredura obtidos para a unidade de reordenação inversa Rlreodr. A unidade de reordenação inversa Llreodr sujeita os valores de nível ROLev emitidos a partir do decodificador de comprimento variável LVLD a um processo de disposição inversa para o processo pela unidade de reordenação Lreord no fim da codificação, para reconstituir as saídas Lev a partir do calculador de nível no final da codificação. Por outro lado, a unidade de reordenação inversa Rlreodr sujeita os valores de varredura RORun emitidos a partir do decodificador de comprimento variável RVLD a um processo de disposição que é um inverso do processo da unidade de reordenação Rreodr no fim da codificação, para reconstituir as saídas Run a partir do calculador de varredura no fim da codificação. Adicionalmente, o calculador de número NumClc calcula o número Cnum de coeficientes não-decodificados em um bloco alvo baseado nas saídas Run da unidade de reordenação inversa Rlreodr e emite o número Cnum obtido para o decodificador de comprimento variável RVLD.
Então, o digitalizador em ziguezague inverso IScan realiza uma operação que é um inverso desta do digitalizado em ziguezague Scan para reconstituir os componentes quantizados decodificados DQS em uma série bidimensional a partir dos componentes quantizados em uma série unidi-mensional, os quais são representados pelos valores de nível Lev e pelos valores de varredura Run e emite os componentes quantizados obtidos DQS para a unidade de quantização inversa IQ.
Daqui para frente, a operação do decodificador de comprimento variável LVLD será especificamente descrita com referência às figuras 11. O decodificador de comprimento variável LVLD obtém o parâmetro de quantização QP a partir da unidade de quantização Q do aparelho de codificação de imagem 101 (etapa Sc1) e determina se o parâmetro de quantização obtido QP é igual ou maior do que um limite do parâmetro de quantização QP, o qual é mantido no decodificador de comprimento variável LVLD (etapa Sc2).
Quando um resultado da determinação indica que o parâmetro de quantização obtido QP é menor do que o limite do parâmetro de quantização QP, o decodificador de comprimento variável LVLD seleciona a tabela de códigos L1 (veja a fig. 11 (b)) que é constituída pela disposição Alev de valores de nível e pela disposição Ca1 de códigos (palavras código) (etapa Sc3), e quando o parâmetro de quantização obtido QP é igual ou maior do que o limite do parâmetro de quantização QP, seleciona a tabela de códigos L2 (veja figura 11 (b)) que é constituída pela disposição Alev de valores de nível e pela disposição Ca2 de códigos (palavras código) (veja a figura 11 (b)) (etapa Sc4).
Depois disso, o decodificador de comprimento variável LVLD determina se existe qualquer valor de nível não-decodificado Lev em um bloco alvo (etapa Sc5). Quando valores de nível não-decodificados Lev estão incluídos no bloco alvo, o decodificador de comprimento variável realiza um processo de decodificação para reconstituir os valores de nível Lev por utilizar a tabela de códigos selecionada, isto é, um processo para obter valores de nível correspondendo aos códigos (etapa Sc6) e então realiza o processo da etapa Sc5. Por outro lado, quando o resultado da determinação na etapa Sc5 indicar que não existe valor de nível não-decodificado Lev no bloco alvo, o decodificador de comprimento variável termina o processo de decodificação de comprimento variável para reconstituir os valores de nível Lev.
Aqui, quando o sinal de seleção LVD VldSel designa anterior- mente um processo de decodificação de comprimento variável utilizando uma tabela de códigos específica, o decodificador de comprimento variável LVLD realiza um processo de decodificação de comprimento variável para reconstituir os valores de nível pela utilização da tabela de códigos específica, independente do valor do parâmetro de quantização QP. A seguir, a operação do decodificador de comprimento variável RVLD será especificamente descrita com referência às figuras 12. O decodificador de comprimento variável RVLD determina se existe qualquer coeficiente não-zero não-decodificado em um bloco alvo baseado na saída (o número de coeficientes não-decodificados) Cnum a partir do calculador de número NumClc (etapa Sd1). Quando o resultado da determinação apresenta que existem coeficientes não-zero não-decodificados, o decodificador de comprimento variável calcula o número de coeficientes zero não-decodificados no bloco alvo baseado no número Cnum de coeficientes não-decodificados (etapa Sd2). O decodificador de comprimento variável RVLD seleciona uma tabela de códigos de acordo com o número obtido de coeficientes zero não-decodificados (etapa Sd3). Para ser mais específico, quando o número de coeficientes zero não-decodificados é um, o decodificador de comprimento variável seleciona a tabela de códigos R1 que é constituída pela disposição Arun dos valores de varredura e pela disposição Cb1 de códigos (palavras código) (veja a figura 12(b)). De forma similar, o decodificador de comprimento variável seleciona a tabela de códigos R2 quando o número de coeficientes zero não-decodificados é dois, a tabela de códigos R3 quando o número de coeficientes zero não-decodificados é três e a tabela de códigos R4 quando o número de coeficientes zero não-decodificados é quatro. Adicionalmente, o decodificador de comprimento variável seleciona a tabela de códigos R5 quando o número de coeficientes zero não-decodificados é cinco, a tabela de códigos R6 quando o número de coeficientes zero não-decodificados é seis e a tabela de código R7 quando o número de coeficientes zero não-decodificados é sete, respectivamente. Adicionalmente, quando o número de coeficientes zero não-decodificados é oito ou mais, o decodifícador de comprimento variável RVLD seleciona a tabela de código R8. A seguir, o decodifícador de comprimento variável RVDL realiza um processo de decodificação para reconstituir os valores de varredura Run por utilizar a tabela de códigos selecionada, isto é, um processo para obter valores de varredura correspondendo aos respectivos códigos (etapa Sd4) e então realiza o processo de determinação mencionado acima da etapa Sd1.
Adicionalmente, quando o resultado da determinação na etapa Sd1 indica que não existe coeficiente zero não-decodificado, o decodifica-dor de comprimento variável RVLD termina o processo de decodificação de comprimento variável para reconstituir os valores de varredura.
Neste aparelho de decodificação de imagem 102 de acordo com a segunda modalidade, a unidade de quantização inversa IQ, a unidade de transformação de freqüência inversa ITrans e a unidade de retirada de blocos DeBlk operam das mesmas maneiras que aquelas no aparelho de decodificação de imagem convencional 202a (veja a figura 32) e no aparelho de decodificação de imagem 202b (veja a figura 36).
Para ser mais específico, a unidade de quantização inversa IQ realiza uma operação inversa da unidade de quantização Q, isto é, uma operação de inversamente quantizar os componentes quantizados decodificados DQS com referência ao parâmetro de quantização QP, para emitir os componentes de freqüência decodificados ITransS. A unidade de transformação de freqüência inversa ITrans realiza uma operação inversa da unidade de transformação de freqüência Trans, isto é, uma operação de transformar os componentes de freqüência decodificados ITransS correspondendo a cada bloco de acordo com a DCT inversa ou com a transformação Wavelet inversa, para reconstituir os sinais de valor de pixel decodificados DBIkS correspondendo aos respectivos blocos. Então, a unidade de retirada de blocos DeBlk integra os componentes de valor de pixel decodificados DBIkS dos respectivos blocos e emite um sinal de imagem decodificado Vout correspondendo a cada imagem (quadro).
Como descrito acima, o aparelho de decodificação de imagem 102 de acordo com a segunda modalidade inclui a unidade de decodificação de varredura de comprimento RLD1 que transforma a cadeia de códigos de valor de varredura RStr e uma cadeia de códigos de valor de nível LStr que constituem dados codificados, respectivamente, em um valor de varredura Run indicando o número de coeficientes zero sucessivos Coef e um valor de nível Lev indicando um valor de um coeficiente não-zero seguindo aos coeficientes zero, para reconstituir os coeficientes quantizados baseado no valor de varredura e no valor de nível. Portanto, um processo de decodificação correspondendo a um processo de codificação de comprimento variável pelo qual os coeficientes quantizados podem ser codificados em uma eficiência de codificação mais elevada com sua informação redundante sendo removida pode ser satisfatoriamente realizado.
Em adição, a unidade de decodificação de varredura de comprimento RLD1 de acordo com a segunda modalidade inclui o decodificador de comprimento variável LVLD que seleciona uma tabela de códigos de acordo com o valor do parâmetro de quantização QP e realiza a decodificação de comprimento variável para reconstituir os valores de nível por utilizar a tabela de códigos selecionada. Portanto, uma cadeia de códigos de valor de nível que é composta de um número total reduzido de bits correspondendo aos códigos que são designados para os valores de nível pode ser satisfatoriamente decodificada. A unidade de decodificação de varredura de comprimento RLD1 adicionalmente inclui o decodificador de comprimento variável RVLD que seleciona uma tabela de códigos de acordo com o número de coeficientes zero não-decodificados em um bloco alvo e decodifica uma cadeia de códigos correspondendo aos valores de varredura reordenados por utilizar a tabela de códigos selecionada e a unidade de reordenação inversa Rlreodr que reordena os valores de varredura que são obtidos pelo processo de decodificação em uma ordem inversa ao do processo de reordenação para os valores de varredura na unidade de codificação de varredura de comprimento RLD1. Portanto, o número total de bits correspondendo aos códigos que são designados para os valores de varredura pode ser efetivamente reduzido e a cadeia de códigos de valor de varredura compreendendo os valores de varredura pode ser satisfatoriamente decodificada.
Nesta segunda modalidade, o decodificador de comprimento variável RVLD seleciona uma tabela de códigos de acordo com o número de coeficientes zero não-decodificados no bloco alvo (isto é, a saída Cnum a partir do calculador de número NumClc), mas este decodificador de comprimento variável RVLD pode selecionar a tabela de códigos baseado não somente na saída Cnum a partir do calculador de número NumClc mas também no sinal de seleção VLD VldSel. Por exemplo, quando o processo de decodificação de comprimento variável utilizando uma tabela de códigos específica é indicado anteriormente pelo sinal de seleção VLD VldSel, o decodificador de comprimento variável RVLD executa um processo de decodificação de comprimento variável por utilizar a tabela de códigos específica para reconstituir os valores de varredura, independente do número de coeficientes zero não-decodificados no bloco alvo.
Modalidade 3 A figura 13 é um diagrama de blocos para explicar um aparelho de codificação de imagem de acordo com uma terceira modalidade da presente invenção.
Este aparelho de codificação de imagem 103 de acordo com a terceira modalidade possui, em vez da unidade de codificação de varredura de comprimento RLEOc no aparelho de codificação de imagem 201c apresentado na figura 38 que sujeita as saídas (componentes quantizados) QS a partir da unidade de quantização Q a um processo de codificação de comprimento variável e emite um fluxo codificado StrOc, uma unidade de codificação de varredura de comprimento RLE2 que sujeita as saídas QS a partir da unidade de quantização Q a um processo de codificação e comprimento variável baseado em um parâmetro de quantização QP ou em um sinal de seleção VLC VlcSel e emite um fluxo codificado Str2. Outros componentes do aparelho de codificação de imagem 103 da terceira modalidade são os mesmos que aqueles no aparelho de codificação de imagem convencional 201c.
Para ser mais específico, a unidade de codificação de varredura de comprimento RLE2 possui, como a unidade de codificação de varredura de comprimento convencional RLEOc, a primeira tabela de códigos T1 (veja a figura 42) que apresenta a correspondência entre um par de valor de varredura e de um valor de nível (daqui para frente, referido como par varredura - nível) e um código correspondente, de acordo com as combinações dos valores de varredura e dos valores de nível. Esta unidade de codificação de varredura de comprimento RLE2 regularmente altera as correspondências entre o par de varredura - nível e o código na primeira tabela de códigos, baseado na primeira tabela de códigos, para formar uma segunda tabela de códigos possuindo correspondências diferentes a partir da primeira tabela de códigos e seleciona uma entre a primeira e a segunda tabelas de código baseado no parâmetro de quantização QP que é emitido a partir da unidade de quantização Q ou no sinal de seleção VLC VlcSel do lado externo, bem como designa códigos para os pares de varredura - nível associados com os coeficientes nos dados alvo a serem processados, baseado na tabela de códigos selecionada.
Aqui, o parâmetro de quantização QP é um parâmetro que indica o valor da etapa de quantização e a etapa de quantização é aproximadamente proporcional ao parâmetro de quantização QP. Para ser mais específico, quando o parâmetro de quantização QP é grande, os componentes de quantização possuem valores absolutos menores, então a varredura zero nos componentes quantizados (o comprimento de componentes sucessivamente contínuos cujos valores são zero) fica mais longa e assim o valor de nível possui um valor absoluto menor. Portanto, neste caso, uma tabela de códigos na qual códigos menores são designados para os pares de varredura - nível compreendendo valores de varredura maiores e valores de nível menores é selecionada, desse modo para aumentar a eficiência da codificação. Inversamente, quando o parâmetro de quantização QP é menor, os componentes quantizados possuem valores absolutos maiores. Portanto, uma tabela de códigos na qual códigos menores são designados para os pares de varredura - nível compreendendo valores de varredura menores e valores de nível maiores é selecionada, desse modo aumentando a eficiência da codificação.
Adicionalmente, quando o sinal de seleção VLC VlcSel do lado externo do aparelho de codificação de imagem 103 é informado, a unidade de codificação de varredura de comprimento RLE2 seleciona uma tabela de códigos que é empregada no processo de codificação de acordo com o sinal de seleção VlcSel. Assim, quando uma tabela de códigos apropriada é selecionada a partir do lado externo de acordo com as características da imagem (o valor de movimento de uma imagem, a complexidade do movimento, a exatidão de um padrão, ou semelhantes), ou quando um fluxo que pode ser decodificado por um aparelho de decodificação de imagem incluindo somente uma tabela de códigos é formado no lado do aparelho de codificação de imagem 103, este aparelho de codificação de imagem 103 pode ser controlado pelo sinal de seleção VLC VlcSel para sempre utilizar uma tabela de códigos predeterminada. Ou seja, também é possível realizar um processo de codificação de comprimento variável sem alterar uma tabela de códigos mas utilizando somente uma tabela de códigos. A figura 14 é um diagrama de blocos para explicar uma construção específica da unidade de codificação de varredura de comprimento RLE2. A unidade de codificação de varredura de comprimento RLE2 possui, como a unidade de codificação de varredura de comprimento convencional RLEOc (veja a figura 39), um digitalizador em ziguezague Scan para transformar saídas (componentes quantizados) QS em uma série bidimensional a partir da unidade de quantização Q em componentes quantizados Coef em uma série unidimensional (isto é, ordem predeterminada); um calculador de varredura RunCal para calcular o número de componentes quantizados sucessivos cujos valores são zero (coeficientes zero) Coef e emitir um valor de varredura Run; e um calculador de nível LevCal para calcular um valor de um componente quantizado cujo valor não é zero (coeficiente não-zero) Coef, seguindo aos coeficientes zero e emitir um valor de nível Lev.
Nesta terceira modalidade, a unidade de codificação de varredura de comprimento RLE2 adicional mente possui um conversor de varredura RunConv para realizar um processo de conversão para dividir a saída (valor de varredura) Run do calculador de varredura RunCal em um valor de varredura Run1 indicando um dígito superior do valor de varredura Run e um valor de varredura Run2 indicando um dígito inferior do valor de varredura Run, baseado no parâmetro de quantização QP ou no sinal de seleção VLC VlcSel; e um conversor de nível LevConv para realizar um processo de conversão para dividir a saída (valor de nível) Lev do calculador de nível Le-vCal em um valor de nível Lev1 indicando um dígito superior do valor de nível e um valor de nível Lev 2 indicando um dígito inferior do valor de nível Lev baseado no parâmetro de quantização QP ou no sinal de seleção VLC VlcSel. A unidade de codificação de varredura de comprimento RLE2 adicionalmente inclui um codificador de varredura de nível RunLevEnc para obter um número de código Código correspondendo a um par de valor de varredura Run1 e de valor de nível Lev1 (daqui para frente, referido como um par de dígitos superior de varredura-nível) de acordo com uma tabela de códigos ou com uma operação aritmética; e uma unidade de reordenação ReOdr para realizar um processo para reordenar os pares de dígitos superiores de varredura-nível de modo que os pares de dígitos superiores de varredura-nível para os componentes de freqüência mais elevada, correspondendo a um bloco objeto a ser processado, correspondam aos números de código menores baseado na correspondência entre o par de dígito superior de varredura-nível e no número de código Código, de acordo com o parâmetro de quantização QP ou com o sinal de seleção VLC VlcSel e emitindo um número de código ReOdrCode correspondendo a um par de dígito superior de varredura-nível reordenado. A unidade de codificação de varredura de comprimento RLE2 adicionalmente inclui um calculador de posição PosClc para calcular o número de componentes quantizados codificados (coeficientes codificados) a partir do valor de varredura Run e emitir o número Pos de coeficientes codi- ficados; um transformador de código CodeTrans para emitir um número de código ExtCode correspondendo a um par de varredura-nível, indicado por uma segunda tabela de códigos, a partir do valor de nível Lev2 e do valor de varredura Run2, baseado nas correspondências entre o par de dígitos superior de varredura-nível e no número de código ReOdrCode; e um codificador de comprimento variável VLC para designar uma cadeia de bits (palavra código) para o número de código ExtCode para gerar uma cadeia de códigos Str2. O digitalizador em ziguezague Scan, o calculador de varredura RunCal, o calculador de nível LevCal e o codificador de comprimento variável VLC na unidade de codificação de varredura de comprimento RLE2 são os mesmos que estes na unidade de codificação de varredura de comprimento convencional RLEOc como apresentado na figura 39. A seguir, as funções e efeitos serão descritos. O digitalizador em ziguezague Scan transforma os componentes quantizados QP e uma série bidimensional em componentes quantizados Coef em uma série unidimensional, isto é, para a qual uma ordem é estabelecida. O calculador de varredura RunCal calcula o número de componentes zero sucessivos (componentes quantizados cujos valores são zero) Coef e emite um valor de varredura Run indicando o número obtido. O calculador de nível LevCal calcula um valor de um componente não-zero (um componente quatizado cujo valor não é zero, seguindo aos componentes zero) Coef e emite um valor de nível Lev indicando o valor do componente não-zero. O conversor de varredura RunConv realiza um processo de conversão para dividir o valor de varredura Run no valor de varredura Run1 indicando um dígito superior do valor de varredura Run e o valor de varredura Run2 indicando um dígito inferior do valor de varredura Run. O conversor de nível LevConv realiza um processo de conversão para dividir o valor de nível Lev no valor de nível Lev1 indicando um dígito superior do valor de nível Lev e no valor de nível Lev2 indicando um dígito inferior do valor de nível Lev. O codificador de varredura-nível RunLevEnc obtém um número de código Código correspondendo a um par de valor de nível Lev1 e do valor de varredura Run1(par de dígitos superior de varredura-nível) de acordo com uma tabela de códigos (primeira tabela de códigos) apresentada na figura 42 ou de acordo com uma operação aritmética. A unidade de reorde-nação ReOdr realiza um processo de reordenação dos pares de dígitos superiores de varredura-nível de acordo com o parâmetro de quantização QP ou com o sinal de seleção VLC VlcSel e emite um número de código Re-OdrCode correspondendo a um par de dígitos superior de varredura-nível. De acordo com o processo de reordenação dos pares de dígitos superiores de varredura-nível, as correspondências entre o par de dígitos superior de varredura-nível e o número de código Código, os quais são obtidos pelo codificador de varredura-nível RunLevEnc, são convertidos nas correspondências nas quais os números de código menores correspondem aos pares de dígitos superiores de varredura-nível correspondendo aos componentes de freqüência mais elevada no bloco alvo a ser processado. O calculador de posição PosClc calcula o número de componentes codificados a partir do valor de varredura Run e emite o número Pos de coeficientes codificados. O transformador de código CodeTrans emite um número de código ExtCode correspondendo ao par de varredura-nível a partir do valor de nível Lev2 e do valor de varredura Run2, baseado nas correspondências entre o par de dígito superior de varredura-nível e o número de código ReOdrCode. Nesta hora, o transformador de código CodeTrans emprega o número Pos de coeficientes codificados que é emitido a partir do calculador de posição PosClc, para obter o número de componentes não-codificados.
Aqui, o número de código ExtCode correspondendo ao par de varredura-nível, o qual é emitido a partir do transformador de código CodeTrans, é obtido baseado na segunda tabela de códigos que possui correspondências diferentes entre o par de varredura-nível e o número de código daquelas da primeira tabela de códigos. Esta segunda tabela de códigos é formada como se segue: uma tabela de códigos que possui correspondên- cias diferentes entre um par de varredura-nível e um número de código da primeira tabela de códigos é inicialmente formada pelo processo de reorde-nação pela unidade de reordenação ReOdr e então esta tabela de códigos formada pela unidade de reordenação ReOdr é modificada pelo transformador de número CodeTrans baseado no número Pos de coeficientes codificados de modo a não incluir as correspondências entre o par de varredura-nível e o número de código, correspondendo aos valores de varredura Run excedendo ao número de componentes não-codificados. O codificador de comprimento variável VLC designa uma cadeia de bits (palavra chave) para o número de código ExtCode para gerar um fluxo codificado Str2.
As figuras 15 apresentam exemplos da segunda tabela de códigos que é formada pela unidade de codificação de varredura de comprimento RLE2 baseado na primeira tabela de códigos. Aqui, a primeira tabela de códigos é a mesma que a tabela de códigos apresentada na figura 42, a qual é empregada na unidade de codificação de varredura de comprimento RLEOc. Nas primeira e na segunda tabelas de códigos, uma cadeia de bits (palavra chave) é designada para o número de código em uma relação um para um, enquanto é desnecessário dizer que palavras código mais curtas são designadas para os números de código, Código possuindo valores menores. A figura 15(a) apresenta, como um exemplo da segunda tabela de códigos, uma segunda tabela de códigos T2a que é adequada para um caso onde os parâmetro de quantização QP é menor.
Esta segunda tabela de códigos T2a é formada como se segue.
Inicialmente, um valor correspondendo a V2 do nível Lev é designado como o valor de nível Lev1 e um valor absoluto de (Lev1 x 2 - Lev) é designado como 0 valor de nível Lev2.
Aqui, quando 0 valor de nível Lev é um número ímpar, um valor que é obtido por se dividir um número par possuindo um valor absoluto que é um maior do que este do valor de nível Lev, por 2 é empregado como o valor de nível Lev1. Para ser mais específico, quando 0 valor de nível Lev é positivo, um valor correspondendo a Vz de (Lev + 1) é designado para o valor de nível Lev1, enquanto quando o valor de nível Lev é negativo, um valor correspondendo a Vz de (Lev -1) é designado para o valor de nível Lev1.
Então, um número de código, Código correspondendo a um par de valor de nível Lev1 e ao valor de varredura Run é obtido a partir da primeira tabela de códigos (veja a figura 42) de acordo com as combinações de valores de nível Lev e de valor de varredura Run.
Adicionalmente, o número de código, Código correspondendo a um par de valor de nível Lev1 e de valor de varredura Run é convertido de acordo com a próxima fórmula (1) quando o valor Lev é positivo e de acordo com a fórmula (2) quando o valor Lev é negativo. A segunda tabela de códigos T2a apresenta as correspondências entre o número de código e o par varredura-nível que são obtidas pela conversão acima. 2 x (Código - Lev2) -1 ... (1) 2 x (Código - Lev2) ... (2) Por exemplo, quando focando a atenção em um par de varredura-nível (nível = -2, varredura = 1) na tabela de códigos (primeira tabela de códigos) na figura 42, um número de código, Código correspondendo a este par de varredura-nível é convertido de "10" indicado pela primeira tabela de código T1 na figura 42 para "12" indicado pela segunda tabela de códigos T2a na figura 15(a).
Ou seja, desde que o par de varredura-nível (Lev, Run) é (-2, 1) neste caso, Lev1 e Lev2 são calculados como se segue.
Lev1 = Lev . (1/2) = -1 Lev2 = (Lev1 . 2 - Lev) = (-1 . 2 - (-2)) = 0 Portanto, Lev1, Run) é (-1, 1) e este par de varredura-nível corresponde ao número de código (Código = 6) de acordo com a primeira tabela de códigos (veja a figura 42).
Então, um número de código correspondendo ao par de varredura-nível (Lev, Run) = (-2,1) é calculado por se empregar a fórmula (2): 2 x (Código - Lev2) = 2 x (6 - 0) = 12 A tabela de códigos na figura 15(a) é caracterizada pelo fato de que números de códigos menores (isto é, palavras código mais curtas) são designados para os pares de varredura-nível compreendendo valores de varredura menores e valores de nível maiores se comparado com a tabela de códigos (primeira tabela de códigos) apresentada na figura 42 e esta é adequada para um caso onde o parâmetro de quantização QP é menor. A figura 15(b) apresenta, como outro exemplo da segunda tabela de códigos, uma segunda tabela de códigos T2b que é adequada para um caso onde o parâmetro de quantização QP é maior.
Esta segunda tabela de códigos T2b é formada como se segue.
Inicialmente, um valor correspondendo a Vz do valor de varredura Run é designado como o valor de varredura Run1 e um valor absoluto de (Run1 x 2 - Run) é designado como o valor de varredura Run2. Aqui, quando o valor de varredura é um número ímpar, uma parte inteira do valor correspondendo a 1/2 de (Run + 1) é designado para o valor de varredura Run1.
Então, um número de código, Código correspondendo a um par de valor de nível Lev e de valor de varredura Run1 é obtido a partir da primeira tabela de códigos (veja a figura 42), de acordo com as combinações de valores de nível Lev e de valores de varredura Run1.
Adicionalmente, o número de código Código correspondendo a um par de valor de nível Lev e de valor de varredura Run1 é convertido baseado na próxima fórmula (3) quando o valor Lev é positivo e na fórmula (4) quando o valor Lev é negativo. A segunda tabela de códigos T2b apresenta as correspondências entre o número de código e o par de varredura-nível que são obtidas como um resultado da conversão. 2 x (Código + Run2) -1 ...(3) 2 x (Código + Run2) -2 ...(4) Por exemplo, quando focando a atenção em um par de varredura-nível (nível = -1, varredura = 2) na tabela de códigos (primeira tabela de códigos) da figura 42, um número de código Código correspondendo a este par de varredura-nível é convertido de "12" indicado pela primeira tabela de códigos T1 na figura 42 para "10" indicado pela segunda tabela de códigos T2b na figura 15(b).
Para ser mais específico, desde que o par de varredura-nível (Lev, Run) neste caso é (-1,2), Run1 e Run2 são calculados como se segue.
Run1 = Run . (1/2) = 1 Run2 = I Run1 . 2 - Run I = 11 .2-21 = 0 Portanto, (Lev, Run1) é (-1, 1) e este par de varredura-nível correspondendo ao número de código (código = 6) de acordo com a primeira tabela de códigos (figura 42).
Então, um número de código correspondendo ao par de varredura-nível (Lev, Run) = (-1,2) é calculado por se utilizar a fórmula (4): 2 x (Código + Run2) = 2 x (6 - 0) - 2 = 10 A segunda tabela de códigos T2b apresentada na figura 15(b) é caracterizada pelo fato de que números de códigos menores (isto é, palavras códigos mais curtas) são designadas para os pares de varredura-nível compreendendo valores de varredura maiores e valores de nível menores, se comparado com a tabela de códigos (primeira tabela de códigos) T1 apresentada na figura 42 e isto é adequado para um caso onde o parâmetro de quantização QP é maior. A figura 16 apresenta outros exemplos da segunda tabela de códigos que é formada com base na primeira tabela de códigos pela unidade de codificação de varredura de comprimento RLE2. Aqui, a primeira tabela de códigos é a mesma que a tabela de códigos T1 apresentada na figura 42, a qual é empregada na unidade de codificação de varredura de comprimento convencional RLEOc. O transformador de número CodeTrans calcula o número de componentes não-codificados (o número de coeficientes que ainda não foram sujeitos a um processo de codificação) em um bloco alvo a ser processado, baseado no número Pos de coeficientes codificados que é emitido a partir do calculador de posição PosCIc. Adicionalmente, a segunda tabela de códigos que é formada a partir da primeira tabela de códigos é feita não incluindo palavras código correspondendo aos pares de varredura-nível incluindo valores de varredura excedendo ao número de componentes não-codificados. Desse modo, a codificação com eficiência de compactação mais elevada é habilitada. A figura 16(a) apresenta uma segunda tabela de códigos T2c que é formada quando o número de componentes não-codificados é três ou mais. A figura 16(b) apresenta uma segunda tabela de códigos T2d que é formada quando o número de componentes não-codificados é dois. A figura 16(c) apresenta uma segunda tabela de códigos T2e que é formada quando o número de componentes não-codificados é um.
Quando as correspondências entre os pares de varredura-nível incluindo valores de varredura que nunca irão ser utilizados e códigos são deletados da tabela de códigos como descrito acima, um código mais curto é designado para o par de varredura-nível. Por exemplo, de acordo com a segunda tabela de códigos T2e como apresentado na figura 16(c), um par de varredura-nível compreendendo um valor de varredura [0] e um valor de nível [4] corresponde a um número de código [7]. O par de varredura-nível compreendendo o valor de varredura [0] e o valor de nível [4] corresponde a um número de código [11] de acordo com a segunda tabela de códigos T2d apresentada na figura 16(b), enquanto o par de varredura-nível compreendendo o valor de varredura [0] e o valore de nível [4] corresponde a um número de código possuindo um valor adicionalmente maior (não-apresen-tado) de acordo com a segunda tabela de códigos T2c apresentada na figura 16(a). A figura 17 apresenta um exemplo de uma ordem de codificação na unidade de codificação de varredura de comprimento RLE2 do aparelho de codificação de imagem 103 de acordo com a terceira modalidade.
Geralmente, os valores absolutos de valores de nível correspondendo aos componentes de freqüência inferior são maiores e na tabela de códigos, os números de código, Código possuindo valores maiores correspondem aos pares de varredura-nível correspondendo aos componentes de freqüência inferior. Ao contrário, os valores absolutos dos valores de nível correspondendo aos componentes de freqüência mais elevada são menores e na tabela de códigos, os números de código possuindo valores menores correspondem aos pares de varredura-nível correspondendo aos componentes de freqüência mais elevada.
Como descrito com referência às figuras 16, o aumento na eficiência da compactação, o qual é obtido por se deletar os números de código (palavras código) correspondendo aos pares de varredura-nível que incluem valores de varredura excedendo ao número de componentes não-codificados a partir da tabela de códigos, fica maior a medida que o número de componentes não-codificados é menor, bem como maior a medida que o valor absoluto do valor de nível é maior, pelo fato de que a proporção de diminuição no valor do número de código designado é maior se comparado com o caso onde os números de código não estão ainda deletados.
Assim, quando componentes quantizados possuindo valores absolutos maiores dos valores de nível e correspondendo aos componentes de freqüência inferior são codificados mais tarde na codificação dos componentes quantizados pela unidade de codificação de varredura de comprimento RLE2, como no aparelho de codificação de imagem 103 de acordo com a terceira modalidade, a eficiência da compactação é adicionalmente aumentada.
Para ser mais específico, a unidade de reordenação ReOdr re-ordena os componentes quantizados de modo a serem sucessivamente dispostos a partir de um par de varredura-nível com um componente quantiza-do correspondendo a um componente de freqüência mais elevada (o último componente não-zero) até um par de varredura-nível de um componente quantizado correspondendo a um componente de freqüência inferior, como apresentado pelas setas X1 até X7 na figura 17, para adicionar um EOB indicando o último componente codificado em um bloco alvo após uma palavra código correspondendo a um par de varredura-nível de um componente quantizado possuindo o componente de freqüência mais baixo, desse modo aumentando a eficiência da compactação.
Adicionalmente, na terceira modalidade, o parâmetro de quanti-zação QP e o sinal de seleção VLC VlcSel são fornecidos para o conversor de nível LevConv, para o conversor de varredura RunConv, para a unidade de reordenação ReOdr e para o transformador de número CodeTrans. Por- tanto, uma tabela de códigos pode ser alterada de acordo com o parâmetro de quantização QP, ou uma tabela de códigos apropriada pode ser selecionada a partir do lado externo de acordo com o conteúdo de uma imagem (o valor de um movimento da imagem, a complexidade do movimento, ou com a exatidão de um padrão).
Por exemplo, quando a tabela de códigos que é empregada no processo de codificação é alterada de acordo com o sinal de seleção VLC VlcSel a partir do lado externo do aparelho de codificação de imagem, o aparelho de decodificação de imagem pode criar um fluxo que pode ser decodificado por uma unidade de decodificação possuindo somente uma tabela de códigos.
Nesta terceira modalidade, o aparelho de codificação de imagem 103 que codifica coeficientes quantizados de um sinal de imagem como um dado alvo a ser processado inclui a unidade de codificação de varredura de comprimento RLE2 que designa códigos de comprimento variável para o coeficiente quantizado utilizando uma tabela de códigos e esta unidade de codificação de varredura de comprimento RLE2 forma a segunda tabela de códigos que é otimizada para os dados alvo a serem processados baseado na primeira tabela de códigos e seleciona uma dentre a primeira e a segunda tabela de códigos como uma tabela de códigos que é empregada para a designação de códigos de comprimento variável, baseado no parâmetro de quantização QP ou no sinal de seleção VLC VlcSel. Portanto, a informação redundante incluída nos dados alvo pode ser removida de forma eficaz, desse modo adicionalmente aumentando a taxa de compactação para os sinais de imagem ou semelhantes.
Nesta terceira modalidade, a unidade de codificação de varredura de comprimento RLE2 inclui vários dispositivos para aumentar a taxa de compactação, isto é, o conversor de varredura RunConv, o conversor de nível LevConv, a unidade de reordenação ReOdr e o transformador de número CodeTrans, como apresentados na figura 14. Entretanto, a unidade de codificação de varredura de comprimento RLE2 pode incluir somente alguns dos dispositivos para aumentar a taxa de compactação. Neste caso, a uni- dade de codificação de varredura de comprimento RLE2 pode ser facilmente montada.
Adicionalmente, na terceira modalidade, a segunda tabela de códigos é obtida por se modificar as correspondências entre os pares de varredura-nível e os números de código em ambas as partes constituindo a primeira tabela de códigos: uma parte que pode ser regularmente gerada por uma operação aritmética (VLC regularmente construído) e uma parte que não pode ser regularmente gerada (VLC de consulta de tabela). Entretanto, quando a primeira tabela de códigos possui a parte que pode ser regularmente gerada por uma operação aritmética (VLC regularmente construída) e a parte que não pode ser regularmente gerada (VLC de consulta de tabela), a segunda tabela de códigos pode ser formada por se modificar somente a parte como a parte da primeira tabela de códigos, que pode ser regularmente gerada por uma aritmética cuja operação é facilmente realizada. Neste caso, a montagem da unidade de codificação de varredura de comprimento RLE2 pode ser mais facilmente executada.
De acordo com esta terceira modalidade, na unidade de codificação de comprimento variável que executa a codificação de comprimento variável dos componentes quantizados por utilizar pares de varredura-nível, os componentes quantizados são sucessivamente sujeitos a uma codificação de comprimento variável a partir do componente de alta freqüência até o componente de baixa freqüência. Entretanto, não é necessário dizer que em uma unidade de codificação de varredura de comprimento que sujeita os valores de varredura e os valores de nível correspondendo aos componentes quantizados no bloco alvo separadamente ao processo de codificação de comprimento variável como na primeira modalidade, que os valores de varredura e os valores de nível correspondendo aos componentes quantizados no bloco alvo podem ser sujeitos a uma codificação de comprimento variável, sucessivamente a partir do componente de alta freqüência até o componente de baixa freqüência.
Modalidade 4 A figura 18 é um diagrama de blocos para explicar um aparelho de decodificação de imagem de acordo com uma quarta modalidade da presente invenção.
Este aparelho de decodificação de imagem 104 de acordo com a quarta modalidade possui, em vez da unidade de decodificação de varredura de comprimento RLDOc no aparelho de decodificação de imagem convencional 202c como apresentado na figura 40 que sujeita um fluxo codificado StrOc a um processo de decodificação de comprimento variável e emite os componentes quantizados decodificados DQS, uma unidade de decodificação de varredura de comprimento RLD2 que sujeita um fluxo codificado Str2 a um processo de decodificação de comprimento variável baseado no parâmetro de quantização QP ou no sinal de seleção de decodificação de comprimento variável (sinal de seleção VLD) VldSel e emite os componente quantizados decodificados DQS. Outros componentes do aparelho de decodificação de imagem 104 de acordo com a quarta modalidade são os mesmos que aqueles no aparelho de decodificação de imagem convencional 202c.
Para ser mais específico, a unidade de decodificação de varredura de comprimento RLD2 possui, como a unidade de decodificação de varredura de comprimento convencional RLDOc, uma primeira tabela de códigos T1 (veja a figura 42) que indica as correspondências entre o par de valor de varredura e um valor de nível (daqui para frente, referidos como pares de varredura-nível) e o código correspondente, de acordo com as combinações dos valores de varredura e dos valores de nível. Então, a unidade de decodificação de varredura de comprimento RLD2 regularmente altera as correspondências entre os pares de varredura-nível e os códigos na primeira tabela de códigos, baseado na primeira tabela de códigos, para formar uma segunda tabela de códigos possuindo correspondências diferentes daquelas da primeira tabela de códigos e seleciona uma dentre a primeira e a segunda tabelas de códigos de acordo com o parâmetro de quantização QP emitido a partir da unidade de quantização Q ou com o sinal de seleção VLD VldSel a partir do lado externo, bem como transforma as palavras códigos (cadeia de bits) que constituem o fluxo codificado Str2 em pares de valores de varredura e de valores de nível associados com coeficientes nos dados alvo a serem processados, baseado na tabela de códigos selecionada.
Como descrito acima, o parâmetro de quantização QP é um parâmetro indicando o valor da etapa de quantização e a etapa de quantização é aproximadamente proporcional ao parâmetro de quantização QP. Para ser mais específico, quando o parâmetro de quantização QP é grande, os componentes quantizados possuem valores absolutos menores, então a varredura zero dos componentes quantizados (o comprimento de componentes sucessivamente contínuos cujos valores são zero) fica mais longa e assim os valores de nível possuem valores absolutos menores. Neste caso, por conseqüência, uma tabela de códigos na qual códigos menores são designados para os pares de varredura - nível compreendendo valores de varredura maiores e valores de nível menores é selecionada, desse modo para adicionalmente aperfeiçoar a eficiência da codificação. Inversamente, quando o parâmetro de quantização QP é menor, os componentes quantizados possuem valores absolutos e portanto, uma tabela de códigos na qual códigos menores são designados para os pares de varredura - nível compreendendo valores de varredura menores e valores de nível maiores é selecionada, desse modo para aumentar a eficiência da codificação. A figura 19 é um diagrama de blocos ilustrando uma construção específica da unidade de decodificação de varredura de comprimento RLD2. A unidade de decodificação de varredura de comprimento RLD2 possui, como a unidade de decodificação de varredura de comprimento convencional RLDOc, um decodificador de comprimento variável VLD e este decodificado VLD decodifica o fluxo codificado Str2 emitido a partir do aparelho de codificação de imagem 103 de acordo com a terceira modalidade e emite um número de código ExtCode.
Nesta quarta modalidade, a unidade de decodificação de varredura de comprimento RLD2 possui um transformador inverso de número ICodeTrans para realizar um processo da transformação inversa de número para dividir o número de código ExtCode em um número de código PrmCo- de correspondendo a um par de dígito superior de varredura-nível compreendendo um valor de nível Lev1 e um valor de varredura Run1, um valor de nível Lev2 e um valor de varredura Run2 baseado no parâmetro de quanti-zação QP ou no sinal de seleção VLD VldSel; e uma unidade de reordena-ção inversa IReOdr para reordenar vários números de código PrmCode correspondendo a um bloco alvo a ser processado em ordem de freqüência crescente de par de varredura-nível e emitir os vários números de código que correspondem ao bloco alvo e possuem uma ordem alterada. A unidade de decodificação de varredura de comprimento RLD2 adicionalmente inclui um detector de varredura-nível RunLevDec para detectar um par de varredura-nível correspondendo a um número de código, Código de acordo com uma tabela de códigos ou com uma operação aritmética e emitir um valor de nível Lev1 e um valor de varredura Run1 constituindo o par de varredura-nível; um conversor inverso de varredura IRun-Conv para reconstituir um valor de varredura Run a partir do valor de varredura Run1 indicando o dígito superior do valor de varredura Run e o valor de varredura Run2 indicando o dígito inferior do valor de varredura Run; e um conversor inverso de nível ILevConv para reconstituir um valor de nível Lev a partir do valor de nível Lev1 indicando o dígito superior do valor de nível Lev e o valor de nível Lev2 indicando o dígito inferior do valor de nível Lev. A unidade de decodificação de varredura de comprimento RLD2 adicionalmente inclui, como a unidade de decodificação de varredura de comprimento convencional RLDOc, um digitalizado R em ziguezague inverso IScan. Este digitalizador IScan transforma os componentes quantizados em uma série unidimensional, os quais são representados pelos valores de nível Lev e pelos valores de varredura Run, em componentes quantizados decodificados DQS em uma série bidimensional e emite os mesmos.
Aqui, o decodificador de comprimento variável VLD, o detector de varredura-nível RunLevDec e o digitalizador em ziguezague inverso IScan na unidade de decodificação de varredura de comprimento RLD2 são os mesmos que aqueles na unidade de decodificação de varredura de com- primento RLDOc apresentada na figura 41. A seguir, as funções e efeitos serão descritos.
Na unidade de decodificação de varredura de comprimento RLD2, o decodificador de comprimento variável VLD realiza uma operação inversa a esta do codificador de comprimento variável VLC. Ou seja, o decodificador de comprimento variável VLD decodifica o fluxo codificado Str2 e emite um número de código ExtCode correspondendo a uma palavra código (cadeia de bits) que constitui o fluxo. O transformado inverso de número ICodeTrans realiza uma operação inversa a esta do transformado de número CodeTrans baseado no parâmetro de quantização QP ou no sinal de seleção VLD VldSel, para dividir o número de código ExtCode em um número de código PrmCode correspondendo a um par de dígito superior de varredu-ra-nível compreendendo o valor de nível Lev1 e o valor de varredura Run1, em valor de nível Lev2 e um valor de varredura Run2. A unidade de reordenação inversa IReOdr realiza uma operação inversa a esta da unidade de reordenação ReOdr baseado no parâmetro de quantização QP ou no sinal de seleção VLD VldSel. Desse modo, um processo para reordenar os vários números de código PrmCode correspondendo ao bloco alvo a ser processado em ordem de freqüência crescente de par de varredura-nível é realizado e vários números de código, Códigos que possuem uma ordem alterada e correspondem ao bloco são emitidos. O detector de varredura-nível RunLevDec detecta um par de varredura-nível correspondendo a um número de código, Código de acordo com uma tabela de códigos ou com uma operação aritmética e emite o valor de nível Lev1 e o valor de varredura Run1 constituindo o par de varredura-nível detectado. O conversor inverso de varredura IRunConv realiza uma operação inversa a esta do conversor de varredura RunConv baseado no parâmetro de quantização QP ou no sinal de seleção VLD VldSel, para reconstituir o valor de varredura Run a partir do valor de varredura Run1 indicando o dígito superior do valor de varredura Run e do valor de varredura Run2 indicando o dígito inferior do valor de varredura Run. Adicionalmente, o conversor inverso de nível ILevConv realiza uma operação inversa a esta do conversor de nível LevConv baseado no parâmetro de quantização QP ou no sinal de seleção VLD VldSel, para reconstituir o valor de nível Lev a partir do valor de nível Lev1 indicando o dígito superior do valor de nível Lev e do valor de nível Lev2 indicando o dígito inferior do valor de nível Lev.
Aqui, no transformado inverso de número ICodeTrans, na unidade de reordenação inversa IReOdr, no conversor inverso de varredura IRunConv e no conversor inverso de nível ILevConv, a seleção da primeira ou da segunda tabela de códigos é executada baseada no parâmetro de quantização QP ou no sinal de seleção VLD VldSel e as operações são realizadas de acordo com a tabela de códigos selecionada. O digitalizador em ziguezague inverso IScan realiza uma operação inversa à operação do digitalizador em ziguezague Scan, para transformar os componentes quantizados em uma série dimensional que são representados pelos valores de nível Lev e pelos valores de varredura Run, em componentes quantizados decodificados DQS em uma série bidimensional, baseado nos valores de nível Lev e nos valores de varredura Run.
Adicionalmente, quando o sinal de seleção VLD VldSel é informado a partir do lado externo, a unidade de decodificação de varredura de comprimento RLD2 seleciona uma tabela de códigos apropriada correspondendo ao conteúdo de uma imagem (o valor de um movimento da imagem, a complexidade do movimento, a exatidão de um padrão), o qual é indicado pelo sinal de seleção VLD VldSel.
Nesta quarta modalidade, o parâmetro de quantização QP e o sinal de seleção VLD VldSel são supridos para o transformado inverso de número ICodeTrans, para a unidade de reordenação inversa IReOdr, para o conversor inverso de varredura IRunConv e para o conversor inverso de nível ILevConv, respectivamente. Assim, uma tabela de códigos pode ser alterada de acordo com o parâmetro de quantização QP ou uma tabela de códigos apropriada pode ser selecionada a partir do lado externo do aparelho de decodificação de imagem, de acordo com as características da imagem, isto é, o valor de um movimento da imagem, a complexidade do movimento, a exatidão de um padrão ou semelhantes.
Gomo descrito acima, nesta quarta modalidade, o aparelho de decodifícação de imagem 104 que decodifica os dados codificados que são obtidos pela codificação de comprimento variável dos coeficientes quantiza-dos de um sinal de imagem inclui a unidade de decodifícação de varredura de comprimento RLD2 para transformar um código de comprimento variável em componentes quantizados utilizando uma tabela de códigos. Adicionalmente, a unidade de decodifícação de varredura de comprimento RLD2 forma uma segunda tabela de códigos que é otimizada para os dados alvo a serem processados, baseado na primeira tabela de códigos e seleciona uma dentre a primeira e a segunda tabelas de código como uma tabela de códigos que é empregada na conversão de um código de comprimento variável em coeficientes quantizados, de acordo com o parâmetro de quantiza-ção QP ou com o sinal de seleção VLD VldSel. Portanto, um processo de decodifícação correspondendo a um processo de codificação de comprimento variável que pode de forma eficaz remover informação redundante incluída nos dados alvo a serem processados pode ser satisfatoriamente realizado.
Nesta quarta modalidade, como apresentado na figura 19, a unidade de decodifícação de varredura de comprimento RLD2 possui vários dispositivos para aumentar a taxa de compactação, isto é, o transformador inverso de número ICodeTrans, a unidade de reordenação inversa IReOdr, o conversor inverso de varredura IRunConv e o conversor inverso de nível ILevConv, enquanto a unidade de decodifícação de varredura de comprimento RLD2 pode possuir somente alguns destes dispositivos para aumentar a taxa de compactação. Neste caso, a unidade de decodifícação de varredura de comprimento RLD2 pode ser montada mais facilmente.
Adicionalmente, na quarta modalidade, a segunda tabela de códigos é formada por se alterar as correspondências entre os pares de var-redura-nível e os números de código em ambas as partes que constituem a primeira tabela de códigos: a parte que pode ser regularmente gerada por uma operação aritmética (VLC regularmente construída) e a parte que não pode ser regularmente gerada (VLC de consulta de tabela). Entretanto, quando a primeira tabela de códigos possui a parte que pode ser regularmente gerada por uma operação aritmética (VLC regularmente construída) e a parte que não pode ser regularmente gerada (VLC de consulta de tabela), a segunda tabela de códigos pode ser formada por se alterar somente a parte como uma parte da primeira tabela de códigos, a qual pode ser regularmente gerada pela aritmética cuja operação é facilmente realizada. Neste caso, a montagem da unidade de decodificação de varredura de comprimento RLD2 pode ser executada mais facilmente.
De acordo com esta quarta modalidade, na unidade de decodificação de comprimento variável que executa a decodificação de comprimento variável dos dados codificados correspondendo aos componentes quantizados por utilizar pares de varredura-nível, a decodificação de comprimento variável dos dados codificados correspondendo aos componentes quantizados é executada sucessivamente a partir do componente de alta freqüência até o componente de baixa freqüência. Entretanto, é possível que, em uma unidade de decodificação de varredura de comprimento que sujeita os dados codificados dos valores de varredura e dos valores de nível correspondendo aos componentes quantizados no bloco alvo separadamente ao processo de decodificação de comprimento variável como na segunda modalidade, que os dados codificados dos valores de varredura e dos valores de nível correspondendo aos componentes quantizados no bloco alvo podem ser sujeitos a uma decodificação de comprimento variável, sucessivamente a partir do componente de alta freqüência até o componente de baixa freqüência.
Modalidade 5 A figura 20 é um diagrama de blocos para explicar um aparelho de codificação de imagem de acordo com uma quinta modalidade da presente invenção.
Este aparelho de codificação de imagem 105 inclui, em vez da unidade de codificação de varredura de comprimento RLE2 no aparelho de codificação de imagem 103 de acordo com a terceira modalidade como apresentado na figura 13, uma unidade de codificação de varredura de comprimento RLE3 que codifica um par de varredura-nível bem como codifica o número de componentes não-zero, como a unidade de codificação de varredura de comprimento RL2. Outros componentes do aparelho de codificação de imagem 105 de acordo com a quinta modalidade são os mesmos que aqueles no aparelho de codificação de imagem 103 de acordo com a terceira modalidade. A figura 21 apresenta uma construção específica da unidade de codificação de varredura de comprimento RLE3 no aparelho de codificação de imagem 105.
Esta unidade de codificação de varredura de comprimento RLE3 de acordo com a quinta modalidade possui, em vez do calculador de posição PosClc na unidade de codificação de varredura de comprimento RLE2 de acordo com a terceira modalidade como apresentado na figura 14, um contador de coeficiente não-zero NZcount para contar o número NZnum de coeficientes não-zero baseado nos componentes quantizados informados e um calculador de posição PosClc2 para calcular o número Pos2 de coeficientes codificados baseado no número contado NZnum de coeficientes não-zero e em um valor de varredura Run calculado pelo calculador de varredura RunCal. A unidade de codificação de varredura de comprimento RLE2 de acordo com a quinta modalidade codifica uma saída (número de código) ExtCode a partir do transformador de número CodeTrans bem como codifica o número NZnum de componentes não-zero, diferente do codificador de comprimento variável VLC da unidade de codificação de varredura de comprimento RLE2 de acordo com a terceira modalidade.
Outros componentes da unidade de codificação de varredura de comprimento RLE3 são os mesmos que aqueles da unidade de codificação de varredura de comprimento RLE2 de acordo com a terceira modalidade. A seguir, as funções e efeitos serão descritos.
As operações da unidade de colocação em blocos Blk, da unidade de transformação de freqüência Trans e da unidade de quantização Q no aparelho de codificação de imagem 105 de acordo com a quinta modali- dade são as mesmas que aquelas no aparelho de codificação de imagem 103 de acordo com a terceira modalidade. Adicionalmente, as operações dos componentes diferentes do contador de coeficiente não-zero, do calcu-iador de posição PosClc2, do transformador de número CodeTrans e do codificador de comprimento variável VLC2 na unidade de codificação de varredura de comprimento RLE3 de acordo com a quinta modalidade, isto é, o digitalizador Scan, o calculador de varredura RunCal, o calculador de nível LevCal, o conversor de varredura RunConv, o conversor de nível LevConv, o codificador de varredura-nível RunLevEnc e da unidade de reordenação ReOdr são idênticas a estas da unidade de codificação de varredura de comprimento RLE2 de acordo com a terceira modalidade. Assim, as operações do contador de coeficientes não-zero NZcount, do calculador de posição PosClc2, do transformador de número CodeTrans e do codificador de comprimento variável VLC2 serão daqui para frente principalmente descritas.
Quando os componentes quantizados QS emitidos a partir da unidade de quantização Q são informados para a unidade de codificação de varredura de comprimento RLE3, o contador de coeficiente não-zero NZcount na unidade de codificação de varredura de comprimento RLE3 conta o número de componentes não-zero NZnum nos vários componentes quantizados correspondendo aos respectivos blocos baseado no componente quantizado QS e emite o número obtido NZnum de componentes não-zero para o calculador de posição PosClc2 e para o codificador de comprimento variável VLC2. O calculador de posição PosClc2 calcula uma soma do número de componentes zero codificados e do número de componentes não-zero em um bloco alvo baseado no número NZnum de componentes não-zero a partir do contador de coeficiente não-zero NZcount e em um valor de varredura Run a partir do calculador de varredura RunCal e emite o valor obtido Pos2. O transformador de número CodeTrans emite um número de código ExtCode correspondendo a um par de varredura-nível a partir de um valor de nível Lev2 e de um valor de varredura Run2, baseado nas correspondências entre os pares de dígito superior de varredura-nível e os números de código ReOdrCode. Nesta hora, o transformador de número Code-Trans emprega o valor calculado Pos2 que é emitido a partir do calculador de posição PosClc2 para obter o número de componentes não-codificados no bloco alvo.
Aqui, o número de código ExtCode correspondendo a um par de varredura-nível, o qual é emitido a partir do transformador de número Code-Trans, é obtido baseado na segunda tabela de códigos possuindo correspondências diferentes entre os pares de varredura-nível e os números de código a partir da primeira tabela de códigos. Esta segunda tabela é formada como se segue: uma tabela de códigos possuindo correspondências diferentes entre os pares de varredura-nível e os números de código a partir da primeira tabela é inicialmente formada pelo processo de reordenação na unidade de reordenação ReOdr e então a tabela de códigos formada pela unidade de reordenação ReOdr é modificada pelo transformador de número CodeTrans baseado no valor calculado Pos2 de modo que os pares de varredura-nível possuindo valores de varredura que são maiores do que o valor de varredura máximo Run na tabela de códigos corresponde aos números de códigos ExtCode para os quais nenhum código é designado. O codificador de comprimento variável VLC2 codifica o número NZnum de componentes não-zero, bem como executa a codificação para o número de código ExtCode para designar um cadeia de bits (palavra código) para o número de código ExtCode para gerar um fluxo codificado Str3.
Daqui para frente, a operação do codificador de comprimento variável VLC2 será especificamente descrita.
Diferente do codificador de comprimento variável VLC de acordo com a terceira modalidade, o codificador de comprimento variável VLC2 de acordo com a quinta modalidade não somente codifica o número de código ExtCode correspondendo a um par de varredura-nível de um bloco alvo mas também codifica o número NZnum de componentes não-zero no bloco alvo antes de codificar o número de código ExtCode do bloco.
Como descrito acima, quando o número NZnum de coeficientes não-zero é codificado antes da codificação do número de código ExtCode de um bloco, o número NZnum de componentes não-zero do bloco alvo pode ser inicialmente decodificado na decodificação e pode ser verificado se a reconstituição do último par de varredura-nível no bloco alvo está completa, numa hora quando os pares de varredura-nível correspondendo ao número NZnum de componentes não-zero foram reconstituídos. Por conse-qüência, um valor específico EOB que é codificado no fim do bloco alvo (um valor que é transmitido após o último componente não-zero), o qual é requerido pelo codificador de comprimento variável VLC de acordo com a terceira modalidade, não é requerido pelo codificador de comprimento variável VLC2. A seguir, as operações do calculador de posição PosClc2 e do transformador de número CodeTrans serão especificamente descritas.
Assumindo que um bloco alvo inclui os componentes quantiza-dos NBIock QS (incluindo tanto os componentes zero como os componentes não-zero), o comprimento de varredura máximo (número máximo de coeficientes zero sucessivamente contínuos) é (NBIock - NZnum) baseado no número NZnum de coeficientes não-zero no bloco alvo. Adicionalmente, o valor máximo de varredura (o número máximo de coeficientes zero sucessivamente contínuos) MaxRun (1) na hora quando a codificação do primeiro par de varredura-nível foi completada é representado pela seguinte fórmula (5), utilizando um valor de varredura FRun do primeiro par de varredura-nível do bloco alvo.
MaxRun (1) = NBIock - NZnum - FRun ...(5) Geralmente, o valor máximo de varredura MaxRun (i) na hora quando a codificação de um i-ésimo par de varredura-nível em um bloco tiver sido completada, é representado pela seguinte fórmula (6).
MaxRun (i) = NBIock - NZnum - (a soma do 1g até o i-ésimo valores de varredura)... (6) Portanto, o calculador de posição PosClc2 emite um valor calculado Pos2 representado pela seguinte fórmula (7), desse modo indicando 'para o transformador de número CodeTrans que o valor de varredura máximo MaxRun (i) é um valor representado pela fórmula (8).
Pos2 = NZnum + (a soma do 19 até o i-ésimo valores de varredura) ...(7) MaxRun (i) = NBIock - Pos2 ...(8) O transformador de número CodeTrans forma a segunda tabela de códigos na qual os números de código ExtCode para os quais nenhum código é designado são feitos corresponder aos pares de varredura-nível possuindo valores de varredura que são maiores do que o valor de varredura máximo MaxRun. Desse modo, a redundância no processo de codificação devido à designação de códigos para os pares de varredura-nível que nunca irão ocorrer é deletada, desse modo aumentando a taxa de compactação.
Quando uma tabela de códigos de comprimento variável; que é composta de uma primeira parte que pode ser gerada por uma operação aritmética (VLC regularmente construída) e uma segunda parte que não pode ser regularmente gerada por uma operação aritmética (VLC de consulta de tabela) é empregada como as primeira e segunda tabelas de códigos quando o processo de codificação de comprimento variável para os componentes quantizados é realizado, a segunda tabela de códigos pode ser formada por se alterar tanto a primeira como a segunda parte na primeira tabela de códigos de acordo com o valor máximo de varredura, ou a segunda tabela de códigos pode ser formada por se alterar somente a primeira parte na primeira tabela de códigos, a qual pode ser gerada por uma aritmética cuja operação é facilmente executada de acordo com o valor máximo de varredura.
Adicionalmente, em vez de alterar a tabela de códigos para uma na qual nenhum código é designado para os pares de varredura-nível possuindo valores de varredura Run que são maiores do que o valor de varredura máximo MaxRun (i) quando a tabela de códigos de comprimento variável é alterada de acordo com o valor máximo de varredura MaxRun (i) na hora em que a codificação de um i-ésimo par de varredura-nível tiver sido completada, um tabela de códigos de comprimento variável pode ser dire- tamente alterada para uma na qual nenhum código é designado para pares de varredura-nível possuindo valores de varredura que são maiores do que o valor de varredura máximo MaxRun (i).
As figuras 24 são diagramas apresentando exemplos de tabelas de código de comprimento variável. Em uma tabela de códigos Ta (figura 24(a)), códigos mais curtos são designados para valores de varredura menores se comparado com uma tabela de códigos Tb (figura 24(b)). Na tabela de códigos Tb (figura 24(b)), códigos adicionalmente mais curtos são designados para valores de varredura menores se comparado com uma tabela de códigos Tc (figura 24(c)).
Em adição, na tabela de códigos Tc (figura 24(c)), códigos mais curtos são designados para valores de nível possuindo valores absolutos menores se comparado com a tabela de códigos Tb (figura 24(b)). Na tabela de códigos Tb, códigos adicionalmente mais curtos são designados para valores de nível possuindo valores absolutos menores se comparado com a tabela de códigos Ta (figura 24(a)).
Portanto, é preferível selecionar a tabela de códigos Ta na figura 24(a) quando o valor máximo de varredura MaxRun é menor, a tabela de códigos Tc na figura 24(c) quando o valor máximo de varredura MaxRun é maior e a tabela de códigos Tb na figura 24(b) quando o valor máximo de varredura MaxRun é um valor intermediário.
De acordo com quinta modalidade, o aparelho de codificação de imagem 105 que codifica os coeficientes quantizados que são obtidos por se quantizar os componentes de freqüência de um sinal de imagem é proporcionado com a unidade de codificação de varredura de comprimento RLE3 que designa códigos de comprimento variável para os componentes quantizados utilizando uma tabela de códigos. Então, a unidade de codificação de varredura de comprimento RLE3 seleciona uma tabela de códigos na qual os pares de varredura-nível que nunca irão ocorrer são deletados baseado na soma do número de coeficientes processados (coeficientes codificados) em um bloco alvo a ser codificado e no número de coeficientes não-zero não-codificados no bloco alvo, em outras palavras, a soma do número de coeficientes não-zero no bloco alvo com o número de valores de varredura já processados no bloco alvo, desse modo aumentando a eficiência da codificação de comprimento variável.
De acordo com esta quinta modalidade, na unidade de codificação de varredura de comprimento que executa a codificação de comprimento variável dos componentes quantizados correspondendo a cada bloco por utilizar pares de varredura-nível, o número NZnum de componentes não-zero em um bloco alvo é codificado. Entretanto, é possível que a codificação do número NZnum de componentes não-zero de um bloco alvo possa ser executada em uma unidade de codificação de varredura de comprimento que execute a codificação de comprimento variável dos valores de varredura e dos valores de nível correspondendo aos componentes quantizados de cada bloco separadamente, como na primeira modalidade. Neste caso, o valor máximo de varredura no bloco alvo pode ser estabelecido em um valor que seja obtido por se subtrair o número NZnum de componentes não-zero do número de todos os componentes no bloco alvo.
Modalidade 6 A figura 22 é um diagrama de blocos para explicar um aparelho de decodificação de imagem de acordo com uma sexta modalidade da presente invenção.
Este aparelho de decodificação de imagem 106 de acordo com a sexta modalidade possui, em vez da unidade de decodificação de varredura de comprimento RLD2 no aparelho de decodificação de imagem 104 de acordo com a quarta modalidade como apresentado na figura 18, uma unidade de decodificação de varredura de comprimento RLD3 que executa um processo de decodificação para dados codificados para reconstituir o número de pares de varredura-nível e o número de componentes não-zero em cada bloco, como na unidade de decodificação de comprimento RLD2. Outros componentes do aparelho de decodificação de imagem 106 de acordo com a sexta modalidade são os mesmos que estes no aparelho de decodificação de imagem 104 de acordo com a quarta modalidade. A figura 23 apresenta uma construção específica da unidade de decodificação de varredura de comprimento RLD3 no aparelho de decodifi-cação de imagem 106.
Esta unidade de decodificação de varredura de comprimento RLD3 da sexta modalidade inclui, em vez do calculador de posição PosClc na unidade de decodificação de varredura de comprimento RLD2 de acordo com a quarta modalidade como apresentado na figura 19, um calculador de posição PosClc2 para calcular a soma Pos2 do número de valores de varredura decodificados em um bloco alvo a ser decodificado e o número NZnum de coeficientes não-zero no bloco alvo.
Adicionalmente, um decodificador de comprimento variável VLD2 da unidade de decodificação de varredura de comprimento RLD3 de acordo com a sexta modalidade é diferente do decodificador de comprimento variável VLD na unidade de decodificação de varredura de comprimento RLD2 de acordo com a quarta modalidade pelo fato de que um processo de decodificação para reconstituir um número de código ExtCode e um processo de decodificação para reconstituir o número de código NZnum de componentes não-zero são realizados. A seguir, as funções e efeitos serão descritos.
As operações da unidade de quantização inversa IQ, da unidade de transformação de freqüência inversa ITrans e da unidade de retirada de blocos DeBlk no aparelho de decodificação de imagem 106 de acordo com a sexta modalidade são as mesmas que estas no aparelho de decodificação de imagem 104 da quarta modalidade. Adicionalmente, as operações de componentes da unidade de decodificação de varredura de comprimento RLD3 de acordo com a sexta modalidade diferentes do decodificador de comprimento variável VLD2, do calculador de posição PosClc2 e do transformador inverso de número ICodeTrans, isto é, a unidade de reordenação inversa IReOdr, o detector de varredura-nível RunLevDec, o conversor inverso de nível ILevConv, o conversor inverso de varredura IRunConv e o digitalizador em ziguezague inverso IScan são idênticas a esta da unidade de decodificação de varredura de comprimento RLD2 de acordo com a quarta modalidade. Portanto, as operações do decodificador de compri- mento variável VLD2, do calculador de posição PosClc2 e do transformador inverso de número ICodeTrans serão daqui para frente principalmente descritas. O decodificador de comprimento variável VLD2 decodifica o fluxo codificado Str3 e emite um número de código ExtCode correspondendo a uma palavra código (cadeia de bits) que compõe o fluxo codificado. O transformador inverso de número ICodeTrans realiza uma operação inversa a esta do transformador de número CodeTrans baseado pelo menos no parâmetro de quantização QP ou no sinal de seleção VLD VldSel e na soma Pos2 do número de coeficientes decodificados e no número de coeficientes não-zero decodificados, para dividir o número de código ExtCode em um número de código PrmCode correspondendo ao par de dígito superior de varredura-nível compreendendo o valor de nível Lev1 e o valor de varredura Run1, um valor de nível Lev2 e um valor de varredura Run2. A unidade de reordenação inversa IReOdr, o detector de varredura-nível RunLevDec, o conversor inverso de varredura IRunConv, o conversor inverso de nível ILevConv e o digitalizador em ziguezague inverso IScan executam as mesmas operações que estas na quarta modalidade.
Aqui, o transformador inverso de número ICodeTrans, a unidade de reordenação inversa IReOdr, o conversor inverso de varredura IRunConv e o conversor inverso de nível ILevConv selecionam uma dentre a primeira e a segunda tabela de códigos baseado pelo menos no parâmetro de quantização QP ou no sinal de seleção VLD VldSel e na soma Pos2 de coeficientes e executam as operações baseadas na tabela de códigos selecionada.
Daqui para frente, a operação do decodificador de comprimento variável VLD2 será especificamente descrita. O decodificador de comprimento variável VLD2 de acordo com a sexta modalidade é diferente do decodificador de comprimento variável VLD e de acordo com a quarta modalidade pelo fato de que ele decodifica não somente o número de código ExtCode correspondendo ao par de varredura-nível mas também o número de código NZnum de componentes não-zero no bloco alvo. Quando o número NZnum de componentes não-zero é obtido pela decodificação, em um momento quando os pares de varredura-nível NZnum foram decodificados, este NZnum par de varredura nível é julgado como sendo o último par de varredura nível. Por conseqüência, o decodifi-cador de comprimento variável VLD2 não requer um valor EOB que é requerido pelo decodificador de comprimento variável VLD e é codificado no final do bloco alvo.
Por exemplo, assumindo que existe NBIock componentes quan-tizados QS no bloco alvo, incluindo os componentes zero e os componentes não-zero, o valor de varredura máximo (o número máximo de coeficientes zero sucessivamente contínuos) é (NBIock - NZnum) baseado no número NZnum de coeficientes não-zero no bloco alvo. Adicionalmente, o valor de varredura máximo (o número máximo de coeficientes zero sucessivamente contínuos) MaxRun (1) na hora em que a decodificação para reconstituir o primeiro par de varredura-nível foi executada é (NBIock - NZnum - FRun) como descrito na quinta modalidade.
Geralmente, o valor de varredura máximo MaxRun (i) em uma hora que a decodificação para reconstituir um i-ésimo par de varredura-nível em um bloco tiver sido executado é obtido como se segue: MaxRun(i) = NBIock - NZnum - (a soma do 12 até o ie valores de varredura) Portanto, o calculador de posição PosClc2 emite a soma Pos2 de coeficientes [=NZnum + {a soma do 12 até o i-ésimo valores de varredura}], desse modo indicando para o transformador de número CodeTrans que o valor de varredura máximo em uma hora que a decodificação para reconstituir um i-ésimo par de varredura-nível tiver sido executado é (NBIock -Pos2). O transformador inverso de número ICodeTrans emprega uma tabela de códigos na qual nenhum código é designado para os números e código correspondendo aos pares de varredura-nível compreendendo valores de varredura que são maiores do que o valor de varredura máximo Run, para obter um número de código ExtCode correspondendo a um código, desse modo decodificando um código que é designado com um número de código de acordo com a designação de código que evita a designação de códigos para pares de varredura-nível que nunca irão ocorrer.
Aqui, quando uma tabela de códigos de comprimento variável que é composta da primeira parte que pode ser gerada por uma operação aritmética (VLC regularmente construída) e pela segunda parte que não pode ser regularmente gerada (VLC de consulta de tabela) é empregada como a primeira e a segunda tabela de códigos no processo de decodifica-ção de comprimento variável, a segunda tabela de códigos pode ser formada por se alterar tanto a primeira como a segunda parte na primeira tabela de códigos de acordo com o valor de varredura máximo, enquanto a segunda tabela de códigos pode ser formada por se alterar somente a primeira parte da primeira tabela de códigos que pode ser gerada por uma aritmética cuja operação é facilmente realizada, de acordo com o valor de varredura máximo.
Adicionalmente, quando uma tabela de códigos de comprimento variável é alterada de acordo com o valor de varredura máximo MaxRun em uma hora em que a decodificação para reconstituir um i-ésimo par de varredura-nível tiver sido completada, a tabela de códigos de comprimento variável pode ser alterada diretamente para a tabela de códigos Ta na figura 24(a), para a tabela de códigos Tb na figura 24(b) ou para a tabela de códigos TC na figura 24(c), em vez de alterar-se a tabela de códigos para uma na qual nenhum código é designado para os pares de varredura código compreendendo valores de varredura que são maiores do que o valor de varredura máximo MaxRun.
Por exemplo, é preferível selecionar a tabela de códigos Ta na figura 24(a) quando o valor de varredura máximo MaxRun é menor, a tabela de códigos Tc na figura 24(c) quando o valor de varredura máximo MaxRun é maior e a tabela de códigos Tb na figura 24(b) quando o valor de varredura máximo MaxRun é uma valor intermediário.
Como descrito acima, de acordo com a sexta modalidade, o aparelho de decodificação de imagem 106 que reconstitui os coeficientes quantizados que são obtidos por se quantizar os componentes de freqüên-cia de um sinal de imagem por um processo de decodificação para dados codificados é proporcionado com a unidade de decodificação de varredura de comprimento RLD3 para obter um coeficiente quantizado correspondendo a um código de comprimento variável por empregar uma tabela de códigos. Então, esta unidade de decodificação de varredura de comprimento RLD3 seleciona uma tabela de códigos não incluindo pares de varredura-nível que nunca irão ocorrer, baseada na soma do número de coeficientes processados (coeficientes decodificados) em um bloco alvo e no número de coeficientes não-zero não-decodificados no bloco alvo. Portanto, um processo de decodificação correspondendo a um processo de codificação de comprimento variável que pode mais eficazmente remover informação redundante incluída nos coeficientes quantizados a serem processados pode ser satisfatoriamente realizado.
De acordo com esta sexta modalidade, na unidade de decodifi-cação de varredura de comprimento que executa a decodificação de comprimento variável para componentes quantizados de cada bloco por utilizar os pares de varredura-nível, o número codificado NZnum de componentes não-zero em um bloco alvo é decodificado. Entretanto, é possível, por exemplo, que em uma unidade de decodificação de varredura de comprimento que sujeita os valores de varredura e os valores de nível correspondendo aos componentes quantizados de cada bloco separadamente ao processo de decodificação de comprimento variável como na segunda modalidade, o número codificado NZnum de componentes não-zero do bloco alvo seja decodificado. Neste caso, pode ser julgado que o NZnum valor de nível é o último valor de nível no bloco alvo, em uma hora em que os NZnum valores de nível tenham sido decodificados.
Em qualquer uma das modalidades mencionadas acima, a tabela de códigos é alterada de acordo com o parâmetro de quantização QP, enquanto a tabela de códigos pode ser alterada de acordo com outro parâmetro. Por exemplo, outro parâmetro pode ser de maneira nova derivado e expressamente trocado para cada bloco.
Nas modalidades mencionadas acima, como um método para sujeitar os coeficientes tais como os componentes quantizados a um processo de codificação (decodificação) de comprimento variável, é apresentado um método no qual uma tabela VLC é empregada e a tabela VLC é alterada baseada pelo menos na informação a cerca de coeficientes processados que foram sujeitos ao processo de codificação (decodificação) ou em um parâmetro relacionando-se com a geração dos coeficientes. Entretanto, o método para a codificação (decodificação) de comprimento variável de coeficientes tais como os componentes quantizados de acordo com a presente invenção não está restrito a um utilizando a tabela VLC. Por exemplo, o método para a codificação de comprimento variável dos componentes quantizados como descritos em qualquer uma dentre as primeira, terceira e quinta modalidades pode ser um método de codificação de comprimento variável no qual a tabela VLC não é empregada e uma tabela de códigos correspondendo à tabela VLC é alterada baseada pelo menos na informação a cerca de coeficientes processados ou no parâmetro relacionando-se com a geração dos coeficientes. Adicionalmente, o método para a decodificação de comprimento variável dos dados codificados correspondendo aos componentes quantizados de acordo com qualquer uma dentre as segunda, quarta e sexta modalidades pode ser um método de decodificação de comprimento variável pelo qual a tabela VLC não é empregada e uma tabela de códigos correspondendo à tabela VLC é alterada baseada pelo menos na informação a cerca de coeficientes processados ou no parâmetro relacionando-se com a geração dos coeficientes. O aparelho de codificação de imagem que realiza um processo de codificação de comprimento variável ou o aparelho de decodificação de imagem que realiza um processo de decodificação de comprimento variável de acordo com qualquer uma das modalidades mencionadas acima é implementado por hardware, enquanto estes aparelhos podem ser implementados por software. Neste caso, quando um programa para executar o processo de codificação ou de decodificação de comprimento variável de acordo com qualquer uma das modalidades mencionadas acima é gravado em um meio de armazenamento de dados tal como um disco flexível, o aparelho de codificação de imagem ou o aparelho de decodificação de imagem de acordo com qualquer uma das modalidades mencionadas acima pode ser facilmente implementado em um sistema de computador independente.
As figuras 25 são diagramas para explicar um sistema de computador para executar o processo de codificação de comprimento variável de acordo com a primeira, terceira ou quinta modalidade ou o processo de decodificação de comprimento variável de acordo com a segunda, quarta ou sexta modalidade. A figura 25(a) apresenta um vista frontal de um disco flexível FD que é um meio que contém um programa empregado no sistema de computador, uma vista em seção transversal do mesmo e um corpo do disco flexível D. A figura 25(b) apresenta um exemplo de um formato físico do corpo do disco flexível D. O disco flexível FD é composto do corpo do disco flexível D e de um invólucro FC que contém o corpo do disco flexível D. Na superfície do corpo do disco D, uma pluralidade de trilhas Tr é formada concentricamente a partir da circunferência externa do disco em direção à circunferência interna. Cada trilha é dividida em 16 setores Se na direção angular. Portanto, no disco flexível FD contendo o programa mencionado acima, os dados do programa para executar o processo de codificação de comprimento variável ou o processo de decodificação de comprimento variável são gravados na áreas de armazenamento designadas (setores) no corpo do disco flexível D. A figura 25(c) apresenta a estrutura para a gravação ou reprodução do programa no/a partir do disco flexível FD. Quando o programa é gravado no disco flexível FD, os dados do programa são escritos no disco flexível FD a partir do sistema de computador Cs através do controlador do disco flexível FDD. Quando o aparelho de codificação de imagem ou o aparelho de decodificação de imagem mencionado acima é construído no sistema de computador Cs pelo programa gravado no disco flexível FD, o programa é lido a partir do disco flexível FD pelo controlador de disco flexível FDD e então carregado no sistema de computador Cs.
Apesar de, na descrição acima, um disco flexível ser empregado como um meio de armazenamento que contém um programa para executar o processo de codificação de comprimento variável ou o processo de deco-dificação de comprimento variável, um disco ótico pode ser empregado como o meio de armazenamento. Além disso, neste caso, o processo de codificação de comprimento variável ou o processo de decodificação de comprimento variável pode ser executado pelo software da mesma maneira que no caso de se utilizar o disco flexível. O meio de armazenamento não está restrito a estes discos e qualquer meio pode ser empregado contanto que ele possa conter o programa, por exemplo, um CD-ROM, um cartão de memória, ou um cassete ROM. Além disso, quando tal meio de armazenamento de dados é empregado, o processo de codificação de comprimento variável ou o processo de decodificação de comprimento variável pode ser executado pelo sistema de computador da mesma maneira que no caso de utilizar o disco flexível.
Aplicações do método de codificação de imagem ou do método de decodificação de imagem de acordo com qualquer uma das modalidades e sistemas mencionados acima utilizando os mesmos serão descritas daqui para frente. A figura 26 é um diagrama de blocos ilustrando toda a construção de um sistema de provisão de conteúdo 1100 que executa os serviços de distribuição de conteúdo.
Uma área de provisão de serviço de comunicação é dividida em regiões (células) de tamanho desejado e as estações de base 1107 até 1110 que são, cada uma, estações de rádio fixas são estabelecidas nas respectivas células.
Neste sistema de provisão de conteúdo 1100, vários dispositivos tal como um computador 1111, um PDA (Assistente Pessoal Digital) 1112, uma câmara 1113, um telefone portátil 1114 e um telefone portátil com uma câmara 1200 estão conectados, por exemplo, com a Internet 1101 através de um provedor de serviço Internet 1102, de uma rede de telefone 1104 e das estações de base 1107 até 1110.
Entretanto, o sistema de provisão de conteúdo 1100 não está restrito a um sistema incluindo todos dos vários dispositivos apresentados na figura 26, mas pode ser um incluindo alguns dos vários dispositivos apresentados na figura 26. Adicionalmente, os respectivos dispositivos podem estar conectados diretamente com a rede de telefone 1104, não através das estações de base 1107 até 1110 como as estações de rádio fixas. A câmara 1113 é um dispositivo que pode captar imagens em movimento de um objeto, como uma câmara de vídeo digital. O telefone portátil pode ser um aparelho de telefone portátil de acordo com qualquer um dentre o sistema PDC (Comunicações Digitais Pessoais), sistema CDMA (Acesso Múltiplo por Divisão de Código), sistema W-CDMA (Acesso Múltiplo por Divisão de Código de Banda Larga) e sistema GSM (Sistema Global para Comunicações Móveis), ou PHS (Sistema Pessoal de Telefone de Mão).
Um servidor de fluxo 1103 está conectado com a câmara 1113 através da estação de base 1109 e da rede de telefone 1104. Neste sistema, a distribuição ao vivo baseada nos dados codificados que são transmitidos por um usuário utilizando a câmara 1113 pode ser executada. O processo de codificação para os dados das imagens captadas pode ser realizado pela câmara 1113 ou pelo servidor que transmite os dados. Os dados de imagem em movimento que são obtidos por captar as imagens em movimento de um objeto por meio da câmara 1116 podem ser transmitidos para o servidor de fluxo 1103 através do computador 1111. A câmara 1116 é um dispositivo que pode captar imagens paradas ou imagens em movimento de um objeto, tal como uma câmara digital. Neste caso, a codificação dos dados de imagem em movimento pode ser executada pela câmara 1116 ou pelo computador 1111. Adicionalmente, o processo de codificação é realizado por um LS11117 incluído no computador 1111 ou na câmara 1116. O software de codificação ou de decodificação de imagem pode ser armazenado em um meio de armazenamento (um CD-ROM, um disco flexível, um disco rígido, ou semelhante) que é um meio de gravação que contém dados legíveis pelo computador 1111 ou semelhante. Os dados de imagem em movimento podem ser transmitidos através do telefone portátil com uma câmara 1200. Os dados de imagem em movimento são dados que foram codificados por um LSI incluído no telefone portátil 1200.
Neste sistema de provisão de conteúdo 1100, o conteúdo correspondendo às imagens captadas pelo usuário por meio da câmara 1113 ou da câmara 1116 (por exemplo, vídeo ao vivo de um concerto musical) é codificado na câmara da mesma maneira que em qualquer uma das modalidades mencionadas acima e transmitido a partir da câmara para o servidor de fluxo 1103. Os dados de conteúdo são sujeitos à distribuição de fluxo a partir do servidor de fluxo 1103 para um cliente requisitante. O cliente pode ser qualquer um dentre o computador 1111, o PDA 1112, a câmara 1113, o telefone portátil 1114 e semelhantes, os quais podem decodificar os dados codificados.
Neste sistema de provisão de conteúdo 1100, os dados codificados podem ser recebidos e reproduzidos no lado do cliente. Quando os dados são recebidos, decodificados e reproduzidos em tempo real no lado do cliente, a difusão privada pode ser realizada. A codificação ou a decodificação nos respectivos dispositivos que constituem este sistema pode ser executada utilizando o aparelho de codificação de imagem ou o aparelho de decodificação de imagem de acordo com qualquer uma da modalidades mencionadas acima.
Um telefone portátil será agora descrito como um exemplo do aparelho de codificação ou de decodificação de imagem. A figura 27 é um diagrama ilustrando um telefone portátil 1200 que emprega o método de codificação de imagem e o método de decodificação de imagem de acordo com qualquer uma das modalidades mencionadas acima.
Este telefone portátil 1200 inclui uma antena 1201 para transmi-tir/receber ondas de rádio para/a partir da estação de base 1110, uma unidade de câmara 1203 que pode captar imagens de vídeo ou paradas de um objeto, tal como uma câmara CCD e uma unidade de exibição 1202 tal como um vídeo de cristal líquido para exibir dados do vídeo captados pela unida- de de câmara 1203 ou o vídeo recebido através da antena 1201. O telefone portátil 1200 adicionalmente inclui um corpo principal 1204 incluindo várias teclas de controle, uma unidade de saída de voz 1208 para emitir vozes tal como um alto-falante, uma unidade de entrada de voz 1205 para entrar com vozes tal como um microfone, um meio de armazenamento 1207 para reter os dados codificados ou os dados decodificados tais como dados de imagens em movimento ou de imagens paradas captadas, ou dados, dados de imagem em movimento ou dados de imagem parada de e-mails recebidos e uma unidade de fenda 1206 que permite que o meio de armazenamento 1207 seja ligado com o telefone portátil 1200. O meio de armazenamento 1207 possui um elemento de memória flash como um tipo de EEPROM (Memória Somente para Leitura Pro-gramável Eletricamente Apagável) que é uma memória não-volátil que pode ser apagada e eletricamente programável contida em um invólucro plástico, como um cartão SD. O telefone portátil 1200 será descrito mais especificamente com referência à Figura 28. O telefone portátil 1200 possui uma unidade de controle principal 1241 que executa o controle geral para as respectivas unidades do corpo principal incluindo a unidade de exibição 1202 e a tecla de controle 1204. O telefone portátil 1200 adicionalmente inclui um circuito de suprimento de força 1240, uma unidade de controle de entrada de operação 1234, uma unidade de codificação de imagem 1242, uma unidade de interface com a câmara 1233, uma unidade de controle LCD (Vídeo de Cristal Líquido) 1232, uma unidade de decodificação de imagem 1239, uma unidade de multiplexação/demultiplexação 1238, uma unidade de grava-ção/reprodução 1237, uma unidade de modulação/demodulação 1236 e uma unidade de processamento de áudio 1235. As respectivas unidades do telefone portátil 1200 estão conectadas umas com as outras via um barra-mento de sincronização 1250. O circuito de suprimento de força 1240 fornece energia a partir de um pacote de batería para as respectivas unidades quando uma tecla de suprimento de força/término de chamada é ligada sob o controle de um usuário, desse modo ativando o telefone portátil digital com uma câmara 1200 a ser ligada em um estado operável.
No telefone portátil 1200, as respectivas unidades operam sob o controle da unidade de controle principal 1241 que é constituída por uma CPU, uma ROM, uma RAM e semelhantes. Para ser mais específico, no telefone portátil 1200, um sinal de áudio que é obtido pela entrada de voz dentro da unidade de entrada de voz 1205 em um modo de comunicação por voz é convertido em dados de áudio digital pela unidade de processamento de áudio 1235. Os dados de áudio digital são sujeitos a um processo de difusão de espectro pelo circuito de modulação/demodulação 1236, adicionalmente sujeitos a um processo de conversão DA e a um processo de transformação de freqüência pelo circuito de transmissão/recepção 1231 e transmitidos através da antena 1201.
Neste aparelho de telefone portátil 1200, um sinal recebido através da antena 1201 no modo de comunicação e voz é amplificado e então sujeito a um processo de transformação de freqüência e a um processo de conversão AD. O sinal recebido é adicionalmente sujeito a um processo de difusão de espectro inverso no circuito de modulação/demodulação 1236, convertido em sinal de áudio analógico pela unidade de processamento de áudio 1235 e este sinal de áudio analógico é emitido através da unidade de saída de voz 1208.
Quando o telefone portátil 1200 transmite um e-mail em um modo de comunicação de dados, os dados do texto do e-mail que são informados pela manipulação da tecla de controle 1204 no corpo principal são transmitidos para a unidade de controle principal 1241 via a unidade de controle de entrada de operação 1234. A unidade de controle principal 1241 controla as respectivas unidades de modo que os dados de texto sejam sujeitos ao processo de difusão de espectro no circuito de modulação/demodulação 1236, então sujeitos ao processo de conversão DA e ao processo de transformação de freqüência no circuito de transmis- são/recepção 1231 e então transmitidos para a estação de base 1110 através da antena 1201.
Quando este telefone portátil 1200 transmite dados de imagem no modo de comunicação de dados, os dados de uma imagem captada pela unidade de câmara 1203 são fornecidos para a unidade de codificação de imagem 1242 via a unidade de interface com a câmara 1233. Quando o telefone portátil 1200 não transmite os dados de imagem, os dados da imagem captados pela unidade de câmara 1203 podem ser exibidos diretamente na unidade de exibição 1202 via a unidade de interface com a câmara 1233 e a unidade de controle LCD 1232. A unidade de codificação de imagem 1242 inclui o aparelho de codificação de imagem de acordo com qualquer uma das modalidades mencionadas acima. Esta unidade de codificação de imagem 1242 compressi-vamente codifica os dados de imagem supridos a partir da unidade de câmara 1203 pelo método de codificação de imagem de acordo com qualquer uma das modalidades acima para converter os mesmos em dados de imagem codificados e emite os dados de imagem codificados obtidos para a unidade de multiplexação/demultiplexação 1238. Ao mesmo tempo, o telefone portátil 1200 transmite vozes que são informadas para a unidade de entrada de voz 1205 enquanto a imagem está sendo captada pela unidade de câmara 1203, como dados de áudio digital, para a unidade de multiplexação/demultiplexação 1238 através da unidade de processamento de áudio 1235. A unidade de multiplexação/demultiplexação 1238 multiplexa os dados de imagem codificados fornecidos a partir da unidade de codificação de imagem 1242 e os dados de áudio fornecidos a partir da unidade de processamento de áudio 1235 por um método predeterminado. Os dados multi-plexados resultantes são sujeitos a um processo de difusão de espectro no circuito de modulação/demodulação 1236, então adicionalmente sujeitos ao processo de conversão DA e ao processo de transformação de freqüência no circuito de transmissão/recepção 1231 e os dados obtidos são transmitidos através da antena 1201.
Quando o telefone portátil 1200 recebe dados de um arquivo de imagem em movimento que está ligado a uma home page ou semelhante no modo de comunicação de dados, um sinal recebido a partir da estação de base 1110 através da antena 1201 é sujeito a um processo de difusão de espectro inverso pelo circuito de modulação/demodulação 1236, e os dados multiplexados resultantes são transmitidos para a unidade de multiplexa-ção/demultiplexação 1238.
Quando os dados multiplexados que são recebidos via a antena 1201 são decodificados, a unidade de multiplexação/demultiplexação 1238 demultiplexa os dados multiplexados para dividir os dados em um fluxo de bits codificado correspondendo aos dados de imagem e em um fluxo de bits codificado correspondendo aos dados de áudio e os dados de imagem codificados são fornecidos para a unidade de decodificação de imagem 1239 e os dados de áudio são fornecidos para unidade de processamento de áudio 1235, via o barramento de sincronização 1250. A unidade de decodificação de imagem 1239 inclui o aparelho de decodificação de imagem de acordo com qualquer uma das modalidades mencionadas acima. A unidade de decodificação de imagem 1239 decodifica o fluxo de bits codificado dos dados de imagem pelo método de decodificação correspondendo ao método de codificação de acordo com qualquer uma das modalidades mencionadas acima, para reproduzir os dados de imagem em movimento e fornecer os dados reproduzidos para a unidade de exibição 1202 através da unidade de controle LCD 1232. Desse modo, por exemplo, os dados de imagem em movimento incluídos no arquivo de imagem em movimento que está ligado com a home page são exibidos. Ao mesmo tempo, a unidade de processamento de áudio 1235 converte os dados de áudio em um sinal de áudio analógico e então fornece o sinal de áudio analógico para a unidade de saída de voz 1208. Desse modo, por exemplo, os dados de áudio incluídos no arquivo de imagem em movimento que está ligado com a home page são reproduzidos.
Aqui, um sistema para o qual o método de codificação de imagem e o método de decodificação de imagem de acordo com qualquer uma das modalidades mencionadas acima é aplicável não está restrito ao sistema de provisão de conteúdo mencionado acima.
Recentemente, a difusão digital utilizando ondas por satélite ou terrestres é falada freqüentemente e o aparelho de codificação de imagem e o aparelho de decodificação de imagem de acordo com as modalidades acima também são aplicáveis a um sistema de difusão digital como apresentado na Figura 29.
Mais especificamente, um fluxo de bits codificado correspondendo à informação de vídeo é transmitido a partir de uma estação de difusão 1409 para um satélite 1410 tal como um satélite de comunicação ou um satélite de difusão, via a comunicação por rádio. Quando o satélite de difusão 1410 recebe o fluxo de bits codificado correspondendo à informação de vídeo, o satélite 1410 emite as ondas de difusão e estas ondas são recebidas por uma antena 1406 doméstica incluindo a instalação de recepção de difusão por satélite. Por exemplo, um aparelho tal como uma televisão (receptor) 1401 ou uma caixa decodificadora (STB) 1407 decodifica o fluxo de bits codificado e reproduz a informação de vídeo.
Adicionalmente, o aparelho de decodificação de imagem de acordo com qualquer uma das modalidades mencionadas acima pode ser também montado em um aparelho de reprodução 1403 que pode ler e decodificar o fluxo de bits codificado gravado em um meio de armazenamento 1402 tal como um CD ou um DVD (meio de gravação).
Neste caso, um sinal de vídeo reproduzido é exibido em um monitor 1404. O aparelho de decodificação de imagem pode estar montado na caixa decodificadora 1407 que está conectada com um cabo para a televisão a cabo 1405 ou com uma antena para difusão por satélite/terrestre 1406, para reproduzir a saída do aparelho de decodificação de imagem a ser exibida em um monitor 1408 da televisão. Neste caso, o aparelho de decodificação de imagem pode ser incorporado não na caixa decodificadora mas na televisão. Um veículo 1412 possuindo uma antena 1411 pode receber um sinal a partir do satélite 1410 ou da estação de base 1107 e reproduzir uma imagem em movimento para exibir a mesma em um dispositivo de vídeo de um sistema de navegação de carro 1413 ou semelhante que está montado no veículo 1412.
Adicionalmente, também é possível que um sinal de imagem possa ser codificado pelo aparelho de codificação de imagem de acordo com qualquer uma das modalidades mencionadas acima e gravado em um meio de gravação.
Um exemplo específico de um dispositivo de gravação é um gravador 1420 tal como um gravador de DVD que grava sinais de imagem em um disco DVD 1421 e um gravador de disco que grava sinais de imagem em um disco rígido. Os sinais de imagem podem ser gravados em um cartão SD 1422. Adicionalmente, quando o gravador 1420 inclui o aparelho de de-codificação de imagem de acordo com qualquer uma das modalidades mencionadas acima, os sinais de imagem que são gravados no disco DVD 1421 ou no cartão SD 1422 podem ser reproduzidos pelo gravador 1420 e exibidos no monitor 1408.
Aqui, a estrutura do sistema de navegação de carro 1413 pode incluir, por exemplo, os componentes do telefone portátil apresentado na figura 28 diferentes da unidade de câmara 1203, da unidade de interface com a câmara 1233 e da unidade de codificação de imagem 1242 e o mesmo se aplica ao computador 1111, ou à televisão (receptor) 1401.
Adicionalmente, como o terminal tal como o telefone portátil 1114, um dentre três tipos de terminais: um terminal do tipo transmissão -recepção possuindo tanto um codificador como um decodificador, um terminal de transmissão possuindo somente um codificador e um terminal de recepção possuindo somente um decodificador, podem ser montados.
Como descrito acima, o método de codificação de imagem ou o método de decodificação de imagem de acordo com qualquer uma das modalidades mencionadas acima é aplicável a qualquer um dos dispositivos ou sistemas mencionados acima, por meio do que os efeitos como descrito nas modalidades acima podem ser obtidos.
Além disso, é desnecessário dizer que as modalidades da presente invenção e as aplicações das mesmas não estão restritas a estas apresentadas nesta descrição.
Disponibilidade 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 eficazmente eliminam a informação redundante incluída nos dados de coeficiente como um alvo de um processo de codificação de comprimento variável, pela seleção de uma tabela de códigos de forma adaptável às características dos coeficientes que compõem os dados de coeficiente ou os estados de um processo de codificação para os coeficientes, desse modo aperfeiçoando muito uma eficiência da codificação de um processo de codificação de comprimento variável para sinais de imagem ou semelhantes. Estes métodos de codificação de comprimento variável e métodos de decodificação de comprimento variável são úteis no processamento de dados para transmitir ou armazenar dados de imagem em movimento.
REIVINDICAÇÃO
Claims (1)
1. Método para decodificar uma imagem em bloco codificada incluindo um valor de varredura (Rstr) codificado e um valor de nível codificado (Lstr), em que o valor de varredura (Rstr) codificado é obtido por codificação de comprimento variável de um valor de varredura (Run) que indica o número de coeficientes quantizados (Q1-Q16) sucessivos, cada um tendo um valor zero, e o valor de nível (Lstr) codificado é obtido por codificação de comprimento variável de um valor de nível (Lev) que indica um valor de um coeficiente quantizado (Q1-Q16) tendo um valor não-zero seguindo aos coeficientes quantizados (Q1-Q16) que tem valores zero, o método caracterizado por compreender as etapas de: decodificar por comprimento variável o valor de varredura (Rstr) codificado a partir de um componente de alta frequência para um componente de baixa frequência utilizando uma de uma pluralidade de tabelas de códigos (R1-R8) para obter um valor de varredura (RORun) decodificado, em que uma da pluralidade de tabela de códigos das tabelas de códigos (R1-R8) é selecionada (Sd3) conforme informação que representa um número total (Cnum) de coeficientes de valor zero não decodificado, o número total (Cnum) de coeficientes de valor zero não decodificado sendo calculado (Sd2) com base em um valor de varredura (RORun) já decodificado; decodificar por comprimento variável o valor de nível (Lstr) codificado a partir de um componente de alta frequência para um componente de baixa frequência para obter um valor de nível (ROLev) decodificado; varrer inversamente o valor de varredura (RORun) decodificado e o valor de nível (ROLev) decodificado em uma disposição bidimensional de coeficientes de transformação (DOS); e quantizar inversamente e transformar inversamente a frequência da disposição bidimensional de coeficientes de transformação (DOS) para obter uma imagem em bloco reconstruída (DBIks).
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001358197 | 2001-11-22 | ||
JP2001-358197 | 2001-11-22 | ||
JP2002-099227 | 2002-04-01 | ||
JP2002099227 | 2002-04-01 | ||
PCT/JP2002/012230 WO2003045065A2 (en) | 2001-11-22 | 2002-11-22 | Variable length coding method and variable length decoding method |
Publications (1)
Publication Number | Publication Date |
---|---|
BRPI0206629B1 true BRPI0206629B1 (pt) | 2017-09-26 |
Family
ID=26624666
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR0206628A BR0206628A (pt) | 2001-11-22 | 2002-11-22 | Método de codificação de comprimento variável e método de decodificação de comprimento variável |
BRPI0206629-7A BRPI0206629B1 (pt) | 2001-11-22 | 2002-11-22 | Method for decoding a coded block image |
BR0206629A BR0206629A (pt) | 2001-11-22 | 2002-11-22 | Método de codificação de comprimento variável e método de decodificação de comprimento variável |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR0206628A BR0206628A (pt) | 2001-11-22 | 2002-11-22 | 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 |
---|---|---|---|
BR0206629A BR0206629A (pt) | 2001-11-22 | 2002-11-22 | Método de codificação de comprimento variável e método de decodificação de comprimento variável |
Country Status (14)
Country | Link |
---|---|
US (16) | US6967600B2 (pt) |
EP (7) | EP3099068B1 (pt) |
JP (7) | JP4158995B1 (pt) |
KR (16) | KR100993443B1 (pt) |
CN (3) | CN1301014C (pt) |
AT (1) | ATE528924T1 (pt) |
AU (5) | AU2002357584B2 (pt) |
BR (3) | BR0206628A (pt) |
CA (2) | CA2450360C (pt) |
DK (3) | DK1413139T3 (pt) |
ES (6) | ES2373944T3 (pt) |
MX (2) | MXPA04000912A (pt) |
PT (3) | PT2268033T (pt) |
WO (2) | WO2003045065A2 (pt) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MXPA04000912A (es) | 2001-11-22 | 2004-04-02 | Matsushita Electric Ind Co Ltd | Metodo de codificacion de longitud variable y metodo de decodificacion de longitud variable. |
JP4368575B2 (ja) * | 2002-04-19 | 2009-11-18 | パナソニック株式会社 | 可変長復号化方法、可変長復号化装置およびプログラム |
ES2378462T3 (es) | 2002-09-04 | 2012-04-12 | Microsoft Corporation | Codificación entrópica por adaptación de codificación entre modalidades de nivel y de longitud/nivel de cadencia |
US7133523B2 (en) * | 2002-12-20 | 2006-11-07 | Pitney Bowes Inc. | Method and system for solving the word problem in braid group cryptosystems |
CN1214649C (zh) * | 2003-09-18 | 2005-08-10 | 中国科学院计算技术研究所 | 用于视频预测残差系数编码的熵编码方法 |
US7522774B2 (en) * | 2004-03-10 | 2009-04-21 | Sindhara Supermedia, Inc. | Methods and apparatuses for compressing digital image data |
US7519229B2 (en) * | 2004-03-30 | 2009-04-14 | Apple, Inc. | Video coding system providing separate coding chains for dynamically selected small-size or full-size playback |
JP2005333609A (ja) * | 2004-04-22 | 2005-12-02 | Sanyo Electric Co Ltd | 符号化制御回路及び符号化回路 |
ATE532270T1 (de) * | 2004-07-14 | 2011-11-15 | Slipstream Data Inc | Verfahren, system und computerprogramm für die optimierung von datenkomprimierung |
CN101032081B (zh) * | 2004-07-14 | 2010-05-26 | 喷流数据有限公司 | 用于数据压缩优化的方法和系统 |
US7570827B2 (en) * | 2004-07-14 | 2009-08-04 | Slipstream Data Inc. | Method, system and computer program product for optimization of data compression with cost function |
JP3990392B2 (ja) * | 2004-08-31 | 2007-10-10 | 松下電器産業株式会社 | 可変長復号化装置、可変長復号化方法および撮像システム |
US7209059B2 (en) * | 2004-12-06 | 2007-04-24 | Matsushita Electric Industrial Co., Ltd. | Decoding method and encoding method |
US8599925B2 (en) | 2005-08-12 | 2013-12-03 | Microsoft Corporation | Efficient coding and decoding of transform blocks |
JP4682102B2 (ja) | 2005-09-02 | 2011-05-11 | キヤノン株式会社 | 画像符号化装置及び画像符号化方法 |
JP4548348B2 (ja) * | 2006-01-18 | 2010-09-22 | カシオ計算機株式会社 | 音声符号化装置及び音声符号化方法 |
JP4749195B2 (ja) | 2006-03-28 | 2011-08-17 | 京セラ株式会社 | 通信制御装置、無線通信装置、通信制御方法及び無線通信方法 |
US8599841B1 (en) | 2006-03-28 | 2013-12-03 | Nvidia Corporation | Multi-format bitstream decoding engine |
US8593469B2 (en) * | 2006-03-29 | 2013-11-26 | Nvidia Corporation | Method and circuit for efficient caching of reference video data |
JP2007329903A (ja) * | 2006-05-11 | 2007-12-20 | Matsushita Electric Ind Co Ltd | 可変長復号化装置、可変長復号化方法および撮像システム |
US7324026B2 (en) * | 2006-05-19 | 2008-01-29 | Nvidia Corporation | Optimization of decoder memory usage for VLC tables |
US7884742B2 (en) * | 2006-06-08 | 2011-02-08 | Nvidia Corporation | System and method for efficient compression of digital data |
EP2067356A1 (en) * | 2006-09-28 | 2009-06-10 | THOMSON Licensing | Flexible redundancy coding |
US7796825B2 (en) * | 2007-02-16 | 2010-09-14 | Cisco Technology, Inc. | Losslessly improving compression of compressed image data |
US7774205B2 (en) * | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
CN101106715B (zh) * | 2007-07-26 | 2012-08-29 | 昊迪移通(北京)技术有限公司 | 一种视频带宽适配方法及装置 |
NO20074463A (no) * | 2007-09-03 | 2009-02-02 | Tandberg Telecom As | Metode for entropikoding av transformasjonskoeffisienter i videokomprimeringssystemer |
US8031959B2 (en) * | 2008-02-22 | 2011-10-04 | Himax Technologies Limited | Compression system for a bit-plane |
US8902972B2 (en) * | 2008-04-11 | 2014-12-02 | Qualcomm Incorporated | Rate-distortion quantization for context-adaptive variable length coding (CAVLC) |
US8179974B2 (en) * | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US20090304073A1 (en) * | 2008-06-06 | 2009-12-10 | Mohammad Usman | Systems and Methods for the Bandwidth Efficient Processing of Data |
JPWO2009157581A1 (ja) * | 2008-06-27 | 2011-12-15 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
KR101501568B1 (ko) * | 2008-07-04 | 2015-03-12 | 에스케이 텔레콤주식회사 | 영상 부호화 및 복호화 장치 및, 방법 |
US7791509B2 (en) * | 2008-07-15 | 2010-09-07 | International Business Machines Corporation | Preprocessing variable-length code (VLC) bitstream information |
US7777653B2 (en) * | 2008-07-15 | 2010-08-17 | International Business Machines Corporation | Decoding variable-length code (VLC) bitstream information |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
TWI482499B (zh) * | 2008-10-03 | 2015-04-21 | Ind Tech Res Inst | 影像訊號處理裝置和方法 |
AU2009324014A1 (en) * | 2008-12-03 | 2011-06-23 | Nokia Corporation | Switching between DCT coefficient coding modes |
US8676775B2 (en) * | 2008-12-12 | 2014-03-18 | At&T Intellectual Property I, L.P. | Support 3-screen user experience in the context of a services marketplace |
JP5490404B2 (ja) * | 2008-12-25 | 2014-05-14 | シャープ株式会社 | 画像復号装置 |
EP2395755A4 (en) | 2009-02-09 | 2015-01-07 | Samsung Electronics Co Ltd | VIDEO PROCESSING AND DEVICE WITH LOW-COMPLEX FREQUENCY CONVERSION AND VIDEO PROCESSING AND DEVICE |
WO2010133763A1 (en) * | 2009-05-19 | 2010-11-25 | Nokia Corporation | Method for variable length coding and apparatus |
JP5492206B2 (ja) | 2009-07-27 | 2014-05-14 | 株式会社東芝 | 画像符号化方法および画像復号方法、ならびに、画像符号化装置および画像復号装置 |
US20110158310A1 (en) * | 2009-12-30 | 2011-06-30 | Nvidia Corporation | Decoding data using lookup tables |
TWI415397B (zh) * | 2010-05-19 | 2013-11-11 | Mstar Semiconductor Inc | 媒體編碼系統、量化係數編碼裝置及量化係數編碼方法 |
JP2012010263A (ja) * | 2010-06-28 | 2012-01-12 | Sony Corp | 符号化装置、撮像装置、符号化伝送システムおよび符号化方法 |
US20120147947A1 (en) * | 2010-12-08 | 2012-06-14 | Qualcomm Incorporated | Codeword adaptation for variable length coding |
US9338449B2 (en) | 2011-03-08 | 2016-05-10 | Qualcomm Incorporated | Harmonized scan order for coding transform coefficients in video coding |
JP2012253420A (ja) * | 2011-05-31 | 2012-12-20 | Toshiba Corp | 可変長符号復号装置、復号システムおよび可変長符号復号方法 |
KR101943425B1 (ko) * | 2011-06-30 | 2019-01-30 | 에스케이 텔레콤주식회사 | 비균등 양자화를 이용한 효과적인 부호화/복호화 방법 및 장치 |
JP5685683B2 (ja) * | 2011-10-28 | 2015-03-18 | 株式会社Gnzo | バイトアラインメント装置及びバイトアラインメント方法 |
US20130114687A1 (en) * | 2011-11-07 | 2013-05-09 | Sharp Laboratories Of America, Inc. | Fixed intra run-level mode for cavlc in hevc |
WO2013077108A1 (ja) * | 2011-11-24 | 2013-05-30 | タツタ電線株式会社 | シールドフィルム、シールドプリント配線板、及び、シールドフィルムの製造方法 |
US9654139B2 (en) | 2012-01-19 | 2017-05-16 | Huawei Technologies Co., Ltd. | High throughput binarization (HTB) method for CABAC in HEVC |
US9860527B2 (en) | 2012-01-19 | 2018-01-02 | Huawei Technologies Co., Ltd. | High throughput residual coding for a transform skipped block for CABAC in HEVC |
US9743116B2 (en) | 2012-01-19 | 2017-08-22 | Huawei Technologies Co., Ltd. | High throughput coding for CABAC in HEVC |
US10616581B2 (en) | 2012-01-19 | 2020-04-07 | Huawei Technologies Co., Ltd. | Modified coding for a transform skipped block for CABAC in HEVC |
US20130188736A1 (en) * | 2012-01-19 | 2013-07-25 | Sharp Laboratories Of America, Inc. | High throughput significance map processing for cabac in hevc |
PL3910947T3 (pl) | 2012-03-26 | 2023-12-27 | JVC Kenwood Corporation | Urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu |
US9386326B2 (en) | 2012-10-05 | 2016-07-05 | Nvidia Corporation | Video decoding error concealment techniques |
JP6213879B2 (ja) * | 2012-12-17 | 2017-10-18 | パナソニックIpマネジメント株式会社 | 情報処理装置および制御方法 |
WO2014110652A1 (en) * | 2013-01-16 | 2014-07-24 | Blackberry Limited | Context determination for entropy coding of run-length encoded transform coefficients |
US9160363B2 (en) * | 2014-02-27 | 2015-10-13 | Samsung Display Co., Ltd. | Run length encoding with non-sequential input |
US10750198B2 (en) | 2014-05-22 | 2020-08-18 | Qualcomm Incorporated | Maximum palette parameters in palette-based video coding |
US10264285B2 (en) * | 2014-05-22 | 2019-04-16 | Qualcomm Incorporated | Coding runs in palette-based video coding |
JP6512928B2 (ja) * | 2015-04-28 | 2019-05-15 | キヤノン株式会社 | 画像符号化装置、画像処理装置、画像符号化方法 |
JP6502739B2 (ja) | 2015-04-28 | 2019-04-17 | キヤノン株式会社 | 画像符号化装置、画像処理装置、画像符号化方法 |
US10171810B2 (en) | 2015-06-22 | 2019-01-01 | Cisco Technology, Inc. | Transform coefficient coding using level-mode and run-mode |
KR101746799B1 (ko) | 2015-11-04 | 2017-06-14 | 주식회사 쏠리드 | 분산 안테나 시스템 |
US10063892B2 (en) * | 2015-12-10 | 2018-08-28 | Adobe Systems Incorporated | Residual entropy compression for cloud-based video applications |
US10264262B2 (en) | 2016-02-29 | 2019-04-16 | Adobe Inc. | Codebook generation for cloud-based video applications |
WO2018173862A1 (ja) * | 2017-03-21 | 2018-09-27 | シャープ株式会社 | 画像復号装置及び画像符号化装置 |
JP6787231B2 (ja) * | 2017-04-04 | 2020-11-18 | 富士通株式会社 | データ処理プログラム、データ処理方法およびデータ処理装置 |
CN106941610B (zh) * | 2017-04-25 | 2019-12-24 | 西安电子科技大学 | 基于改进方块编码的二值roi掩模编码方法 |
US11086843B2 (en) | 2017-10-19 | 2021-08-10 | Adobe Inc. | Embedding codebooks for resource optimization |
US10942914B2 (en) | 2017-10-19 | 2021-03-09 | Adobe Inc. | Latency optimization for digital asset compression |
US11120363B2 (en) | 2017-10-19 | 2021-09-14 | Adobe Inc. | Latency mitigation for encoding data |
US11044495B1 (en) | 2018-02-13 | 2021-06-22 | Cyborg Inc. | Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation |
US10491240B1 (en) * | 2019-01-17 | 2019-11-26 | Cyborg Inc. | Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation |
KR101997599B1 (ko) * | 2019-01-22 | 2019-07-08 | 에스케이 텔레콤주식회사 | 비균등 양자화를 이용한 효과적인 부호화/복호화 방법 및 장치 |
CN110545437B (zh) * | 2019-08-30 | 2021-07-20 | 北京大学 | 系数编码、解码方法、电子设备及介质 |
JP2021177628A (ja) * | 2020-05-07 | 2021-11-11 | ブラックマジック デザイン ピーティーワイ リミテッドBlackmagic Design Pty Ltd | 変換係数処理方法 |
CN117097906B (zh) * | 2023-10-20 | 2023-12-26 | 河北天英软件科技有限公司 | 一种区域医疗资源高效利用的方法及系统 |
Family Cites Families (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
LU42775A1 (pt) * | 1962-11-28 | 1964-05-28 | ||
JPH03285460A (ja) | 1990-04-02 | 1991-12-16 | Fuji Facom Corp | 画像データ圧縮符号化方式 |
DE69132076T2 (de) | 1990-12-28 | 2000-08-24 | Canon K.K., Tokio/Tokyo | Vorrichtung zur Bildverarbeitung |
US5230938A (en) * | 1991-03-11 | 1993-07-27 | Moore Business Forms, Inc. | Protected fold and seal label for demand printing |
US5838834A (en) * | 1991-11-07 | 1998-11-17 | Canon Kabushiki Kaisha | Image processing apparatus and method for quantizing image data and quantization errors using single quantizing unit and pluralities of quantization tables |
US5233348A (en) * | 1992-03-26 | 1993-08-03 | General Instrument Corporation | Variable length code word decoder for use in digital communication systems |
KR0162197B1 (ko) * | 1992-05-30 | 1998-12-15 | 강진구 | 영상데이타의 가변장부호와/복호화방법 및 장치 |
GB2268667B (en) * | 1992-06-24 | 1995-11-08 | Sony Broadcast & Communication | Serial data decoding |
JPH0621830A (ja) * | 1992-06-30 | 1994-01-28 | Sony Corp | 2次元ハフマン符号化方法 |
US5821885A (en) * | 1994-07-29 | 1998-10-13 | Discovision Associates | Video decompression |
US5325092A (en) * | 1992-07-07 | 1994-06-28 | Ricoh Company, Ltd. | Huffman decoder architecture for high speed operation and reduced memory |
KR950010913B1 (ko) | 1992-07-23 | 1995-09-25 | 삼성전자주식회사 | 가변장부호화 및 복호화시스템 |
KR940017747A (ko) * | 1992-12-29 | 1994-07-27 | 에프. 제이. 스미트 | 영상 처리 디바이스 |
US5400075A (en) * | 1993-01-13 | 1995-03-21 | Thomson Consumer Electronics, Inc. | Adaptive variable length encoder/decoder |
JPH06237184A (ja) * | 1993-02-10 | 1994-08-23 | Fujitsu Ltd | 可変長符号化回路 |
US5381145A (en) * | 1993-02-10 | 1995-01-10 | Ricoh Corporation | Method and apparatus for parallel decoding and encoding of data |
US5583500A (en) * | 1993-02-10 | 1996-12-10 | Ricoh Corporation | Method and apparatus for parallel encoding and decoding of data |
US5717394A (en) * | 1993-02-10 | 1998-02-10 | Ricoh Company Ltd. | Method and apparatus for encoding and decoding data |
US5861921A (en) * | 1993-03-29 | 1999-01-19 | Canon Kabushiki Kaisha | Controlling quantization parameters based on code amount |
JPH0766982A (ja) | 1993-08-26 | 1995-03-10 | Canon Inc | 符号量制御装置 |
JP3382292B2 (ja) | 1993-04-22 | 2003-03-04 | キヤノン株式会社 | 画像符号化装置及びその方法 |
JPH079088A (ja) | 1993-06-28 | 1995-01-13 | Sumitomo Heavy Ind Ltd | 小ロット生産用連続鋳造設備による鋳片の製造法 |
JP3210996B2 (ja) * | 1993-07-30 | 2001-09-25 | 三菱電機株式会社 | 高能率符号化装置及び高能率復号化装置 |
JPH0766882A (ja) | 1993-08-23 | 1995-03-10 | Matsushita Electric Works Ltd | インターホンシステム |
JPH07143488A (ja) * | 1993-11-19 | 1995-06-02 | Fujitsu Ltd | 画像データ復号化方法および装置 |
US5479527A (en) * | 1993-12-08 | 1995-12-26 | Industrial Technology Research Inst. | Variable length coding system |
KR0155784B1 (ko) * | 1993-12-16 | 1998-12-15 | 김광호 | 영상데이타의 적응형 가변장 부호화/복호화방법 |
KR970009408B1 (ko) * | 1994-01-18 | 1997-06-13 | 대우전자 주식회사 | 인터/인트라 테이블 선택 회로 |
KR0148151B1 (ko) * | 1994-05-11 | 1998-09-15 | 김광호 | 개선된 차분동부호테이블을 이용한 차분동벡터값의 가변장부호화방법 및 그 장치 |
JP3220598B2 (ja) * | 1994-08-31 | 2001-10-22 | 三菱電機株式会社 | 可変長符号テーブルおよび可変長符号化装置 |
KR0147948B1 (ko) * | 1994-09-15 | 1998-09-15 | 배순훈 | 영상 부호화장치 |
US6141446A (en) * | 1994-09-21 | 2000-10-31 | Ricoh Company, Ltd. | Compression and decompression system with reversible wavelets and lossy reconstruction |
US6549666B1 (en) * | 1994-09-21 | 2003-04-15 | Ricoh Company, Ltd | Reversible embedded wavelet system implementation |
CA2156889C (en) | 1994-09-30 | 1999-11-02 | Edward L. Schwartz | Method and apparatus for encoding and decoding data |
JP3144456B2 (ja) | 1995-01-20 | 2001-03-12 | 三菱自動車工業株式会社 | 助手席エアバッグモジュールのリアクションカン構造 |
JP3285460B2 (ja) | 1995-01-31 | 2002-05-27 | 株式会社ケット科学研究所 | 近赤外成分分析器の光源装置 |
KR100209410B1 (ko) * | 1995-03-28 | 1999-07-15 | 전주범 | 영상 신호 부호화 장치 |
US5740283A (en) * | 1995-07-06 | 1998-04-14 | Rubin, Bednarek & Associates, Inc. | Digital video compression utilizing mixed vector and scalar outputs |
US5812788A (en) * | 1995-07-21 | 1998-09-22 | Intel Corporation | Encoding/decoding video signals using quantization tables based on explicitly encoded base and scale matrices |
JP3883618B2 (ja) * | 1995-10-26 | 2007-02-21 | 株式会社ハイニックスセミコンダクター | データ圧縮方法 |
US5835145A (en) * | 1996-01-19 | 1998-11-10 | Lsi Logic Corporation | Conversion system using programmable tables for compressing transform coefficients |
JP3141149B2 (ja) | 1996-04-26 | 2001-03-05 | 株式会社日立製作所 | 画像符号化装置 |
CN1183769C (zh) * | 1996-05-28 | 2005-01-05 | 松下电器产业株式会社 | 图像预测编码/解码装置和方法以及记录媒体 |
US5825312A (en) * | 1996-11-25 | 1998-10-20 | Xerox Corporation | DX JPEG Huffman decoder |
US5995148A (en) * | 1997-02-14 | 1999-11-30 | At&T Corp | Video coder having scalar dependent variable length coder |
JPH10271017A (ja) | 1997-03-27 | 1998-10-09 | Kawasaki Steel Corp | 符号量制御装置 |
JP3189876B2 (ja) * | 1997-06-09 | 2001-07-16 | 日本電気株式会社 | 可変長符号復号化回路 |
US6151075A (en) * | 1997-06-11 | 2000-11-21 | Lg Electronics Inc. | Device and method for converting frame rate |
FI107496B (fi) * | 1997-07-18 | 2001-08-15 | Nokia Mobile Phones Ltd | Kuvan kompressointi |
US6016111A (en) * | 1997-07-31 | 2000-01-18 | Samsung Electronics Co., Ltd. | Digital data coding/decoding method and apparatus |
KR19990036476A (ko) * | 1998-04-28 | 1999-05-25 | 백정한 | 가변양자의 부호화를 이용한 화상압축방법및 그 장치 |
US6477280B1 (en) * | 1999-03-26 | 2002-11-05 | Microsoft Corporation | Lossless adaptive encoding of finite alphabet data |
US6241778B1 (en) * | 1999-06-18 | 2001-06-05 | Lucent Technologies Inc. | Methods and apparatus for implementing run-length limited and maximum transition run codes |
JP2001025053A (ja) * | 1999-07-09 | 2001-01-26 | Mitsubishi Electric Corp | 携帯電話のメモリシステム |
AUPQ668500A0 (en) * | 2000-04-04 | 2000-05-04 | Canon Kabushiki Kaisha | Accessing items of information |
AU769072B2 (en) | 2000-04-04 | 2004-01-15 | Canon Kabushiki Kaisha | Accessing items of information |
JP4109404B2 (ja) * | 2000-04-26 | 2008-07-02 | 松下電器産業株式会社 | 符号化装置および符号化方法 |
US6731814B2 (en) * | 2000-05-01 | 2004-05-04 | Xerox Corporation | Method for compressing digital documents with control of image quality and compression rate |
US6912070B1 (en) * | 2000-08-08 | 2005-06-28 | Qualcomm, Inc. | Sub-optimal variable length coding |
US6661355B2 (en) * | 2000-12-27 | 2003-12-09 | Apple Computer, Inc. | Methods and apparatus for constant-weight encoding & decoding |
US6757429B2 (en) * | 2001-02-21 | 2004-06-29 | Boly Media Communications Inc. | Method of compressing digital images |
US20030012287A1 (en) * | 2001-03-05 | 2003-01-16 | Ioannis Katsavounidis | Systems and methods for decoding of systematic forward error correction (FEC) codes of selected data in a video bitstream |
US6763070B1 (en) | 2001-05-29 | 2004-07-13 | Cisco Technology, Inc. | Methods and apparatus for selecting a cut-off index |
US7046852B2 (en) * | 2001-09-13 | 2006-05-16 | Sharp Laboratories Of America, Inc. | Fast image decompression via look up table |
US6856701B2 (en) * | 2001-09-14 | 2005-02-15 | Nokia Corporation | Method and system for context-based adaptive binary arithmetic coding |
MXPA04000912A (es) * | 2001-11-22 | 2004-04-02 | Matsushita Electric Ind Co Ltd | Metodo de codificacion de longitud variable y metodo de decodificacion de longitud variable. |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
US6690307B2 (en) * | 2002-01-22 | 2004-02-10 | Nokia Corporation | Adaptive variable length coding of digital video |
US6823015B2 (en) * | 2002-01-23 | 2004-11-23 | International Business Machines Corporation | Macroblock coding using luminance date in analyzing temporal redundancy of picture, biased by chrominance data |
US7206448B2 (en) | 2002-02-28 | 2007-04-17 | At&T Corp. | System and method for using pattern vectors for video and image coding and decoding |
US6717394B2 (en) * | 2002-03-21 | 2004-04-06 | Eaton Corporation | Method and apparatus for determining frequency of an alternating current signal of an electric power system |
US7099387B2 (en) * | 2002-03-22 | 2006-08-29 | Realnetorks, Inc. | Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses |
JP4130780B2 (ja) * | 2002-04-15 | 2008-08-06 | 松下電器産業株式会社 | 画像符号化方法および画像復号化方法 |
EP1478190B1 (en) * | 2002-04-26 | 2013-01-02 | NTT DoCoMo, Inc. | Image encoding device, image encoding method, and image encoding program |
PT1467491E (pt) * | 2002-05-02 | 2007-03-30 | Fraunhofer Ges Forschung | Codificação aritmética de coeficientes de transformação |
US6731841B1 (en) * | 2002-05-24 | 2004-05-04 | Alliance Fiber Optic Products, Inc. | Folded waveguide optical devices |
JP3707456B2 (ja) * | 2002-08-12 | 2005-10-19 | ヤマハ株式会社 | 画像データ圧縮方法および画像データ伸張装置並びに伸張プログラム |
JP3679083B2 (ja) * | 2002-10-08 | 2005-08-03 | 株式会社エヌ・ティ・ティ・ドコモ | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム |
US6646578B1 (en) * | 2002-11-22 | 2003-11-11 | Ub Video Inc. | Context adaptive variable length decoding system and method |
EP1494413A1 (en) * | 2003-07-02 | 2005-01-05 | CoreOptics, Inc., c/o The Corporation Trust Center | Channel estimation and sequence estimation for the reception of optical signal |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
JP4484630B2 (ja) * | 2004-01-29 | 2010-06-16 | パナソニック株式会社 | 可変長復号化装置および可変長復号化方法および再生システム |
US7450775B2 (en) * | 2004-03-12 | 2008-11-11 | Kabushiki Kaisha Toshiba | Image processing apparatus for efficient storage of variable block length data |
US7132963B2 (en) * | 2004-09-13 | 2006-11-07 | Ati Technologies Inc. | Methods and apparatus for processing variable length coded data |
-
2002
- 2002-11-22 MX MXPA04000912A patent/MXPA04000912A/es active IP Right Grant
- 2002-11-22 ES ES02803564T patent/ES2373944T3/es not_active Expired - Lifetime
- 2002-11-22 AT AT02803564T patent/ATE528924T1/de active
- 2002-11-22 KR KR1020097017951A patent/KR100993443B1/ko active IP Right Grant
- 2002-11-22 EP EP16175248.0A patent/EP3099068B1/en not_active Expired - Lifetime
- 2002-11-22 KR KR1020037015866A patent/KR100947399B1/ko active IP Right Grant
- 2002-11-22 DK DK02803564T patent/DK1413139T3/da active
- 2002-11-22 EP EP16175243.1A patent/EP3099066B1/en not_active Expired - Lifetime
- 2002-11-22 CN CNB028132823A patent/CN1301014C/zh not_active Expired - Lifetime
- 2002-11-22 WO PCT/JP2002/012230 patent/WO2003045065A2/en active Application Filing
- 2002-11-22 KR KR1020107007955A patent/KR101030908B1/ko active IP Right Grant
- 2002-11-22 KR KR1020107007956A patent/KR101030903B1/ko active IP Right Grant
- 2002-11-22 KR KR1020107007957A patent/KR101030850B1/ko active IP Right Grant
- 2002-11-22 PT PT101806982T patent/PT2268033T/pt unknown
- 2002-11-22 WO PCT/JP2002/012232 patent/WO2003044964A1/ja not_active Application Discontinuation
- 2002-11-22 KR KR10-2004-7007783A patent/KR20040054794A/ko not_active Application Discontinuation
- 2002-11-22 AU AU2002357584A patent/AU2002357584B2/en not_active Expired
- 2002-11-22 KR KR1020087009133A patent/KR100921031B1/ko active IP Right Grant
- 2002-11-22 CN CN2006101436850A patent/CN101001385B/zh not_active Expired - Lifetime
- 2002-11-22 ES ES16175243T patent/ES2752804T3/es not_active Expired - Lifetime
- 2002-11-22 EP EP10180698.2A patent/EP2268033B1/en not_active Expired - Lifetime
- 2002-11-22 KR KR1020087009127A patent/KR100913633B1/ko active IP Right Grant
- 2002-11-22 DK DK10180698.2T patent/DK2268033T3/en active
- 2002-11-22 CA CA002450360A patent/CA2450360C/en not_active Expired - Lifetime
- 2002-11-22 EP EP16175245.6A patent/EP3099067B1/en not_active Expired - Lifetime
- 2002-11-22 US US10/480,038 patent/US6967600B2/en not_active Expired - Lifetime
- 2002-11-22 BR BR0206628A patent/BR0206628A/pt not_active Application Discontinuation
- 2002-11-22 KR KR1020087009136A patent/KR100921032B1/ko active IP Right Grant
- 2002-11-22 MX MXPA04004770A patent/MXPA04004770A/es unknown
- 2002-11-22 PT PT02803564T patent/PT1413139E/pt unknown
- 2002-11-22 KR KR1020097023346A patent/KR100992336B1/ko active IP Right Grant
- 2002-11-22 CN CNA028224728A patent/CN1586042A/zh not_active Withdrawn
- 2002-11-22 EP EP20020790698 patent/EP1453208A1/en not_active Withdrawn
- 2002-11-22 EP EP20020803564 patent/EP1413139B1/en not_active Expired - Lifetime
- 2002-11-22 KR KR1020107007960A patent/KR101022091B1/ko active IP Right Grant
- 2002-11-22 ES ES16175245T patent/ES2741562T3/es not_active Expired - Lifetime
- 2002-11-22 US US10/494,753 patent/US20050015248A1/en not_active Abandoned
- 2002-11-22 PT PT101807147T patent/PT2268034T/pt unknown
- 2002-11-22 KR KR1020097023335A patent/KR100992246B1/ko active IP Right Grant
- 2002-11-22 AU AU2002366142A patent/AU2002366142A1/en not_active Withdrawn
- 2002-11-22 ES ES16175248T patent/ES2741563T3/es not_active Expired - Lifetime
- 2002-11-22 KR KR1020087009140A patent/KR100921033B1/ko active IP Right Grant
- 2002-11-22 EP EP10180714.7A patent/EP2268034B1/en not_active Expired - Lifetime
- 2002-11-22 ES ES10180714.7T patent/ES2599624T3/es not_active Expired - Lifetime
- 2002-11-22 BR BRPI0206629-7A patent/BRPI0206629B1/pt unknown
- 2002-11-22 CA CA 2467266 patent/CA2467266A1/en not_active Withdrawn
- 2002-11-22 ES ES10180698.2T patent/ES2587022T3/es not_active Expired - Lifetime
- 2002-11-22 BR BR0206629A patent/BR0206629A/pt active IP Right Grant
- 2002-11-22 KR KR1020087009131A patent/KR100921034B1/ko active IP Right Grant
- 2002-11-22 DK DK10180714.7T patent/DK2268034T3/en active
- 2002-11-22 KR KR1020087009132A patent/KR100921030B1/ko active IP Right Grant
- 2002-11-22 KR KR1020107007959A patent/KR101030862B1/ko active IP Right Grant
-
2005
- 2005-04-21 US US11/110,922 patent/US7161508B2/en not_active Expired - Lifetime
- 2005-04-21 US US11/110,921 patent/US6992605B2/en not_active Expired - Lifetime
- 2005-04-21 US US11/110,916 patent/US6954157B2/en not_active Expired - Lifetime
- 2005-11-08 US US11/268,667 patent/US7109898B2/en not_active Expired - Lifetime
-
2006
- 2006-07-31 US US11/495,600 patent/US7541948B2/en not_active Expired - Lifetime
- 2006-07-31 US US11/495,601 patent/US7411526B2/en not_active Expired - Lifetime
- 2006-07-31 US US11/495,598 patent/US7283071B2/en not_active Expired - Lifetime
- 2006-10-06 US US11/543,860 patent/US7339506B2/en not_active Expired - Lifetime
- 2006-10-06 US US11/543,854 patent/US7312730B2/en not_active Expired - Lifetime
- 2006-10-06 US US11/543,857 patent/US7312731B2/en not_active Expired - Lifetime
-
2007
- 2007-05-31 AU AU2007202509A patent/AU2007202509B2/en not_active Expired
- 2007-10-31 US US11/980,403 patent/US7714752B2/en not_active Expired - Lifetime
-
2008
- 2008-04-21 JP JP2008109896A patent/JP4158995B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109899A patent/JP4158998B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109900A patent/JP4158999B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109895A patent/JP4158994B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109898A patent/JP4158997B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109894A patent/JP4158993B1/ja not_active Expired - Lifetime
- 2008-04-21 JP JP2008109897A patent/JP4158996B2/ja not_active Expired - Lifetime
-
2010
- 2010-02-19 US US12/708,884 patent/US7956774B2/en not_active Expired - Fee Related
- 2010-03-10 AU AU2010200907A patent/AU2010200907B2/en not_active Expired
- 2010-03-10 AU AU2010200906A patent/AU2010200906B2/en not_active Expired
-
2011
- 2011-04-21 US US13/091,611 patent/US8604947B2/en not_active Expired - Lifetime
-
2013
- 2013-11-04 US US14/070,857 patent/US8941514B2/en not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BRPI0206629B1 (pt) | Method for decoding a coded block image | |
CA2608610C (en) | Variable length coding method and variable length decoding method | |
AU2007202520B2 (en) | Variable length coding method and variable length decoding method |