BR112021005561A2 - dispositivo de processamento de imagem e método para realizar desblocagem otimizada de qualidade - Google Patents

dispositivo de processamento de imagem e método para realizar desblocagem otimizada de qualidade Download PDF

Info

Publication number
BR112021005561A2
BR112021005561A2 BR112021005561-4A BR112021005561A BR112021005561A2 BR 112021005561 A2 BR112021005561 A2 BR 112021005561A2 BR 112021005561 A BR112021005561 A BR 112021005561A BR 112021005561 A2 BR112021005561 A2 BR 112021005561A2
Authority
BR
Brazil
Prior art keywords
pixel
value
pixel value
block
clipping
Prior art date
Application number
BR112021005561-4A
Other languages
English (en)
Inventor
Anand Meher KOTRA
Semih ESENLIK
Biao Wang
Han Gao
Zhijie ZHAO
Jianle Chen
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021005561A2 publication Critical patent/BR112021005561A2/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

DISPOSITIVO DE PROCESSAMENTO DE IMAGEM E MÉTODO PARA REALIZAR DESBLOCAGEM OTIMIZADA DE QUALIDADE. Um dispositivo de processamento de imagem (501) para uso em um codificador de imagem e/ou em um decodificador de imagem, para desblocar uma borda de bloco entre um primeiro bloco e um segundo bloco de uma imagem codificada com um código de bloco, é fornecido. O dispositivo de processamento de imagem (501) compreende um filtro (502) para filtrar a borda de bloco, configurado para, para pelo menos alguns dos pixels a serem filtrados, dentro de uma faixa de desblocagem a partir da borda de bloco, a faixa de desblocagem sendo perpendicular à borda de bloco, determinar um valor de pixel filtrado a partir de um valor de pixel original do pixel e de pelo menos um valor de pixel adicional, determinar um valor de recorte do pixel, dependente de uma distância do pixel a partir da borda de bloco, e recortar o valor de pixel filtrado, usando o valor de recorte resultando em um valor de pixel desblocado.

Description

