BR112021003632A2 - métodos e dispositivos para codificar e decodificar um fluxo de dados que representa pelo menos uma imagem - Google Patents

métodos e dispositivos para codificar e decodificar um fluxo de dados que representa pelo menos uma imagem Download PDF

Info

Publication number
BR112021003632A2
BR112021003632A2 BR112021003632-6A BR112021003632A BR112021003632A2 BR 112021003632 A2 BR112021003632 A2 BR 112021003632A2 BR 112021003632 A BR112021003632 A BR 112021003632A BR 112021003632 A2 BR112021003632 A2 BR 112021003632A2
Authority
BR
Brazil
Prior art keywords
current block
encoding
pixel
block
prediction
Prior art date
Application number
BR112021003632-6A
Other languages
English (en)
Inventor
Félix Henry
Mohsen Abdoli
Pierrick Philippe
Gordon Clare
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 BR112021003632A2 publication Critical patent/BR112021003632A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

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 QUE REPRESENTA PELO MENOS UMA IMAGEM" A presente invenção refere-se a método e dispositivos (de codificar e decodificar fluxo de dados, de fluxo de dados, de produto de computador, e de meio de armazenamento) para codificar/decodificar fluxo de dados codificado representativo de pelo menos imagem que é dividida em blocos; para pelo menos um bloco da imagem, referido como bloco corrente, é determinado se o tamanho do bloco corrente é menor ou igual a limiar predeterminado; se menor ou igual ao limiar predeterminado, o método irá compreender decodificar (E42) item de informação indicando modo de codificação do bloco corrente entre primeiro e segundo modo de codificação, e reconstruir o bloco corrente de acordo com o modo indicado pelo dito item de informação, e de outro modo reconstruir o bloco corrente de acordo com o primeiro, que corresponde a codificação de acordo com o qual o bloco corrente é reconstruído (E436) usando uma transformada inversa de resíduo de predição transformado decodificado para o bloco corrente, e o segundo modo corresponde a codificação de acordo com o qual o bloco corrente é reconstruído (E444), para cada pixel do bloco corrente, com a obtenção de predição do dito pixel a partir de outro previamente decodificado do dito bloco corrente ou a bloco previamente decodificado da imagem.

Description

