BR112021014787A2 - Métodos e dispositivos para codificar e decodificar um fluxo de dados representante de pelo menos uma imagem - Google Patents

Métodos e dispositivos para codificar e decodificar um fluxo de dados representante de pelo menos uma imagem Download PDF

Info

Publication number
BR112021014787A2
BR112021014787A2 BR112021014787-0A BR112021014787A BR112021014787A2 BR 112021014787 A2 BR112021014787 A2 BR 112021014787A2 BR 112021014787 A BR112021014787 A BR 112021014787A BR 112021014787 A2 BR112021014787 A2 BR 112021014787A2
Authority
BR
Brazil
Prior art keywords
pixel
prediction
block
value
image
Prior art date
Application number
BR112021014787-0A
Other languages
English (en)
Inventor
Félix Henry
Mohsen Abdoli
Original Assignee
Orange
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange filed Critical Orange
Publication of BR112021014787A2 publication Critical patent/BR112021014787A2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

métodos e dispositivos para codificar e decodificar um fluxo de dados representante de pelo menos uma imagem. a presente invenção refere-se a método para codificar e decodificar e, correlativamente, a dispositivo para codificar e decodificar um fluxo de dados codificado representativo de pelo menos uma imagem que é dividida em blocos, a produto de programa de computador, e a meio de armazenamento de dados legíveis no mesmo. para pelo menos um bloco atual da imagem, um grupo de valores de pixel no bloco é determinado (e441) a partir de pixels previamente decodificados, e para cada pixel do bloco, um resíduo de predição associado ao referido pixel é decodificado (e442). um valor de predição associado ao pixel é determinado (e4411) usando um primeiro modo de predição no qual o pixel é predito a partir de pelo menos um outro pixel previamente decodificado, o referido outro pixel previamente decodificado pertencendo ao referido bloco atual, um item de informação (e4422) indicando se o pixel é para ser predito de acordo com um segundo modo de predição no qual o pixel é predito usando uma predição resultante do referido grupo de valores de pixel no bloco. quando o pixel é predito de acordo com o segundo modo de predição, o valor de predição associado ao pixel é substituído (e4423) por um valor selecionado do grupo. o pixel é reconstruído (e444) usando o valor de predição associado ao pixel e usando a predição residual.

Description