DISPOSITIVO DE PROCESSAMENTO DE IMAGEM E MÉTODO PARA REALIZAR DESBLOCAGEM OTIMIZADA DE QUALIDADE CAMPO TÉCNICO
[001] Modalidades da presente divulgação dizem respeito ao campo de processamento de imagem, por exemplo, codificação de imagem estática e/ou de imagem de vídeo. Particularmente, a divulgação diz respeito a melhoramentos do filtro de desblocagem.
ANTECEDENTES
[002] Modalidades da presente divulgação dizem respeito ao campo de processamento de imagem, por exemplo, codificação de imagem estática e/ou de imagem de vídeo. Particularmente, a divulgação diz respeito a melhoramentos do filtro de desblocagem.
[003] Esquemas de codificação de vídeo tais como H.264/AVC e HEVC são projetados junto com o princípio bem- sucedido de codificação de vídeo híbrida baseada em blocos. Usando este princípio, uma imagem é primeiro particionada em blocos e então cada bloco é predito ao usar intra predição ou inter imagem. Estes blocos são codificados relativamente a partir dos blocos vizinhos e se aproximam do sinal original com algum grau de similaridade. Uma vez que blocos codificados somente se aproximam do sinal original, a diferença entre as aproximações pode causar descontinuidades nos limites de predição e de bloco de transformada. Estas descontinuidades são atenuadas pelo filtro de desblocagem. HEVC substitui a estrutura de macrobloco do H.264/AVC pelo conceito de unidade de árvore de codificação (CTU) de tamanho máximo de 64x64 pixels. A CTU também pode ser particionada em um esquema de decomposição de árvore quaternária em unidades de codificação (CU) menores, as quais podem ser subdivididas para um tamanho mínimo de 8 x 8 pixels. HEVC também introduz os conceitos de blocos de predição (PB) e blocos de transformada (TB).
[004] Em HEVC, dois filtros são definidos em filtro de desblocagem: o filtro normal e o filtro forte. O filtro normal modifica no máximo duas amostras em ambos os lados de uma borda. O filtro forte três amostras adicionais ao longo da borda em comparação com um limite. Se todas essas verificações forem verdadeiras então o filtro forte é aplicado. O filtro forte tem um efeito de suavização mais intensivo para amostras ao longo da borda e pode modificar no máximo três amostras em ambos os lados de uma borda.
[005] ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) estão estudando a codec de vídeo de próxima geração: Codificação de Vídeo Versátil (VVC). Este novo padrão de codec de vídeo visa uma capacidade de compressão que excede significativamente aquela do padrão HEVC atual (incluindo suas extensões atuais e extensões de curto prazo para codificação de conteúdo de tela e codificação de alta faixa dinâmica). Os grupos estão trabalhando conjuntamente nesta atividade de exploração em um esforço de colaboração conjunta conhecido como a Equipe Conjunta de Exploração de Vídeo (JVET) para avaliar projetos de tecnologia de compressão propostos por seus especialistas nesta área.
[006] O Modelo de Teste VVC (VTM) descreve os recursos que estão em estudo de modelo de teste coordenado pela Equipe Conjunta de Exploração de Vídeo (JVET) do ITU-T VCEG e ISO/IEC MPEG como potencial tecnologia de codificação de vídeo aprimorada além das capacidades do HEVC. O filtro de desblocagem usado atualmente em VTM 2.0 é o mesmo em HEVC.
[007] Atualmente, a desblocagem de qualquer forma frequentemente resulta em uma suavização excessiva ou embaçamento, especialmente de regiões não diretamente ao lado das bordas de bloco. Isto resulta em uma qualidade de desblocagem abaixo da ideal.
SUMÁRIO
[008] Por causa dos desafios mencionados acima, a presente divulgação visa melhorar a filtragem de desblocagem convencional. A presente divulgação tem como objetivo fornecer um dispositivo de processamento de imagem que possa realizar filtragem de desblocagem com qualidade aumentada. Adicionalmente, a desblocagem deve ser eficiente e precisa.
[009] Modalidades da divulgação são definidas pelos recursos das reivindicações independentes, e implementações vantajosas adicionais das modalidades pelos recursos das reivindicações dependentes.
[010] De acordo com uma primeira modalidade da divulgação, um dispositivo de processamento de imagem para uso em um codificador de imagem e/ou em um decodificador de imagem, para desblocar uma borda de bloco entre um primeiro bloco de codificação e um segundo bloco de codificação de uma imagem codificada com um código de bloco, é fornecido. O dispositivo de processamento de imagem compreende um filtro para filtrar a borda de bloco, configurado para, para pelo menos alguns dos pixels a serem filtrados, dentro de uma faixa de desblocagem a partir da borda de bloco, a faixa de desblocagem sendo perpendicular à borda de bloco, determinar um valor de pixel filtrado a partir de um valor de pixel original do pixel e de pelo menos um valor de pixel adicional, determinar um valor de recorte do pixel, dependente de uma distância do pixel a partir da borda de bloco, e recortar o valor de pixel filtrado, usando o valor de recorte resultando em um valor de pixel desblocado. Isto reduz o efeito de suavização excessiva ou embaçamento, aumentando significativamente a qualidade de desblocagem. O dispositivo de processamento de imagem pode incluir conjunto de circuitos de processamento para realizar as operações descritas nesta divulgação. O conjunto de circuitos de processamento pode compreender hardware e software. O conjunto de circuitos de processamento pode compreender, por exemplo, um ou mais processadores e uma memória não volátil carregando código de programa para execução pelo um ou mais processadores. O código de programa quando executado pelo um ou mais processadores orienta o dispositivo de processamento de imagem para realizar as respectivas operações.
[011] Vantajosamente, o valor de recorte é uma quantidade permitida máxima de mudança entre o valor de pixel original e o valor de pixel desblocado. Isto limita adicionalmente a suavização excessiva ou embaçamento.
[012] Também vantajosamente, o recorte do valor de pixel filtrado, usando o valor de recorte, resultando no valor de pixel desblocado, compreende estabelecer o valor de pixel desblocado para o valor de pixel filtrado, se o valor absoluto da diferença entre o valor de pixel filtrado e o valor de pixel desblocado não exceder o valor de recorte do pixel, estabelecer o valor de pixel desblocado para o valor de pixel original mais o valor de recorte do pixel, se o valor de pixel filtrado exceder o valor de pixel original mais o valor de recorte, e estabelecer o valor de pixel desblocado para o valor de pixel original menos o valor de recorte do pixel, se o valor de pixel filtrado for menor que o valor de pixel original menos o valor de recorte. Isto aumenta adicionalmente a qualidade de desblocagem.
[013] Vantajosamente, o filtro é adaptado para determinar o valor de recorte do pixel dependente de uma distância do pixel a partir da borda de bloco, ao usar uma função ou uma tabela de pesquisa. Isto permite um estabelecimento muito preciso do valor de recorte e desse modo ainda permite um aumento adicional da qualidade de desblocagem.
[014] Também vantajosamente, o filtro é adaptado para determinar o valor de recorte do pixel dependente de uma distância do pixel a partir da borda de bloco, ao usar uma função, a qual diminui uniformemente com o aumento da distância do pixel a partir da borda de bloco. Isto reduz significativamente o efeito de suavização excessiva ou embaçamento com distância crescente a partir da borda de bloco, e aumenta desse modo a qualidade de desblocagem.
[015] Vantajosamente, a função é uma função exponencial. Isto resulta em uma qualidade de desblocagem particularmente alta.
[016] Preferivelmente, a função então é tc’ = tc + (tc >> i), em que tc’ é o valor de recorte, em que tc é um valor constante, em que i é a distância do pixel a partir da borda de bloco (403, 800), e em que >> significa um deslocamento para a direita. Isto permite um cálculo simples da função exponencial.
[017] Uma outra função exponencial alternativa que pode ser usada é como a seguir: tc’ = ((2 * tc) >> i), em que tc’ é o valor de recorte, em que tc é um valor constante, em que i é a distância do pixel a partir da borda de bloco (403, 800), e em que >> significa um deslocamento para a direita. Isto permite um cálculo simples da função exponencial.
[018] Alternativamente, a função é uma função linear. Isto permite um aumento em qualidade de desblocagem, enquanto que mantendo ao mesmo tempo a complexidade computacional em um mínimo.
[019] Vantajosamente, a função então é tc’ = tc + (tc - (i * x), em que tc’ é o valor de recorte, em que tc é um valor constante, em que i é a distância do pixel a partir da borda de bloco (403, 800), e em que x é um valor constante. Isto permite um cálculo particularmente simples da função linear.
[020] Preferivelmente, o filtro é adaptado para, para cada pixel a ser filtrado, dentro da faixa de desblocagem a partir da borda de bloco, a faixa de desblocagem sendo perpendicular à borda de bloco, determinar o valor de pixel filtrado a partir do valor de pixel original do pixel e do pelo menos um valor de pixel adicional, determinar o valor de recorte do pixel dependente da distância do pixel a partir da borda de bloco, e recortar o valor de pixel filtrado, usando o valor de recorte, resultando no valor de pixel desblocado. Ao usar o mesmo cálculo para cada pixel a ser filtrado uma implementação particularmente simples é alcançada.
[021] Alternativamente, o filtro é adaptado para determinar se uma borda de bloco precisa ser filtrada com base em um número de linhas de pixels de decisão sendo menor que um número de linhas de pixels no bloco circundando a borda de bloco, no caso de uma borda de bloco vertical, e em um número de fileiras de pixels de decisão sendo menor que um número de fileiras de pixels no bloco circundando a borda de bloco, no caso de uma borda de bloco horizontal. O filtro é então adaptado para, para cada pixel a ser filtrado, não em uma fileira de pixels de decisão ou linha de pixels de decisão, dentro de uma faixa de desblocagem a partir da borda de bloco, a faixa de desblocagem sendo perpendicular à borda de bloco, determinar o valor de pixel filtrado a partir do valor de pixel original do pixel e do pelo menos um valor de pixel adicional, determinar o valor de recorte do pixel dependente da distância do pixel a partir da borda de bloco, recortar o valor de pixel filtrado, usando o valor de recorte, resultando no valor de pixel desblocado. O filtro, além disso, é adaptado para, para cada pixel a ser filtrado, em uma fileira de pixels de decisão ou linha de pixels de decisão, dentro de uma faixa de desblocagem a partir da borda de bloco, a faixa de desblocagem sendo perpendicular à borda de bloco, determinar o valor de pixel de filtro a partir do valor de pixel original do pixel e do pelo menos um valor de pixel adicional, e recortar o valor de pixel filtrado, usando um valor de recorte constante, resultando no valor de pixel desblocado. Isto significa que pixels dentro das fileiras e linhas de pixels de decisão são filtrados usando um valor de recorte fixado, enquanto que ao mesmo tempo valores de pixels não nas fileiras ou linhas de decisão são filtrados usando um valor de recorte dependente de faixa. Isto aumenta adicionalmente a qualidade de desblocagem com o custo de uma complexidade computacional aumentada.
[022] Vantajosamente, o filtro tem um comprimento de derivação de filtro de 1, ou pelo menos dois, ou pelo menos três, ou pelo menos quatro, ou pelo menos cinco, ou pelo menos seis, ou pelo menos sete, ou pelo menos oito, ou pelo menos nove, ou pelo menos dez, ou pelo menos onze, ou pelo menos doze, ou pelo menos treze, ou pelo menos quatorze, ou pelo menos quinze ou pelo menos dezesseis pixels. Isto permite uma aplicação da divulgação em uma grande variedade de projetos de filtros diferentes.
[023] De acordo com um segundo aspecto da divulgação, um codificador para codificar uma imagem compreendendo um dispositivo de processamento de imagem de acordo com o primeiro aspecto da divulgação é fornecido.
[024] De acordo com um terceiro aspecto da divulgação, um decodificador para decodificar uma imagem, compreendendo um dispositivo de processamento de imagem, de acordo com o primeiro aspecto da divulgação é fornecido.
[025] De acordo com um quarto aspecto da divulgação, um método de desblocagem para desblocar uma borda de bloco entre um primeiro bloco de codificação e um segundo bloco de codificação de uma imagem codificada com um código de bloco é fornecido. O método compreende, para pelo menos alguns dos pixels a serem filtrados, dentro de uma faixa de desblocagem a partir da borda de bloco, a faixa de desblocagem sendo perpendicular à borda de bloco, determinar um valor de pixel filtrado a partir de um valor de pixel original do pixel e de pelo menos um valor de pixel adicional, determinar um valor de recorte do pixel, dependente de uma distância do pixel a partir da borda de bloco, e recortar o valor de pixel filtrado, usando o valor de recorte, resultando em um valor de pixel desblocado. Isto reduz o efeito de suavização excessiva ou embaçamento, aumentando significativamente a qualidade de desblocagem.
[026] De acordo com um quinto aspecto da divulgação, um método de codificação para codificar uma imagem, compreendendo um método de desblocagem do quarto aspecto da divulgação, é fornecido.
[027] De acordo com um sexto aspecto da divulgação, um método de decodificação para decodificar uma imagem, compreendendo um método de desblocagem de acordo com o quarto aspecto da divulgação, é fornecido.
[028] Finalmente, de acordo com um sétimo aspecto da divulgação, um programa de computador com um código de programa para realizar o método de acordo com o quarto aspecto, o quinto aspecto ou o sexto aspecto da divulgação, quando o programa de computador é executado em um computador, é fornecido.
[029] Detalhes de uma ou mais modalidades são expostos nos desenhos anexos e na descrição a seguir. Outros recursos, objetivos e vantagens estarão aparentes a partir da descrição, desenhos e reivindicações.
DESCRIÇÃO RESUMIDA DOS DESENHOS
[030] No exposto a seguir modalidades da divulgação são descritas com mais detalhes com referência para as figuras anexas e desenhos, nos quais: a figura 1 é um diagrama de blocos mostrando um exemplo de um codificador de vídeo configurado para implementar modalidades da divulgação; a figura 2 é um diagrama de blocos mostrando uma estrutura de exemplo de um decodificador de vídeo configurado para implementar modalidades da divulgação; a figura 3 é um diagrama de blocos mostrando um exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da divulgação; a figura 4 mostra dois blocos de codificação exemplares; a figura 5 mostra uma modalidade do inventivo dispositivo de processamento de imagem de acordo com o primeiro aspecto da divulgação; a figura 6 mostra uma modalidade do inventivo codificador de acordo com o segundo aspecto da divulgação; a figura 7 mostra uma modalidade do inventivo decodificador de acordo com o terceiro aspecto da divulgação; a figura 8 mostra uma borda de bloco exemplar com de acordo valores de pixels antes da filtragem de desblocagem, e a figura 9 mostra um fluxograma de uma modalidade do método de processamento de imagem de acordo com o quarto aspecto da divulgação.
[031] No exposto a seguir, sinais de referência idênticos se referem a recursos idênticos ou pelo menos equivalentes funcionalmente. Em parte, sinais de referência diferentes se referindo às mesmas entidades são usados nas figuras diferentes.
DESCRIÇÃO DETALHADA
[032] Primeiro vamos demonstrar o conceito geral de codificação de imagem juntamente com as figuras 1 - 3. Juntamente com a figura 4 e a figura 8, uma desvantagem de um filtro de desblocagem convencional é mostrada. Com referência para as figuras 5 - 7, a construção e função de modalidades diferentes do aparelho inventivo são mostradas e descritas. Finalmente, com relação à figura 9, uma modalidade do método inventivo é mostrada e descrita. Entidades e números de referência similares nas figuras diferentes são omitidos parcialmente.
[033] Na descrição seguinte é feita referência para as figuras anexas, as quais formam parte da divulgação, e que mostram, a título de ilustração, aspectos específicos de modalidades da divulgação ou aspectos específicos nos quais modalidades da presente divulgação podem ser usadas. É entendido que modalidades da divulgação podem ser usadas em outros aspectos e compreendem mudanças estruturais ou lógicas não representadas nas figuras. A descrição detalhada a seguir, portanto, não é para ser considerada com um sentido de limitação, e o escopo da presente divulgação é definido pelas reivindicações anexas.
[034] Por exemplo, é entendido que uma divulgação em conexão com um método descrito também pode se manter verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma ou uma pluralidade de etapas de método específicas são descritas, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar a etapa de método ou pluralidade de etapas de método descrita (por exemplo, uma unidade realizando a uma ou pluralidade de etapas, ou cada uma de uma pluralidade de unidades realizando uma ou mais da pluralidade de etapas), mesmo se tal uma ou mais unidades não estiverem descritas ou ilustradas explicitamente nas figuras. Por outro lado, por exemplo, se um aparelho específico for descrito com base em uma ou em uma pluralidade de unidades, por exemplo, unidades funcionais, um método correspondente pode incluir uma etapa para realizar a funcionalidade da uma ou da pluralidade de unidades (por exemplo, uma etapa realizando a funcionalidade da uma ou da pluralidade de unidades, ou cada uma de uma pluralidade de etapas realizando a funcionalidade de uma ou mais da pluralidade de unidades), mesmo se tal uma ou pluralidade de etapas não estiver descrita ou ilustrada explicitamente nas figuras. Adicionalmente, é entendido que os recursos das várias modalidades e/ou aspectos exemplares descritos neste documento podem ser combinados uns com os outros, a não ser que notado especificamente de outro modo.
[035] Codificação de vídeo tipicamente se refere ao processamento de uma sequência de imagens, as quais formam o vídeo ou sequência de vídeo. Em vez de o termo cena os termos quadro ou imagem podem ser usados como sinônimos no campo de codificação de vídeo. A codificação de vídeo compreende duas partes, codificação de vídeo e decodificação de vídeo. A codificação de vídeo é realizada no lado de fonte, tipicamente compreendendo processar (por exemplo, por compressão) as imagens de vídeo originais para reduzir a quantidade de dados exigidos para representar as imagens de vídeo (para armazenamento e/ou transmissão mais eficiente). Decodificação de vídeo é realizada no lado de destino e tipicamente compreende o processamento inverso comparado ao do codificador para reconstruir as imagens de vídeo. Modalidades se referindo a “codificação” de imagens de vídeo (ou imagens de uma maneira geral, tal como será explicado mais tarde) devem ser entendidas como se referindo tanto a “codificação” quanto a “decodificação” de imagens de vídeo. A combinação da parte de codificação e a parte de decodificação é também referida como CODEC (Codificação e Decodificação).
[036] Em caso de codificação de vídeo sem perda, as imagens de vídeo originais podem ser reconstruídas, isto é, as imagens de vídeo reconstruídas têm a mesma qualidade das imagens de vídeo originais (assumindo nenhuma perda de transmissão ou outra perda de dados durante armazenamento ou transmissão). Em caso de codificação de vídeo com perda, compressão adicional, por exemplo, por meio de quantização, é realizada, para reduzir a quantidade de dados representando as imagens de vídeo, os quais não podem ser completamente reconstruídos no decodificador, isto é, a qualidade das imagens de vídeo reconstruídas é inferior ou pior comparada à qualidade das imagens de vídeo originais.
[037] Vários padrões de codificação de vídeo desde H.261 pertencem ao grupo de “codecs de vídeo híbridos com perda” (isto é, combinam predição espacial e temporal no domínio da amostra e codificação de transformação 2D para aplicar quantização no domínio da transformada). Cada imagem de uma sequência de vídeo tipicamente é particionada em um conjunto de blocos não se sobrepondo e a codificação tipicamente é realizada em um nível de bloco. Em outras palavras, no codificador o vídeo tipicamente é processado, isto é,
codificado, em um nível de bloco (bloco de vídeo), por exemplo, ao usar predição espacial (intra imagem) e predição temporal (inter imagens) para gerar um bloco de predição, subtrair o bloco de predição do bloco atual (bloco processado atualmente/a ser processado) para obter um bloco residual, transformar o bloco residual e quantizar o bloco residual no domínio da transformada para reduzir a quantidade de dados a ser transmitidos (compressão), enquanto que no decodificador o processamento inverso comparado ao do codificador é aplicado ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica o laço de processamento de decodificador de tal maneira que ambos gerarão predições idênticas (por exemplo, intra e inter predições) e/ou reconstruções para processar, isto é, codificar, os blocos subsequentes.
[038] Como processamento de imagem de vídeo (também referido como processamento de imagem em movimento) e processamento de imagem estática (o termo processamento compreendendo codificação) compartilham muitos conceitos e tecnologias ou ferramentas, no exposto a seguir, o termo “imagem” é usado para se referir a uma imagem de vídeo de uma sequência de vídeo (tal como explicado anteriormente) e/ou a uma imagem estática para evitar repetições e distinções desnecessárias entre imagens de vídeo e imagens estáticas, onde não necessário. No caso em que a descrição se refere às imagens estáticas (ou imagens paradas) somente, o termo “imagem estática” deve ser usado.
[039] No exposto a seguir modalidades de um codificador 100, um decodificador 200 e de um sistema de codificação 300 são descritas com base nas figuras 1 a 3 antes de descrever modalidades da divulgação com mais detalhes com base nas figuras 4-9.
[040] A figura 3 é um diagrama de blocos conceitual ou esquemático ilustrando uma modalidade de um sistema de codificação 300, por exemplo, um sistema de codificação de imagem 300, em que o sistema de codificação 300 compreende um dispositivo de origem 310 configurado para fornecer os dados codificados 330, por exemplo, uma imagem codificada 330, por exemplo, para um dispositivo de destino 320 para decodificar os dados codificados 330.
[041] O dispositivo de origem 310 compreende um codificador 100 ou unidade de codificação 100, e adicionalmente, isto é, opcionalmente, pode compreender uma fonte de imagem 312, uma unidade de pré-processamento 314, por exemplo, uma unidade de pré-processamento de imagem 314 e uma interface de comunicação ou unidade de comunicação
318.
[042] A fonte de imagem 312 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, para capturar uma imagem de mundo real, e/ou qualquer tipo de dispositivo de geração de imagem, por exemplo, um processador de gráficos de computador para gerar uma imagem animada de computador, ou qualquer tipo de dispositivo para obter e/ou fornecer uma imagem de mundo real, uma imagem animada de computador (por exemplo, um conteúdo de tela, uma imagem de realidade virtual (VR)) e/ou qualquer combinação das mesmas (por exemplo, uma imagem de realidade aumentada (AR)). No exposto a seguir, todos estes tipos de imagens e qualquer outro tipo de imagem serão referidos como “cena” ou “imagem”, a não ser que descrito especificamente de outro modo, contudo as explicações anteriores com relação ao termo “imagem” cobrindo “imagens de vídeo” e “imagens estáticas” ainda se mantêm como verdadeiras, a não ser que especificado explicitamente de modo diferente.
[043] Uma imagem (digital) é ou pode ser considerada como um conjunto ou matriz bidimensional de amostras com valores de intensidades. Uma amostra no conjunto também pode ser referida como pixel (forma abreviada de elemento de imagem) ou um pel. O número de amostras na direção (ou eixo) horizontal e vertical do conjunto ou imagem define o tamanho e/ou resolução da imagem. Para representação de cor, tipicamente três componentes de cor são empregados, isto é, a imagem pode ser representada ou incluir três conjuntos de amostras. No formato ou espaço de cores RGB uma imagem compreende um conjunto de amostras de vermelho, verde e azul correspondente. Entretanto, em codificação de vídeo cada pixel tipicamente é representado em um formato ou espaço de cores de luminância/crominância, por exemplo, YCbCr, o qual compreende um componente de luminância indicado por Y (algumas vezes também L é usado em vez de Y) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou resumidamente luma) Y representa o brilho ou intensidade de nível de cinza (por exemplo, tal como em uma imagem de escala de cinza), enquanto que os dois componentes de crominância (ou resumidamente croma) Cb e Cr representam os componentes de informação de cromaticidade ou de cor. Portanto, uma imagem no formato YCbCr compreende um conjunto de amostras de luminância de valores de amostras de luminância (Y), e dois conjuntos de amostras de crominância de valores de crominância (Cb e Cr). Imagens no formato RGB podem ser convertidas ou transformadas para o formato YCbCr e vice-versa, e o processo é também conhecido como transformação ou conversão de cor. Se uma imagem for monocromática, a imagem pode compreender somente um conjunto de amostras de luminância.
[044] A fonte de imagem 312, por exemplo, pode ser uma câmera para capturar uma imagem, uma memória, por exemplo, uma memória de imagem, compreendendo ou armazenando uma imagem capturada ou gerada anteriormente, e/ou qualquer tipo de interface (interna ou externa) para obter ou receber uma imagem. A câmera, por exemplo, pode ser uma câmera local ou integrada ao dispositivo de origem, a memória pode ser uma memória local ou integrada, por exemplo, integrada ao dispositivo de origem. A interface, por exemplo, pode ser uma interface externa para receber uma imagem de uma fonte de vídeo externa, por exemplo, um dispositivo externo de captura de imagem tal como uma câmera, uma memória externa, ou um dispositivo de geração de imagem externo, por exemplo, um processador de gráficos de computador externo, computador ou servidor. A interface pode ser qualquer tipo de interface, por exemplo, uma interface com fio ou sem fio, uma interface ótica, de acordo com qualquer protocolo de interface proprietário ou padronizado. A interface para obter os dados de imagem 312 pode ser a mesma interface de comunicação 318 ou uma parte dela.
[045] Em distinção à unidade de pré-processamento 314 e ao processamento realizado pela unidade de pré-processamento 314, a imagem ou os dados de imagem 313 também podem ser referidos como a imagem bruta ou os dados de imagem bruta
313.
[046] A unidade de pré-processamento 314 é configurada para receber os dados de imagem (bruta) 313 e para realizar pré-processamento nos dados de imagem 313 para obter uma imagem pré-processada 315 ou os dados de imagem pré- processados 315. Pré-processamento realizado pela unidade de pré-processamento 314 pode compreender, por exemplo, retoque (“trimming”), conversão de formato de cores (por exemplo, de RGB para YCbCr), correção de cor, ou remoção de ruído.
[047] O codificador 100 é configurado para receber os dados de imagem pré-processados 315 e fornecer os dados de imagem codificados 171 (detalhes adicionais serão descritos, por exemplo, com base na figura 1).
[048] A interface de comunicação 318 do dispositivo de origem 310 pode ser configurada para receber os dados de imagem codificados 171 e para transmitir os mesmos diretamente para outro dispositivo, por exemplo, para o dispositivo de destino 320 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta, ou para processar os dados de imagem codificados 171 antes de armazenar os dados codificados 330 e/ou transmitir os dados codificados 330 para outro dispositivo respectivamente, por exemplo, para o dispositivo de destino 320 ou qualquer outro dispositivo para decodificação ou armazenamento.
[049] O dispositivo de destino 320 compreende um decodificador 200 ou unidade de decodificação 200, e adicionalmente, isto é, opcionalmente, pode compreender uma interface de comunicação ou unidade de comunicação 322, uma unidade de pós-processamento 326 e um dispositivo de exibição
328.
[050] A interface de comunicação 322 do dispositivo de destino 320 é configurada para receber os dados de imagem codificados 171 ou os dados codificados 330, por exemplo, diretamente do dispositivo de origem 310 ou de qualquer outra fonte, por exemplo, uma memória, por exemplo, uma memória de dados de imagem codificados.
[051] A interface de comunicação 318 e a interface de comunicação 322 podem ser configuradas respectivamente para transmitir e receber os dados de imagem codificados 171 ou os dados codificados 330 por meio de um enlace de comunicação direta entre o dispositivo de origem 310 e o dispositivo de destino 320, por exemplo, uma conexão direta com fio ou sem fio, ou via qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação das mesmas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.
[052] A interface de comunicação 318, por exemplo, pode ser configurada para colocar os dados de imagem codificados 171 em um formato apropriado, por exemplo, pacotes, para transmissão em um enlace de comunicação ou rede de comunicação, e pode compreender adicionalmente proteção contra perda de dados e recuperação de perda de dados.
[053] A interface de comunicação 322, formando a contraparte da interface de comunicação 318, por exemplo, pode ser configurada para desempacotar os dados codificados 330 para obter os dados de imagem codificados 171 e também pode ser configurada para realizar proteção contra perda de dados e recuperação de perda de dados, por exemplo, compreendendo ocultação de erro.
[054] A interface de comunicação 318 e a interface de comunicação 322 podem ser ambas configuradas como interfaces de comunicação unidirecional tal como indicado pela seta para os dados de imagem codificados 330 na figura 3 apontando do dispositivo de origem 310 para o dispositivo de destino 320, ou interfaces de comunicação bidirecional, e podem ser configuradas, por exemplo, para enviar e receber mensagens, por exemplo, para configurar uma conexão, para confirmação e/ou reenviar dados perdidos ou atrasados incluindo dados de imagem, e trocar qualquer outra informação relacionada com o enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificados.
[055] O decodificador 200 é configurado para receber os dados de imagem codificados 171 e fornecer os dados de imagem decodificados 231 ou uma imagem decodificada 231 (detalhes adicionais serão descritos, por exemplo, com base na figura 2).
[056] O pós-processador 326 do dispositivo de destino 320 é configurado para pós-processar os dados de imagem decodificados 231, por exemplo, a imagem decodificada 231, para obter os dados de imagem pós-processados 327, por exemplo, uma imagem pós-processada 327. O pós-processamento realizado pela unidade de pós-processamento 326 pode compreender, por exemplo, conversão de formato de cores (por exemplo, de YCbCr para RGB), correção de cor, retoque, ou reamostragem, ou qualquer outro processamento, por exemplo, para preparar os dados de imagem decodificados 231 para exibição, por exemplo, pelo dispositivo de exibição 328.
[057] O dispositivo de exibição 328 do dispositivo de destino 320 é configurado para receber os dados de imagem pós-processados 327 para exibir a imagem, por exemplo, para um usuário ou espectador. O dispositivo de exibição 328 pode ser ou compreender qualquer tipo de tela para representar a imagem reconstruída, por exemplo, um mostrador ou monitor integrado ou externo. Os dispositivos de exibição, por exemplo, podem compreender tubos de raios catódicos (CRT), telas de cristal líquido (LCD), telas de plasma, telas de diodos orgânicos emissores de luz (OLED) ou qualquer tipo de outra tela ... projetor, holograma (3D), ....
[058] Embora a figura 3 represente o dispositivo de origem 310 e o dispositivo de destino 320 como dispositivos separados, modalidades de dispositivos também podem compreender ambos ou ambas as funcionalidades, o dispositivo de origem 310 ou funcionalidade correspondente e o dispositivo de destino 320 ou funcionalidade correspondente. Em tais modalidades o dispositivo de origem 310 ou funcionalidade correspondente e o dispositivo de destino 320 ou funcionalidade correspondente podem ser implementados usando o mesmo hardware e/ou software ou por meio de hardware e/ou software separado ou qualquer combinação dos mesmos.
[059] Tal como ficará aparente para uma pessoa versada na técnica com base na descrição, a existência e divisão (exata) de funcionalidades das diferentes unidades ou funcionalidades dentro do dispositivo de origem 310 e/ou do dispositivo de destino 320 tais como mostradas na figura 3 podem variar dependendo do dispositivo e aplicação real.
[060] Portanto, o dispositivo de origem 310 e o dispositivo de destino 320 tais como mostrados na figura 3 são meramente modalidades de exemplo da divulgação e modalidades da divulgação não estão limitadas a essas mostradas na figura 3.
[061] O dispositivo de origem 310 e o dispositivo de destino 320 podem compreender qualquer um de uma faixa ampla de dispositivos, incluindo quaisquer tipos de dispositivos portáteis ou estacionários, por exemplo, notebook ou laptops, telefones móveis, telefones inteligentes, tablets, câmeras, computadores de mesa, aparelhos conversores de sinais, televisões, dispositivos de exibição, reprodutores de mídias digitais, consoles de videogames, dispositivos de fluxo contínuo de vídeo, dispositivo receptor de difusão, ou algo semelhante (também servidores e estações de trabalho para codificação/decodificação profissional de grande escala, por exemplo, entidades de rede) e podem usar ou não qualquer tipo de sistema operacional.
[062] A figura 1 mostra um diagrama de blocos esquemático/conceitual de uma modalidade de um codificador 100, por exemplo, um codificador de imagem 100, o qual compreende uma entrada 102, uma unidade de cálculo residual 104, uma unidade de transformação 106, uma unidade de quantização 108, uma unidade de quantização inversa 110, uma unidade de transformação inversa 112, uma unidade de reconstrução 114, um armazenamento temporário (buffer) 116, um filtro de laço 120, um armazenamento temporário (buffer) de imagens decodificadas (DPB) 130, uma unidade de predição 160 [uma unidade de inter estimativa 142, uma unidade de inter predição 144, uma unidade de intra estimativa 152, uma unidade de intra predição 154], uma unidade de seleção de modo 162, uma unidade de codificação de entropia 170 e uma saída 172. Um codificador de vídeo 100 tal como mostrado na figura 1 também pode ser referido como codificador de vídeo híbrido ou um codificador de vídeo de acordo com um codec de vídeo híbrido.
[063] Por exemplo, a unidade de cálculo residual 104, a unidade de transformação 106, a unidade de quantização 108 e a unidade de codificação de entropia 170 formam um caminho de sinal para frente do codificador 100, enquanto que, por exemplo, a unidade de quantização inversa 110, a unidade de transformação inversa 112, a unidade de reconstrução 114, o armazenamento temporário 118, o filtro de laço 120, o armazenamento temporário de imagens decodificadas (DPB) 130, a unidade de inter predição 144 e a unidade de intra predição 154 formam um caminho de sinal para trás do codificador, em que o caminho de sinal para trás do codificador corresponde ao caminho de sinal do decodificador (ver o decodificador 200 na figura 2).
[064] O codificador é configurado para receber, por exemplo, pela entrada 102, uma imagem 101 ou um bloco de imagem 103 da imagem 101, por exemplo, imagem de uma sequência de imagens formando um vídeo ou sequência de vídeo. O bloco de imagem 103 também pode ser referido como bloco de imagem atual ou bloco de imagem a ser codificado, e a imagem 101 como imagem atual ou imagem a ser codificada (em particular em codificação de vídeo para distinguir a imagem atual de outras imagens, por exemplo, imagens codificadas e/ou decodificadas anteriormente da mesma sequência de vídeo, isto é, a sequência de vídeo que também compreende a imagem atual).
[065] Modalidades do codificador 100 podem compreender uma unidade de partição (não representada na figura 1), por exemplo, a qual também pode ser referida como unidade de partição de imagem, configurada para particionar a imagem 103 em uma pluralidade de blocos, por exemplo, blocos tais como o bloco 103, tipicamente em uma pluralidade de blocos não se sobrepondo. A unidade de partição pode ser configurada para usar o mesmo tamanho de bloco para todas as imagens de uma sequência de vídeo e a grade correspondente definindo o tamanho de bloco, ou para mudar o tamanho de bloco entre imagens ou subconjuntos ou grupos de imagens, e particionar cada imagem nos blocos correspondentes.
[066] Tal como a imagem 101, o bloco 103 de novo é ou pode ser considerado como um conjunto ou matriz bidimensional de amostras com valores de intensidades (valores de amostras), embora de dimensão menor que a da imagem 101. Em outras palavras, o bloco 103 pode compreender, por exemplo, um conjunto de amostras (por exemplo, um conjunto de componentes de luma no caso de uma imagem 101 monocromática) ou conjuntos de três amostras (por exemplo, conjuntos de um componente de luma e dois de croma no caso de uma imagem 101 colorida) ou qualquer outro número e/ou tipo de conjuntos dependendo do formato de cores aplicado. O número de amostras na direção (ou eixo) horizontal e vertical do bloco 103 define o tamanho do bloco 103.
[067] O codificador 100 tal como mostrado na figura 1 é configurado para codificar a imagem 101 bloco por bloco, por exemplo, a codificação e predição são realizadas por bloco
103.
[068] A unidade de cálculo residual 104 é configurada para calcular um bloco residual 105 com base no bloco de imagem 103 e em um bloco de predição 165 (detalhes adicionais a respeito do bloco de predição 165 são fornecidos mais tarde), por exemplo, ao subtrair valores de amostras do bloco de predição 165 de valores de amostras do bloco de imagem 103, amostra por amostra (pixel por pixel) para obter o bloco residual 105 no domínio da amostra.
[069] A unidade de transformação 106 é configurada para aplicar uma transformação, por exemplo, uma transformada espacial de frequência ou uma transformada espacial linear, por exemplo, uma transformada discreta de cosseno (DCT) ou transformada discreta de seno (DST), nos valores de amostras do bloco residual 105 para obter os coeficientes transformados 107 em um domínio da transformada. Os coeficientes transformados 107 também podem ser referidos como coeficientes residuais transformados e representam o bloco residual 105 no domínio da transformada.
[070] A unidade de transformação 106 pode ser configurada para aplicar aproximações inteiras de DCT/DST, tais como as transformadas de núcleo especificadas para HEVC/H.265. Comparadas a uma transformada DCT ortonormal, tais aproximações inteiras tipicamente são escaladas por um certo fator. A fim de preservar a norma do bloco residual que é processado por meio de transformadas diretas e inversas, fatores de escala adicionais são aplicados como parte do processo de transformada. Os fatores de escala tipicamente são escolhidos com base em certas restrições tais como fatores de escala sendo uma potência de dois para operação de deslocamento, profundidade de bits dos coeficientes transformados, troca compensatória entre precisão e custos de implementação, etc. Fatores de escala específicos, por exemplo, são especificados para a transformada inversa, por exemplo, pela unidade de transformação inversa 212, em um decodificador 200 (e para a transformada inversa correspondente, por exemplo, pela unidade de transformação inversa 112 em um codificador 100) e fatores de escala correspondentes para a transformada direta, por exemplo, pela unidade de transformação 106, em um codificador 100 podem ser especificados de modo correspondente.
[071] A unidade de quantização 108 é configurada para quantizar os coeficientes transformados 107 para obter os coeficientes quantizados 109, por exemplo, ao aplicar quantização escalar ou quantização de vetor. Os coeficientes quantizados 109 também podem ser referidos como os coeficientes residuais quantizados 109. Por exemplo, para quantização escalar, escalamento diferente pode ser aplicado para alcançar uma quantização mais refinada ou mais grosseira. Tamanhos de passos de quantização menores correspondem à quantização mais refinada, enquanto que tamanhos de passos de quantização maiores correspondem à quantização mais grosseira. O tamanho de passo de quantização aplicável pode ser indicado por um parâmetro de quantização (QP). O parâmetro de quantização, por exemplo, pode ser um índice para um conjunto predefinido de tamanhos de passos de quantização aplicáveis. Por exemplo, parâmetros de quantização pequenos podem corresponder à quantização fina (tamanhos de passos de quantização pequenos) e parâmetros de quantização grandes podem corresponder à quantização grosseira (tamanhos de passos de quantização grandes) ou vice-versa. A quantização pode incluir divisão por um tamanho de passo de quantização e desquantização correspondente ou inversa, por exemplo, pela quantização inversa 110, e pode incluir multiplicação pelo tamanho de passo de quantização.
[072] Modalidades de acordo com HEVC podem ser configuradas para usar um parâmetro de quantização para determinar o tamanho de passo de quantização. De uma maneira geral, o tamanho de passo de quantização pode ser calculado com base em um parâmetro de quantização usando uma aproximação de ponto fixo de uma equação incluindo divisão. Fatores de escala adicionais podem ser introduzidos para quantização e desquantização para restaurar a norma do bloco residual, o que pode ser modificado por causa do escalamento usado na aproximação de ponto fixo da equação para tamanho de passo de quantização e parâmetro de quantização. Em uma implementação de exemplo, o escalamento da transformada inversa e desquantização podem ser combinados. Alternativamente, tabelas de quantização personalizadas podem ser usadas e sinalizadas de um codificador para um decodificador, por exemplo, em um fluxo de bits. A quantização é uma operação com perda, em que a perda aumenta com o aumento de passos de quantização.
[073] Modalidades do codificador 100 (ou correspondentemente da unidade de quantização 108) podem ser configuradas para produzir o esquema de quantização e tamanho de passo de quantização, por exemplo, por meio do parâmetro de quantização correspondente, de maneira que um decodificador 200 pode receber e aplicar a quantização inversa correspondente. Modalidades do codificador 100 (ou da unidade de quantização 108) podem ser configuradas para enviar o esquema de quantização e tamanho de passo de quantização, por exemplo, diretamente ou codificados por entropia por meio da unidade de codificação de entropia 170 ou por qualquer outra unidade de codificação de entropia.
[074] A unidade de quantização inversa 110 é configurada para aplicar a quantização inversa da unidade de quantização 108 nos coeficientes quantizados para obter os coeficientes desquantizados 111, por exemplo, ao aplicar o inverso do esquema de quantização aplicado pela unidade de quantização 108 com base em ou usando o mesmo tamanho de passo de quantização usado pela unidade de quantização 108. Os coeficientes desquantizados 111 também podem ser referidos como os coeficientes residuais desquantizados 111 e correspondem - embora tipicamente não idênticos aos coeficientes transformados por causa da perda por quantização - aos coeficientes transformados 108.
[075] A unidade de transformação inversa 112 é configurada para aplicar a transformação inversa da transformação aplicada pela unidade de transformação 106, por exemplo, uma transformada inversa discreta de cosseno (DCT) ou transformada inversa discreta de seno (DST), para obter um bloco transformado inverso 113 no domínio da amostra. O bloco transformado inverso 113 também pode ser referido como o bloco desquantizado transformado inverso 113 ou o bloco residual transformado inverso 113.
[076] A unidade de reconstrução 114 é configurada para combinar o bloco transformado inverso 113 e o bloco de predição 165 para obter um bloco reconstruído 115 no domínio da amostra, por exemplo, ao somar os valores de amostras do bloco residual decodificado 113 e os valores de amostras do bloco de predição 165.
[077] A unidade de armazenamento temporário 116 (ou resumidamente “buffer” 116), por exemplo, um armazenamento temporário de linha 116, é configurada para armazenar temporariamente ou armazenar o bloco reconstruído e os respectivos valores de amostras, por exemplo, para intra estimativa e/ou intra predição. Em modalidades adicionais, o codificador pode ser configurado para usar blocos reconstruídos não filtrados e/ou os respectivos valores de amostras armazenados na unidade de armazenamento temporário 116 para qualquer tipo de estimativa e/ou predição.
[078] Modalidades do codificador 100 podem ser configuradas de tal maneira que, por exemplo, a unidade de armazenamento temporário 116 não é usada somente para armazenar os blocos reconstruídos 115 para a intra estimativa 152 e/ou a intra predição 154, mas também para a unidade de filtro de laço 120 (não mostrada na figura 1), e/ou de tal maneira que, por exemplo, a unidade de armazenamento temporário 116 e a unidade de armazenamento temporário de imagens decodificadas 130 formam um armazenamento temporário. Modalidades adicionais podem ser configuradas para usar os blocos filtrados 121 e/ou blocos ou amostras do armazenamento temporário de imagens decodificadas 130 (ambos não mostrados na figura 1) como entrada ou base para a intra estimativa 152 e/ou para a intra predição 154.
[079] A unidade de filtro de laço 120 (ou o “filtro de laço” 120 para abreviar) é configurada para filtrar o bloco reconstruído 115 para obter um bloco filtrado 121, por exemplo, ao aplicar um filtro de deslocamento adaptativo de amostra (SAO) de desblocagem ou outros filtros, por exemplo, filtros de nitidez ou de suavização ou filtros colaborativos. O bloco filtrado 121 também pode ser referido como o bloco reconstruído filtrado 121. O filtro de laço 120 no exposto a seguir é também referido como um filtro de desblocagem.
[080] Modalidades da unidade de filtro de laço 120 podem compreender (não mostradas na figura 1) uma unidade de análise de filtro e a unidade de filtro real, em que a unidade de análise de filtro é configurada para determinar parâmetros de filtro de laço para o filtro real. A unidade de análise de filtro pode ser configurada para aplicar parâmetros de filtro predeterminados fixados ao filtro de laço real, selecionar adaptativamente parâmetros de filtro de um conjunto de parâmetros de filtro predeterminados ou calcular adaptativamente parâmetros de filtro para o filtro de laço real.
[081] Modalidades da unidade de filtro de laço 120 podem compreender (não mostrado na figura 1) um ou uma pluralidade de filtros (componentes de filtros/subfiltros de laço), por exemplo, uma ou mais de espécies ou tipos diferentes de filtros, por exemplo, conectados em série ou em paralelo ou em qualquer combinação dos mesmos, em que cada um dos filtros pode compreender individualmente ou de forma conjunta com outros filtros da pluralidade de filtros uma unidade de análise de filtro para determinar os respectivos parâmetros de filtro de laço, por exemplo, tal como descrito no parágrafo anterior.
[082] Modalidades do codificador 100 (correspondentemente da unidade de filtro de laço 120) podem ser configuradas para enviar os parâmetros de filtro de laço, por exemplo, diretamente ou codificados por entropia por meio da unidade de codificação de entropia 170 ou de qualquer outra unidade de codificação de entropia, de maneira que, por exemplo, um decodificador 200 pode receber e aplicar os mesmos parâmetros de filtro de laço para decodificação.
[083] O armazenamento temporário de imagens decodificadas (DPB) 130 é configurado para receber e armazenar o bloco filtrado 121. O armazenamento temporário de imagens decodificadas 130 pode ser configurado adicionalmente para armazenar outros blocos filtrados anteriormente, por exemplo, os blocos reconstruídos e filtrados anteriormente 121, da mesma imagem atual ou de imagens diferentes, por exemplo, imagens reconstruídas anteriormente, e pode fornecer imagens completas reconstruídas, isto é, decodificadas, anteriormente (e blocos e amostras de referência correspondentes) e/ou uma imagem atual reconstruída parcialmente (e blocos e amostras de referência correspondentes), por exemplo, para inter estimativa e/ou inter predição.
[084] Modalidades adicionais da divulgação também podem ser configuradas para usar os blocos filtrados anteriormente e valores de amostras filtradas correspondentes do armazenamento temporário de imagens decodificadas 130 para qualquer tipo de estimativa ou predição, por exemplo, estimativa e intra predição e inter.
[085] A unidade de predição 160, também referida como a unidade de predição de bloco 160, é configurada para receber ou obter o bloco de imagem 103 (o bloco de imagem atual 103 da imagem atual 101) e dados de imagem decodificada ou pelo menos reconstruída, por exemplo, amostras de referência da mesma imagem (atual) do armazenamento temporário 116 e/ou os dados de imagem decodificada 231 de uma ou de uma pluralidade de imagens decodificadas anteriormente do armazenamento temporário de imagens decodificadas 130, e para processar tais dados para predição, isto é, para fornecer um bloco de predição 165, o qual pode ser um bloco inter predito 145 ou um bloco intra predito 155.
[086] A unidade de seleção de modo 162 pode ser configurada para selecionar um modo de predição (por exemplo, um modo de intra ou inter predição) e/ou um bloco de predição correspondente 145 ou 155 para ser usado como o bloco de predição 165 para o cálculo do bloco residual 105 e para a obtenção do bloco reconstruído 115.
[087] Modalidades da unidade de seleção de modo 162 podem ser configuradas para selecionar o modo de predição (por exemplo, daqueles suportados pela unidade de predição 160), o qual fornece o melhor casamento ou em outras palavras o residual mínimo (residual mínimo significa melhor compressão para transmissão ou armazenamento), ou uma sobrecarga de sinalização mínima (sobrecarga de sinalização mínima significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 162 pode ser configurada para determinar o modo de predição com base em otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma otimização de distorção de taxa mínima ou que distorção de taxa associada satisfaz pelo menos um critério de seleção de modo de predição.
[088] No exposto a seguir o processamento de predição (por exemplo, pela unidade de predição 160) e seleção de modo (por exemplo, pela unidade de seleção de modo 162) realizados por um codificador de exemplo 100 serão explicados com mais detalhes.
[089] Tal como descrito acima, o codificador 100 é configurado para determinar ou selecionar o melhor ou um modo de predição ideal de um conjunto de modos de predição (predeterminados). O conjunto de modos de predição pode compreender, por exemplo, modos de intra predição e/ou modos de inter predição.
[090] O conjunto de modos de intra predição pode compreender 32 modos de intra predição diferentes, por exemplo, modos não direcionais tais como modo DC (ou médio) e modo plano, ou modos direcionais, por exemplo, tais como definidos em H.264, ou pode compreender 65 modos de intra predição diferentes, por exemplo, modos não direcionais tais como modo DC (ou médio) e modo plano, ou modos direcionais, por exemplo, tais como definidos em H.265.
[091] O conjunto de (ou de possíveis) modos de inter predição depende das imagens de referência disponíveis (isto é, imagens decodificadas pelo menos parcialmente anteriores, por exemplo, armazenadas no DBP 230) e de outros parâmetros de inter predição, por exemplo, se a imagem de referência inteira ou se somente uma parte, por exemplo, uma área de janela de pesquisa em volta da área do bloco atual, da imagem de referência é usada para procurar um melhor bloco de referência de casamento, e/ou, por exemplo, se interpolação de pixel é aplicada, por exemplo, interpolação de metade/semipixel e/ou de quarto de pixel, ou não.
[092] Adicionalmente aos modos de predição indicados acima, modo de salto e/ou modo direto pode ser aplicado.
[093] A unidade de predição 160 pode ser configurada adicionalmente para particionar o bloco 103 em partições de bloco menores ou sub-blocos, por exemplo, usando iterativamente particionamento de árvore quaternária (QT),
particionamento binário (BT) ou particionamento de árvore ternária (TT) ou qualquer combinação dos mesmos, e para realizar, por exemplo, a predição para cada uma das partições de bloco ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco particionado 103 e dos modos de predição aplicados a cada uma das partições de bloco ou sub-blocos.
[094] A unidade de inter estimativa 142, também referida como a unidade de estimativa inter imagem 142, é configurada para receber ou obter o bloco de imagem 103 (o bloco de imagem atual 103 da imagem atual 101) e uma imagem decodificada 231, ou pelo menos um ou uma pluralidade de blocos reconstruídos anteriormente, por exemplo, blocos reconstruídos de uma ou de uma pluralidade de outras/diferentes imagens decodificadas anteriormente 231, para inter estimativa (ou “estimativa inter imagem”). Por exemplo, uma sequência de vídeo pode compreender a imagem atual e as imagens decodificadas anteriormente 231, ou em outras palavras a imagem atual e as imagens decodificadas anteriormente 231 podem fazer parte ou formar uma sequência de imagens formando uma sequência de vídeo.
[095] O codificador 100, por exemplo, pode ser configurado para selecionar um bloco de referência de uma pluralidade de blocos de referência da mesma ou de imagens diferentes da pluralidade de outras imagens e fornecer uma imagem de referência (ou índice de imagem de referência, ...) e/ou um deslocamento (deslocamento espacial) entre a posição (coordenadas x, y) do bloco de referência e a posição do bloco atual como os parâmetros de inter estimativa 143 para a unidade de inter predição 144. Este deslocamento é também chamado de vetor de movimento (MV). A inter estimativa é também referida como estimativa de movimento (ME) e a inter predição também como predição de movimento (MP).
[096] A unidade de inter predição 144 é configurada para obter, por exemplo, receber, um parâmetro de inter predição 143 e para realizar inter predição com base no mesmo ou usando o parâmetro de inter predição 143 para obter um bloco de inter predição 145.
[097] Embora a figura 1 mostre duas unidades (ou etapas) distintas para a inter codificação, isto é, a inter estimativa 142 e a inter predição 152, ambas as funcionalidades podem ser realizadas como uma (inter estimativa exige/compreende calcular um/o bloco de inter predição, isto é, o ou um “tipo de” inter predição 154), por exemplo, ao testar todos os possíveis ou um subconjunto predeterminado de possíveis modos de inter predição iterativamente enquanto armazena o melhor modo de inter predição atualmente e respectivo bloco de inter predição, e usar o melhor modo de inter predição atualmente e respectivo bloco de inter predição como o parâmetro de inter predição (final) 143 e o bloco de inter predição 145 sem realizar outra vez a inter predição 144.
[098] A unidade de intra estimativa 152 é configurada para obter, por exemplo, receber, o bloco de imagem 103 (bloco de imagem atual) e um ou uma pluralidade de blocos reconstruídos anteriormente, por exemplo, blocos vizinhos reconstruídos, da mesma imagem para intra estimativa. O codificador 100, por exemplo, pode ser configurado para selecionar um modo de intra predição de uma pluralidade de modos de intra predição (predeterminados) e fornecer o mesmo como o parâmetro de intra estimativa 153 para a unidade de intra predição 154.
[099] Modalidades do codificador 100 podem ser configuradas para selecionar o modo de intra predição com base em um critério de otimização, por exemplo, residual mínimo (por exemplo, o modo de intra predição fornecendo o bloco de predição 155 mais similar ao bloco de imagem atual 103) ou distorção de taxa mínima.
[0100] A unidade de intra predição 154 é configurada para determinar com base no parâmetro de intra predição 153, por exemplo, o modo de intra predição selecionado 153, o bloco de intra predição 155.
[0101] Embora a figura 1 mostre duas unidades (ou etapas) distintas para a codificação intra, isto é, a intra estimativa 152 e a intra predição 154, ambas as funcionalidades podem ser realizadas como uma (intra estimativa exige/compreende calcular o bloco de intra predição, isto é, o ou um “tipo de” intra predição 154), por exemplo, ao testar todos os possíveis ou um subconjunto predeterminado de possíveis modos de intra predição iterativamente enquanto armazena o melhor modo de intra predição atualmente e respectivo bloco de intra predição, e usar o melhor modo de intra predição atualmente e respectivo bloco de intra predição como o parâmetro de intra predição (final) 153 e o bloco de intra predição 155 sem realizar outra vez a intra predição 154.
[0102] A unidade de codificação de entropia 170 é configurada para aplicar um algoritmo ou esquema de codificação de entropia (por exemplo, um esquema de codificação de comprimento variável (VLC), um esquema VLC adaptativo de contexto (CALVC), um esquema de codificação aritmética, uma codificação aritmética binária adaptativa de contexto (CABAC)) nos coeficientes residuais quantizados 109, parâmetros de inter predição 143, parâmetro de intra predição 153 e/ou nos parâmetros de filtro de laço, individualmente ou de forma conjunta (ou de jeito nenhum) para obter os dados de imagem codificados 171 que podem ser enviados pela saída 172, por exemplo, na forma de um fluxo de bits codificados 171.
[0103] A figura 2 mostra um decodificador de vídeo exemplar 200 configurado para receber os dados de imagem codificados (por exemplo, fluxo de bits codificados) 171, por exemplo, codificados pelo codificador 100, para obter uma imagem decodificada 231.
[0104] O decodificador 200 compreende uma entrada 202, uma unidade de decodificação de entropia 204, uma unidade de quantização inversa 210, uma unidade de transformação inversa 212, uma unidade de reconstrução 214, um armazenamento temporário (buffer) 216, um filtro de laço 220, um armazenamento temporário (buffer) de imagens decodificadas 230, uma unidade de predição 260, uma unidade de inter predição 244, uma unidade de intra predição 254, uma unidade de seleção de modo 260 e uma saída 232.
[0105] A unidade de decodificação de entropia 204 é configurada para realizar decodificação de entropia para os dados de imagem codificados 171 para obter, por exemplo, os coeficientes quantizados 209 e/ou parâmetros de codificação decodificados (não mostrados na figura 2), por exemplo, alguns ou todos (decodificados) de os parâmetros de inter predição 143, o parâmetro de intra predição 153 e/ou os parâmetros de filtro de laço.
[0106] Em modalidades do decodificador 200, a unidade de quantização inversa 210, a unidade de transformação inversa 212, a unidade de reconstrução 214, o armazenamento temporário 216, o filtro de laço 220, o armazenamento temporário de imagens decodificadas 230, a unidade de predição 260 e a unidade de seleção de modo 260 são configurados para realizar o processamento inverso do codificador 100 (e das respectivas unidades funcionais) para decodificar os dados de imagem codificados 171.
[0107] Em particular, a unidade de quantização inversa 210 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de transformação inversa 212 pode ser idêntica em função à unidade de transformação inversa 112, a unidade de reconstrução 214 pode ser idêntica em função à unidade de reconstrução 114, o armazenamento temporário 216 pode ser idêntico em função ao armazenamento temporário 116, o filtro de laço 120 pode ser idêntico em função ao filtro de laço 220 (com relação ao filtro de laço real já que o filtro de laço 220 tipicamente não compreende uma unidade de análise de filtro para determinar os parâmetros de filtro com base na imagem original 101 ou no bloco 103, mas recebe (explicitamente ou implicitamente) ou obtém os parâmetros de filtro usados para codificação, por exemplo, da unidade de decodificação de entropia 204), e o armazenamento temporário de imagens decodificadas 230 pode ser idêntico em função ao armazenamento temporário de imagens decodificadas 130.
[0108] A unidade de predição 260 pode compreender uma unidade de inter predição 244 e uma unidade de intra predição 254, em que a unidade de inter predição 144 pode ser idêntica em função à unidade de inter predição 144, e a unidade de intra predição 154 pode ser idêntica em função à unidade de intra predição 154. A unidade de predição 260 e a unidade de seleção de modo 262 tipicamente são configuradas para realizar o bloco predição e/ou obter o bloco predito 265 a partir somente dos dados codificados 171 (sem qualquer informação adicional a respeito da imagem original 101) e para receber ou obter (explicitamente ou implicitamente) os parâmetros de predição 143 ou 153 e/ou a informação sobre o modo de predição selecionado, por exemplo, da unidade de decodificação de entropia 204.
[0109] O decodificador 200 é configurado para enviar a imagem decodificada 230, por exemplo, via saída 232, para visualização ou apresentação para um usuário.
[0110] Embora modalidades da divulgação tenham sido descritas principalmente com base em codificação de vídeo, deve ser notado que modalidades do codificador 100 e do decodificador 200 (e correspondentemente do sistema 300) também podem ser configuradas para processamento ou codificação de imagem estática, isto é, o processamento ou codificação de uma imagem individual independente de qualquer imagem precedente ou consecutiva tal como em codificação de vídeo. De uma maneira geral somente a inter estimativa 142 e a inter predição 144, 242 não são utilizáveis no caso em que a codificação de processamento de imagem é limitada a uma única imagem 101. A maioria, se não todas as outras funcionalidades (também referidas como ferramentas ou tecnologias) do codificador de vídeo 100 e do decodificador de vídeo 200 podem ser usadas igualmente para imagens estáticas, por exemplo, particionamento, a transformação (escalamento) 106, a quantização 108, a quantização inversa 110, a transformação inversa 112, a intra estimativa 142, a intra predição 154, 254 e/ou a filtragem de laço 120, 220, e a codificação de entropia 170 e decodificação de entropia 204.
[0111] A presente divulgação diz respeito aos trabalhos internos do filtro de desblocagem, também referido como filtro de laço na figura 1 e na figura 2.
[0112] Na figura 4, os dois blocos de codificação exemplares 401, 402 separados por uma borda de bloco 403 estão mostrados. Os blocos de codificação 401, 402 compreendem as linhas de pixels 402-407 e as fileiras de pixels 408-415. Especialmente aqui, a borda de bloco é uma borda de bloco vertical. Neste exemplo, os blocos têm um tamanho de 4x4 pixels. Na prática, outros tamanhos de bloco de qualquer forma podem ser empregados.
[0113] Decisões de desblocagem são tomadas separadamente para cada segmento de um limite de bloco.
[0114] O filtro de desblocagem forte em HEVC é aplicado para áreas uniformes, onde artefatos de blocos são mais visíveis. O modo de filtragem modifica três amostras do limite de bloco e capacita filtragem passa-baixa forte. Uma operação de recorte é realizada adicionalmente para cada amostra. O motivo para realizar a operação de recorte é limitar a quantidade de filtragem a fim de garantir que não existe filtragem excessiva nas linhas que não foram avaliadas nas decisões de filtragem. Tal como mostrado na figura 4, as linhas de pixels 405 e 406 não são usadas na decisão para filtrar ou para não filtrar. Isto é feito por motivos de complexidade computacional. Somente as linhas de pixels de decisão 404 e 407 são usadas aqui para determinar se uma filtragem é para ser realizada.
[0115] No exposto a seguir as funções para determinar os valores de pixels desblocados estão mostradas: p0’ = (p2+2p1+2p0+2q0+q1+4) >> 3, (7.17) p1’ = (p2+p1+p0+q0+2) >> 2, (7.18) p2’ = (2p3+3p2+p1+p0+q0+4), >> 3, (7.19)
[0116] P0’, P1’, P2’ são valores de pixels filtrados correspondendo aos valores de pixels originais P0, P1 e P2, respectivamente. O segundo índice, tal como mostrado na figura 4, foi omitido aqui.
[0117] O símbolo “>>” significa um deslocamento para a direita. Um deslocamento para a direita corresponde a uma divisão por 2y, onde y é a quantidade de deslocamento para a direita. Por exemplo, na função 7.17, “>> 3” significa uma divisão por 23 = 8.
[0118] Os valores de amostras modificados são então recortados para a faixa [Pi - 2tc, Pi + 2tc], onde Pi é o valor de pixel do pixel i, e onde tc é um valor constante; tc, por exemplo, pode ser derivado de uma tabela usando o parâmetro de quantização médio QP como o índice para a tabela. Normalmente, quanto maior é o valor de QP maior é o valor de tc.
[0119] A figura 9 representa um artefato de blocagem típico em uma borda de bloco 900. Pode ser visto facilmente que as amostras P0 e Q0 têm a distorção máxima e as amostras mais distantes da borda de bloco tendem a ter menos distorção, por exemplo, as amostras P3 e Q3.
[0120] Uma vez que todos os valores de pixels são recortados para a mesma faixa de recorte [Pi - 2tc, Pi + 2tc], os valores de pixels distantes do limite de bloco, por exemplo, P3 e Q3, também usam a mesma faixa de recorte e por esta razão podem ser modificados dentro da mesma faixa tal como os valores de pixels P0 e Q0. Esta faixa de recorte constante resultará em amostras distantes do limite também sendo modificadas por uma grande extensão e por esta razão resulta em suavização excessiva ou embaçamento ou algumas vezes em filtragem de desblocagem incorreta com perda de conteúdo de imagem significativo.
[0121] Em vez de usar uma faixa de recorte fixada para todos os valores de pixels, de acordo com a presente divulgação, a faixa de recorte é tornada adaptativa. Particularmente, a faixa de recorte é tornada adaptativa a partir da distância do respectivo pixel para a borda de bloco.
[0122] Vantajosamente, uma tabela de pesquisa ou uma função são usadas para determinar um valor de recorte, pelo qual o valor de pixel filtrado é recortado. Preferivelmente, uma função como esta é uma função monotonicamente decrescente baseada na distância do pixel a partir da borda. Quanto maior a distância da amostra a partir da borda/limite tanto menor é o valor de recorte definido para o pixel. Portanto, valores de pixels distantes da borda de bloco podem ter um valor de recorte menor e por esta razão podem ter um desvio menor após o recorte quando comparados aos valores de pixels que estão mais perto da borda de bloco. Deste modo a quantidade de filtragem é controlada e por esta razão uma suavização excessiva ou embaçamento é impedido.
[0123] Vantajosamente, uma função exponencial é usada para determinar o valor de recorte. O valor de recorte pode então ser determinado como tc’ = tc + (tc >> i), em que tc’ é o valor de recorte, em que tc é um valor constante, em que i é a distância do pixel a partir da borda de bloco, e em que >> significa um deslocamento para a direita.
[0124] Isto resulta na fórmula seguinte para o recorte do valor de pixel desblocado: P’a,b = (Pa, b - (tc + (tc >> i)), Pa, b + (tc + (tc >> i))). em que P’a,b é o valor de pixel desblocado do pixel a, b, a é um índice de número inteiro da fileira de pixels, b é um índice de número inteiro da linha de pixels, Pa, b é o valor de pixel original do pixel a, b, i é uma distância de número inteiro do pixel a partir da borda de bloco.
[0125] Por exemplo, para P0,0 e Q0,0 o recorte permanece o mesmo tal como explicado junto com as fórmulas
7.17 - 7.19, porque o valor de i é 0 (distância é 0). O valor de recorte é estabelecido para tc’ = tc + (tc >> 0) = 2tc, resultando em P’0,0 = (P0,0 - 2tc), P0,0 + 2tc)).
[0126] Por exemplo, para P’1,0, recorte é reduzido para tc’ = tc + (tc >> 1) = tc + tc/2 = 1,5 tc, resultando em P’1,0 = (P1,0 - 1,5tc), P1,0 + 1,5tc)).
[0127] Por exemplo, para P’2,0, recorte é reduzido para tc’ = tc + (tc >> 2) = tc + tc/4 = 1,25 tc, resultando em P’2,0 = (P2,0 - 1,25tc), P2,0 + 1,25tc)).
[0128] Tal como podemos ver, o valor de recorte é reduzido gradualmente à medida que a distância de amostra i a partir da borda de bloco aumenta.
[0129] Uma outra função exponencial alternativa que pode ser usada é como a seguir: tc’ = ((2 * tc) >> i), em que tc’ é o valor de recorte, em que tc é um valor constante, em que i é a distância do pixel a partir da borda de bloco, e em que >> significa um deslocamento para a direita.
[0130] Isto resulta na seguinte fórmula para o recorte do valor de pixel desblocado: P’a,b = (Pa, b - ((2 * tc) >> i)), Pa, b + ((2 * tc) >> i))), em que P’a,b é o valor de pixel desblocado do pixel a, b, a é um índice de número inteiro da fileira de pixels, b é um índice de número inteiro da linha de pixels, Pa, b é o valor de pixel original do pixel a, b, i é uma distância de número inteiro do pixel a partir da borda de bloco.
[0131] O cálculo da função exponencial, portanto, resulta em uma complexidade computacional significativa. Em uma modalidade alternativa, uma função linear pode ser usada. Neste caso, o valor de recorte é estabelecido para tc’ = tc + (tc - (i * x), em que tc’ é o valor de recorte, em que tc é um valor constante, em que i é a distância do pixel a partir da borda de bloco, e em que x é um valor constante.
[0132] Isto resulta no valor de pixel desblocado a ser recortado para P’a,b = (Pa,b - (tc + (tc - (i * x)), Pa, b + (tc + (tc - (i * x))), em que P’a,b é o valor de pixel desblocado do pixel a, b, a é um índice de número inteiro da fileira de pixels, b é um índice de número inteiro da linha de pixels, Pa, b é o valor de pixel original do pixel a, b, i é uma distância de número inteiro do pixel a partir da borda de bloco, e x é um valor inteiro constante.
[0133] Vantajosamente, x depende do parâmetro de quantização médio QP usado no processo de desblocagem. De uma maneira geral o valor de x aumenta à medida que o valor de QP aumenta. Também, o valor de x pode ser derivado separadamente para vídeo de 8 bits e vídeo de 10 bits.
[0134] Como um exemplo, o valor de x para vídeo de 10 bits pode ser estabelecido tal como a seguir: QP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 QP 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 x 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 QP 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 x 2 2 2 2 2 4 4 5 5 6 6 7 7 8 18 18
QP 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 x 10 10 12 12 12 14 14 16 16 16 16 16 16 16 16
[0135] Como um exemplo, para valor de QP médio de 37, o valor de x é 2, e por esta razão os valores de pixels são modificados tal como a seguir: por exemplo, para P0,0 o recorte permanece o mesmo tal como explicado junto com as fórmulas 7.17 - 7.19, porque o valor de i é 0 (distância é 0). O valor de recorte é estabelecido para tc’ = tc + (tc - (0 * 2) = 2tc, resultando em P’0,0 = (P0,0 - (tc + (tc - (0 * 2 )), P0,0 + (tc + (tc - (0 * 2))); por exemplo, para P’1,0, recorte é reduzido para tc’ = tc + (tc - (1 * 2) = 2tc - 2, resultando em P’1,0 = (P1,0 - 2tc - 2), P1,0 + 2 tc - 2)); por exemplo, para P’2,0, recorte é reduzido para tc’ = tc + (tc - 2 * 2) = tc + (tc - 4) = 2tc - 4, resultando em P’2,0 = (P2,0 - (2tc - 4)), P2,0 + (2tc - 4)).
[0136] Em uma modalidade vantajosa adicional, o uso do recorte dependente de distância, tal como mostrado anteriormente, é limitado às linhas de pixels de não decisão e fileiras de pixels de não decisão, tal como mostrado na figura 4. Tal como explicado anteriormente, para determinar se uma filtragem de uma borda de bloco é realizada, um número de pixels de uma linha de pixels de decisão (borda de bloco vertical) ou de uma fileira de pixels de decisão (borda de bloco horizontal) é usado. Nem todas as linhas/fileiras de pixels dentro dos blocos, portanto, são usadas para servir de base para esta decisão, a fim de reduzir complexidade computacional. O recorte dependente de faixa, portanto, é realizado somente nas linhas/fileiras de pixels de não decisão, mas não nas linhas/fileiras de pixels que são linhas/fileiras de pixels de decisão. Nas linhas/fileiras de pixels de decisão o recorte convencional usando um valor constante é realizado.
[0137] Na figura 5, uma modalidade do primeiro aspecto da divulgação é mostrada. Particularmente, aqui um dispositivo de processamento de imagem 501 compreendendo um filtro 502 é mostrado. O filtro 502 é adaptado para realizar a filtragem de desblocagem, tal como mostrado acima.
[0138] Na figura 6, uma modalidade do segundo aspecto da divulgação é mostrada. Particularmente, aqui um codificador 600, compreendendo um dispositivo de processamento de imagem 601, compreendendo igualmente um filtro 602 é mostrado. O filtro 602 realiza a filtragem de desblocagem, tal como mostrado acima.
[0139] Na figura 7, uma modalidade do terceiro aspecto da divulgação é mostrada. Particularmente, aqui um decodificador 700 compreendendo um dispositivo de processamento de imagem 701 por sua vez compreendendo um filtro 702 é mostrado. O filtro 702 realiza a filtragem de desblocagem, tal como mostrado acima.
[0140] Finalmente, na figura 9, uma modalidade do quinto aspecto da divulgação é mostrada em um fluxograma. Em uma primeira etapa 1000, para pelo menos alguns dos pixels a serem filtrados, dentro de uma faixa de desblocagem a partir da borda de bloco, um valor de pixel filtrado é determinado a partir de um valor de pixel original do pixel e de pelo menos um valor de pixel adicional. Em uma segunda etapa 1001, um valor de recorte do pixel é determinado dependente de uma distância do pixel a partir da borda de bloco. Em uma terceira etapa final 1002, o valor de pixel filtrado é recortado usando o valor de recorte, resultando em um valor de pixel desblocado.
[0141] É salientado que os aprimoramentos a partir do exposto acima com relação a como a filtragem de desblocagem é realizada também são aplicáveis ao método de acordo com o quarto aspecto da divulgação.
[0142] É importante notar que a divulgação não está limitada às modalidades e especialmente não limitada aos tamanhos de blocos de codificação e comprimentos de derivações de filtros mostrados acima. A divulgação pode ser aplicada para quaisquer tamanhos de blocos de codificação e para quaisquer comprimentos de derivações de filtros.
DEFINIÇÕES DE ACRÔNIMOS CTU/CTB - Unidade de Árvore de Codificação/Bloco de Árvore de Codificação CU/CB - Unidade de Codificação/Bloco de Codificação PU/PB - Unidade de Predição/Bloco de Predição TU/TB - Unidade de Transformada/Bloco de Transformada HEVC - Codificação de Vídeo de Alta Eficiência
LISTAGEM DE NÚMEROS DE REFERÊNCIA Figura 1 100 Codificador 103 Bloco de imagem 102 Entrada (por exemplo, porta de entrada, interface de entrada) 104 Cálculo residual [unidade ou etapa] 105 Bloco residual 106 Transformação (por exemplo, compreendendo adicionalmente escalamento) [unidade ou etapa]
107 Coeficientes transformados 108 Quantização [unidade ou etapa] 109 Coeficientes quantizados 110 Quantização inversa [unidade ou etapa] 111 Coeficientes desquantizados 112 Transformação inversa (por exemplo, compreendendo adicionalmente escalamento) [unidade ou etapa] 113 Bloco transformado inverso 114 Reconstrução [unidade ou etapa] 115 Bloco reconstruído 116 Armazenamento temporário (de Linha) [unidade ou etapa] 117 Amostras de referência 120 Filtro de laço [unidade ou etapa] 121 Bloco filtrado 130 Armazenamento temporário de imagens decodificadas (DPB) [unidade ou etapa] 142 Inter estimativa (ou estimativa inter imagem) [unidade ou etapa] 143 Parâmetros de inter estimativa (por exemplo, imagem de referência/índice de imagem de referência, vetor de movimento/deslocamento) 144 Inter predição (ou inter predição imagem) [unidade ou etapa] 145 Bloco de inter predição 152 Intra estimativa (ou intra estimativa imagem) [unidade ou etapa] 153 Parâmetros de intra predição (por exemplo, modo de intra predição) 154 Intra predição (intra predição de quadro/imagem) [unidade ou etapa] 155 Bloco de intra predição 162 Seleção de modo [unidade ou etapa] 165 Bloco de predição (bloco de inter predição 145 ou bloco de intra predição 155) 170 Codificação de entropia [unidade ou etapa] 171 Dados de imagem codificados (por exemplo, fluxo de bits) 172 Saída (porta de saída, interface de saída) 231 Imagem decodificada Figura 2 200 Decodificador 171 Dados de imagem codificados (por exemplo, fluxo de bits) 202 Entrada (porta/interface) 204 Decodificação de entropia 209 Coeficientes quantizados 210 Quantização inversa 211 Coeficientes desquantizados 212 Transformação inversa (escalamento) 213 Bloco transformado inverso 214 Reconstrução (unidade) 215 Bloco reconstruído 216 Armazenamento temporário (de Linha) 217 Amostras de referência 220 Filtro de laço (filtro em laço) 221 Bloco filtrado 230 Armazenamento temporário de imagens decodificadas (DPB) 231 Imagem decodificada
232 Saída (porta/interface) 244 Inter predição (inter predição de quadro/imagem) 245 Bloco de inter predição 254 Intra predição (intra predição de quadro/imagem) 255 Bloco de intra predição 260 Seleção de modo 265 Bloco de predição (bloco de inter predição 245 ou bloco de intra predição 255) Figura 3 300 Sistema de codificação 310 Dispositivo de origem 312 Fonte de imagem 313 Dados de imagem (bruta) 314 Pré-processador/Unidade de pré-processamento 315 Dados de imagem pré-processados 318 Unidade/interface de comunicação 320 Dispositivo de destino 322 Unidade/interface de comunicação 326 Pós-processador/Unidade de pós-processamento 327 Dados de imagem pós-processados 328 Dispositivo/unidade de exibição 330 dados de imagem transmitidos/recebidos/comunicados (codificados) Figura 4 401 bloco de codificação 402 bloco de codificação 403 borda de bloco 404 linha de pixels
405 linha de pixels 406 linha de pixels 407 linha de pixels 408 fileira de pixels 409 fileira de pixels 410 fileira de pixels 411 fileira de pixels 412 fileira de pixels 413 fileira de pixels 414 fileira de pixels 415 fileira de pixels Figura 5 501 dispositivo de processamento de imagem 502 filtro Figura 6 600 codificador 601 dispositivo de processamento de imagem 602 filtro Figura 7 700 decodificador 701 dispositivo de processamento de imagem 702 filtro Figura 8 800 borda de bloco Figura 9 1000 primeira etapa 1001 segunda etapa 1002 terceira etapa
[0143] Detalhes adicionais desta divulgação são apresentados no Apêndice A.
[0144] Embora diversas modalidades tenham sido fornecidas na presente divulgação, deve ser entendido que os sistemas e métodos revelados podem ser incorporados em muitas outras formas específicas sem divergir do espírito ou escopo da presente divulgação. Os presentes exemplos devem ser considerados como ilustrativos e não restritivos, e a intenção não é ficar limitado aos detalhes fornecidos neste documento. Por exemplo, os vários elementos ou componentes podem ser combinados ou integrados em outro sistema ou certos recursos podem ser omitidos, ou não implementados.
[0145] Além disso, técnicas, sistemas, subsistemas e métodos descritos e ilustrados nas várias modalidades como distintos ou separados podem ser combinados ou integrados com outros sistemas, módulos, técnicas ou métodos sem divergir do escopo da presente divulgação. Outros itens mostrados ou discutidos como acoplados ou acoplados diretamente ou comunicando uns com os outros podem ser acoplados indiretamente ou comunicando por meio de alguma interface, dispositivo ou componente intermediário, seja eletricamente, mecanicamente ou de outro modo. Outros exemplos de mudanças, substituições e alterações são determináveis por uma pessoa versada na técnica e podem ser obtidos sem divergir do espírito e escopo revelados neste documento.
[0146] É dada a seguir uma listagem de modalidades específicas. Números de referência entre parênteses devem ser interpretados como exemplares e não como limitantes. Modalidade 1. Um dispositivo de processamento de imagem (501, 601, 701) para uso em um codificador de imagem (600) e/ou em um decodificador de imagem (700), para desblocar uma borda de bloco (403, 800) entre um primeiro bloco de codificação (401) e um segundo bloco de codificação (402) de uma imagem codificada com um código de bloco, em que o dispositivo de processamento de imagem (501, 601, 701) compreende um filtro (502, 602, 702) para filtrar a borda de bloco (403, 800), configurado para, para pelo menos alguns dos pixels a serem filtrados, dentro de uma faixa de desblocagem a partir da borda de bloco (403, 800), a faixa de desblocagem sendo perpendicular à borda de bloco (403, 800): determinar um valor de pixel filtrado a partir de um valor de pixel original do pixel e de pelo menos um valor de pixel adicional, determinar um valor de recorte do pixel, dependente de uma distância do pixel a partir da borda de bloco (403, 800), e recortar o valor de pixel filtrado, usando o valor de recorte, resultando em um valor de pixel desblocado.
Modalidade 2. O dispositivo de processamento de imagem (501, 601, 701) da modalidade 1, em que o valor de recorte é uma quantidade permitida máxima de mudança entre o valor de pixel original e o valor de pixel desblocado.
Modalidade 3. O dispositivo de processamento de imagem (501, 601, 701) da modalidade 1 ou 2, em que o recorte do valor de pixel filtrado, usando o valor de recorte, resultando no valor de pixel desblocado, compreende: estabelecer o valor de pixel desblocado para o valor de pixel filtrado, se o valor absoluto da diferença entre o valor de pixel filtrado e o valor de pixel desblocado não exceder o valor de recorte do pixel,
estabelecer o valor de pixel desblocado para o valor de pixel original mais o valor de recorte do pixel, se o valor de pixel filtrado exceder o valor de pixel original mais o valor de recorte, e estabelecer o valor de pixel desblocado para o valor de pixel original menos o valor de recorte do pixel, se o valor de pixel filtrado for menor que o valor de pixel original menos o valor de recorte.
Modalidade 4. O dispositivo de processamento de imagem (501, 601, 701) de qualquer uma das modalidades 1 a 3, em que o filtro (502, 602, 702) é adaptado para determinar o valor de recorte do pixel dependente de uma distância do pixel a partir da borda de bloco (403, 800), ao usar uma função ou uma tabela de pesquisa.
Modalidade 5. O dispositivo de processamento de imagem (501, 601, 701) de qualquer uma das modalidades 1 a 3, em que o filtro (502, 602, 702) é adaptado para determinar o valor de recorte do pixel dependente de uma distância do pixel a partir da borda de bloco (403, 800), ao usar uma função, a qual diminui monotonicamente com distância crescente do pixel a partir da borda de bloco (403, 800). Modalidade 6. O dispositivo de processamento de imagem (501, 601, 701) da modalidade 5, em que a função é uma função exponencial.
Modalidade 7. O dispositivo de processamento de imagem (501, 601, 701) da modalidade 6, em que a função é tc’ = tc + (tc >> i), em que tc’ é o valor de recorte, em que tc é um valor constante, em que i é a distância do pixel a partir da borda de bloco (403, 800), e em que >> significa um deslocamento para a direita.
Modalidade 8. O dispositivo de processamento de imagem (501, 601, 701) da modalidade 5, em que a função é uma função linear.
Modalidade 9. O dispositivo de processamento de imagem (501, 601, 701) da modalidade 8, em que a função é tc’ = tc + (tc - (i * x), em que tc’ é o valor de recorte, em que tc é um valor constante, em que i é a distância do pixel a partir da borda de bloco (403, 800) e em que x é um valor constante.
Modalidade 10. O dispositivo de processamento de imagem (501, 601, 701) de qualquer uma das modalidades 1 a 9, em que o filtro (502, 602, 702) é adaptado para, para cada pixel a ser filtrado, dentro da faixa de desblocagem a partir da borda de bloco (403, 800), a faixa de desblocagem sendo perpendicular à borda de bloco (403, 800): determinar o valor de pixel filtrado a partir do valor de pixel original do pixel e do pelo menos um valor de pixel adicional, determinar o valor de recorte do pixel dependente da distância do pixel a partir da borda de bloco (403, 800), e recortar o valor de pixel filtrado, usando o valor de recorte, resultando no valor de pixel desblocado.
Modalidade 11. O dispositivo de processamento de imagem (501, 601, 701) de qualquer uma das modalidades 1 a 9, em que o filtro (502, 602, 702) é adaptado para determinar se uma borda de bloco (403, 800) precisa ser filtrada, com base em um número de linhas de pixels de decisão sendo menor que um número de linhas de pixels nos blocos circundando a borda de bloco (403, 800), no caso de uma borda de bloco vertical (403, 800), e em um número de fileiras de pixels de decisão, sendo menor que um número de fileiras de pixels nos blocos circundando a borda de bloco (403, 800), no caso de uma borda de bloco horizontal (403, 800), em que o filtro (502, 602, 702) é adaptado para, para cada pixel a ser filtrado, não em uma fileira de pixels de decisão ou linha de pixels de decisão, dentro de uma faixa de desblocagem a partir da borda de bloco (403, 800), a faixa de desblocagem sendo perpendicular à borda de bloco (403, 800): determinar o valor de pixel filtrado a partir do valor de pixel original do pixel e do pelo menos um valor de pixel adicional, determinar o valor de recorte do pixel dependente da distância do pixel a partir da borda de bloco (403, 800), recortar o valor de pixel filtrado, usando o valor de recorte, resultando no valor de pixel desblocado, e em que o filtro (502, 602, 702) é adaptado para, para cada pixel a ser filtrado, em uma fileira de pixels de decisão ou linha de pixels de decisão, dentro de uma faixa de desblocagem a partir da borda de bloco (403, 800), a faixa de desblocagem sendo perpendicular à borda de bloco (403, 800): determinar o valor de pixel filtrado a partir do valor de pixel original do pixel e do pelo menos um valor de pixel adicional, e recortar o valor de pixel filtrado, usando um valor de recorte constante, resultando no valor de pixel desblocado.
Modalidade 12. O dispositivo de processamento de imagem (501, 601, 701) de qualquer uma das modalidades 1 a 11, em que o filtro (502, 602, 702) tem um comprimento de derivação de filtro de 1, ou pelo menos dois, ou pelo menos três, ou pelo menos quatro, ou pelo menos cinco, ou pelo menos seis,
ou pelo menos sete, ou pelo menos oito, ou pelo menos nove, ou pelo menos dez, ou pelo menos onze, ou pelo menos doze, ou pelo menos treze, ou pelo menos quatorze, ou pelo menos quinze ou pelo menos dezesseis pixels. Modalidade 13. Um codificador para codificar uma imagem, compreendendo um dispositivo de processamento de imagem (501, 601, 701) de qualquer uma das modalidades 1 a 12. Modalidade 14. Um decodificador para decodificar uma imagem, compreendendo um dispositivo de processamento de imagem (501, 601, 701) de qualquer uma das modalidades 1 a
12. Modalidade 15. Um método de desblocagem para desblocar uma borda de bloco (403, 800) entre um primeiro bloco de codificação e um segundo bloco de codificação de uma imagem codificada com um código de bloco, em que o método compreende, para pelo menos alguns dos pixels a serem filtrados, dentro de uma faixa de desblocagem a partir da borda de bloco (403, 800), a faixa de desblocagem sendo perpendicular à borda de bloco (403, 800): determinar (1000) um valor de pixel filtrado a partir de um valor de pixel original do pixel e de pelo menos um valor de pixel adicional, determinar (1001) um valor de recorte do pixel, dependente de uma distância do pixel a partir da borda de bloco (403, 800), e recortar (1002) o valor de pixel filtrado, usando o valor de recorte, resultando em um valor de pixel desblocado. Modalidade 16. Um método de codificação para codificar uma imagem, compreendendo um método de desblocagem da modalidade 15.
Modalidade 17. Um método de decodificação para decodificar uma imagem, compreendendo um método de desblocagem da modalidade 15. Modalidade 18. Um produto de programa de computador compreendendo um código de programa para realizar o método de acordo com qualquer uma das modalidades 15 a 17 quando o programa de computador é executado em um computador.

Claims (25)

REIVINDICAÇÕES EMENDADAS
1. Dispositivo de processamento de imagem (501, 601, 701) para uso em um codificador de imagem (600) e/ou em um decodificador de imagem (700), para desblocar uma borda de bloco (403, 800) entre um primeiro bloco (401) e um segundo bloco (402) de uma imagem, o dispositivo de processamento de imagem (501, 601, 701) caracterizado pelo fato de que compreende um filtro (502, 602, 702) para filtrar a borda de bloco (403, 800), configurado para, para pelo menos um pixel a ser filtrado, dentro de uma faixa de desblocagem a partir da borda de bloco (403, 800): determinar um valor de pixel filtrado a partir de um valor de pixel original do pixel; e recortar o valor de pixel filtrado, usando um valor de recorte do pixel, resultando em um valor de pixel desblocado, em que o valor de recorte depende de uma distância do pixel a partir da borda de bloco (403, 800).
2. Dispositivo de processamento de imagem (501, 601, 701), de acordo com a reivindicação 1, caracterizado pelo fato de que o valor de recorte é uma quantidade permitida máxima de mudança entre o valor de pixel original e o valor de pixel desblocado.
3. Dispositivo de processamento de imagem (501, 601, 701), de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o recorte do valor de pixel filtrado, usando o valor de recorte, resultando no valor de pixel desblocado, compreende: estabelecer o valor de pixel desblocado para o valor de pixel filtrado se o valor absoluto da diferença entre o valor de pixel filtrado e o valor de pixel desblocado não exceder o valor de recorte do pixel, estabelecer o valor de pixel desblocado para o valor de pixel original mais o valor de recorte do pixel se o valor de pixel filtrado exceder o valor de pixel original mais o valor de recorte, e estabelecer o valor de pixel desblocado para o valor de pixel original menos o valor de recorte do pixel se o valor de pixel filtrado for menor que o valor de pixel original menos o valor de recorte.
4. Dispositivo de processamento de imagem (501, 601, 701), de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o filtro (502, 602, 702) é adaptado para determinar o valor de recorte do pixel dependente da distância do pixel a partir da borda de bloco (403, 800) ao usar uma função ou uma tabela de pesquisa.
5. Dispositivo de processamento de imagem (501, 601, 701), de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o valor de recorte é uma função monotonicamente decrescente da distância do pixel a partir da borda de bloco (403, 800).
6. Dispositivo de processamento de imagem (501, 601, 701), de acordo com a reivindicação 5, caracterizado pelo fato de que a função monotonicamente decrescente é uma função linear.
7. Dispositivo de processamento de imagem (501, 601, 701), de acordo com a reivindicação 6, caracterizado pelo fato de que a função é tc’ = tc + (tc – (i * x), em que tc’ é o valor de recorte, em que tc é um valor constante, em que i é a distância do pixel a partir da borda de bloco (403, 800) e em que x é um valor constante.
8. Dispositivo de processamento de imagem (501, 601, 701), de acordo com qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que o filtro (502, 602, 702) é configurado para, para cada pixel a ser filtrado, dentro da faixa de desblocagem a partir da borda de bloco (403, 800): determinar o valor de pixel filtrado a partir do valor de pixel original do pixel, determinar o valor de recorte do pixel dependente da distância do pixel a partir da borda de bloco (403, 800), e recortar o valor de pixel filtrado usando o valor de recorte, resultando no valor de pixel desblocado.
9. Dispositivo de processamento de imagem (501, 601, 701), de acordo com qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que o filtro (502, 602, 702) é configurado para determinar se uma borda de bloco (403, 800) precisa ser filtrada, com base em um número de linhas de pixels de decisão sendo menor que um número de linhas de pixels nos blocos circundando a borda de bloco (403, 800), no caso de uma borda de bloco vertical (403, 800), e em um número de fileiras de pixels de decisão sendo menor que um número de fileiras de pixels nos blocos circundando a borda de bloco (403, 800), no caso de uma borda de bloco horizontal (403, 800), em que o filtro (502, 602, 702) é configurado para, para cada pixel a ser filtrado, não em uma fileira de pixels de decisão ou linha de pixels de decisão, dentro de uma faixa de desblocagem a partir da borda de bloco (403, 800), a faixa de desblocagem sendo perpendicular à borda de bloco (403, 800): determinar o valor de pixel filtrado a partir do valor de pixel original do pixel e do pelo menos um valor de pixel adicional, determinar o valor de recorte do pixel dependente da distância do pixel a partir da borda de bloco (403, 800), recortar o valor de pixel filtrado, usando o valor de recorte, resultando no valor de pixel desblocado, e em que o filtro (502, 602, 702) é configurado para, para cada pixel a ser filtrado, em uma fileira de pixels de decisão ou linha de pixels de decisão, dentro de uma faixa de desblocagem a partir da borda de bloco (403, 800), a faixa de desblocagem sendo perpendicular à borda de bloco (403, 800): determinar o valor de pixel filtrado a partir do valor de pixel original do pixel e do pelo menos um valor de pixel adicional, e recortar o valor de pixel filtrado, usando um valor de recorte constante, resultando no valor de pixel desblocado.
10. Dispositivo de processamento de imagem (501, 601, 701), de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que o filtro (502, 602, 702) tem um comprimento de derivação de filtro de pelo menos dois, ou pelo menos três, ou pelo menos quatro, ou pelo menos cinco, ou pelo menos seis, ou pelo menos sete, ou pelo menos oito, ou pelo menos nove, ou pelo menos dez, ou pelo menos onze, ou pelo menos doze, ou pelo menos treze, ou pelo menos quatorze, ou pelo menos quinze ou pelo menos dezesseis pixels.
11. Dispositivo de processamento de imagem (501, 601, 701), de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que a faixa de desblocagem é um número de pixels em uma linha sendo perpendicular à borda de bloco (403, 800).
12. Dispositivo de processamento de imagem (501, 601, 701), de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que o filtro é configurado para determinar o valor de pixel filtrado a partir do valor de pixel original do pixel e de pelo menos um valor de pixel adicional.
13. Codificador para codificar uma imagem, caracterizado pelo fato de que compreende um dispositivo de processamento de imagem (501, 601, 701) conforme definido em qualquer uma das reivindicações 1 a 12.
14. Decodificador para decodificar uma imagem, caracterizado pelo fato de que compreende um dispositivo de processamento de imagem (501, 601, 701) conforme definido em qualquer uma das reivindicações 1 a 12.
15. Método de desblocagem para desblocar uma borda de bloco (403, 800) entre um primeiro bloco e um segundo bloco de uma imagem codificada com um código de bloco, o método caracterizado pelo fato de que compreende, para pelo menos um pixel a ser filtrado, dentro de uma faixa de desblocagem a partir da borda de bloco (403, 800): determinar (1000) um valor de pixel filtrado a partir de um valor de pixel original do pixel; e recortar (1002) o valor de pixel filtrado, usando um valor de recorte do pixel, resultando em um valor de pixel desblocado, em que o valor de recorte depende de uma distância do pixel a partir da borda de bloco (403, 800).
16. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que o valor de recorte é uma quantidade permitida máxima de mudança entre o valor de pixel original e o valor de pixel desblocado.
17. Método, de acordo com a reivindicação 15 ou 16, caracterizado pelo fato de que o recorte do valor de pixel filtrado, usando o valor de recorte, resultando no valor de pixel desblocado, compreende: estabelecer o valor de pixel desblocado para o valor de pixel filtrado se o valor absoluto da diferença entre o valor de pixel filtrado e o valor de pixel desblocado não exceder o valor de recorte do pixel, estabelecer o valor de pixel desblocado para o valor de pixel original mais o valor de recorte do pixel se o valor de pixel filtrado exceder o valor de pixel original mais o valor de recorte, e estabelecer o valor de pixel desblocado para o valor de pixel original menos o valor de recorte do pixel se o valor de pixel filtrado for menor que o valor de pixel original menos o valor de recorte.
18. Método, de acordo com qualquer uma das reivindicações 15 a 17, caracterizado pelo fato de que o filtro (502, 602, 702) é adaptado para determinar o valor de recorte do pixel dependente da distância do pixel a partir da borda de bloco (403, 800) ao usar uma função ou uma tabela de pesquisa.
19. Método, de acordo com qualquer uma das reivindicações 15 a 17, caracterizado pelo fato de que o valor de recorte é uma função monotonicamente decrescente da distância do pixel a partir da borda de bloco (403, 800).
20. Método, de acordo com a reivindicação 19,
caracterizado pelo fato de que a função monotonicamente decrescente é uma função linear.
21. Método, de acordo com qualquer uma das reivindicações 15 a 20, caracterizado pelo fato de que a faixa de desblocagem é um número de pixels em uma linha sendo perpendicular à borda de bloco (403, 800).
22. Método, de acordo com qualquer uma das reivindicações 15 a 21, caracterizado pelo fato de que o filtro é configurado para determinar o valor de pixel filtrado a partir do valor de pixel original do pixel e de pelo menos um valor de pixel adicional.
23. Método de codificação para codificar uma imagem, caracterizado pelo fato de que compreende um método de desblocagem conforme definido em qualquer uma das reivindicações 15 a 22.
24. Método de decodificação para decodificar uma imagem, caracterizado pelo fato de que compreende um método de desblocagem conforme definido em qualquer uma das reivindicações 15 a 22.
25. Meio não transitório legível por computador, caracterizado pelo fato de que armazena um código de programa que, quando executado por um dispositivo de computador ou por um processador, induz o dispositivo de computador ou o processador para realizar o método de conforme definido em qualquer uma das reivindicações 15 a
24.
BR112021005561-4A 2018-09-24 2019-09-24 dispositivo de processamento de imagem e método para realizar desblocagem otimizada de qualidade BR112021005561A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862735712P 2018-09-24 2018-09-24
US62/735,712 2018-09-24
PCT/CN2019/107409 WO2020063555A1 (en) 2018-09-24 2019-09-24 Image processing device and method for performing quality optimized deblocking

Publications (1)

Publication Number Publication Date
BR112021005561A2 true BR112021005561A2 (pt) 2021-06-29

Family

ID=69952413

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021005561-4A BR112021005561A2 (pt) 2018-09-24 2019-09-24 dispositivo de processamento de imagem e método para realizar desblocagem otimizada de qualidade

Country Status (11)

Country Link
US (2) US11800154B2 (pt)
EP (2) EP3850855B1 (pt)
JP (2) JP7367755B2 (pt)
KR (2) KR20230141945A (pt)
CN (4) CN113411575B (pt)
AU (2) AU2019351346B2 (pt)
BR (1) BR112021005561A2 (pt)
CA (1) CA3113538A1 (pt)
MX (1) MX2021003365A (pt)
NZ (1) NZ774817A (pt)
WO (1) WO2020063555A1 (pt)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116051662B (zh) * 2023-03-31 2023-06-23 腾讯科技(深圳)有限公司 图像处理方法、装置、设备和介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4114494B2 (ja) * 2002-03-07 2008-07-09 セイコーエプソン株式会社 画像処理装置及び画像処理プログラム、並びに画像処理方法
US20050024487A1 (en) * 2003-07-31 2005-02-03 William Chen Video codec system with real-time complexity adaptation and region-of-interest coding
WO2007049150A2 (en) * 2005-09-28 2007-05-03 Arc International (Uk) Limited Architecture for microprocessor-based systems including simd processing unit and associated systems and methods
US20110170793A1 (en) * 2008-09-24 2011-07-14 Kazushi Sato Image processing apparatus and method
KR101001676B1 (ko) 2009-04-27 2010-12-15 전남대학교산학협력단 화소 분류를 이용한 에지보존 디블로킹 필터
WO2011096869A1 (en) * 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) De-blocking filtering control
US9185430B2 (en) 2010-03-15 2015-11-10 Mediatek Singapore Pte. Ltd. Deblocking filtering method and deblocking filter
KR101682147B1 (ko) 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
US9565436B2 (en) * 2011-01-14 2017-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for filter control and a filtering control device
EP2664149B1 (en) * 2011-01-14 2016-11-16 Telefonaktiebolaget LM Ericsson (publ) Deblocking filtering
CN103385001B (zh) * 2011-02-25 2017-08-08 太阳专利托管公司 用于去块的高效率决策
CN103404147B (zh) * 2011-03-10 2016-08-31 联发科技(新加坡)私人有限公司 去区块滤波器方法及装置
CN107197258B (zh) * 2011-03-30 2020-04-28 Lg 电子株式会社 视频解码装置和视频编码装置
RU2607243C2 (ru) * 2011-06-28 2017-01-10 Сони Корпорейшн Устройство обработки изображений и способ обработки изображений
PL2754295T3 (pl) * 2011-09-09 2018-07-31 Sun Patent Trust Wykorzystanie decyzji o niskim stopniu złożoności do filtrowania deblokującego
EP3654647A1 (en) * 2011-11-03 2020-05-20 Sun Patent Trust Efficient rounding for deblocking
US20130170562A1 (en) * 2011-12-28 2013-07-04 Qualcomm Incorporated Deblocking decision functions for video coding
AR092786A1 (es) 2012-01-09 2015-05-06 Jang Min Metodos para eliminar artefactos de bloque
CN102547296B (zh) * 2012-02-27 2015-04-01 开曼群岛威睿电通股份有限公司 移动估计加速电路、移动估计方法及环路滤波加速电路
US10575021B2 (en) * 2012-07-03 2020-02-25 Telefonaktiebolaget Lm Ericsson (Publ) Controlling deblocking filtering
US9092856B2 (en) * 2013-10-31 2015-07-28 Stmicroelectronics Asia Pacific Pte. Ltd. Recursive de-banding filter for digital images
US9906790B2 (en) * 2014-03-14 2018-02-27 Qualcomm Incorporated Deblock filtering using pixel distance
US20180146213A1 (en) * 2015-06-05 2018-05-24 Telefonaktiebolaget Lm Ericsson (Publ) Filtering for video processing
JP7094076B2 (ja) * 2016-08-19 2022-07-01 沖電気工業株式会社 映像符号化装置、プログラム及び方法、並びに、映像復号装置、プログラム及び方法、並びに、映像伝送システム
EP3297282A1 (en) * 2016-09-15 2018-03-21 Thomson Licensing Method and apparatus for video coding with adaptive clipping
US20180091812A1 (en) 2016-09-23 2018-03-29 Apple Inc. Video compression system providing selection of deblocking filters parameters based on bit-depth of video data
CN106604039B (zh) * 2016-12-28 2020-07-31 北京奇艺世纪科技有限公司 一种滤波方法及装置
US20180192071A1 (en) * 2017-01-05 2018-07-05 Mediatek Inc. Decoder-side motion vector restoration for video coding

Also Published As

Publication number Publication date
WO2020063555A1 (en) 2020-04-02
KR102584455B1 (ko) 2023-10-05
JP7367755B2 (ja) 2023-10-24
JP2022500942A (ja) 2022-01-04
AU2019351346B2 (en) 2023-07-13
US20240107077A1 (en) 2024-03-28
AU2023248068A1 (en) 2023-10-26
CN113411575A (zh) 2021-09-17
EP3850855A1 (en) 2021-07-21
CN117528079A (zh) 2024-02-06
KR20230141945A (ko) 2023-10-10
KR20210058939A (ko) 2021-05-24
MX2021003365A (es) 2021-05-27
EP3850855B1 (en) 2023-11-01
CN113411575B (zh) 2022-07-22
CN117834865A (zh) 2024-04-05
AU2019351346A1 (en) 2021-05-13
NZ774817A (en) 2023-07-28
US20210281884A1 (en) 2021-09-09
CA3113538A1 (en) 2020-04-02
EP3850855A4 (en) 2021-11-10
CN112740706A (zh) 2021-04-30
US11800154B2 (en) 2023-10-24
EP4221229A1 (en) 2023-08-02
JP2023160855A (ja) 2023-11-02

Similar Documents

Publication Publication Date Title
US11870986B2 (en) Encoder, a decoder and corresponding methods using an adaptive loop filter
US20200404339A1 (en) Loop filter apparatus and method for video coding
WO2020135317A1 (en) Devices and methods for coding a picture by partitioning it into slices comprising tiles
WO2020147782A1 (en) An encoder, a decoder and corresponding methods of deblocking filter adaptation
US20240107077A1 (en) Image Processing Device and Method For Performing Quality Optimized Deblocking
AU2018415347B2 (en) An image processing device and method for performing efficient deblocking
US20210144365A1 (en) Method and apparatus of reference sample interpolation for bidirectional intra prediction
BR112020026248A2 (pt) Dispositivo e método para intrapredição de um bloco de predição de uma imagem de vídeo, e meio de armazenamento
WO2020063552A1 (en) Method and apparatus for image filtering with adaptive multiplier coefficients, and terminal device
RU2793920C2 (ru) Устройство обработки изображений и способ выполнения устранения блочности с оптимизацией качества
US20230128496A1 (en) Motion compensation with a sparse optical flow representation
CN116647683A (zh) 量化处理方法和装置