Relatório Descritivo da Patente de Invenção para "MÉTODOS E DISPOSITIVOS PARA CODIFICAR E DECODIFICAR
UM FLUXO DE DADOS QUE REPRESENTA PELO MENOS UMA IMAGEM".
1. Campo da Invenção
[0001] A presente invenção refere-se à codificação e à decodificação de imagens ou sequências de imagens, e, em particular, fluxos de vídeo.
[0002] Mais especificamente, a invenção refere-se à compressão de imagens ou sequências de imagens usando uma representação em blocos das imagens.
[0003] A invenção pode ser notavelmente aplicada à 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
[0004] Imagens e sequências de imagens digitais ocupam muito espaço em termos de memória, o que faz com que seja necessário, quando da transmissão destas imagens, comprimi-las a fim de evitar problemas de congestionamento na rede utilizada para esta transmissão.
[0005] 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 Efficiency Video Coding, Coding Tools and Specification", Matthias Wien, Signals and Communication Technology, 2015) propõe implementar uma predição de pixels de uma imagem corrente em relação a outros pixels pertencentes à mesma imagem (intrapredição) ou a uma imagem anterior ou subsequente (interpredição).
[0006] Mais especificamente, a intrapredição usa as redundâncias espaciais dentro de uma imagem. Para tanto, as imagens são divididas em blocos de pixels. Os blocos de pixels são então previstos usando informação já reconstruída, correspondendo aos blocos previamente codificados/decodificados na imagem corrente de acordo com a ordem de digitalização dos blocos na imagem.
[0007] Além disso, de forma padrão, a codificação de um bloco corrente é executada usando uma predição do bloco corrente , referido como bloco preditor, e um resíduo de predição ou "bloco residual", correspondendo a uma diferença entre o bloco corrente 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 para o decodificador, que pode reconstruir o bloco corrente acrescentando este bloco residual ao bloco preditor.
[0008] A decodificação é feita imagem por imagem, e para cada imagem, bloco por bloco. Para cada bloco, os elementos correspondentes do fluxo são lidos. A quantização inversa e a transformada inversa dos coeficientes do bloco residual são executadas. Depois, a predição de bloco é calculada para obter o bloco preditor, e o bloco corrente é reconstruído acrescentando a predição (isto é, o bloco preditor) ao bloco residual decodificado.
[0009] No documento US9253508, uma técnica de codificação DPCM (Differential Pulse Code Modulation (Modulação Diferencial de Código de Pulso)) para codificar blocos em um modo intra é integrada em um codificador HEVC. Tal técnica consiste em prever um conjunto de pixels de um intrabloco por outro conjunto de pixels do mesmo bloco que foi previamente reconstruído. No documento US9253508, um conjunto de pixels do intrabloco a ser codificado correspondente a uma fileira do bloco, ou a uma coluna, ou a uma fileira e a uma coluna, e a intrapredição usada para prever o conjunto de pixels é uma das intrapredições direcionais definidas no padrão HEVC.
[0010] No entanto, tal técnica não é adequada. Certamente, a reconstrução de um conjunto de pixels do intrabloco corresponde ou à adição de um resíduo de predição no caso de uma codificação sem perda, oferecendo, portanto, uma relação de compressão bastante baixa, ou à adição de um resíduo de predição depois da transformada inversa e/ou da quantização inversa do dito outro conjunto de pixels que serve como uma predição. Tal técnica, portanto, não permite que cada pixel do intrabloco seja previsto usando uma função de predição local e que o pixel previsto seja reconstruído antes de um pixel subsequente ser previsto. Certamente, esta técnica requer que um conjunto de pixels (fileira/coluna do bloco, por exemplo) seja reconstruído para prever outro conjunto de pixels. Em outras palavras, com cada predição e reconstrução de uma parte do bloco, diversos pixels do bloco são previstos e reconstruídos.
[0011] Ademais, no documento US9253508, não é descrito como fazer com que modos de intrapredição convencionais, conforme definido no padrão HEVC, por exemplo, e o modo de predição DPCM coexistam.
[0012] Há, portanto, necessidade de um novo método de codificação e de decodificação para aperfeiçoar a compressão de dados de imagem ou de vídeo.
3. Sumário da Invenção
[0013] A invenção aperfeiçoa o estado da técnica. Para esta finalidade, ela refere-se a um método para decodificar um fluxo de dados codificado representativo de pelo menos uma imagem que é dividida em blocos. O método de decodificação compreende, para pelo menos um bloco da imagem, referido como o bloco corrente : - determinar se o tamanho do bloco corrente é menor ou igual a um limiar predeterminado,
- se o tamanho do bloco corrente for menor ou igual ao limiar predeterminado, o método irá compreender decodificar um item de informação indicando um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação, e reconstruir o bloco corrente de acordo com o modo de codificação indicado pelo item de informação do modo de codificação decodificado, - se o tamanho do bloco corrente for maior do que o limiar predeterminado, reconstruir o bloco corrente de acordo com o primeiro modo de codificação.
[0014] O primeiro modo de codificação corresponde a um modo de codificação de acordo com o qual o bloco corrente é reconstruído usando uma transformada inversa de um resíduo de predição transformado decodificado para o bloco corrente , e o segundo modo de codificação corresponde a um modo de codificação de acordo com o qual o bloco corrente é reconstruído por: - para cada pixel do bloco corrente : - obter uma predição do dito pixel a partir de outro pixel previamente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco previamente decodificado da imagem, - reconstruir o dito pixel a partir da predição do dito pixel obtido e um resíduo de predição decodificado associado com o dito pixel.
[0015] Portanto, de acordo com a invenção, um item de informação que indica um modo de codificação do bloco corrente entre um modo de intracodificação convencional e um modo de codificação que usa uma predição baseada em pixels previamente reconstruídos do bloco corrente , é codificado/decodificado no fluxo apenas no caso em que o bloco corrente tem um tamanho menor ou igual a um limiar predeterminado.
[0016] No caso em que o bloco corrente tem um tamanho maior do que o limiar predeterminado, o bloco corrente pode ser, por exemplo, codificado pelo modo de intracodificação convencional por padrão, por exemplo, no caso de codificar uma imagem do tipo INTRA, ou por qualquer outro modo de codificação.
[0017] A vantagem de indicar o modo de codificação entre o primeiro modo de codificação e o segundo modo de codificação apenas para os blocos que apresentam um tamanho menor ou igual a um limiar predeterminado é o de ganhar em taxa. Certamente, o segundo modo de codificação requer a transmissão de um resíduo para cada pixel e, portanto, requer uma taxa proporcional à área do bloco expresso em número de pixels. O segundo modo de codificação é interessante em termos de compressão comparado ao primeiro modo de codificação quando bloco corrente tiver um tamanho pequeno.
[0018] Além disso, o custo de implementação de hardware no decodificador é reduzido, uma vez que os circuitos que sustentam a decodificação de um bloco de acordo com o segundo modo de codificação podem ser limitados a uma pequena área do bloco.
[0019] Vantajosamente, a invenção também permite um ganho em velocidade no codificador, uma vez que o codificador não tem então que testar os dois modos de codificação para tamanhos grandes de bloco, o que também consome o máximo de tempo de computação.
[0020] A invenção também se refere a um método para codificar um fluxo de dados representativo de pelo menos uma imagem que é dividida em blocos. De acordo com a invenção, o método de codificação compreende, para pelo menos um bloco da imagem, referido como o bloco corrente : - determinar se o tamanho do bloco corrente é menor ou igual a um limiar predeterminado, - se o tamanho do bloco corrente for menor ou igual ao limiar predeterminado, o método irá compreender codificar um item de informação que indica um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação, e codificar o bloco corrente de acordo com o modo de codificação indicado pelo item de informação do modo de codificação codificado, - se o tamanho do bloco corrente for maior do que o limiar predeterminado, codificar o bloco corrente de acordo com o primeiro modo de codificação.
[0021] O primeiro modo de codificação corresponde a um modo de codificação de acordo com o qual o bloco corrente é codificado usando uma transformada de um resíduo de predição do bloco corrente , e o segundo modo de codificação corresponde a um modo de codificação de acordo com qual o bloco corrente é codificado por: - para cada pixel do bloco corrente : - obter uma predição do dito pixel a partir de outro pixel previamente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco previamente decodificado da imagem, - codificar um resíduo de predição associado com o dito pixel e obtido a partir da predição obtida para o dito pixel.
[0022] De acordo com uma concretização específica da invenção, o tamanho do bloco corrente corresponde à maior largura do bloco corrente . Por exemplo, o limiar predeterminado é de 16 pixels ou 32 pixels. Outros valores limiares são naturalmente possíveis.
[0023] De acordo com outra concretização específica da invenção, o tamanho do bloco corrente corresponde ao número total de pixels no bloco corrente . Por exemplo, o limiar predeterminado é de 256 pixels ou 512 pixels. Outros valores de limiar são naturalmente possíveis.
[0024] De acordo com qualquer das concretizações específicas acima mencionadas, o valor limiar pode ser ajustado dependendo do tamanho máximo de um bloco dividido inicial da imagem.
[0025] De acordo com outra concretização específica da invenção, o limiar predeterminado é decodificado ou codificado no fluxo de dados.
[0026] A invenção também se refere a um dispositivo de decodificação configurado para implementar o método de decodificação de acordo com qualquer das concretizações específicas definidas acima. Este dispositivo de decodificação poderia, naturalmente, compreender as diferentes características relacionadas ao método de decodificação de acordo com a invenção. Portanto, as características e vantagens deste dispositivo de decodificação são iguais àquelas do método de decodificação, e não serão descritas em maiores detalhes.
[0027] O dispositivo de decodificação compreende, em particular, um processador configurado, para pelo menos um bloco da imagem, referido como o bloco corrente , para: - determinar se o tamanho do bloco corrente é menor ou igual a um limiar predeterminado, - se o tamanho do bloco corrente for menor ou igual ao limiar predeterminado, decodificar um item de informação que indica um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação, e reconstruir o bloco corrente de acordo com o modo de codificação indicado pelo item de informação do modo de codificação decodificado, - se o tamanho do bloco corrente for maior do que o limiar predeterminado, reconstruir o bloco corrente de acordo com o primeiro modo de codificação,
[0028] o primeiro modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é reconstruído usando uma transformada inversa de um resíduo de predição transformado decodificado para o bloco corrente , o segundo modo de codificação correspondendo a um modo de codificação de acordo com o bloco corrente é reconstruído por: - para cada pixel do bloco corrente : - obter uma predição do dito pixel a partir de outro pixel previamente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco previamente decodificado da imagem, - reconstruir o dito pixel a partir da predição do dito pixel obtido e um resíduo de predição decodificado associado com o dito pixel.
[0029] De acordo com uma concretização específica da invenção, tal dispositivo de decodificação é compreendido em um terminal.
[0030] A invenção também se refere a um dispositivo de codificação configurado para implementar o método de codificação de acordo com qualquer das concretizações específicas acima definidas. Este dispositivo de codificação poderia, naturalmente, compreender as diferentes características relacionadas ao método de codificação de acordo com a invenção. Portanto, as características e vantagens deste dispositivo de codificação são iguais àquelas do método de codificação, e elas não serão descritas em maiores detalhes.
[0031] O dispositivo de codificação compreende um processador configurado, para pelo menos um bloco da imagem, referido como o bloco corrente , que tem um tamanho menor ou igual a um limiar predeterminado, para: - determinar se o tamanho do bloco corrente é menor ou igual a um limiar predeterminado, - se o tamanho do bloco corrente for menor ou igual ao limiar predeterminado, codificar um item de informação que indica um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação, e codificar o bloco corrente de acordo com o modo de codificação indicado pelo item de informação do modo de codificação codificado, - se o tamanho do bloco corrente for maior do que o limiar predeterminado, codificar o bloco corrente de acordo com o primeiro modo de codificação,
[0032] o primeiro modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é codificado usando uma transformada de um resíduo de predição do bloco corrente , o segundo modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é codificado por: - para cada pixel do bloco corrente : - obter uma predição do dito pixel a partir de outro pixel previamente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco previamente decodificado da imagem, - codificar um resíduo de predição associado com o dito pixel e obtido a partir da predição obtida para o dito pixel. De acordo com uma concretização específica da invenção, tal dispositivo de codificação é compreendido em um terminal, ou um servidor.
[0033] A invenção também se refere a um fluxo de dados codificado representativo de pelo menos uma imagem que é dividida em blocos. De acordo com a invenção, o fluxo de dados codificado irá compreender, para pelo menos um bloco da imagem, referido como o bloco corrente , um item de informação que indica um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação, se o bloco corrente tiver um tamanho menor ou igual ao limiar predeterminado.
[0034] Quando o modo de codificação do bloco corrente corresponder a um primeiro modo de codificação ou se o tamanho do bloco corrente tiver um tamanho maior do que o limiar predeterminado,
o fluxo de dados codificado irá compreender um resíduo de predição transformado codificado.
[0035] Quando o modo de codificação do bloco corrente corresponder a um segundo modo de codificação e o tamanho do bloco corrente tiver um tamanho menor ou igual ao limiar predeterminado, o fluxo de dados codificado irá compreender um resíduo de predição codificado obtido por: - para cada pixel do bloco corrente : - obter uma predição do dito pixel a partir de outro pixel previamente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco previamente decodificado da imagem, - obter um resíduo de predição associado com o dito pixel da predição obtida para o dito pixel.
[0036] De acordo com uma concretização específica da invenção, o fluxo de dados codificado adicionalmente compreende um valor representativo do dito limiar predeterminado codificado pelo menos para a dita imagem.
[0037] O fluxo de dados de acordo com qualquer das concretizações específicas acima descritas pode ser armazenado em qualquer meio de armazenamento, por exemplo, uma memória, ou transmitido na forma de um sinal elétrico ou óptico, que pode ser conduzido via um cabo elétrico ou óptico, por rádio ou por outro meio.
[0038] O método de decodificação, respectivamente, o método de codificação de acordo com a invenção podem ser implementados de várias maneiras, notavelmente na forma com fio ou na forma de software. De acordo com uma concretização específica da invenção, o método de decodificação, respectivamente, o método de codificação, são implementados 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 das concretizações específicas anteriormente descritas, quando o dito programa for executado por um processador. Tal programa pode usar qualquer linguagem de programação. Ele pode ser baixado de uma rede de comunicação e/ou gravado em um meio legível por computador.
[0039] Este programa pode usar qualquer linguagem de programação, e pode se apresentar na forma de um código de fonte, um código de objeto ou um código intermediário entre o código de fonte e o código de objeto, tal como uma forma parcialmente compilada, ou em qualquer outra forma desejável.
[0040] A invenção também se refere a um meio de armazenamento ou meio de dados legível por computador que compreende instruções de um programa de computador, conforme mencionado acima. Os meios de gravação acima mencionados podem ser qualquer entidade ou dispositivo capaz de armazenar o programa. Por exemplo, o meio pode compreender um meio de armazenamento tal como uma memória. Por outro lado, os meios de gravação podem corresponder a um meio transmissível, tal como um sinal elétrico ou óptico, que pode ser conduzido via um cabo elétrico ou óptico, por rádio ou por outro meio. O programa de acordo com a invenção pode ser baixado, em particular, em uma rede do tipo Internet.
[0041] Alternativamente, os meios de gravação podem corresponder a um circuito integrado no qual o programa está embutido, o circuito sendo adaptado para executar ou ser usado na execução do método em questão.
4. Lista das Figuras
[0042] Outras características e vantagens da invenção surgirão mais claramente com a leitura da seguinte descrição de uma concretização específica, provida como um exemplo simples, ilustrativo e não restritivo, e dos desenhos anexos, em que:
[0043] - a Figura 1 mostra etapas do método de codificação de acordo com uma concretização específica da invenção;
[0044] - a Figura 2 ilustra um exemplo de posição dos blocos vizinhos de um bloco corrente para determinar um modo de intrapredição de acordo com uma concretização da invenção;
[0045] - a Figura 3 ilustra um exemplo de posição dos pixels de referência usados para prever pixels de um bloco corrente de acordo com uma concretização específica da invenção;
[0046] - a Figura 4 mostra etapas do método de decodificação de acordo com uma concretização específica da invenção;
[0047] - a Figura 5 ilustra um exemplo de sinal que compreende dados codificados representativos de pelo menos um bloco de uma imagem de acordo com uma concretização exemplificativa da invenção;
[0048] - a Figura 6 mostra a estrutura simplificada de um dispositivo de codificação adaptado para implementar o método de codificação de acordo com qualquer das concretizações específicas da invenção;
[0049] - a Figura 7 mostra a estrutura simplificada de um dispositivo de decodificação adaptado para implementar o método de decodificação de acordo com qualquer das concretizações específicas da invenção.
5. Descrição de uma Concretização da Invenção
5.1 Princípio Geral
[0050] O princípio geral da invenção é o de permitir aperfeiçoar a codificação de um bloco de dados de uma imagem usando um novo modo de codificação baseado em uma predição dos pixels do bloco usando outros pixels previamente reconstruídos do mesmo bloco e o de fazer com este novo modo de codificação coexista com os modos de codificação convencionais, por exemplo, conforme definido nos padrões de compressão atuais.
[0051] Portanto, de acordo com a invenção, um novo modo de codificação conhecido como ILR (residual em loop) é definido de acordo com o qual os pixels de um bloco a ser codificado são previstos usando outros pixels previamente reconstruídos do mesmo bloco e um resíduo de predição para cada pixel é transmitido para o decodificador. Este novo modo de codificação é introduzido em um codificador/decodificador usando modos de codificação convencionais de acordo com os quais os pixels do bloco a ser codificado são previstos em relação aos pixels de outro bloco previamente reconstruído e de acordo com o qual um resíduo de predição para o bloco a ser codificação é transformado antes de ser codificado e transmitido para o decodificador.
[0052] De acordo com a invenção, um item de informação que indica um modo de codificação entre um primeiro modo de codificação (modo convencional) e um segundo modo de codificação (modo ILR) será codificado, se o bloco tiver um tamanho menor ou igual a um limiar predeterminado. O primeiro modo de codificação será então usado por padrão quando o bloco tiver um tamanho maior do que o limiar predeterminado e nenhum item de informação for transmitido para indicar a escolha deste modo de codificação entre o primeiro e o segundo modos de codificação.
[0053] Desse modo, de acordo com a invenção, o modo de codificação ILR está apenas disponível para os blocos cujo tamanho é menor ou igual a um determinado tamanho. Certamente, a técnica de codificação ILR requer a transmissão de um resíduo para cada pixel, ao passo que um modo de codificação convencional (INTRA ou INTER) é baseado na codificação de um resíduo transformado, que é muito mais barato de transmitir.
[0054] Foi experimentalmente observado que, para um modo de codificação convencional de acordo com o qual um resíduo de predição é transformado, a taxa associada com um bloco quadrado é, na média, proporcional ao comprimento do lado do bloco.
[0055] Entretanto, por natureza, a abordagem ILR corresponde ao modo de codificação de acordo com o qual um resíduo de predição não é transformado antes de a codificação ser uma abordagem que requer uma taxa proporcional à área do bloco expresso em número de pixels. Certamente, de acordo com o método ILR, um resíduo tem que ser transmitido para cada pixel, e este resíduo não é transformado, pois é necessário poder reconstruir o pixel para então prever outros pixels no mesmo bloco.
[0056] O custo de taxa da abordagem ILR aumenta, portanto, com o quadrado da largura de um bloco, enquanto a taxa da abordagem convencional aumenta proporcionalmente à dita largura. A consequência é a de que, enquanto a abordagem ILR pode ser superior à abordagem convencional para pequenos blocos, este não é mais o caso para blocos grandes.
[0057] Foi experimentalmente confirmado que, mesmo ao permitir que um codificador coloque os dois modos de codificação em competição para todos os tamanhos de bloco, o modo de codificação ILR é quase nunca selecionado para tamanhos de bloco acima de 16x16 pixels, devido à sua alta taxa.
[0058] Existem, portanto, diversas vantagens em não deixar o modo de codificação ILR ativo acima de um determinado tamanho de bloco. Ele permite um ganho nas taxas, uma vez que ele não mais é necessário, para grandes tamanhos de bloco, transmitir um item de informação que identifica se o bloco corrente tem que ser decodificado de acordo com o modo de codificação convencional ou o modo de codificação ILR.
[0059] A desativação do modo de codificação ILR para blocos grandes também permite um ganho em velocidade no codificador, uma vez que o codificador não tem mais que testar os dois modos de codificação para grandes tamanhos de bloco que consomem a maioria dos recursos de computação.
[0060] Ademais, o custo de implementação de hardware de um decodificador é reduzido, uma vez que os circuitos que suportam a decodificação de um bloco de acordo com o modo de codificação ILR podem ser limitados a uma pequena área deste bloco.
[0061] O princípio geral da invenção é, portanto, o de testar os dois modos de codificação apenas e o tamanho do bloco for menor ou igual a um limiar predeterminado. Por exemplo, o critério poderia ser um dos seguintes: - A maior largura do bloco é menor ou igual a 16 pixels, - A maior largura de bloco é menor ou igual a 32 pixels, - O número total de pixels no bloco é menor ou igual a 256 pixels, - O número total de pixels no bloco é menor ou igual a 512 pixels.
[0062] Outros critérios são possíveis. Se o critério for satisfeito, o codificador irá efetivamente testar os dois modos de codificação acima mencionados, escolher o melhor no sentido de um critério de distorção de taxa, e transmitir um indicador para o decodificador identificar o modo de codificação escolhido. Se o critério não for satisfeito (portanto, acima de um certo tamanho de bloco), o modo de codificação convencional será usado, e nenhum indicador será transmitido.
5.2 Concretizações
[0063] A Figura 1 mostra etapas do método de codificação de acordo com uma concretização específica 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 concretização específica da invenção. Por exemplo, tal método de codificação é implementado por um dispositivo de codificação, conforme descrito posteriormente em relação à Figura 6.
[0064] Uma sequência de imagens I1, I2, ..., INb, Nb sendo o número de imagens da sequência a ser codificada, é provida como entrada 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 provida como entrada.
[0065] De maneira conhecida, a codificação da sequência de imagens I1, I2, ..., INb é feita imagem por imagem de acordo com uma ordem de codificação previamente estabelecida e conhecida do codificador. Por exemplo, as imagens podem ser codificadas na ordem temporal I1, I2, ..., INb ou em outra ordem, por exemplo, I1,I3, I2, ..., INb.
[0066] Em uma etapa E0, uma imagem Ii a ser codificada da sequência de imagens I1,I2, ..., INb é dividida em blocos, por exemplo, em blocos de tamanho de 32x32 ou 64x64 pixels ou mais. Tal bloco pode ser subdividido em sub-blocos quadrados ou retangulares, por exemplo, de 16x16, 8x8, 4x4, 16x8, 8x16 ...
[0067] Na etapa E0, um limiar é determinado definindo o tamanho máximo de bloco até o qual o modo de codificação ILR pode ser usado para codificar um bloco corrente . Por exemplo, o limiar pode ser ajustado por padrão no codificador ou determinado dependendo do tamanho máximo do bloco usado para dividir a imagem. Por exemplo, considerando um tamanho máximo dividido inicial de 256x256 pixels, o limiar pode corresponder a uma maior largura de bloco igual a 64, 32 ou 16 pixels.
[0068] Considerando um tamanho máximo dividido inicial de 128x128 pixels, o limiar pode corresponder a uma maior largura de bloco igual a 64, 32, 16 ou 8 pixels. O limiar pode ser ajustado dependendo do conteúdo das imagens a serem codificadas. Como uma variante, diversos valores limiares podem ser testados durante uma otimização de distorção de taxa abaixo descrita.
[0069] Em uma etapa opcional E10, de acordo com uma concretização específica da invenção, um valor do limiar predeterminado é codificado no fluxo de dados STR, nos dados codificados para a imagem Ii ou nos dados codificados para a sequência de imagens.
[0070] Depois, na etapa E1, um primeiro bloco ou sub-bloco Xb a ser codificado da imagem Ii é selecionado de acordo com uma ordem de digitalização predeterminada da imagem Ii. Por exemplo, ele pode ser o primeiro bloco na ordem de digitalização lexicográfica da imagem.
[0071] Em uma etapa E2, o codificador irá escolher o modo de codificação para codificar o bloco corrente Xb.
[0072] De acordo com a concretização específica aqui descrita, o codificador seleciona o modo para codificar o bloco corrente Xb a partir de um primeiro modo de codificação M1 e de um segundo modo de codificação M2. Modos de codificação adicionais (não descritos aqui) podem ser usados.
[0073] De acordo com a concretização específica aqui descrita, o primeiro modo de codificação M1 corresponde à codificação do bloco corrente pela intrapredição convencional, 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 residual em loop (ILR).
[0074] O princípio da invenção pode ser estendido a outros tipos de modos de codificação, seja para o primeiro modo de codificação M1 ou para o segundo modo de codificação M2. Por exemplo, o primeiro modo de codificação pode corresponder a qualquer tipo de modo de codificação que usa uma transformação do resíduo de predição antes de quantizar os coeficientes resultantes da operação de transformação (codificação de predição entre imagens, predição espacial com codificação de correspondência de modelo, etc.) O segundo modo de codificação corresponde ao modo de codificação ILR acima descrito.
[0075] Na etapa E2, o codificador pode executar uma otimização de distorção de taxa para determinar o melhor modo de codificação para codificar o bloco corrente . Durante esta otimização de distorção de taxa, 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 distorção de taxa, o codificador simula a codificação do bloco corrente Xb de acordo com os diferentes modos de codificação disponíveis a fim de determinar a taxa e a distorção associadas com cada modo de codificação e seleciona o modo de codificação que oferece o melhor compromisso de distorção de taxa, por exemplo, de acordo com uma função D+ R, onde R é a taxa necessária para codificar o bloco corrente de acordo com o modo de codificação avaliado, D é a distorção medida entre o bloco decodificado e o bloco corrente original, e é um multiplicador de Lagrangian, por exemplo, introduzido pelo usuário ou definido no codificador.
[0076] De acordo com a invenção, se o bloco corrente tiver um tamanho maior do que o limiar predeterminado na etapa E0, o segundo modo de codificação não será testado.
[0077] Em uma etapa E19, é determinado se o bloco corrente tem um tamanho menor ou igual ao limiar determinado na etapa E0. Se o bloco corrente tiver um tamanho menor ou igual ao limiar, o processo prosseguirá para a etapa E20. Do contrário, se o bloco corrente tiver um tamanho maior do que o limiar, o método prosseguirá para a etapa E21 para codificar o bloco corrente de acordo com o primeiro modo de codificação.
[0078] De acordo com uma concretização específica da invenção, o tamanho do bloco corrente pode corresponder à maior largura do bloco.
Por exemplo, se o bloco corrente tiver um tamanho de 16x32 pixels e o limiar determinado for de 32 pixels, neste caso, o segundo modo de codificação será testado. Contudo, se o bloco corrente tiver um tamanho de 64*32 pixels, neste caso, o segundo modo de codificação não será testado.
[0079] De acordo com outra concretização específica da invenção, o tamanho do bloco corrente pode corresponder ao número de pixels no bloco. Por exemplo, para um limiar de 512 pixels, e um bloco corrente de 16*32 pixels contendo assim 512 pixels, o segundo modo de codificação é testado, ao passo que para um bloco corrente de 64*32 pixels contendo assim 2048 pixels, o segundo modo de codificação não é testado.
[0080] Em uma etapa E20, um item de informação que indica o modo de codificação selecionado para o bloco corrente é codificado no fluxo de dados STR.
[0081] Se o bloco corrente Xb for codificado de acordo com o primeiro modo de codificação M1, o método prosseguirá para a etapa E21 para codificar o bloco de acordo com M1. Se o bloco corrente Xb for codificado de acordo com o segundo modo de codificação M2, o método prosseguirá para a etapa E22 para codificar o bloco de acordo com M2.
[0082] A etapa E21 para codificar o bloco de acordo com o primeiro modo de codificação M1, de acordo com uma concretização específica da invenção, é descrita abaixo. De acordo com o modo específico aqui descrito, o primeiro modo de codificação corresponde a uma intrapredição convencional, tal como aquela definida no padrão HEVC.
[0083] Em uma etapa E210, é determinada uma etapa de quantização . Por exemplo, a etapa de quantização pode ser definida pelo usuário, ou calculada usando um parâmetro de quantização que define um compromisso entre a compressão e a qualidade e introduzida pelo usuário ou definida pelo codificador. Desse modo, tal parâmetro de quantização pode ser o parâmetro , usado na função de custo de distorçã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, sendo tipicamente buscada uma maneira de codificar a imagem que minimiza esta função.
[0084] Como uma 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. Desse modo, no padrão HEVC, a etapa de quantização é determinada pela equação = levelScale[ QP%6 ] << (QP/6)) em que levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } for k = 0..5.
[0085] Em uma etapa E211, uma predição do bloco corrente é determinado usando um modo de intrapredição convencional. De acordo com esta intrapredição convencional, cada pixel previsto é calculado apenas pelos pixels decodificados que se originam dos blocos vizinhos (pixels de referência) localizados acima do bloco corrente , e à esquerda do bloco corrente . A maneira em que os pixels são previstos a partir dos pixels de referência depende de um modo de predição que é transmitido para o decodificador, e que é escolhido pelo codificador de um conjunto predeterminado de modos conhecido do codificador e do decodificador.
[0086] Desse modo, em HEVC, há 35 modos de predição possíveis: 33 modos que interpolam os pixels de referência em 33 diferentes direções angulares, e 2 outros modos: o modo DC em que cada pixel do bloco previsto é produzido a partir da média dos pixels de referência, e o modo PLANAR, que executa uma interpolação planar e não direcional. Esta "intrapredição convencional" é bem conhecida e também usada no padrão ITU-T H.264 (onde há apenas 9 modos diferentes) bem como no software JEM experimental disponível no endereço da Internet (https://jvet.hhi.fraunhofer.de/), onde há 67 diferentes modos de predição. Em todos os casos, a intrapredição convencional respeita os dois aspectos mencionados acima (predição dos pixels dos blocos vizinhos e a transmissão para o decodificador de um modo de predição adequado).
[0087] Na etapa E211, o codificador escolhe, portanto, um dos modos de predição disponíveis da lista predeterminada de modos de predição. Uma maneira de escolher consiste, por exemplo, na avaliação de todos os modos de predição e na manutenção do modo de predição que minimiza uma função de custo tal como, classicamente, o custo de distorção de taxa.
[0088] Em uma etapa E212, o modo de predição escolhido para o bloco corrente é codificado a partir dos blocos vizinhos do bloco corrente . A Figura 2 mostra um exemplo de posição dos blocos vizinhos Ab e Bb do bloco corrente Xb para codificar o modo de predição do bloco corrente Xb.
[0089] Na etapa E212, o modo de intrapredição escolhido para o bloco corrente é codificado usando os modos de intrapredição associados com os blocos vizinhos.
[0090] Por exemplo, pode ser usada a abordagem descrita no padrão HEVC para codificar o modo de predição do bloco corrente . No exemplo na Figura 2, tal abordagem consiste em identificar o modo intrapredição mA associado com o bloco Ab localizado acima do bloco corrente , e o modo de intrapredição mB associado com o bloco Bb localizado exatamente à esquerda do bloco corrente . Dependendo do valor de mA e mB, são criadas uma lista denominada MPM (para o Modo Mais Provável), contendo 3 modos de intrapredição, e uma lista denominada não-MPM, contendo os 32 outros modos de predição.
[0091] De acordo com o padrão HEVC, a fim de codificar o modo de intrapredição do bloco corrente , elementos de sintaxe são transmitidos: - um indicador binário que indica se o modo de predição a ser codificado para o bloco corrente está ou não na lista MMP, - se o modo de predição do bloco corrente pertencer à lista MPM, um índice na lista MPM correspondendo ao modo de predição do bloco corrente será codificado, - se o modo de predição do bloco corrente não pertencer à lista MPM, um índice na lista não MPM correspondendo ao modo de predição do bloco corrente será codificado.
[0092] Em uma etapa E213, é construído o resíduo de predição R para o bloco corrente .
[0093] Na etapa E213, de maneira padrão, um bloco previsto P é construído de acordo com o modo de predição escolhido na etapa E211. Depois, o resíduo de predição R é obtido calculando a diferença para cada pixel entre o bloco previsto P e o bloco corrente original.
[0094] Em uma etapa E214, o resíduo de predição R é transformado em RT.
[0095] Na etapa E214, uma transformada de frequência é aplicada ao bloco residual R a fim de produzir o bloco RT compreendendo coeficientes de transformada. A transformada poderia ser uma transformada do tipo DCT, por exemplo. É possível escolher a transformada a ser usada de um conjunto predeterminado de transformadas ET e informar o decodificador da transformada usada.
[0096] Em uma etapa E215, o bloco de resíduo transformado RT é quantizado usando, por exemplo, uma quantização escalar da etapa de quantização . Isto produz o bloco de resíduo de predição transformado quantizado RTQ.
[0097] Em uma etapa E216, os coeficientes do bloco quantizado RTQ são codificados por um codificador de entropia. Por exemplo, pode ser usada a codificação de entropia especificada no padrão HEVC.
[0098] De maneira conhecida, o bloco corrente é decodificado com o desquantização dos coeficientes do bloco quantizado RTQ, aplicando então a transformada inversa aos coeficientes desquantizados para obter o resíduo de predição decodificado. A predição é então acrescentada ao resíduo de predição decodificado a fim de reconstruir o bloco corrente e obter sua versão decodificada. A versão decodificada do bloco corrente pode então ser usada posteriormente para espacialmente prever outros blocos vizinhos da imagem ou para prever blocos de outras imagens por predição entre imagens.
[0099] A etapa E22 para codificar o bloco de acordo com o segundo modo de codificação M2, de acordo com uma concretização específica da invenção, é descrita abaixo. De acordo com a concretização específica aqui descrita, o segundo modo de codificação corresponde a uma codificação de predição ILR.
[00100] Em uma etapa E220, é determinado um preditor local PL para o bloco corrente . De acordo com o modo de codificação aqui descrito, os pixels do bloco corrente são previstos por pixels previamente reconstruídos de um bloco vizinho do bloco corrente ou do próprio bloco corrente .
[00101] Preferivelmente, para a predição, são escolhidos os pixels que estão o mais próximo possível do pixel a ser previsto. Isto é porque é referido como um preditor local. O preditor local PL pode ser também assimilado em um modo de predição do bloco corrente associado com o segundo modo de codificação M2. De acordo com esta interpretação, na concretização específica aqui descrita, o primeiro modo de codificação usa um primeiro grupo de modos de intrapredição, por exemplo, os modos de intrapredição definidos pelo padrão HEVC, e o segundo modo de codificação, aqui o modo ILR, usa um segundo grupo de modos de predição distintos do primeiro grupo de modos de intrapredição.
[00102] O preditor local PL pode ser único ou pode ser selecionado de um conjunto de preditores locais predeterminados (segundo grupo de modos de predição).
[00103] De acordo com uma variante de concretização, são definidos 4 preditores locais. Desse modo, se X for chamado de um pixel corrente a ser previsto a partir do bloco corrente , A o pixel localizado imediatamente à esquerda de X, B o pixel localizado imediatamente à esquerda e acima de X, C o pixel localizado imediatamente acima de X, conforme ilustrado na Figura 3 que ilustra um bloco corrente Xb, 4 preditores locais PL1, PL2, PL3, PL4 poderão ser definidos como segue: PL1(X) = min(A,B) if C ≥ max(A,B) max(A,B) if C ≤ min(A,B) A+B-C de outro modo PL2(X) = A PL3(X) = B PL4(X) = C
[00104] 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 retorna o maior valor entre o valor de A e o valor de B.
[00105] Na etapa E220, é determinado o preditor local PL usado para o bloco corrente . Em outras palavras, o mesmo preditor local será usado para todos os pixels do bloco corrente , isto é, a mesma função de predição. Para esta finalidades, são possíveis diversas variantes de concretização.
[00106] A codificação do bloco corrente com cada dos preditores pode ser simulada (similarmente a uma otimização para escolher um modo de codificação para o bloco corrente ), sendo selecionado o preditor local que otimiza uma função de custo (por exemplo, que minimiza a função D + λ.R, onde R é a taxa usada para codificar o bloco,
D é a distorção do bloco decodificado com relação ao bloco original, e λ é um parâmetro definido pelo usuário).
[00107] Ou, a fim de limitar a complexidade de selecionar um preditor local para o bloco corrente , é analisada uma orientação da textura dos pixels previamente codificados. Por exemplo, os pixels previamente codificados no bloco que são localizados acima ou à esquerda do bloco corrente são analisados usando um operador do tipo Sobel. Se for determinado que: - a orientação é horizontal, o preditor local PL2 será selecionado, - a orientação é vertical, o preditor local PL3 será selecionado, - a orientação é diagonal, o preditor local PL4 será selecionado, - se não surgir nenhuma orientação, o preditor local PL1 será selecionado.
[00108] Um elemento de sintaxe é codificado no fluxo de dados STR para indicar ao decodificador qual preditor local foi uado para prever o bloco corrente .
[00109] Em uma etapa E221, é determinada uma etapa de quantização . Por exemplo, a etapa de quantização depende no mesmo parâmetro de quantização como a etapa de quantização que seria determinada na etapa E210 se o bloco corrente fosse codificado de acordo com o primeiro modo de codificação.
[00110] Na etapa E222, um resíduo de predição R1 é calculado para o bloco corrente . Para esta finalidade, uma vez que o preditor local é escolhido, para cada pixel corrente do bloco corrente :
[00111] - o pixel corrente X do bloco corrente é previsto pelo preditor local selecionado PL, usando ou pixels fora do bloco e já reconstruídos (e, portanto, disponíveis com seu valor decodificado), ou pixels previamente reconstruídos no bloco corrente , ou ambos, a fim de obter um valor previsto PRED. Em todos os casos, o preditor PL usa pixels previamente reconstruídos. Na Figura 3, pode ser visto que os pixels do bloco corrente localizado na primeira fileira e/ou na primeira coluna do bloco corrente usarão como pixels de referência (para construir o valor previsto PRED) pixels fora do bloco e já reconstruídos (pixels em cinza na Figura 3) e pixels possivelmente já reconstruídos do bloco corrente . Para os pixels do bloco corrente , os pixels de referência usados para construir o valor previsto PRED são localizados dentro do bloco corrente ;
[00112] - a diferença DIFF entre PRED e X é quantizada em um valor Q(X), por um quantizador escalar da etapa de quantização , por Q(X) = ScalarQuant(DIFF) = ScalarQuant( , X-PRED), o quantizador escalar sendo, por exemplo, um quantizador escalar mais próximo do vizinho tal ∆ como: ScalarQuant(∆, ) = . ∆
[00113] Q(X) é o resíduo quantizado associado com X. Ele é calculado no domínio espacial, isto é, calculado diretamente a partir da diferença entre o valor previsto PRED 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íduo de predição quantizado R1Q, que será codificado posteriormente;
[00114] - o valor previsto decodificado P1(X) de X é calculado acrescentando ao valor previsto PRED o valor desquantizado do resíduo quantizado Q(X). O valor previsto decodificado (P1(X) de X é, portanto, obtido por P1(X) = PRED + ScalarDequant( , Q(X)). Por exemplo, a função inversa de quantização escalar mais próxima é fornecida por: ScalarDequant(∆, ) = ∆ × .
[00115] O valor previsto decodificado P1(X) permite assim prever possíveis pixels que permanecem para serem processados no bloco corrente . Além disso, o bloco P1 compreendendo os valores decodificados/reconstruídos dos pixels do bloco corrente é o preditor ILR do bloco corrente (como em oposição ao intrapreditor convencional).
[00116] As subetapas descritas acima são executadas para todos os pixels do bloco corrente , em uma ordem de digitalização que assegura que os pixels usados para a predição escolhida de PL1, ..., PL4 estejam disponíveis.
[00117] De acordo com a variante de concretização, a ordem de digitalização do bloco corrente é a ordem lexicográfica, isto é, da esquerda para a direita, e de cima para baixo.
[00118] De acordo com outra variante de concretização, diversas ordens de digitalização do bloco corrente podem ser usadas, por exemplo:
[00119] - a ordem lexicográfica, ou
[00120] - a digitalização da primeira coluna de cima para baixo, depois a coluna exatamente à direita da mesma, etc., ou
[00121] - a digitalização das diagonais uma após a outra.
[00122] De acordo com esta outra variante, é possível simular o custo de codificação associado com cada das ordens de digitalização e escolher a melhor ordem de digitalização para o bloco corrente em termos de distorção de taxa, e então codificar para o bloco corrente um item de informação representativo da ordem de digitalização escolhida.
[00123] No final da etapa E222, foi determinado o bloco de resíduo quantizado R1Q. Este bloco de resíduo quantizado R1Q tem que ser codificado para transmissão para o decodificador. O preditor P1 do bloco corrente foi também determinado.
[00124] Em uma etapa E223, o bloco de resíduo quantizado R1Q é codificado para transmissão para o decodificador. Qualquer abordagem conhecida, tal como o método descrito em HEVC, pode ser usada para codificar os coeficientes quantizados de um resíduo de predição convencional.
[00125] De acordo com a concretização específica da invenção aqui descrita, os valores do bloco de resíduo quantizado R1Q são codificados usando um codificador de entropia no fluxo de dados STR.
[00126] De acordo com uma concretização específica da invenção, é possível determinar e codificar um resíduo de predição adicional R2 a partir do preditor ILR obtido para o bloco corrente . A codificação de um resíduo de predição adicional R2 é, contudo, opcional. Certamente, é possível codificar simplesmente o bloco corrente por sua versão prevista P1 e pelo resíduo quantizado R1Q.
[00127] A fim de codificar um resíduo de predição adicional R2 para o bloco corrente , as seguintes etapas são implementadas.
[00128] Em uma etapa E224, a diferença R2 entre o preditor P1 e o bloco corrente original Xb é calculada para formar um resíduo adicional R2: R2= Xb-P1. As seguintes etapas correspondem às etapas de codificação convencionais para este resíduo R2.
[00129] Em uma etapa E225, o resíduo R2 é transformado usando uma transformada de frequência a fim de produzir o bloco de coeficientes R2T.
[00130] 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 o decodificador da transformada usada. Neste caso, o conjunto ET2 pode ser diferente do conjunto ET, a fim de adaptar-se à estatística específica do resíduo R2.
[00131] Em uma etapa E226, o bloco de coeficientes R2T é quantizado, por exemplo, usando uma quantização escalar da etapa de quantização . Isto produz o bloco R2TQ.
[00132] A etapa de quantização pode ser definida pelo usuário. Ela pode também ser calculada usando outro parâmetro que define o compromisso entre a compressão e a qualidade e introduzido pelo usuário ou pelo codificador. Por exemplo, a etapa de quantização pode corresponder à etapa de quantização 1 ou ser determinada similarmente à mesma.
[00133] Em uma etapa E227, os coeficientes do bloco quantizado R2TQ são então transmitidos de maneira codificada. Por exemplo, pode ser usada a codificação especificada no padrão HEVC.
[00134] Em uma maneira conhecida, o bloco corrente é decodificado por desquantização dos coeficientes do bloco quantizado R2TQ, aplicando então a transformada inversa aos coeficientes desquantizados para obter o resíduo de predição. A predição P1 é então acrescentada ao resíduo de predição decodificado a fim de reconstruir o bloco corrente e obter sua versão decodificada Xrec. A versão decodificada Xrec do bloco corrente pode ser então usada posteriormente para espacialmente prever outros blocos vizinhos da imagem ou para prever blocos de outras imagens por predição entre imagens.
[00135] Na etapa E23, será verificado se o bloco corrente é o último bloco da imagem a ser processada pelo método de codificação, levando com conta a ordem de digitalização previamente definida. Caso positivo, o método prosseguirá para codificar (etapa E25) a próxima imagem do vídeo, caso haja alguma. Caso negativo, em uma etapa E24, o bloco subsequente da imagem a ser processada será selecionado de acordo com a ordem de digitalização previamente definida da imagem e o método de codificação prosseguirá para a etapa E2, onde o bloco selecionado se torna o bloco corrente a ser processado.
[00136] 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 codificada de acordo com uma concretização específica da invenção.
[00137] Por exemplo, o fluxo de dados STR foi gerado via o método de codificação mostrado em relação à Figura 1. O fluxo de dados STR é provido como entrada a um dispositivo de decodificação DEC, conforme descrito em relação à figura 7.
[00138] O método de decodificação decodifica o fluxo imagem por imagem e cada imagem é decodificada bloco por bloco.
[00139] Em uma etapa E40, uma imagem Ii a ser decodificada é subdividida em blocos de um tamanho inicial determinado no codificador e conhecido do decodificador. Cada bloco irá passar por uma operação de decodificação que consiste em uma série de etapas que serão detalhadas em seguida. Os blocos podem ter o mesmo tamanho ou tamanhos diferentes.
[00140] Em uma etapa opcional E401, de acordo com uma concretização específica da invenção, um valor limiar é lido a partir do fluxo de dados STR. Este valor limiar define o tamanho máximo de bloco até o qual o modo de codificação ILR pôde codificar um bloco corrente .
[00141] De acordo com outra concretização específica da invenção, o limiar pode ser definido por padrão no decodificador.
[00142] Em uma etapa E41, um primeiro bloco ou um sub-bloco Xb a ser decodificado da imagem li é selecionado como o bloco corrente de acordo com uma ordem de digitalização predeterminada da imagem li. Por exemplo, ele pode ser o primeiro bloco na ordem de digitalização lexicográfica da imagem.
[00143] Em uma etapa E42, é determinado se o bloco corrente tem um tamanho menor ou igual ao limiar. Se o bloco corrente tiver um tamanho menor ou igual ao limiar, o processo prosseguirá para a etapa E421. Do contrário, se o bloco corrente tiver um tamanho maior do que o limiar, o método prosseguirá para a etapa E43 para decodificar o bloco corrente de acordo com o primeiro modo de codificação.
[00144] O tamanho do bloco corrente pode ser lido a partir do fluxo de dados ou deduzido de uma partição do bloco de tamanho inicial ao qual pertence o bloco corrente . Tal partição é codificada no fluxo de dados ou deduzida da informação codificada para o bloco de tamanho inicial.
[00145] Na etapa E421, um item de informação indicando um modo de codificação para o bloco corrente é lido do fluxo de dados STR. De acordo com a concretização específica aqui descrita, este item de informação indica se o bloco corrente é codificado de acordo com o primeiro modo de codificação M1 ou de acordo com um segundo modo de codificação M2. De acordo com a concretização específica aqui descrita, o primeiro modo de codificação M1 corresponde à codificação de intrapredição convencional do bloco corrente , 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 residual em loop (ILR).
[00146] Em outras concretizações específicas, o primeiro modo de codificação pode corresponder a um modo de codificação que não o modo de codificação de INTRApredição (não descrito aqui).
[00147] A etapa E43 para decodificar o bloco corrente quando o bloco corrente for codificado de acordo com o primeiro modo de codificação M1 é descrita abaixo.
[00148] Na etapa E430, é determinada uma etapa de quantização . Por exemplo, a etapa de quantização é determinada a partir do parâmetro de quantização QP lido na etapa E401 ou similarmente ao que foi feito no codificador. Por exemplo, a etapa de quantização pode ser calculada usando o parâmetro de quantização QP lido na etapa E401. 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. Desse modo, no padrão HEVC, a etapa de quantização é determinada pela equação = levelScale[ QP%6 ] << (QP/6)) em que levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } para k = 0..5.
[00149] Em uma etapa E431, o modo de predição escolhido para codificar o bloco corrente é decodificado dos blocos vizinhos. Para esta finalidade, como foi feito no codificador, o modo de intrapredição escolhido para o bloco corrente é codificado usando os modos de intrapredição associados com os blocos vizinhos do bloco corrente .
[00150] A construção de ambas as listas MPM e não MPM é rigorosamente similar ao que foi feito durante a codificação. De acordo com o padrão HEVC, elementos de sintaxe do seguinte tipo são decodificados:
[00151] - um indicador binário que indica se o modo de predição a ser codificado para o bloco corrente está ou não na lista MPM,
[00152] - se o modo de predição do bloco corrente pertencer à lista MPM, um índice na lista MPM corresponderá ao modo de predição do bloco corrente codificado,
[00153] - se o modo de predição do bloco corrente não pertencer à lista MPM, um índice na lista não MPM corresponderá ao modo de predição do bloco corrente codificado.
[00154] O indicador binário e o índice de modo de predição são assim lidos para o bloco corrente a partir do fluxo de dados STR, para decodificar o modo de intrapredição do bloco corrente .
[00155] Em uma etapa E432, o decodificador constrói um bloco previsto P para o bloco corrente do modo de predição decodificado.
[00156] Em uma etapa E433, o decodificador decodifica os coeficientes do bloco quantizado RTQ a partir do fluxo de dados STR, por exemplo, usando a decodificação especificada no padrão HEVC.
[00157] Em uma etapa E434, o bloco decodificado RTQ é desquantizado, por exemplo, usando uma desquantização escalar da etapa de quantização . Isto produz o bloco de coeficientes desquantizados RTQD.
[00158] Em uma etapa E435, uma transformada de frequência inversa é aplicada ao bloco de coeficientes desquantizados RTQD a fim de produzir o bloco de resíduo de predição decodificado RTQDI. A transformada poderia ser uma transformada inversa do tipo DCT, por exemplo. É possível escolher a transformada a ser usada de um conjunto predeterminado de transformadas ETI decodificando um indicador do fluxo de dados STR.
[00159] Em uma etapa E436, o bloco corrente é reconstruído a partir do bloco previsto P obtido na etapa E432 e do bloco de resíduo decodificado RTQDI obtido na etapa E435, a fim de produzir o bloco corrente decodificado Xrec, por Xrec = P + RTQDI.
[00160] A etapa E44 para decodificar o bloco corrente quando o bloco corrente for codificado de acordo com o segundo modo de codificação M2 é descrito abaixo.
[00161] Em uma etapa E440, é determinado o preditor local PL usado para prever os pixels do bloco corrente . No caso em que apenas um preditor está disponível, o preditor local é, por exemplo, definido por padrão no nível do decodificador e nenhum elemento de sintaxe precisa ser lido do fluxo STR para determiná-lo.
[00162] No caso em que diversos preditores locais estão disponíveis, por exemplo, os preditores PL1-PL4 acima descritos, um elemento de sintaxe é decodificado a partir do fluxo de dados STR para identificar qual preditor local foi usado para prever o bloco corrente . O preditor local é assim determinado a partir do elemento de sintaxe decodificado.
[00163] Em uma etapa E441, é determinada a etapa de quantização , similarmente ao que foi feito no codificador.
[00164] Em uma etapa E442, o resíduo quantizado R1Q é decodificado a partir do fluxo de dados STR. Qualquer abordagem conhecida, tal como o método descrito em HEVC, pode ser usada para decodificar os coeficientes quantizados do resíduo de predição convencional.
[00165] Em uma etapa E443, o bloco de resíduo quantizado R1Q é desquantizado usando a etapa de quantização , a fim de produzir o bloco de resíduo desquantizado R1QD.
[00166] Em uma etapa E444, quando o bloco de resíduo desquantizado R1QD for obtido, o bloco previsto P1 será construído usando o preditor local PL determinado na etapa E440.
[00167] Na etapa E444, cada pixel do bloco corrente é previsto e reconstruído como segue:
[00168] - o pixel corrente X do bloco corrente é previsto pelo preditor selecionado PL, usando ou pixels fora do bloco e já reconstruídos, ou pixels previamente reconstruídos do bloco corrente , ou ambos, a fim de obter um valor previsto PRED. Em todos os casos, o preditor PL usa pixels previamente decodificados;
[00169] - o valor previsto decodificado P1(X) do pixel corrente Xé calculado acrescentando ao valor previsto PRED o valor desquantizado do resíduo de predição R1QD, tal que P1(X) = PRED + R1QD(X).
[00170] Estas etapas são implementadas para todos os pixels do bloco corrente , em uma ordem de digitalização que assegura que os pixels usados para a predição escolhida de PL1, ..., PL4 estejam disponíveis.
[00171] Por exemplo, a ordem de digitalização é a ordem lexicográfica (da esquerda para a direita, depois fileiras de cima para baixo).
[00172] De acordo com uma concretização específica da invenção, o bloco previsto P1 compreendendo os valores previstos decodificados P1(X) de cada pixel do bloco corrente forma aqui o bloco corrente decodificado Xrec.
[00173] De acordo com outra concretização específica da invenção, é considerado aqui que um resíduo de predição adicional foi codificado para o bloco corrente . Portanto, é necessário decodificar este resíduo de predição adicional a fim de reconstruir a versão decodificada do bloco corrente Xrec.
[00174] Por exemplo, esta outra concretização específica pode ser ativada ou não por padrão no nível do codificador e 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 um modo de codificação ILR se um resíduo de predição adicional é codificado. Ou ainda, um indicador pode ser codificado no fluxo de dados com a informação de nível de imagem ou a sequência de imagens para indicar para todos os blocos da imagem ou da sequência de imagens codificados de acordo com o modo de codificação ILR se um resíduo de predição adicional é codificado.
[00175] Quando um resíduo de predição adicional for codificado para o bloco corrente , em uma etapa E445, os coeficientes do resíduo de predição quantizado R2TQ são descodificados a partir do fluxo de dados STR, usando um meio adaptado àqueles implementados no codificador, por exemplo, o meio implementado em um decodificador HEVC.
[00176] Em uma etapa E446, o bloco de coeficientes quantizados R2TQ é desquantizado, por exemplo, usando uma desquantização escalar da etapa de quantização . Isto produz o bloco de coeficientes desquantizados R2TQD.
[00177] Em uma etapa E447, uma transformada de frequência inversa é aplicada ao bloco R2TQD a fim de produzir o bloco de resíduo de predição decodificado R2TQDI.
[00178] A transformada inversa poderia ser uma transformada inversa do tipo DCT, por exemplo.
[00179] É possível escolher a transformada a ser usada a partir de um conjunto predeterminado de transformadas ET2 e decodificar o item de informação que informa o decodificador da transformada a ser usada.
Neste caso, o conjunto ET2 é diferente do conjunto ET, a fim de adaptar- se à estatística específica do resíduo R2.
[00180] Em uma etapa E448, o bloco corrente é reconstruído acrescentando o bloco previsto P1 obtido na etapa E444 ao resíduo de predição decodificado R2TQDI.
[00181] Em uma etapa E45, é verificado se o bloco corrente é o último bloco da imagem a ser processada pelo método de decodificação, levando em conta a ordem de digitalização previamente definida. Caso positivo, o método prosseguirá para decodificar (etapa E47) a próxima imagem do vídeo, caso haja alguma. Caso negativo, em uma etapa E46, o bloco subsequente da imagem a ser processada será selecionado de acordo com a ordem de digitalização previamente definida da imagem e o método de decodificação prosseguirá para a etapa E42, o bloco selecionado se tornando o bloco corrente a ser processado.
[00182] A Figura 5 ilustra um exemplo de sinal STR que compreende dados codificados representativos de pelo menos um bloco de uma imagem de acordo com uma concretização específica da invenção. Por exemplo, o sinal STR pode compreender um valor limiar S que indica uma tamanho máximo de bloco até o qual o segundo modo de codificação M2 pode ser usado, conforme descrito acima. Este valor limiar S pode ser codificado no nível de imagem ou sequência de imagens quando da codificação de um vídeo.
[00183] Quando não for codificado no fluxo de dados STR, o limiar S será determinado de maneira similar no codificador e no decodificador.
[00184] Quando o bloco tiver um tamanho menor ou igual ao limiar S, o sinal STR compreenderá um indicador codificado TY que indica para o bloco um modo de codificação entre o primeiro modo de codificação e o segundo modo de codificação. Quando o indicador TY indicar que o bloco é codificado de acordo com o segundo modo de codificação, aqui o modo ILR, o sinal compreenderá então valores codificados de resíduos de predição quantizados R1Q e valores possivelmente codificados de resíduos de predição transformados quantizados R2TQ. Quando diversos preditores locais forem possíveis para o bloco corrente , o sinal também compreenderá um indicador codificado de preditor local PL.
[00185] Quando o indicador TY indicar que o bloco é codificado de acordo com o primeiro modo de codificação, aqui o modo de intrapredição convencional, o sinal então compreenderá valores codificados de resíduos de predição transformados quantizados RTQ, um indicador binário iMPM que indica se o modo de predição a ser codificado para o bloco corrente está ou não na lista MPM, e um índice idxMPM que indica o índice do modo de predição de bloco corrente na lista correspondente.
[00186] Quando o bloco tiver um tamanho acima do limiar S, o sinal compreenderá então dados codificados para o bloco que se origina da codificação do bloco de acordo com o primeiro modo de codificação.
[00187] A Figura 6 mostra a estrutura simplificada de um dispositivo de codificação COD adaptado para implementar o método de codificação de acordo com qualquer das concretizações específicas da invenção.
[00188] De acordo com a concretização específica da invenção, as etapas do método de codificação são implementadas por instruções de programa de computador. Para esta finalidade, o dispositivo de codificação COD tem a arquitetura padrão de um computador e notavelmente compreende 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 programa de computador PG compreende instruções para implementar as etapas do método de codificação, conforme descrito acima, quando o programa for executado pelo processador PROC.
[00189] 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 acima descrito, de acordo com as instruções do programa de computador PG.
[00190] A Figura 7 mostra a estrutura simplificada de um dispositivo de decodificação DEC adaptado para implementar o método de decodificação de acordo com qualquer das concretizações específicas da invenção.
[00191] De acordo com uma concretização específica da invenção, o dispositivo de decodificação DEC apresenta a arquitetura padrão de um computador e notavelmente compreende uma memória MEM0, uma unidade de processamento UT0, equipada, por exemplo, com um processador PROC0, e acionada pelo programa de computador PG0 armazenado na memória MEM0. O programa de computador PG0 compreende instruções para implementar as etapas do método de decodificação, conforme descrito acima, quando o programa for executado pelo processador PROC0.
[00192] 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 processamento UTO implementa as etapas do método de decodificação acima descrito, de acordo com as instruções do programa de computador PG0.

