BRPI1011786B1 - métodos para codificação e decodificação aritmética - Google Patents

métodos para codificação e decodificação aritmética Download PDF

Info

Publication number
BRPI1011786B1
BRPI1011786B1 BRPI1011786-5A BRPI1011786A BRPI1011786B1 BR PI1011786 B1 BRPI1011786 B1 BR PI1011786B1 BR PI1011786 A BRPI1011786 A BR PI1011786A BR PI1011786 B1 BRPI1011786 B1 BR PI1011786B1
Authority
BR
Brazil
Prior art keywords
probability model
current
probability
subset
model
Prior art date
Application number
BRPI1011786-5A
Other languages
English (en)
Inventor
Philippe Bordes
Dominique Thoreau
Jérôme Vieron
Edouard Francois
Original Assignee
Interdigital Madison Patent Holdings
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=41668494&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI1011786(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Interdigital Madison Patent Holdings filed Critical Interdigital Madison Patent Holdings
Publication of BRPI1011786A2 publication Critical patent/BRPI1011786A2/pt
Publication of BRPI1011786B1 publication Critical patent/BRPI1011786B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [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/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/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/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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

MÉTODOS PARA CODIFICAÇÃO E DECODIFICAÇÃO ARITMÉTICA A invenção refere-se a um método para codificação aritmética de símbolos em um fluxo (F), compreendendo as seguintes etapas: -codificar (106) um símbolo atual (Se) com um modelo de probabilidade atual (Pc), e - Atualizar (108) o modelo de probabilidade atual de acordo com a codificação (106) do símbolo atual (Se). O método também compreende, nos pontos de comutação (100) distribuídos no fluxo (F), as seguintes etapas: -selecionar (102) o modelo de probabilidade atual (Pc) em um conjunto (L) de pelo menos dois modelos de probabilidade de acordo com um critério de custo de codificação, e - codificar (104) um identificador do modelo de probabilidade selecionado.

Description

MÉTODOS PARA CODIFICAÇÃO E DECODIFICAÇÃO ARITMÉTICA 1. Escopo da Invenção
A invenção refere-se ao domínio de codificação de símbolos, por exemplo, de símbolos que representam um sinal de imagem. Mais especificamente, a invenção refere-se a um método para codificação aritmética de símbolos em um fluxo. A invenção também diz respeito a um método para decodificação aritmética de símbolos codificados na forma de um fluxo.
2. Técnica Anterior
Para transformar símbolos que representam um sinal, por exemplo, um sinal de vídeo ou áudio, em códigos binários, é comum, na técnica, usar um método de codificação por entropia. Tal método de codificação por entropia associa uma palavra binária mais curta com os valores de símbolo mais frequentes, isto é, aqueles para os quais a probabilidade de aparição é a maior, de modo a reduzir o custo de codificação. Como exemplo, um símbolo S assumindo os valores {a, b, c} com as probabilidades ¼, ½ e ¼, pode ser considerado, e então um método de codificação por entropia associaria, por exemplo, um código binário de comprimento 1 se o símbolo S assumir o valor “b”, isto é, aquele para o qual a probabilidade de aparição é a maior.
A codificação VLC (Codificação de Tamanho Variável) é um exemplo conhecido de um método de codificação por entropia. De acordo com esse método, uma tabela VLC é definida para cada símbolo. Uma tabela associa, a cada valor possível do símbolo com o qual ele está associado, um código binário para o qual o tamanho depende da probabilidade de que o símbolo em questão assuma o dito valor, isto é, da probabilidade da aparição do dito valor. Essas tabelas são definidas pela análise de um número muito grande de sinais que representam os sinais que devem ser codificados subsequentemente. Essa etapa de análise é realizada off-line e as tabelas são transmitidas uma vez ao decodificador ou são definidas em um padrão de codificação, caso este em que elas são conhecidas para o decodificador sem precisarem ser transmitidas.
A Codificação Aritmética é outro exemplo de um método de codificação por entropia. De acordo com esse método, as probabilidades de que um símbolo assume um valor são inicializadas, por exemplo, no início da imagem ou na fatia da imagem, no caso de símbolos que representam uma imagem. Essas probabilidades são então respectivamente atualizadas regularmente durante a codificação de imagem da fatia de imagem de modo a levar em conta as características do sinal de origem que está sendo codificado.
Uma das desvantagens dos métodos de codificação anteriormente mencionados é que a probabilidade de que um símbolo assumirá um dado valor está intrinsecamente vinculada às características do sinal de origem, que não é conhecido a priori.
Essa desvantagem é ilustrada pelas figuras 1 e 2. Em cada uma dessas figuras é ilustrada, no eixo X, a progressão do processo de codificação de uma imagem, e no eixo Y, a probabilidade de que o símbolo S assume o valor "a”. As linhas sólidas representam a progressão da probabilidade real P(S=a) durante a codificação da imagem. As linhas pontilhadas representam a probabilidade estimada correspondente. No caso da VLC (figura 1), a probabilidade estimada é considerada como constante ao longo de toda a imagem. No caso da AC (figura 2), a probabilidade estimada é atualizada de acordo com a codificação da imagem. No entanto, essa atualização presume um tempo de convergência (Td) antes de atingir a probabilidade real.
Nos dois exemplos anteriormente mencionados, a probabilidade estimada ou é definida a priori de acordo com a análise realizada anteriormente à codificação do sinal de origem atual e pode, assim, ser distanciada da probabilidade real (caso da VLC), ou é atualizada regularmente durante a codificação do sinal atual de modo a se aproximar da probabilidade real, mas com um tempo de retardo (caso da AC) tanto maior quanto a probabilidade real flutuar durante o processo de codificação.
3. Sumário da Invenção
O propósito da invenção é o de superar ao menos uma das desvantagens da técnica anterior.
A invenção refere-se a um método aritmético para codificação de símbolos em um fluxo, compreendendo as seguintes etapas:
-codificar um símbolo atual de acordo com um modelo de probabilidade atual, e -atualizar o modelo de probabilidade atual de acordo com a codificação do símbolo atual.
O método também compreende, nos pontos de comutação distribuídos no fluxo, as seguintes etapas:
-selecionar o modelo de probabilidade atual em um conjunto de pelo menos dois modelos de probabilidade de acordo com um critério de custo de codificação, e
-codificar um identificador de um modelo de probabilidade selecionado.
Vantajosamente, o método de codificação aritmética de acordo com a invenção permite que a probabilidade real seja aproximada com mais rapidez do que com um método do tipo VLC ou AC, e, portanto, permite que o símbolo ou símbolos sejam codificados de maneira mais eficiente, ou seja, a um custo de codificação inferior.
De acordo com uma segunda concretização da invenção, as etapas do método de codificação aritmética são reiteradas para codificar uma sucessão de símbolos e o conjunto de pelo menos dois modelos de probabilidade compreende um primeiro modelo de probabilidade definido a partir dos símbolos codificados anteriormente ao símbolo atual e de um subconjunto de modelos de probabilidade compreendendo ao menos um segundo modelo de probabilidade definido por padrão.
De acordo com uma terceira concretização, o método de codificação aritmética compreende uma etapa de adição de um primeiro modelo de probabilidade no subconjunto de modelos de probabilidade.
De acordo com um aspecto particular da invenção, quando o número de modelos de probabilidade no subconjunto de modelos de probabilidade for igual a um valor limiar, o primeiro modelo de probabilidade é adicionado como uma substituição para o modelo de probabilidade do subconjunto de modelos de probabilidade selecionados com menos frequência, com a exceção do segundo modelo de probabilidade definido por padrão.
De acordo com uma variante da invenção, quando o número de modelos de probabilidade no subconjunto de modelos de probabilidade for igual a um valor limiar, o primeiro modelo de probabilidade é adicionado como uma substituição para o modelo de probabilidade mais antigo do subconjunto de modelos de probabilidade, com a exceção do segundo modelo de probabilidade definido por padrão.
De acordo com outra variante da invenção, quando o número de modelos de probabilidade no subconjunto de modelos de probabilidade é igual a um valor limiar, o primeiro modelo de probabilidade é adicionado como uma substituição, dentre os P modelos de probabilidade do subconjunto de modelos de probabilidade selecionados com menos frequência, do modelo de probabilidade para o qual a média de custos de codificação calculada quando o modelo de probabilidade é selecionado é a maior, em que P é um número inteiro.
De acordo com outro aspecto particular da invenção, a etapa de seleção compreende as seguintes etapas:
- calcular um custo de codificação para cada um dos modelos de probabilidade do conjunto de pelo menos dois modelos de probabilidade, e
- selecionar o modelo de probabilidade a partir do conjunto de pelo menos dois modelos de probabilidade para o qual o custo de codificação é menor do que cada um dos custos de codificação dos outros modelos de probabilidade do conjunto de pelo menos dois modelos de probabilidade.
De acordo com outro aspecto particular da invenção, a etapa de cálculo, para cada um dos modelos de probabilidade do conjunto de pelo menos dois modelos de probabilidade, do custo de codificação compreende as seguintes etapas:
- codificar um número inteiro N de blocos de dados de imagem com cada um dos modelos de probabilidade do conjunto de pelo menos dois modelos de probabilidade,
- determinar, para cada um dos modelos de probabilidade do conjunto de pelo menos dois modelos de probabilidade, o custo de codificação de N blocos de dados de imagem e a distorção associada à codificação de N blocos de dados de imagem, e
- calcular, para cada um dos modelos de probabilidade do conjunto, a soma ponderada do custo de codificação e a distorção.
De acordo com uma característica particular da invenção, os pontos de comutação são distribuídos uniformemente no fluxo.
De acordo com outra característica particular, a distribuição dos pontos de comutação no fluxo é em função do número de blocos codificados de acordo com um dado modo de codificação.
De acordo com outra característica particular, as posições no fluxo de pontos de comutação são transmitidas no fluxo.
De acordo com outra característica particular, as posições no fluxo de pontos de comutação são sinalizadas por uma sequência específica de bits.
De acordo com um aspecto particular da concretização, o método de codificação aritmética de acordo com a invenção também compreende uma etapa de inicialização do conjunto de modelos de probabilidade pelo modelo de probabilidade definido por padrão no início de cada imagem ou cada fatia de imagens.
De acordo com uma característica particular da invenção, a etapa de inicialização é aplicada apenas em imagens de referência.
A invenção também diz respeito a um método para decodificação aritmética de símbolos codificados na forma de um fluxo, compreendendo as seguintes etapas:
-decodificar um símbolo atual de acordo com um modelo de probabilidade atual, e
-atualizar o modelo de probabilidade atual de acordo com a decodificação do símbolo atual.
O método também compreende, nos pontos de comutação distribuídos no fluxo, as seguintes etapas:
-decodificar um identificador de um modelo de probabilidade,
-selecionar o modelo de probabilidade atual em um conjunto de pelo menos dois modelos de probabilidade de acordo com o identificador decodificado.
De acordo com outra concretização da invenção, as etapas do método de codificação aritmética são reiteradas para decodificar uma sucessão de símbolos e em que o conjunto de pelo menos dois modelos de probabilidade compreende um primeiro modelo de probabilidade definido a partir dos símbolos decodificados anteriormente ao símbolo atual e um subconjunto de modelos de probabilidade compreendendo ao menos um segundo modelo de probabilidade definido por padrão.
4. Lista de figuras
A invenção será melhor compreendida e ilustrada por meio das concretizações e implementações vantajosas, de modo algum limitantes, com referência às figuras no apêndice, nas quais:
  • -a figura 1 representa a alteração, durante a codificação de um sinal de origem, na probabilidade real e na probabilidade estimada de acordo com o método VLC de que um símbolo S assumirá um valor "a”,
  • -a figura 2 representa a alteração, durante a codificação de um sinal de origem, na probabilidade real e na probabilidade estimada de acordo com o método AC de que um símbolo S assumirá um valor "a”,
  • -a figura 3 ilustra um método de codificação aritmética de acordo com uma primeira concretização da invenção,
  • -a figura 4 representa duas imagens em que são distribuídos pontos de comutação SP,
  • -a figura 5 ilustra uma etapa particular do método de codificação aritmética de acordo com uma das concretizações ilustradas nas figuras 3, 6 e 7,
  • -a figura 6 ilustra um método de codificação aritmética de acordo com uma segunda concretização da invenção,
  • -a figura 7 ilustra um método de codificação aritmética de acordo com uma terceira concretização da invenção,
  • -a figura 8 ilustra uma etapa particular do método de codificação aritmética de acordo com a concretização ilustrada na figura 7,
  • -a figura 9 representa a alteração, durante a codificação de um sinal de origem, na probabilidade real e na probabilidade estimada de acordo com o método da invenção de que um símbolo S assumirá um valor "a”,
  • -a figura 10 ilustra um método de decodificação aritmética de acordo com uma concretização particular,
  • -a figura 11 ilustra um método de decodificação aritmética de acordo com outra concretização particular,
  • -a figura 12 ilustra um dispositivo de codificação de acordo com a invenção, e
  • -a figura 13 ilustra um dispositivo de decodificação de acordo com a invenção.
5. Descrição Detalhada da Invenção
A codificação por entropia AC compreende principalmente as seguintes etapas para codificar um símbolo atual Sc:
-codificação do símbolo atual Sc de acordo com um modelo de probabilidade atual Pc, e
-atualizar o modelo de probabilidade atual Pc de acordo com a codificação do símbolo atual Sc.
Um modelo de probabilidade associa, a cada valor possível de um símbolo, uma probabilidade. Por exemplo, se o símbolo Sc assumir o valor no conjunto {a, b, c, d}, em seguida uma probabilidade é associada a cada valor "a”, "b”, "c” e "d”. Se o símbolo Sc assumir o valor "b”, então, na etapa de atualização do modelo de probabilidade atual Pc, a probabilidade associada é aumentada, isto é, o número de ocorrências F(Sc=b) é aumentado em 1. O modelo de probabilidade atual Pc usado para codificar o símbolo atual Sc é definido a partir dos símbolos codificados anteriormente ao símbolo atual Sc. Se o símbolo atual Sc for o primeiro codificado, então o modelo de probabilidade atual Pc é definido por padrão, por exemplo, como um modelo de probabilidade uniforme. Se o símbolo atual Sc for o N-ésimo símbolo codificado, então o modelo de probabilidade atual Pc depende da codificação dos (N-1)-ésimos símbolos codificados anteriormente ao símbolo atual Sc. De fato, o modelo de probabilidade atual Pc é atualizado toda vez que um novo símbolo é codificado.
A figura 3 ilustra um método de codificação aritmética de acordo com uma primeira concretização da invenção. Durante uma etapa 100, verifica-se se está situado em um ponto de comutação SP. Um ponto de comutação SP é definido de acordo com a invenção como um ponto no fluxo, em cujo nível o modelo de probabilidade usado para codificar o símbolo atual pode ser modificado. Os pontos de comutação SP são distribuídos no fluxo, tanto uniforme quanto irregularmente. Por exemplo, os pontos de comutação SP são distribuídos no fluxo de modo a corresponder tanto aos inícios das linhas de bloco, como mostra a parte esquerda da figura 4, como irregularmente como ilustrado na parte direita da figura 4. Por exemplo, os pontos de comutação são distribuídos a cada N blocos, em que N é um número inteiro. De acordo com uma variante, os pontos de comutação são distribuídos a cada N blocos codificados de acordo com um dado modo, por exemplo, os N blocos codificados de acordo com o modo INTRA. De acordo com outra variante, os pontos de comutação são distribuídos no fluxo irregularmente e suas posições no fluxo são transmitidas no fluxo. De acordo com outra variante, um ponto de comutação pode ser sinalizado por uma sequência particular de bits no fluxo.
Se localizado em um ponto de comutação SP, o método continua para uma etapa 102, se não, continua em uma etapa 106.
Durante a etapa 102, um modelo de probabilidade Pm é selecionado em um conjunto L de pelo menos dois modelos de probabilidade {Pi}i∈[0 ;M] de acordo com um critério de custo de codificação, em que M é um número inteiro. M é o número de modelos de probabilidade no conjunto L. Essa etapa é detalhada na figura 5.
Durante uma etapa 1020, o custo de codificação Ci associado ao modelo Pi de L é calculado. Por exemplo, no caso em que os símbolos são representativos de uma imagem dividida em blocos de dados de imagem, J blocos de dados de imagem que seguem na ordem de codificação, com cujo bloco atual é associado o símbolo Sc, são codificados, em que J é um número inteiro. O custo de codificação Ci associado à codificação de J blocos é, assim, calculado. De acordo com uma variante, a distorção Di associada à codificação dos J blocos de dados de imagem com o modelo de probabilidade Pi também é calculada. De acordo com essa variante, o custo de codificação é substituído pela soma ponderada do custo de codificação e pela distorção associada:
Ci = Di + λ.Ci.
Durante a etapa 1022, o índice i é incrementado em 1.
Durante uma etapa 1024, o valor de i é comparado com M. Se i<M, então o método retorna à etapa 1020 com o novo valor de i, caso contrário, o método continua para a etapa 1026.
Durante a etapa 1026, o modelo de probabilidade Pi do conjunto L para o qual o custo de codificação Ci associado é o menor é selecionado como sendo o modelo Pm.
Durante uma etapa 104, um identificador m do modelo selecionado no conjunto L é codificado no fluxo. Vantajosamente, esse identificador permite que um método de decodificação encontre novamente o conjunto L o modelo selecionado pelo método de codificação. O modelo de probabilidade Pm é recopiado no modelo Pc, isto é, o modelo de probabilidade Pm selecionado na etapa 102 torna-se o modelo de probabilidade Pc atual. Durante a etapa 106, o símbolo atual Sc é codificado com o modelo de probabilidade atual Pc.
Durante uma etapa 108, o modelo de probabilidade atual Pc é atualizado de acordo com o método descrito anteriormente em referência à codificação AC.
De acordo com uma segunda concretização ilustrada na figura 6, as etapas 100 a 108 são reiteradas para codificar uma sucessão de símbolos. As etapas da figura 6 idênticas às etapas da figura 3 são identificadas na figura 6 pelas mesmas referências numéricas.
Durante a etapa 100, verifica-se se a localização está em um ponto de comutação SP.
Se localizado em um ponto de comutação SP, o método continua para uma etapa 102, se não, continua na etapa 106.
Durante a etapa 102, um modelo de probabilidade Pm é selecionado em um conjunto L de pelo menos dois modelos de probabilidade {Pi}i∈[0 ;M] de acordo com um critério de custo de codificação, em que M é um número inteiro. M é o número de modelos de probabilidade no conjunto L. O conjunto L compreende o modelo de probabilidade atual Pc que é definido a partir dos símbolos codificados anteriormente ao símbolo atual Sc e o subconjunto E de modelos de probabilidade definido por padrão. O subconjunto E compreende pelo menos um desse modelo de probabilidade definido por padrão, indicado como P0. Por exemplo, P0 é um modelo de probabilidade uniforme, isto é, todas as probabilidades desse modelo são iguais. O subconjunto E pode conter outros modelos definidos por padrão, tal como um modelo de probabilidade Gaussiano ou modelos obtidos por aprendizado em uma base de dados representativa do sinal a ser codificado. Note que, se o símbolo atual Sc for o primeiro símbolo codificado, então o modelo de probabilidade atual Pc é definido por padrão, caso este em que ele pode ser idêntico ao modelo P0 de E. Se o símbolo atual Sc não for o primeiro símbolo codificado, então o modelo de probabilidade atual Pc é definido usando os símbolos codificados anteriormente ao símbolo atual Sc. Tal modelo de probabilidade Pc foi, de fato, atualizado durante a codificação dos símbolos codificados anteriormente ao símbolo atual Sc de modo a adaptar dinamicamente as características do sinal de origem. A etapa 102 é detalhada na figura 5.
Durante uma etapa 11020, o custo de codificação Ci associado ao modelo L é calculado. Por exemplo, no caso em que os símbolos são representativos de uma imagem dividida em blocos de dados de imagem, J blocos de dados de imagem que seguem na ordem de codificação, com cujo bloco atual é associado o símbolo Sc, são codificados, em que J é um número inteiro. O custo de codificação Ci associado à codificação de J blocos é, assim, calculado. De acordo com uma variante, a distorção Di associada à codificação dos J blocos de dados de imagem com o modelo de probabilidade Pi também é calculada. De acordo com essa variante, o custo de codificação é substituído pela soma ponderada do custo de codificação e pela distorção associada:
Ci = Di + λCi.
Durante a etapa 1022, o índice i é incrementado em 1.
Durante uma etapa 1024, o valor de i é comparado com M. Se i<M, então o método retorna à etapa 1020 com o novo valor de i, caso contrário, o método continua para a etapa 1026.
Durante a etapa 1026, o modelo de probabilidade Pi do conjunto L para o qual o custo de codificação Ci associado é o menor é selecionado como sendo o modelo Pm.
Durante uma etapa 104, um identificador m do modelo selecionado no conjunto L é codificado no fluxo. Vantajosamente, esse identificador permite que um método de decodificação encontre novamente o conjunto L o modelo selecionado pelo método de codificação. O modelo de probabilidade Pm é recopiado no modelo Pc, isto é, o modelo de probabilidade Pm selecionado na etapa 102 torna-se o modelo de probabilidade Pc atual.
Durante a etapa 106, o símbolo atual Sc é codificado com o modelo de probabilidade atual Pc.
Durante uma etapa 108, o modelo de probabilidade atual Pc é atualizado de acordo com o método descrito anteriormente em referência à codificação AC.
Durante uma etapa 110, verifica-se se o conjunto de símbolos foi codificado Se o conjunto de símbolos tiver sido codificado, então o método termina, se não, o método continua para uma etapa 112.
Durante a etapa 112, o próximo símbolo a ser codificado torna-se o símbolo atual Sc. O método se repete então com esse novo símbolo atual na etapa 100.
De acordo com uma primeira variante dessa segunda concretização, durante a etapa 102, um modelo de probabilidade Pm é selecionado em E de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, isto é, o modelo Pm selecionado é o modelo de E que tem uma similaridade maior com o modelo atual Pc. A similaridade entre os dois modelos de probabilidade P1 e P2 é, por exemplo, calculada como se segue:
Figure img0001
ou novamente como se segue
Figure img0002
em que A= {ai}i∈I representa o conjunto de valores possíveis do símbolo Sc e em que I é um conjunto de índices identificados os referidos valores possíveis.
De acordo com uma segunda variante dessa segunda concretização, durante a etapa 102, um modelo de probabilidade Pm é selecionado em E de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, isto é, o modelo Pm selecionado é o modelo de E que tem uma similaridade maior com o modelo de probabilidade atual Pc contanto que essa similaridade seja maior do que um valor limiar. No caso contrário, Pm=Pc.
No caso dessas variantes, isto é, a seleção do modelo Pm de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, nenhum identificador m do modelo selecionado no conjunto E é codificado no fluxo. De fato, o modelo Pm é selecionado da mesma forma no lado do decodificador que no lado do codificador. A etapa 104 é, assim, omitida.
Uma terceira concretização é ilustrada na figura 7. As etapas da figura 7 idênticas às etapas da figura 3 e 6 são identificadas na figura 7 pelas mesmas referências numéricas.
Durante a etapa 100, verifica-se se a localização está em um ponto de comutação SP.
Se localizado em um ponto de comutação SP, o método continua para uma etapa 102, se não, continua na etapa 106.
Durante a etapa 102, um modelo de probabilidade Pm é selecionado em um conjunto L de pelo menos dois modelos de probabilidade {Pi}i∈[0 ;M] de acordo com um critério de custo de codificação, em que M é um número inteiro. M é o número de modelos de probabilidade no conjunto L. O conjunto L compreende o modelo de probabilidade atual Pc que é definido a partir dos símbolos codificados anteriormente ao símbolo atual Sc e o subconjunto E de modelos de probabilidade definido por padrão. O subconjunto E compreende pelo menos um desse modelo de probabilidade definido por padrão, indicado como P0. Por exemplo, P0 é um modelo de probabilidade uniforme, isto é, todas as probabilidades desse modelo são iguais. O subconjunto E pode conter outros modelos definidos por padrão, tal como um modelo de probabilidade Gaussiano ou modelos obtidos por aprendizado em uma base de dados representativa do sinal a ser codificado. Note que, se o símbolo atual Sc for o primeiro símbolo codificado, então o modelo de probabilidade atual Pc é definido por padrão, caso este em que ele pode ser idêntico ao modelo P0 de E. Se o símbolo atual Sc não for o primeiro símbolo codificado, então o modelo de probabilidade atual Pc é definido usando os símbolos codificados anteriormente ao símbolo atual Sc. Tal modelo de probabilidade Pc foi, de fato, atualizado durante a codificação dos símbolos codificados anteriormente ao símbolo atual Sc de modo a adaptar dinamicamente as características do sinal de origem. A etapa 102 é detalhada na figura 5.
Durante uma etapa 1020, o custo de codificação Ci associado ao modelo Pi de L é calculado. Por exemplo, no caso em que os símbolos são representativos de uma imagem dividida em blocos de dados de imagem, J blocos de dados de imagem que seguem na ordem de codificação, com cujo bloco atual é associado o símbolo Sc, são codificados, em que J é um número inteiro. O custo de codificação Ci associado à codificação de J blocos é, assim, calculado. De acordo com uma variante, a distorção Di associada à codificação dos J blocos de dados de imagem com o modelo de probabilidade Pi também é calculada. De acordo com essa variante, o custo de codificação é substituído pela soma ponderada do custo de codificação e pela distorção associada:
Ci = Di + λCi.
Durante a etapa 1022, o índice i é incrementado em 1.
Durante uma etapa 1024, o valor de i é comparado com M. Se i<M, então o método retorna à etapa 1020 com o novo valor de i, caso contrário, o método continua para a etapa 1026.
Durante a etapa 1026, o modelo de probabilidade Pi do conjunto L para o qual o custo de codificação Ci associado é o menor é selecionado como sendo o modelo Pm.
Durante uma etapa 104, um identificador m do modelo selecionado no conjunto L é codificado no fluxo. Vantajosamente, esse identificador permite que um método de decodificação encontre novamente o conjunto L o modelo selecionado pelo método de codificação.
Durante uma etapa 105, o modelo de probabilidade atual Pc é adicionado ao subconjunto E, e então o modelo de probabilidade selecionado Pm é novamente copiado no modelo Pc, isto é, o modelo de probabilidade Pm selecionado na etapa 102 torna-se o modelo de probabilidade atual Pc. Note que as probabilidades do modelo de probabilidade Pc adicionado no subconjunto E não são modificadas. Devido a essa etapa 105, o método de codificação de acordo com a terceira concretização é mais eficiente em relação ao método de codificação de acordo com a segunda concretização descrita em referência à figura 6. De fato, neste caso, o conteúdo do subconjunto E varia dinamicamente de acordo com a codificação dos símbolos integrando possivelmente, em cada codificação de um novo símbolo atual, o modelo de probabilidade atual que está associado a ele. O subconjunto E assim definido compreende, portanto, mais modelos de probabilidade adaptados às características do sinal de origem, isto é, definidos usando a codificação dos símbolos codificados anteriormente ao símbolo atual Sc. Por exemplo, imaginando que E compreende inicialmente um modelo de probabilidade único definido por padrão indicado como P0 e que o símbolo atual Sc é o k-ésimo símbolo codificado, então se codifica esse símbolo esse símbolo de acordo com a segunda concretização apenas se os modelos de probabilidade seguintes forem testados durante a etapa 102. P0 e PCK-1, em que PCK-1 é o modelo de probabilidade atual atualizado na etapa 108 durante a codificação do (k-1)-ésimo símbolo. No entanto, de acordo com a terceira concretização, os seguintes modelos de probabilidade são testados: P0, PCK-1, {PCK-m}, em que m depende do tamanho SizeE de E e em que {PCK-m} compreende os modelos de probabilidade adicionados a E durante a codificação dos símbolos codificados anteriormente ao K-ésimo símbolo nos pontos de comutação.
Essa etapa é detalhada na figura 8.
Durante uma etapa 1050, o tamanho SizeE de E é comparado com um valor limiar Tmax. Se SizeE < Tmax, então o método continua na etapa 1054. Se não, o método prossegue para a etapa 1052.
Durante a etapa 1052, um modelo de probabilidade é excluído do subconjunto E com a exceção do segundo modelo de probabilidade definido por padrão, indicado como P0. O modelo de probabilidade excluído é, por exemplo, o modelo mais antigo no subconjunto E. De acordo com uma variante, o modelo de probabilidade excluído é o modelo que é selecionado com menos frequência. De acordo com outra variante, o modelo de probabilidade excluído é, dentre os P modelos de probabilidade selecionados com menos frequência, o modelo de probabilidade para o qual os custos de codificação médios calculados na etapa 1020 quando o modelo de probabilidade em questão foi selecionado foi o maior.
Durante uma etapa 1054, o modelo de probabilidade atual Pc é adicionado em E.
Durante a etapa 106, o símbolo atual Sc é codificado com o modelo de probabilidade atual Pc.
Durante uma etapa 108, o modelo de probabilidade atual Pc é atualizado de acordo com o método descrito anteriormente em referência à codificação AC.
Durante uma etapa 110, verifica-se se o conjunto de símbolos foi codificado Se o conjunto de símbolos tiver sido codificado, então o método termina, se não, o método continua para uma etapa 112.
Durante uma etapa 112, o próximo símbolo a ser codificado torna-se o símbolo atual Sc. O método se repete então com esse novo símbolo atual na etapa 100.
De acordo com uma primeira variante dessa segunda concretização, durante a etapa 102, um modelo de probabilidade Pm é selecionado em E de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, isto é, o modelo Pm selecionado é o modelo de E que tem uma similaridade maior com o modelo atual Pc. A similaridade entre os dois modelos de probabilidade P1 e P2 é, por exemplo, calculada como se segue:
Figure img0003
ou novamente como se segue
Figure img0004
em que A= {ai}i∈I representa o conjunto de valores possíveis do símbolo Sc e em que I é um conjunto de índices identificados os referidos valores possíveis.
De acordo com uma segunda variante dessa segunda concretização, durante a etapa 102, um modelo de probabilidade Pm é selecionado em E de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, isto é, o modelo Pm selecionado é o modelo de E que tem uma similaridade maior com o modelo de probabilidade atual Pc contanto que essa similaridade seja maior do que um valor limiar. No caso contrário, Pm=Pc.
No caso dessas variantes, isto é, a seleção do modelo Pm de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, nenhum identificador m do modelo selecionado no conjunto E é codificado no fluxo. De fato, o modelo Pm é selecionado da mesma forma no lado do decodificador que no lado do codificador. A etapa 104 é, assim, omitida.
De acordo com uma variante da invenção que pode ser aplicada a uma sequência de imagens, o método de codificação aritmética compreende uma etapa de inicialização do subconjunto E pelo modelo de probabilidade definido pelo padrão P0 no início de cada imagem ou cada fatia de imagens.
De acordo com outra variante, a etapa de inicialização do subconjunto E pelo modelo de probabilidade definido por padrão P0 só é aplicável em imagens de referência. Uma imagem de referência é uma imagem que é usada para prever outra imagem para codificar essa outra imagem.
Na figura 9, é ilustrada, no eixo X, a progressão do processo de codificação de uma imagem, e no eixo Y, a probabilidade de que o símbolo S assume o valor "a”. As linhas sólidas representam a alteração na probabilidade real P(S=a) e as linhas pontilhadas representam a probabilidade estimada correspondente durante a codificação da imagem de acordo com o método da invenção. A probabilidade estimada é atualizada durante a etapa 108 de acordo com a codificação da imagem. O tempo de convergência é consideravelmente reduzido em relação ao método AC (figura 2).
O método para decodificar um fluxo F de acordo com a invenção é representado na figura 10.
Durante uma etapa 200, verifica-se se a localização está em um ponto de comutação SP. Um ponto de comutação SP é definido de acordo com a invenção como um ponto no fluxo, em cujo nível o modelo de probabilidade usado para codificar o símbolo atual pode ser modificado. As posições dos pontos de comutação são determinadas, por exemplo, por meio da decodificação das referidas posições codificadas no referido fluxo. De acordo com outra variante, os pontos de comutação são distribuídos a cada N blocos, em que N é um número inteiro. De acordo com outra variante, os pontos de comutação são distribuídos a cada N blocos de acordo com um dado modo, por exemplo, os N blocos codificados de acordo com o modo INTRA. Se localizado em um ponto de comutação SP, o método continua para uma etapa 202, se não, continua em uma etapa 206.
Durante uma etapa 202, um identificador m é decodificado a partir do fluxo F. Esse identificador permite a identificação de um modelo de probabilidade em um conjunto L de pelo menos dois modelos de probabilidade. O conjunto L compreende o modelo de probabilidade atual Pc que é definido a partir dos símbolos codificados anteriormente ao símbolo atual Sc e um subconjunto E de modelos de probabilidade definido por padrão. O subconjunto E compreende pelo menos um desse modelo de probabilidade definido por padrão, indicado como P0. Por exemplo, P0 é um modelo de probabilidade uniforme, isto é, todas as probabilidades desse modelo são iguais. O subconjunto E pode conter outros modelos definidos por padrão, tal como um modelo de probabilidade Gaussiano ou modelos obtidos por aprendizado em uma base de dados representativa do sinal a ser codificado.
Durante uma etapa 204, o modelo de probabilidade de L para o qual o identificador é m é selecionado. O modelo de probabilidade Pm é recopiado no modelo Pc, isto é, o modelo de probabilidade Pm selecionado na etapa 202 torna-se o modelo de probabilidade Pc atual.
Durante uma etapa 206, o símbolo atual Sc é decodificado com o modelo de probabilidade atual Pc.
Durante uma etapa 208, o modelo de probabilidade atual Pc é atualizado de acordo com o método descrito anteriormente em referência à codificação AC.
Durante uma etapa 210, verifica-se se o conjunto de símbolos foi decodificado Se o conjunto de símbolos tiver sido decodificado, então o método termina, se não, o método continua para uma etapa 200 para decodificar um próximo símbolo.
De acordo com uma primeira variante dessa concretização, durante a etapa 204, um modelo de probabilidade Pm é selecionado em E de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, isto é, o modelo Pm selecionado é o modelo de E que tem uma similaridade maior com o modelo atual Pc. A similaridade entre os dois modelos de probabilidade P1 e P2 é, por exemplo, calculada como se segue:
Figure img0005
ou novamente como se segue
Figure img0006
em que A= {ai}i∈I representa o conjunto de valores possíveis do símbolo Sc e em que I é um conjunto de índices identificados os referidos valores possíveis.
De acordo com uma segunda variante dessa segunda concretização, durante a etapa 102, um modelo de probabilidade Pm é selecionado em E de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, isto é, o modelo Pm selecionado é o modelo de E que tem uma similaridade maior com o modelo de probabilidade atual Pc contanto que essa similaridade seja maior do que um valor limiar. No caso contrário, Pm=Pc.
No caso dessas variantes, isto é, a seleção do modelo Pm de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, nenhum identificador m do modelo selecionado no conjunto E é decodificado no fluxo. A etapa 202 é, assim, omitida.
Outra concretização é representada na figura 11. As etapas da figura 11 idênticas às etapas da figura 10 são identificadas na figura 11 pelas mesmas referências numéricas.
Durante uma etapa 200, verifica-se se a localização está em um ponto de comutação SP. Um ponto de comutação SP é definido de acordo com a invenção como um ponto no fluxo, em cujo nível o modelo de probabilidade usado para codificar o símbolo atual pode ser modificado. As posições dos pontos de comutação são determinadas, por exemplo, por meio da decodificação das referidas posições codificadas no referido fluxo. De acordo com outra variante, os pontos de comutação são distribuídos a cada N blocos, em que N é um número inteiro. De acordo com outra variante, os pontos de comutação são distribuídos a cada N blocos de acordo com um dado modo, por exemplo, a cada N blocos codificados de acordo com o modo INTRA. De acordo com outra variante, um ponto de comutação pode ser sinalizado por uma sequência particular de bits no fluxo. Se localizado em um ponto de comutação SP, o método continua para uma etapa 202, se não, continua em uma etapa 206.
Durante uma etapa 202, um identificador m é decodificado a partir do fluxo F. Esse identificador permite a identificação de um modelo de probabilidade em um conjunto L de pelo menos dois modelos de probabilidade. O conjunto L compreende o modelo de probabilidade atual Pc que é definido a partir dos símbolos codificados anteriormente ao símbolo atual Sc e um subconjunto E de modelos de probabilidade definido por padrão. O subconjunto E compreende pelo menos um desse modelo de probabilidade definido por padrão, indicado como P0. Por exemplo, P0 é um modelo de probabilidade uniforme, isto é, todas as probabilidades desse modelo são iguais. De acordo com uma variante, P0 é um modelo de probabilidade definido em um padrão. O subconjunto E pode conter outros modelos definidos por padrão, tal como um modelo de probabilidade Gaussiano ou modelos obtidos por aprendizado em uma base de dados representativa do sinal a ser codificado. Note que, se o símbolo atual Sc for o primeiro símbolo codificado, então o modelo de probabilidade atual Pc é definido por padrão, caso este em que ele pode ser idêntico ao modelo P0 de E. Se o símbolo atual Sc não for o primeiro símbolo codificado, então o modelo de probabilidade atual Pc é definido usando os símbolos codificados anteriormente ao símbolo atual Sc. Tal modelo de probabilidade Pc foi, de fato, atualizado durante a codificação dos símbolos codificados anteriormente ao símbolo atual Sc de modo a adaptar dinamicamente as características do sinal de origem.
Durante uma etapa 204, o modelo de probabilidade de L para o qual o identificador é m é selecionado.
Durante uma etapa 205, o modelo de probabilidade atual Pc é adicionado ao subconjunto E. Essa etapa é detalhada na figura 8. O modelo de probabilidade Pm é recopiados no modelo de probabilidade atual Pc, isto é, o modelo de probabilidade Pm selecionado na etapa 204 torna-se o modelo de probabilidade Pc atual. Essa etapa é idêntica à etapa 105 do método de codificação de acordo com a terceira concretização.
Durante uma etapa 1050, o tamanho SizeE de E é comparado com um valor limiar Tmax. Se SizeE < Tmax, então o método continua na etapa 1054. Se não, o método prossegue para a etapa 1052.
Durante a etapa 1052, um modelo de probabilidade é excluído do subconjunto E com a exceção do segundo modelo de probabilidade definido por padrão, indicado como P0. O modelo de probabilidade excluído é, por exemplo, o modelo mais antigo no subconjunto E. De acordo com uma variante, o modelo de probabilidade excluído é, dentre os P modelos de probabilidade selecionados com menos frequência, o modelo de probabilidade para o qual o custo de codificação médio calculado quando o modelo de probabilidade em questão é selecionado for o maior.
Durante uma etapa 206, o símbolo Sc é decodificado com o modelo de probabilidade atual Pc que é o modelo de probabilidade Pm selecionado na etapa 204.
Durante uma etapa 208, o modelo de probabilidade atual Pc é atualizado de acordo com o método descrito anteriormente em referência à codificação AC. A etapa de atualização no lado do decodificador é idêntica à realizada no lado do codificador.
Durante uma etapa 210, verifica-se se o conjunto de símbolos foi decodificado Se o conjunto de símbolos tiver sido decodificado, então o método termina, se não, o método continua na etapa 200 para decodificar um novo símbolo.
De acordo com uma primeira variante dessa concretização, durante a etapa 204, um modelo de probabilidade Pm é selecionado em E de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, isto é, o modelo Pm selecionado é o modelo de E que tem uma similaridade maior com o modelo atual Pc. A similaridade entre os dois modelos de probabilidade P1 e P2 é, por exemplo, calculada como se segue:
Figure img0007
ou novamente como se segue
Figure img0008
em que A= {ai}i∈I representa o conjunto de valores possíveis do símbolo Sc e em que I é um conjunto de índices identificados os referidos valores possíveis.
De acordo com uma segunda variante dessa segunda concretização, durante a etapa 102, um modelo de probabilidade Pm é selecionado em E de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, isto é, o modelo Pm selecionado é o modelo de E que tem uma similaridade maior com o modelo de probabilidade atual Pc contanto que essa similaridade seja maior do que um valor limiar. No caso contrário, Pm=Pc.
No caso dessas variantes, isto é, a seleção do modelo Pm de acordo com um critério de similaridade com o modelo de probabilidade atual Pc, nenhum identificador m do modelo selecionado no conjunto E é decodificado no fluxo. A etapa 202 é, assim, omitida.
Um dispositivo 12 para codificar imagens de acordo com a invenção é ilustrado na figura 12. O dispositivo de codificação 12 recebe imagens de entrada I pertencendo a uma sequência de imagens. Cada imagem é dividida em blocos de pixels, a cada um dos quais é associado ao menos um item de dados de imagem. O dispositivo de codificação 12 particularmente compreende um módulo de cálculo 1200 capaz de subtrair pixel por pixel, de um bloco atual Xsrc, um bloco de predição Xpred para gerar um bloco de dados de imagem residual ou bloco residual marcado como Xres. Ele adicionalmente compreende um módulo 1202 capaz de transformar e então quantizar o bloco residual Xres em dados quantizados. A transformada T é, por exemplo, uma Transformada Discreta de Cosseno (DCT). O módulo de codificação 12 adicionalmente compreende um módulo de codificação por entropia 1204 capaz de codificar os dados quantizados em um fluxo F de dados codificados. O módulo de codificação por entropia 1204 implementa as etapas 100, 102, 104, 106, 108, 110 e 122 e, possivelmente, a etapa 102 do método de codificação aritmética de acordo com a invenção. Ele também compreende um módulo 1206 que realiza a operação inversa do módulo 1202. O módulo 1206 realiza uma quantização inversa IQ seguido de uma transformada inversa IT. O módulo 1206 é conectado a um módulo de cálculo 1208 capaz de adicionar pixel por pixel o bloco de dados do módulo 1206 e o bloco de predição Xpred para gerar um bloco de dados de imagem reconstruídos que são armazenados em uma memória 1210.
O dispositivo de codificação 12 adicionalmente compreende um módulo de estimação de movimento 1212 capaz de estimar pelo menos um vetor de movimento entre o bloco Xsrc e uma imagem de referência armazenada na memória 1210, esta imagem tendo sido anteriormente codificada e então reconstruída. De acordo com uma variante, a estimação de movimento pode ser realizada entre o bloco atual Xsrc e a imagem de referência original. De acordo com um método bem conhecido pelos versados na técnica, o módulo de estimação de movimento 1212 busca, na imagem de referência, um vetor de movimento de modo a minimizar um erro calculado entre o bloco atual Xsrc e um bloco de referência Xref na imagem de referência identificada usando o referido vetor de movimento. De acordo com uma variante, o dispositivo de codificação 12 não compreende um módulo de estimação de movimento, caso este em que os blocos de dados de imagem Xsrc são codificados de acordo com um modo de codificação INTRA, possivelmente com predição espacial.
Os dados de movimento são transmitidos pelo módulo de estimação de movimento 1212 a um módulo de decisão 1214 capaz de selecionar um modo de codificação para o bloco Xsrc em um conjunto predefinido de modos de codificação. O termo "dados de movimento” deve ser compreendido no sentido mais amplo, isto é, um vetor de movimento, e possivelmente um índice de imagem de referência identificando a imagem na sequência de imagens.
O modo de codificação retido é, por exemplo, o que minimiza um critério do tipo distorção de taxa de bits. No entanto, a invenção não se restringe a esse método de seleção, e o modo retido pode ser selecionado de acordo com outro critério, por exemplo, em um critério do tipo a priori. O modo de codificação, bem como possivelmente os dados de movimento no caso de um modo de predição temporal ou modo INTER, selecionado pelo módulo de decisão 1214, são transmitidos a um módulo de predição 1216. O modo de codificação, e, possivelmente, os dados de movimento, também são transmitidos ao módulo de codificação por entropia 1204 para serem codificados no fluxo F. O módulo de predição 1216 determina o bloco de predição Xpred particularmente a partir das imagens de referência Ir previamente reconstruídas e armazenadas na memória 1210, do modo de codificação e, possivelmente, dos dados de movimento selecionados pelo módulo de decisão 1214.
Um dispositivo de decodificação de acordo com a invenção é ilustrado na figura 13. O dispositivo de decodificação 13 recebe, na entrada, um fluxo F de dados codificados que representam uma sequência de imagens. O fluxo F é, por exemplo, gerado e transmitido por um dispositivo de codificação 12. O dispositivo de decodificação 13 compreende um módulo de decodificação por entropia 1300 capaz de gerar dados decodificados, por exemplo, modos decodificação e dados decodificados relacionados ao conteúdo das imagens. Para essa finalidade, o módulo de decodificação por entropia 1300 implementa as etapas 200, 202, 204, 206, 208, 210 e, possivelmente, 205, do método de decodificação aritmética de acordo com a invenção.
Os dados decodificados em relação ao conteúdo das imagens que corresponde aos dados quantizados do módulo 1202 do dispositivo de codificação 12 são então transmitidos a um módulo 1302 capaz de realizar uma quantização inversa, seguido de uma transformada inversa. O módulo 1302 é idêntico ao módulo 1206 do módulo de codificação 12 que gerou o fluxo codificado F. O módulo 1302 é conectado a um módulo de cálculo 1304 capaz de adicionar pixel por pixel, o bloco de dados do módulo 1302 e um bloco de predição Xpred para gerar um bloco de dados de imagem reconstruídos que são armazenados em uma memória 1306. O dispositivo de decodificação 13 compreende, além disso, um módulo de predição 1308 idêntico ao módulo 1216 do dispositivo de codificação 12. O módulo de predição 1308 determina o módulo de predição Xpred particularmente a partir das imagens de referência Ir previamente reconstruídas e armazenadas na memória 1306, do modo de codificação e, possivelmente, dos dados de movimento decodificados para o bloco atual Xsrc pelo módulo de decodificação por entropia 1300.
Nas Figuras 11 e 12, os módulos apresentados são unidades funcionais que podem ou não corresponder a unidades fisicamente distinguíveis. Por exemplo, esses módulos, ou alguns deles, podem ser agrupados juntos em um único componente, ou constituir funções do mesmo software. Alternativamente, alguns módulos podem ser compostos de entidades físicas separadas. Como exemplo, o módulo 1202 pode ser implementado por componentes separados, um realizando uma transformada e o outro uma quantização.
Naturalmente, a presente invenção não se restringe às concretizações ilustrativas mencionadas acima. Em particular, os versados na técnica podem aplicar qualquer variante às concretizações apresentadas e combiná-las para usufruir de suas diversas vantagens. Particularmente, os métodos de codificação e decodificação aritmética se aplicam a todos os tipos de símbolos (isto é, imagens, áudio, 3D, etc). Os métodos de codificação e decodificação aritmética de acordo com a invenção não são vinculados a um padrão de codificação.

Claims (15)

  1. Método de codificação aritmética para símbolos em um fluxo (F), CARACTERIZADO por compreender as seguintes etapas aplicadas em pontos de comutação (100) distribuídos no referido fluxo (F) para codificar um símbolo atual (Sc):
    • - selecionar (102), de acordo com um critério de custo de codificação, um modelo de probabilidade (Pm) em um conjunto (L) compreendendo um modelo de probabilidade atual (Pc) definido usando símbolos codificados anteriormente ao símbolo atual (Sc) e um subconjunto (E) de modelos de probabilidade, em que o subconjunto (E) compreende ao menos um modelo de probabilidade definido por padrão (P0),
    • - codificar (104) um identificador do modelo de probabilidade selecionado;
    • - adicionar (105), no referido subconjunto (E), o referido modelo de probabilidade atual, o modelo de probabilidade selecionado (Pm) tornando-se o modelo de probabilidade atual (Pc),
    • - codificar (106) o referido símbolo atual (Sc) com o referido modelo de probabilidade atual (Pc), e
    • - atualizar (108) o referido modelo de probabilidade atual de acordo com a codificação (106) do referido símbolo atual (Sc).
  2. Método de codificação aritmética, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que quando o número de modelos de probabilidade no referido subconjunto (E) de modelos de probabilidade for igual a um valor limiar (Tmax), o referido modelo de probabilidade atual (Pc) é adicionado (105) como uma substituição para o modelo de probabilidade do referido subconjunto (E) de modelos de probabilidade selecionados com menos frequência, com a exceção do segundo modelo de probabilidade definido por padrão (P0).
  3. Método de codificação aritmética, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que quando o número de modelos de probabilidade no referido subconjunto (E) de modelos de probabilidade for igual a um valor limiar (Tmax), o referido modelo de probabilidade atual (Pc) é adicionado (105) como uma substituição para o modelo de probabilidade mais antigo no referido subconjunto (E), com a exceção do modelo de probabilidade definido por padrão (P0).
  4. Método de codificação aritmética, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que quando o número de modelos de probabilidade no referido subconjunto (E) de modelos de probabilidade for igual a um valor limiar (Tmax), o referido modelo de probabilidade atual (Pc) é adicionado como uma substituição, dentre os P modelos de probabilidade do referido subconjunto (E) selecionados com menos frequência, do modelo de probabilidade para o qual a média dos custos de codificação calculada quando o referido modelo de probabilidade é selecionado é a maior, com exceção do modelo de probabilidade definido por padrão (P0), em que P é um número inteiro.
  5. Método de codificação aritmética, de acordo com qualquer uma das reivindicações precedentes 1 a 4, CARACTERIZADO pelo fato de que os referidos pontos de comutação (S0, S1) são distribuídos de maneira uniforme no referido fluxo.
  6. Método de codificação aritmética, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que a distribuição dos referidos pontos de comutação (S0, S1) no referido fluxo é de acordo com o número de blocos codificados de acordo com um dado modo de codificação.
  7. Método de codificação aritmética, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que as posições do referido fluxo (F) dos referidos pontos de comutação (S0, S1) são transmitidas no referido fluxo.
  8. Método de codificação aritmética, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que as posições no fluxo (F) dos referidos pontos de comutação (S0, S1) são sinalizadas por uma sequência particular de bits.
  9. Método de codificação aritmética, de acordo com qualquer uma das reivindicações precedentes 1 a 8, CARACTERIZADO por adicionalmente compreender uma etapa de inicialização do referido subconjunto (E) dos modelos de probabilidade pelo referido modelo de probabilidade definido por padrão (P0) no início de cada imagem ou de cada fatia de imagem.
  10. Método de decodificação aritmética para símbolos codificados na forma de um fluxo (F), CARACTERIZADO por compreender as seguintes etapas aplicadas em pontos de comutação (100) distribuídos no referido fluxo (F) para decodificar um símbolo atual (Sc):
    • - decodificar (202) a partir do fluxo (F), para o referido símbolo atual (Sc), um identificador de modelo de probabilidade (m),
    • - selecionar (204), usando o referido identificador de modelo de probabilidade (m), um modelo de probabilidade (Pm) em um conjunto (L) compreendendo um modelo de probabilidade atual (Pc) definido a partir dos símbolos codificados anteriormente ao símbolo atual (Sc) e um subconjunto (E) de modelos de probabilidade, em que o subconjunto (E) compreende ao menos um modelo de probabilidade definido por padrão (P0),
    • - adicionar (205), no referido subconjunto (E), o referido modelo de probabilidade atual (Pc), o modelo de probabilidade selecionado (Pm) tornando-se o modelo de probabilidade atual (Pc),
    • - decodificar (206) o referido símbolo atual (Sc) com o referido modelo de probabilidade atual (Pc), e
    • - atualizar (208) o referido modelo de probabilidade atual (Pc) de acordo com a decodificação (206) do referido símbolo atual (Sc).
  11. Método de decodificação aritmética, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que quando o número de modelos de probabilidade no referido subconjunto (E) de modelos de probabilidade for igual a um valor limite (Tmax), o referido modelo de probabilidade atual (Pc) é adicionado (105) como uma substituição para o modelo de probabilidade do referido subconjunto (E) de modelos de probabilidade selecionados com menos frequência, com a exceção do segundo modelo de probabilidade definido por padrão (P0).
  12. Método de decodificação aritmética, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que quando o número de modelos de probabilidade no referido subconjunto (E) de modelos de probabilidade for igual a um valor limiar (Tmax), o referido modelo de probabilidade atual (Pc) é adicionado (105) como uma substituição para o modelo de probabilidade mais antigo no referido subconjunto (E), com a exceção do modelo de probabilidade definido por padrão (P0).
  13. Método de decodificação aritmética, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que quando o número de modelos de probabilidade no referido subconjunto (E) de modelos de probabilidade for igual a um valor limiar (Tmax), o referido modelo de probabilidade atual (Pc) é adicionado como uma substituição, dentre os P modelos de probabilidade do referido subconjunto (E) selecionados com menos frequência, do modelo de probabilidade para o qual a média dos custos de codificação calculada quando o referido modelo de probabilidade é selecionado é a maior, com exceção do modelo de probabilidade definido por padrão (P0), em que P é um número inteiro.
  14. Codificador aritmético para codificar símbolos em um fluxo (F) CARACTERIZADO pelo fato de que compreende:
    • - um dispositivo para selecionar (102), em pontos de comutação (100) distribuídos no referido fluxo (F) para codificar um símbolo atual (Sc), de acordo com um critério de custo de codificação, um modelo de probabilidade (Pm) em um conjunto (L) compreendendo um modelo de probabilidade atual (Pc) definido usando símbolos codificados anteriormente ao símbolo atual (Sc) e um subconjunto (E) de modelos de probabilidade, em que o subconjunto (E) compreende ao menos um modelo de probabilidade definido por padrão (P0),
    • - um dispositivo para codificar (104) um identificador do modelo de probabilidade selecionado;
    • - um dispositivo para adicionar (105), no referido subconjunto (E), o referido modelo de probabilidade atual, o modelo de probabilidade selecionado (Pm) tornando-se o modelo de probabilidade atual (Pc),
    • - um dispositivo para codificar (106) o referido símbolo atual (Sc) com o referido modelo de probabilidade atual (Pc), e
    • - um dispositivo para atualizar (108) o referido modelo de probabilidade atual de acordo com a codificação (106) do referido símbolo atual (Sc).
  15. Decodificador aritmético para decodificar símbolos codificados na forma de um fluxo (F) CARACTERIZADO pelo fato de que compreende:
    • - um dispositivo para decodificar (202), a partir do fluxo (F), em pontos de comutação (100) distribuídos no referido fluxo (F) para decodificar um símbolo atual (Sc), para o referido símbolo atual (Sc), um identificador de modelo de probabilidade (m);
    • - um dispositivo para selecionar (204), utilizando o referido identificador de modelo de probabilidade (m), um modelo de probabilidade (Pm) em um conjunto (L) compreendendo um modelo de probabilidade atual (Pc) definido a partir de símbolos codificados anteriormente ao símbolo atual (Sc) e um subconjunto (E) de modelos de probabilidade, em que o subconjunto (E) compreende ao menos um modelo de probabilidade definido por padrão (P0);
    • - um dispositivo para adicionar (205), no referido subconjunto (E), o referido modelo de probabilidade atual (Pc), o modelo de probabilidade selecionado (Pm) tornando-se o modelo de probabilidade atual (Pc),
    • - um dispositivo para decodificar (206) o referido símbolo atual (Sc) com o referido modelo de probabilidade atual (Pc), e
    • - um dispositivo para atualizar (208) o referido modelo de probabilidade atual (Pc) de acordo com a decodificação (206) do referido símbolo atual (Sc).
BRPI1011786-5A 2009-07-01 2010-06-22 métodos para codificação e decodificação aritmética BRPI1011786B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0954483 2009-07-01
FR0954483 2009-07-01
PCT/EP2010/058770 WO2011000734A1 (en) 2009-07-01 2010-06-22 Methods for arithmetic coding and decoding

Publications (2)

Publication Number Publication Date
BRPI1011786A2 BRPI1011786A2 (pt) 2018-02-27
BRPI1011786B1 true BRPI1011786B1 (pt) 2020-08-25

Family

ID=41668494

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI1011786-5A BRPI1011786B1 (pt) 2009-07-01 2010-06-22 métodos para codificação e decodificação aritmética

Country Status (8)

Country Link
US (1) US8674859B2 (pt)
EP (2) EP2449683A1 (pt)
JP (1) JP5851987B2 (pt)
KR (1) KR101730200B1 (pt)
CN (1) CN102474274B (pt)
BR (1) BRPI1011786B1 (pt)
TW (1) TWI538416B (pt)
WO (1) WO2011000734A1 (pt)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5592246B2 (ja) * 2010-12-21 2014-09-17 日本電信電話株式会社 コンテクスト適応エントロピー符号化方法,コンテクスト適応エントロピー復号方法,コンテクスト適応エントロピー符号化装置,コンテクスト適応エントロピー復号装置およびそれらのプログラム
CN103096062A (zh) * 2011-11-01 2013-05-08 珠海扬智电子科技有限公司 算术解码方法
EP2941868B1 (en) * 2013-01-07 2020-07-08 Nokia Technologies Oy Method and apparatus for video coding and decoding
US20160323603A1 (en) * 2014-01-01 2016-11-03 Lg Electronics Inc. Method and apparatus for performing an arithmetic coding for data symbols
CN109510627B (zh) * 2017-09-15 2020-07-07 腾讯科技(深圳)有限公司 一种整数编码方法、装置和存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5045852A (en) * 1990-03-30 1991-09-03 International Business Machines Corporation Dynamic model selection during data compression
JP3495800B2 (ja) * 1994-12-28 2004-02-09 キヤノン株式会社 符号化装置及び方法
JPH09121359A (ja) * 1995-10-26 1997-05-06 Hitachi Ltd 画像符号化方法および画像復号化方法
US6757436B2 (en) * 1997-06-19 2004-06-29 Electroncs For Imaging, Inc. Methods and apparatus for data compression based on modeling schemes
JP3902698B2 (ja) * 1997-12-01 2007-04-11 日本放送協会 動画像の可逆圧縮符号化装置および可逆伸長復号化装置
JP4160689B2 (ja) * 1998-11-10 2008-10-01 株式会社リコー 算術符号化装置および算術復号装置
US6894628B2 (en) 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
JP2005130099A (ja) * 2003-10-22 2005-05-19 Matsushita Electric Ind Co Ltd 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置
WO2006075901A1 (en) * 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
KR100703776B1 (ko) * 2005-04-19 2007-04-06 삼성전자주식회사 향상된 코딩 효율을 갖는 컨텍스트 기반 적응적 산술 코딩및 디코딩 방법과 이를 위한 장치, 이를 포함하는 비디오코딩 및 디코딩 방법과 이를 위한 장치
CN1719903A (zh) * 2005-06-24 2006-01-11 清华大学 用于图象算术编码中的一种二值化和概率模型选择方法
US7199735B1 (en) * 2005-08-25 2007-04-03 Mobilygen Corporation Method and apparatus for entropy coding
KR100750165B1 (ko) * 2006-02-22 2007-08-17 삼성전자주식회사 압축률 향상을 위해 개선된 컨텍스트 모델 선택을 사용하는cabac 부호화 방법 및 장치, 그리고 cabac복호화 방법 및 장치
KR101365989B1 (ko) * 2007-03-08 2014-02-25 삼성전자주식회사 트리 구조를 기반으로 한 엔트로피 부호화 및 복호화 장치및 방법
US7957600B2 (en) * 2007-05-08 2011-06-07 Arris Group, Inc. Methods and systems for rate-distortion optimized quantization of transform blocks in block transform video coding
JP2009021775A (ja) * 2007-07-11 2009-01-29 Panasonic Corp 符号化装置及び符号化方法
US7864086B2 (en) * 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems

Also Published As

Publication number Publication date
TWI538416B (zh) 2016-06-11
JP5851987B2 (ja) 2016-02-03
CN102474274B (zh) 2014-11-26
KR101730200B1 (ko) 2017-04-25
TW201136190A (en) 2011-10-16
JP2012531776A (ja) 2012-12-10
EP4224717A1 (en) 2023-08-09
US20120218131A1 (en) 2012-08-30
CN102474274A (zh) 2012-05-23
BRPI1011786A2 (pt) 2018-02-27
KR20120105412A (ko) 2012-09-25
EP2449683A1 (en) 2012-05-09
US8674859B2 (en) 2014-03-18
WO2011000734A1 (en) 2011-01-06

Similar Documents

Publication Publication Date Title
JP7336004B2 (ja) ニューラルネットワークを利用したコーデック
ES2853700T3 (es) Compensación de movimiento utilizando interpolación de imagen temporal
US10103746B2 (en) Methods and devices for coding and decoding the position of the last significant coefficient
CN107743239B (zh) 一种视频数据编码、解码的方法及装置
JP7356513B2 (ja) ニューラルネットワークのパラメータを圧縮する方法および装置
CA2798125C (en) Method and device for compression of binary sequences by grouping multiple symbols
US8194737B2 (en) Apparatus and method for modifying predicted values, and decoding system
BRPI1011786B1 (pt) métodos para codificação e decodificação aritmética
CN110692243A (zh) 用于在视频压缩中的熵代码化的概率的混合
EP2697974A2 (en) Methods and devices for coding and decoding the position of the last significant coefficient
BRPI0504835B1 (pt) ordem de varredura dos coeficientes adaptativos
CN111316642B (zh) 信令图像编码和解码划分信息的方法和装置
BR102012013367A2 (pt) aparelho e mÉtodo para efetuar codificaÇço de vÍdeo, e, meio legÍvel por computador nço transitàrio
US20120314760A1 (en) Method and system to reduce modelling overhead for data compression
KR20120087943A (ko) 디지털화된 이미지들의 시퀀스로부터의 심벌들을 인코딩하기 위한 방법
BR112019013916A2 (pt) método e aparelho para derivação de faixa em codificação aritmética binária adaptativa a contexto
BR112019019170A2 (pt) codificação aritmética binária com máquinas de estados finitas para estimativa de probabilidade parametrizada
CN106878757B (zh) 用于对数字视频内容进行编码的方法、介质和系统
Cui et al. An optimized probability estimation model for binary arithmetic coding
CN112073729B (zh) 模型更新方法、装置、电子设备及计算机可读存储介质
Hameed Fast vector quantization algorithm-based on Absolute Moment Block Truncation coding (AMBTC)
Karwowski Computational complexity analysis of adaptive arithmetic coding in HEVC video compression standard
BR112017023403B1 (pt) Método e aparelho de codificação de entropia de dados de imagem ou vídeo

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B25A Requested transfer of rights approved

Owner name: THOMSON LICENSING DTV (FR)

B25A Requested transfer of rights approved

Owner name: INTERDIGITAL MADISON PATENT HOLDINGS (FR)

B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B09Y Publication of grant cancelled [chapter 9.1.2 patent gazette]

Free format text: ANULADA A PUBLICACAO CODIGO 9.1 NA RPI NO 2562 DE 11/02/2020 POR TER SIDO INDEVIDA.

B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 25/08/2020, OBSERVADAS AS CONDICOES LEGAIS.