BR112018005997B1 - Codificador de vídeo, decodificador de vídeo, métodos para a codificação e a decodificação preditivas e meio de armazenamento legível em computador - Google Patents

Codificador de vídeo, decodificador de vídeo, métodos para a codificação e a decodificação preditivas e meio de armazenamento legível em computador Download PDF

Info

Publication number
BR112018005997B1
BR112018005997B1 BR112018005997-8A BR112018005997A BR112018005997B1 BR 112018005997 B1 BR112018005997 B1 BR 112018005997B1 BR 112018005997 A BR112018005997 A BR 112018005997A BR 112018005997 B1 BR112018005997 B1 BR 112018005997B1
Authority
BR
Brazil
Prior art keywords
block
adaptive
frame
filter
sharpening filter
Prior art date
Application number
BR112018005997-8A
Other languages
English (en)
Other versions
BR112018005997A2 (pt
Inventor
Sergey Yurievich Ikonin
Maxim Borisovitch Sychev
Victor Alexeevich Stepin
Original Assignee
Huawei Technologies Co., Ltd
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Priority claimed from PCT/RU2015/000612 external-priority patent/WO2017052407A1/en
Publication of BR112018005997A2 publication Critical patent/BR112018005997A2/pt
Publication of BR112018005997B1 publication Critical patent/BR112018005997B1/pt

Links

Images

Abstract

CODIFICADOR DE VÍDEO, DECODIFICADOR DE VÍDEO E MÉTODOS PARA A CODIFICAÇÃO E A DECODIFICAÇÃO PREDITIVAS. A presente invenção se refere a um codificador de vídeo (400, 600) para a codificação preditiva, para uma fluxo de bits de vídeo codificado, de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência, compreendendo um buffer (401, 601) configurado para armazenar o bloco original, um buffer (408, 608) configurado para armazenar o bloco de predição e um filtro de nitidez adaptativo (409, 609) configurado para aplicar uma filtragem de nitidez adaptativa espacial ao bloco de predição.

Description

CAMPO TÉCNICO
[001] A presente invenção se refere de maneira geral ao campo de processamento de vídeo, e especificamente se refere a um codificador de vídeo e a um decodificador de vídeo para dar suporte a uma codificação preditiva. A presente invenção se refere ainda a um método de codificação preditiva de um vídeo e a um método para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva. Finalmente, a presente invenção se refere as um programa de computador que tem um código de programa para a implementação de tal método.
ANTECEDENTES
[002] Os sistemas de vídeo conhecidos usam codificação preditiva para aumentar a eficiência de codificação e de decodificação. Exemplos de codificação preditiva incluem a predição inter-camada de codificação escalonável de vídeo e a predição inter-quadro.
[003] A codificação-decodificação de vídeo escalonável é a resposta da indústria de telecomunicação à demanda crescente para a transmissão de vídeo para dispositivos móveis incluindo smartfones, tablets ou notebooks assim como para outros equipamentos que têm uma ampla variedade de tamanhos de telas e capacidades de computação. Além disso, os sistemas de transmissão de vídeo modernos usando a Internet e redes móveis são tipicamente caracterizados por uma ampla faixa de qualidades de conexão, que depende de mecanismos de compartilhamento de recursos adaptativos. Em tais ambientes heterogêneos com qualidades de conexão variáveis e dispositivos de recepção diferentes, uma adaptação flexível de conteúdo uma vez codificado é desejável.
[004] Neste sentido, o codificador-decodificador de vídeo escalonável gera um fluxo de bits em camadas. Uma estrutura em camadas de qualquer conteúdo de vídeo escalonável pode ser definida como sendo a combinação de uma camada base e pelo menos uma camada de melhoramento adicional. A camada base corresponde ao menor desempenho de vídeo suportado, ao passo que as camadas de melhoramento permitem o refinamento da camada base mencionada. O melhoramento que pode ser obtido pelas camadas de melhoramento pode ser relativo à qualidade, à taxa de quadros ou refinamento espacial com uma resolução espacial mais alta.
[005] A Figura 1 mostra um codificador de vídeo 100 para a codificação preditiva inter-camada de uma série de quadros de vídeo 101 de acordo com a técnica anterior, por exemplo, proveniente da codificação de vídeo escalonável H.265/SHVC. O codificador 100 compreende uma camada de melhoramento espacial 102 para receber o quadro de vídeo 101 e para gerar um fluxo de bits de camada de melhoramento codificado. O codificador 100 compreende ainda um filtro de redução da taxa de amostragem 107 para gerar um quadro de vídeo com a taxa de amostragem reduzida 111 a partir do quadro de vídeo 101, e uma camada base espacial 112 para o recebimento do quadro de vídeo com a taxa de amostragem reduzida 111 e para gerar um fluxo de bits de camada base codificado. O codificador 100 compreende ainda uma unidade multiplexadora 118 para multiplexar o fluxo de bits de camada de melhoramento codificada e o fluxo de bits de camada base codificada e para gerar um fluxo de bits de vídeo codificado.
[006] A camada base espacial 112 compreende unidades sucessivas que são uma unidade de codificação escalonável temporal 113 que recebe o quadro de vídeo com a taxa de amostragem reduzida 111, uma unidade de predição 114, uma unidade de codificação da camada base 115, uma unidade de codificação escalonável de SNR 116, e um filtro de aumento da taxa de amostragem 117. As respectivas saídas da unidade de codificação da camada base 115 e da unidade de codificação escalonável de SNR 116 são providas à unidade multiplexadora 118. A camada de melhoramento espacial 102 compreende sucessivas unidades que são uma unidade de codificação escalonável temporal 103 que recebe o quadro de vídeo 101, uma unidade de predição 104, uma unidade de codificação de camada base 105, e uma unidade de codificação escalonável de SNR 106. As respectivas saídas da unidade de codificação de camada base 105 e da unidade de codificação escalonável de SNR 106 são providas à unidade multiplexadora 118.
[007] A saída do filtro de aumento da taxa de amostragem 117 da camada base espacial 112 corresponde a um bloco de predição para uma predição inter-camada e é introduzida na unidade de predição 104 da camada de melhoramento espacial. As informações provenientes da camada de base são usadas para aumentar a relação de compressão das camadas de melhoramento. Isso tem o efeito de que a taxa de bits dos sinais de vídeo pode ser reduzida.
[008] No entanto, tal predição conhecida inter-camada para camada de melhoramento espacial usa aumento da taxa de amostragem do quadro de camada base. O quadro de camada base com a taxa de amostragem aumentada desse modo sofre com bordas desfocadas e uma quantidade pequena de detalhes de alta frequência, uma vez que estes detalhes não estão presentes no quadro de referência da camada base. Além disso, a qualidade do quadro com a taxa de amostragem aumentada também depende das propriedades do filtro de aumento de taxa de amostragem 117. Os filtros de taps curtos podem suprimir altas frequências e renderizar um quadro interpolado adicionalmente desfocado. Por outro lado, os filtros de taps longos podem conservar altas frequências mas geraram alguns artefatos de ringing na proximidade de bordas nítidas.
SUMÁRIO
[009] Tendo reconhecido as desvantagens e os problemas citados acima, a presente invenção pretende melhorar a técnica anterior. Em particular, o objetivo da presente invenção consiste em propor um codificador de vídeo, um método de codificação, um decodificador de vídeo, e um método de decodificação para uma codificação e uma decodificação melhoradas de um fluxo de vídeo.
[0010] A presente invenção especialmente pretende melhorar a eficiência da codificação preditiva. Particularmente, a invenção também pretende se ajustar melhor às características de imagens locais. É ainda um objetivo da invenção melhorar a codificação preditiva aumentando a nitidez das bordas e reduzindo os artefatos de ringing em blocos de predição de modo adaptativo ao conteúdo de imagem local.
[0011] O objetivo mencionado acima da presente invenção é atingido com a solução prevista nas reivindicações independentes anexas. As implementações vantajosas da presente invenção são ainda definidas nas reivindicações dependentes respectivas.
[0012] Um primeiro aspecto da presente invenção propõe um codificador de vídeo para a codificação preditiva, para um fluxo de bits de vídeo codificado, de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência. O codificador de vídeo compreende um buffer configurado para armazenar o bloco original. O codificador de vídeo compreende um filtro de nitidez adaptativo configurado para aplicar uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[0013] Deste modo, aplicando-se um filtro de nitidez adaptativo espacial aumenta-se a eficiência de predição, e por exemplo a eficiência de predição inter-camada ou inter- quadro. Na medida em que a presença de artefatos depende da existência de bordas e da sua intensidade, é vantajoso se prover um filtro que seja adaptativo ao conteúdo de imagem local, isto é, que seja adaptativo à existência e à intensidade de bordas nos blocos. Esta solução também permite uma adaptação a características locais para pequenas regiões de quadro de codificação. Na predição inter-camada, os artefatos de ringing causados por filtro de aumento de taxa de amostragem podem ser reduzidos mantendo-se ao mesmo tempo a qualidade de bordas. O desfoque das bordas causadas por predição a partir de um quadro de resolução mais baixa pode ser reduzido. Além disso, o excedente de sinalização pode ser reduzido usando- se um filtro de nitidez adaptativo com um único coeficiente adaptativo. O excedente de sinalização pode ser reduzido explorando-se as informações sobre intensidade de bordas calculada a partir da imagem de camada base já transmitida. A qualidade subjetiva das bordas pode ser aumentada nos quadros reconstruídos.
[0014] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, para a codificação preditiva, no fluxo de bits de vídeo codificado, de uma pluralidade de blocos originais do quadro original com base respectivamente em uma pluralidade de blocos de predição obtidos do quadro de referência, o filtro de nitidez adaptativo é configurado para ter a possibilidade de aplicar uma filtragem de nitidez diferente a cada um de uma pluralidade de blocos de predição. Deste modo, o filtro pode ser adaptativo ao conteúdo de imagem local, isto é, ser adaptativo à existência e intensidade de bordas nos blocos.
[0015] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o codificador de vídeo é adequado para a codificação preditiva inter-camada de conteúdo de vídeo escalonável compreendendo uma camada base e pelo menos uma camada de melhoramento. O quadro original é um quadro de uma camada de melhoramento. O quadro de referência é um quadro de uma camada base reconstruída. O codificador de vídeo compreende um filtro de aumento de taxa de amostragem configurado para aumentar a taxa de amostragem do quadro de referência, o bloco de predição sendo um bloco do quadro de referência com a taxa de amostragem aumentada. Deste modo, a eficiência de predição inter-camada pode ser melhorada.
[0016] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o codificador de vídeo é adequado para a codificação preditiva inter-quadros do conteúdo de vídeo que compreende quadros subsequentes. O quadro original é um dos quadros subsequentes. O quadro de referência é um dos quadros subsequentes reconstruídos. O codificador de vídeo compreende um buffer configurado para armazenar um bloco de referência do quadro de referência. O codificador de vídeo compreende uma unidade de estimação de movimento configurado para obter um vetor de movimento que reflete o movimento entre o bloco de referência e o bloco original. O codificador de vídeo compreende uma unidade de compensação de movimento configurada para gerar o bloco de predição a partir do bloco de referência com base no vetor de movimento. Deste modo, a eficiência de predição inter- quadro pode ser melhorada.
[0017] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o codificador de vídeo compreende uma unidade de controle configurada para controlar pelo menos um de um desvio seletivo do filtro de nitidez adaptativo e de uma aplicação seletiva do filtro de nitidez adaptativo. O codificador de vídeo compreende uma unidade de codificação configurada para adicionar ao filtro de nitidez do fluxo de bits de vídeo codificado informações refletindo o pelo menos um do desvio seletivo e da aplicação seletiva do filtro de nitidez adaptativo. Deste modo, uma decisão pode ser tomada pela unidade de controle para aplicar ou se desviar do filtro de nitidez. A decisão pode então ser adaptada a cada caso particular, por exemplo ao fluxo de vídeo a ser codificada particular. Além disso, pode se desviar do filtro de nitidez adaptativo para economizar recursos computacionais no codificador de vídeo. Por outro lado, o filtro de nitidez adaptativo pode ser aplicado se a prioridade for dada, por exemplo, à redução de artefatos.
[0018] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, a unidade de codificação é configurada para codificar as informações do filtro de nitidez usando uma codificação aritmética binária adaptativa ao contexto, CABAC. O codificador de vídeo compreende uma unidade de estimação de intensidade de bordas configurada para estimar uma intensidade de borda no bloco de predição ou em um bloco de referência do quadro de referência. O codificador de vídeo compreende um comutador de contexto de CABAC configurado para selecionar um contexto do CABAC dependendo da intensidade de borda estimada.
[0019] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, a unidade de controle é configurada para controlar o pelo menos um do desvio seletivo e da aplicação seletiva com base em uma minimização de um bloco residual, dito bloco residual sendo a diferença entre o bloco original e o bloco de predição, ou com base em um critério de custo, isto é, por exemplo, uma otimização da curva de taxa-distorção. Deste modo, a possibilidade de se desviar do filtro de nitidez ou de se aplicar o mesmo pode ainda ser usada para melhorar a codificação preditiva. Escolhendo-se a alternativa que minimiza o bloco residual e correspondentemente aplicando ou desviando do filtro de nitidez, a quantidade de dados e, por exemplo, a quantidade de coeficientes de transformada a serem codificados podem ser reduzidas.
[0020] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de nitidez adaptativo é configurado para ser controlado por pelo menos um parâmetro adaptativo. O codificador de vídeo compreende uma unidade de controle configurada para determinar um valor de parâmetro do parâmetro adaptativo e fornecer o valor de parâmetro determinado ao filtro de nitidez adaptativo. O codificador de vídeo compreende uma unidade de codificação configurada para adicionar ao parâmetro adaptativo do fluxo de bits de vídeo codificado as informações sobre o determinado valor de parâmetro do parâmetro adaptativo. Deste modo, o filtro de nitidez adaptativo pode ser otimizado e a mesma filtragem pode ser aplicada pelo codificador e pelo decodificador.
[0021] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, a unidade de controle é configurada para fornecer diferentes valores de parâmetros para o parâmetro adaptativo e para selecionar um dos diferentes valores de parâmetro com base em uma minimização de um bloco residual, dito bloco residual sendo a diferença entre o bloco original e o bloco de predição, ou com base em um critério de custo tal como, por exemplo, uma otimização da curva taxa-distorção. Deste modo o filtro de nitidez adaptativo pode ser ainda mais otimizado.
[0022] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de nitidez adaptativo é um filtro não linear configurado para ser controlado por um único parâmetro adaptativo. Deste modo, o excedente de sinalização pode ser reduzido.
[0023] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de nitidez adaptativo compreende uma unidade de cálculo de mapas de bordas adaptada para gerar um mapa de bordas de um bloco fonte, dito bloco fonte sendo o bloco de predição ou um bloco de referência do quadro de referência. O filtro de nitidez adaptativo compreende um filtro de desfoque adaptado para desfocar o mapa de bordas do bloco fonte. O filtro de nitidez adaptativo compreende um filtro de passa alta adaptado para gerar, por filtragem de passa alta do mapa de bordas desfocadas, um vetor de derivada para cada posição do bloco fonte. O filtro de nitidez adaptativo compreende uma unidade de escalonamento adaptada para gerar um vetor de deslocamento escalonando o vetor de derivada com um coeficiente de intensidade de nitidez. O filtro de nitidez adaptativo compreende uma unidade de distorção adaptada para distorcer o bloco de predição com base no vetor de deslocamento. O parâmetro adaptativo inclui o coeficiente de intensidade de nitidez. Deste modo, esta estrutura do filtro de nitidez adaptativo define um filtro de nitidez não linear que pode fornecer vantajosamente melhores resultados em termos de eliminação de artefato de ringing. Além disso, o uso do coeficiente de intensidade de nitidez como parâmetro adaptativo implica que somente um parâmetro adaptativo é necessário, o que reduz ainda mais o excedente de sinalização.
[0024] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, as informações de parâmetro adaptativo e/ou as informações de filtro de nitidez são adicionadas a um nível de bloco para cada bloco de predição, para uma região arbitrária ou regular do quadro, a um nível de quadro, a um nível de GOP (grupo de imagens), a um nível de PPS (conjunto de parâmetros de imagem) ou a um nível de SPS (conjunto de parâmetros de sequência). Deste modo, é possível se ajustar as informações de filtro de nitidez e/ou informações de parâmetro adaptativo a uma granularidade desejada, de modo que possa ser otimizada a sinalização.
[0025] Um segundo aspecto da presente invenção propõe um método para a codificação preditiva, e uma fluxo de bits de vídeo codificado, de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência. O método compreende o armazenamento do bloco original. O método compreende o armazenamento do bloco de predição. O método compreende uma etapa de filtragem de nitidez adaptativa compreendendo a aplicação de uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[0026] Outras características ou implementações do método de acordo com o segundo aspecto da invenção podem efetuar a funcionalidade do codificador de vídeo de acordo com o primeiro aspecto da invenção e as suas diferentes formas de implementação.
[0027] Um terceiro aspecto da presente invenção propõe um decodificador de vídeo para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência reconstruído. O decodificador de vídeo compreende uma unidade de decodificação configurada para reconstruir o quadro de referência a partir do fluxo de bits de vídeo codificado. O decodificador de vídeo compreende um buffer configurado para armazenar o bloco de predição obtido do quadro de referência reconstruído. O decodificador de vídeo compreende um filtro de nitidez adaptativo configurado para aplicar uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[0028] Deste modo, as vantagens obtidas em relação ao codificador de vídeo de acordo com o primeiro aspecto são também conferidas em relação ao decodificador de vídeo de acordo com o terceiro aspecto.
[0029] Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, o decodificador de vídeo é adequado para a decodificação do fluxo de bits de vídeo codificado obtido por codificação preditiva inter- camada de conteúdo escalonável de vídeo que compreende uma camada base e pelo menos uma camada de melhoramento. O quadro original é um quadro de uma camada de melhoramento. O quadro de referência é um quadro de uma camada base reconstruída. O decodificador de vídeo compreende um filtro de aumento de taxa de amostragem configurado para aumentar a taxa de amostragem do quadro de referência reconstruído, dito bloco de predição sendo um bloco do quadro de referência com a taxa de amostragem aumentada.
[0030] Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, o decodificador de vídeo é adequado para a decodificação do fluxo de bits de vídeo codificado obtido por codificação preditiva inter- quadros do conteúdo de vídeo compreendendo quadros subsequentes. O quadro original é um dos quadros subsequentes. O quadro de referência é um dos quadros subsequentes reconstruídos. O decodificador de vídeo compreende um buffer configurado para armazenar um bloco de referência do quadro de referência extraído. O decodificador de vídeo compreende uma unidade de decodificação configurada para extrair do fluxo de bits de vídeo codificado, um vetor de movimento que reflete o movimento entre o bloco de referência e o bloco original. O decodificador de vídeo compreende uma unidade de compensação de movimento configurada para gerar o bloco de predição a partir do bloco de referência com base no vetor de movimento.
[0031] Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, o decodificador de vídeo compreende uma unidade de decodificação configurada para extrair, do fluxo de bits de vídeo codificado, as informações de filtro de nitidez que refletem pelo menos um de um desvio seletivo do filtro de nitidez adaptativo e de uma aplicação seletiva do filtro de nitidez adaptativo ao bloco de predição. O decodificador de vídeo compreende uma unidade de controle configurada para controlar o pelo menos um do desvio seletivo e da aplicação seletiva dependendo das informações de filtro de nitidez extraídas. Deste modo pode ficar assegurado que tanto o codificador de vídeo como o decodificador de vídeo desempenham a mesma predição.
[0032] Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, a unidade de decodificação é configurada para decodificar as informações de filtro de nitidez de acordo com uma codificação aritmética binária adaptativa a contexto, CABAC. O decodificador de vídeo compreende uma unidade de estimação de intensidade de borda, para estimar uma intensidade de borda no bloco de predição ou em um bloco de referência do quadro de referência. O decodificador de vídeo compreende um comutador de contexto de CABAC configurado para selecionar um contexto do CABAC dependendo da intensidade de borda estimada.
[0033] Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, o filtro de nitidez adaptativo é configurado para ser controlado para o pelo menos um parâmetro adaptativo. O decodificador de vídeo compreende uma unidade de decodificação configurada para extrair, do fluxo de bits de vídeo codificado, as informações de parâmetro adaptativo sobre um valor de parâmetro do parâmetro adaptativo. O decodificador de vídeo compreende uma unidade de controle configurada para controlar o filtro de nitidez adaptativo de acordo com as informações de parâmetro adaptativo extraídas. Deste modo, pode ser assegurado que tanto o codificador de vídeo como o decodificador de vídeo efetuam a mesma adaptação do filtro de nitidez e que o vídeo obtido pelo decodificador de vídeo corresponde ao vídeo codificado pelo codificador de vídeo.
[0034] Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, o filtro de nitidez adaptativo é um filtro não linear configurado para ser controlado por um único parâmetro adaptativo. Deste modo pode ser ainda mais reduzido o excedente de sinalização.
[0035] Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, o filtro de nitidez adaptativo compreende uma unidade de cálculo de mapa de bordas adaptado para gerar um mapa de bordas de um bloco fonte, sendo o bloco fonte o bloco de predição ou um bloco de referência do quadro de referência. O filtro de nitidez adaptativo compreende um filtro de desfoque adaptado para desfocar o mapa de bordas do bloco fonte. O filtro de nitidez adaptativo compreende um filtro de passa alta adaptado para gerar, por filtragem de passa alta do mapa de bordas desfocadas, um vetor de derivada para cada posição do bloco fonte. O filtro de nitidez adaptativo compreende uma unidade de escalonamento adaptada para gerar um vetor de deslocamento por escalonamento do vetor de derivada com um coeficiente de intensidade de nitidez. O filtro de nitidez adaptativo compreende uma unidade de distorção adaptada para distorcer o bloco de predição com base no vetor de deslocamento. O parâmetro adaptativo inclui o coeficiente de intensidade de nitidez. Deste modo, os artefatos podem ser reduzidos mantendo-se ao mesmo tempo limitado o excedente de sinalização.
[0036] Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, as informações de parâmetro adaptativo e/ou as informações de filtro de nitidez são extraídas a um nível de bloco para cada bloco de predição, para uma região arbitrária ou regular do quadro, a um nível de quadro, a um nível de GOP (grupo de imagens), a um nível de PPS (conjunto de parâmetros de imagem) ou a um nível de SPS (conjunto de parâmetros de sequência). Deste modo, é possível se ajustar as informações de filtro de nitidez e/ou informações de parâmetro adaptativo a uma granularidade desejada, de modo que possa ser otimizada a sinalização.
[0037] Um quarto aspecto da presente invenção propõe um método para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência reconstruído. O método compreende uma etapa de decodificação que compreende a reconstrução do quadro de referência a partir do fluxo de bits de vídeo codificado. O método compreende o armazenamento do bloco de predição obtido do quadro de referência reconstruído. O método compreende uma etapa de filtragem de nitidez adaptativa que compreende a aplicação de uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[0038] Outras características ou implementações do método de acordo com o quarto aspecto da invenção pode efetuar a funcionalidade do decodificador de vídeo de acordo com o terceiro aspecto da invenção e suas formas diferentes de implementação.
[0039] Um quinto aspecto da presente invenção propõe um programa de computador tendo um código de programa para a efetuação de tal método de codificação e/ou de decodificação quando o programa de computador rodar em um dispositivo de computação.
[0040] Deve ser observado que todos os dispositivos, elementos, unidades e meios descritos no presente pedido poderiam ser implementados nos elementos de software ou hardware ou qualquer tipo de combinação deles. Todas as etapas que são conduzidas pelas diversas entidades descritas no presente pedido assim como as funcionalidades descritas para serem implementadas pelas diversas entidades são destinadas a significar que a entidade respectiva está adaptada ou configurada para conduzir as etapas e funcionalidades respectivas. Mesmo se, na descrição que segue de modalidades específicas, uma funcionalidade ou etapa específica for totalmente constituída por entidades eternas não refletidas na descrição de um elemento detalhado específico daquela entidade que desempenha essa etapa específica ou funcionalidade, deve ser evidente para os versados na técnica que estes métodos e funcionalidades podem ser implementados em elementos respectivos de software ou hardware ou qualquer tipo de combinação deles.
DESCRIÇÃO SUCINTA DOS DESENHOS
[0041] Os aspectos e formas de implementação da presente invenção citados acima serão explicados na descrição que segue de modalidades específicas com referência aos desenhos anexos, em que: Figura 1 mostra uma vista geral de um codificador de vídeo para codificação preditiva inter-camada de acordo com a técnica anterior, Figura 2 mostra uma vista geral de um codificador de vídeo para a codificação preditiva inter-camada de acordo com uma modalidade da presente invenção, Figura 3 mostra um filtro de nitidez adaptativo de acordo com uma modalidade da presente invenção, Figura 4 mostra um codificador de vídeo para codificação preditiva inter-camada de acordo com uma modalidade da presente invenção, Figura 5 mostra um decodificador de vídeo para codificação preditiva inter-camada de acordo com uma modalidade da presente invenção, Figura 6 mostra um codificador de vídeo para codificação preditiva inter-quadros de acordo com uma modalidade da presente invenção, Figura 7 mostra um decodificador de vídeo para a codificação preditiva inter-quadros de acordo com uma modalidade da presente invenção, Figura 8 mostra um método de codificação de vídeo de acordo com uma modalidade da presente invenção, e Figura 9 mostra um método de decodificação de vídeo de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DETALHADA DE MODALIDADES
[0042] De acordo com uma modalidade geral da presente invenção, é proposto um codificador de vídeo para codificação preditiva, para um fluxo de bits de vídeo codificado, de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência. O codificador de vídeo compreendendo um buffer configurado para armazenar o bloco original, um buffer configurado para armazenar o bloco de predição, e um filtro de nitidez adaptativo configurado para aplicar uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[0043] Particularmente, para a codificação preditiva, no fluxo de bits de vídeo codificado, de uma pluralidade de blocos originais do quadro original baseados respectivamente em uma pluralidade de blocos de predição obtidos do quadro de referência, o filtro de nitidez adaptativo é configurado para ter a possibilidade de aplicar uma filtragem de nitidez diferente a cada um da pluralidade de blocos de predição.
[0044] De acordo com uma modalidade geral da presente invenção, um decodificador de vídeo para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência reconstruído é proposto. O decodificador de vídeo compreende uma unidade de decodificação configurada para reconstruir o quadro de referência do fluxo de bits de vídeo codificado, um buffer configurado para armazenar o bloco de predição obtido do quadro de referência reconstruído, e um filtro de nitidez adaptativo configurado para aplicar uma filtragem de nitidez adaptativa ao bloco de predição.
[0045] De modo análogo, para a decodificação preditiva de uma pluralidade de blocos originais do quadro original baseados respectivamente em uma pluralidade de blocos de predição obtidos do quadro de referência reconstruído, o filtro de nitidez adaptativo é configurado para ter a possibilidade de aplicar uma filtragem de nitidez diferente a cada um da pluralidade de blocos de predição.
[0046] A Figura 2 mostra uma visão geral de um codificador de vídeo 200 de acordo com uma modalidade da presente invenção. Particularmente, a Figura 2 mostra um codificador de vídeo 200 para a codificação preditiva inter-camada de conteúdo de vídeo escalonável compreendendo uma camada base e pelo menos uma camada de melhoramento.
[0047] O codificador de vídeo 200 compreende uma camada de melhoramento espacial 202 para receber um quadro de vídeo 201 e para gerar um fluxo de bits de camada de melhoramento codificada. O codificador 200 compreende ainda um filtro de redução da taxa de amostragem 208 para gerar um quadro de vídeo com a taxa de amostragem reduzida 211 a partir do quadro de vídeo 201, e uma camada base espacial 212 para receber o quadro de vídeo com a taxa de amostragem reduzida 211 e para gerar um fluxo de bits de camada base codificado. O codificador 200 compreende ainda uma unidade multiplexadora 218 para multiplexar o fluxo de bits de camada de melhoramento codificada e o fluxo de bits de camada base codificada e para gerar um fluxo de bits de vídeo codificado.
[0048] A camada base especial 212 compreende uma unidade de codificação escalonável temporal 213 recebendo o quadro de vídeo com a taxa de amostragem reduzida 211, em que o quadro de vídeo com a taxa de amostragem reduzida 211 apresenta uma resolução inferior à do quadro de vídeo 201. A saída da unidade de codificação escalonável temporal 213 é introduzida em uma unidade de predição 214 que fornece um sinal de predição baseado na versão codificada escalonável temporal do quadro de vídeo com a taxa de amostragem reduzida 211 para uma unidade de codificação de camada base 215. Uma saída da unidade de codificação de camada base 215 é fornecida a uma unidade de codificação escalonável de SNR 216. Saídas respectivas da unidade de codificação de camada base 215 e da unidade de codificação escalonável de SNR 216 são fornecidas à unidade multiplexadora 218.
[0049] A camada de melhoramento espacial 202 compreende unidades sucessivas que são uma unidade de codificação escalonável temporal 203 que recebe o quadro de vídeo 201, uma unidade de predição 204, uma unidade de codificação de camada base 205, e uma unidade de codificação escalonável de SNR 206. Saídas respectivas da unidade de codificação de camada base 205 e da unidade de codificação escalonável de SNR 206 são fornecidas à unidade multiplexadora 218. A unidade multiplexadora 218 gera a fluxo de bits de vídeo codificado multiplexando-se as saídas da unidade de codificação de camada base 215, da unidade de codificação escalonável de SNR, da unidade de codificação de camada base 205 e da unidade de codificação escalonável de SNR 206.
[0050] De acordo com a presente invenção, o bloco de predição gerado pelo filtro de aumento de taxa de amostragem 217 é introduzido em um filtro de nitidez adaptativo 219 configurado para aplicar uma filtragem nítida adaptativa espacial ao bloco de predição. A saída do filtro de aumento da taxa de amostragem 217 da camada base espacial 212 é um bloco de predição para uma codificação preditiva de inter-camada do quadro de vídeo 201 da camada de melhoramento espacial 202. O bloco de predição gerado pelo filtro de aumento da taxa de amostragem gerado pelo filtro de aumento de taxa de amostragem 217 assim como o bloco de predição com a nitidez intensificada gerado pelo filtro de nitidez adaptativo 219 são de preferência ambos transmitidos a um comutador 220 que está conectado à unidade de predição 204 da camada de melhoramento espacial 202. A codificação preditiva do quadro de vídeo 201 da camada de melhoramento espacial 202 pode ser seletivamente baseada na saída do filtro de aumento de amostragem 217 ou da saída do filtro de nitidez adaptativo 219.
[0051] A seguir, a invenção será descrita com referência às figuras 4 e 5 mostrando respectivamente um codificador de vídeo e um decodificador de vídeo para a codificação preditiva inter-camada de acordo com uma modalidade da presente invenção, e com referência às Figuras 6 e 7 mostrando respectivamente um codificador de vídeo e um decodificador de vídeo para a codificação preditiva inter-quadros de acordo com uma modalidade da presente invenção. A Figura 3 mostra uma modalidade do filtro de nitidez adaptativo do, por exemplo, codificador de vídeo para a codificação preditiva inter-camada ou do codificador de vídeo para a codificação preditiva inter- quadros das Figuras 4 e 6.
[0052] A Figura 4 mostra um codificador de vídeo 400 de acordo com uma modalidade da presente invenção, e particularmente um codificador de vídeo 400 para a codificação preditiva inter-camada de conteúdo de vídeo escalonável compreendendo uma camada base e pelo menos uma camada de melhoramento.
[0053] O codificador de vídeo 400 é adequado para a codificação preditiva, para um fluxo de bits de vídeo codificado, de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência. O codificador de vídeo 400 compreende um buffer 401 configurado para armazenar o bloco original, um buffer 408 configurado para armazenar o bloco de predição, e um filtro de nitidez adaptativo 409 configurado para aplicar uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[0054] Dentro do contexto da codificação preditiva inter-camada, o quadro original é um quadro da camada de melhoramento, e o quadro de referência é um quadro de uma camada base reconstruída. O codificador de vídeo 400 compreende ainda um filtro de aumento de taxa de amostragem 407 configurado para aumentar a taxa de amostragem da camada base reconstruída, isto é, para aumentar a taxa de amostragem do quadro de referência. O bloco de predição armazenado no buffer 408 é um bloco do quadro de referência com a taxa de amostragem aumentada.
[0055] Particularmente, o quadro original é um quadro da camada de melhoramento que é atualmente codificada e pode, por exemplo, ser obtido do quadro de vídeo 201 do codificador de vídeo 200 da Figura 2. Por outro lado, o quadro de referência é um quadro da camada base que foi codificada e reconstruída. O quadro de camada base reconstruída pode ser obtido no codificador de vídeo 200 da Figura 2 pela camada base espacial 212 a partir do quadro de vídeo com a taxa de amostragem reduzida 211. A seguir, qualquer referência ao elemento “quadro” pode ser substituído por uma referência ao elemento “imagem”.
[0056] O bloco original armazenado no buffer 401 e o bloco de predição armazenado no buffer 408 e de uma maneira mais geral todos os blocos da presente invenção, são preferivelmente uma área ou subárea respectiva de um quadro. Por exemplo, o bloco original é uma área ou subárea do quadro original, enquanto que o bloco de predição é uma área ou subárea do quadro de referência com a taxa de amostragem aumentada conforme gerado pelo filtro de aumento da taxa de amostragem 407. Tal bloco pode ter um formato regular, como por exemplo um formato regular, ou um formato irregular. Alternativamente, o bloco pode ter o mesmo tamanho que o quadro. Todos os blocos, e particularmente o bloco original e o bloco de predição, têm o mesmo tamanho. O tamanho dos blocos pode ser definido por meio de informações de modo de bloco transmitidas a um decodificador como informações secundárias ou dados com sinalização do fluxo de bits de vídeo codificado. Um bloco pode corresponder a uma unidade de codificação que é uma estrutura de codificação básica da sequência de vídeo de um tamanho predefinido contendo uma parte de um quadro, por exemplo, 64 x 64 píxels.
[0057] Particularmente, o codificador de vídeo 400 compreende ainda unidades para dar suporte a codificação preditiva de vídeo. Por exemplo, o codificador de vídeo 400 compreende uma unidade de transformação e quantização 404 para gerar coeficientes de transformada por meio de uma transformação no domínio de frequência e por quantização dos coeficientes, assim como um codificador de entropia ou unidade de codificação de entropia 405 para a codificação por entropia dos coeficientes quantizados, por exemplo, juntamente com dados de sinalização. A entrada da unidade de transformação e quantização 404 é um bloco residual que pode ser armazenado em um buffer dedicado 403. O bloco residual é gerado por uma unidade de subtração 402 e é definido como sendo a diferença entre o bloco original armazenado no buffer 401 e ou o bloco de predição armazenado no buffer 408 ou um bloco de predição com a nitidez acentuada gerado pelo filtro de nitidez adaptativo 409.
[0058] O codificador de vídeo 400 compreende ainda uma unidade de controle 410 e uma unidade de codificação 414. A unidade de controle 410 é configurada para controlar pelo menos um de um desvio seletivo do filtro de nitidez adaptativo 409 e uma aplicação seletiva do filtro de nitidez adaptativo 409. A unidade de codificação 414 é configurada para adicionar ao fluxo de bits de vídeo codificado informações de filtro de nitidez refletindo o pelo menos um do desvio seletivo e da aplicação seletiva do filtro de nitidez adaptativo 409. A informação de filtro de nitidez é preferivelmente na forma de um sinalizador de aplicação/desvio de nitidez.
[0059] O filtro de nitidez adaptativo 409 pode ser desviado seletivamente e/ou pode ser aplicado seletivamente o mesmo por meio da unidade de controle 410. No caso da aplicação do filtro de nitidez adaptativo 409, o filtro de nitidez adaptativo 409 gera o bloco de predição com a nitidez acentuada e o bloco residual é obtido pela diferença entre o bloco original e o bloco de predição com a nitidez acentuada que é emitida pelo filtro de nitidez adaptativo 409. No caso de desvio do filtro de nitidez adaptativo 409, o bloco residual é obtido pela diferença entre o bloco original e o bloco de predição que está armazenado no buffer 408.
[0060] Particularmente, a unidade de controle 410 é configurada para controlar o pelo menos um do desvio seletivo e da aplicação seletiva com base em uma minimização do bloco residual, ou com base em um critério de custo que é, por exemplo, uma otimização da curva de taxa-distorção. O critério de custo pode ser particularmente aplicado ao bloco residual obtido do bloco de predição com a nitidez acentuada que é emitido pelo filtro de nitidez adaptativo 409, e ao bloco residual obtido do bloco de predição armazenado no buffer 408. Dependendo do resultado da função de custo, o filtro de nitidez adaptativo 409 pode ou ser aplicado ou pode se desviar dele.
[0061] A decisão da unidade de controle 410 para se desviar do filtro de nitidez adaptativo 409 ou para se aplicar o mesmo pode ser transmitida em forma de dados de sinalização dentro do fluxo de bits de vídeo codificado gerada pela unidade de codificação ou unidade de codificação por entropia 405. A unidade de controle 410 transmite as informações de filtro de nitidez à unidade de codificação 414 que adiciona as informações de filtro de nitidez em forma de dados de sinalização no fluxo de bits de vídeo codificado pela unidade de codificação 405.
[0062] Alternativamente, o filtro de nitidez adaptativo 409 pode ser sempre aplicado. Isto significa que o bloco residual é sempre obtido pela diferença entre o bloco original e o bloco de predição com a nitidez acentuada que é emitida pelo filtro de nitidez adaptativo 409. É evidente que neste caso nenhuma sinalização adicional sobre a aplicação ou desvio do filtro de nitidez adaptativo é requerido.
[0063] A unidade de codificação 414 é particularmente configurada para codificar as informações de filtro de nitidez usando-se uma codificação aritmética binária adaptativa a contexto, CABAC. O codificador de vídeo 400 compreende ainda uma unidade de estimação de intensidade de bordas 411, 412 configurado para estimar uma intensidade de borda no bloco de predição, e um comutador de contexto de CABAC 413 configurado para selecionar um contexto do CABAC dependendo da intensidade de borda estimada. Por exemplo, a unidade de estimação de intensidade de borda 411, 412 compreende uma primeira unidade 411 para construir um mapa de bordas do bloco de predição e uma segunda unidade 412 para estimar uma intensidade de bordas do mapa de bordas.
[0064] Além disso, o filtro de nitidez adaptativo 409 é configurado para ser controlado por pelo menos um parâmetro adaptativo. A unidade de controle 410 é configurada para determinar um valor de parâmetro do parâmetro adaptativo e para fornecer o valor de parâmetro determinado ao filtro de nitidez adaptativo 409. O codificador de vídeo 400 também compreende uma unidade de codificação 415 que é configurada para adicionar ao fluxo de bits de vídeo codificado informações de parâmetro adaptativo sobre o valor de parâmetro determinado do parâmetro adaptativo.
[0065] Particularmente, a unidade de controle 410 é configurada para fornecer valores diferentes de parâmetro para o parâmetro adaptativo e para selecionar um dos diferentes valores de parâmetro com base em uma minimização do bloco residual, ou com base em um critério de custo tal como, por exemplo, uma otimização da curva de taxa- distorção.
[0066] A decisão sobre aplicação ou desvio do filtro de nitidez adaptativo 409 e a decisão sobre o valor do parâmetro adaptativo, no caso da aplicação do filtro de nitidez, é assinalada a um decodificador do fluxo de bits de vídeo codificado por meio das informações de filtro de nitidez e das informações de parâmetro adaptativo. Esta sinalização pode ser efetuada para diferentes partes ou para o conteúdo de vídeo. Assim, as informações de parâmetro adaptativo e/ou as informações de filtro de nitidez podem ser adicionadas a um nível de bloco para cada bloco de predição, para uma região arbitrária ou regular do quadro, a um nível de quadro, a um nível de GOP (grupo de imagens), a um nível de PPS (conjunto de parâmetros de imagem) ou a um nível de SPS (conjunto de parâmetros de sequência). A granularidade das informações de parâmetro adaptativo e/ou das informações de filtro de nitidez pode variar.
[0067] Uma modalidade do filtro de nitidez adaptativo 409 é mostrada na Figura 3. O filtro de nitidez adaptativo 300 mostrado na Figura 3 é preferivelmente um filtro não linear. O uso de um filtro de nitidez não linear, em vez de um filtro linear, é preferível para remover artefatos causados pelo filtro de re-amostragem e quantização do quadro de referência. A escolha de um filtro não linear pode reduzir o número de parâmetros adaptativos do filtro de nitidez adaptativo 300. Em particular, o filtro não linear pode utilizar somente um parâmetro adaptativo, de modo o excedente de sinalização do fluxo de bits de vídeo codificado seja reduzido. Embora a presente invenção também abranja o uso de mais de um parâmetro adaptativo para controlar o filtro de nitidez adaptativo, um filtro de nitidez adaptativo que utiliza somente um parâmetro adaptativo é uma modalidade particularmente vantajosa.
[0068] Particularmente, o filtro de nitidez adaptativo 300 compreende uma unidade de cálculo de mapa de bordas 301, 302, um filtro de desfoque 304, um filtro de passa alta 305, uma unidade de escalonamento 306 e uma unidade de distorção 307.
[0069] A unidade de cálculo de mapa de bordas 301, 302 é adaptada para gerar um mapa de bordas de um bloco fonte, dito bloco fonte sendo o bloco de predição armazenado no buffer 408 sendo referido como um bloco de camada base com a taxa de amostragem aumentada na Figura 3. O filtro de desfoque 304 é adaptado para desfocar o mapa de bordas do bloco fonte. O filtro de passa alta 305 é adaptado para gerar, por filtragem de passa alta do mapa de bordas desfocadas, um vetor de derivada (d2x, d2y) para cada posição do bloco fonte. A unidade de escalonamento 306 é adaptada para gerar um vetor de deslocamento (wx, wy) por escalonamento do vetor de derivada (d2x, d2y) com um coeficiente de intensidade de nitidez k. A unidade de distorção 307 é adaptada para distorcer o bloco de predição com base no vetor de deslocamento (wx, wy).
[0070] Deste modo, o parâmetro adaptativo que controla o filtro de nitidez adaptativo 300 é o coeficiente de intensidade de nitidez k. O filtro de nitidez adaptativo 300 mostrado na Figura 3 é uma modalidade da presente invenção tendo somente um parâmetro adaptativo.
[0071] A unidade de cálculo de mapa de bordas 301, 302 pode compreender uma unidade de vetor de gradiente 301 adaptada para gerar um vetor de gradiente (dx, dy) para cada posição do bloco fonte, e uma unidade de comprimento de vetor de gradiente 302 adaptada para calcular o comprimento do vetor de gradiente (dx, dy) de cada posição para gerar o mapa de bordas do bloco fonte. Deste modo, esta estrutura permite a geração de um mapa de bordas que pode ser ainda mais processado pelo filtro de desfoque, pelo filtro de passa alta e pela unidade de escalonamento para gerar o vetor de deslocamento da distorção.
[0072] O vetor de gradiente pode ser obtido tomando-se a primeira derivada separadamente para dx e dy, isto é, separadamente tanto para uma direção horizontal como uma vertical do bloco fonte, aplicando um filtro de Prewitt correspondente, de acordo com as seguintes equações:
Figure img0001
[0073] O mapa bordas pode ser obtido pela unidade de comprimento de vetor de gradiente 302 calculando-se o comprimento de vetor de gradiente de acordo com a seguinte equação:
Figure img0002
[0074] Vantajosamente, o filtro de nitidez 300 compreende uma unidade de corte 303 adaptada para cortar o mapa de bordas do bloco fonte, sendo a unidade de corte 303 localizada entre a unidade de cálculo do mapa de bordas 301, 302 e o filtro de desfoque 304. Deste modo, o corte do mapa de bordas com limiares é vantajoso pois impede o processamento de valores extremamente altos e baixos de vetores de distorção.
[0075] A etapa de desfoque do mapa de bordas cortado pode ser obtido por um filtro de desfoque 304 na forma de um filtro gaussiano que pode ser definido do seguinte modo:
Figure img0003
[0076] O filtro de passa alta é usado para se obter, separadamente para d2x e para d2y, a segunda derivada, por exemplo de acordo com os seguintes:
Figure img0004
[0077] O vetor de deslocamento (wx, wy) é obtido escalonando-se o segundo vetor de derivada (d2x, d2y) com o coeficiente k, em que o coeficiente k pode ser considerado como a intensidade de nitidez, de acordo com as seguintes equações:
Figure img0005
[0078] A unidade de distorção 307 inclui um filtro de interpolação que é, por exemplo, um filtro de interpolação bilinear. A unidade de distorção 307 usa o vetor de deslocamento gerado pela unidade de escalonamento 306.
[0079] Uma unidade de subtração 308 é adaptada para construir a diferença entre o bloco de predição com a nitidez acentuada gerado pela unidade de distorção 307 e o bloco original armazenado no buffer 401, dito bloco original correspondendo ao bloco a ser codificado. A unidade de subtração 308 na verdade era o bloco residual. O filtro de nitidez adaptativo 300, ou a unidade de controle 410 que controla o filtro de nitidez adaptativo 300, é adaptada para encontrar a intensidade de nitidez ótima k, por exemplo, por minimização do bloco residual ou por um critério de custo baseado, por exemplo, na curva de taxa- distorção.
[0080] Voltando à Figura 4, o codificador de vídeo 400 é configurado para selecionar, durante uma otimização, o parâmetro adaptativo mais otimizado do filtro de nitidez adaptativo 409, e a decisão sobre aplicação ou desvio do filtro de nitidez adaptativo para a predição inter-camada poderia ser tomada com base no mínimo de erro de predição ou no critério de custo (taxa/distorção).
[0081] O codificador de vídeo 400 apresenta especialmente um fluxo de processamento que pode ser o seguinte: - O bloco de predição é obtido pela reconstrução e pelo aumento da taxa de amostragem de um quadro de camada base. - O mapa de bordas do bloco de predição é gerado, por exemplo, pela unidade de cálculo de mapa de bordas 301, 302 do filtro de nitidez adaptativo. Alternativamente, o mapa de bordas pode ser gerado pela unidade 411 da unidade de estimação de intensidade de borda 411, 412, dita unidade 411 estando localizada fora do filtro de nitidez adaptativo 409. - A adaptação da nitidez do filtro, isto é, a escolha do parâmetro adaptativo, é efetuada. Vantajosamente, o mapa de bordas gerado poderia ser usado para a adaptação da filtragem. - Uma decisão é tomada, por exemplo, pela unidade de controle 410 sobre o tipo de predição, consistindo o tipo de predição na aplicação ou no desvio do filtro de nitidez adaptativo 409. A decisão pode ser baseada em uma medição da qualidade de predição, por exemplo, um mínimo de erro residual, ou em um critério de custo, por exemplo baseado em uma cura de taxa/distorção. - O mapa de bordas já gerado é usado para estimar a intensidade das bordas no bloco de predição. A intensidade de Borda é estimada, por exemplo, calculando-se a média dos valores do mapa de bordas do bloco de predição. - A intensidade de borda estimada é usada como comutador de contexto para CABAC e o tipo de predição que consiste na aplicação do filtro de nitidez adaptativo 409 ou no desvio dele é codificado em forma de informações de filtro de nitidez. Em outras palavras, o tipo de predição é comprimido usando-se CABAC com um comutador de contexto controlado pela intensidade de borda. O comutador de contexto pode ser efetuado por comparação da intensidade de borda estimada com um limiar dado. Se a intensidade de borda estimada se encontrar acima do limiar, então é usado um primeiro contexto. Se a intensidade de borda estimada se encontrar abaixo do limiar, então é usado um segundo contexto. Em modalidades vantajosas podem ser usados mais de dois níveis de intensidade de borda e um número maior de contextos de CABAC correspondentes. - Se o filtro de nitidez adaptativo 409 for aplicado, então a intensidade de nitidez é codificada como informações de parâmetro adaptativo. - Os coeficientes são calculados para o bloco residual pela unidade de transformação e quantização 404, e os coeficientes são codificados pela unidade de codificação 405.
[0082] A Figura 5 mostra um decodificador de vídeo de acordo com uma modalidade da presente invenção, e particularmente um decodificador de vídeo 500 para a decodificação preditiva inter-camada.
[0083] O decodificador de vídeo 500 é adequado para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência reconstruído. O decodificador de vídeo 500 compreende uma unidade de decodificação configurada para a reconstrução do quadro de referência a partir do fluxo de bits de vídeo codificado, um buffer 514 configurado para armazenar o bloco de predição obtido do quadro de referência reconstruído e um filtro de nitidez adaptativo 507 configurado para aplicar uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[0084] Dentro do contexto da decodificação preditiva inter-camada, o quadro original é um quadro da camada de melhoramento, e o quadro de referência é um quadro de uma camada base reconstruída. O decodificador de vídeo 500 compreende ainda um filtro de aumento de taxa de amostragem 513 configurado para aumentar a taxa de amostragem da camada base reconstruída, isto é, aumentar a taxa de amostragem do quadro de referência. O bloco de predição armazenado no buffer 514 é um bloco do quadro de referência com a taxa de amostragem aumentada.
[0085] O decodificador de vídeo 500 compreende ainda uma unidade de decodificação 512 configurada para extrair, do fluxo de bits de vídeo codificado, informações de filtro de nitidez que refletem pelo menos um de um desvio seletivo do filtro de nitidez adaptativo 507 e de uma aplicação seletiva do filtro de nitidez adaptativo 507. O decodificador de vídeo 500 compreende uma unidade de controle 508 configurada para controlar o pelo menos um do desvio seletivo e da aplicação seletiva dependendo das informações de filtro de nitidez extraídas. As informações de filtro de nitidez podem se encontrar na forma de um sinalizador de aplicação/desvio de filtro de nitidez. Alternativamente, o filtro de nitidez adaptativa 507 pode ser sempre aplicado.
[0086] Particularmente, a unidade de decodificação 512 é configurada para decodificar as informações de filtro de nitidez de acordo com um CABAC. O decodificador de vídeo compreende uma unidade de estimação de intensidade de borda 510, 511 configurada para estimar uma intensidade de borda no bloco de predição. O decodificador de vídeo compreende um comutador de contexto de CABAC 509 configurado para selecionar um contexto do CABAC dependendo da intensidade de borda estimada. Particularmente, a unidade de estimação de intensidade de borda 510, 511 pode compreender uma primeira unidade 511 para a construção de um mapa de bordas do bloco de predição, e uma segunda unidade 510 para a estimação de uma intensidade de borda com base no mapa de bordas.
[0087] O filtro de nitidez adaptativo 507 é particularmente configurado para ser controlado por pelo menos um parâmetro adaptativo. Além disso, o decodificador de vídeo compreende uma unidade de decodificação 506 configurada para extrair, do fluxo de bits de vídeo codificado e particularmente do fluxo de bits de camada de melhoramento codificada, informações de parâmetro adaptativo sobre um valor de parâmetro do parâmetro adaptativo. A unidade de controle 508 é configurada para controlar o filtro de nitidez adaptativo 507 de acordo com as informações do parâmetro adaptativo extraídas.
[0088] O filtro de nitidez adaptativo 507 do decodificador de vídeo 500 apresenta, de preferência, a mesma estrutura e as mesmas que o filtro de nitidez adaptativo 300 mostrado na Figura 3, com as seguintes diferenças. Uma diferença entre estes dois consiste no fato de que o filtro de nitidez adaptativo 507 não compreende, de preferência, a unidade de subtração 308. Em seguida, no decodificador de vídeo 500, o parâmetro adaptativo, isto é, o coeficiente k, não é ajustado por meio da unidade de subtração 308 e pela minimização do bloco residual. Em vez disso, o parâmetro adaptativo é ajustado no decodificador de vídeo 500, de preferência dependendo das informações do parâmetro adaptativo extraídas em forma de dados de sinalização do fluxo de bits codificado.
[0089] O decodificador de vídeo 500 pode compreender ainda unidades que consistem em uma unidade de decodificação 501 para a decodificação do fluxo de bits de vídeo de melhoramento codificada recebidas e para obter de modo correspondente coeficientes de transformada residual quantizados. Os coeficientes de transformada residual quantizados são introduzidos na unidade de quantização inversa e transformação inversa 502 para gerar um bloco residual armazenado em um buffer 503. O bloco residual é adicionado por um adicionador 504 à saída da unidade de controle 508. Dependendo das informações de filtro de nitidez extraídas, o bloco residual é então adicionado ao bloco de predição armazenado no buffer 514, ou ao bloco de predição com a nitidez acentuada emitido pelo filtro de nitidez adaptativo 507. A saída do adicionados 504 é então um bloco reconstruído da camada de melhoramento.
[0090] O decodificador de vídeo 500 apresenta particularmente um fluxo de processamento que pode ser o seguinte: - O bloco de predição é obtido pela reconstrução e o aumento da taxa de amostragem de um quadro de camada base. - O mapa de bordas do bloco de predição é gerado, por exemplo, pela unidade de cálculo de mapa de bordas 301, 302 do filtro de nitidez adaptativo. Alternativamente, o mapa de bordas pode ser gerado pela unidade 511 da unidade de estimação de intensidade de borda 511, 512, dita unidade 511 estando localizada fora do filtro de nitidez adaptativo 509. - O mapa de bordas gerado é usado para estimar uma intensidade de borda no bloco de predição. A intensidade de borda é estimada, por exemplo, calculando-se a média dos valores do mapa de bordas do bloco de predição. - A intensidade de borda estimada é usada como um comutador de contexto para CABAC e é decodificado o tipo de predição que consiste na aplicação ou no desvio do filtro de nitidez adaptativo 507, isto é, na utilização das informações de filtro de nitidez. O comutador de contexto pode ser efetuado por comparação da intensidade de borda estimada com um limiar dado. Se a intensidade de borda estimada se encontrar acima do limiar, então um primeiro contexto é usado. Se a intensidade de borda estimada se encontrar abaixo do limiar, então um segundo contexto é usado. Em modalidades vantajosas podem ser usados mais de dois níveis de intensidade de borda e um número maior de contextos de CABAC correspondentes. - Se, com base nas informações de filtro de nitidez, for determinado que o filtro de nitidez adaptativo 507 será aplicado, a intensidade de nitidez, isto é, as informações de parâmetro adaptativo, é decodificada. O filtro de nitidez adaptativo 507 é aplicado com a intensidade de nitidez decodificada. O mapa de bordas de bordas já gerado poderia ser usado para a nitidez para economizar recursos. - O bloco residual é decodificado por meio das unidades 501, 502, 503. Dependendo das informações de filtro de nitidez, o bloco residual é adicionado ao bloco de predição ou ao bloco de predição com a nitidez acentuada para ser obtido um bloco reconstruído da camada de melhoramento.
[0091] A Figura 6 mostra um codificador de vídeo 600 para a codificação preditiva inter-quadros de acordo com uma modalidade da presente invenção.
[0092] O codificador de vídeo 600 é adequado para a codificação preditiva, para um fluxo de bits de vídeo codificado, de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência. O codificador de vídeo 600 compreende um buffer 601 configurado para armazenar o bloco original, um buffer 608 configurado para armazenar o bloco de predição, e um filtro de nitidez adaptativo 609 configurado para aplicar uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[0093] Dentro do contexto da codificação preditiva inter-quadros do conteúdo de vídeo compreendendo quadros subsequentes, o quadro original é um dos quadros subsequentes, e o quadro de referência é um dos quadros subsequentes reconstruídos. O codificador de vídeo 600 compreende um buffer 606 configurado para armazenar um bloco de referência do quadro de referência. O codificador de vídeo 600 compreende uma unidade de estimação de movimento 616 configurada para obter um vetor de movimento que reflete o movimento entre o bloco de referência e o bloco original, e uma unidade de compensação de movimento 607 configurada para gerar o bloco de predição do bloco de referência com base no vetor de movimento.
[0094] A estrutura e as unidades restantes do codificador de vídeo 600 são análogas à estrutura e unidades do codificador de vídeo 400. O codificador de vídeo 600 compreende uma unidade de controle 610 análoga à unidade de controle 410. O codificador de vídeo 600 compreende uma unidade de codificação 614 análoga à unidade de codificação 414. O codificador de vídeo 600 compreende uma unidade de estimação de intensidade de bordas 611, 612 análoga à unidade de estimação de intensidade de bordas 411, 412 e um comutador de contexto de CABAC 613 análogo ao comutador de contexto CABAC 413. O codificador de vídeo 600 compreende uma unidade de codificação 615 análoga à unidade de codificação 415. O vídeo compreende ainda de modo análogo uma unidade de subtração 602 para gerar o bloco residual, um buffer 603 para o bloco residual, uma unidade de transformação e quantização 604 e uma unidade de codificação 605 para codificar os coeficientes quantizados.
[0095] Uma diferença entre o codificador de vídeo 600 e o codificador de vídeo 400 consiste no fato de que, em vez de um quadro de camada base com a taxa de amostragem aumentada, é usado como quadro de referência um quadro anteriormente codificado. Em seguida é aplicada uma compensação de movimento para a obtenção do bloco de predição. A compensação de movimento compreende com vantagem uma interpolação de movimento.
[0096] Alternativamente à estrutura do codificador de vídeo 400, a unidade de estimação de intensidade de borda 611, 612 pode estimar a intensidade de borda do bloco de referência em vez de estimar a intensidade de borda do bloco de predição.
[0097] Além disso, o filtro de nitidez adaptativo da Figura 3 pode ser usado como filtro de nitidez adaptativo 609 do codificador de vídeo 600. Embora a unidade de cálculo de mapa de bordas 301, 302 do codificador de vídeo 400 seja adaptada para gerar um mapa de bordas de um bloco fonte que é o bloco de predição, o bloco fonte do filtro de nitidez adaptativo do codificador de vídeo 600 pode ser ou o bloco de predição ou alternativamente o bloco de referência. De acordo com esta alternativa, o vetor de deslocamento (wx, wy) é derivado do bloco de referência e a distorção é então aplicada ao bloco de predição, usando-se o vetor de deslocamento obtido, o que é vantajoso pois economiza recursos computacionais do lado do codificador.
[0098] Além destas diferenças e alternativas entre o codificador de vídeo 400 e 600, outros aspectos descritos acima com referência ao codificador de vídeo 400 também se aplicam ao codificador de vídeo 600.
[0099] O codificador de vídeo 600 apresenta especialmente um fluxo de processamento que pode ser o seguinte: - O vetor de movimento é obtido por um procedimento de estimação de movimento. - O mapa de bordas do bloco de referência é gerado. - A adaptação do filtro de nitidez, isto é, a escolha do parâmetro adaptativo, é executada. Vantajosamente, o mapa de bordas gerado poderia ser usado para a filtragem. - Uma decisão é tomada, por exemplo, pela unidade de controle 610, sobre o tipo de predição, consistindo o tipo de predição na aplicação ou no desvio do filtro de nitidez adaptativo 609. A decisão pode ser baseada em uma medição da qualidade de predição, em um mínimo de erro residual, por exemplo, ou em um critério de custo, tal como um critério de custo baseado na curva de taxa/distorção. - O mapa de bordas já gerado é usado para estimar uma intensidade de bordas do bloco de referência. A intensidade de bordas é estimada, calculando-se a média dos valores do mapa de bordas do bloco de referência, por exemplo. - A intensidade de bordas é usada como comutador de contexto para CABAC e o tipo de predição que consiste na aplicação ou no desvio do filtro de nitidez adaptativo 609 é codificado como informações de filtro de nitidez. O comutador de contexto pode ser efetuado por comparação da intensidade de bordas estimada com um dado limiar. Se a intensidade de borda estimada se encontrar acima do limiar então é usado um primeiro contexto. Se a intensidade de bordas estimada se encontra abaixo do limiar então é usado um segundo contexto. Em modalidades vantajosas podem ser usados mais de dois níveis de intensidade de bordas e um número maior de contextos de CABAC correspondentes. - Se o filtro de nitidez adaptativo 609 for aplicado, então a intensidade de nitidez é codificada em forma de informações de parâmetro adaptativo. - Os coeficientes são calculados para o bloco residual pela unidade de transformação e quantização 604 e os coeficientes são codificados pela unidade de codificação 605.
[00100] A Figura 7 mostra um decodificador de vídeo de acordo com uma modalidade da presente invenção, e particularmente um decodificador de vídeo 700 para a decodificação preditiva.
[00101] O decodificador de vídeo 700 é adequado para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência reconstruído. O decodificador de vídeo 700 compreende uma unidade de decodificação configurada para reconstruir o quadro de referência a partir do fluxo de bits de vídeo codificado, um buffer 714 configurado para armazenar o bloco de predição obtido do quadro de referência reconstruído, e um filtro de nitidez adaptativo 707 configurado para aplicar uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[00102] Dentro do contexto de decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva inter-quadros do conteúdo de vídeo compreendendo quadros subsequentes, o quadro original é um dos quadros sequências, e o quadro de referência é um dos quadros subsequentes reconstruídos. O decodificador de vídeo 700 compreende um buffer 715 configurado para armazenar um bloco de referência do quadro de referência extraído, uma unidade de decodificação 716 configurada para extrair, do fluxo de bits de vídeo codificado, um vetor de movimento que reflete o movimento entre o bloco de referência e o bloco original, e uma unidade de compensação de movimento 713 configurada para gerar o bloco de predição a partir do bloco de referência com base no vetor de movimento.
[00103] O decodificador de vídeo 700 compreende a seguir uma unidade de decodificação 712 configurada para extrair, do fluxo de bits de vídeo codificado, informações de filtro de nitidez refletindo pelo menos um de um desvio seletivo do filtro de nitidez adaptativo 707 e de uma aplicação seletiva do filtro de nitidez adaptativo 707. O decodificador de vídeo 700 compreende uma unidade de controle 708 configurada para controlar o pelo menos um do desvio seletivo e da aplicação seletiva dependendo das informações de filtro de nitidez extraídas. As informações de filtro de nitidez podem se encontrar na forma de um sinalizador de aplicação/desvio do filtro de nitidez. Alternativamente, o filtro de nitidez adaptativo 707 pode ser sempre aplicado.
[00104] Particularmente, a unidade de decodificação 712 é configurada para decodificar as informações de filtro de nitidez de acordo com um CABAC. O decodificador de vídeo compreende uma unidade de estimação de intensidade de borda 710, configurada para estimar uma intensidade de bordas com base no mapa de bordas calculado pela unidade 711 usando o bloco de referência armazenado no buffer 715. O decodificador de vídeo compreende um comutador de contexto de CABAC 709 configurado para selecionar um contexto do CABAC dependendo da intensidade de borda estimada. Particularmente, a unidade de estimação de intensidade de bordas 710, 711 pode compreender uma primeira unidade 711 para a construção de um mapa de bordas do bloco de referência, e uma segunda unidade 710 para estimar a intensidade de bordas com base no mapa de bordas.
[00105] O filtro de nitidez adaptativo 707 é particularmente configurado para ser controlado por pelo menos um parâmetro adaptativo. A seguir o decodificador de vídeo compreende uma unidade de decodificação 706 configurada para extrair, do fluxo de bits de vídeo codificado, informações de parâmetro adaptativo sobre um valor de parâmetro do parâmetro adaptativo. A unidade de controle 708 é configurada para controlar o filtro de nitidez adaptativo 707 de acordo com as informações de parâmetro adaptativo extraídas.
[00106] O filtro de nitidez adaptativo 707 do decodificador de vídeo 700 apresenta, de preferência, a mesma estrutura que o filtro de nitidez adaptativo 609 do codificador de vídeo 600 com as seguintes diferenças. Uma diferença entre estes dois filtros consiste no fato de que o filtro de nitidez adaptativo 707 preferivelmente não compreende a unidade de subtração 308. Mais adiante, no decodificador de vídeo 700, o parâmetro adaptativo, isto é, o coeficiente k, não é ajustado por meio da unidade de subtração 708 e pela minimização do bloco residual. Em vez disso o parâmetro adaptativo é ajustado no decodificador de vídeo 700, de preferência dependendo das informações de parâmetro adaptativo extraídas em forma de dados de sinalização do fluxo de bits codificado.
[00107] O decodificador de vídeo 700 pode compreender outras unidades que são: uma unidade de decodificação 701 para a decodificação do fluxo de bits de vídeo codificado recebida e para correspondentemente obter coeficientes de transformada residuais quantizados. Os coeficientes de transformada residuais quantizados são introduzidos na unidade de quantização inversa e de transformação inversa 702 para gerar um bloco residual armazenado em um buffer 703. O bloco residual é adicionado pelo adicionador 704 à saída da unidade de controle 708. Dependendo das informações de filtro de nitidez extraídas, o bloco residual é então adicionado ao bloco de predição armazenado no buffer 714, ou ao bloco de predição com a nitidez acentuada emitido pelo filtro de nitidez adaptativo 707. A saída do adicionador 704 é então um bloco reconstruído de um quadro dado.
[00108] O decodificador de vídeo 700 apresenta especialmente um fluxo de processamento que pode ser o seguinte: - O vetor de movimento é obtido em forma de dados de sinalização a partir do fluxo de bits de vídeo codificado. - Um mapa de bordas é gerado a partir do bloco de referência. - O mapa de bordas gerado é usado para estimar uma intensidade de bordas do bloco de referência. A intensidade de bordas é estimada, por exemplo, calculando-se a média dos valores do mapa de bordas. - A intensidade de bordas estimada é usada como comutador de contexto para CABAC e o tipo de predição que consiste na aplicação ou no desvio do filtro de nitidez adaptativo 707, isto é, as informações de filtro de nitidez, é decodificado. O comutador de contexto pode ser efetuado comparando a intensidade de bordas estimada com um limiar dado. Se a intensidade de borda estimada se encontrar acima de um limiar então um primeiro contexto é usado. Se a intensidade de borda estimada se encontra abaixo do limiar, então um segundo contexto é usado. Em modalidades vantajosas podem ser usados mais de dois níveis de intensidade de bordas e um número maior de contextos de CABAC correspondentes. - Se, com base nas informações de filtro de nitidez, for determinado que o filtro de nitidez adaptativo 707 será aplicado, então a intensidade de nitidez, isto é, as informações de parâmetro adaptativo, é decodificada. O filtro de nitidez adaptativo 707 é aplicado com a intensidade de nitidez decodificada. O mapa de bordas já gerado poderia ser usado para acentuar a nitidez para economizar recursos. - O bloco residual é decodificado por meio das unidades 701, 702, 703. Dependendo das informações de filtro de nitidez, o bloco residual é adicionado ao bloco de predição ou ao bloco de predição com a nitidez acentuada para ser obtido um bloco reconstruído de um quadro dado.
[00109] A Figura 8 mostra um método de codificação de vídeo de acordo com uma modalidade da presente invenção.
[00110] O método de codificação de vídeo é um método 800 para a codificação preditiva, para um fluxo de bits de vídeo codificado, de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência.
[00111] O método compreende o armazenamento 801 do bloco original.
[00112] O método compreende o armazenamento 802 do bloco de predição.
[00113] O método compreende uma etapa de filtragem de nitidez adaptativa 803 compreendendo a aplicação de uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[00114] A Figura 9 mostra um método de decodificação de vídeo de acordo com uma modalidade da presente invenção.
[00115] O método de codificação de vídeo é um método 900 para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência reconstruído.
[00116] O método compreende uma etapa de decodificação 901 compreendendo a reconstrução do quadro de referência a partir do fluxo de bits de vídeo codificado.
[00117] O método compreende uma etapa 902 de armazenamento do bloco de predição obtido do quadro de referência reconstruído.
[00118] O método compreende uma etapa de filtro de nitidez adaptativo 903 compreendendo a aplicação de uma filtragem de nitidez adaptativa espacial ao bloco de predição.
[00119] A presente invenção foi descrita em conjunto com diversas modalidades como exemplos assim como implementações. No entanto, outras variações podem ser consideradas e efetuadas pelos versados na técnica e na colocação em prática de invenção reivindicada a partir do estudo dos desenhos, desta descrição e das reivindicações independentes. Nas reivindicações, assim como na descrição a palavra “compreender” não exclui outros elementos ou etapas e o artigo indefinido “um” ou “uma” não exclui a forma no plural. Um único elemento ou outra unidade pode preencher as funções de diversas entidades ou itens citados nas reivindicações. O simples fato de que determinadas medidas são citadas nas reivindicações dependentes mutuamente diferentes não indica que uma combinação destas medidas não possa ser usada em uma implementação vantajosa.

Claims (20)

1. Codificador de vídeo (400, 600) para a codificação preditiva, para um fluxo de bits de vídeo codificado, de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência, CARACTERIZADO pelo fato de que compreende: - um buffer (401, 601) configurado para armazenar o bloco original, - um buffer (408, 608) configurado para armazenar o bloco de predição, - um filtro de nitidez adaptativo (409, 609) configurado para aplicar uma filtragem de nitidez adaptativa espacial ao bloco de predição, - uma unidade de controle (410, 610) configurada para controlar pelo menos um de um desvio seletivo do filtro de nitidez adaptativo (409, 609) e uma aplicação seletiva do filtro de nitidez adaptativo (409, 609), e - uma unidade de codificação (414, 614) configurada para adicionar ao fluxo de bits de vídeo codificado informações de filtro de nitidez refletindo o pelo menos um do desvio seletivo e da aplicação seletiva do filtro de nitidez adaptativo (409, 609), em que a unidade de codificação (414, 614) é configurada para codificar as informações de filtro de nitidez usando uma codificação aritmética binária adaptativa a contexto, CABAC, em que o codificador de vídeo compreende: - uma unidade de estimação de intensidade de bordas (411, 412, 611, 612) configurada para estimar uma intensidade de bordas no bloco de predição ou em um bloco de referência do quadro de referência, - um comutador de contexto de CABAC (413, 613) configurado para selecionar um contexto do CABAC em função da intensidade de bordas estimada.
2. Codificador de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, para a codificação preditiva, no fluxo de bits de vídeo codificado, de uma pluralidade de blocos originais do quadro original baseado respectivamente em uma pluralidade de blocos de predição obtidos do quadro de referência, o filtro de nitidez adaptativo (409, 609) é configurado para aplicar uma filtragem de nitidez diferente a cada um da pluralidade de blocos de predição.
3. Codificador de vídeo (400), de acordo com a reivindicação 1 ou 2, para a codificação preditiva inter- camada do conteúdo de vídeo escalonável compreendendo uma camada de base e pelo menos uma camada de melhoramento, CARACTERIZADO pelo fato de que o quadro original é um quadro de uma camada de melhoramento, e o quadro de referência é um quadro de uma camada de base reconstruída, em que o codificador de vídeo (400) compreende: - um filtro de aumento da taxa de amostragem (407) configurado para aumentar a taxa de amostragem do quadro de referência, sendo o bloco de predição um bloco do quadro de referência com a taxa de amostragem aumentada.
4. Codificador de vídeo (600), de acordo com a reivindicação 1 ou 2, para a codificação preditiva inter- quadros do conteúdo de vídeo compreendendo quadros subsequentes, CARACTERIZADO pelo fato de que o quadro original é um dos quadros subsequentes, e o quadro de referência é um dos quadros subsequentes reconstruídos, em que o codificador de vídeo (600) compreende: - um buffer (606) configurado para armazenar um bloco de referência do quadro de referência, - uma unidade de estimativa de movimento (616) configurada para obter um vetor de movimento que reflete o movimento entre o bloco de referência e o bloco original, e - uma unidade de compensação de movimento (607) configurada para gerar o bloco de predição a partir do bloco de referência com base no vetor de movimento.
5. Codificador de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a unidade de controle (410, 610) é configurada para controlar o pelo menos um do desvio seletivo e da aplicação seletiva com base em uma minimização de um bloco residual, dito bloco residual sendo a diferença entre o bloco original e o bloco de predição, ou baseado em um critério de custo que consiste, por exemplo, em uma otimização da curva taxa-distorção.
6. Codificador de vídeo (400, 600), de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que o filtro de nitidez adaptativo (409, 609) é configurado para ser controlado por pelo menos um parâmetro adaptativo, em que o codificador de vídeo (400, 600) compreende: - uma unidade de controle (410, 610) configurada para determinar um valor de parâmetro do parâmetro adaptativo e fornecer o valor do parâmetro determinado ao filtro de nitidez adaptativo (409, 609), e - uma unidade de codificação (415, 615) configurada para adicionar à fluxo de bits de vídeo codificado informações de parâmetro adaptativo sobre o valor de parâmetro determinado do parâmetro adaptativo.
7. Codificador de vídeo, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a unidade de controle (410, 610) é configurada para fornecer diferentes valores de parâmetro para o parâmetro adaptativo e para selecionar um dos diferentes valores de parâmetro com base em uma minimização de um bloco residual, sendo o bloco residual a diferença entre o bloco original e o bloco de predição, ou baseado em um critério de custo tal como, por exemplo, uma otimização da curva taxa-distorção.
8. Codificador de vídeo, de acordo com a reivindicação 6 ou 7, CARACTERIZADO pelo fato de que o filtro de nitidez adaptativo (409, 609) é um filtro não linear configurado para ser controlado por um único parâmetro adaptativo.
9. Codificador de vídeo, de acordo com qualquer uma das reivindicações 6 a 8, CARACTERIZADO pelo fato de que o filtro de nitidez adaptativo (409, 609) compreende: - uma unidade de cálculo do mapa de bordas (301, 302) adaptada para gerar um mapa de bordas de um bloco fonte, dito bloco fonte sendo o bloco de predição ou um bloco de referência do quadro de referência, - um filtro de desfoque (304) adaptado para desfocar o mapa de bordas do bloco fonte, - um filtro de passa alta (305) adaptado para gerar, por filtragem de passa alta do mapa de bordas desfocadas, um vetor de derivada para cada posição do bloco fonte, - uma unidade de escalonamento (306) adaptada para gerar um vetor de deslocamento por escalonamento do vetor de derivada com um coeficiente de intensidade de nitidez (K), e - uma unidade de distorção (307) adaptada para distorcer o bloco de predição com base no vetor de deslocamento, - em que o parâmetro adaptativo inclui o coeficiente de intensidade de nitidez (K).
10. Codificador de vídeo, de acordo com qualquer uma das reivindicações 5 a 9, CARACTERIZADO pelo fato de que, as informações de parâmetro adaptativo e/ou as informações de filtro de nitidez são adicionadas a um nível de bloco para cada bloco de predição, para uma região arbitrária ou regular do quadro a um nível de quadro, a um nível de GOP (grupo de imagens), a um nível de PPS (conjunto de parâmetros de imagem) ou a um nível de SPS (conjunto de parâmetros de sequência).
11. Método para codificação preditiva, para um fluxo de bits de vídeo codificado, de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência, CARACTERIZADO pelo fato de que compreende: - armazenar o bloco original, - armazenar o bloco de predição, - uma etapa de filtro de nitidez adaptativo que compreende a aplicação ao bloco de predição de uma filtragem de nitidez adaptativa espacial, - controlar pelo menos um de um desvio seletivo do filtro de nitidez adaptativo e uma aplicação seletiva do filtro de nitidez adaptativo, - adicionar ao fluxo de bits de vídeo codificado informações de filtro de nitidez refletindo o pelo menos um do desvio seletivo e da aplicação seletiva do filtro de nitidez adaptativo, em que as informações do filtro de nitidez são codificadas usando uma codificação aritmética binária adaptativa ao contexto, CABAC - estimar uma intensidade de bordas no bloco de predição ou em um bloco de referência do quadro de referência, e - selecionar um contexto do CABAC em função da intensidade de bordas estimada.
12. Decodificador de vídeo (500, 700) para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência reconstruído, CARACTERIZADO pelo fato de que compreende: - uma unidade de decodificação configurada para reconstruir o quadro de referência a partir do fluxo de bits de vídeo codificado, - um buffer (514, 714) configurado para armazenar o bloco de predição obtido do quadro de referência reconstruído, - um filtro de nitidez adaptativo (507, 707) configurado para aplicar filtragem de nitidez adaptativa espacial ao bloco de predição, - uma unidade de decodificação (512, 712) configurada para extrair do fluxo de bits de vídeo codificado, informações de filtro de nitidez refletindo pelo menos um de um desvio seletivo do filtro de nitidez adaptativo (507, 707) e de uma aplicação seletiva do filtro de nitidez adaptativo (507, 707), e - uma unidade de controle (508, 708) configurada para controlar o pelo menos um do desvio seletivo e da aplicação seletiva dependendo das informações de filtro de nitidez extraídas, em que a unidade de decodificação (512, 712) é configurada para decodificar as informações de filtro de nitidez de acordo com uma codificação aritmética binária adaptativa a contexto, CABAC, em que o decodificador de vídeo compreende ainda: - uma unidade de estimação de intensidade de bordas (510, 511, 710, 711) configurada para estimar uma intensidade de bordas no bloco de predição ou em um bloco de referência do quadro de referência, - um comutador de contexto de CABAC (509, 709) configurado para selecionar um contexto do CABAC dependendo da intensidade de bordas estimada.
13. Decodificador de vídeo (500), de acordo com a reivindicação 12, para a decodificação do fluxo de bits de vídeo codificado obtido por codificação preditiva intercamada de conteúdo de vídeo escalonável compreendendo uma camada base e pelo menos uma camada de melhoramento, CARACTERIZADO pelo fato de que o quadro original é um quadro de uma camada de melhoramento, e o quadro de referência é um quadro de uma camada base reconstruída, em que o decodificador de vídeo (500) compreende: - um filtro de aumento da taxa de amostragem (513) configurado para aumentar a taxa de amostragem do quadro de referência reconstruído, sendo o bloco de predição um bloco do quadro de referência com a taxa de amostragem aumentada.
14. Decodificador de vídeo (700), de acordo com a reivindicação 12, para a decodificação do fluxo de bits de vídeo codificado obtido por codificação preditiva inter- quadros de conteúdo de vídeo compreendendo quadros subsequentes, CARACTERIZADO pelo fato de que o quadro original é um dos quadros subsequentes, e o quadro de referência é um dos quadros subsequentes reconstruído, em que o decodificador de vídeo (700) compreende: - um buffer (715) configurado para armazenar um bloco de referência do quadro de referência extraído, - uma unidade de decodificação (716) configurada para extrair, do fluxo de bits de vídeo codificado, um vetor de movimento que reflete o movimento entre o bloco de referência e o bloco original, e - uma unidade de compensação de movimento (713) configurado para gerar o bloco de predição a partir do bloco de referência com base no vetor de movimento.
15. Decodificador de vídeo, de acordo com qualquer uma das reivindicações 12 a 14, CARACTERIZADO pelo fato de que o filtro de nitidez adaptativo (507, 707) é configurado para ser controlado por pelo menos um parâmetro adaptativo, em que o decodificador de vídeo compreende: - uma unidade de decodificação (506, 706) configurada para extrair, do fluxo de bits de vídeo codificado, informações de parâmetro adaptativo sobre um valor de parâmetro do parâmetro adaptativo, e - uma unidade de controle (508, 708) configurada para controlar o filtro de nitidez adaptativo (507, 707) de acordo com as informações de parâmetro adaptativo extraídas.
16. Decodificador de vídeo, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que o filtro de nitidez adaptativo (507, 707) é um filtro não linear configurado para ser controlado por um único parâmetro adaptativo.
17. Decodificador de vídeo, de acordo com a reivindicação 15 ou 16, CARACTERIZADO pelo fato de que o filtro de nitidez adaptativo (507, 707) compreende: - uma unidade de cálculo de mapa de bordas (301, 302) adaptada para gerar um mapa de bordas de um bloco fonte, dito bloco fonte sendo o bloco de predição ou um bloco de referência do quadro de referência, - um filtro de desfoque (304) adaptado para desfocar o mapa de bordas do bloco fonte, - um filtro passa altas (305) adaptado para gerar, por filtragem de passa alta do mapa de bordas desfocadas, um vetor de derivada para cada posição do bloco fonte, - uma unidade de escalonamento (306) adaptada para gerar um vetor de deslocamento por escalonamento do vetor de derivada com um coeficiente de intensidade de nitidez (K), e - uma unidade de distorção (307) adaptada para distorcer o bloco de predição com base no vetor de deslocamento, em que o parâmetro adaptativo inclui o coeficiente de intensidade de nitidez (K).
18. Decodificador de vídeo, de acordo com qualquer uma das reivindicações 12 a 17, CARACTERIZADO pelo fato de que as informações de parâmetro adaptativo e/ou as informações de filtro de nitidez são extraídas a um nível de bloco para cada bloco de predição, para uma região arbitrária ou regular do quadro, a um nível de quadro, a um nível de GOP (grupo de imagens), a um nível de PPS (conjunto de parâmetros de imagem) ou a um nível de SPS (conjunto de parâmetros de sequência).
19. Método para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva de um bloco original de um quadro original baseado em um bloco de predição obtido de um quadro de referência reconstruído, CARACTERIZADO pelo fato de que compreende: - uma etapa de decodificação compreendendo a reconstrução do quadro de referência a partir do fluxo de bits de vídeo codificado, - a armazenagem do bloco de predição obtido do quadro de referência reconstruído, - uma etapa de filtragem de nitidez adaptativa compreendendo a aplicação de uma filtragem de nitidez adaptativa espacial ao bloco de predição, - extrair do fluxo de bits de vídeo codificado, informações de filtro de nitidez refletindo pelo menos um de um desvio seletivo do filtro de nitidez adaptativo e de uma aplicação seletiva do filtro de nitidez adaptativo, - controlar o pelo menos um do desvio seletivo e da aplicação seletiva dependendo das informações de filtro de nitidez extraídas, em que as informações de filtro de nitidez são codificasas de acordo com uma codificação aritmética binária adaptativa a contexto, CABAC, - estimar uma intensidade de bordas no bloco de predição ou em um bloco de referência do quadro de referência, e - selecionar um contexto do CABAC dependendo da intensidade de bordas estimada.
20. Meio de armazenamento legível em computador CARACTERIZADO pelo fato de que tem armazenado instruções para realizar o método conforme definido na reivindicação 11 ou 19, quando as instruções são executadas num dispositivo de computação.
BR112018005997-8A 2015-09-25 Codificador de vídeo, decodificador de vídeo, métodos para a codificação e a decodificação preditivas e meio de armazenamento legível em computador BR112018005997B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2015/000612 WO2017052407A1 (en) 2015-09-25 2015-09-25 Adaptive sharpening filter for predictive coding

Publications (2)

Publication Number Publication Date
BR112018005997A2 BR112018005997A2 (pt) 2018-10-23
BR112018005997B1 true BR112018005997B1 (pt) 2023-05-23

Family

ID=

Similar Documents

Publication Publication Date Title
US10841605B2 (en) Apparatus and method for video motion compensation with selectable interpolation filter
US10820008B2 (en) Apparatus and method for video motion compensation
US10863205B2 (en) Adaptive sharpening filter for predictive coding
US10834416B2 (en) Apparatus and method for video motion compensation
US10848784B2 (en) Apparatus and method for video motion compensation
KR20150092089A (ko) 비디오 부호화 및 복호화 방법, 그를 이용한 장치
KR20080067922A (ko) 영상 축소 기능을 갖는 영상 복호화 방법 및 장치
BR112018005997B1 (pt) Codificador de vídeo, decodificador de vídeo, métodos para a codificação e a decodificação preditivas e meio de armazenamento legível em computador
JP2019195214A (ja) ビデオ動き補償用の装置および方法