Claims (13)

REIVINDICAÇÕES
1. Método para decodificar um fluxo de dados codificado representativo de pelo menos uma imagem, a dita imagem sendo dividida em blocos, o método de decodificação sendo caracterizado pelo fato de que compreende, para pelo menos um bloco da imagem, referido como o bloco corrente : - determinar se o tamanho do bloco corrente é menor ou igual a um limiar predeterminado; - se o tamanho do bloco corrente for menor ou igual ao limiar predeterminado, o método irá compreender decodificar (E42) um item de informação que indica um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação e reconstruir o bloco corrente de acordo ao modo de codificação indicado pelo item de informação do modo de codificação decodificado, - se o tamanho do bloco corrente for maior do que o limiar predeterminado, reconstruir o bloco corrente de acordo com o primeiro modo de codificação, o primeiro modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é reconstruído (E436) usando uma transformada inversa de um resíduo de predição transformado decodificado para o bloco corrente , e o segundo modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é reconstruído (E444) por: - para cada pixel do bloco corrente : - obter uma predição do dito pixel a partir de outro pixel previamente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco previamente decodificado da imagem, - reconstruir o dito pixel a partir da predição do dito pixel obtido e um resíduo de predição decodificado associado com o dito pixel.
2. Método para codificar um fluxo de dados representativo de pelo menos uma imagem, a dita imagem sendo dividida em blocos, o método de codificação sendo caracterizado pelo fato de que compreende, para pelo menos um bloco da imagem, referido como o bloco corrente : - determinar se o tamanho do bloco corrente é menor ou igual a um limiar predeterminado; - se o tamanho do bloco corrente for menor ou igual ao limiar predeterminado, o método irá compreender codificar (E20) um item de informação que indica um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação, e codificar o bloco corrente de acordo com o modo de codificação indicado pelo item de informação do modo de codificação codificado, - se o tamanho do bloco corrente for maior do que o limiar predeterminado, codificar o bloco corrente de acordo com o primeiro modo de codificação, o primeiro modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é codificado (E21) usando uma transformada de um resíduo de predição do bloco corrente , o segundo modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é codificado (E22) por: - para cada pixel do bloco corrente : - obter (E222) uma predição do dito pixel a partir de outro pixel previamente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco previamente decodificado da imagem, - codificar (E223) um resíduo de predição associado com o dito pixel e obtido a partir da predição obtida para o dito pixel.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o tamanho do bloco corrente corresponde à maior largura do bloco corrente .
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que o limiar predeterminado é de 16 ou 32 pixels.
5. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o tamanho do bloco corrente corresponde ao número total de pixels no bloco corrente .
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que o limiar predeterminado é de 256 ou 512 pixels.
7. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que ainda compreende decodificar ou codificar o dito limiar predeterminado.
8. Dispositivo para decodificar um fluxo de dados codificado representativo de pelo menos uma imagem, a dita imagem sendo dividida em blocos, o dispositivo de codificação sendo caracterizado pelo fato de que compreende um processador (PROC0) configurado, para pelo menos um bloco da imagem, referida como o bloco corrente , para: - determinar se o tamanho do bloco corrente é menor ou igual a um limiar predeterminado, - se o tamanho do bloco corrente for menor ou igual ao limiar predeterminado, decodificar um item de informação que indica um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação, e reconstruir o bloco corrente de acordo com o modo de codificação indicado pelo item de informação do modo de codificação decodificado, - se o tamanho do bloco corrente for maior do que o limiar predeterminado, reconstruir o bloco corrente de acordo com o primeiro modo de codificação, o primeiro modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é reconstruído (E436) usando uma transformada inversa de um resíduo de predição transformado decodificado para o bloco corrente , o segundo modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é reconstruído (E444) por: - para cada pixel do bloco corrente : - obter uma predição do dito pixel a partir de outro pixel previamente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco de anteriormente decodificado da imagem, - reconstruir o dito pixel a partir da predição do dito pixel obtido e um resíduo de predição decodificado associado com o dito pixel.
9. Dispositivo para codificar um fluxo de dados representativo de pelo menos uma imagem, a dita imagem sendo dividida em blocos, o dispositivo de codificação sendo caracterizado pelo fato de que compreende um processador (PROC) configurado, para pelo menos um bloco da imagem, referido como o bloco corrente , apresentando um tamanho menor ou igual a um limiar predeterminado, para: - determinar se o tamanho do bloco corrente é menor ou igual a um limiar predeterminado, - se o tamanho do bloco corrente for menor ou igual ao limiar predeterminado, codificar um item de informação que indica um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação, e codificar o bloco corrente de acordo com o modo de codificação indicado pelo item de informação do modo de codificação codificado, - se o tamanho do bloco corrente for maior do que o limiar predeterminado, codificar o bloco corrente de acordo com o primeiro modo de codificação, o primeiro modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é codificado (E21) usando uma transformada de um resíduo de predição do bloco corrente , o segundo modo de codificação correspondendo a um modo de codificação de acordo com o qual o bloco corrente é codificado (E22) por: - para cada pixel do bloco corrente : - obter (E222) uma predição do dito pixel a partir de outro pixel anteriormente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco previamente decodificado da imagem, - codificar (E223) um resíduo de predição associado com o dito pixel e obtido a partir da predição obtida para o dito pixel.
10. Fluxo de dados codificado representativo de pelo menos uma imagem, a dita imagem sendo dividida em blocos, o fluxo de dados codificado sendo caracterizado pelo fato de que compreende, para pelo menos um bloco da imagem, referido como o bloco corrente , se o bloco corrente tiver um tamanho menor ou igual a um limiar predeterminado: - um item de informação que indica um modo de codificação do bloco corrente entre um primeiro modo de codificação e um segundo modo de codificação, - quando o modo de codificação do bloco corrente corresponder a um primeiro modo de codificação ou se o tamanho do bloco corrente tiver um tamanho maior do que o limiar predeterminado, um resíduo de predição transformado codificado,
- quando o modo de codificação do bloco corrente corresponder a um segundo modo de codificação e o tamanho do bloco corrente tiver um tamanho menor ou igual ao limiar predeterminado, um resíduo de predição codificado obtido por: - para cada pixel do bloco corrente ; -obter uma predição do dito pixel a partir de outro pixel previamente decodificado, o dito outro pixel previamente decodificado pertencendo ao dito bloco corrente ou a um bloco previamente decodificado da imagem, - obter um resíduo de predição associado com o dito pixel da predição obtida para o dito pixel.
11. Fluxo da dados, de acordo com a reivindicação 10, caracterizado pelo fato de que ainda compreende um valor representativo do dito limiar predeterminado codificado pelo menos para a dita imagem.
12. Programa de computador, caracterizado pelo fato de que compreende instruções para implementar o método de decodificação, como definido em qualquer das reivindicações 1 ou 3 a 7, ou o método de codificação, como definido em qualquer das reivindicações 2 a 7, onde o dito programa é executado por um processador.
13. Meio de dados legível por computador, caracterizado pelo fato de que compreende instruções de um programa de computador, como definido na reivindicação 12.
BR112021003632-6A 2018-09-21 2019-09-03 métodos e dispositivos para codificar e decodificar um fluxo de dados que representa pelo menos uma imagem BR112021003632A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1858571A FR3086485A1 (fr) 2018-09-21 2018-09-21 Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image.
FR1858571 2018-09-21
PCT/FR2019/052028 WO2020058594A1 (fr) 2018-09-21 2019-09-03 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
BR112021003632A2 true BR112021003632A2 (pt) 2021-05-18