Relatório Descritivo da Patente de Invenção para "MÉTO-
DOS E DISPOSITIVOS PARA CODIFICAR E DECODIFICAR UM FLUXO DE DADOS REPRESENTANTE DE PELO MENOS UMA IMAGEM".
1. Campo da invenção
[001] O campo da invenção é o da codificação e decodificação de imagens ou sequências de imagens e, em particular, fluxos de vídeo.
[002] Mais especificamente, a invenção se refere à compressão de imagens ou sequências de imagens usando uma representação em bloco das imagens.
[003] A invenção pode ser aplicada notavelmente à codificação de imagem ou vídeo implementada nos codificadores atuais ou futuros (JPEG, MPEG, H.264, HEVC, etc. e suas emendas) e à decodificação correspondente.
2. Técnica anterior
[004] As imagens digitais e sequências de imagens ocupam mui- to espaço em termos de memória, o que exige, ao transmitir essas imagens, comprimi-las para evitar problemas de congestionamento na rede utilizada para esta transmissão.
[005] Muitas técnicas de compressão de dados de vídeo já são conhecidas. Dentre estas, o padrão de compressão HEVC ("High Effi- ciency Video Coding, Coding Tools and Specification", Matthias Wien, Signals and Communication Technology, 2015) propõe a implementa- ção de uma predição de pixels de uma imagem atual em relação a ou- tros pixels pertencentes à mesma imagem (intrapredição) ou para uma imagem anterior ou posterior (interpredição).
[006] Mais especificamente, a intrapredição usa as redundâncias espaciais dentro de uma imagem. Para fazer isso, as imagens são di- vididas em blocos de pixels. Os blocos de pixels são então preditos usando informações já reconstruídas, correspondendo aos blocos pre-
viamente codificados / decodificados na imagem atual de acordo com a ordem de varredura dos blocos na imagem.
[007] Além disso, de maneira padrão, a codificação de um bloco atual é realizada usando uma predição do bloco atual, referido como o bloco preditor, e um resíduo de predição ou "bloco residual", corres- pondendo a uma diferença entre o bloco atual e o bloco preditor. O bloco residual resultante é então transformado, por exemplo, usando uma transformada do tipo DCT (transformada discreta de cosseno). Os coeficientes do bloco residual transformado são então quantizados, codificados por codificação de entropia e transmitidos ao decodifica- dor, que pode reconstruir o bloco atual adicionando este bloco residual ao bloco preditor.
[008] A decodificação é feita imagem por imagem e, para cada imagem, bloco por bloco. Para cada bloco, os elementos correspon- dentes do fluxo são lidos. A quantização inversa e a transformada in- versa dos coeficientes do bloco residual são realizadas. Em seguida, a predição de bloco é calculada para obter o bloco preditor e o bloco atual é reconstruído adicionando a predição (isto é, o bloco preditor) ao bloco residual decodificado.
[009] Em US9253508, uma técnica de codificação DPCM (Modu- lação de Código de Pulso Diferencial) para blocos de codificação no modo intra é integrada em um codificador HEVC. Tal técnica consiste em predizer um conjunto de pixels de um intrabloco por outro conjunto de pixels do mesmo bloco previamente reconstruído. Em US9253508, um conjunto de pixels do intrabloco a ser codificado corresponde a uma linha do bloco, ou uma coluna, ou uma linha e uma coluna, e a intrapredição usada para predizer o conjunto de pixels é uma das in- trapredições direcionais definidas no padrão HEVC.
[0010] No entanto, essa técnica não é ideal. Na verdade, a predi- ção de um pixel por pixels vizinhos previamente processados é bem adaptada para codificar dados de tipo natural (fotos, vídeos). Porém, quando o tipo de conteúdo é artificial, por exemplo, conteúdo corres- pondente a capturas de tela ou imagens de síntese, as imagens apre- sentam fortes descontinuidades gerando transições de alta energia.
[0011] Mais particularmente, as imagens de síntese, por exemplo, são susceptíveis de conter áreas com um número muito pequeno de valores de pixel, doravante também referidas como níveis. Por exem- plo, algumas áreas podem ter apenas 2 níveis: um para o fundo e ou- tro para o primeiro plano, como texto preto em fundo branco.
[0012] Na presença de tal transição em uma área da imagem, o valor de um pixel a ser codificado está muito longe do valor dos pixels vizinhos. Uma predição de tal pixel como descrito acima usando pixels vizinhos previamente processados dificilmente pode modelar tais tran- sições.
[0013] Existe, portanto, a necessidade de um novo método de co- dificação e decodificação para melhorar a compressão de dados de imagem ou vídeo.
3. Sumário da invenção
[0014] A invenção melhora o estado da técnica. Para este propósi- to, refere-se a um método para decodificar um fluxo de dados codifica- do representativo de pelo menos uma imagem que é dividida em blo- cos. Tal método de decodificação compreende, para pelo menos um bloco da imagem, referido como o bloco atual: - determinar um grupo de valores de pixel que são constan- tes no bloco de pixels previamente decodificados, - para cada pixel do bloco: • decodificar um resíduo de predição associado ao referido pixel, • determinar um valor de predição associado ao pixel de acordo com um primeiro modo de predição, de acordo com o qual o pixel é predito a partir de pelo menos um outro pixel previamente de- codificado, o referido outro pixel previamente decodificado pertencen- do ao referido bloco atual ou a um bloco previamente decodificado da imagem, • decodificar a partir do fluxo de dados um item de informa- ção indicando se o pixel é predito de acordo com um segundo modo de predição de acordo com o qual o pixel é predito usando uma predi- ção resultante do referido grupo de valores de pixel que são constan- tes no bloco, • quando o item de informação indica que o pixel é predito de acordo com o segundo modo de predição: o selecionar um valor do referido grupo, o substituir o referido valor de predição associado ao pixel pelo referido valor selecionado, • reconstruir o referido pixel usando o valor de predição as- sociado ao pixel e ao resíduo de predição.
[0015] Correlativamente, a invenção também se refere a um méto- do para codificar um fluxo de dados representativo de pelo menos uma imagem que é dividida em blocos. Tal método de codificação compre- ende, para pelo menos um bloco da imagem, referido como o bloco atual: - determinar um grupo de valores de pixel que são constan- tes no bloco de pixels previamente decodificados, - para cada pixel do bloco: • determinar um valor de predição associado ao pixel de acordo com um primeiro modo de predição de acordo com o qual o pixel é predito pelo valor de predição associado ao pixel determinado a partir de pelo menos um outro pixel previamente decodificado, o referi- do outro pixel previamente decodificado pertencente ao referido bloco atual ou para um bloco da imagem previamente decodificado,
• determinar um modo de predição para o pixel do primeiro modo de predição e um segundo modo de predição de acordo com o qual o pixel é predito usando uma predição resultante do referido gru- po de valores de pixel que são constantes no bloco, • codificar no fluxo de dados, um item de informação que indica se o pixel é predito de acordo com o segundo modo de predi- ção, • quando o item de informação indica que o pixel é predito de acordo com o segundo modo de predição: o selecionar um valor do referido grupo, o substituir o referido valor de predição associado ao pixel pelo referido valor selecionado, • calcular um resíduo de predição associado ao referido pixel usando o valor de predição associado ao pixel e ao valor do refe- rido pixel, • codificar o resíduo de predição associado ao referido pixel no fluxo de dados, • reconstruir o referido pixel usando o valor de predição as- sociado ao pixel e ao resíduo de predição decodificado.
[0016] A invenção melhora assim o desempenho de compressão de um modo de codificação usando uma predição local por pixels vizi- nhos de um pixel a ser codificado. Vantajosamente, é determinado um grupo de valores de pixel representativo dos valores de pixels vizinhos de um bloco a ser codificado. Por exemplo, este grupo compreende um número predeterminado de valores de pixel que são os mais fre- quentes entre os pixels vizinhos do bloco a ser codificado. Normalmen- te, este grupo de valores pode compreender valores de intensidade das camadas da imagem quando a imagem é representada em cama- das, por exemplo, para imagens de síntese, ou compreendendo áreas com um primeiro plano e um fundo delimitados, como texto preto em um fundo branco.
[0017] De acordo com uma modalidade particular da invenção, o grupo de valores compreende dois valores representativos dos dois valores mais frequentes na vizinhança do bloco.
[0018] Quando um pixel localizado em uma área de transição é detectado, seu valor de predição é alterado para um dos valores do grupo assim determinado.
[0019] Os valores de tal grupo são considerados constantes no bloco atual porque são determinados apenas uma vez para todos os pixels do bloco atual.
[0020] De acordo com uma modalidade particular da invenção, um valor do grupo é selecionado de acordo com uma distância entre o va- lor de predição associado ao referido pixel e determinado de acordo com o primeiro modo de predição em relação aos valores de pixel constantes do grupo.
[0021] Esta modalidade particular da invenção permite a seleção conveniente de um valor de predição do grupo para um pixel localiza- do em uma área de transição e não requer a transmissão de informa- ções adicionais para indicar esta seleção.
[0022] De acordo com outra modalidade particular da invenção, o grupo compreende um primeiro valor e um segundo valor, quando uma distância entre o valor de predição associado ao referido pixel e o pri- meiro valor é menor do que uma distância entre o valor de predição associado ao referido pixel e o segundo valor, o valor selecionado do referido grupo é o primeiro valor, e o valor selecionado do referido gru- po é o segundo valor caso contrário.
[0023] De acordo com outra modalidade particular da invenção, o item de informação que indica se o pixel é predito de acordo com o segundo modo de predição é decodificado a partir do fluxo de dados ou codificado no fluxo de dados apenas quando o resíduo de predição do pixel é diferente de 0.
[0024] Esta modalidade particular evita codificar o item de infor- mação que indica uma predição de acordo com o segundo modo de predição quando o resíduo de predição é diferente de 0. Assim, de acordo com esta modalidade particular, no decodificador, o primeiro modo de predição é usado por padrão para predizer o pixel atual.
[0025] Esta modalidade particular da invenção evita que informa- ções desnecessárias sejam codificadas pelo codificador. De fato, no codificador, quando a predição de acordo com o primeiro modo de predição resulta em um resíduo de predição zero, isto é, uma predição ótima, o item de informação indicando que o segundo modo de predi- ção não é usado para o pixel atual está implícito.
[0026] Tal modalidade particular da invenção pode ser implemen- tada no codificador, por uma etapa anterior que consiste no cálculo do resíduo de predição da predição resultante do primeiro modo de predi- ção ou por uma etapa que consiste em determinar se o valor original do pixel para ser codificado está longe do valor de predição resultante do primeiro modo de predição.
[0027] De acordo com outra modalidade particular da invenção, a determinação de um grupo de valores de pixel que são constantes no bloco de pixels previamente decodificados é realizada calculando um histograma dos valores de pixels vizinhos do bloco atual que foram previamente reconstruídos e selecionando pelo menos dois valores de pixel representativos respectivamente de dois valores de pixel que são os mais frequentes entre os pixels vizinhos do bloco atual.
[0028] De acordo com outra modalidade particular da invenção, um valor limite é determinado a partir de pelo menos um valor do refe- rido grupo de valores de pixel que são constantes no bloco de pixels previamente decodificados. Ao determinar um modo de predição para o pixel, o segundo modo de predição é escolhido:
- quando o valor original do referido pixel é maior do que o referido va- lor de limite e o valor de limite é maior do que o valor de predição as- sociado ao pixel determinado de acordo com o primeiro modo de pre- dição, ou - quando o valor original do referido pixel é menor do que o referido valor de limite e o valor de limite é menor do que o valor de predição associado ao pixel determinado de acordo com o primeiro modo de predição.
[0029] A invenção também se refere a um dispositivo para decodi- ficar um fluxo de dados codificado representativo de pelo menos uma imagem que é dividida em blocos. Tal dispositivo de decodificação compreende um processador configurado, para pelo menos um bloco da imagem, referido como o bloco atual, para: - determinar um grupo de valores de pixel que são constantes no bloco de pixels previamente decodificados, - para cada pixel do bloco: • decodificar um resíduo de predição associado ao referido pixel, • determinar um valor de predição associado ao pixel de pelo menos um outro pixel previamente decodificado, o referido outro pixel previa- mente decodificado pertencente ao referido bloco atual ou a um bloco previamente decodificado da imagem, • determinar a partir do fluxo de dados um item de informação indican- do se o pixel é predito usando uma predição resultante do referido grupo de valores de pixel que são constantes no bloco, • quando o item de informação indica que o pixel é predito usando uma predição resultante do grupo de valores de pixel que são constantes no bloco: o selecionar um valor do referido grupo, o substituir o referido valor de predição associado ao pixel pelo referido valor selecionado,
• reconstruir o referido pixel usando o valor de predição associado ao pixel e ao resíduo de predição.
[0030] De acordo com uma modalidade particular da invenção, tal dispositivo de decodificação está compreendido em um terminal.
[0031] A invenção também se refere a um dispositivo para codifi- car um fluxo de dados representativo de pelo menos uma imagem que é dividida em blocos. Tal dispositivo de codificação compreende um processador configurado, para pelo menos um bloco da imagem, refe- rido como o bloco atual, para: - determinar um grupo de valores de pixel que são constantes no bloco de pixels previamente decodificados, - para cada pixel do bloco: • determinar um valor de predição associado ao pixel de acordo com um primeiro modo de predição, de acordo com o qual o pixel é predito a partir de pelo menos um outro pixel previamente decodificado, o re- ferido outro pixel previamente decodificado pertencendo ao referido bloco atual ou a um bloco previamente decodificado da imagem, • determinar um modo de predição para o pixel a partir do primeiro modo de predição e um segundo modo de predição de acordo com o qual o pixel é predito usando uma predição resultante do referido gru- po de valores de pixel que são constantes no bloco, • codificar no fluxo de dados um item de informação indicando se o pixel é predito de acordo com o segundo modo de predição, • quando o item de informação indica que o pixel é predito de acordo com o segundo modo de predição: o selecionar um valor do referido grupo, o substituir o referido valor de predição associado ao pixel pelo referido valor selecionado, • calcular um resíduo de predição associado ao referido pixel usando o valor de predição associado ao pixel e o valor do referido pixel,
• codificar o resíduo de predição associado ao referido pixel no fluxo de dados, • reconstruir o referido pixel usando o valor de predição associado ao pixel e ao resíduo de predição decodificado.
[0032] De acordo com uma modalidade particular da invenção, tal dispositivo de codificação está compreendido em um terminal ou um servidor.
[0033] A invenção também se refere a um fluxo de dados repre- sentativo de pelo menos uma imagem que é dividida em blocos. Tal método de fluxo de dados compreende, para pelo menos um bloco da imagem, referido como o bloco atual, e para cada pixel do bloco atual: - um item de informação representativo de um resíduo de predição as- sociado ao referido pixel, - um item de informação que indica se o pixel é predito usando uma predição resultante de um grupo de valores de pixel que são constan- tes no bloco, o grupo de valores de pixel que são constantes no bloco sendo determinado a partir de pixels previamente decodificados.
[0034] O método de decodificação, respectivamente o método de codificação, de acordo com a invenção pode ser implementado de vá- rias maneiras, nomeadamente na forma com fios ou na forma de sof- tware. De acordo com uma modalidade particular da invenção, o mé- todo de decodificação, respectivamente o método de codificação, é implementado por um programa de computador. A invenção também se refere a um programa de computador que compreende instruções para implementar o método de decodificação ou o método de codifica- ção de acordo com qualquer uma das modalidades particulares descri- tas anteriormente, quando o referido programa é executado por um processador. Esse programa pode usar qualquer linguagem de pro- gramação. Ele pode ser baixado de uma rede de comunicação e/ou gravado em um meio legível por computador.
[0035] Este programa pode usar qualquer linguagem de progra- mação e pode estar na forma de código-fonte, código-objeto ou código intermediário entre o código-fonte e o código-objeto, tal como em uma forma parcialmente compilada ou em qualquer outra forma desejável.
[0036] A invenção também se refere a um meio de armazenamen- to legível por computador ou meio de dados compreendendo instru- ções de um programa de computador como mencionado acima. A mí- dia de gravação mencionada acima pode ser qualquer entidade ou dispositivo capaz de armazenar o programa. Por exemplo, o meio po- de compreender um meio de armazenamento, como uma memória. Por outro lado, a mídia de gravação pode corresponder a um meio transmissível, como um sinal elétrico ou óptico, que pode ser transpor- tado por meio de um cabo elétrico ou óptico, por rádio ou por outros meios. O programa de acordo com a invenção pode ser descarregado em particular numa rede do tipo Internet.
[0037] Alternativamente, a mídia de gravação pode corresponder a um circuito integrado no qual o programa está embutido, o circuito sendo adaptado para executar ou para ser usado na execução do mé- todo em questão.
4. Lista de figuras
[0038] Outras características e vantagens da invenção emergirão mais claramente após a leitura da seguinte descrição de uma modali- dade particular, fornecida como um exemplo ilustrativo não restritivo simples e os desenhos anexos, em que:
[0039] A Figura 1 mostra as etapas do método de codificação de acordo com uma modalidade particular da invenção.
[0040] A Figura 2A ilustra um exemplo de uma porção de um fluxo de dados codificados de acordo com uma modalidade particular da invenção.
[0041] A Figura 2B ilustra um exemplo de uma porção de um fluxo de dados codificados de acordo com outra modalidade particular da invenção.
[0042] A Figura 3A ilustra um exemplo de posição dos blocos vizi- nhos de um bloco atual para determinar um modo de intrapredição de acordo com uma modalidade particular da invenção.
[0043] A Figura 3B ilustra um exemplo de posição dos pixels de referência usados para predizer pixels de um bloco atual de acordo com uma modalidade particular da invenção.
[0044] A Figura 4 mostra as etapas do método de decodificação de acordo com uma modalidade particular da invenção.
[0045] A Figura 5 ilustra exemplos de blocos que compreendem conteúdo, como telas, cada uma com duas camadas de conteúdo e sua respectiva vizinhança na imagem de acordo com uma modalidade particular da invenção.
[0046] A Figura 6 ilustra um exemplo de um bloco de 16x16 que compreende conteúdo, tal como telas com duas camadas de conteúdo e um mapa de transição que mostra os estados de transição dos pixels para esse bloco de acordo com uma modalidade particular da inven- ção.
[0047] A Figura 7 mostra a estrutura simplificada de um dispositivo de codificação adaptado para implementar o método de codificação de acordo com qualquer uma das modalidades particulares da invenção.
[0048] A Figura 8 mostra a estrutura simplificada de um dispositivo de decodificação adaptado para implementar o método de decodifica- ção de acordo com qualquer uma das modalidades particulares da in- venção.
5. Descrição de uma modalidade da invenção
5.1 Princípio geral
[0049] A invenção melhora um modo de codificação de um bloco de uma imagem usando uma predição local para pixels do bloco loca-
lizado em uma transição entre dois níveis muito distintos de valores de pixel.
[0050] Um modo de codificação de um bloco a ser codificado usando uma predição local permite o uso de pixels de referência per- tencentes ao bloco a ser codificado para predizer outros pixels do blo- co a ser codificado. Este modo de predição reduz o resíduo de predi- ção usando pixels do bloco que estão espacialmente muito próximos do pixel a ser codificado.
[0051] No entanto, este modo de codificação introduz um resíduo de codificação relativamente grande quando os pixels originais estão longe de sua predição. Este é geralmente o caso de conteúdo como capturas de tela ou imagens de síntese. Nesse tipo de conteúdo, um bloco a ser codificado pode apresentar fortes descontinuidades. Nesse caso, os pixels de referência pertencentes a um plano de fundo podem ser usados para predizer os pixels do mesmo bloco pertencentes a um primeiro plano ou vice-versa. Nesse caso, o item de informação dispo- nível nos pixels de referência não é adequado para uma predição pre- cisa. Os pixels localizados na borda entre uma área de fundo e uma área de primeiro plano são referidos como pixels de transição daqui em diante.
[0052] Vantajosamente, a invenção propõe derivar para um bloco a ser codificado uma informação relativa a cada camada da imagem, por exemplo, uma informação relativa ao primeiro plano e uma infor- mação relativa ao fundo, no caso em que apenas duas camadas são consideradas. É claro que camadas adicionais de conteúdo podem ser levadas em consideração, aumentando o número de itens de informa- ção a serem obtidos. Por exemplo, a derivação de tais informações consiste em determinar um grupo de valores de pixel que são constan- tes no bloco.
[0053] De acordo com uma modalidade particular da invenção, es-
ta informação relativa a cada camada da imagem é derivada de uma vizinhança local do bloco a ser codificado.
[0054] Vantajosamente, esta informação é usada em conjunto com um mecanismo para detectar os pixels de transição no bloco a ser co- dificado. Isso reduz a energia residual de tais pixels.
[0055] A Figura 5 ilustra blocos (Bi-bl) compreendendo conteúdo como telas, cada uma com duas camadas de conteúdo, e sua respec- tiva vizinhança (Neigh) na imagem. Conforme ilustrado na figura 5, a vizinhança local de um bloco atual a ser codificado contém informa- ções úteis relacionadas ao nível de intensidade das duas camadas.
[0056] De acordo com a invenção, quando pixels de transição no bloco a ser codificado são detectados, o valor de predição para esses pixels é corrigido usando um nível de intensidade da camada corres- pondente àquela à qual o pixel provavelmente pertence.
[0057] De acordo com uma modalidade particular da invenção, a fim de ter uma predição ótima para cada pixel do bloco e uma taxa de custo limitada, tal mecanismo é limitado aos pixels que atendem a cer- tas condições.
[0058] De acordo com uma vizinhança local de um pixel a ser pre- dito, três estados do pixel a ser predito podem ser definidos: - s1: o pixel pertence a uma região homogênea na qual a predição local dos pixels vizinhos é muito eficiente, por exemplo, for- nece um resíduo de predição quantizado zero. Nesse caso, o pixel não é um pixel de transição. De acordo com uma variante da modalidade, este estado pode ser detectado implicitamente no decodificador, - s2: o pixel pertence a uma região em que a predição local dos pixels vizinhos é moderadamente eficiente, por exemplo, fornece um resíduo de predição baixo. A predição do pixel pelo mecanismo de correção mencionado acima é permitida para este pixel, mas o meca- nismo de correção não é aplicado se o erro de predição residual não for grande o suficiente em comparação com um valor limite determina- do de acordo com os níveis de intensidade das camadas. Neste caso, um indicador é codificado especificamente para indicar que o meca- nismo de correção não é usado, - s3: o pixel pertence a uma região na qual a predição local dos pixels vizinhos não é eficiente, por exemplo, fornece um grande resíduo de predição. A predição do pixel pelo mecanismo de correção mencionado acima é permitida para aquele pixel, e um indicador é es- pecificamente codificado para indicar esse uso.
[0059] A Figura 6 mostra à esquerda um exemplo de um bloco 16x16 com texto claro em um fundo escuro e à direita um mapa de transição para este bloco mostrando como os estados descritos acima podem ser atribuídos aos pixels do bloco.
5.2 modalidades
[0060] A Figura 1 mostra as etapas do método de codificação de acordo com uma modalidade particular da invenção. Por exemplo, uma sequência de imagens I1, I2, ..., INb é codificada na forma de um fluxo de dados codificado STR de acordo com uma modalidade parti- cular da invenção. Por exemplo, tal método de codificação é imple- mentado por um dispositivo de codificação, conforme descrito posteri- ormente em relação à figura 7.
[0061] Uma sequência de imagens I1, I2, ..., INb, Nb sendo o núme- ro de imagens da sequência a ser codificada, é fornecida como entra- da do método de codificação. O método de codificação emite um fluxo de dados codificado STR representativo da sequência de imagens for- necida como entrada.
[0062] De forma conhecida, a codificação da sequência de ima- gens I1, I2, ..., INb é feita imagem a imagem de acordo com uma ordem de codificação previamente estabelecida e conhecida pelo codificador. Por exemplo, as imagens podem ser codificadas na ordem temporal I1,
I2, ..., INb ou em outra ordem, por exemplo I1, I3, I2, ..., INb.
[0063] Em uma etapa E0, uma imagem Ij a ser codificada da se- quência de imagens I1, I2, ..., INb é dividida em blocos, por exemplo, em blocos de tamanho 32x32 ou 64x64 pixels ou mais. Tal bloco pode ser subdividido em sub-blocos quadrados ou retangulares, por exemplo, 16x16, 8x8, 4x4, 16x8, 8x16 ...
[0064] Em uma etapa E1, um primeiro bloco ou sub-bloco Xb a ser codificado da imagem Ij é selecionado de acordo com uma ordem de varredura predeterminada da imagem Ij. Por exemplo, pode ser o pri- meiro bloco na ordem de varredura lexicográfica da imagem.
[0065] Em uma etapa E2, o codificador escolhe o modo de codifi- cação para codificar o bloco atual Xb.
[0066] De acordo com a modalidade particular descrita aqui, o co- dificador seleciona o modo de codificação para codificar o bloco atual Xb de um primeiro modo de codificação M1 e um segundo modo de codificação M2. Modos de codificação adicionais (não descritos aqui) podem ser usados.
[0067] De acordo com a modalidade particular descrita aqui, o primeiro modo de codificação M1 corresponde à codificação de intra- predição convencional do bloco atual, por exemplo, conforme definido de acordo com o padrão HEVC, e o segundo modo de codificação M2 corresponde a uma codificação de predição In-Loop Residual (ILR) ou DPCM descrita posteriormente.
[0068] O princípio da invenção pode ser estendido a outros tipos de modos de codificação para o primeiro modo de codificação M1. Por exemplo, o primeiro modo de codificação pode corresponder a qual- quer tipo de modo de codificação usando uma transformada do resí- duo de predição (codificação de predição entre imagens, predição es- pacial com codificação de correspondência de modelo, etc.).
[0069] Na etapa E2, o codificador pode realizar uma otimização de taxa / distorção para determinar o melhor modo de codificação para codificar o bloco atual. Durante esta otimização de taxa / distorção, modos de codificação adicionais distintos do primeiro e do segundo modos de codificação podem ser testados, por exemplo, um modo de codificação entre modos. Durante esta otimização de taxa / distorção, o codificador simula a codificação do bloco atual Xb de acordo com os diferentes modos de codificação disponíveis, a fim de determinar a ta- xa e a distorção associada a cada modo de codificação e seleciona o modo de codificação que oferece o melhor compromisso de taxa / dis- torção, por exemplo, de acordo com a função D + λ × R, onde R é a taxa necessária para codificar o bloco atual de acordo com o modo de codificação avaliado, D é a distorção medida entre o bloco decodifica- do e o bloco atual original, e λ é um Multiplicador de Lagrange, por exemplo, inserido pelo usuário ou definido no codificador.
[0070] Em uma etapa E20, um item de informação indicando o modo de codificação selecionado para o bloco atual é codificado no fluxo de dados STR.
[0071] Se o bloco atual Xb for codificado de acordo com o primeiro modo de codificação M1, o método segue para a etapa E21 para codi- ficar o bloco de acordo com M1. Se o bloco atual Xb for codificado de acordo com o segundo modo de codificação M2, o método segue para a etapa E22 para codificar o bloco de acordo com M2.
[0072] A etapa E21 para codificar o bloco de acordo com o primei- ro modo de codificação M1, de acordo com uma modalidade particular da invenção, é descrita abaixo. De acordo com o modo particular aqui descrito, o primeiro modo de codificação corresponde a uma intrapre- dição convencional, tal como aquela definida no padrão HEVC.
[0073] Em uma etapa E210, uma etapa de quantização δ1 é de- terminada. Por exemplo, a etapa de quantização δ1 pode ser definida pelo usuário ou calculada usando um parâmetro de quantização defi-
definindo um compromisso entre compressão e qualidade e inserido pelo usuário ou definido pelo codificador. Assim, tal parâmetro de quantização pode ser o parâmetro λ, usado na função de custo de dis- torção de taxa D + λ × R, onde D representa a distorção introduzida pela codificação e R a taxa usada para codificação. Esta função é usada para fazer escolhas de codificação. Normalmente, busca-se uma forma de codificar a imagem que minimize essa função.
[0074] Como variante, o parâmetro de quantização pode ser QP, correspondendo ao parâmetro de quantização convencionalmente usado nos padrões AVC ou HEVC. Assim, no padrão HEVC, a etapa de quantização δ1 é determinada pela equação δ1 = levelScale [QP% 6] << (QP / 6) onde levelScale [k] = {40, 45, 51, 57, 64, 72} para k = 0,5.
[0075] Em uma etapa E211, uma predição do bloco atual é deter- minada usando um modo de intrapredição convencional. De acordo com esta intrapredição convencional, cada pixel predito é calculado apenas a partir dos pixels decodificados originados dos blocos vizi- nhos (pixels de referência) localizados acima do bloco atual e à es- querda do bloco atual. A maneira como os pixels são preditos a partir dos pixels de referência depende de um modo de predição que é transmitido ao decodificador e que é escolhido pelo codificador a partir de um conjunto predeterminado de modos conhecidos pelo codificador e pelo decodificador.
[0076] Assim, em HEVC existem 35 modos de predição possíveis: 33 modos que interpolam os pixels de referência em 33 direções angu- lares diferentes, e 2 outros modos: o modo DC em que cada pixel do bloco predito é produzido a partir da média dos pixels de referência, e o modo PLANAR, que realiza uma interpolação planar e não direcio- nal. Esta "intrapredição convencional" é bem conhecida e também usada no padrão ITU-T H.264 (onde existem apenas 9 modos diferen-
tes), bem como no software experimental JEM disponível no endereço da Internet (https://jvet.hhi.fraunhofer.de/), onde existem 67 modos de predição diferentes. Em todos os casos, a intrapredição convencional respeita os dois aspectos mencionados acima (predição dos pixels do bloco a ser codificado a partir dos pixels dos blocos vizinhos e trans- missão para o decodificador de um modo de predição ideal).
[0077] Na etapa E211, o codificador escolhe, assim, um dos mo- dos de predição disponíveis da lista predeterminada de modos de pre- dição. Uma forma de escolha consiste, por exemplo, em avaliar todos os modos de predição e manter o modo de predição que minimiza uma função de custo como, classicamente, o custo de distorção de taxa.
[0078] Em uma etapa E212, o modo de predição escolhido para o bloco atual é codificado a partir dos blocos vizinhos do bloco atual. A Figura 3A ilustra um exemplo de posição dos blocos vizinhos Ab e Bb do bloco atual Xb para codificar o modo de predição do bloco atual Xb.
[0079] Na etapa E212, o modo de intrapredição escolhido para o bloco atual é codificado usando os modos de intrapredição associados aos blocos vizinhos.
[0080] Por exemplo, a abordagem descrita no padrão HEVC para codificar o modo de predição do bloco atual pode ser usada. No exemplo da figura 3A, tal abordagem consiste em identificar o modo de intrapredição mA associado ao bloco Ab localizado acima do bloco atu- al e o modo de intrapredição mB associado ao bloco Bb localizado logo à esquerda do bloco atual. Dependendo do valor de mA e mB, uma lista chamada MPM (para o modo mais provável), contendo 3 modos de intrapredição, e uma lista chamada não MPM, contendo os outros 32 modos de predição, são criadas.
[0081] De acordo com o padrão HEVC, a fim de codificar o modo de intrapredição do bloco atual, elementos de sintaxe são transmitidos: - um indicador binário indicando se o modo de predição a ser codificado para o bloco atual está na lista MPM ou não, - se o modo de predição do bloco atual pertencer à lista MPM, um índice na lista MPM correspondente ao modo de predição do bloco atual é codificado, - se o modo de predição do bloco atual não pertencer à lista MPM, um índice na lista não MPM correspondente ao modo de predi- ção do bloco atual é codificado.
[0082] Em uma etapa E213, o resíduo de predição R para o bloco atual é construído.
[0083] Na etapa E213, de maneira padrão, um bloco predito P é construído de acordo com o modo de predição escolhido na etapa E211. Em seguida, o resíduo de predição R é obtido calculando a dife- rença para cada pixel entre o bloco P predito e o bloco atual original.
[0084] Em uma etapa E214, o resíduo de predição R é transfor- mado em RT.
[0085] Na etapa E214, uma transformada de frequência é aplicada ao bloco de resíduos R a fim de produzir o bloco RT que compreende coeficientes de transformada. A transformada poderia ser uma trans- formada do tipo DCT, por exemplo. É possível escolher a transformada a ser usada a partir de um conjunto predeterminado de transformadas ET e informar ao decodificador a transformada utilizada.
[0086] Em uma etapa E215, o bloco de resíduos transformado RT é quantizado usando, por exemplo, uma quantização escalar de etapa de quantização δ1. Isto produz o RTQ de bloco de resíduos de predição transformado quantizado.
[0087] Em uma etapa E216, os coeficientes do bloco quantizado RTQ são codificados por um codificador de entropia. Por exemplo, a codificação de entropia especificada no padrão HEVC pode ser usada.
[0088] De uma maneira conhecida, o bloco atual é decodificado desquantizando os coeficientes do bloco quantizado RTQ, em seguida,
aplicando a transformada inversa aos coeficientes desquantizados pa- ra obter o resíduo de predição decodificado. A predição é então adici- onada ao resíduo de predição decodificado a fim de reconstruir o bloco atual e obter sua versão decodificada. A versão decodificada do bloco atual pode então ser usada mais tarde para predizer espacialmente outros blocos vizinhos da imagem ou para predizer blocos de outras imagens por predição entre imagens.
[0089] A etapa E22 para codificar o bloco de acordo com o segun- do modo de codificação M2, de acordo com uma modalidade particular da invenção, é descrita abaixo. De acordo com a modalidade particular descrita aqui, o segundo modo de codificação corresponde a uma co- dificação de predição de ILR.
[0090] Em uma etapa anterior E220, uma etapa de quantização δ2 é determinada. Por exemplo, a etapa de quantização δ2 depende do mesmo parâmetro de quantização que a etapa de quantização δ1 que seria determinada na etapa E210 se o bloco atual fosse codificado de acordo com o primeiro modo de codificação.
[0091] De acordo com a invenção, neste modo de codificação, os pixels do bloco atual podem ser preditos de acordo com um primeiro modo de predição ou um segundo modo de predição.
[0092] De acordo com o primeiro modo de predição, um pixel do bloco atual é predito por pixels previamente reconstruídos de um bloco vizinho do bloco atual e/ou pixels previamente processados do próprio bloco atual. De preferência, para predizer um pixel, são escolhidos os pixels que estão o mais próximos possível do pixel a ser predito. É por isso que se refere a um preditor local.
[0093] De acordo com o segundo modo de predição, um pixel do bloco atual é predito por um valor de nível de camadas selecionadas por um grupo de valores determinados, por exemplo, da vizinhança do bloco atual.
[0094] Em uma etapa E221, um grupo de valores de pixel que são constantes no bloco é determinado a partir de pixels previamente de- codificados. Vários níveis de reconstrução do bloco atual são determi- nados, por exemplo, dois, chamados f e b. Esses níveis são construí- dos analisando os valores tomados pelos pixels de referência do bloco atual, ou seja, os pixels dos blocos processados anteriormente próxi- mos ao bloco atual. Existem várias técnicas para determinar os níveis f e b. Assim, é possível calcular o histograma dos valores dos pixels de referência e atribuir b ao valor mais frequente e f ao segundo valor mais frequente. Outra abordagem consiste em identificar os locais má- ximos do histograma, ou seja, os maiores valores circundados por va- lores menores. O nível f é então atribuído ao maior local máximo e ao nível b o segundo maior local máximo.
[0095] Além disso, de acordo com uma modalidade particular da invenção, um valor limite thr é determinado, que é tipicamente a meio caminho entre f e b e definido como . Em uma modalidade alternativa, também pode ser escolhido, em que dyn é o valor máximo do sinal.
[0096] As variantes de modalidades descritas acima para determi- nar o grupo de valores de pixel que são constantes no bloco permitem uma detecção implícita das camadas de imagem que também podem ser implementadas no decodificador, sem a necessidade de transmitir informações adicionais.
[0097] Por exemplo, a fim de limitar a complexidade da detecção das camadas da imagem, a vizinhança direta do bloco atual é usada: por exemplo, apenas os pixels da coluna à esquerda, e da linha acima do bloco atual, são usadas.
[0098] De acordo com outras variantes, mais de dois valores po- dem ser determinados, considerando os seguintes locais máximos do histograma, por exemplo.
[0099] Os valores f e b assim determinados correspondem aos va- lores do grupo de valores usados para o segundo modo de predição.
[00100] As etapas a seguir são realizadas para cada pixel do bloco atual.
[00101] Em uma etapa E2201, um preditor local PL para o pixel considerado é determinado. Este preditor local PL corresponde ao preditor obtido de acordo com o primeiro modo de predição.
[00102] O preditor local PL pode ser determinado como segue. Se chamarmos X de um pixel atual a ser predito do bloco atual, A o pixel localizado imediatamente à esquerda de X, B o pixel localizado imedia- tamente à esquerda e acima de X, C o pixel localizado imediatamente acima de X, conforme ilustrado em Figura 3B mostrando um bloco atual Xb. O preditor local PL é definido por: PL (X) = min (A, B) se C ≥ max (A, B) max (A, B) se C ≤ min (A, B) A + B-C caso contrário onde min (A, B) corresponde à função que retorna o menor valor entre o valor de A e o valor de B e max (A, B) corresponde à função que re- torna o maior valor entre o valor de A e o valor de B.
[00103] Outras funções de predição local podem ser usadas. De acordo com outra variante, várias funções de predição local podem estar disponíveis e a mesma função de predição local é selecionada para todos os pixels do bloco atual. Por exemplo, uma orientação da textura dos pixels de blocos vizinhos previamente codificados é anali- sada. Por exemplo, os pixels codificados anteriormente em um bloco vizinho que estão localizados acima ou à esquerda do bloco atual são analisados usando um operador do tipo Sobel. Se for determinado que: - se nenhuma orientação surgir, a função de predição é a definida acima, - se a orientação for horizontal, a função de predição é PL (X) = A, - se a orientação for vertical, a função de predição é PL (X) = B, - se a orientação for diagonal, a função de predição é PL (X) = C.
[00104] O valor de predição PL (X) associado ao pixel atual X do bloco atual é, assim, obtido de acordo com a localização do pixel no bloco atual usando pixels fora do bloco que já estão reconstruídos (e, portanto, disponíveis com seu valor decodificado), ou pixels reconstru- ídos anteriormente no bloco atual, ou ambos. Em todos os casos, o preditor PL usa pixels previamente reconstruídos. Na figura 3B, pode- se ver que os pixels do bloco atual localizado na primeira linha e/ou na primeira coluna do bloco atual usarão como pixels de referência (para construir o valor de predição PL (X)) pixels fora do bloco que já estão reconstruídos (pixels em cinza na figura 3B) e possivelmente pixels já reconstruídos do bloco atual. Para os outros pixels do bloco atual, os pixels de referência usados para construir o valor de predição PL (X) estão localizados dentro do bloco atual.
[00105] Em uma etapa E2202, o modo de predição é determinado a partir do primeiro modo de predição e do segundo modo de predição a ser usado para predizer o pixel atual.
[00106] De acordo com uma modalidade particular da invenção, o segundo modo de predição é escolhido quando PL (X) <thr < X ou quando PL (X)> thr > X. Em outras palavras, o segundo modo de pre- dição é escolhido: - quando o valor original X do pixel é maior do que o valor de limite thr e o valor de limite thr é maior do que o valor de predição PL (X) associado ao pixel determinado de acordo com o primeiro modo de predição, ou - quando o valor original X do pixel é menor do que o valor de limite thr e o valor de limite thr é menor do que o valor de predição PL (X) associado ao pixel determinado de acordo com o primeiro modo de predição.
[00107] Se uma das condições acima for atendida, então o estado do pixel a ser predito é s = 3 e o codificador prossegue para a próxima etapa E2203.
[00108] Na etapa E2203, um indicador t indicando que o pixel a ser predito é predito de acordo com o segundo modo de predição é defini- do como 1, por exemplo, e codificado no fluxo de dados STR, por exemplo, por codificação de entropia, ou transmitido como está no flu- xo.
[00109] Em uma etapa E2204, um valor do grupo de valores deter- minado na etapa E221 é selecionado para predizer o pixel atual.
[00110] De acordo com uma modalidade particular da invenção, um valor do grupo é selecionado de acordo com a distância entre o valor de predição associado ao referido pixel determinado de acordo com o primeiro modo de predição em relação aos valores de pixel do grupo determinados na etapa E221. Por exemplo, quando a distância entre o valor de predição PL (X) associado ao referido pixel de acordo com o primeiro modo de predição e o valor b do grupo é menor do que a dis- tância entre o valor de predição PL (X) associado ao referido pixel de acordo com o primeiro modo de predição e o valor f, o valor seleciona- do é b, e o valor selecionado é f, caso contrário.
[00111] O padrão L1 ou L2 pode ser usado, por exemplo, como uma medição de distância.
[00112] Assim, se , então , caso con- trário .
[00113] O método então segue para a etapa E2205.
[00114] Se na etapa E2202, for determinado que o pixel atual não é predito de acordo com o segundo modo de predição, o pixel atual é então predito de acordo com o primeiro modo de predição. O valor de predição PL (X) associado ao pixel atual e obtido de acordo com o primeiro modo de predição não é modificado. O pixel atual está então no estado s = 1 ou s = 2.
[00115] Em uma etapa E2205, um resíduo de predição R1 (X) é calculado para o pixel atual como a diferença entre o valor original X do pixel atual e o valor de predição PL (X) associado ao pixel atual, ou seja, R1 (X) = X-PL (X). Aqui, o valor de predição PL (X) pode ter sido obtido pelo primeiro modo de predição ou pelo segundo modo de pre- dição.
[00116] O resíduo de predição R1 (X) é então quantizado em Q (X), por um quantizador escalar de etapa de quantização δ2, por , a quantização es- calar sendo, por exemplo, um quantizador escalar vizinho mais próxi- mo, como: onde Δ é a etapa de quantiza- ção e x o valor a ser quantizado.
[00117] Q (X) é o resíduo quantizado associado a X. É calculado no domínio espacial, ou seja, calculado diretamente a partir da diferença entre o valor de predição PL (X) do pixel X e o valor original de X. Tal resíduo quantizado Q (X) para o pixel X é armazenado em um bloco de resíduos de predição quantizado R1Q, que será codificado posteri- ormente.
[00118] Em uma etapa E2206, o valor predito decodificado P1 (X) de X é calculado adicionando o valor desquantizado do resíduo quan- tizado Q (X) ao valor de predição PL (X). O valor predito decodificado P1 (X) de X é assim obtido por .
Por exemplo, a função inversa da quantização escalar mais próxima é dada por: .
[00119] O valor predito decodificado P1 (X) permite, assim, predizer possíveis pixels que ainda faltam ser processados no bloco atual.
[00120] Além disso, o bloco P1 que compreende os valores decodi- ficados / reconstruídos P1 (X) dos pixels do bloco atual pode ser defi- nido. Tal bloco P1 é o preditor ILR do bloco atual (em oposição ao in- trapreditor convencional).
[00121] De acordo com uma modalidade particular da invenção, em uma etapa E2207, quando o resíduo de predição quantizado Q1 (X) não é zero, em outras palavras, quando a amplitude a do resíduo de predição quantizado Q1 (X) não é zero, o indicador t é definido como 0, por exemplo, e codificado no fluxo de dados STR. Nesse caso, o pixel atual é considerado no estado s = 2.
[00122] De acordo com esta modalidade particular da invenção, quando o resíduo de predição quantizado Q1 (X) é zero, isto é, a am- plitude a do resíduo de predição quantizado Q1 (X) é zero, o indicador t também é definido como 0, uma vez que o pixel atual é não predito pelo segundo modo de predição, mas o indicador t não está codificado no fluxo de dados STR. Este modo de predição será deduzido implici- tamente no decodificador a partir do valor decodificado da amplitude do resíduo de predição quantizado Q1 (X). Nesse caso, o pixel atual é considerado no estado s = 1. Neste caso, o método prossegue da eta- pa E2206 para a etapa E223 diretamente.
[00123] Claro, na prática, quando é explicitamente codificado (s = 2 ou s = 3), o indicador t é codificado no fluxo de dados após o resíduo de predição quantizado Q1 (X) ser codificado.
[00124] De acordo com outra modalidade particular da invenção, o indicador t é definido como 0, e sistematicamente codificado na etapa E2207 para cada pixel, no fluxo de dados STR, independentemente do valor da amplitude a do resíduo de predição Q1 (X). Assim, no decodi-
ficador, é explicitamente determinado pelo decodificador se o pixel atual é ou não predito de acordo com o segundo modo de predição, lendo o indicador t, independentemente do valor do resíduo de predi- ção quantizado. Nesse caso, não é diferenciado se o pixel está no es- tado s = 1 ou s = 2.
[00125] De acordo com uma variante, nesta modalidade particular da invenção, uma vez que o indicador t é sistematicamente codificado, na etapa E2202, a determinação do modo de predição a partir do pri- meiro modo de predição e do segundo modo de predição a ser usado para predizer o pixel atual pode, por exemplo, ser feito comparando uma medição de distância entre o valor de predição fornecido pelo primeiro modo de predição e o valor original X do pixel atual e uma medição de distância entre o valor de predição fornecido pelo segundo modo de predição e o valor original X do atual pixel.
[00126] As etapas descritas acima são realizadas para todos os pixels do bloco atual, em uma ordem de varredura que garante que os pixels utilizados para a predição local estejam disponíveis.
[00127] De acordo com uma variante da modalidade, a ordem de varredura do bloco atual é a ordem lexicográfica, isto é, da esquerda para a direita e de cima para baixo.
[00128] De acordo com outra variante de modalidade, várias ordens de varredura do bloco atual podem ser usadas, por exemplo: - a ordem lexicográfica, ou - varrer a primeira coluna de cima para baixo e, em segui- da, a coluna logo à direita dela, etc., ou - varrer as diagonais uma após a outra.
[00129] De acordo com esta outra variante, é possível simular o custo de codificação associado a cada uma das ordens de varredura e escolher a melhor ordem de varredura para o bloco atual em termos de taxa / distorção, então codificar para o bloco atual um item de in-
formação representante da ordem de varredura escolhida.
[00130] No final da etapa E2205, o bloco de resíduos quantizado R1Q foi determinado. Este bloco de resíduos quantizado R1Q deve ser codificado para transmissão ao decodificador. O preditor P1 do bloco atual também foi determinado.
[00131] Em uma etapa E223, o bloco de resíduos quantizado R1Q é codificado para transmissão para o decodificador. Qualquer aborda- gem conhecida, como o método descrito em HEVC, pode ser usada para codificar os coeficientes quantizados de um resíduo de predição convencional.
[00132] De uma maneira padrão, cada resíduo de predição quanti- zado Q1 (X) do bloco atual é dividido em um valor de amplitude a e um indicador de sinal sgn quando a amplitude a é distinta de 0.
[00133] De acordo com a modalidade particular da invenção aqui descrita, os valores de amplitude e sinal do bloco de resíduos quanti- zado R1Q são codificados usando um codificador de entropia no fluxo de dados STR.
[00134] De acordo com uma modalidade particular da invenção, é possível determinar e codificar um resíduo de predição adicional R2 do preditor de ILR obtido para o bloco atual. A codificação de um resíduo de predição adicional R2 é, no entanto, opcional. Na verdade, é possí- vel simplesmente codificar o bloco atual por sua versão predita P1 e o resíduo quantizado R1Q.
[00135] A fim de codificar um resíduo de predição adicional R2 para o bloco atual, as seguintes etapas são implementadas.
[00136] Em uma etapa E224, a diferença R2 entre o preditor P1 e o bloco atual original Xb é calculada para formar um resíduo adicional R2: R2 = Xb-P1. As etapas seguintes correspondem às etapas de codi- ficação convencionais para este resíduo R2.
[00137] Em uma etapa E225, o resíduo R2 é transformado usando uma transformada de frequência a fim de produzir o bloco de coefici- entes R2T.
[00138] A transformada pode ser uma transformada do tipo DCT, por exemplo. É possível escolher a transformada a ser usada a partir de um conjunto predeterminado de transformadas ET2 e informar ao decodificador a transformada utilizada. Neste caso, o conjunto ET2 po- de ser diferente do conjunto ET, a fim de se adaptar às estatísticas par- ticulares do resíduo R2.
[00139] Em uma etapa E226, o bloco de coeficientes R2T é quanti- zado, por exemplo, usando uma quantização escalar de etapa de quantização δ. Isso produz o bloco R2TQ.
[00140] A etapa de quantização δ pode ser definida pelo usuário. Também pode ser calculado usando o parâmetro λ definindo o com- promisso entre compressão e qualidade e inserido pelo usuário ou co- dificador. Por exemplo, a etapa de quantização δ pode corresponder à etapa de quantização δ1 ou ser determinada de forma semelhante a ela.
[00141] Em uma etapa E227, os coeficientes do bloco quantizado R2TQ são então transmitidos de uma maneira codificada. Por exemplo, a codificação especificada no padrão HEVC pode ser usada.
[00142] De uma maneira conhecida, o bloco atual é decodificado desquantizando os coeficientes do bloco quantizado R2TQ, em segui- da, aplicando a transformada inversa aos coeficientes desquantizados para obter o resíduo de predição decodificado. A predição P1 é então adicionada ao resíduo de predição decodificado a fim de reconstruir o bloco atual e obter sua versão decodificada Xrec. A versão decodificada Xrec do bloco atual pode então ser usada mais tarde para predizer es- pacialmente outros blocos vizinhos da imagem ou para predizer blocos de outras imagens por interpredição de imagens.
[00143] Em uma etapa E23, é verificado se o bloco atual é o último bloco da imagem a ser processado pelo método de codificação, levan- do em consideração a ordem de varredura previamente definida. Se o bloco atual não for o último bloco da imagem a ser processado, em uma etapa E24, o bloco subsequente da imagem a ser processado é selecionado de acordo com a ordem de varredura previamente defini- da da imagem e o método de codificação segue para a etapa E2, onde o bloco selecionado se torna o bloco atual a ser processado.
[00144] Se todos os blocos da imagem foram codificados, o método segue para a aplicação dos métodos de pós-processamento a serem aplicados à imagem reconstruída em uma etapa E231. Por exemplo, tais métodos de pós-processamento podem ser uma filtragem de des- bloqueio e/ou um método SAO (Offset Adaptativo de Amostra) confor- me definido no padrão HEVC.
[00145] O método prossegue para a codificação (etapa E25) da próxima imagem do vídeo, se houver.
[00146] As Figuras 2A e 2B ilustram esquematicamente uma porção de um fluxo de dados resultante da codificação conforme descrito aci- ma de acordo com diferentes modalidades particulares da invenção.
[00147] A Figura 2A ilustra um exemplo de um fluxo para três pixels (X1, X2, X3) de um bloco da imagem codificado de acordo com uma modalidade particular da invenção, em que foi determinado que o pixel X1 é considerado no estado s = 3, o pixel X2 é considerado no estado s = 2 e o pixel X3 é considerado no estado s = 1.
[00148] Pode-se ver que, de acordo com a variante aqui descrita, os dados codificados para o pixel X1 são o valor de amplitude do resí- duo de predição quantizado a (X1), seu sinal sgn (X1) e o valor do in- dicador t definido como 1. Os dados codificados para o pixel X2 são o valor de amplitude do resíduo de predição quantizado a (X2), seu sinal sgn (X2) e o valor do indicador t. Para X2, o valor de amplitude do re- síduo de predição quantizado sendo distinto de 0, o indicador t definido como 0 é explicitamente codificado no fluxo.
[00149] Os dados codificados para o pixel X3 são o valor de ampli- tude da predição resido resíduo de predição quantizado é distinto de 0, de modo que o indicador t definido como 0 não é explicitamente codifi- cado no fluxo e será deduzido implicitamente no decodificador.
[00150] A Figura 2B ilustra um exemplo de um fluxo para três pixels (X1, X2, X3) de um bloco da imagem codificado de acordo com outra modalidade particular da invenção, em que foi determinado que o pixel X1 é considerado no estado s = 3, o pixel X2 é considerado no estado s = 2 e o pixel X3 é considerado no estado s = 1.
[00151] Pode-se ver que, de acordo com a variante aqui descrita, os dados codificados para o pixel X1 são o valor de amplitude do resí- duo de predição quantizado a (X1), seu sinal sgn (X1) e o valor do in- dicador t definido como 1. Os dados codificados para o pixel X2 são o valor de amplitude do resíduo de predição quantizado a (X2), seu sinal sgn (X2) e o valor do indicador t definido como 0.
[00152] Os dados codificados para o pixel X3 são o valor de ampli- tude do resíduo de predição quantizado a (X3) que é zero e o indica- dor t definido como 0.
[00153] A Figura 4 mostra as etapas do método para decodificar um fluxo STR de dados codificados representativos de uma sequência de imagens I1, I2, ..., INb a ser decodificada de acordo com uma modalida- de particular da invenção.
[00154] Por exemplo, o fluxo de dados STR foi gerado por meio do método de codificação mostrado em relação à figura 1. O fluxo de da- dos STR é fornecido como entrada para um dispositivo de decodifica- ção DEC, conforme descrito em relação à figura 8.
[00155] O método de decodificação decodifica o fluxo de imagem por imagem e cada imagem é decodificada bloco por bloco.
[00156] Em uma etapa E40, uma imagem Ij a ser decodificada é subdividida em blocos. Cada bloco passará por uma operação de de- codificação que consiste em uma série de etapas que são detalhadas a seguir. Os blocos podem ser do mesmo tamanho ou tamanhos dife- rentes.
[00157] Em uma etapa E41, um primeiro bloco ou sub-bloco Xb a ser decodificado da imagem Ij é selecionado como o bloco atual de acordo com uma ordem de varredura predeterminada da imagem Ij. Por exemplo, pode ser o primeiro bloco na ordem de varredura lexico- gráfica da imagem.
[00158] Em uma etapa E42, um item de informação indicando um modo de codificação para o bloco atual é lido a partir do fluxo de da- dos STR. De acordo com a modalidade particular aqui descrita, este item de informação indica se o bloco atual está codificado de acordo com um primeiro modo de codificação M1 ou de acordo com um se- gundo modo de codificação M2. De acordo com a modalidade particu- lar descrita aqui, o primeiro modo de codificação M1 corresponde à codificação de intrapredição convencional do bloco atual, por exemplo, conforme definido de acordo com o padrão HEVC, e o segundo modo de codificação M2 corresponde à codificação de predição In-Loop Re- sidual (ILR).
[00159] Em outras modalidades particulares, o item de informação lido do fluxo STR também pode indicar o uso de outros modos de codi- ficação para codificar o bloco atual (não descrito aqui).
[00160] A etapa E43 para decodificar o bloco atual quando o bloco atual é codificado de acordo com o primeiro modo de codificação M1 é descrita abaixo.
[00161] Em uma etapa E430, uma etapa de quantização δ1 é de- terminada. Por exemplo, a etapa de quantização δ1 é determinada a partir de um parâmetro de quantização QP transmitido no fluxo de da- dos STR ou de forma semelhante ao que foi feito no codificador. Por exemplo, o parâmetro de quantização QP pode ser o parâmetro de quantização convencionalmente usado nos padrões AVC ou HEVC. Assim, no padrão HEVC, a etapa de quantização δ1 é determinada pe- la equação , onde levelScale [k] = {40, 45, 51, 57, 64, 72} para k = 0..5.
[00162] Em uma etapa E431, o modo de predição escolhido para codificar o bloco atual é decodificado a partir dos blocos vizinhos. Para tal, tal como foi feito no codificador, o modo de intrapredição escolhido para o bloco atual é codificado utilizando os modos de intrapredição associados aos blocos vizinhos do bloco atual.
[00163] A construção de listas MPM e não MPM é estritamente se- melhante ao que foi feito durante a codificação. De acordo com o pa- drão HEVC, os elementos de sintaxe do seguinte tipo são decodifica- dos: - um indicador binário indicando se o modo de predição a ser codificado para o bloco atual está na lista MPM ou não, - se o modo de predição do bloco atual pertence à lista MPM, um índice na lista MPM correspondente ao modo de predição do bloco atual é lido, - se o modo de predição do bloco atual não pertence à lista MPM, um índice na lista não MPM correspondente ao modo de predi- ção do bloco atual é lido.
[00164] O indicador binário e o índice do modo de predição são, assim, lidos para o bloco atual do fluxo de dados STR, para decodificar o modo de intrapredição do bloco atual.
[00165] Em uma etapa E432, o decodificador constrói um bloco predito P para o bloco atual a partir do modo de predição decodificado.
[00166] Em uma etapa E433, o decodificador decodifica os coefici- entes do bloco quantizado RTQ do fluxo de dados STR, por exemplo, usando a decodificação especificada no padrão HEVC.
[00167] Em uma etapa E434, o bloco decodificado RTQ é desquanti- zado, por exemplo, usando uma desquantização escalar de etapa de quantização δ1. Isso produz o bloco de coeficientes desquantizados RTQD.
[00168] Em uma etapa E435, uma transformada de frequência in- versa é aplicada ao bloco de coeficientes desquantizados RTQD a fim de produzir o bloco de resíduo de predição decodificado RTQDI. A trans- formada poderia ser uma transformada inversa do tipo DCT, por exemplo. É possível escolher a transformada a ser usada a partir de um conjunto predeterminado de transformadas ETI pela decodificação de um indicador do fluxo de dados STR.
[00169] Em uma etapa E436, o bloco atual é reconstruído a partir do bloco P predito obtido na etapa E432 e o bloco de resíduo decodifi- cado RTQDI obtido na etapa E435, a fim de produzir o bloco atual deco- dificado Xrec, por Xrec = P + RTQDI.
[00170] A etapa E44 para decodificar o bloco atual quando o bloco atual é codificado de acordo com o segundo modo de codificação M2 é descrito abaixo.
[00171] Em uma etapa E440, a etapa de quantização δ2 é determi- nada, de forma semelhante ao que foi feito no codificador.
[00172] De acordo com a invenção, neste modo de codificação M2, os pixels do bloco atual podem ser preditos de acordo com o primeiro modo de predição ou o segundo modo de predição já apresentado em relação à figura 1.
[00173] Em uma etapa E441, o grupo de valores de pixel que são constantes no bloco é determinado a partir de pixels da imagem previ- amente decodificados, de forma semelhante ao que foi feito no codifi- cador. É considerado como com o codificador que os valores de nível f e b foram determinados.
[00174] As etapas a seguir são realizadas para cada pixel do bloco atual.
[00175] Em uma etapa E4411, o valor de predição do pixel atual de acordo com o primeiro modo de predição é determinado. Para este propósito, o mesmo preditor local PL como no codificador é usado. Quando vários preditores locais são possíveis, o preditor local PL é determinado de forma semelhante ao que foi feito no codificador.
[00176] Em uma etapa E442, o resíduo quantizado R1Q é decodifi- cado do fluxo de dados STR. Qualquer abordagem conhecida, como o método descrito em HEVC, pode ser usada para decodificar os coefi- cientes quantizados do resíduo de predição convencional. A amplitude a da predição residual quantizada Q1'(X) para o pixel atual é então ob- tida.
[00177] De acordo com uma modalidade particular da invenção, em uma etapa E4421, quando a amplitude a do resíduo de predição quan- tizado Q1'(X) é zero, um indicador t indicando se o pixel atual é predito de acordo com o segundo modo de predição está implicitamente defi- nido para 0. Neste caso, o pixel atual é considerado no estado s = 1, e será predito pelo valor de predição resultante do primeiro modo de predição. O resíduo de predição quantizado Q1'(X) é então reconstruí- do por
[00178] Caso contrário, quando a amplitude a do resíduo de predi- ção quantizado Q1'(X) não é zero, o sinal sgn associado ao resíduo de predição quantizado Q1'(X) é lido no fluxo de dados STR. O resíduo de predição quantizado Q1'(X) é então reconstruído por
[00179] Então, em uma etapa E4422, o indicador t para o pixel atual é lido no fluxo de dados STR. Se o valor do indicador t lido for 0, o es- tado do pixel atual é s = 2. Se o valor do indicador t lido for 1, o estado do pixel atual é s = 3.
[00180] De acordo com outra modalidade particular da invenção, o indicador t é sistematicamente codificado para cada pixel do bloco atual. Neste caso, na etapa E4422, o valor 0 ou 1 do indicador t é lido no fluxo de dados STR e o estado do pixel s é definido em conformi- dade.
[00181] Quando o estado do pixel atual é s = 3, o pixel atual é pre- dito de acordo com o segundo modo de predição. Neste caso, em uma etapa E4423, um valor do grupo de valores determinado na etapa E441 é selecionado e atribuído ao valor de predição PL (X) associado ao pixel atual para predizer o pixel atual de forma semelhante ao que foi feito no codificador. Por exemplo, se , então , caso contrário .
[00182] O método então segue para a etapa E443.
[00183] Quando o estado do pixel atual é s = 2 ou s = 1, o pixel atu- al é predito de acordo com o primeiro modo de predição. Neste caso, o valor de predição PL (X) do pixel atual determinado de acordo com o primeiro modo de predição na etapa E4411 não é alterado.
[00184] Em uma etapa E443, o resíduo quantizado Q1'(X) é des- quantizado usando a etapa de quantização δ2, a fim de produzir o re- síduo desquantizado QD1 (X).
[00185] Em uma etapa E444, o valor reconstruído do pixel atual X' é obtido usando o valor de predição PL (X) determinado na etapa E4411 ou E4423 e o resíduo de predição desquantizado QD1 (X): X' = PL (X) + QD1 (X).
[00186] Os resíduos de predição Q1 (X) dos pixels do bloco atual são colocados em um bloco de predição de resíduos R1Q, os resíduos de predição desquantizados QD1 (X) dos pixels do bloco atual são co- locados em um bloco de predição de resíduos desquantizado R1QD, os valores reconstruídos X' dos pixels do bloco atual são colocados em um bloco reconstruído P1.
[00187] As etapas acima são implementadas para todos os pixels do bloco atual, em uma ordem de varredura que garante que os pixels usados para a predição local estejam disponíveis.
[00188] Por exemplo, a ordem de varredura é a ordem lexicográfica (da esquerda para a direita e, em seguida, linhas de cima para baixo).
[00189] De acordo com uma modalidade particular da invenção, o bloco P1 compreendendo os valores reconstruídos PL (X) + QD1 (X) de cada pixel do bloco atual forma aqui o bloco atual decodificado Xrec.
[00190] De acordo com outra modalidade particular da invenção, considera-se que um resíduo de predição adicional foi codificado para o bloco atual. Portanto, é necessário decodificar este resíduo de predi- ção adicional para reconstruir a versão decodificada do bloco atual Xrec.
[00191] Por exemplo, esta outra modalidade particular pode ser ati- vada ou não por padrão no nível do codificador e do decodificador. Ou, um indicador pode ser codificado no fluxo de dados com a informação de nível de bloco para indicar para cada bloco codificado de acordo com o modo de codificação ILR se um resíduo de predição adicional for codificado. Ou ainda, um indicador pode ser codificado no fluxo de dados com a imagem ou sequência de informações de nível de ima- gens para indicar para todos os blocos da imagem ou da sequência de imagens codificadas de acordo com o modo de codificação ILR se um resíduo de predição adicional for codificado.
[00192] Quando um resíduo de predição adicional é codificado para o bloco atual, em uma etapa E445, os coeficientes do resíduo de pre- dição quantizado R2TQ são decodificados do fluxo de dados STR, usando meios adaptados àqueles implementados no codificador, por exemplo, os meios implementados em um decodificador HEVC.
[00193] Em uma etapa E446, o bloco de coeficientes quantizados R2TQ é desquantizado, por exemplo, usando uma desquantização es- calar de etapa de quantização δ1. Isso produz o bloco de coeficientes desquantizados R2TQD.
[00194] Em uma etapa E447, uma transformada de frequência in- versa é aplicada ao bloco R2TQD a fim de produzir o bloco de resíduo de predição decodificado R2TQDI.
[00195] A transformada inversa pode ser uma transformada inversa do tipo DCT, por exemplo.
[00196] É possível escolher a transformada a ser utilizada a partir de um conjunto predeterminado de transformadas ET2 e decodificar o item de informação que informa o decodificador da transformada a ser utilizado. Neste caso, o conjunto ET2 é diferente do conjunto ET, a fim de se adaptar às estatísticas particulares do resíduo R2.
[00197] Em uma etapa E448, o bloco atual é reconstruído adicio- nando o bloco predito P1 obtido na etapa E444 ao resíduo de predição decodificado R2TQDI.
[00198] Em uma etapa E45, é verificado se o bloco atual é o último bloco da imagem a ser processado pelo método de decodificação, le- vando em consideração a ordem de varredura previamente definida. Se o bloco atual não for o último bloco da imagem a ser processado, em uma etapa E46, o bloco subsequente da imagem a ser processado é selecionado de acordo com a ordem de varredura da imagem previ- amente definida e o método de decodificação segue para a etapa E42, o bloco selecionado se tornando o bloco atual a ser processado.
[00199] Se todos os blocos da imagem tiverem sido codificados, o método prossegue para a aplicação dos métodos de pós- processamento a serem aplicados à imagem reconstruída em uma etapa E451, se necessário. Tais métodos de pós-processamento po- dem ser uma filtragem de desbloqueio e/ou um método SAO.
[00200] O método então prossegue para a decodificação (etapa E47) da próxima imagem do vídeo, se houver.
[00201] A Figura 7 mostra a estrutura simplificada de um dispositivo de codificação COD adaptado para implementar o método de codifica-
ção de acordo com qualquer uma das modalidades particulares da in- venção.
[00202] De acordo com uma modalidade particular da invenção, as etapas do método de codificação são implementadas por instruções de programa de computador. Para este fim, o dispositivo de codificação COD tem a arquitetura padrão de um computador e compreende, no- tavelmente, uma memória MEM, uma unidade de processamento UT, equipada, por exemplo, com um processador PROC e acionada pelo programa de computador PG armazenado na memória MEM. O pro- grama de computador PG compreende instruções para implementar as etapas do método de codificação conforme descrito acima, quando o programa é executado pelo processador PROC.
[00203] Na inicialização, as instruções de código do programa de computador PG são, por exemplo, carregadas em uma memória RAM (não mostrada) antes de serem executadas pelo processador PROC. Em particular, o processador PROC da unidade de processamento UT implementa as etapas do método de codificação descrito acima, de acordo com as instruções do programa de computador PG.
[00204] A Figura 8 mostra a estrutura simplificada de um dispositivo de decodificação DEC adaptado para implementar o método de deco- dificação de acordo com qualquer uma das modalidades particulares da invenção.
[00205] De acordo com uma modalidade particular da invenção, o dispositivo de decodificação DEC tem a arquitetura padrão de um computador e compreende, notavelmente, uma memória MEM0, uma unidade de processamento UT0, equipada, por exemplo, com um pro- cessador PROC0 e acionado pelo programa de computador PG0 ar- mazenado na memória MEM0. O programa de computador PG0 com- preende instruções para implementar as etapas do método de decodi- ficação conforme descrito acima, quando o programa é executado pelo processador PROC0.
[00206] Na inicialização, as instruções de código do programa de computador PG0 são, por exemplo, carregadas em uma memória RAM (não mostrada) antes de serem executadas pelo processador PROC0. Em particular, o processador PROC0 da unidade de proces- samento UT0 implementa as etapas do método de decodificação des- crito acima, de acordo com as instruções do programa de computador PG0.

Claims (12)

REIVINDICAÇÕES
1. Método para decodificar um fluxo de dados codificado representativo de pelo menos uma imagem, a referida imagem sendo dividida em blocos, o método de decodificação caracterizado pelo fato de que compreende, para pelo menos um bloco da imagem, referido como o bloco atual: - determinar (E441) um grupo de valores de pixel a partir do bloco de pixels previamente decodificados, - para cada pixel do bloco: (i) decodificar (E442) um resíduo de predição associado ao referido pixel, (ii) determinar (E4411) um valor de predição associado ao pixel de acordo com um primeiro modo de predição, de acordo com o qual o pixel é predito a partir de pelo menos um outro pixel previamen- te decodificado, o referido outro pixel previamente decodificado per- tencendo ao referido bloco atual, (iii) decodificar (E4422) do fluxo de dados um item de in- formação indicando se o pixel é predito de acordo com um segundo modo de predição de acordo com o qual o pixel é predito usando uma predição resultante a partir do referido grupo de valores de pixel no bloco, (iv) quando o item de informação indica que o pixel é predi- to de acordo com o segundo modo de predição: (a) selecionar (E4423) um valor do referido grupo, (b) substituir (E4423) o referido valor de predição associado ao pixel com o referido valor selecionado, (v) reconstruir (E444) o referido pixel usando o valor de predição associado ao pixel e ao resíduo de predição.
2. Método para codificar um fluxo de dados representativo de pelo menos uma imagem, a referida imagem sendo dividida em blocos, caracterizado pelo fato de que compreende, para pelo menos um bloco da imagem, referido como o bloco atual: - determinar (E221) um grupo de valores de pixel no bloco de pixels previamente decodificados, - para cada pixel do bloco: (i) determinar (E2201) um valor de predição associado ao pixel de acordo com um primeiro modo de predição, de acordo com o qual o pixel é predito a partir de pelo menos um outro pixel previamen- te decodificado, o referido outro pixel previamente decodificado per- tencendo ao referido bloco atual, (ii) determinar (E2202) um modo de predição para o pixel do primeiro modo de predição e um segundo modo de predição de acordo com o qual o pixel é predito usando uma predição resultante do referido grupo de valores de pixel no bloco, (iii) codificar (E2203, E2207) no fluxo de dados um item de informação indicando se o pixel é predito de acordo com o segundo modo de predição, (iv) quando o item de informação indica que o pixel é predi- to de acordo com o segundo modo de predição: (a) selecionar (E2204) um valor do referido grupo, (b) substituir (E2204) o referido valor de predição associado ao pixel com o referido valor selecionado, (v) calcular (E2205) um resíduo de predição quantizado as- sociado ao referido pixel usando o valor de predição associado ao pixel e o valor do referido pixel, (vi) reconstruir (E2206) o referido pixel usando o valor de predição associado ao pixel e o resíduo de predição decodificado, (vii) codificar (E223) o resíduo de predição quantizado as- sociado ao referido pixel no fluxo de dados.
3. Método de decodificação, de acordo com a reivindicação
1, ou método de codificação, de acordo com a reivindicação 2, carac- terizado pelo fato de que um valor do referido grupo a ser utilizado é selecionado de acordo com uma distância entre o valor de predição associado ao referido pixel em comparação com os valores de pixel do grupo.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que o grupo compreende um primeiro valor e um segundo valor, quando uma distância entre o valor de predição associado ao referido pixel e o primeiro valor é menor do que uma distância entre o valor de predição associado ao referido pixel e o segundo valor, o va- lor selecionado do referido grupo é o primeiro valor, e o valor selecio- nado do referido grupo é o segundo valor caso contrário.
5. Método de decodificação, de acordo com a reivindicação 1 ou método de codificação, de acordo com a reivindicação 2, caracte- rizado pelo fato de que a decodificação do fluxo de dados ou a codifi- cação no fluxo de dados do item de informação indicando se o pixel é predito de acordo com o segundo modo de predição é realizada ape- nas quando o resíduo de predição é diferente de 0.
6. Método de decodificação, de acordo com a reivindicação 1, ou método de codificação, de acordo com a reivindicação 2, carac- terizado pelo fato de que a determinação de um grupo de valores de pixel no bloco de pixels previamente decodificados é realizada pelo cálculo de um histograma dos valores de pixels vizinhos do bloco atual que foram previamente reconstruídos e a seleção de pelo menos dois valores de pixel representativos respectivamente de dois valores de pixel que são os mais frequentes entre os pixels vizinhos do bloco atu- al.
7. Método de codificação, de acordo com a reivindicação 2, caracterizado pelo fato de que um valor limite é determinado a partir de pelo menos um valor do referido grupo de valores de pixel no bloco de pixels previamente decodificados, ao determinar um modo de pre- dição para o pixel, o segundo modo de predição é escolhido: - quando o valor original do referido pixel é maior do que o referido valor de limite e o valor de limite é maior do que o valor de predição associado ao pixel determinado de acordo com o primeiro modo de predição, ou - quando o valor original do referido pixel é menor do que o referido valor de limite e o valor de limite é menor do que o valor de predição associado ao pixel determinado de acordo com o primeiro modo de predição.
8. Dispositivo para decodificar um fluxo de dados codificado representativo de pelo menos uma imagem, a referida imagem sendo dividida em blocos, caracterizado pelo fato de que compreende um processador (PROC0) configurado, para pelo menos um bloco da ima- gem, referido como o bloco atual, para: - determinar um grupo de valores de pixel no bloco de pixels previamente decodificados, - para cada pixel do bloco: (i) decodificar um resíduo de predição associado ao referido pixel, (ii) determinar um valor de predição associado ao pixel de pelo menos um outro pixel previamente decodificado, o referido outro pixel previamente decodificado pertencendo ao referido bloco atual, (iii) determinar a partir do fluxo de dados um item de infor- mação indicando se o pixel é predito usando uma predição resultante do referido grupo de valores de pixel no bloco, (iv) quando o item de informação indica que o pixel é predi- to usando uma predição resultante a partir do grupo de valores de pixel no bloco: (a) selecionar um valor do referido grupo,
(b) substituir o referido valor de predição associado ao pixel com o referido valor selecionado, (v) reconstruir o referido pixel usando o valor de predição associado ao pixel e ao resíduo de predição.
9. Dispositivo para codificar um fluxo de dados representa- tivo de pelo menos uma imagem, a referida imagem sendo dividida em blocos, caracterizado pelo fato de que compreende um processador (PROC) configurado, para pelo menos um bloco da imagem, referido como o bloco atual, para : - determinar um grupo de valores de pixel no bloco de pixels previamente decodificados, - para cada pixel do bloco: (i) determinar um valor de predição associado ao pixel de acordo com um primeiro modo de predição, de acordo com o qual o pixel é predito a partir de pelo menos um outro pixel previamente de- codificado, o referido outro pixel previamente decodificado pertencen- do ao referido bloco atual, (ii) determinar um modo de predição para o pixel a partir do primeiro modo de predição e um segundo modo de predição de acordo com o qual o pixel é predito usando uma predição resultante do referi- do grupo de valores de pixel no bloco, (iii) codificar no fluxo de dados um item de informação indi- cando se o pixel é predito de acordo com o segundo modo de predi- ção, (iv) quando o item de informação indica que o pixel é predi- to de acordo com o segundo modo de predição: (a) selecionar um valor do referido grupo, (b) substituir o referido valor de predição associado ao pixel pelo referido valor selecionado, (v) calcular um resíduo de predição associado ao referido pixel usando o valor de predição associado ao pixel e o valor do referi- do pixel, (b) codificar o resíduo de predição associado ao pixel no fluxo de dados, (vii) reconstruir o referido pixel usando o valor de predição associado ao pixel e ao resíduo de predição decodificado.
10. Fluxo de dados representativo de pelo menos uma ima- gem, a referida imagem sendo dividida em blocos, caracterizado pelo fato de que compreende, para pelo menos um bloco da imagem, refe- rido como o bloco atual, e para cada pixel do bloco atual: - um item de informação representativo de um resíduo de predição associado ao referido pixel, - um item de informação que indica se o pixel é predito usando uma predição resultante a partir de um grupo de valores de pixel no bloco, o grupo de valores de pixel no bloco sendo determinado a partir de pixels previamente decodificados.
11. Programa de computador, caracterizado pelo fato de que compreende instruções para implementar o método de decodifica- ção, como definido em qualquer uma das reivindicações 1 ou 3 a 6 ou o método de codificação, como definido em qualquer uma das reivindi- cações 2 a 7, quando o referido programa é executado por um proces- sador.
12. Meio de dados legível por computador, caracterizado pelo fato de que compreende instruções de um programa de computa- dor, como definido na reivindicação 11.
BR112021014787-0A 2019-02-07 2020-01-30 Métodos e dispositivos para codificar e decodificar um fluxo de dados representante de pelo menos uma imagem BR112021014787A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1901228 2019-02-07
FR1901228A FR3092719A1 (fr) 2019-02-07 2019-02-07 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image.
PCT/FR2020/050146 WO2020161413A1 (fr) 2019-02-07 2020-01-30 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image

Publications (1)

Publication Number Publication Date
BR112021014787A2 true BR112021014787A2 (pt) 2021-09-28

Family

ID=67185272

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021014787-0A BR112021014787A2 (pt) 2019-02-07 2020-01-30 Métodos e dispositivos para codificar e decodificar um fluxo de dados representante de pelo menos uma imagem

Country Status (8)

Country Link
US (1) US12022115B2 (pt)
EP (1) EP3922017A1 (pt)
JP (1) JP2022519739A (pt)
KR (1) KR20210128401A (pt)
CN (1) CN113412618B (pt)
BR (1) BR112021014787A2 (pt)
FR (1) FR3092719A1 (pt)
WO (1) WO2020161413A1 (pt)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2977111A1 (fr) * 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
EP2777258B1 (en) 2011-11-04 2017-01-11 Huawei Technologies Co., Ltd. Binarization of prediction residuals for lossless video coding
US10015515B2 (en) 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
FR3023112A1 (fr) * 2014-06-27 2016-01-01 Bcom Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
FR3046321B1 (fr) * 2015-12-29 2018-01-26 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes
FR3066873A1 (fr) * 2017-05-29 2018-11-30 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image
TW201907732A (zh) * 2017-07-05 2019-02-16 財團法人工業技術研究院 視訊編碼方法、視訊解碼方法、視訊編碼器及視訊解碼器

Also Published As

Publication number Publication date
US20220103862A1 (en) 2022-03-31
CN113412618A (zh) 2021-09-17
WO2020161413A1 (fr) 2020-08-13
US12022115B2 (en) 2024-06-25
JP2022519739A (ja) 2022-03-24
CN113412618B (zh) 2024-05-17
KR20210128401A (ko) 2021-10-26
EP3922017A1 (fr) 2021-12-15
FR3092719A1 (fr) 2020-08-14

Similar Documents

Publication Publication Date Title
JP5529040B2 (ja) イントラ予測されたビデオの照明補償の方法及び装置
JP2019525679A (ja) クロス成分フィルタ
KR20180055761A (ko) 영상을 부호화 또는 복호화하는 방법 및 장치
BR122020002126B1 (pt) Método e dispositivo de derivação de valores de modo de predição de referência e codificação e decodificação de informação representando modos de predição, e meio de armazenamento
KR20170093833A (ko) 인트라 모드들의 코딩
JP2024056766A (ja) 少なくとも1つの画像を表すデータストリームをコーディングおよびデコーディングするための方法および装置
BR112021003632A2 (pt) métodos e dispositivos para codificar e decodificar um fluxo de dados que representa pelo menos uma imagem
KR20210141751A (ko) 비디오 샘플들의 블록을 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템
BR112021014787A2 (pt) Métodos e dispositivos para codificar e decodificar um fluxo de dados representante de pelo menos uma imagem
CN112740690B (zh) 用于编码和解码代表至少一个图像的数据流的方法和设备
JP2010273110A (ja) 画像符号化装置および画像符号化方法
BR112015025151B1 (pt) Método de codificação, método de decodificação, método de codificação e decodificação, aparelho para codificação, aparelho para decodificação e codec para codificar e decodificar uma sequência de imagens digitais
KR20190052022A (ko) 인트라 기반의 로컬 인터-계층 예측을 위한 방법
CN112313955B (en) Method and device for encoding and decoding a data stream representing at least one image
CN118301343A (en) Method and device for encoding and decoding a data stream representing at least one image
JP7466469B2 (ja) 少なくとも1つの画像を表すデータストリームをコーディングおよび復号するための方法およびデバイス
BR112021003210A2 (pt) métodos e dispositivos para codificar e decodificar uma sequência de dados representando pelo menos uma imagem
JP2024092045A (ja) 少なくとも1つの画像を表すデータストリームを符号化および復号するための方法およびデバイス