PT2765707E - Método e sistema de codificação e descodificação de comprimento variável - Google Patents

Método e sistema de codificação e descodificação de comprimento variável Download PDF

Info

Publication number
PT2765707E
PT2765707E PT141629915T PT03162991T PT2765707E PT 2765707 E PT2765707 E PT 2765707E PT 141629915 T PT141629915 T PT 141629915T PT 03162991 T PT03162991 T PT 03162991T PT 2765707 E PT2765707 E PT 2765707E
Authority
PT
Portugal
Prior art keywords
block
quot
coefficients
coefficient
variable length
Prior art date
Application number
PT141629915T
Other languages
English (en)
Inventor
Satoshi Kondo
Shinya Kadono
Makoto Hagai
Kiyofumi Abe
Original Assignee
Godo Kaisha Ip Bridge 1
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=29255105&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=PT2765707(E) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Godo Kaisha Ip Bridge 1 filed Critical Godo Kaisha Ip Bridge 1
Publication of PT2765707E publication Critical patent/PT2765707E/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/18Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Automatic Focus Adjustment (AREA)
  • Studio Devices (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Vehicle Body Suspensions (AREA)

Description

DESCRIÇÃO
MÉTODO E SISTEMA DE CODIFICAÇÃO E DESCODIFICAÇÃO CAMPO TÉCNICO A presente invenção refere-se a um método de codificação de comprimento variável para codificar coeficientes em cada bloco que são obtidos realizando transformação de frequência em dados de imagem de uma imagem em movimento por bloco que tem uma dimensão predeterminada, bem como um método de descodificação de comprimento variável, e semelhantes.
ANTECEDENTES DA TÉCNICA
Na codificação de um imagem em movimento, a compressão do volume de informação é habitualmente realizada através da utilização de redundâncias tanto nas direções espacial como temporal que o imagem em movimento tem.
Habitualmente, uma transformação para um domínio de frequência é utilizada como um método de utilização da redundância espacial enquanto que a codificação de predição inter imagens é utilizada como um método de utilização da redundância temporal.
Num método de codificação de imagem em movimento que se encontra presentemente em processo de padronização, a quantificação é realizada em cada bloco com dimensão de 4x4 pixéis para assim gerar coeficientes após a transformação de frequência ter sido realizada em tal bloco, com vista a melhorar a eficiência da codificação de um método de codificação convencional de imagem em movimento MPEG-4. Então, o varrimento é realizado começando em componentes de corrente contínua para componentes de alta frequência, e combinações de um valor R (Passagem, a ser daqui para a frente simplesmente referido como "R") indicando o número de coeficientes nulos consecutivos e um valor de coeficiente L (Nível, a ser daqui para a frente simplesmente referido como "L") subsequente a ela são gerados para que seja feita uma combinação de sequência (R, L) . Após transformar este (R, L) num número de código utilizando uma tabela de código predeterminada, a codificação é realizada através da transformação do número de código num código VLC, utilizando ainda uma única tabela de código de Comprimento Variável (VLC). Na tabela de código, é habitualmente atribuído um número de código mais baixo à medida que a probabilidade de uma ocorrência se torna mais elevada. Por exemplo, é atribuído um número de código baixo a uma combinação em que tanto o R como o L indicam valores baixos uma vez que a probabilidade da sua ocorrência é elevada. Em certas tabelas de codificação VLC, um código VLC com um comprimento de código curto é atribuído a um número de código baixo (ver a referência à ISO/IEC 14496-2: ""Information technology-Coding of audiovisual objects-Part2: Visual" 7.4.1, pp. 119-120, 1999.12).
No entanto, a utilização do método existente produz uma redução na eficiência de codificação uma vez que o comprimento de código aumenta à medida que o número de coeficientes nulos consecutivos R e um valor de coeficiente L aumentam. Habitualmente, a redução na eficiência de codificação é óbvia quando é codificado um valor da componente de baixa frequência uma vez que o valor de coeficiente L como uma componente de baixa frequência é elevado.
Nomeadamente, em resultado da atribuição de uma única tabela VLC de acordo com a probabilidade de ocorrência e apenas um código de comprimento variável único de acordo com um par de R e L, o valor de coeficiente L indicando que um valor elevado é transformado num código de comprimento variável tendo um comprimento de código muito longo. Mesmo quando se codifica o L do R separadamente (codificação unidimensional de L) utilizando uma única tabela VLC, ocorre o mesmo problema que no caso da codificação de R e L como um par. 0 documento EP0827345 revela um sistema de codificação de imagem em que se bloqueia uma sinal de imagem de entrada, os blocos resultantes são transformados em dois ou mais tipos de coeficientes transformados, e os coeficientes transformados são varridos de acordo com uma pluralidade de sequências de varrimento. Os coeficientes assim varridos são ainda codificados de acordo com uma pluralidade de tabelas de codificação e fora de combinações da pluralidade de sequências de varrimento com a pluralidade de tabelas de codificação, uma combinação de uma sequência de varrimento com uma tabela de código que fornece a maior eficiência de codificação é selecionada por sequência de varrimento e meios de seleção de tabela de codificação, de acordo com a distribuição de nível dos coeficientes transformados. 0 documento EP0616471 revela codificação de comprimento variável utilizando uma pluralidade de tabelas onde os para cada pares de nível de passagem possíveis são gerados de acordo com as suas frequências de ocorrência. Quando se devem codificar dados de coeficiente, uma tabela correspondente à dimensão dos dados de coeficiente fornecidos antes desses dados de coeficiente é selecionada e a codificação é feita com base na tabela selecionada. 0 documento JP8214310 revela codificação de comprimento variável comutando entre 3 tabelas de acordo com a correlação entre coeficientes consequentes. 0 documento EP0267578 revela um sistema de codificação realizando codificação de comprimento variável utilizando uma pluralidade de conjuntos de códigos onde se selecionam diferentes conjuntos de códigos para componentes de alta e baixa frequência.
REVELAÇÃO DA INVENÇÃO A presente invenção está concebida tendo em consideração os problemas acima descritos, e visa fornecer o método de codificação de comprimento variável e o método de descodificação de comprimento variável que podem melhorar a eficiência de codificação quando o valor de coeficiente L é codificado.
Para alcançar o objetivo acima, um método de codificação e descodificação de comprimento variável de acordo com a presente invenção como definido nas reivindicações.
Deste modo, é possível melhorar a eficiência de codificação uma vez que a codificação de comprimento variável do comprimento de código baseada no coeficiente pode ser adaptada a cada tabela. Por outras palavras, é possível encurtar um comprimento de código notavelmente através da comutação entre as tabelas dependendo dos coeficientes para que um coeficiente possa ser codificado num código de comprimento variável cujo comprimento de código seja mais curto numa tabela que na outra tabela quando o coeficiente é baixo e um coeficiente possa ser codificado num código de comprimento variável cujo comprimento de código seja mais curto numa tabela que na outra quando o coeficiente é elevado.
Aqui, uma direção de comutação entre a pluralidade de tabelas pode ser unidirecional. Deste modo, a comutação frequente das tabelas é impedida e em consequência disso o número de vezes de comutação entre as tabelas diminui. É por conseguinte possível melhorar a eficiência de codificação. Por exemplo, uma vez que a área de trabalho na memória tem um espaço limitado, apenas é armazenada uma tabela para ser utilizada. Neste caso, leva tempo para começar a codificar o seguinte coeficiente uma vez que leva tempo a ler a seguinte tabela da ROM e a expandi-la na área de trabalho de cada vez que a tabela é comutada. Esta forma unidirecional de comutar entre as tabelas é eficaz na limitação do número de vezes de comutação entre as tabelas e na redução do tempo total necessário para codificar o seguinte coeficiente. A codificação e a descodificação pode ser realizada nos ditos cada bloco através da comutação entre a pluralidade de tabelas e os coeficientes podem ser coeficientes não nulos que são unidimensionais. É preferível que a codificação e a descodificação sejam codificação não aritmética. Deste modo, quando é determinada uma tabela a ser utilizada para codificação, a codificação de coeficientes em códigos de comprimento variável pode ser realizada consultando a tabela. É também preferível que cada uma das tabelas tenha um ritmo de mudança diferente no comprimento de código para coeficientes para que um comprimento de código para um coeficiente mais baixo se torne mais longo por ordem crescente de números atribuídos respetivamente a cada uma das tabelas e um comprimento de código para um coeficiente maior não se torne mais longo na mesma ordem crescente dos ditos números. Do mesmo modo, é também preferível que cada uma das tabelas seja construída para que uma taxa de crescimento no comprimento de código correspondente a um aumento nos coeficientes se torne menor por ordem crescente de números atribuídos a cada uma das tabelas. Deste modo, a melhoria da eficiência de codificação pode ser seguramente realizada uma vez que pode ser atribuída uma gama na qual um comprimento de código se torna mais curto em cada tabela.
Do mesmo modo, é preferível que cada uma das tabelas seja comutada com base num valor de limiar predeterminado para um valor absoluto do coeficiente. Deste modo, é fácil determinar um momento para a comutação entre as tabelas e por esse meio a eficiência de codificação pode ser alcançada. É também preferível que na etapa de varrimento de coeficiente, os coeficientes sejam varridos começando em componentes de alta frequência para as componentes de baixa frequência. Uma vez que existe uma grande tendência para que o valor absoluto do coeficiente gradualmente se torne maior em torno de "1", é fácil por conseguinte determinar uma tabela para codificar o primeiro coeficiente no bloco, uma estrutura de cada tabela e um valor de limiar.
Além disso, é também preferível que uma tabela utilizada para codificar um coeficiente atual para ser codificado seja comutada para uma tabela cujo número seja maior que o número atribuído à dita tabela, quando o valor absoluto do coeficiente atual ultrapasse um valor de limiar. Deste modo, a eficiência de codificação pode ser melhorada uma vez que um comprimento de código pode ser encurtado quando o seguinte coeficiente é codificado.
BREVE DESCRIÇÃO DOS DESENHOS A Fig. 1 é um diagrama de blocos mostrando uma estrutura funcional de um aparelho de codificação utilizando um método de codificação de comprimento variável e um método de codificação de imagem em movimento de acordo com uma primeira forma de realização da presente invenção. A Fig. 2 é um diagrama de blocos mostrando em pormenor uma estrutura funcional de uma unidade de codificação de comprimento variável mostrada na Fig. 1.
As Figs. 3A e 3B são diagramas padrão para descrever o processamento executado por uma unidade de geração de sequência RL mostrada na Fig. 2.
As Figs. 4A e 4B são diagramas padrão para descrever uma sequência RL gerada pela unidade de geração de sequência RL e o processamento de reordenação executado por uma unidade de reordenação mostrada na Fig. 2. A Fig. 5 é um diagrama mostrando um exemplo de uma tabela de código guardada através de uma unidade de armazenamento de tabela mostrada na Fig. 2. A Fig. 6 é um diagrama mostrando um exemplo de uma tabela VLC guardada através da unidade de armazenamento de tabela mostrada na Fig. 2.
As Figs. 7A e 7B são diagramas padrão para descrever um outro exemplo da sequência RL gerada pela unidade de geração de sequência RL e o processamento de reordenação executado pela unidade de reordenação. A Fig. 8 é um diagrama de blocos mostrando uma estrutura funcional de um aparelho de descodificação utilizando um método de descodificação de comprimento variável e um método de descodificação de imagem em movimento de acordo com uma segunda forma de realização da presente invenção. A Fig. 9 é um diagrama de blocos mostrando em pormenor uma estrutura funcional de uma unidade de descodificação de comprimento variável mostrada na Fig. 8 .
As Figs. 10A e 10B são diagramas padrão para descrever uma sequência RL gerada por uma unidade de conversão de código mostrada na Fig. 9 e o processamento de reordenação executado por uma unidade de reordenação mostrada na Fig. 9. A Fig. 11 é um diagrama padrão para descrever o processamento executado por uma unidade de geração de coeficiente mostrada na Fig. 9.
As Figs. 12A e 12B são diagramas padrão para descrever um outro exemplo da sequência RL gerada pela unidade de conversão de código e o processamento de reordenação executado pela unidade de reordenação. A Fig. 13 é um diagrama de blocos mostrando uma estrutura de um aparelho de codificação de acordo com uma terceira forma de realização da presente invenção. A Fig. 14 é um diagrama de blocos mostrando uma estrutura interna da unidade de codificação de comprimento variável de acordo com a terceira forma de realização da presente invenção.
As Figs. 15A e 15B são diagramas padrão mostrando esquematicamente uma sequência RL gerada da unidade de geração de sequência RL de acordo com a terceira forma de realização da presente invenção.
As Figs. 16A, 16B e 16C são diagramas padrão mostrando esquematicamente a sequência RL gerada da unidade de geração de sequência RL de acordo com a terceira forma de realização da presente invenção. A Fig. 17 é um diagrama de transição mostrando um método para comutar entre tabelas de probabilidade de acordo com a terceira forma de realização da presente invenção. A Fig. 18 é um diagrama de visualização de conteúdos de tabela de probabilidade mostrando os conteúdos de uma tabela de probabilidade de acordo com a terceira forma de realização da presente invenção. A Fig. 19 é um diagrama de blocos mostrando uma estrutura de um aparelho de descodificação de imagem de acordo com uma quarta forma de realização da presente invenção. A Fig. 20 é um diagrama de blocos mostrando uma estrutura interna de uma unidade de descodificação de comprimento variável de acordo com a quarta forma de realização da presente invenção. A Fig. 21 é um diagrama de tabela mostrando um exemplo de uma tabela binária. A Fig. 22 é um diagrama de blocos mostrando uma estrutura funcional de um aparelho de codificação, ao qual se aplicam um método de codificação de comprimento variável e um método de codificação de imagem em movimento de acordo com uma quinta forma de realização da presente invenção. A Fig. 23 é um diagrama de blocos mostrando em pormenor uma estrutura funcional de uma unidade de codificação de comprimento variável mostrada na Fig. 22 .
As Figs. 24A e 24B são diagramas mostrando um exemplo de sequência L e sequência R geradas por uma unidade de geração de sequência RL mostrada na Fig. 23. A Fig. 25 é um diagrama mostrando um exemplo estrutural para cada tabela VLC armazenada numa unidade de armazenamento mostrada na Fig. 23. A Fig. 2 6 é um diagrama mostrando um exemplo estrutural de uma tabela de valores de limiar armazenada na unidade de armazenamento mostrada na Fig. 23. A Fig. 27 é um fluxograma mostrando o processamento de atribuição de códigos de comprimento variável, executado por uma unidade de atribuição de código mostrada na Fig. 23. A Fig. 28 é um diagrama mostrando uma relação entre a tabela VLC utilizada para codificação e um valor de limiar. A Fig. 2 9 é um diagrama padrão mostrando como a unidade de atribuição de código realiza o processamento de codificação. A Fig. 30 é um diagrama de blocos mostrando uma estrutura funcional de um aparelho de descodificação utilizando um método de descodificação de comprimento variável e um método de descodificação de imagem em movimento de acordo com uma sexta forma de realização da presente invenção. A Fig. 31 é um diagrama de blocos mostrando em pormenor uma estrutura funcional de uma unidade de descodificação de comprimento variável mostrada na Fig. 30 .
As Figs. 32A, 32B e 32C são ilustrações para um caso de realização do método de codificação de imagem em movimento de acordo com as primeira, terceira e quinta formas de realização ou do método de descodificação de imagem em movimento de acordo com as segunda, quarta e sexta formas de realização num sistema informático utilizando uma disquete na qual é gravado um programa para executar estes métodos. A Fig. 33 é um diagrama de blocos mostrando uma configuração completa de um sistema de distribuição de conteúdos para realizar um serviço de distribuição de conteúdos. A Fig. 34 é uma ilustração mostrando um telemóvel utilizando o método de predição de imagem em movimento, o aparelho de codificação de imagem em movimento e o aparelho de descodificação de imagem em movimento de acordo com a presente invenção. A Fig. 35 é um diagrama de blocos mostrando uma estrutura de um telemóvel de acordo com a presente invenção. A Fig. 36 é um diagrama de blocos mostrando uma configuração completa de um sistema de radiodifusão digital de acordo com a presente invenção.
Melhor Modo para Realizar a Invenção 0 seguinte descreve as formas de realização de acordo com a presente invenção com referência aos diagramas. (Primeira Forma de Realização) A Fig. 1 é um diagrama de blocos mostrando uma estrutura funcional de um aparelho de codificação ao qual se aplica o método de codificação de imagem em movimento de acordo com a presente invenção. A primeira forma de realização ilustra a estrutura funcional num caso de codificação intra-imagem de uma imagem de entrada utilizando o método de codificação de imagem em movimento de acordo com a presente invenção.
Como mostrado no diagrama, um aparelho de codificação 100a é compreendido por uma unidade de conversão de bloco 110, uma unidade de transformação de frequência 120, uma unidade de quantificação 130 e uma unidade de codificação de comprimento variável 140. Cada unidade que compõe este aparelho de codificação 100a é realizada com uma CPU, uma ROM para armazenar antecipadamente um programa ou dados executados pela CPU e uma memória para fornecer uma área de trabalho quando o programa é executado bem como para armazenar temporariamente a imagem de entrada, ou semelhantes. A unidade de transformação de bloco 110 divide a imagem de entrada em blocos, cada um dos quais com dimensão de 4 (horizontal) x4 (vertical) pixéis e gera cada bloco de pixéis para a unidade de transformação de frequência 120. A unidade de transformação de frequência 120 realiza transformação de frequência nos blocos de pixéis introduzidos e converte-os em coeficientes de frequência e então gera os coeficientes de frequência transformados para a unidade de quantificação 130. A unidade de quantificação 130 realiza processamento de quantificação nos coeficientes de frequência introduzidos. O processamento de quantificação aqui significa processamento equivalente a dividir um coeficiente de frequência por um valor de quantificação predeterminado. Além disso, um valor de quantificação varia dependendo geralmente de um bloco de pixéis e de uma banda de frequência. Os coeficientes de frequência quantificados são introduzidos na unidade de codificação de comprimento variável 140 . A unidade de codificação de comprimento variável 140 realiza codificação de comprimento variável em valores dos coeficientes de frequência no bloco cuja dimensão é predeterminada (4x4 pixéis). A Fig. 2 é um diagrama de blocos mostrando em pormenor uma estrutura funcional da unidade de codificação de comprimento variável 140. A unidade de codificação de comprimento variável 140 inclui uma unidade de geração de sequência RL 141, uma unidade de reordenação 142, uma unidade de atribuição de código 143 e uma unidade de armazenamento de tabela 144.
Os coeficientes de frequência quantificados gerados da unidade de quantificação 130 são introduzidos na unidade de geração de sequência RL 141. A unidade de geração de sequência RL 141 converte primeiramente os coeficientes de frequência quantificados em coeficientes unidimensionais, utilizando um método de varrimento predeterminado. A unidade de geração de sequência RL 141 gera então uma sequência (a ser referida como "sequência RL" daqui para a frente) constituída por uma combinação de um valor R indicando o número de coeficientes nulos consecutivos e de um valor de coeficiente L não nulo subsequente a ele, (a ser referido como "valor RL" daqui para a frente) . Um exemplo disto é explicado com referência às Figs. 3 e 4. A Fig. 3A é um diagrama mostrando os coeficientes de frequência quantificados num bloco, gerados da unidade de quantificação 130. Aqui, o coeficiente de frequência superior esquerdo indica uma componente de corrente contínua, e as componentes de frequência na direção horizontal tornam-se maiores para a direita, enquanto as componentes de frequência na direção vertical tornam-se maiores para baixo. A Fig. 3B é um diagrama mostrando um método de varrimento para tornar numa dimensão os coeficientes de frequência quantificados. A unidade de geração de sequência RL 141 torna unidimensionais os coeficientes realizando varrimento começando no domínio da baixa frequência para o domínio da alta frequência.
Um resultado de gerar uma sequência RL para os valores de coeficientes unidimensionais, realizada pela unidade de geração de sequência RL 141, é mostrado na Fig. 4A. Na Fig. 4A, EOB (Fim De Bloco) é um identificador que indica que todos os valores de coeficiente subsequentes no bloco são "0". Geralmente, um valor de coeficiente tem maior probabilidade de ser "0" no domínio da alta frequência. Por conseguinte, ao realizar-se o varrimento começando no domínio da baixa frequência para o domínio da alta frequência, é possível reduzir a quantidade de informação incluída na sequência RL. A sequência RL gerada é introduzida na unidade de reordenação 142. A unidade de reordenação 142 ordena a sequência RL introduzida por ordem inversa. No entanto, o EOB não será reordenado. A Fig. 4B mostra um estado após a reordenação ter sido realizada. A sequência RL assim reordenada é introduzida na unidade de atribuição de código 143. A unidade de armazenamento de tabela 144 guarda em avanço uma tabela (uma tabela de código, ver referência à Fig. 5) correlacionando os valores RL com os números de código atribuídos aos valores RL bem como vários tipos de tabelas (tabelas VLC na Fig. 6) correlacionando números de código com códigos de comprimento variável, e semelhantes. A unidade de atribuição de código 143 atribui os códigos de comprimento variável a cada par na sequência RL utilizando as tabelas armazenadas na unidade de armazenamento de tabela 144.
Para ser mais preciso, a unidade de atribuição de código 143 atribui primeiramente os números de código aos valores RL. Aqui, a conversão dos valores RL para os números de código é efetuada utilizando uma tabela de código predeterminada (ver referência à Fig. 5) armazenada na unidade de armazenamento de tabela 144. A Fig. 5 é um diagrama mostrando um exemplo da tabela de código. A tabela de código é construída utilizando uma tendência em que os números de código mais baixos são geralmente atribuídos à medida que a probabilidade dos valores RL se torna mais elevada e a probabilidade aumenta à medida que os valores RL indicam os valores mais baixos. Com a utilização desta tabela, por exemplo, o número de código "2" é atribuído ao primeiro valor RL (0, -1) . Para os segundo ao quinto valores RL (1, 1), (0, -2), (0,3) e (0,4), são atribuídos respetivamente os números de código "3", "8", "13" e "15".
Então, a unidade de atribuição de código 143 converte os números de código nos códigos de comprimento variável. Para a conversão dos números de código nos códigos de comprimento variável, são utilizadas uma pluralidade de tabelas VLC (ver referência à Fig. 6) armazenadas na unidade de armazenamento de tabela 144. A Fig. 6 é um diagrama mostrando um exemplo da tabela VLC.
Na primeira forma de realização, são armazenados dois tipos de tabelas VLC. A primeira tabela VLC 1 e a segunda tabela VLC 2 são construídas para que o código de comprimento variável se torne mais longo à medida que o número de código se torna maior. A tabela VLC 1 é construída para que o código de comprimento variável se torne mais curto à medida que o número de código se torna mais baixo, em comparação com a tabela VLC 2, enquanto que a tabela VLC 2 é construída para que o código de comprimento variável se torne mais curto à medida que o número de código se torna maior, em comparação com a tabela VLC 1. Nomeadamente, um código curto é atribuído a um número de código baixo na tabela VLC 1 e um código curto é atribuído a um número de código elevado na tabela VLC 2. A tabela VLC 1 é usada para o primeiro valor RL. Neste caso, o número de código para o primeiro valor RL é "2", por conseguinte, o código de comprimento variável é "011". A conversão dos números de código nos códigos de comprimento variável é realizada subsequentemente, e quando um valor absoluto de L ultrapassa um valor de limiar, a tabela VLC 2 é utilizada para os valores RL seguintes. Assumindo que um valor de limiar do valor absoluto de L é "2", o valor absoluto de L ultrapassa o valor de limiar no quarto valor RL (0, 3) . Por conseguinte, a tabela VLC 1 é utilizada desde o primeiro até ao quarto valores RL e a tabela VLC 2 é utilizada para o quinto valor RL e seguintes.
Aqui, o valor absoluto de L volta a ser novamente inferior ao valor de limiar no sétimo valor RL (1, 2), no entanto, a tabela não é comutada para a tabela VLC 1, e a tabela VLC 2 é utilizada para a conversão. Isto significa que uma direção de comutação entre as tabelas é unidirecional. Aqui, "unidirecional" significa que a tabela tendo sido utilizada uma vez não é para ser utilizada novamente. Deste modo, é impedida a comutação frequente das tabelas e em consequência disso o número de vezes de comutação entre as tabelas diminui. O valor absoluto de L tende geralmente a aumentar quando os coeficientes são unidimensionais começando nas componentes de alta frequência para as componentes de baixa frequência. Por conseguinte, em muitos casos, uma vez tendo o valor absoluto de L ultrapassado o valor de limiar, é apenas o coeficiente que vai abaixo do valor de limiar mesmo que o valor absoluto de L vá novamente abaixo do valor de limiar. É por conseguinte possível melhorar a eficiência de codificação através da não reutilização das tabelas utilizadas mesmo quando o valor absoluto de L vai abaixo do valor de limiar. Por exemplo, geralmente, apenas a tabela a ser utilizada a seguir está armazenada numa área de trabalho uma vez que a área de trabalho na memória tem um espaço limitado. Neste caso, leva tempo até ao seguinte coeficiente começar a ser codificado uma vez que leva tempo a ler a seguinte tabela da ROM e expandi-la na área de trabalho cada vez que a tabela é comutada. Desta forma, a comutação unidirecional entre as tabelas é eficaz na limitação do número de vezes de comutação entre as tabelas e em abreviar um tempo total necessário para começar a codificar o seguinte coeficiente. A unidade de geração de sequência RL 141 realiza varrimento de valores de coeficientes numa sequência de valor de coeficiente começando nas componentes de baixa frequência para as componentes de alta frequência enquanto que a unidade de atribuição de código 143 realiza subsequentemente codificação de comprimento variável começando a partir do final da sequência de valor de coeficiente. Isto facilita decisões rápidas numa tabela a ser utilizada para codificar o primeiro valor de coeficiente no bloco, uma estrutura de cada tabela e um valor de limiar, uma vez que o valor absoluto do coeficiente tende a tornar-se maior em torno de "1".
Deste modo, o método de codificação de comprimento variável de acordo com a primeira forma de realização realiza varrimento dos coeficientes de frequência no bloco, começando no domínio de baixa frequência para o domínio de alta frequência. Então, uma sequência de valores RL, cada um dos quais é uma combinação de um valor R indicando o número de coeficientes nulos consecutivos e um valor de coeficiente L indicando um coeficiente não nulo é gerado para os coeficientes unidimensionais. Os valores RL são convertidos nos códigos de comprimento variável numa ordem inversa à ordem de varrimento. Nomeadamente, os valores RL podem ser diretamente convertidos. Uma pluralidade de tabelas VLC estão preparadas para converter os valores RL nos códigos de comprimento variável. Primeiramente, a primeira tabela VLC é utilizada para a conversão, e quando o valor absoluto de L ultrapassa o valor de limiar, a
segunda tabela VLC é utilizada para os valores RL subsequentes. Aqui, na primeira tabela VLC, o código de comprimento variável torna-se mais curto à medida que o número de código se torna mais baixo, em comparação com a segunda tabela VLC, e na segunda tabela VLC, o código de comprimento variável torna-se mais curto à medida que o número de código se torna maior, em comparação com a primeira tabela VLC. 0 valor absoluto de L torna-se geralmente maior no domínio de baixa frequência, por conseguinte, o valor absoluto de L torna-se maior quando os valores RL são convertidos nos códigos de comprimento variável numa ordem inversa à ordem na qual os valores RL são gerados através do varrimento dos coeficientes desde o domínio de baixa frequência para o domínio de alta frequência.
Por conseguinte, quando o valor absoluto de L se torna maior após o valor absoluto de L ter ultrapassado o valor de limiar, isto é, através da utilização da tabela VLC na qual o código de comprimento variável se torna mais curto à medida que o número de código se torna maior, a quantidade total de código pode ser reduzida. Nomeadamente, a quantidade total de código de L pode também ser reduzida codificando L e R separadamente, e também, através da utilização de várias tabelas VLC. A primeira forma de realização descreve o caso de codificação da imagem utilizando codificação intra-imagem, no entanto, podem obter-se os mesmos efeitos para o caso no qual uma imagem é codificada através de codificação inter-imagem realizando compensação de movimento e outras numa imagem de entrada em movimento, utilizando o método de acordo com a presente forma de realização.
Do mesmo modo, a primeira forma de realização descreve o caso de dividir a imagem de entrada num bloco com a dimensão de 4 (horizontal) x 4 (vertical) pixéis, no entanto, pode ser dada uma dimensão diferente à dimensão do bloco. A primeira forma de realização descreve um método de varrimento de um bloco com referência à Fig. 3, no entanto, pode ser empregue outro método de varrimento desde que o varrimento seja realizado começando no domínio da baixa frequência para o domínio da alta frequência.
Do mesmo modo, um exemplo da tabela de código é descrito com referência à Fig. 5, no entanto, pode ser uma tabela de código diferente.
De forma semelhante, um exemplo da tabela VLC é descrito com referência à Fig. 6, no entanto, pode ser uma tabela diferente. 0 caso da utilização de duas tabelas VLC é descrito na presente forma de realização, no entanto, podem ser utilizadas três tabelas VLC com a utilização de vários valores de limiar e as tabelas VLC podem ser comutadas de cada vez que cada valor de limiar seja ultrapassado.
Na primeira forma de realização, é explicado que as tabelas VLC são comutadas quando o valor absoluto de L tiver ultrapassado o valor de limiar, no entanto, os mesmos efeitos podem ser obtidos comutando entre as tabelas VLC quando o número de código tiver ultrapassado o valor de limiar. É também descrito na presente forma de realização que o EOB é acrescentado ao final da sequência RL, no entanto, o número dos valores RL pode ser acrescentado à cabeça da sequência RL. As Figs. 7A e 7B mostram o número de valores RL a serem codificados e a sequência RL, correspondentes às Figs. 4A e 4B para este caso.
Na tabela de código mostrada na Fig. 5, a atribuição do número de código ao EOB é desnecessária. (Segunda Forma de Realização) A Fig. 8 é um diagrama de blocos mostrando uma estrutura funcional de um aparelho de descodificação ao qual o método de descodificação de comprimento variável de acordo com as formas de realização da presente invenção é aplicado. Aqui, o fluxo de bits gerado utilizando o método de codificação de comprimento variável de acordo com a presente invenção descrito na primeira forma de realização será introduzido.
Como mostrado na Fig. 8, um aparelho de descodificação 500a é compreendido por uma unidade de descodificação de comprimento variável 510, uma unidade de quantificação inversa 520, uma unidade de transformação de frequência inversa 530, e uma memória de imagem 540. Cada unidade que compõe este aparelho de descodificação 500a, como o aparelho de codificação 100a, é realizada com uma CPU, uma ROM para armazenar antecipadamente um programa ou dados executados pela CPU e uma memória para fornecer uma área de trabalho quando o programa é executado bem como para armazenar temporariamente a imagem de entrada, ou semelhantes. O fluxo de bits é introduzido na unidade de descodificação de comprimento variável 510. A unidade de descodificação de comprimento variável 510 descodifica o fluxo de bits que está codificada com comprimento variável. O fluxo de bits é gerado dividindo os dados da imagem em blocos, cada um dos quais tendo uma dimensão predeterminada, tornando unidimensionais os coeficientes de frequência no bloco utilizando método de varrimento predeterminado e codificando uma sequência das combinações (valores RL) do valor R indicando o número de coeficientes nulos consecutivos e o valor do coeficiente L subsequente a ele. A Fig. 9 é um diagrama de blocos mostrando em pormenor uma estrutura funcional da unidade de descodificação de comprimento variável 510.
Como mostrado na Fig. 9, a unidade de descodificação de comprimento variável 510 inclui uma unidade de conversão de código511, uma unidade de armazenamento de tabela 512, uma unidade de reordenação 513 e uma unidade de geração de coeficiente 514. A unidade de armazenamento de tabela 512 é construída da mesma forma que a unidade de armazenamento de tabela 144 e armazena antecipadamente vários tipos de tabelas (tabelas VLC na Fig. 6) correlacionando os números de código com os códigos de comprimento variável e a tabela (uma tabela de código, ver referência à Fig. 5) correlacionando os valores RL com os números de código a eles atribuídos. A unidade de conversão de código 511 converte código de comprimento variável em números de código para o fluxo de bits introduzido utilizando as tabelas (várias tabelas VLC) armazenadas na unidade de armazenamento de tabela 512. A conversão dos códigos de comprimento variável nos números de código é realizada utilizando uma pluralidade de tabelas VLC. As tabelas VLC são armazenadas na unidade de armazenamento de tabela 512 e os códigos de comprimento variável são convertidos nos números de código através de referência à unidade de armazenamento de tabela 512.
Um exemplo da tabela VLC é explicado com referência à Fig. 6. Aqui, dois tipos de tabelas VLC são armazenadas. Um código mais curto é atribuído a um número de código mais baixo na tabela VLC 1 enquanto que um código mais curto é atribuído a um número de código maior na tabela VLC 2. Assumimos que um código de uma parte da cabeça do fluxo de bits introduzido é"01100100000100100011100010011" aqui. A tabela VLC 1 é utilizada para o primeiro código de comprimento variável. Quando é feita referência à tabela VLC 1 na Fig. 6, o código de comprimento variável "011" corresponde ao fluxo de bits introduzido, por conseguinte, o número de código é "2" neste caso. A unidade de conversão de código 511 converte então o número de código obtido num valor RL. Neste caso, é utilizada uma tabela de código predeterminada. A tabela de código é armazenada na unidade de armazenamento de tabela 512, e o número de código é convertido num valor RL com referência à unidade de armazenamento de tabela 512. Um exemplo da tabela de código é mostrado na Fig. 5. O número de código, neste caso, é "2", por conseguinte, o valor RL é (0, -1) .
De forma semelhante ao proceder sequencialmente à conversão dos códigos de comprimento variável nos números de código um a um utilizando a tabela VLC 1, o código de comprimento variável "00100" é convertido no número de código "3", o código de comprimento variável "0001001" no número de código "8" e o código de comprimento variável "0001110" no número de código "13" respetivamente e os respetivos números de código são ainda convertidos nos valores RL (1, 1), (0, -2) e (0, 3) .
Aqui, quando o valor absoluto de L do valor RL obtido, ultrapassa o valor de limiar, a unidade de conversão de codificação 511 utiliza a tabela VLC 2 para a conversão dos códigos de comprimento variável subsequentes. Assumimos que o valor de limiar do valor absoluto de L é "2", o valor absoluto de L ultrapassa o valor de limiar no quarto valor
RL (0, 3) . Por conseguinte, para os valores RL subsequentes, a conversão é efetuada utilizando a tabela VLC 2. Consequentemente, o código de comprimento variável seguinte "0010011" é convertido no número de código "15" e convertido ainda no valor RL (0, 4).
Mesmo quando o valor absoluto L do valor RL obtido na descodificação subsequente, vai novamente abaixo do valor de limiar, a comutação para a tabela VLC 1 não é efetuada, e a tabela VLC 2 é utilizada para a conversão. Deste modo, quando os valores RL equivalentes a um único bloco são gerados (é detetado um EOB), eles são introduzidos na unidade de reordenação 513. Aqui, é assumido que a sequência RL mostrada na Fig. 10A é gerada. A unidade de reordenação 513 ordena a sequência RL introduzida por ordem inversa. No entanto, o EOB não será reordenado. A Fig. 10B mostra o estado após a reordenação. A sequência RL reordenada desta forma é introduzida na unidade de geração de coeficiente 514. A unidade de geração de coeficiente 514 converte a sequência RL introduzida em coeficientes e torna bidimensional um bloco de coeficientes utilizando um método de varrimento predeterminado. Quando a sequência RL é convertida nos coeficientes, é gerado um coeficiente "0" para o número indicado por R baseado na ordem de varrimento predeterminada, e então é gerado o coeficiente indicado por L. Aqui, assumindo que os coeficientes são lidos em ziguezagues começando no domínio da baixa frequência para o domínio da alta frequência, a sequência RL mostrada na Fig. 10B é convertida no bloco de coeficientes mostrado na Fig. 11. O bloco de coeficientes gerado é introduzido na unidade de quantificação inversa 520. A unidade de quantificação inversa 520 realiza processamento de quantificação inversa no bloco de coeficientes introduzido. A quantificação inversa aqui significa integrar um valor de quantificação predeterminado para cada coeficiente no bloco de coeficientes. O valor quantificado aqui depende geralmente de um bloco ou de uma banda de frequências utilizando ou um valor obtido a partir do fluxo de bits ou um valor predeterminado. O bloco de coeficientes quantificados inverso é introduzido na unidade de transformação de frequência inversa 530. A unidade de transformação de frequência inversa 530 realiza transformação de frequência inversa noutros blocos de coeficientes quantificados inversos para assim os converter em blocos de pixéis. Os blocos de pixéis convertidos são introduzidos na memória de imagem 540.
Os blocos de pixéis descodificados são armazenados um a um na memória de imagem 540, e gerados como uma imagem de saída após os blocos de pixéis equivalentes a uma única imagem serem armazenados.
Deste modo, o método de descodificação de comprimento variável de acordo com o presente invenção descodifica um fluxo de bits de entrada primeiramente utilizando a primeira tabela VLC e gera uma sequência de valores RL que é uma combinação de R indicando o número de coeficientes nulos consecutivos e L indicando um coeficiente não nulo subsequente a ele. Então, quando o valor absoluto de L ultrapassa o valor de limiar, a segunda tabela VLC é utilizada para descodificar os códigos de comprimento variável subsequentes. 0 valor RL é então convertido num coeficiente baseado num método predeterminado de varrimento de um bloco após os valores RL serem colocados por ordem inversa.
Com o processamento acima, é possível descodificar corretamente o fluxo de bits que está codificado utilizando o método de codificação de comprimento variável de acordo com a presente invenção através da utilização do método de descodificação de comprimento variável da presente invenção.
Na segunda forma de realização, é explicado o caso de descodificar o fluxo de bits gerado utilizando codificação intra-imagem, no entanto, os mesmos efeitos podem ser obtidos num caso de descodificar o fluxo de bits gerado realizando codificação inter-imagens numa imagem de entrada em movimento, com a utilização de compensação de movimento e outras, empregando o método de acordo com a presente forma de realização. A segunda forma de realização descreve o caso em que a imagem de entrada é dividida em blocos, cada um dos quais tem dimensão de 4 (horizontal) x 4 (vertical) pixéis e é codificada, no entanto, pode ser dada uma dimensão diferente à dimensão do bloco.
Do mesmo modo, a segunda forma de realização descreve um método de varrimento de um bloco com referência à Fig. 11, no entanto, uma ordem de varrimento diferente pode ser utilizada desde que seja aquela que foi utilizada para a codificação.
Na segunda forma de realização, o exemplo da tabela de código é explicado com referência à Fig. 11, no entanto, uma tabela de código diferente pode ser utilizada desde que seja aquela que foi utilizada para a codificação.
Do mesmo modo, um exemplo da tabela VLC é explicado com referência à Fig. 6, no entanto uma tabela diferente pode ser utilizada desde que seja aquela que foi utilizada para a codificação. No caso da utilização de duas tabelas VLC é descrito na presente forma de realização, no entanto, podem ser utilizadas três tabelas VLC com a utilização de vários valores de limiar, e a tabela VLC pode ser comutada de cada vez que cada valor de limiar seja ultrapassado. No entanto, a estrutura da tabela VLC e o valor de limiar serão os mesmos que os que foram utilizados para a codificação. A segunda forma de realização também descreve o caso de comutação entre as tabelas VLC quando o valor absoluto de L tiver ultrapassado o valor de limiar, no entanto, os mesmos efeitos podem ser obtidos comutando entre tabelas VLC quando o número de código tenha ultrapassado o valor de limiar. 0 caso de descodificação do fluxo de bits codificado com o EOP agregado ao final da sequência RL é descrito na segunda forma de realização, no entanto, o fluxo de bits que é codificado com o número de valores RL agregados à cabeça da sequência RL pode ser descodificada. As Figs. 12A e 12B mostram o número de valores RL e a sequência RL obtidos a partir do processamento de descodificação, correspondentes às Figs. 10A e 10B para este caso. Neste caso, na tabela de código mostrada na Fig. 5, a atribuição do número de código ao EOB é desnecessária. O método de codificação de comprimento variável de acordo com o presente invenção realiza varrimento dos coeficientes de frequência no bloco, começando no domínio de baixa frequência para o domínio de alta frequência e torna-os unidimensionais. Então, uma sequência de valores RL, cada um dos quais é uma combinação de R, o número de coeficientes nulos consecutivos, e L, o coeficiente não nulo subsequente a ele, é gerado para os coeficientes unidimensionais. Os valores RL são então convertidos em códigos de comprimento variável numa ordem inversa à ordem de varrimento. Uma pluralidade de tabelas VLC estão preparadas para converter os valores RL nos códigos de comprimento variável. Então, a conversão é feita primeiramente através da utilização da primeira tabela VLC, e quando o valor absoluto de L ou o número de código ultrapassa o valor de limiar, a segunda tabela VLC é utilizada para converter os valores RL subsequentes. Neste caso, na primeira tabela VLC, o código de comprimento variável torna-se mais curto à medida que o número de código se torna mais baixo, em comparação com a segunda tabela VLC, e na segunda tabela VLC o código de comprimento variável torna-se mais curto à medida que o número de código se torna maior, em comparação com a primeira tabela VLC.
Habitualmente, o valor absoluto de L e o número de código tornam-se maiores no domínio da baixa frequência, por conseguinte, o valor absoluto de L torna-se maior quando os valores RL são convertidos nos códigos de comprimento variável numa ordem inversa à ordem na qual os valores RL são gerados realizando varrimento começando no domínio da baixa frequência para o domínio da alta frequência. Por conseguinte, a quantidade total de código pode ser reduzida através da utilização da tabela VLC na qual o código de comprimento variável se torna mais curto à medida que o número de código se torna maior, após o valor absoluto de L ter ultrapassado o valor de limiar. 0 método de descodificação de comprimento variável de acordo com o presente invenção descodifica primeiramente o fluxo de bits de entrada utilizando a primeira tabela VLC e gera uma sequência de valores RL, cada um dos quais é uma combinação de R, o número de coeficientes nulos consecutivos, e L, o coeficiente não nulo que o segue. Quando o valor absoluto de L ou o número de código ultrapassa o valor de limiar, a segunda tabela VLC é utilizada para descodificar os códigos de comprimento variável subsequentes. Os valores RL são então convertidos nos coeficientes baseados numa ordem predeterminada de varrimento do bloco, após os valores RL serem colocados por ordem inversa.
Com o processamento acima, é possível, através da utilização do método de descodificação de comprimento variável de acordo com o presente invenção, descodificar corretamente o fluxo de bits que está codificado utilizando o método de codificação de comprimento variável de acordo com o presente invenção. (Terceira Forma de Realização) 0 seguinte descreve um aparelho de codificação de acordo com a terceira forma de realização com referência aos diagramas. A Fig. 13 é um diagrama de blocos mostrando uma estrutura do aparelho de codificação 100b de acordo com a terceira forma de realização da presente invenção.
Este aparelho de codificação de imagem 100b, que realiza codificação intra-imagem numa imagem de entrada (dados de imagem) com eficiência de codificação melhorada, é compreendido por uma unidade de conversão de bloco 101, uma unidade de transformação de frequência 102, uma unidade de quantificação 103, e uma unidade de codificação de comprimento variável 150. A unidade de conversão de bloco 101 divide a imagem de entrada em blocos de pixéis, cada um dos quais tem uma dimensão de 4 (horizontal) x 4 (vertical) pixéis, e gera-os para a unidade de transformação de frequência 102. A unidade de transformação de frequência 102 realiza transformação de frequência em cada um dos blocos de pixéis divididos para assim gerar coeficientes de frequência. Então, a unidade de transformação de frequência 102 gera os coeficientes de frequência gerados para a unidade de quantificação 103. A unidade de quantificação 103 realiza quantificação nos coeficientes de frequência gerados da unidade de transformação de frequência 102. A quantificação aqui significa processamento equivalente a dividir um coeficiente por um valor de quantificação predeterminado. Além disso, um valor de quantificação varia dependendo geralmente de um bloco de pixel e de uma banda de frequências. Subsequentemente, a unidade de quantificação 103 gera os coeficientes de frequência para a unidade de codificação de comprimento variável 150. A unidade de codificação de comprimento variável 150 realiza codificação de comprimento variável nos coeficientes de frequência quantificados pela unidade de quantificação 103. A Fig. 14 é um diagrama de blocos mostrando uma estrutura interna da unidade de codificação de comprimento variável 150.
Como mostrado na Fig. 14, a unidade de codificação de comprimento variável 150 é constituída por uma unidade de geração de sequência RL 201, uma unidade de reordenação 202, uma unidade de binarização 203, uma unidade de armazenamento de tabela 204, e uma unidade de codificação aritmética 205. A unidade de geração de sequência RL 201 converte os coeficientes de frequência quantificados (a ser abreviado como "coeficientes" daqui para a frente) gerados pela unidade de quantificação 103 em coeficientes unidimensionais, utilizando um método de varrimento predeterminado. Então, a unidade de geração de sequência RL 201 gera uma sequência (a ser referida como "sequência RL" daqui para a frente) constituída por combinações de um valor R indicando o número de coeficientes nulos consecutivos e de um coeficiente de valor L indicando um coeficiente não nulo (a serem referidos como "valores RL" daqui para a frente) . Um exemplo disto é descrito com referência às Figs. 15 e 16. A Fig. 15A mostra um bloco de coeficientes constituído por uma pluralidade de coeficientes gerados pela unidade de quantificação 103. Aqui, o coeficiente de frequência superior esquerdo indica uma componente de corrente contínua, e as componentes de frequência na direção horizontal tornam-se maiores para a direita, enquanto as componentes de frequência na direção vertical tornam-se maiores para baixo. A Fig. 15B é um diagrama explicativo para explicar um método de varrimento para tornar unidimensional uma pluralidade de coeficientes num bloco de coeficientes. Como indicado pelas setas na Fig. 15B, a unidade de geração de sequência RL 201 torna unidimensionais os coeficientes realizando varrimento no bloco de coeficientes começando no domínio da baixa frequência para o domínio da alta frequência. A Fig. 16A mostra uma sequência RL gerada pela unidade de geração de sequência RL 201. Na Fig. 16A, o primeiro número indica o número de coeficientes. Geralmente, um valor de coeficiente é mais provável que seja "0" no domínio da alta frequência. Por conseguinte, realizando varrimento começando no domínio da baixa frequência para o domínio da alta frequência, é possível reduzir a quantidade de informação incluída numa sequência RL (da qual, a quantidade de informação dos números R) . A sequência RL gerada é introduzida na unidade de reordenação 202. A unidade de reordenação 202 ordena a sequência RL introduzida por ordem inversa. No entanto, o número de coeficientes não será reordenado. A Fig. 16B mostra a sequência reordenada pela unidade de reordenação 202. Através da realização da ordenação desta forma, é possível reduzir a quantidade de informação como descrito acima, e consequentemente tornar unidimensionais os coeficientes ao aplicar varrimento ao bloco de coeficientes do domínio da alta frequência para o domínio da baixa frequência. Subsequentemente, gera-se a sequência RL assim reordenada para a unidade de binarização 203. A unidade de binarização 203 realiza binarização no número de coeficientes e cada valor RL, isto é converte-os em dados binários constituídos por "0"s e "l"s. Aqui, o valor R e o valor do coeficiente L são binarizados separadamente. A Fig. 16C mostra apenas os valores do coeficiente L na sequência RL reordenada pela unidade de reordenação 202. Os valores absolutos e sinais destes valores do coeficiente L são processados separadamente. Além disso, a unidade de binarização 203 realiza binarização nos valores R e os valores absolutos dos valores do coeficiente L, utilizando uma tabela binária predeterminada como mostrado na Fig. 21, por exemplo. Então, a unidade de binarização 203 gera, para a unidade de codificação aritmética 205, dados binários resultantes da realização de binarização neles. A unidade de codificação aritmética 205 realiza codificação aritmética binária nos valores dos números R e os valores absolutos dos valores do coeficiente L representados como dados binários, enquanto codifica os sinais dos valores do coeficiente L ao mesmo tempo. Uma explicação é dada aqui para que a codificação aritmética seja realizada no valor absoluto do valor do coeficiente L. A unidade de codificação aritmética 205 utiliza uma pluralidade de tabelas de probabilidade através da comutação entre elas, ao realizar codificação aritmética no valor absoluto do valor do coeficiente L representado como dados binários. A pluralidade de tabelas de probabilidade estão armazenadas na unidade de armazenamento de tabela 204 . A Fig. 17 é um diagrama de transição mostrando um método para comutar entre as tabelas de probabilidade.
Como mostra a Fig. 17, a unidade de codificação aritmética 205 utiliza quatro tabelas de probabilidade, das quais a tabela de probabilidade 1 é utilizada para realizar codificação aritmética no valor absoluto do primeiro valor do coeficiente L. Entretanto, para os valores do coeficiente L subsequentes, a unidade de codificação aritmética 205 comuta para uma outra tabela de probabilidade para utilizar, em função do número da tabela da tabela de probabilidade utilizada para codificar o valor absoluto do valor do coeficiente L anterior bem como do valor absoluto. Aqui, quatro tabelas de probabilidade são a tabela de probabilidade 1, a tabela de probabilidade 2, a tabela de probabilidade 3, e a tabela de probabilidade 4, e o número da tabela da tabela de probabilidade 1 é "1", o número da tabela da tabela de probabilidade 2 é "2", o número da tabela da tabela de probabilidade 3 é "3" e o número da tabela da tabela de probabilidade 4 é "4".
Mais especificamente, a tabela de probabilidade 2 é utilizada quando um dos seguintes é satisfeito: quando a tabela de probabilidade 1 é utilizada para codificar o valor absoluto do valor do coeficiente L anterior e o seu valor absoluto é "1"; e quando a tabela de probabilidade 2 é utilizada para codificar o valor absoluto do valor do coeficiente L anterior e o seu valor absoluto é "1". Entretanto, a tabela de probabilidade 3 é utilizada quando um dos seguintes é satisfeito: quando a tabela de probabilidade 1 é utilizada para codificar o valor absoluto do valor do coeficiente L anterior e o seu valor absoluto é "2"; quando a tabela de probabilidade 2 é utilizada para codificar o valor absoluto do valor do coeficiente L anterior e o seu valor absoluto é "2"; e quando a tabela de probabilidade 3 é utilizada para codificar o valor absoluto do valor do coeficiente L anterior e o seu valor absoluto é "2 ou inferior". E, a tabela de probabilidade 4 é utilizada quando um dos seguintes é satisfeito: quando o valor absoluto do valor do coeficiente L anterior é "3 ou superior"; e quando a tabela de probabilidade 4 é utilizada para codificar o valor absoluto do valor do coeficiente L anterior.
Como descrito acima, as tabelas de probabilidade são comutadas numa direção, isto é, de uma tabela de probabilidade com um número de tabela mais baixo para uma tabela de probabilidade com um número de tabela maior. Consequentemente, mesmo quando o valor absoluto do valor do coeficiente L anterior é igual ou inferior a um valor de limiar predeterminado, as tabelas de probabilidade não serão comutadas de novo na direção oposta. Este é o ponto que distingue o presente invenção da técnica existente. A Fig. 18 é um diagrama de visualização de conteúdo de tabela de probabilidade mostrando os conteúdos das quatro tabelas de probabilidade 1 ~ 4 acima mencionadas.
Como mostrado na Fig. 18, cada uma das quatro tabelas de probabilidade 1 ~ 4 é constituída pela probabilidade com que "0" ocorre e pela probabilidade com que "1" ocorre.
Por exemplo, a tabela de probabilidade 1 é constituída pela probabilidade "0,1" com que "0" ocorre e pela probabilidade "0,9" com que "1" ocorre, e a tabela de probabilidade 2 é constituída pela probabilidade "0,2" com que "0" ocorre e pela probabilidade "0,8" com que "1" ocorre.
Para colocar de outra forma, quando o valor absoluto do valor do coeficiente L é "2", o resultado da binarização de "2" é "01", e por conseguinte, ao utilizar a tabela de probabilidade 1 para realizar codificação aritmética em "01", a unidade de codificação aritmética 205 realiza codificação aritmética em "01" utilizando a probabilidade "0,1" correspondente a "0" no tal "01" e a probabilidade "0,9" correspondente a "1" no tal "01".
Aqui, uma vez que a soma da probabilidade com que "0" ocorre e a probabilidade com que "1" ocorre é 1,0, não é necessário manter ambas estas probabilidades, e por conseguinte apenas uma das probabilidades pode ser guardada. 0 seguinte explica um exemplo de comutação entre tabelas de probabilidade num caso em que a codificação é realizada nos valores absolutos (binarizados) dos valores do coeficiente L mostrados na Fig. 16C. A unidade de codificação aritmética 205 utiliza a tabela de probabilidade 1 para o valor absoluto do primeiro valor do coeficiente L (-2) . Aqui, uma vez que o valor absoluto do tal valor do coeficiente L é 2, a unidade de codificação aritmética 205 comuta da tabela de probabilidade 1 para a tabela de probabilidade 3 para utilização. Consequentemente, a unidade de codificação aritmética 205 utiliza a tabela de probabilidade 3 para realizar codificação aritmética no valor absoluto do segundo valor (3) . Aqui, uma vez que o valor absoluto do tal valor do coeficiente L é "3", a unidade de codificação aritmética 205 comuta da tabela de probabilidade 3 para a tabela de probabilidade 4 para utilização. Consequentemente, a unidade de codificação aritmética 205 utiliza a tabela de probabilidade 4 para realizar codificação aritmética no valor absoluto do terceiro valor do coeficiente L (6) . Aqui, uma vez que a tabela de probabilidade a ser utilizada foi comutada para a tabela de probabilidade 4, a unidade de codificação aritmética 205 utiliza a tabela de probabilidade 4 para realizar codificação aritmética nos valores absolutos de todos os valores do coeficiente L subsequentes. Por exemplo, o valor absoluto do quinto valor do coeficiente L é "2", mas ao contrário da técnica existente, a unidade de codificação aritmética 205 utiliza a tabela de probabilidade 4 quando realiza codificação aritmética no valor absoluto do sexto valor do coeficiente L e seguintes, sem comutar para outra tabela de probabilidade.
Além disso, uma vez que cada uma das tabelas de probabilidade é atualizada conforme necessário dependendo de a entrada ser "0" ou "1", as tais tabelas de probabilidade são atualizadas para estarem adaptadas à entrada.
Como descrito acima, no método de codificação de comprimento variável empregue pela unidade de codificação de comprimento variável 150 no aparelho de codificação de imagem 100b de acordo com a presente invenção, a unidimensionalização é realizada em coeficientes dentro de um bloco de coeficientes através do varrimento dos mesmos começando no domínio da baixa frequência para o domínio da alta frequência. Então, ele gera uma sequência de valores RL (sequência RL) constituída por uma combinação de um número R indicando os valores do coeficiente L nulos consecutivos e um valor do coeficiente L não nulo subsequente a ele. Os tais valores RL são então convertidos em códigos de comprimento variável numa ordem inversa àquela na qual o varrimento foi aplicado. Quando os valores RL são convertidos em códigos de comprimento variável, números R, os valores absolutos de valores do coeficiente L e os sinais dos valores do coeficiente L são convertidos separadamente. Quando eles são convertidos, a binarização é realizada primeiro, à qual se segue a codificação aritmética. Para realizar codificação aritmética nos valores absolutos dos valores do coeficiente L, uma pluralidade de tabelas de probabilidade são comutadas entre si. Quando uma tabela de probabilidade é comutada para outra tabela de probabilidade, é determinada uma tabela de probabilidade para ser utilizada para codificar o valor absoluto do valor do coeficiente L seguinte em função do número de tabela da tabela de probabilidade atual e do valor absoluto do valor do coeficiente L atual. As tabelas de probabilidade serão comutadas apenas numa direção, e uma vez que o valor absoluto de um valor do coeficiente L ultrapasse um valor predeterminado, a mesma tabela de probabilidade é utilizada dai para a frente para realizar codificação aritmética.
Quando é aplicado varrimento do domínio da alta frequência primeiro e depois para o domínio da baixa frequência, é provável que o valor absoluto do valor do coeficiente L se torne maior, uma vez que o valor absoluto do valor do coeficiente L geralmente se torna maior na direção do domínio da baixa frequência. Por conseguinte, uma vez que o valor absoluto do valor do coeficiente L ultrapasse um valor predeterminado, mesmo que depois disso o valor absoluto de outro valor do coeficiente L se torne mais baixo que o valor predeterminado, é muito possível que apenas o valor absoluto do tal valor do coeficiente L seja baixo. Deste modo, realizando codificação aritmética com a utilização da mesma tabela de probabilidade, a atualização de uma tabela de probabilidade torna-se mais facilmente adaptada às entradas. Consequentemente isto possibilita que a probabilidade de ocorrência de símbolos ("0" ou "1" em dados binários) em cada tabela de probabilidade seja mais orientada (isto é que a probabilidade de ocorrência de quer de "0" ou de "1" se torne um valor próximo de 1,0) . A codificação aritmética tem uma característica que é quanto mais orientados estiverem os valores de probabilidade numa tabela de probabilidade, maior se torna a eficiência da codificação. Consequentemente, a eficiência da codificação pode ser melhorada através da utilização do método de codificação de comprimento variável de acordo com a presente invenção. O aparelho de codificação de imagem de acordo com a presente invenção foi explicado utilizando a presente forma de realização, mas o presente invenção não está limitado a esta.
Na presente forma de realização, por exemplo, é fornecida uma explicação para o caso em que uma imagem é codificada através de codificação intra-imagem, mas podem obter-se os mesmos efeitos também para o caso em que uma imagem é codificada através de codificação inter-imagens realizando compensação de movimento e outras numa imagem de entrada em movimento.
Além disso, na presente forma de realização, embora seja dada uma explicação para o caso em que uma imagem de entrada é dividida em blocos de pixéis, cada um dos quais tem uma dimensão de 4 (horizontal) x 4 (vertical) pixéis, pode ser dada uma dimensão diferente para o bloco de pixéis.
Do mesmo modo, na presente forma de realização, embora a Fig. 15B seja utilizada para explicar um método de realização de leitura dentro de um bloco de coeficientes, uma outra ordem de varrimento pode também ser empregue desde que o varrimento seja realizado do domínio da baixa frequência para o domínio da alta frequência.
Além disso, na presente forma de realização, é dada uma explicação para o caso em que a unidade de geração de sequência RL 201 converte coeficientes de frequência quantificados em coeficientes unidimensionais utilizando um método de varrimento predeterminado, e gera uma sequência (sequência RL) constituída por combinações de R indicando o número de valores do coeficiente L nulos consecutivos e L indicando um valor do coeficiente não nulo subsequente a ele, mas uma sequência dos números R e uma sequência dos valores do coeficiente L pode ser gerada separadamente. Quando uma sequência de valores do coeficiente L é gerada, por exemplo, a unidade de reordenação 202 pode ser omitida, se a tal sequência for gerada realizando varrimento começando no domínio da alta frequência para o domínio da baixa frequência e através da seleção dos coeficientes cujos valores indicam outros que não zero.
Além disso, é dada uma explicação na presente forma de realização para o caso em que tabelas de probabilidade são comutadas de acordo com a tabela de transição ilustrada na
Fig. 17, mas podem ser dados valores diferentes para o número de tabelas de probabilidade e para valores de limiar para o valor absoluto do valor do coeficiente L quando as tabelas de probabilidade são comutadas conforme ilustrado na Fig. 17.
Do mesmo modo, a Fig. 21 é apresentada como um exemplo de uma tabela binária, mas pode ser empregue outra tabela.
Além disso, na presente forma de realização, é dada uma explicação para o caso em que a unidade de codificação aritmética realiza codificação aritmética binária, no entanto, pode ser realizada codificação aritmética multi-valor. Nesse caso, é possível omitir a unidade de binarização 203. (Quarta Forma de Realização) O seguinte explica um aparelho de descodificação de imagem de acordo com a quarta forma de realização da presente invenção com referência aos diagramas. A Fig. 19 é um diagrama de blocos mostrando uma estrutura de um aparelho de descodificação 500b de acordo com a quarta forma de realização da presente invenção.
Este aparelho de descodificação 500b realiza descodificação intra-imagem num fluxo de bits resultante da realização de codificação intra-imagem em dados de imagem, e é compreendido por uma unidade de descodificação de comprimento variável 601, uma unidade de quantificação inversa 602, uma unidade de transformação de frequência inversa 603, e uma memória de imagem 604. O fluxo de bits a ser introduzido aqui é gerado utilizando o método de codificação de comprimento variável empregue pelo aparelho de codificação 100b de acordo com a terceira forma de realização, e é primeiramente obtida pela unidade de descodificação de comprimento variável 601.
Ao receber o fluxo de bits, a unidade de descodificação de comprimento variável 601 gera um bloco de coeficientes formado por uma pluralidade de coeficientes como mostrado na Fig 15A realizando descodificação de comprimento variável no dito fluxo de bits. A unidade de quantificação inversa 602, ao receber o bloco de coeficientes da unidade de descodificação de comprimento variável 601, realiza quantificação inversa no tal bloco de coeficientes. A quantificação inversa aqui significa integrar um valor de quantificação predeterminado para cada coeficiente no bloco de coeficientes. Geralmente, um valor de quantificação varia num bloco de coeficientes ou numa banda de frequências de base, e é obtido a partir de um fluxo de bits. A unidade de quantificação inversa 602 então gera o bloco de coeficientes quantificados inversos para a unidade de transformação de frequência inversa 603. A unidade de transformação de frequência inversa 603 realiza transformação de frequência inversa no bloco de coeficientes quantificados inversos, e converte o bloco de coeficientes num bloco de pixéis. Então, a unidade de transformação de frequência inversa 603 gera o bloco de pixéis convertido para a memória de imagem 604. A memória de imagem 604 armazena os blocos de pixéis descodificados em sequência, e quando os blocos de pixéis equivalentes a uma imagem são armazenados, gera estes blocos de pixéis como uma imagem de saída.
Aqui, é dada uma explicação pormenorizada para a unidade de descodificação de comprimento variável 601 descrita acima. A Fig. 20 é um diagrama de blocos mostrando uma estrutura interna da unidade de descodificação de comprimento variável 601.
Como mostrado na Fig. 20, a unidade de descodificação de comprimento variável 601 é compreendida por uma unidade de descodificação aritmética 701, uma unidade de conversão multi-valor 702, uma unidade de armazenamento de tabela 703, uma unidade de reordenação 704, e uma unidade de geração de coeficiente 705. A unidade de armazenamento de tabela 703 armazena, por exemplo, quatro tabelas de probabilidade 1 ~ 4 como mostrado na Fig. 18.
Ao receber o fluxo de bits, a unidade de descodificação aritmética 701 realiza primeiramente descodificação aritmética no fluxo de bits. Aqui, é dada uma explicação para a descodificação aritmética binária ser realizada nos valores absolutos (binarizados) dos valores do coeficiente L codificados incluídos no fluxo de bits.
Quando realiza descodificação aritmética no valor absoluto do valor do coeficiente L codificado, a unidade de descodificação aritmética 701 obtém, da unidade de conversão multi-valor 702 o valor absoluto do valor do coeficiente L anterior que já foi descodificado e convertido num multi-valor. Então, a unidade de descodificação aritmética 701 comuta entre as tabelas de probabilidade 1 ~ 4 armazenadas pela unidade de armazenamento de tabela 703 de uma forma como mostrado na Fig. 17, em função do valor absoluto do tal valor do coeficiente L, e realiza descodificação aritmética binária no valor absoluto de cada um dos valores do coeficiente L codificados para assim gerar dados binários correspondentes a cada um deles. A unidade de conversão multi-valor 702 converte os dados binários gerados pela unidade de descodificação aritmética 701 em multi-valores, utilizando, por exemplo, uma tabela binária como mostrado na Fig. 21, para assim os representar como os valores absolutos dos valores do coeficiente L. Então, a unidade de conversão multi-valor 702 gera os valores absolutos dos tais valores do coeficiente L para a unidade de descodificação aritmética 701 e a unidade de reordenação 704. É dada uma explicação para as operações pormenorizadas da unidade de descodificação aritmética 701 e da unidade de conversão multi-valor 702.
Primeiro, a unidade de descodificação aritmética 701 utiliza a tabela de probabilidade 1 para realizar descodificação aritmética no valor absoluto do primeiro valor do coeficiente L codificado. A unidade de descodificação aritmética 701, então gera, para a unidade de conversão multi-valor 702, os dados binários obtidos através da realização da descodificação aritmética. A unidade de conversão multi-valor 702 utiliza a tabela de binária para assim converter os dados binários no valor absoluto do valor do coeficiente L, e gera o valor absoluto para a unidade de descodificação aritmética 701 e a unidade de reordenação 704.
Então, para os valores absolutos dos valores do coeficiente L codificados subsequentes, a unidade de descodificação aritmética 701 comuta a tabela de probabilidade para outra para utilização, dependendo do número da tabela da tabela de probabilidade utilizada quando o valor absoluto do valor do coeficiente L codificado anterior for binário descodificado aritmeticamente bem como do valor absoluto do tal valor do coeficiente L anterior obtido a partir da unidade de conversão multi-valor 702. Como mostrado na Fig. 17, a tabela de probabilidade 2 é utilizada quando uma das condições seguintes é satisfeita: quando a tabela de probabilidade 1 é utilizada para realizar descodificação aritmética no valor absoluto do valor do coeficiente L codificado anterior e o valor absoluto do valor do coeficiente L anterior obtido a partir da unidade de conversão multi-valor 702 indica "1"; e quando a tabela de probabilidade 2 é utilizada para realizar descodificação aritmética no valor absoluto do valor do coeficiente L codificado anterior e o valor absoluto do valor do coeficiente L anterior obtido a partir da unidade de conversão multi-valor 702 indica "1". A tabela de probabilidade 3 é utilizada quando uma das condições seguintes é satisfeita: quando a tabela de probabilidade 1 é utilizada para realizar descodificação aritmética no valor absoluto do valor do coeficiente L codificado anterior e o valor absoluto do valor do coeficiente L anterior obtido a partir da unidade de conversão multi-valor 702 indica "2"; quando a tabela de probabilidade 2 é utilizada para realizar descodificação aritmética no valor absoluto do valor do coeficiente L codificado anterior e o valor absoluto do valor do coeficiente L anterior obtido a partir da unidade de conversão multi-valor 702 indica "2"; e quando a tabela de probabilidade 3 é utilizada para realizar descodificação aritmética no valor absoluto do valor do coeficiente L codificado anterior e o valor absoluto do valor do coeficiente L anterior obtido a partir da unidade de conversão multi-valor 702 indica "2 ou inferior". E a tabela de probabilidade 4 é utilizada quando uma das condições seguintes é satisfeita: quando o valor absoluto do valor do coeficiente L anterior obtido a partir da unidade de conversão multi-valor 702 indica "3 ou um valor superior"; e quando a tabela de probabilidade 4 é utilizada para realizar descodificação aritmética no valor absoluto do valor do coeficiente L codificado anterior. Como mostrado acima, as tabelas de probabilidade 1 ~ 4 são comutadas numa direção, isto é, desde uma tabela de probabilidade com um número de tabela mais baixo para uma tabela de probabilidade com um número de tabela maior. Consequentemente, mesmo se o valor absoluto do valor do coeficiente L anterior obtido a partir da unidade de conversão multi-valor 702 for igual a ou menor que um valor de limiar predeterminado, as tabelas de probabilidade não serão comutadas na direção oposta. Este é o ponto que distingue a presente invenção da técnica existente. 0 seguinte explica um exemplo de comutação entre as tabelas de probabilidade, num caso em que a descodificação é realizada nos valores absolutos dos valores do coeficiente L mostrados na Fig. 16C. A unidade de descodificação aritmética 701 utiliza a tabela de probabilidade 1 para realizar descodificação aritmética no valor absoluto do primeiro valor do coeficiente L (-2) codificado para assim o descodificar para dados binários "01". Uma vez que a unidade de descodificação aritmética 701 obtém, da unidade de conversão multi-valor 702, "2" que é um multi-valor convertido a partir desses dados binários "01", ela comuta da tabela de probabilidade 1 para a tabela de probabilidade 3 para utilizar. Consequentemente, a unidade de descodificação aritmética 701 utiliza a tabela de probabilidade 3 para realizar descodificação aritmética no valor absoluto do segundo valor do coeficiente L (3) codificado para assim o descodificar para dados binários "001". Aqui, uma vez que a unidade de descodificação aritmética 701 obtém, da unidade de conversão multi-valor 702, "3" que é um multi-valor convertido a partir desses dados binários "001", ela comuta da tabela de probabilidade 3 para a tabela de probabilidade 4 para utilizar. Consequentemente, a unidade de descodificação aritmética 701 utiliza a tabela de probabilidade 4 para realizar descodificação aritmética no valor absoluto do terceiro valor do coeficiente L (6) codificado para assim o descodificar para dados binários "000001". Aqui, uma vez que a tabela de probabilidade a ser utilizada é comutada para a tabela de probabilidade 4, a unidade de descodificação aritmética 701 utiliza a tabela de probabilidade 4 para realizar descodificação aritmética nos valores absolutos de todos os valores do coeficiente L codificados subsequentes. Por exemplo, o valor absoluto do quinto valor do coeficiente L codificado é descodificado e convertido num multi-valor "2", mas ao contrário da técnica existente, a unidade de descodificação aritmética 701 utiliza a tabela de probabilidade 4 para realizar descodificação aritmética no valor absoluto do sexto valor do coeficiente L codificado e seguintes, sem comutar para outra tabela de probabilidade.
Através da operação acima, quando os valores absolutos dos valores do coeficiente L, os números R, e os sinais dos valores do coeficiente L equivalentes a um bloco de coeficientes são gerados, eles são introduzidos na unidade de reordenação 704 como uma sequência RL. A unidade de reordenação 704 ordena essa sequência RL introduzida por ordem inversa. No entanto, o número de coeficientes não será reordenado. A Fig. 16A ilustra uma sequência RL reordenada. Subsequentemente, a unidade de reordenação 704 gera, para a unidade de geração de coeficiente 705, a sequência RL assim reordenada. A unidade de geração de coeficiente 705 converte a sequência RL introduzida num bloco de coeficientes. Ao fazer isso, a unidade de geração de coeficiente 705 faz uma conversão da sequência RL para um bloco de coeficientes ao executar repetidamente a seguinte operação: gerar coeficientes nulos para o número indicado por um número R e então gerar um coeficiente com um valor indicado por um valor do coeficiente L. Aqui, a unidade de geração de coeficiente 705 realiza varrimento em ziguezague começando no domínio da baixa frequência para o domínio da alta frequência, como mostrado na Fig. 15B, para assim converter a sequência RL mostrada na Fig. 16A no bloco de coeficientes mostrado na Fig. 15A. Então, a unidade de geração de coeficiente 705 gera, para a unidade de quantificação inversa 602, o bloco de coeficientes assim gerado.
Como descrito acima, no método de descodificação aritmética empregue pela unidade de descodificação de comprimento variável 601 no aparelho de descodificação 500b de acordo com a presente invenção, uma pluralidade de tabelas de probabilidade é comutada quando é realizada descodificação aritmética nos valores absolutos dos valores do coeficiente L incluídos num fluxo de bits de entrada. Ao comutar para outra tabela de probabilidade, a tabela de probabilidade a ser utilizada para descodificar o valor absoluto do valor do coeficiente L seguinte é determinada em função do número de tabela da tabela de probabilidade atual e do valor absoluto de um valor do coeficiente L resultante da descodificação. As tabelas de probabilidade são comutadas apenas numa direção neste caso, e quando o valor absoluto do valor do coeficiente L resultante da descodificação ultrapassar um valor predeterminado, é utilizada a mesma tabela de probabilidade para realizar descodificação aritmética em todos os valores absolutos subsequentes.
Como é evidente pelo acima descrito, a utilização do método de descodificação aritmética de acordo com a presente invenção permite descodificar corretamente uma fluxo de bits codificado com a utilização do método de codificação de comprimento variável de acordo com a presente invenção. 0 aparelho de descodificação de acordo com a presente invenção foi explicado acima utilizando a presente forma de realização, mas a presente invenção não está limitada a esta.
Na presente forma de realização, por exemplo, é fornecida uma explicação para o caso em que a descodificação é realizada num fluxo de bits que foi gerado utilizando codificação intra-imagem, mas podem alcançar-se os mesmos efeitos também para o caso em que a descodificação é realizada num fluxo de bits que foi gerada utilizando codificação inter-imagens realizando compensação de movimento e outras numa imagem de entrada em movimento.
Além disso, na presente forma de realização, é dada uma explicação para o caso em que um fluxo de bits na qual os dados de imagem estão codificados estando divididos em blocos de pixéis, cada um dos quais tem uma dimensão de 4 (horizontal) x 4 (vertical) pixéis, no entanto, pode ser dada uma dimensão diferente para o bloco de pixéis.
Além disso, é dada uma explicação na presente forma de realização para o caso em que são utilizadas quatro tabelas de probabilidade e comutadas de acordo com a tabela de transição ilustrada na Fig. 17, mas podem ser empregues valores diferentes para o número de tabelas de probabilidade e para valores de limiar para os valores absolutos dos valores do coeficiente L quando as tabelas de probabilidade são comutadas conforme ilustrado na Fig. 17.
Também na presente forma de realização, embora a Fig. 15B seja utilizada para explicar um método para realizar varrimento num bloco de coeficientes, pode também ser empregue uma outra ordem de varrimento desde que seja a mesma que o método de varrimento empregou no momento da codificação.
Além disso, é descrito um exemplo de uma tabela binária, com referência à Fig. 21, mas pode ser empregue outra tabela desde que seja a mesma que a tabela binária utilizada no momento da codificação.
Além disso, embora seja dada uma explicação na presente forma de realização para o caso em que a unidade de codificação aritmética 701 realiza codificação aritmética binária, em vez disso pode ser realizada descodificação aritmética multi-valor. Nesse caso, é possível omitir a unidade de conversão multi-valor 702.
Subsequentemente, outras formas de realização de acordo com a presente invenção são ainda descritas com referência aos diagramas. (Quinta Forma de Realização) A Fig. 22 é um diagrama de blocos mostrando uma estrutura funcional de um aparelho de codificação 100c ao qual são aplicados o método de codificação de comprimento variável de acordo com a presente invenção e o método de codificação de imagem em movimento que o utilizam. Na quinta forma de realização, a estrutura funcional para um caso de codificação intra-imagem é descrita uma imagem de entrada utilizando o método de codificação de imagem em movimento da presente invenção como ilustrado para os aparelhos de codificação 100a e 100b descritos nas primeira e terceira formas de realização. Do mesmo modo, cada unidade que compõe este aparelho de codificação 100c pode ser realizada com uma CPU, uma ROM para armazenar antecipadamente um programa ou dados executados pela CPU e uma memória para fornecer uma área de trabalho ao executar o programa bem como para armazenar temporariamente a imagem de entrada, ou semelhantes.
Como mostrado na Fig. 22, o aparelho de codificação 100c de acordo com a quinta forma de realização é composto pela unidade de conversão de bloco 110, pela unidade de transformação de frequência 120, pela unidade de quantificação 130 e pela unidade de codificação de comprimento variável 160.
Aqui, o aparelho de codificação 100a de acordo com a primeira forma de realização está estruturado para que os pares de R e L sejam codificados utilizando uma pluralidade de tabelas de codificação de comprimento variável (tabelas VLC) e o aparelho de codificação 100b de acordo com a terceira forma de realização está estruturado para que L e R sejam codificados aritmeticamente separadamente utilizando uma pluralidade de tabelas de probabilidade. No entanto, o aparelho de codificação 100c de acordo com a quinta forma de realização está estruturado para que L e R sejam codificados separadamente utilizando uma pluralidade das tabelas VLC, o que distingue o aparelho de codificação 100c dos aparelhos de codificação 100a e 100b. Por conseguinte, o aparelho de codificação 100c inclui a unidade de codificação de comprimento variável 160 em vez das unidades de codificação de comprimento variável 140 e 150 nos aparelhos de codificação 100a e 100b. No que se refere a outros componentes, as descrições estão abreviadas uma vez que eles são os mesmos que os descritos para os aparelhos de codificação 100a e 100b, e a unidade de codificação de comprimento variável 160 é descrita em pormenor. A unidade de codificação de comprimento variável 160 gera uma sequência L e uma sequência R com base nos coeficientes de frequência quantificados pela unidade de quantificação 130 e então gera um fluxo de bits de valores absolutos de coeficientes |L|, ou semelhantes, utilizando um método de comutação VLC unidimensional. A Fig. 23 é um diagrama de blocos mostrando em pormenor uma estrutura funcional da unidade de codificação de comprimento variável 160.
Como mostrado na Fig. 23, a unidade de codificação de comprimento variável 160 é compreendida por uma unidade de geração de sequência RL 161, uma unidade de atribuição de código 163 e uma unidade de armazenamento de tabela 164. A unidade de geração de sequência RL 161 gera a sequência R e a sequência L separadamente realizando varrimento em ziguezague nos coeficientes de frequência quantificados (a serem simplesmente referidos como "coeficientes" daqui para a frente) começando no domínio da baixa frequência para o domínio da alta frequência.
Para ser mais preciso, quando os coeficientes no bloco mostrado na Fig. 3A são introduzidos, a unidade de geração de sequência RL 161 realiza varrimento em ziguezague como mostrado na Fig. 3B. A unidade de geração de sequência RL 161 obtém então primeiramente, para a sequência L, m indicando o número de valores do coeficiente L não nulos, uma sequência de valores absolutos desses coeficientes |L| e uma sequência de sinais para esses coeficientes, como mostrado na Fig. 24A. Isto acontece porque L não depende de R e pode ser obtido de forma independente enquanto que R depende de L. Subsequentemente, a unidade de geração de sequência RL 161 gera uma sequência de R (sequência R) como mostrado na Fig. 24B. A unidade de armazenamento de tabela 164 armazena uma pluralidade de tabelas VLC (por exemplo, 8) da 1641a ~ 1641g para realizar codificação de comprimento variável em cada valor absoluto dos coeficientes |L| na sequência L, uma pluralidade de valores de limiar para o valor absoluto do coeficiente |L|, e uma tabela de valor de limiar 1642 para comutar adaptativamente entre as tabelas VLC 1641a ~ 1641g de acordo com o valor absoluto do coeficiente |L|. A Fig. 25 é um diagrama mostrando exemplos estruturais para as tabelas VLC 1641a ~ 1641g. Cada uma das tabelas VLC 1641a ~ 1641g correlaciona efetivamente valores absolutos dos coeficientes |L| e códigos binários, o que é mostrado numa única tabela no diagrama.
Aqui, um número de código mais baixo é atribuído ao valor absoluto do coeficiente |L| à medida que uma frequência de aparecimento do valor absoluto do coeficiente |L| se torna mais elevada, e geralmente, quanto mais baixo for o valor absoluto do coeficiente |L|, mais elevada se torna a frequência de aparecimento. Isto acontece porque o valor maior do valor absoluto do coeficiente |L| se dispersa, seja num vídeo ou num ecrã, para que a frequência de aparecimento do mesmo valor seja baixa enquanto que o valor mais baixo do valor absoluto do coeficiente |L|, nomeadamente, uma componente de alta frequência tem uma forte tendência para indicar "1" e "2", e em consequência disso a frequência de aparecimento do mesmo valor torna-se mais elevada. Por outro lado, utilizar apenas o valor absoluto do coeficiente |L|, o código binário e a tabela VLC, que estão mutuamente correlacionados, torna o comprimento do código muito longo à medida que o valor absoluto do coeficiente |L| se torna maior. Por conseguinte, as tabelas VLC 1641a ~ 1641g a ser aplicadas a depender do valor absoluto do coeficiente |L| são preparadas antecipadamente para que o comprimento de código não se torne mais longo mesmo quando o valor absoluto do coeficiente |L| se torna maior.
Cada uma das tabelas VLC 1641a ~ 1641g tem um ritmo de mudança diferente no comprimento de código para coeficientes: um comprimento de código para o valor mais baixo do coeficiente torna-se mais longo numa ordem crescente do número k atribuído a cada uma das tabelas e um comprimento de código para o valor maior do coeficiente torna-se mais curto numa ordem crescente do número k.
Para ser mais concreto, a tabela VLC 1641a é uma tabela na qual um comprimento de código é o mais curto quando o valor absoluto do coeficiente |L| é baixo e um comprimento de código é o mais longo quando o valor absoluto do coeficiente |L| é elevado. Nomeadamente, a tabela VLC 1641a, da tabela VLC 1641a ~ 1641g, é uma tabela na qual o ritmo de mudança no comprimento de código para valores absolutos do coeficiente |L| é o maior, e é adequada para o caso em que o valor absoluto do coeficiente |L| é baixo (por exemplo, "1" ~ "3"). A tabela de comprimento variável 1641g é uma tabela na qual um comprimento de código é o mais longo quando o valor absoluto do coeficiente |L| é elevado e um comprimento de código é o mais curto quando o valor absoluto do coeficiente |L| é elevado. Nomeadamente, a tabela VLC 1641g, da tabela VLC 1641a ~ 1641g, é uma tabela na qual o ritmo de mudança no comprimento de código para valores absolutos do coeficiente |L| é o mais baixo, e é adequada para o caso em que o valor absoluto do coeficiente |L| é elevado (por exemplo, "193").
As tabelas VLC 1641b ~ 1641f, são as tabelas nas quais o comprimento de código se torna gradualmente mais longo à medida que o valor absoluto do coeficiente |L| diminui e se torna gradualmente mais curto à medida que o valor absoluto do coeficiente |L| aumenta, numa ordem crescente desde 1641b para 1641f. Nomeadamente, as tabelas VLC 1641b 1641f são as tabelas nas quais o ritmo de mudança no comprimento de código para valores absolutos dos coeficientes |L| diminui gradualmente. A tabela VLC 1641b é adequada para ser usada quando o valor absoluto do coeficiente |L| está, por exemplo, entre "4" e "6" enquanto que a tabela VLC 1641c é adequada para ser usada quando o valor absoluto do coeficiente |L| está, por exemplo, entre "7" e "12".
Deste modo, é possível melhorar a eficiência de codificação uma vez que o código de comprimento variável com o comprimento de código baseado no coeficiente pode ser adaptado a cada tabela. Por outras palavras, é possível encurtar o comprimento de código de forma notável através da comutação entre as tabelas em função do coeficiente para que o coeficiente possa estar codificado no código de comprimento variável cujo comprimento de código é mais curto numa tabela que noutra quando o coeficiente é baixo e o coeficiente pode ser codificado no código de comprimento variável cujo comprimento de código é mais curto numa tabela que noutra quando o coeficiente é elevado. Além disso, a melhoria da eficiência de codificação pode ser realizada uma vez que uma gama na qual o comprimento de código se torna mais curto pode ser atribuída a cada uma das tabelas. A codificação não utiliza codificação aritmética mas sim um método VLC, por conseguinte, é desnecessário processamento complexo requerido pela codificação aritmética, e a codificação de comprimento variável é facilmente realizada através de referência a uma tabela uma vez que a tabela esteja determinada para codificação. A Fig. 2 6 é um diagrama mostrando um exemplo estrutural da tabela de valor de limiar 1642. A tabela de valor de limiar 1642 é configurada antecipadamente de acordo com as características das tabelas VLC 1641a ~ 1641g e guarda uma pluralidade de valores de limiar para serem usados para comutação entre as tabelas VLC 1641a ~ 1641f. Por exemplo, os valores de limiar são configurados respetivamente como a seguir se descreve: "4" para a comutação entre as tabelas VLC 1641a e 1641b, "7" para a comutação entre as tabelas VLC 1641b e
1641c, ... e "193" para a comutação entre as tabelas VLC 1641f e 1641g. Deste modo, o momento para a comutação entre as tabelas pode ser facilmente previsto, por conseguinte, é possível comutar para a tabela mais favorável de acordo com 0 valor absoluto do coeficiente |L|. A unidade de atribuição de código 163 realiza codificação de comprimento variável nos valores absolutos dos coeficientes |L| gerados da unidade de geração de sequência RL 161, separadamente da sequência R, utilizando as tabelas VLC 1641a ~ 1641g bem como a tabela de valor de limiar 1642 armazenada na unidade de armazenamento de tabela 164 e então atribui-lhes códigos binários. Dizendo de forma sucinta, a unidade de atribuição de código 163 torna unidimensionais os valores absolutos dos coeficientes 1 L | . 0 seguinte descreve uma operação de codificação realizada pelo aparelho de codificação 100c. As operações realizadas pela unidade de conversão de bloco 110 ~ a unidade de quantificação 130 estão abreviadas uma vez que são descritas para os aparelhos de codificação 100a e 100b, e a codificação de comprimento variável efetuada pela unidade de codificação de comprimento variável 160 é explicada em pormenor.
Os coeficientes de frequência quantificados pela unidade de quantificação 130 são introduzidos na unidade de geração de sequência RL 161 no aparelho de codificação de comprimento variável 160. A unidade de geração de sequência RL 161, como a da
Fig. 3B, primeiramente torna unidimensionais os coeficientes de frequência quantificados no bloco realizandovarrimento em ziguezague nos mesmos começando no domínio das componentes de corrente contínua para o domínio das componentes de alta frequência. A unidade de geração de sequência RL 161 gera então separadamente uma sequência de "L"s, cada um dos quais indicando um coeficiente não nulo (a ser referida como "sequência L" daqui para a frente) e uma sequência de "R"s, cada um dos quais indicando o número de coeficientes nulos consecutivos (a ser referida como "sequência R" daqui para a frente) . As Figs. 24A e 24B mostram exemplos da sequência L e da sequência R geradas. No que se refere à sequência L, ela pode ser dividida no número de coeficientes m, valores absolutos dos coeficientes |L| e sinais dos coeficientes. Relativamente aos sinais dos coeficientes, "0" indica que o coeficiente é positivo enquanto que "1" indica que o coeficiente é negativo.
Aqui, o coeficiente da sequência L aproxima-se de "1" através de varrimento desde o domínio da baixa frequência para o domínio da alta frequência uma vez que o coeficiente da componente de alta frequência tende geralmente a tornar-se "0". A unidade de atribuição de código 163 codifica cada valor de L na sequência L gerada pela unidade de geração de sequência RL 161 numa ordem oposta à ordem utilizada para varrimento em ziguezague, isto é, começando a partir dos coeficientes de alta frequência. Nomeadamente, a unidade de atribuição de código 163 obtém em sequência códigos de Huffman (códigos de comprimento variável) correspondentes aos valores absolutos dos coeficientes |L| começando a partir do final da sequência L, utilizando as tabelas VLC 1641a ~ 164lg. A razão para codificar o valor L numa ordem inversa à ordem utilizada para varrimento em ziguezague é que os coeficientes não nulos no domínio da alta frequência convergem numa periferia do coeficiente "1", e é fácil de determinar a primeira tabela para codificação, para gerar as tabelas VLC 1641a ~ 1641g e de determinar os valores de limiar. A unidade de atribuição de código 163 atribui os códigos de comprimento variável aos "L"s na sequência L e aos "R"s na sequência R utilizando várias tabelas armazenadas na unidade de armazenamento de tabela 164. A unidade de atribuição de código 163 também atribui um código de comprimento variável ao número de coeficientes m, mas o processamento da atribuição dos códigos de comprimento variável aos valores absolutos dos coeficientes IL| é aqui descrito. A Fig. 27 é um fluxograma mostrando o processamento da atribuição dos códigos de comprimento variável efetuado pela unidade de atribuição de código 163. A unidade de atribuição de código 163 configura o número de coeficientes m gerados da unidade de geração de sequência RL 161 como um começo para a codificação dos coeficientes (valores absolutos dos coeficientes |L|) no bloco (S101). Então, a unidade de atribuição de código 163 configura "0" para o número de tabela k como um valor inicial da tabela VLC para ser usado para referência (S10 2), refere-se à tabela de valor de limiar 1642 e configura um valor de limiar para "4" (S103) .
Quando as configurações do número de coeficientes m, da tabela VLC referencial (tabela VLC 1641a neste caso) e do valor de limiar estão concluídas, a unidade de atribuição de código 163 lê o valor absoluto do coeficiente IL | , que é gerado pela unidade de geração de sequência RL 161, começando a partir do último (S104) e codifica o valor absoluto lido do coeficiente |L| para um código de comprimento variável utilizando a tabela VLC com o número antecipadamente estabelecido (S105) . Então, quando a codificação está finalizada, a unidade de atribuição de código 163 armazena o código binário obtido pela codificação numa memória tampão (por exemplo, uma memória tampão FILO ) que não é mostrado no diagrama (S106) , decrementa o número de coeficientes m de "1" (S107) e determina se o número m decrementado indica "0" ou não, nomeadamente, se todos os coeficientes incluídos na sequência L estão ou não codificados (S108) .
Quando o número de coeficientes m não indica "0" (Não no S108), é determinado se o valor absoluto do coeficiente imediatamente anterior ultrapassou ou não o valor de limiar (S109) . Quando ele não ultrapassa o valor de limiar (Não no S109), a unidade de atribuição de código 163 lê o valor absoluto do coeficiente |L| seguinte, começando a partir do último (S104) , e executa as Etapas S105 ~ S108,ou semelhantes. Nomeadamente, a unidade de atribuição de código 163 codifica o valor absoluto do seguinte coeficiente utilizando a mesma tabela VLC que é usada para o coeficiente anterior.
Quando o valor absoluto do coeficiente |L| imediatamente anterior tiver ultrapassado o valor de limiar (Não no S109), a unidade de atribuição de código 163 incrementa o número de tabela k de "1" (S110) . Deste modo, ao codificar o valor absoluto do coeficiente |L| seguinte, é referida a tabela VLC com baixo ritmo de mudança no comprimento de código, que é aplicável à codificação do valor absoluto do coeficiente |L| cujo comprimento de código é longo (por exemplo, a tabela VLC 1641b com k=l é referida quando a tabela VLC anterior é 1641a com k=0) .
Quando o incremento para o número de tabela k está terminado, a unidade de atribuição de código 163 refere-se à tabela de valor de limiar 1642 e atualiza-a para o valor de limiar seguinte (por exemplo "7" quando o valor de limiar anterior é "4") (Slll). Deste modo, a tabela pode ser comutada para a tabela VLC seguinte com um baixo ritmo de mudança no comprimento de código, que é aplicável à codificação do valor absoluto do coeficiente |L| cujo comprimento de código é longo, apenas quando o valor absoluto do coeficiente |L| tiver ultrapassado o novo valor de limiar.
Mais precisamente, quando o valor absoluto do coeficiente |L| anterior tiver ultrapassado o valor de limiar "4" atribuído à comutação entre as tabelas VLC 1641a com o número de tabela "0" e 1641b com o número de tabela "1", a referência é comutada da tabela VLC 1641a para a tabela VLC 1641b para codificação do valor absoluto do seguinte coeficiente, e o valor de limiar é estabelecido para "7", como mostrado na Fig. 28.
De forma semelhante, quando o valor absoluto do coeficiente |L| anterior tiver ultrapassado o valor de limiar "7" - "193" entre a tabela VLC 1641b com o número de tabela "1" e a tabela VLC 1641g com o número de tabela "6", a referência para codificação do valor absoluto do coeficiente do coeficiente |L| seguinte é comutada sequencialmente da tabela VLC 1641b com o número de tabela "1" para a tabela VLC 1641c com o número de tabela "2", ... e para a tabela VLC 1641g. Isto é mostrado na Fig. 28.
Aqui, uma direção de comutação entre as tabelas é unidirecional e não volta para trás. Deste modo, a comutação frequente das tabelas em função do coeficiente pode ser impedida e em consequência disso o número de vezes de comutação entre as tabelas pode ser reduzido. Por exemplo, uma vez que a área de trabalho na memória tem um espaço limitado, apenas a tabela a ser utilizada é armazenada. Neste caso, leva tempo para começar a codificar o seguinte coeficiente uma vez que leva tempo a ler a seguinte tabela da ROM e a expandi-la na área de trabalho de cada vez que a tabela é comutada. Comutar desta forma unidirecional entre as tabelas é eficaz na limitação do número de vezes de comutação entre as tabelas e em abreviar o tempo total necessário para codificar o seguinte coeficiente .
Quando o incremento do número de tabela e a atualização do valor de limiar como tal estão terminados, a unidade de atribuição de código 163 lê o valor absoluto do coeficiente |L| seguinte, começando a partir do último (S10 4) e executa as Etapas S105 ~ S108, ou semelhantes. Nomeadamente, a codificação é executada utilizando a tabela VLC adequada para o caso em que o valor absoluto do coeficiente |L| é maior que o anterior.
Tal processamento é executado repetidamente até o número de coeficientes m indicar "0", que é o instante em que a codificação dos valores absolutos dos coeficientes |L| no bloco atual termina.
Para ser mais concreto, quando a sequência dos valores absolutos dos coeficientes |L| no bloco são "1", "1", "2", "3", "4", "12", "2", "3", "31", "22", "5", "9" e "38", começando a partir do final da sequência, a unidade de atribuição de código 163 codifica-os respetivamente em códigos binários "1", "1", "010", "011", "00100" e "0001100" por esta ordem utilizando primeiramente a tabela VLC 1614a. A unidade de atribuição de código 163 comuta então a tabela para codificação para a tabela VLC 1641b com o número de tabela k=l uma vez que o valor de limiar "4" seja ultrapassado quando o valor absoluto do coeficiente |L| que indica "12" seja codificado. A unidade de atribuição de código 163 codifica então o valor absoluto do coeficiente |L| seguinte que indica "2", "3" e "31" em códigos binários "11", "0100" e "0000100000" com a utilização da tabela VLC 1641b para a qual a tabela é comutada. A unidade de atribuição de código 163 comuta então a tabela para codificação para a tabela VLC 1641c com o número de tabela k=2 uma vez que o valor de limiar "7" seja ultrapassado ao codificar o valor absoluto do coeficiente |L| que indica "31".
Além disso, a unidade de atribuição de código 163 codifica o valor absoluto do seguinte coeficiente num código binário "0011001" utilizando a tabela VLC 1641c para a gual a tabela é comutada. A unidade de atribuição de código 163 comuta então a tabela para codificação para a tabela VLC 1641d com o número de tabela k=3 uma vez gue o valor de limiar "13" seja ultrapassado ao codificar o valor absoluto do coeficiente |L| gue indica "22". A unidade de atribuição de código 163 codifica então respetivamente os valores absolutos dos coeficientes |L| seguintes gue indicam "5", "9" e "38" em códigos binários "1100", "010000" e "00101101" utilizando a tabela VLC 1641d para a gual a tabela é comutada.
Conseguentemente, o código binário "1101001100100000110011010000001000000011001110001000000101 101" é armazenado na memória tampão. O número de coeficientes na sequência L, m, os códigos binários dos valores absolutos dos coeficientes |L|, os sinais dos coeficientes e os códigos binários dos valores R na seguência R, gue estão codificados, são também armazenados na memória tampão e transmitidos a um aparelho de descodificação via um suporte de gravação como um CD e um meio de transmissão como uma Internet, uma difusão por satélite, ou semelhantes.
Agui, guando é assumido gue os valores absolutos dos coeficientes na seguência L, "1", "1", "2", "3", "4", "12", "2", "3", "31", "22", "5", "9" e "38" são codificados utilizando apenas a tabela VLC 1641a, os códigos binários são "1", "1", "010", "011", "00100", "0001100", "010", "011", "010", "011", "000011111", "000010110", "00101", "001001" e "00000100110", nos guais o comprimento de código totaliza 64 bits.
Ao contrário, através da utilização do método de codificação de acordo com a guinta forma de realização, é possível melhorar a eficiência de codificação mesmo guando o valor maior do valor absoluto do coeficiente |L| no bloco é relativamente baixo e o valor absoluto do coeficiente |L| não aumente gradualmente uma vez que o comprimento de código totalize 61 bits. Isto deve-se grandemente ao facto de quando o valor absoluto do coeficiente |L| indica, por exemplo, "22" e "38", ele requer 9 bits de "000010110" e 11 bits de "00000100110" utilizando apenas a tabela VLC 1614a para a codificação enquanto que ele requer apenas 7 bits de "0011001" e 8 bits de "00101101" utilizando o presente método. Por conseguinte, é possível melhorar a eficiência de codificação notavelmente quando o valor maior do coeficiente |L| no bloco normal é relativamente elevado e o valor absoluto do coeficiente |L| aumenta gradualmente.
Na quinta forma de realização, quando o valor absoluto do coeficiente |L| imediatamente anterior tiver ultrapassado o valor de limiar (Sim em S109), o número de tabela k é incrementado de "1" (S110) e a codificação é realizada utilizando a tabela VLC com o número seguinte (ver referência à Fig. 28) . No entanto, pode saltar-se a tabela para a tabela VLC adaptada ao valor absoluto do coeficiente |L| em função do valor absoluto do coeficiente | L | imediatamente anterior que tiver ultrapassado o valor de limiar. Nomeadamente, quando o valor absoluto do coeficiente |L| imediatamente anterior a ser codificado com referência à tabela com o número k=l seja "20", por exemplo, existe uma possibilidade elevada que o valor absoluto do coeficiente |L| seguinte seja maior que "20", por conseguinte, a tabela com o número k=3 pode ser utilizada como referência para codificar o valor absoluto do coeficiente |L| seguinte. Neste caso, o valor de limiar pode ser ajustado para o correspondente à tabela VLC (por exemplo, 25). É explicado que são utilizadas oito tabelas VLC, mas o número de tabelas VLC pode estar entre 2 ~ 7 ou ser maior que oito, utilizando uma pluralidade de valores de limiar, e a tabela VLC pode ser comutada de cada vez que cada valor de limiar é ultrapassado.
Do mesmo modo, na quinta forma de realização, o valor absoluto e o sinal do coeficiente são codificados separadamente e cada tabela VLC para valores absolutos de coeficientes não contém sinais (valores absolutos), no entanto, os coeficientes com os sinais podem ser codificados. Neste caso, os códigos binários podem incluir os sinais. Por exemplo, pode ser acrescentado um bit para o sinal a um bit LSB para o código de comprimento variável.
Na quinta forma de realização, é descrito o caso no qual uma imagem é codificada através de codificação intra-imagem, no entanto, podem obter-se os mesmos efeitos para o caso no qual uma imagem é codificada através de codificação inter-imagens realizando compensação de movimento e outras numa imagem de entrada em movimento, utilizando o método de acordo com a presente forma de realização.
Do mesmo modo, a quinta forma de realização descreve o caso de dividir a imagem de entrada em blocos, cada um dos quais tem dimensão de 4 (horizontal) x 4 (vertical) pixéis, no entanto, pode ser dada uma dimensão diferente à dimensão do bloco. A quinta forma de realização descreve um método de varrimento de um bloco com referência à Fig. 3B, no entanto, pode ser empregue método diferente de varrimento desde que o varrimento seja realizado a partir do domínio da baixa frequência para o domínio da alta frequência.
Do mesmo modo, um exemplo da tabela VLC é descrito com referência à Fig. 25, no entanto, pode ser uma tabela diferente. A quinta forma de realização descreve o caso de acrescentar o número de valores L ao início da sequência L, no entanto, o EOB pode estar agregado ao final da sequência L. (Sexta Forma de Realização) A Fig. 30 é um diagrama de blocos mostrando uma estrutura funcional de um aparelho de descodificação ao qual são aplicados o método de descodificação de comprimento variável e o método de descodificação de imagem em movimento que o utilizam de acordo com a forma de realização da presente invenção. Aqui, será utilizado o fluxo de bits gerado utilizando o método de codificação de comprimento variável do presente invenção descrito na quinta forma de realização.
Como mostrado na Fig. 30, o aparelho de descodificação 500c é compreendido por uma unidade de descodificação de comprimento variável 560, uma unidade de quantificação inversa 520, uma unidade de transformação de frequência inversa 530 e uma memória de imagem 540. Cada unidade que compõe este aparelho de descodificação 500c pode ser realizada com uma CPU, uma ROM para armazenar antecipadamente um programa ou dados executados pela CPU e uma memória para fornecer uma área de trabalho quando o programa é executado bem como para armazenar temporariamente um fluxo de bits de entrada, ou semelhantes. No que se refere à unidade de quantificação inversa 520, à unidade de transformação de frequência inversa 530 e à memória de imagem 540, as estruturas são as mesmas que as descritas para os aparelhos de descodificação 500a e 500b, por conseguinte as descrições estão abreviadas, e a estrutura da unidade de descodificação de comprimento variável 560 é explicada em pormenor. A unidade de descodificação de comprimento variável 560 é compreendida por uma unidade de conversão de código561, uma unidade de armazenamento de tabela 562 e uma unidade de geração de coeficiente 564. A unidade de armazenamento de tabela 562 armazena antecipadamente uma pluralidade de tabelas VLC 5621a 5621g correlacionando códigos de comprimento variável com valores absolutos de coeficientes |L| bem como uma tabela de valor de limiar 5622, ou análoga. As tabelas VLC 5621a ~ 5621g são construídas da mesma forma que as tabelas VLC 1641a ~ 1641g mostradas na Fig. 25 e a tabela de valor de limiar 5622 é construída da mesma forma que a tabela de valor de limiar 1642 mostrada na Fig. 26. A unidade de conversão de código 561 realiza conversão num fluxo de bits introduzidos para que os códigos de comprimento variável sejam convertidos nos números de coeficientes na sequência L m, nos valores absolutos dos coeficientes |L| e nos valores R na sequência R, utilizando as tabelas armazenadas na unidade de armazenamento de tabela 562 (as tabelas VLC 5621a ~ 5621g e a tabela de valor de limiar 5622, e semelhantes). As tabelas VLC 5621a ~ 5621g são usadas para a conversão dos valores absolutos dos coeficientes |L|. A unidade de geração de coeficiente 564 converte os valores RL em coeficientes com base na sequência L e sequência R introduzidas e torna-as bidimensionais utilizando um método de varrimento predeterminado. Quando se converte a sequência RL em coeficientes, é gerado um coeficiente "0" para o número indicado por R baseado numa ordem de varrimento predeterminada, então, é gerado o coeficiente indicado por L. Aqui, assumindo que os coeficientes são lidos em ziguezagues começando no domínio da baixa frequência para o domínio da alta frequência, a sequência RL é convertida num bloco de coeficientes mostrado na Fig. 11. O bloco de coeficientes gerado é introduzido na unidade de quantificação inversa 520. O seguinte descreve operações de descodificação em cada unidade na unidade de descodificação de comprimento variável 560.
Aqui, é descrito com o pressuposto de que os códigos do fluxo de bits de entrada de código binário introduzidos pela unidade de conversão de código561 são "1", "1", "101", "011", "00100", "0001100", "11", "0100", "0000100000", "0011001", "1100", "010000" e "00101101" em sequência começando a partir da cabeça. A unidade de conversão de código 561, como um começo para descodificar os códigos de comprimento variável, descodifica o número de coeficientes m gerados do aparelho de codificação 100c e configura o número descodificado de coeficiente m. A unidade de conversão de código 561 configura então o número de tabela k para "0" como um valor inicial de uma tabela VLC de referência. Então, a unidade de atribuição de código 163 refere-se à tabela de valor de limiar 5622 e configura um valor de limiar para "4" (S103). Após o número de coeficientes m, são estabelecidos a tabela VLC de referência (neste caso a tabela VLC 5621a) e o valor de limiar, a unidade de conversão de código561 lê sequencialmente os valores absolutos dos coeficientes |L| a partir da cabeça (nomeadamente, a partir daqueles no domínio da alta frequência) numa ordem na qual eles são gerados do aparelho de codificação 100c e realiza descodificação de comprimento variável nos códigos de comprimento variável lidos para os valores absolutos dos coeficientes |L| utilizando a tabela VLC com o número estabelecido. Após a descodificação de cada código de comprimento variável, a unidade de conversão de código561 armazena o valor absoluto do coeficiente |L| obtido na descodificação numa memória tampão que não é mostrada no diagrama (por exemplo uma memória tampão FILO), decrementa o número de coeficientes m de "1" e determina se o número m decrementado indica "0" ou não após o decremento, isto é, se todos os coeficientes incluídos na sequência L estão codificados ou não.
Quando o número de coeficientes m não indica "0", é determinado se o valor absoluto do coeficiente | L | imediatamente anterior que está descodificado através de comprimento variável ultrapassou ou não o valor de limiar. Quando não tiver ultrapassado o valor de limiar, a unidade de conversão de código 561 lê o código de comprimento variável seguinte a partir do final e descodifica-o como um valor absoluto do coeficiente |L| utilizando a mesma tabela usada para o anterior.
Quando o valor absoluto do coeficiente |L| imediatamente anterior que está descodificado através de comprimento variável tiver ultrapassado o valor de limiar, a unidade de conversão de código561 incrementa o número de tabela k de "1". Deste modo, ao codificar o valor absoluto do coeficiente |L| seguinte, a tabela VLC com baixo ritmo de mudança no comprimento de código, que é aplicável à codificação do valor absoluto do coeficiente |L| cujo comprimento de código é longo (por exemplo, a tabela VLC 5621b é referida quando a tabela VLC anterior é 5621a), é referida. Quando o incremento para o número de tabela k está terminado, a unidade de conversão de código561 refere-se à tabela de valor de limiar 5622 e atualiza-a para o valor de limiar seguinte (por exemplo "7" quando o valor de limiar anterior é "4") . Deste modo, a tabela pode ser comutada para a tabela VLC seguinte com baixo ritmo de mudança no comprimento de código, que é aplicável à codificação do valor absoluto do coeficiente |L| cujo comprimento de código é longo, apenas quando o valor absoluto do coeficiente |L| tiver ultrapassado o novo valor de limiar.
Para ser mais concreto, a tabela VLC 5621a com o número de tabela k=0 é referida para o primeiro código de comprimento variável. Agora, assume-se que a tabela VLC 5621a é referida, o código de comprimento variável que corresponde ao fluxo de bits de entrada é "1" e o valor absoluto do coeficiente |L| neste caso é "1". De forma semelhante, ao proceder sequencialmente à conversão de códigos de comprimento variável para valores absolutos dos coeficientes |L| utilizando a tabela VLC 5621a, os códigos de comprimento variável são convertidos para os valores absolutos dos coeficientes |L| como a seguir se descreve: o código de comprimento variável "1" para o valor absoluto do coeficiente |L| "1"; o código de comprimento variável "010" para o valor absoluto do coeficiente |L| "3"; o código de comprimento variável "00100" para o valor absoluto do coeficiente "4"; e o código de comprimento variável "0001100" para o valor absoluto do coeficiente |L| "12".
Aqui, assumindo que o valor de limiar para o valor absoluto do coeficiente |L| é "4", o valor absoluto do coeficiente |L| ultrapassa o valor de limiar quando o sexto código de comprimento variável é convertido. Por conseguinte, a unidade de conversão de código561 utiliza a tabela VLC 5621b seguinte com o número k=l para a conversão dos valores absolutos subsequentes dos coeficientes |L|, configura o valor de limiar para "7" e converte-os para os valores absolutos dos coeficientes |L|. Consequentemente, o sétimo código de comprimento variável "11" é convertido para o valor absoluto do coeficiente |L| "2". O oitavo código de comprimento variável "0100" é convertido para o valor absoluto do coeficiente |L| "3" enquanto que o nono código de comprimento variável "000010000" é convertido para o valor absoluto do coeficiente |L| "31". Assumindo aqui que o valor de limiar para o valor absoluto do coeficiente |L| é "7", o valor absoluto do coeficiente |L| ultrapassa o valor de limiar no nono valor absoluto do coeficiente |L| "31". Por conseguinte, a unidade de conversão de código561 utiliza a tabela VLC 5621b seguinte com o número de tabela k=2 para a conversão dos valores absolutos subsequentes dos coeficientes |L|, configura o valor de limiar para "13" e converte-os para os valores absolutos dos coeficientes |L|. Entretanto, mesmo quando o valor absoluto do coeficiente |L| obtido na descodificação para o sétimo valor absoluto do coeficiente |L| vai abaixo do valor de limiar "7", a tabela não é comutada de volta para a tabela VLC 5621a e realiza a conversão utilizando a tabela VLC 5621b.
Com a repetição do processamento acima, são gerados os valores absolutos dos coeficientes | L | equivalentes a um único bloco (coeficientes "m") e são reordenados por ordem inversa utilizando primeiro a entrar último a sair efetuado pela memória tampão FILO. Os sinais também são reordenados por ordem inversa utilizando primeiro a entrar último a sair efetuado pela memória tampão FILO. No entanto, o número não será reordenado. É assumido aqui que a sequência é gerada pela mesma ordem que a utilizada para sequência L mostrada na Fig. 24A (nomeadamente uma ordem começando no domínio da baixa frequência para o domínio da alta frequência).
Cada um dos valores absolutos dos coeficientes |L| na sequência L reordenada desta forma é introduzido para a unidade de geração de coeficiente 564. A unidade de conversão de código 561 descodifica cada valor R na sequência R utilizando o mesmo processamento que o usado para os valores absolutos dos coeficientes |L| e gera a sequência R mostrada na Fig. 24A para a unidade de geração de coeficiente 564. A unidade de geração de coeficiente 564 converte a sequência RL em coeficientes com base na sequência L e sequência R introduzidas. Ao fazer isso, a unidade de geração de coeficiente 564 realiza uma conversão da sequência RL para coeficientes ao executar repetidamente a seguinte operação: gerar um coeficiente "0" para o número indicado por R e então gerar um coeficiente para o valor indicado L através da soma dos sinais. Aqui, assume-se que o varrimento é realizado em ziguezagues começando no domínio da baixa frequência para o domínio da alta frequência, a sequência R mostrada na Fig. 24A e a sequência L mostrada na Fig. 24B são convertidas para um bloco de coeficientes. O bloco de coeficientes gerado é introduzido na unidade de quantificação inversa 520.
Como descrito acima, no método de descodificação de comprimento variável de acordo com a sexta forma de realização, primeiramente na etapa de descodificação, uma pluralidade de tabelas de codificação (descodificação) de comprimento variável para serem usadas para descodificação são comutadas numa direção, os códigos de comprimento variável no fluxo de bits são descodificados para coeficientes não nulos de acordo com um domínio de frequência numa ordem predeterminada, utilizando a tabela VLC para a qual a tabela é comutada. Subsequentemente, na etapa de conversão de coeficiente, os coeficientes não nulos são convertidos para coeficientes num bloco com base nos coeficientes gerados. Aqui, cada uma das tabelas tem um ritmo de mudança diferente no comprimento de código para coeficientes para que um comprimento de código do coeficiente mais baixo se torne mais longo à medida que o número atribuído à tabela se torna maior e um comprimento de código do coeficiente maior se torne mais curto à medida que o número atribuído à tabela se torna maior. 0 valor de limiar é estabelecido com base na adaptabilidade de cada tabela na qual um comprimento de código correspondente a um coeficiente é mais curto que a outra tabela. Os códigos de comprimento variável no fluxo de bits estão ordenados numa ordem começando a partir das componentes de alta frequência para as componentes de baixa frequência. Na etapa de descodificação, os códigos de comprimento variável são descodificados para coeficientes de acordo com a ordem na qual o fluxo de bits está composta, uma sequência de coeficientes é gerada gerando os coeficientes descodificados numa ordem começando a partir do fim do fluxo de bits. Na etapa de geração de coeficientes, os coeficientes são varridos de acordo com a ordem na qual o fluxo de bits está composto.
Na etapa de codificação, quando o valor absoluto do coeficiente descodificado ultrapassa o valor de limiar, o código de comprimento variável seguinte é descodificado para um coeficiente através da comutação da tabela utilizada para descodificar código de comprimento variável atual para ser descodificado para uma tabela cujo número é maior que o que está atribuído à tabela atual.
Com o processamento acima, o fluxo de bits que está codificado utilizando o método de codificação de comprimento variável de acordo com a presente invenção pode ser corretamente descodificada utilizando o método de descodificação de comprimento variável de acordo com a presente invenção.
Na sexta forma de realização, é assumido que quando o valor absoluto do coeficiente |L| descodificado imediatamente anterior ultrapassa o valor de limiar, o número de tabela k é incrementado de "1" e a descodificação é realizada utilizando a tabela VLC com o número seguinte, como na quinta forma de realização. No entanto, pode saltar-se a tabela para a que estiver adaptada ao valor absoluto do coeficiente |L| de acordo com o valor absoluto do coeficiente |L| imediatamente anterior que tiver ultrapassado o valor de limiar, na condição de o método de comutação entre as tabelas ser o mesmo que o utilizado para a codificação. Neste caso, o valor de limiar pode ser ajustado para o correspondente à tabela VLC.
Na sexta forma de realização, é descrito um exemplo da tabela VLC com referência à Fig. 25, mas pode ser utilizada uma tabela diferente desde que seja aquela que foi utilizada para a codificação. Do mesmo modo, é descrito o caso da utilização de oito tabelas VLC, mas o número das tabelas pode estar entre duas e seis ou ser superior a oito, utilizando uma pluralidade de valores de limiar, e as tabelas VLC podem ser comutadas de cada vez que cada um dos valores de limiar seja ultrapassado. No entanto, a estrutura da tabela VLC e o valor de limiar aqui serão os mesmos que os utilizados para a codificação.
Do mesmo modo, na sexta forma de realização, o valor absoluto e o sinal do coeficiente são codificados separadamente e cada tabela VLC para valores absolutos de coeficientes não contém sinais (valores absolutos), no entanto, os coeficientes com os sinais podem ser codificados. Neste caso, os códigos binários podem incluir os sinais. Por exemplo, 1 bit pode ser acrescentado para o sinal a um bit LSB para o código de comprimento variável.
Do mesmo modo, na sexta forma de realização, a tabela VLC é comutada quando o valor L tiver ultrapassado o valor de limiar. Uma tabela VLC com um número elevado pode ser utilizada para descodificar os valores absolutos dos coeficientes |L| por ordem decrescente (nomeadamente, começando a partir de aqueles no domínio da alta frequência) e podem ser comutados para uma tabela VLC com um número baixo quando o valor absoluto do coeficiente |L| descodificado vai abaixo do valor de limiar.
Na sexta forma de realização, é descrito o caso no qual uma imagem é codificada através de codificação intra-imagem, no entanto, podem obter-se os mesmos efeitos para o caso no qual uma imagem é codificada através de codificação inter-imagens realizando compensação de movimento e outras numa imagem de entrada em movimento, utilizando o método de acordo com a presente forma de realização.
Do mesmo modo, a sexta forma de realização descreve o caso de dividir a imagem de entrada em blocos, cada um dos quais tem dimensão de 4 (horizontal) x 4 (vertical) pixéis, no entanto, pode ser dada uma dimensão diferente à dimensão do bloco. A sexta forma de realização descreve um método de varrimento de um bloco com referência à Fig. 11, no entanto, pode ser usada uma ordem de varrimento diferente desde que seja a mesma que foi utilizada para a codificação. (Sétima Forma de Realização) 0 seguinte descreve um exemplo para realizar o método de codificação de comprimento variável, o método de descodificação de comprimento variável, um aparelho de codificação de comprimento variável, o aparelho de descodificação de comprimento variável, o método de codificação de imagem em movimento, o método de descodificação de imagem em movimento, o aparelho de codificação de imagem em movimento e o aparelho de descodificação de imagem em movimento de acordo com a presente invenção noutra forma de realização. É possível realizar o processamento descrito em cada uma das formas de realização acima num sistema informático independente através da gravação de um programa para realizar as estruturas do aparelho de codificação ou do aparelho de descodificação mostrado em cada uma das formas de realização acima num suporte de gravação como uma disquete ou semelhante. A Fig. 32 é uma ilustração para executar o método de codificação de imagem em movimento descrito na primeira, terceira e quinta formas de realização ou o método de descodificação de imagem em movimento descrito na segunda, quarta e sexta formas de realização no sistema de computador utilizando o programa gravado na disquete na qual o programa é gravado. A Fig. 32B mostra uma apresentação total de uma disquete, a sua estrutura na secção transversal e a disquete em si enquanto que a Fig. 32A mostra um exemplo de um formato físico do disco flexível como um corpo principal de um suporte de armazenamento. Um disco flexível FD está contido num invólucro F com uma pluralidade de pistas Tr formadas concentricamente a partir da periferia para o interior na superfície do disco, e cada pista está dividida em 16 setores Se na direção angular. Deste modo, o programa é armazenado numa área que lhe é atribuída no disco flexível FD. A Fig. 32C mostra uma estrutura para gravar e ler o programa no disco flexível FD. Quando o programa está gravado no disco flexível FD, o sistema informático Cs escreve no programa via um leitor de disquetes. Quando o aparelho de codificação e o aparelho de descodificação são construídos no sistema de computador utilizando o programa na disquete, o programa é lido a partir da disquete e então transferido para o sistema de computador através do leitor de disquetes. A explicação acima é feita no pressuposto de que um suporte de armazenamento é uma disquete, mas o mesmo processamento pode também ser realizado utilizando um disco ótico. Para além disso, o suporte de armazenamento não está limitado a uma disquete e a um disco ótico, mas a qualquer outro suporte como um cartão de circuito integrado e uma cassete ROM capaz de gravar um programa pode ser utilizado. 0 seguinte é uma descrição para as aplicações do método de codificação/descodificação de imagem ilustrado na forma de realização acima e um sistema utilizando-as. A Fig. 33 é um diagrama de blocos mostrando uma configuração global de um sistema de fornecimento de conteúdo exlOO para realizar serviço de distribuição de conteúdo. A área para fornecer serviço de comunicação está dividida em células de dimensão desejada, e locais de células exl07~exll0, que são estações fixas sem fios, estão colocados nas respetivas células.
Este sistema de fornecimento de conteúdo exlOO está ligado a aparelhos tais como um computador exlll, um PDA (Assistente Pessoal Digital) exll2, uma câmara exll3, um telemóvel exll4 e um telemóvel com uma câmara exlló via, por exemplo, Internet exlOl, de um fornecedor de serviços Internet exl02, de uma rede telefónica exl04, bem como dos locais de células exl07~exll0.
No entanto, o sistema de fornecimento de conteúdo exlOO não está limitado à configuração mostrada na Fig. 33 e pode estar ligado a uma combinação de qualquer delas. Do mesmo modo, cada aparelho pode estar ligado diretamente à rede telefónica exl04, não através dos locais de células exl07~exll0. A câmara exll3 é um aparelho capaz de filmar vídeo como uma câmara de vídeo digital. 0 telemóvel exll4 pode ser um telemóvel de qualquer um dos seguintes sistemas: um sistema PDC (Comunicações Digitais Pessoais), um sistema CDMA (Acesso Múltiplo por Divisão de Código), um sistema W-CDMA (Acesso Múltiplo por Divisão de Código de Banda Larga) ou um sistema GSM (Sistema Global para Comunicações Móveis), um PHS (Sistema de Telefone Portátil Pessoal) ou semelhantes.
Um servidor de fluxo exl03 está ligado à câmara exll3 via a rede telefónica exl04 e também do local de células exl09, que realiza uma distribuição em direto ou semelhante utilizando a câmara exll3 com base nos dados codificados transmitidos a partir do utilizador. Quer a câmara exll3, quer o servidor que transmite os dados e semelhantes podem codificar os dados. Os dados de imagem em movimento filmados por uma câmara exll6 podem ser transmitidos ao servidor de fluxo exl03 via o computador exlll. Neste caso, quer a câmara exll6 quer o computador exlll podem codificar os dados de imagem em movimento. Um LSI exll7 incluído no computador exlll e a câmara exll6 realiza o processamento de codificação. 0 programa para codificar e descodificar imagens pode estar integrado em qualquer tipo de suporte de armazenamento (como um CD-ROM, uma disquete e um disco rígido) isto é um suporte de gravação que possa ser lido pelo computador exlll ou análogo. Para além disso, um telemóvel com uma câmara exlló pode transmitir os dados de imagem em movimento. Estes dados de imagem em movimento são os dados codificados pelo LSI incluído no telemóvel exlló. 0 sistema de fornecimento de conteúdo exlOO codifica conteúdos (como vídeo de música em direto) filmados por um utilizador utilizando a câmara exll3, a câmara exll6 ou análogas da mesma forma que é mostrado na forma de realização acima mencionada e transmite-os para o servidor de fluxo exl03, enquanto o servidor de fluxo exl03 procede à distribuição de fluxo dos dados de conteúdo para os clientes aos seus pedidos. Os clientes incluem o computador exlll, o PDA exll2, a câmara exll3, o telemóvel exll4 e assim por diante capazes de descodificar os dados codificados acima mencionados. No sistema de fornecimento de conteúdo exlOO, os clientes podem deste modo receber e reproduzir os dados codificados, e podem ainda receber, descodificar e reproduzir os dados em tempo real para assim realizar difusão pessoal.
Quando cada aparelho neste sistema realiza codificação ou descodificação, pode ser utilizado o aparelho de codificação de imagem ou o aparelho de descodificação de imagem mostrado na forma de realização acima mencionada.
Um telemóvel será explicado como um exemplo de um tal aparelho. A Fig. 34 é um diagrama mostrando o telemóvel exlló utilizando o método de codificação/descodificação de imagem explicado nas formas de realização acima mencionadas. 0 telemóvel exll5 tem uma antena ex201 para comunicar com o local de célula exllO via ondas de rádio, uma unidade de câmara ex203 como uma câmara CCD capaz de filmar imagens em movimento e fixas, uma unidade de visualização ex202 como um ecrã de cristais líquidos para apresentar os dados como imagens descodificadas e semelhantes filmados pela unidade de câmara ex203 ou recebidos pela antena ex201, uma unidade de corpo incluindo um conjunto de teclas de operação ex204, uma unidade de saída de voz ex208 como um altifalante para a saída de voz, uma unidade de entrada de voz ex205 como um microfone para fazer entrar voz, um suporte de armazenamento ex207 para armazenar dados codificados ou descodificados tais como dados de imagens em movimento ou fixas filmados pela câmara, dados de correio eletrónico recebido e os de imagens em movimento ou fixas, e uma unidade de ranhura ex206 para acoplar o suporte de armazenamento ex207 ao telemóvel exll5. 0 suporte de armazenamento ex207 armazena em si próprio um elemento de memória flash, um tipo de EEPROM (Memória Exclusivamente de Leitura, Programável e Apagável Eletricamente) que é uma memória não volátil eletricamente apagável e regravável para um invólucro de plástico como um cartão SD. A seguir, o telemóvel exll5 será explicado com referência à Fig. 35. No telemóvel exll5, uma unidade de controlo principal ex311, projetada de modo a controlar globalmente cada unidade do corpo principal que contém a unidade de visualização ex202 bem como as teclas de operação ex204, está mutuamente ligada a uma unidade de circuito de fonte de alimentação ex310, a uma unidade de controlo de operação de entrada ex304, a uma unidade de codificação de imagem ex312, a uma unidade de interface de câmara ex303, a uma unidade de controlo de LCD (Ecrã de Cristais Líquidos) ex302, a uma unidade de descodificação de imagem ex309, a uma unidade de multiplexagem/desmultiplexagem ex308, a uma unidade de leitura/escrita ex307, a uma unidade de circuito de modem ex306 e uma unidade de processamento de voz ex305 via um barramento síncrono ex313.
Quando uma tecla de fim de chamada ou uma tecla de alimentação é ligada através de uma operação do utilizador, a unidade de circuito de fonte de alimentação ex310 fornece as respetivas unidades com alimentação a partir de um conjunto de baterias para assim ativar o telemóvel digital com uma câmara exll5 como disponível.
No telemóvel exll5, a unidade de processamento de voz ex305 converte os sinais de voz recebidos pela unidade de entrada de voz ex205 no modo de conversação para dados de voz digitais sob o controlo da unidade de controlo principal ex311 incluindo uma CPU, ROM e RAM (Memória de Acesso Aleatório), a unidade de circuito de modem ex306 realiza processamento de espalhamento de espetro nos dados de voz digitais, e a unidade de circuito de comunicação ex301 realiza conversão digital-analógica e transformação de frequência nos dados, para assim os transmitir via a antena ex201. Do mesmo modo, no telemóvel exll5, a unidade de circuito de comunicação ex301 amplifica os dados recebidos pela antena ex201 no modo de conversação e realiza transformação de frequência e a conversão analógico-digital nos dados, a unidade de circuito de modem ex306 realiza processamento de espalhamento de espetro inverso nos dados, e a unidade de processamento de voz ex305 converte-os em dados de voz analógicos para assim os gerar via a unidade de saída de voz ex208.
Além disso, ao transmitir correio eletrónico no modo de comunicação de dados, os dados de texto do correio eletrónico introduzidos através da operação das teclas de operação ex204 do corpo principal são enviados para a unidade de controlo principal ex311 via a unidade de controlo de operação de entrada ex304. Na unidade de controlo principal ex311, após a unidade de circuito de modem ex306 ter realizado processamento de espalhamento de espetro nos dados de texto e a unidade de circuito de comunicação ex301 ter realizado a conversão digital-analógica e a transformação de frequência nos dados de texto, os dados são transmitidos para o local de célula exllO via a antena ex201.
Quando são transmitidos dados de imagem no modo de comunicação de dados, os dados de imagem captados pela unidade de câmara ex203 são fornecidos à unidade de codificação de imagem ex312 via a unidade de interface de câmara ex303. Quando não são transmitidos, também é possível apresentar os dados de imagem captados pela unidade de câmara ex203 diretamente na unidade de visualização ex202 via a unidade de interface de câmara ex303 e a unidade de controlo de LCD ex302. A unidade de codificação de imagem ex312, que inclui o aparelho de codificação de imagem como descrito no presente invenção, comprime e codifica os dados de imagem fornecidos pela unidade de câmara ex203 utilizando o método de codificação empregue pelo aparelho de codificação de imagem como mostrado na primeira forma de realização para assim os transformar em dados de imagem codificados, e envia-os para a unidade de multiplexagem/desmultiplexagem ex308. Neste instante, o telemóvel exll5 envia a voz recebida pela unidade de entrada de voz ex205 durante a captação com a unidade de câmara ex203 para a unidade de multiplexagem/desmultiplexagem ex308 como dados de voz digitais via a unidade de processamento de voz ex305. A unidade de multiplexagem/desmultiplexagem ex308 multiplexa os dados de imagem codificados fornecidos a partir da unidade de codificação de imagem ex312 e os dados de voz fornecidos a partir da unidade de processamento de voz ex305, utilizando um método predeterminado, então a unidade de circuito de modem ex306 realiza processamento de espalhamento de espetro nos dados multiplexados obtidos em resultado da multiplexagem, e por fim a unidade de circuito de comunicação ex301 realiza conversão digital-analógica e transformação de frequência nos dados para a transmissão via a antena ex201.
No que se refere ao recebimento de dados de um ficheiro de imagem em movimento que está ligado a uma página Web ou semelhante no modo de comunicação de dados, a unidade de circuito de modem ex306 realiza processamento de espalhamento de espetro inverso nos dados recebidos do local de célula exllO via a antena ex201, e envia os dados multiplexados obtidos em resultado do processamento de espalhamento de espetro inverso.
Para descodificar os dados multiplexados recebidos via a antena ex201, a unidade de multiplexagem/desmultiplexagem ex308 desmultiplexa os dados multiplexados para um fluxo codificado de dados de imagem e os de dados de voz, e fornece os dados de imagem codificados à unidade de descodificação de imagem ex309 e os dados de voz à unidade de processamento de voz ex305, respetivamente via o barramento síncrono ex313. A seguir, a unidade de descodificação de imagem ex309, incluindo o aparelho de descodificação de imagem como descrito na presente invenção, descodifica o fluxo codificado dos dados de imagem utilizando o método de descodificação correspondente ao método de codificação como mostrado nas formas de realização acima para gerar dados de imagem em movimento reproduzidos, e fornece estes dados à unidade de visualização ex202 via a unidade de controlo de LCD ex302, e deste modo os dados de imagem incluídos no ficheiro de imagem em movimento ligado a uma página Web, por exemplo, são apresentados. Ao mesmo tempo, a unidade de processamento de voz ex305 converte os dados de voz em dados de voz analógicos, e fornece estes dados à unidade de saída de voz ex208, e deste modo os dados de voz incluídos no ficheiro de imagem em movimento ligado a uma página da Internet, por exemplo, são reproduzidos. A presente invenção não está limitada ao sistema acima mencionado uma vez que a difusão digital terrestre ou por satélite tem sido alvo de notícia ultimamente e pelo menos ou o aparelho de codificação de imagem ou o aparelho de descodificação de imagem descrito na forma de realização acima mencionada podem ser incorporados num sistema de difusão digital como mostrado na Fig. 36. Mais especificamente, um fluxo codificado de informação de vídeo é transmitido a partir de uma estação de difusão ex409 para ou comunicado com um satélite de difusão ex410 via ondas de rádio. Ao recebê-lo, o satélite de difusão ex410 transmite ondas de rádio para difusão. Então, uma antena ex406 para uso doméstico com uma função de receção de difusão por satélite recebe as ondas de rádio, e uma televisão (recetor) ex401 ou um descodificador (STB) ex407 descodifica uma fluxo de bits codificado para reprodução. 0 aparelho de descodificação de imagem como mostrado na forma de realização acima mencionada pode ser implementado no aparelho de reprodução ex403 para ler e descodificar o fluxo codificado gravado num suporte de armazenamento ex402 que é um suporte de gravação como um CD e um DVD. Neste caso, os sinais de imagem em movimento reproduzidos são apresentados num monitor ex404. Também é concebível implementar o aparelho de descodificação de imagem no descodificador ex407 ligado a um cabo ex405 para uma televisão por cabo ou a antena ex406 para satélite e/ou difusão terrestre para assim os reproduzir num monitor ex408 da televisão ex401. 0 aparelho de descodificação de imagem pode estar incorporado na televisão, não no conversor para televisão. Do mesmo modo, um carro ex412 tendo uma antena ex411 pode receber sinais a partir do satélite ex410 ou do local de células exl07 para reprodução de imagem em movimento num dispositivo de visualização como um sistema de navegação automóvel ex413 montado no carro ex412 .
Além disso, o aparelho de codificação de imagem como mostrado na forma de realização acima pode codificar sinais de imagem e gravá-los no suporte de armazenamento. Como um exemplo concreto, um gravador ex420 como um gravador de DVD para gravar sinais de imagem num disco DVD ex421, um gravador de disco para os gravar num disco rígido pode ser citado. Eles podem ser gravados num cartão SD ex422. Quando o gravador ex420 inclui o aparelho de descodificação de imagem como mostrado na forma de realização acima mencionada, os sinais de imagem gravados no disco DVD ex421 ou no cartão SD ex422 podem ser reproduzidos para visualização no monitor ex408.
No que se refere à estrutura do sistema de navegação automóvel ex413, a estrutura sem a unidade de câmara ex203, a unidade de interface de câmara ex303 e a unidade de codificação de imagem ex312, retirados dos componentes mostrados na Fig. 35, é concebível. 0 mesmo se aplica para o computador exlll, a televisão (recetor) ex401 e outros.
Além disso, podem ser concebidos três tipos de implementações para um terminal como o telemóvel exll4: um terminal emissor/recetor implementado com um codificador e um descodificador, um terminal emissor implementado apenas com um codificador, e um terminal recetor implementado apenas com um descodificador.
Como descrito acima, é possível utilizar o método de codificação de comprimento variável, o método de descodificação de comprimento variável bem como o aparelho de codificação de comprimento variável e o aparelho de descodificação de comprimento variável que usam este método, o método de codificação de imagem em movimento, o método de descodificação de imagem em movimento, o aparelho de codificação de imagem em movimento e o aparelho de descodificação de imagem em movimento, descritos na forma de realização acima mencionada, para qualquer um dos aparelhos acima mencionados e sistemas acima descritos, e através da utilização destes métodos, podem ser obtidos os efeitos descritos nas formas de realização acima mencionadas. É descrito que o aparelho de codificação de comprimento variável e o aparelho de descodificação de comprimento variável de acordo com desde a primeira à sexta formas de realização realiza varrimento nos coeficientes numa ordem começando pelas componentes de baixa frequência para as componentes de alta frequência. No entanto, o varrimento pode ser realizado numa ordem começando nas componentes de alta frequência para as componentes de baixa frequência. Neste caso, o processamento da reordenação dos coeficientes pode ser abreviado.
Aplicabilidade Industrial 0 método de codificação de comprimento variável e o método de descodificação de comprimento variável de acordo com a presente invenção são aplicáveis para codificar ou descodificar coeficientes em cada bloco que tem uma dimensão predeterminada, que são obtidos realizando transformação de frequência em dados de imagem de uma imagem em movimento utilizando um aparelho de computador como um telemóvel, um assistente pessoal digital, um aparelho de difusão de TV (televisão), um monitor de TV, um Conversor, ou semelhantes.
DOCUMENTOS REFERIDOS NA DESCRIÇÃO
Esta lista de documentos referidos pelo autor do presente pedido de patente foi elaborada apenas para informação do leitor. Não é parte integrante do documento de patente europeia. Não obstante o cuidado na sua elaboração, o IEP não assume qualquer responsabilidade por eventuais erros ou omissões.
Documentos de patente referidos na descrição • EP 0827345 A [0006] • EP 0616471 A [0006] • JP 8214310 B [0006] • EP 0267578 A [0006]
Documentos de não patente citados na descrição • Information technology--Coding of audio-visual objects-- Part2: Visual. ISO/IEC 14496-2, December 1999, vol. 7.4.1, 119-120 [0003]
Lisboa, 22 de Outubro de 2015

Claims (5)

  1. REIVINDICAÇÕES 1. Um sistema de codificação e descodificação que inclui um aparelho de codificação (100a, 100b, 100c) para realizar codificação de comprimento variável em coeficientes bidimensionais de um bloco que são obtidos realizando transformação de frequência em dados de imagem do bloco que tem um número predeterminado de pixéis e um aparelho de descodificação para realizar descodificação de comprimento variável em dados codificados obtidos realizando codificação de comprimento varável nos coeficientes bidimensionais do bloco, em que o dito aparelho de codificação inclui: uma unidade de varrimento (141, 161, 201) operacional para varrer os coeficientes bidimensionais do bloco numa ordem predeterminada começando de uma componente de baixa frequência para uma componente de alta frequência para transformar os coeficientes bidimensionais em coeficientes unidimensionais; uma unidade de transformação (141, 161, 201) operacional para transformar os coeficientes unidimensionais do bloco num valor de Passagem e num valor de Nível, em que o valor de Nível é um valor de coeficiente não nulo do bloco e o valor de Passagem é um número de coeficientes nulos precedendo o coeficiente não nulo do bloco; uma unidade de cálculo operacional para calcular um número total de coeficientes não nulos incluídos no bloco; uma unidade de codificação de número total (143, 163, 205) operacional para realizar codificação de comprimento variável no número total calculado de coeficientes não nulos incluídos no bloco; uma primeira unidade de codificação (143, 163, 205) operacional para realizar codificação de comprimento variável em cada dos coeficientes não nulos do bloco correspondentes aos valores de Nível repetidamente de uma componente de alta frequência para uma componente de baixa frequência até que um número total de coeficientes não nulos codificados do bloco atinja o número total de coeficientes não nulos incluídos no bloco; e uma segunda unidade de codificação (143, 163, 205) operacional para realizar codificação de comprimento variável em cada de valores de Passagem do bloco separadamente da codificação dos coeficientes não nulos do bloco, utilizando uma pluralidade de tabelas de códigos de Passagem que são utilizadas para codificar os valores de Passagem, em que a primeira unidade de codificação (143, 163, 205) é operacional para realizar codificação de comprimento variável em cada dos coeficientes não nulos do bloco comutando entre uma pluralidade de tabelas de código de comprimento variável, sendo que a cada uma é atribuído um limiar de forma que à primeira tabela é atribuído o limiar mais baixo e a cada tabela seguinte é atribuído um limiar que é diferente de e superior a todos limiares anteriormente atribuídos; em que a primeira unidade de codificação (143, 163, 205) é operacional para começar a realizar a dita codificação de comprimento variável em cada dos coeficientes não nulos do bloco utilizando a primeira tabela e quando o valor absoluto de um coeficiente não nulo atual a ser codificado ultrapassa o limiar atribuído à tabela utilizada para codificar o coeficiente não nulo atual, para comutar a tabela de código para a seguinte tabela de código que tem o maior limiar atribuído, para mudar o valor de limiar utilizado para verificar se os valores absolutos dos coeficientes não nulos ultrapassam o limiar para o limiar atribuído à dita tabela comutada, e para codificar o próximo coeficiente não nulo a seguir ao coeficiente não nulo atual utilizando a dita tabela comutada; e em que as tabelas utilizadas para codificar os coeficientes não nulos do bloco são diferentes das tabelas de códigos de Passagem utilizadas para codificar os valores de Passagem do bloco, e em que o dito aparelho de descodificação inclui: uma unidade de descodificação de número total operacional para obter um número total de coeficientes não nulos do bloco realizando descodificação de comprimento variável nos dados codificados; uma primeira unidade de descodificação operacional para realizar descodificação de comprimento variável nos dados codificados repetidamente de uma componente de alta frequência para uma componente de baixa frequência até que um número total de coeficientes não nulos descodificados do bloco atinja o número total de coeficientes não nulos incluídos no bloco para obter cada de coeficientes não nulos descodificados do bloco; uma segunda unidade de descodificação operacional para realizar descodificação de comprimento variável nos dados codificados repetidamente de uma componente de alta frequência para uma componente de baixa frequência para obter cada de valores de Passagem descodificados do bloco separadamente da descodificação dos coeficientes não nulos do bloco utilizando uma pluralidade de tabelas de códigos de Passagem que são utilizadas para descodificar os valores de Passagem; uma unidade de transformação inversa operacional para transformar cada de valores de Passagem descodificados do bloco e cada de valores de Nível descodificados do bloco correspondentes aos coeficientes não nulos descodificados do bloco em coeficientes unidimensionais do bloco; e uma unidade de varrimento inverso operacional para varrer inversamente os coeficientes unidimensionais do bloco em coeficientes bidimensionais do bloco, em que a primeira unidade de descodificação é operacional para realizar descodificação de comprimento variável nos dados codificados comutando entre uma pluralidade de tabelas de código de comprimento variável sendo que a cada uma é atribuído um limiar de forma que à primeira tabela é atribuído o limiar mais baixo e a cada tabela seguinte é atribuído um limiar que é diferente de e superior a todos os limiares anteriormente atribuídos; em que a primeira unidade de descodificação é operacional para começar a realizar descodificação de comprimento variável nos dados codificados utilizando a primeira tabela e quando o valor absoluto de um coeficiente não nulo atual a ser descodificado ultrapassa o limiar atribuído à tabela utilizada para descodificar o coeficiente não nulo atual, para comutar a tabela de código para a seguinte tabela de código que tem o maior limiar atribuído, para mudar o valor de limiar utilizado para verificar se os valores absolutos do coeficiente não nulo ultrapassam o limiar para o limiar atribuído à dita tabela atribuída, e para descodificar o seguinte coeficiente não nulo a seguir ao coeficiente não nulo atual utilizando a dita tabela comutada; e em que as tabelas utilizadas para descodificar os coeficientes não nulos do bloco são diferentes das tabelas de códigos de Passagem utilizadas para descodificar os valores de Passagem do bloco.
  2. 2. Um método de codificação e descodificação compreendendo um método de codificação para realizar codificação de comprimento variável em coeficientes bidimensionais de um bloco que são obtidos realizando transformação de frequência em dados de imagem do bloco que tem um número predeterminado de pixéis e um método de descodificação para realizar descodificação de comprimento variável em dados obtidos realizando codificação de comprimento variável nos coeficientes não nulos do bloco, em que o dito método de codificação compreendendo: uma etapa de varrimento de varrer os coeficientes bidimensionais do bloco numa ordem predeterminada começando de uma componente de baixa frequência para uma componente de alta frequência para transformar os coeficientes bidimensionais em coeficientes unidimensionais; uma etapa de transformação de transformar os coeficientes unidimensionais do bloco para um valor de Passagem e um valor de Nível, em que o valor de Nível é um valor de coeficiente não nulo do bloco e o valor de Passagem é um número de coeficientes nulos precedendo o coeficiente não nulo do bloco; uma etapa de cálculo de calcular um número total de coeficientes não nulos incluídos no bloco; uma etapa de codificação de número total de realizar codificação de comprimento variável (S10 5) no dito número total calculado de coeficientes não nulos incluídos no bloco; uma primeira etapa de codificação de realizar codificação de comprimento variável (S105) em cada dos coeficientes não nulos do bloco correspondentes aos valores de Nível repetidamente de uma componente de alta frequência para uma componente de baixa frequência até que um número total de coeficientes não nulos codificados do bloco atinja o número total de coeficientes não nulos incluídos no bloco; e uma segunda etapa de codificação de realizar codificação de comprimento variável (S105) em cada de valores de Passagem do bloco separadamente da codificação dos coeficientes não nulos do bloco, utilizando uma pluralidade de tabelas de códigos de Passagem que são utilizadas para codificar os valores de Passagem, em que a primeira etapa de codificação é realizada comutando entre uma pluralidade de tabelas de código de comprimento variável, sendo que a cada uma é atribuído um limiar de forma que à primeira tabela é atribuído o limiar mais baixo e a cada tabela seguinte é atribuído um limiar que é diferente de e superior a todos os limiares anteriormente atribuídos; em que a primeira etapa de codificação começa a utilizar a primeira tabela e quando o valor absoluto de um coeficiente não nulo atual a ser codificado ultrapassa o limiar atribuído à tabela utilizada para codificar o coeficiente não nulo atual, a tabela de código é comutada para a seguinte tabela de código que tem o maior limiar atribuído, o valor de limiar utilizado para verificar se os valores absolutos dos coeficientes não nulos ultrapassam o limiar é mudado para o limiar atribuído à dita tabela comutada, e o seguinte coeficiente não nulo a seguir ao coeficiente não nulo atual é codificado utilizando a dita tabela comutada; e em que as tabelas utilizadas para codificar os coeficientes não nulos do bloco são diferentes das tabelas de códigos de Passagem utilizadas para codificar os valores de Passagem do bloco, e em que o dito aparelho de descodificação compreendendo: uma etapa de descodificação de número total de obter um número total de coeficientes não nulos do bloco descodificando os dados codificados; uma primeira etapa de descodificação de realizar descodificação de comprimento variável nos dados codificados repetidamente de uma componente de alta frequência para uma componente de baixa frequência até que um número total de coeficientes não nulos descodificados do bloco atinja o número total de coeficientes não nulos incluídos no bloco para obter cada de coeficientes não nulos descodificados do bloco; uma segunda etapa de descodificação de realizar descodificação de comprimento variável nos dados codificados repetidamente de uma componente de alta frequência para uma componente de baixa frequência para obter cada de valores de Passagem descodificados do bloco separadamente da descodificação dos coeficientes não nulos do bloco, utilizando uma pluralidade de tabelas de códigos de Passagem que são utilizadas para descodificar os valores de Passagem; uma etapa de transformação inversa de transformar cada de valores de Passagem descodificados do bloco e cada de valores de Nível descodificados do bloco correspondentes aos coeficientes não nulos descodificados do bloco em coeficientes unidimensionais do bloco; e uma etapa de varrimento inverso de varrer inversamente os coeficientes unidimensionais do bloco em coeficientes bidimensionais do bloco, em que a primeira etapa de descodificação é realizada comutando entre uma pluralidade de tabelas de código de comprimento variável sendo que a cada uma é atribuído um limiar de forma que à primeira tabela é atribuído o limiar mais baixo e a cada tabela seguinte é atribuído um limiar que é diferente de e superior a todos limiares anteriormente atribuídos; em que a primeira etapa de descodificação começa a utilizar a primeira tabela e quando o valor absoluto de um coeficiente não nulo atual a ser descodificado ultrapassa o limiar atribuído à tabela utilizada para descodificar o coeficiente não nulo atual, a tabela de código é comutada para a seguinte tabela de código que tem o maior limiar atribuído, o valor de limiar utilizado para verificar se os valores absolutos do coeficiente não nulo ultrapassam o limiar é mudado para o limiar atribuído para a dita tabela comutada, e o seguinte coeficiente não nulo a seguir ao coeficiente não nulo atual é descodificado utilizando a dita tabela comutada;e em que as tabelas utilizadas para descodificar os coeficientes não nulos do bloco são diferentes das tabelas de códigos de Passagem utilizadas para descodificar os valores de Passagem do bloco.
  3. 3. 0 método de codificação e descodificação de acordo com a Reivindicação 2, em que um limiar atribuído à tabela é determinado de entre uma pluralidade de limiares para cada comutação das tabelas .
  4. 4. 0 método de codificação e descodificação de acordo com a Reivindicação 3, em que a comutação das tabelas é realizada numa direção para tabelas com limiares maiores.
  5. 5. 0 método de codificação e descodificação de acordo com a Reivindicação 2, em que a comutação das tabelas é realizada numa direção. Lisboa, 22 de Outubro de 2015
PT141629915T 2002-04-19 2003-04-16 Método e sistema de codificação e descodificação de comprimento variável PT2765707E (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002118483 2002-04-19
JP2002126029 2002-04-26
JP2002363106A JP4368575B2 (ja) 2002-04-19 2002-12-13 可変長復号化方法、可変長復号化装置およびプログラム

Publications (1)

Publication Number Publication Date
PT2765707E true PT2765707E (pt) 2015-11-17

Family

ID=29255105

Family Applications (7)

Application Number Title Priority Date Filing Date
PT06123093T PT1742484E (pt) 2002-04-19 2003-04-16 Método de descodificação de comprimento variável
PT08157872T PT1965590E (pt) 2002-04-19 2003-04-16 Método de codificação de comprimento variável
PT15161640T PT2919390T (pt) 2002-04-19 2003-04-16 Método e aparelho de descodificação de comprimento variável
PT141629956T PT2752994E (pt) 2002-04-19 2003-04-16 Método de codificação de comprimento variável
PT141629915T PT2765707E (pt) 2002-04-19 2003-04-16 Método e sistema de codificação e descodificação de comprimento variável
PT06123096T PT1744560E (pt) 2002-04-19 2003-04-16 Método de codificação de comprimento variável
PT09168084T PT2117236E (pt) 2002-04-19 2003-04-16 Método de codificação de comprimento variável

Family Applications Before (4)

Application Number Title Priority Date Filing Date
PT06123093T PT1742484E (pt) 2002-04-19 2003-04-16 Método de descodificação de comprimento variável
PT08157872T PT1965590E (pt) 2002-04-19 2003-04-16 Método de codificação de comprimento variável
PT15161640T PT2919390T (pt) 2002-04-19 2003-04-16 Método e aparelho de descodificação de comprimento variável
PT141629956T PT2752994E (pt) 2002-04-19 2003-04-16 Método de codificação de comprimento variável

Family Applications After (2)

Application Number Title Priority Date Filing Date
PT06123096T PT1744560E (pt) 2002-04-19 2003-04-16 Método de codificação de comprimento variável
PT09168084T PT2117236E (pt) 2002-04-19 2003-04-16 Método de codificação de comprimento variável

Country Status (17)

Country Link
US (12) US7305035B2 (pt)
EP (13) EP3515071B1 (pt)
JP (1) JP4368575B2 (pt)
KR (8) KR101001459B1 (pt)
CN (1) CN1319385C (pt)
AT (5) ATE447295T1 (pt)
AU (1) AU2003235171C1 (pt)
BR (2) BR0304543A (pt)
CA (2) CA2625292C (pt)
DE (5) DE60321406D1 (pt)
DK (5) DK2919390T3 (pt)
ES (11) ES2307267T3 (pt)
HU (1) HUE044271T2 (pt)
MX (1) MXPA03011198A (pt)
PT (7) PT1742484E (pt)
SI (2) SI1742483T1 (pt)
WO (1) WO2003090472A1 (pt)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
JP4368575B2 (ja) * 2002-04-19 2009-11-18 パナソニック株式会社 可変長復号化方法、可変長復号化装置およびプログラム
JP2005004718A (ja) * 2003-05-16 2005-01-06 Canon Inc 信号処理装置及び制御方法
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US20070230805A1 (en) * 2004-07-27 2007-10-04 Yoshihisa Yamada Coded Data Recording Apparatus, Decoding Apparatus and Program
KR101336475B1 (ko) * 2005-09-26 2013-12-04 미쓰비시덴키 가부시키가이샤 동화상 부호화 장치 및 동화상 복호 장치
JP4540585B2 (ja) * 2005-10-20 2010-09-08 パナソニック株式会社 符号化装置及び復号化装置
US7903973B1 (en) * 2005-12-23 2011-03-08 Lockheed Martin Corporation Dynamic temporal duration optical transmission privacy
JP4863840B2 (ja) * 2006-10-27 2012-01-25 株式会社リコー 画素形成装置、光走査装置、光走査方法、画像形成装置、カラー画像形成装置
KR100987028B1 (ko) * 2008-08-20 2010-10-11 연세대학교 산학협력단 무작위 데이터가 가지는 정렬 구조의 불확실성을 산출하는 장치 및 그 방법, 상기 방법을 구현하는 프로그램이 기록된기록매체
TR201001101A2 (tr) * 2010-02-12 2011-09-21 Vestel Elektroni̇k Sanayi̇ Ve Ti̇caret A.Ş. Bir veri sıkıştırma metodu.
CN110460860A (zh) * 2010-04-01 2019-11-15 索尼公司 图像处理设备和方法
US8410959B2 (en) 2010-04-09 2013-04-02 Qualcomm, Incorporated Variable length codes for coding of video data
US20120082230A1 (en) * 2010-10-01 2012-04-05 Qualcomm Incorporated Variable length coding of video block coefficients
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
US8755620B2 (en) 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
US8687904B2 (en) 2011-01-14 2014-04-01 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding
US9516316B2 (en) * 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
KR101710633B1 (ko) * 2011-08-05 2017-02-27 삼성전자주식회사 자동 초점 조절 방법, 자동 초점 조절 장치, 및 이를 포함하는 디지털 촬영장치
WO2013065262A1 (ja) * 2011-11-04 2013-05-10 日本電気株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム
CN105940676B (zh) * 2014-01-24 2019-06-21 联发科技股份有限公司 解码装置与相关的解码方法
US10171810B2 (en) 2015-06-22 2019-01-01 Cisco Technology, Inc. Transform coefficient coding using level-mode and run-mode
US10206176B2 (en) * 2016-09-06 2019-02-12 Mediatek Inc. Efficient coding switching and modem resource utilization in wireless communication systems
JP2018085008A (ja) * 2016-11-25 2018-05-31 株式会社ジャパンディスプレイ 画像処理装置および画像処理装置の画像処理方法
US10666985B1 (en) * 2018-11-18 2020-05-26 Sony Corporation Sub-block based entropy coding for image coding
US10728555B1 (en) * 2019-02-06 2020-07-28 Sony Corporation Embedded codec (EBC) circuitry for position dependent entropy coding of residual level data
CN112399181B (zh) * 2019-08-19 2022-08-26 华为技术有限公司 图像编解码的方法、装置和存储介质
CN113889046B (zh) * 2020-07-02 2022-12-09 京东方科技集团股份有限公司 显示面板及其驱动方法、以及显示装置

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541012A (en) 1982-01-04 1985-09-10 Compression Labs, Inc. Video bandwidth reduction system employing interframe block differencing and transform domain coding
CA1296430C (en) * 1986-11-10 1992-02-25 Masahide Kaneko Encoding system capable of accomplishing a high efficiency by anterior and/or posterior processing to quantization
JPH04100390A (ja) 1990-08-20 1992-04-02 Hitachi Ltd 高能率符号化方式
JP3205028B2 (ja) 1991-02-05 2001-09-04 キヤノン株式会社 画像圧縮装置及びその方法
US6546145B1 (en) * 1991-02-05 2003-04-08 Canon Kabushiki Kaisha Image compression using selection of quantization method
JPH04315270A (ja) 1991-04-15 1992-11-06 Toshiba Corp 符号化装置
JP2670201B2 (ja) * 1991-08-30 1997-10-29 富士写真フイルム株式会社 画像データ圧縮符号化装置および方法
JP3016456B2 (ja) 1992-06-15 2000-03-06 日本電信電話株式会社 適応的可変長符号化方法
JPH06178282A (ja) 1992-12-02 1994-06-24 Mitsubishi Electric Corp 画像の符号化装置
US5367629A (en) * 1992-12-18 1994-11-22 Sharevision Technology, Inc. Digital video compression system utilizing vector adaptive transform
JP3278948B2 (ja) 1993-02-05 2002-04-30 日本電信電話株式会社 可変長符号化方法
JP3277425B2 (ja) * 1993-03-19 2002-04-22 ソニー株式会社 ディジタル信号の符号化方法、符号化用テーブル生成方法、符号化装置及び符号化方法
US5510785A (en) * 1993-03-19 1996-04-23 Sony Corporation Method of coding a digital signal, method of generating a coding table, coding apparatus and coding method
JP3111750B2 (ja) 1993-06-08 2000-11-27 松下電器産業株式会社 可変長符号復号方式
JP3210996B2 (ja) * 1993-07-30 2001-09-25 三菱電機株式会社 高能率符号化装置及び高能率復号化装置
JPH0759086A (ja) 1993-07-30 1995-03-03 Canon Inc 画像処理装置
JP3220598B2 (ja) * 1994-08-31 2001-10-22 三菱電機株式会社 可変長符号テーブルおよび可変長符号化装置
KR100209877B1 (ko) * 1994-11-26 1999-07-15 윤종용 복수개의 허프만부호테이블을 이용한 가변장부호화장치 및 복호화장치
JP3305140B2 (ja) 1994-12-28 2002-07-22 キヤノン株式会社 符号化装置及び方法
US5883976A (en) 1994-12-28 1999-03-16 Canon Kabushiki Kaisha Selectively utilizing multiple encoding methods
JP3624450B2 (ja) * 1995-02-06 2005-03-02 ソニー株式会社 画像データ符号化方法及び画像データ符号化装置
JP3431331B2 (ja) * 1995-03-01 2003-07-28 株式会社日立製作所 動画像符号化装置及び動画像伝送装置並びにテレビ会議装置
US6104754A (en) * 1995-03-15 2000-08-15 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
US6704494B1 (en) * 1995-03-15 2004-03-09 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
JPH08256266A (ja) * 1995-03-17 1996-10-01 Mitsubishi Electric Corp 画像符号化方式
JP3992303B2 (ja) * 1995-06-22 2007-10-17 ソニー株式会社 信号圧縮装置と信号伸長装置および信号圧縮方法と信号伸長方法
KR970019653A (ko) 1995-09-11 1997-04-30 원본미기재 가변 부호화 장치 및 방법
JP3114796B2 (ja) 1995-09-11 2000-12-04 松下電器産業株式会社 可変長符号化装置及び方法
US5818877A (en) * 1996-03-14 1998-10-06 The Regents Of The University Of California Method for reducing storage requirements for grouped data values
JPH09307901A (ja) 1996-05-13 1997-11-28 Toshiba Corp 映像信号処理装置
JP3743837B2 (ja) 1996-06-14 2006-02-08 株式会社大宇エレクトロニクス ランレングス符号器
US5831977A (en) 1996-09-04 1998-11-03 Ericsson Inc. Subtractive CDMA system with simultaneous subtraction in code space and direction-of-arrival space
TW366669B (en) 1996-10-30 1999-08-11 Matsushita Electric Ind Co Ltd Picture encoding device and picture encoding method, picture decoding device and picture decoding method, and data recording media
JP2870515B2 (ja) * 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
US5995148A (en) * 1997-02-14 1999-11-30 At&T Corp Video coder having scalar dependent variable length coder
JP3410629B2 (ja) * 1997-05-21 2003-05-26 シャープ株式会社 可変長符号化回路及び可変長符号化方法
US6118822A (en) 1997-12-01 2000-09-12 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
JPH11243343A (ja) 1998-02-25 1999-09-07 Victor Co Of Japan Ltd 可変長符号化方法、可変長復号化方法、及び可変長符号記録媒体
JPH11341497A (ja) 1998-05-29 1999-12-10 Matsushita Electric Ind Co Ltd 画像符号化復号化装置及び、画像符号化復号化方法
JP3888597B2 (ja) * 1998-06-24 2007-03-07 日本ビクター株式会社 動き補償符号化装置、及び動き補償符号化復号化方法
JP2000059234A (ja) * 1998-08-10 2000-02-25 Mitsubishi Electric Corp 可変長符号処理装置
JP2001024515A (ja) 1999-07-07 2001-01-26 Sony Corp 信号処理方法及び装置
US6748113B1 (en) * 1999-08-25 2004-06-08 Matsushita Electric Insdustrial Co., Ltd. Noise detecting method, noise detector and image decoding apparatus
JP2001308715A (ja) * 2000-04-20 2001-11-02 Mitsubishi Electric Corp 可変長符号化装置および可変長復号装置
TW515192B (en) 2000-06-06 2002-12-21 Noa Kk Off Compression method of motion picture image data and system there for
JP2002261623A (ja) * 2001-02-28 2002-09-13 Canon Inc 復号装置、復号方法、記憶媒体及びプログラムソフトウェア
US6696993B2 (en) * 2001-03-23 2004-02-24 Nokia Corporation Variable length coding
CA2467266A1 (en) * 2001-11-22 2003-05-30 Matsushita Electric Industrial Co., Ltd. Variable length coding method and variable length decoding method
US7099387B2 (en) * 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
JP4090862B2 (ja) * 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
JP4368575B2 (ja) * 2002-04-19 2009-11-18 パナソニック株式会社 可変長復号化方法、可変長復号化装置およびプログラム
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US7602850B2 (en) * 2003-12-19 2009-10-13 Intel Corporation Content adaptive variable length coding (CAVLC) decoding
US7843997B2 (en) * 2004-05-21 2010-11-30 Broadcom Corporation Context adaptive variable length code decoder for decoding macroblock adaptive field/frame coded video data
US7643694B2 (en) * 2004-12-31 2010-01-05 Zoran Corporation Method and apparatus for processing a compressed image in an order other than the order in which it was compressed
JP4540585B2 (ja) * 2005-10-20 2010-09-08 パナソニック株式会社 符号化装置及び復号化装置
US7903973B1 (en) * 2005-12-23 2011-03-08 Lockheed Martin Corporation Dynamic temporal duration optical transmission privacy
KR100813877B1 (ko) * 2006-05-11 2008-03-18 전자부품연구원 효율적인 h.264/avc cavlc 디코딩 방법
US7813567B2 (en) * 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
US7885473B2 (en) * 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
CN101335000B (zh) * 2008-03-26 2010-04-21 华为技术有限公司 编码的方法及装置
US7876257B2 (en) * 2008-04-28 2011-01-25 Mitsubishi Electric Research Laboratories, Inc. Method and apparatus for compressing SAR signals

Also Published As

Publication number Publication date
ES2549252T3 (es) 2015-10-26
HUE044271T2 (hu) 2019-10-28
US10027990B2 (en) 2018-07-17
DK1742483T3 (da) 2008-05-13
ES2309913T3 (es) 2008-12-16
MXPA03011198A (es) 2004-02-26
EP2919390B1 (en) 2019-04-03
DE60318918T2 (de) 2009-01-08
EP2271118A3 (en) 2011-05-04
EP2765707B1 (en) 2015-08-19
AU2003235171C1 (en) 2009-01-08
AU2003235171B2 (en) 2007-12-20
EP2117236B1 (en) 2012-07-11
KR101001417B1 (ko) 2010-12-14
EP2752994B8 (en) 2015-09-02
US20170034539A1 (en) 2017-02-02
ES2550993T3 (es) 2015-11-13
US7305035B2 (en) 2007-12-04
KR20080041749A (ko) 2008-05-13
KR100975487B1 (ko) 2010-08-11
US10034025B2 (en) 2018-07-24
KR101001053B1 (ko) 2010-12-14
US20170034541A1 (en) 2017-02-02
US20180332311A1 (en) 2018-11-15
PT2919390T (pt) 2019-07-11
EP2752994A1 (en) 2014-07-09
EP1424856A1 (en) 2004-06-02
DE60318918D1 (de) 2008-03-13
CN1522544A (zh) 2004-08-18
ES2886861T3 (es) 2021-12-21
BRPI0304543B1 (pt) 2018-02-14
KR20100051864A (ko) 2010-05-18
BRPI0304543B8 (pt) 2020-12-29
US20170034514A1 (en) 2017-02-02
KR101001411B1 (ko) 2010-12-14
US20080260037A1 (en) 2008-10-23
KR101001459B1 (ko) 2010-12-14
KR20080041751A (ko) 2008-05-13
EP2765707A3 (en) 2014-08-20
US20150208099A1 (en) 2015-07-23
JP4368575B2 (ja) 2009-11-18
US9020041B2 (en) 2015-04-28
PT1742484E (pt) 2008-06-12
SI1742483T1 (sl) 2008-04-30
JP2004007381A (ja) 2004-01-08
US9020040B2 (en) 2015-04-28
KR100975486B1 (ko) 2010-08-11
KR20080041748A (ko) 2008-05-13
EP2271118A2 (en) 2011-01-05
KR20040105543A (ko) 2004-12-16
US20080260038A1 (en) 2008-10-23
DK2752994T3 (en) 2015-11-09
US9025671B2 (en) 2015-05-05
EP1742483B1 (en) 2008-01-23
EP1744560B1 (en) 2008-08-20
DK2765707T3 (en) 2015-10-12
EP2752994B1 (en) 2015-07-29
PT1744560E (pt) 2008-09-10
ES2279945T3 (es) 2007-09-01
EP1742484A1 (en) 2007-01-10
ATE354258T1 (de) 2007-03-15
US10623781B2 (en) 2020-04-14
ES2297811T3 (es) 2008-05-01
US20080063083A1 (en) 2008-03-13
US20050099522A1 (en) 2005-05-12
PT1965590E (pt) 2009-11-24
US20170034540A1 (en) 2017-02-02
ATE447295T1 (de) 2009-11-15
CN1319385C (zh) 2007-05-30
CA2625292C (en) 2012-05-29
CA2625292A1 (en) 2003-10-30
AU2003235171A1 (en) 2003-11-03
EP2919390A1 (en) 2015-09-16
EP1742483A1 (en) 2007-01-10
ATE385140T1 (de) 2008-02-15
DE60329873D1 (de) 2009-12-10
DE60311734T2 (de) 2007-11-15
US20080260039A1 (en) 2008-10-23
ES2388479T3 (es) 2012-10-15
ATE397355T1 (de) 2008-06-15
ES2730954T3 (es) 2019-11-13
EP2765707A2 (en) 2014-08-13
KR101001478B1 (ko) 2010-12-14
US9054734B2 (en) 2015-06-09
EP3515072A1 (en) 2019-07-24
US9661353B2 (en) 2017-05-23
EP2271118B1 (en) 2012-11-07
EP2117236A2 (en) 2009-11-11
US10063890B2 (en) 2018-08-28
EP3515071B1 (en) 2021-06-30
EP2343903A1 (en) 2011-07-13
WO2003090472A1 (fr) 2003-10-30
DE60311734D1 (de) 2007-03-29
US9031133B2 (en) 2015-05-12
SI1742484T1 (sl) 2008-08-31
PT2752994E (pt) 2015-10-26
AU2003235171B8 (en) 2003-11-03
DK1742484T3 (da) 2008-08-18
EP2343903B1 (en) 2014-05-21
KR20080041750A (ko) 2008-05-13
PT2117236E (pt) 2012-09-24
US10057602B2 (en) 2018-08-21
US20080056374A1 (en) 2008-03-06
CA2448771C (en) 2012-05-29
EP1965590B1 (en) 2009-10-28
KR20100052547A (ko) 2010-05-19
EP1424856A4 (en) 2004-11-24
CA2448771A1 (en) 2003-10-30
EP1424856B1 (en) 2007-02-14
BR0304543A (pt) 2004-08-03
ES2886874T3 (es) 2021-12-21
ATE406051T1 (de) 2008-09-15
KR20080041747A (ko) 2008-05-13
EP3515071A1 (en) 2019-07-24
EP1742484B1 (en) 2008-05-28
DK2919390T3 (da) 2019-07-15
EP3515072B1 (en) 2021-06-30
EP2117236A3 (en) 2011-05-04
KR101001097B1 (ko) 2010-12-14
EP1965590A1 (en) 2008-09-03
ES2307267T3 (es) 2008-11-16
DE60321406D1 (de) 2008-07-10
DE60323171D1 (de) 2008-10-02
EP1744560A1 (en) 2007-01-17
ES2332159T3 (es) 2010-01-27

Similar Documents

Publication Publication Date Title
PT2765707E (pt) Método e sistema de codificação e descodificação de comprimento variável
AU2003221378B2 (en) Variable length encoding method, storage medium, and variable length encoding device.
WO2006118288A1 (ja) 動画像符号化方法、動画像復号化方法およびその装置
JP4819169B2 (ja) 符号化方法、符号化装置およびプログラム
AU2008201313B2 (en) Variable length coding method and variable length decoding method