Family

ID=65494289

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021003632-6A BR112021003632A2 (pt) 2018-09-21 2019-09-03 métodos e dispositivos para codificar e decodificar um fluxo de dados que representa pelo menos uma imagem

Country Status (8)

Country Link
US (2) US11616958B2 (pt)
EP (1) EP3854090A1 (pt)
JP (1) JP2022501909A (pt)
KR (1) KR20210062635A (pt)
CN (1) CN112740691A (pt)
BR (1) BR112021003632A2 (pt)
FR (1) FR3086485A1 (pt)
WO (1) WO2020058594A1 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11470329B2 (en) 2018-12-26 2022-10-11 Tencent America LLC Method and apparatus for video coding
EP3734972A1 (en) * 2019-05-03 2020-11-04 InterDigital VC Holdings, Inc. High level syntax simplified video coding tool set for small blocks

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9055305B2 (en) * 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
EP2636218B1 (en) * 2010-11-04 2021-06-30 GE Video Compression, LLC Picture coding supporting block merging and skip mode
US9787982B2 (en) * 2011-09-12 2017-10-10 Qualcomm Incorporated Non-square transform units and prediction units in video coding
GB2551088B (en) * 2011-10-17 2018-09-19 Kt Corp Method and apparatus for encoding/decoding image
US9253508B2 (en) 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding
US9344722B2 (en) * 2011-11-18 2016-05-17 Futurewei Technologies, Inc. Scanning of prediction residuals in high efficiency video coding
US9426466B2 (en) * 2012-06-22 2016-08-23 Qualcomm Incorporated Transform skip mode
US9497465B2 (en) * 2012-06-29 2016-11-15 Electronics And Telecommunications Research Institute Method and device for encoding/decoding images
US9716894B2 (en) * 2013-03-25 2017-07-25 Qualcomm Incorporated Intra prediction modes for lossy coding when transform is skipped
US10097837B2 (en) * 2014-10-10 2018-10-09 Qualcomm Incorporated Palette run hiding in palette-based video coding
CN105872539B (zh) * 2015-02-08 2020-01-14 同济大学 图像编码方法和装置及图像解码方法和装置
FR3038196A1 (fr) * 2015-06-29 2016-12-30 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
US20170150156A1 (en) * 2015-11-25 2017-05-25 Qualcomm Incorporated Illumination compensation with non-square predictive blocks in video coding
US10511859B2 (en) * 2016-02-04 2019-12-17 Mediatek Inc. Method and apparatus for image compression without residue signaling
US10880552B2 (en) * 2016-09-28 2020-12-29 Lg Electronics Inc. Method and apparatus for performing optimal prediction based on weight index
CN108347602B (zh) * 2017-01-22 2021-07-30 上海澜至半导体有限公司 用于无损压缩视频数据的方法和装置
WO2020264529A1 (en) * 2019-06-28 2020-12-30 Beijing Dajia Internet Information Technology Co., Ltd. Lossless coding modes for video coding
CN114208204A (zh) * 2019-09-23 2022-03-18 交互数字Vc控股法国公司 上下文编解码二进制位(ccb)计数方法的统一

Also Published As

Publication number Publication date
EP3854090A1 (fr) 2021-07-28
CN112740691A (zh) 2021-04-30
JP2022501909A (ja) 2022-01-06
FR3086485A1 (fr) 2020-03-27
US20210377541A1 (en) 2021-12-02
KR20210062635A (ko) 2021-05-31
WO2020058594A1 (fr) 2020-03-26
US11616958B2 (en) 2023-03-28
US20230199193A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
TWI761332B (zh) 從用於視訊寫碼之固定濾波器預測濾波器係數
KR100908282B1 (ko) 단계적 가역 비디오 부호화 방법, 단계적 가역 비디오 복호 방법, 단계적 가역 비디오 부호화 장치, 단계적 가역 비디오 복호 장치, 이들의 프로그램의 기록 매체
ES2883653T3 (es) Método y soporte de registro que almacena un flujo de datos de imágenes codificadas
ES2911912T3 (es) Procedimiento de descodificación de imágenes
BR122020023544B1 (pt) Método e mídia de gravação não transitória legível por computador para decodificar vídeo
JP6459761B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
BR112021003632A2 (pt) métodos e dispositivos para codificar e decodificar um fluxo de dados que representa pelo menos uma imagem
BR112016011972B1 (pt) Processo de codificação de pelo menos uma imagem cortada em blocos e dispositivo de decodificação de um sinal de dados representativo de pelo menos uma imagem cortada em blocos
JP2024056766A (ja) 少なくとも1つの画像を表すデータストリームをコーディングおよびデコーディングするための方法および装置
US20230067360A1 (en) Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method, and program
JP7332385B2 (ja) イントラ予測装置、画像符号化装置、画像復号装置、及びプログラム
JP2018064189A (ja) 符号化装置、復号装置及びプログラム
JP6992825B2 (ja) 映像符号化装置、映像符号化方法、映像復号装置、映像復号方法、及び映像符号化システム
BR112021003210A2 (pt) métodos e dispositivos para codificar e decodificar uma sequência de dados representando pelo menos uma imagem
CN112740690B (zh) 用于编码和解码代表至少一个图像的数据流的方法和设备
BR112021014787A2 (pt) Métodos e dispositivos para codificar e decodificar um fluxo de dados representante de pelo menos uma imagem
JP7466469B2 (ja) 少なくとも1つの画像を表すデータストリームをコーディングおよび復号するための方法およびデバイス
RU2782400C2 (ru) Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы
CN118175323A (zh) 用于编码和解码代表至少一个图像的数据流的方法和设备
BR122023022608A2 (pt) Aparelho de decodificação para decodificação de imagens, aparelho de codificação de imagem para codificação de imagens e aparelho para transmissão de dados para uma informação de imagem