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

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

Info

Publication number
BR112018006009B1
BR112018006009B1 BR112018006009-7A BR112018006009A BR112018006009B1 BR 112018006009 B1 BR112018006009 B1 BR 112018006009B1 BR 112018006009 A BR112018006009 A BR 112018006009A BR 112018006009 B1 BR112018006009 B1 BR 112018006009B1
Authority
BR
Brazil
Prior art keywords
filter
interpolation
block
video
interpolation filter
Prior art date
Application number
BR112018006009-7A
Other languages
English (en)
Other versions
BR112018006009A2 (pt
Inventor
Sergey Yurievich Ikonin
Maxim Borisovitch Sychev
Victor Alexeevich Stepin
Roman Igorevich Chernyak
Original Assignee
Huawei Technologies Co., Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Publication of BR112018006009A2 publication Critical patent/BR112018006009A2/pt
Publication of BR112018006009B1 publication Critical patent/BR112018006009B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

CODIFICADOR DE VÍDEO, DECODIFICADOR DE VÍDEO, MÉTODOS PARA A CODIFICAÇÃO E DECODIFICAÇÃO PREDITIVA E MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR. A presente invenção refere-se a um codificador de vídeo para codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento em um fluxo de bits de vídeo codificado, compreendendo um buffer de quadros (207) configurado para armazenar pelo menos um quadro de referência do fluxo de vídeo. Unidade (210) configurada para gerar um bloco de previsão de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento tendo resolução fracionária-pel, definindo uma posição inteira e fracional posições-pel. A unidade de previsão (210) é configurada para interpolar o bloco de referência de acordo com a resolução fracionária-pel através de um dos pelo menos três seguintes filtros de interpolação: um filtro de interpolação de desfoque (302), um filtro de derivação (303) e o filtro de derivação (303) seguido por um filtro de nitidez (311).

Description

CAMPO TÉCNICO
[001]A presente invenção se refere de uma maneira geral ao campo do processamento de vídeo e a um aparelho para a compensação do movimento de vídeo, e se refere especificamente a um codificador de vídeo e a um decodificador de vídeo para dar suporte à compensação de movimento para predizer quadros em um vídeo. A presente invenção se refere ainda a um método para a codificação e a um método para a decodificação de um fluxo de vídeo usando uma compensação de movimento. Finalmente, a presente invenção se refere a um programa de computador que tem um código de programa para a implementação de tal método.
ANTECEDENTES
[002]No campo do processamento de vídeo, e particularmente no campo da codificação de vídeo híbrido e sua compressão, é conhecido o uso de interpredição e intrapredição assim como a codificação de transformação. Tais tecnologias de codificação de vídeo híbridas são usadas em padrões de compressão de vídeo conhecidos como H.261, MPEG-1, 2, 4, H.264/AVC ou H.265/HEVC.
[003]A Figura 1 mostra um codificador de vídeo de acordo com o estado da técnica. O codificador de vídeo 100 compreende uma entrada para receber blocos de quadros ou imagens de um fluxo de vídeo e uma saída para a geração de um fluxo de bits de vídeo codificado. O codificador de vídeo 100 é adaptado para aplicar predição, transformação, quantização e codificação por entropias ao fluxo de vídeo.A transformação, quantização e codificação por entropias são conduzidas respectivamente por uma unidade de transformação 101, uma unidade de quantização 102 e uma unidade de codificação por entropia 103 para gerar em forma de saída o fluxo de bits de vídeo codificado.
[004]O fluxo de vídeo corresponde a uma pluralidade de quadros, sendo cada quadro dividido em blocos de um tamanho determinado que podem ser intracodificados ou intercodificados por uma unidade de predição 108. Os blocos do primeiro quadro do fluxo de vídeo, por exemplo, são intercodificados por meio da unidade de predição 108. Um intraquadro é codificado usando-se somente as informações dentro do mesmo quadro, de modo que possa ser independentemente decodificado e possa prover um ponto de entrada no fluxo de bits para um acesso aleatório. Blocos de outros quadros de fluxo de vídeo são intercodificados por meio da unidade de predição 108: as informações provenientes de quadros codificados, que são denominados quadros de referência reconstruídos, são usados para reduzir a redundância temporal, de modo que o bloco intercodificado seja predito a partir de um bloco do mesmo tamanho em um quadro de referência reconstruído. A unidade de predição 108 é adaptada para selecionar se um bloco de um quadro deve ser intracodificado ou intercodificado.
[005]Para a implementação de interpredição, os quadros de referência codificados são processados por uma unidade de quantização inversa 104, uma unidade de transformação inversa 105, sendo então acrescentado ao bloco de predição e processados por uma unidade de filtragem de laço 106 para obter os quadros de referência reconstruídos que são então armazenados em um buffer de quadro 107 para ser usado para a predição interquadro temporal.
[006]A unidade de predição 108 compreende como entrada um quadro ou imagem atual a ser intercodificado ou intracodificado e um ou diversos quadros ou imagens de referência provenientes do buffer de quadros 107. A estimação de movimento e a compensação de movimento são aplicadas pela unidade de predição 108. A estimação de movimento é usada para se obter um vetor de movimento e um quadro de referência baseado em determinada função de custo. A compensação de movimento então descreve o bloco atual do quadro atual em termos da transformação de um bloco de referência para o quadro atual. A unidade de predição 108 emite um bloco de predição para o bloco atual, de forma que tal bloco de predição minimize a diferença entre o bloco atual a ser codificado e o seu bloco de predição, isto é, minimizando o bloco residual. A minimização do bloco residual é baseada, por exemplo, em um procedimento de otimização de taxa-distorção.
[007]A diferença entre o bloco atual e a sua predição, isto é, o bloco residual é então transformado pela unidade de transformação 101. Os coeficientes de transformação são quantizados e codificados por entropia pela unidade de quantização 102 e pela unidade de codificação por entropia 103. O assim gerado fluxo de bits de vídeo codificado compreende blocos intracodificados e blocos intercodificados.
[008]Tal codificação híbrida de vídeo compreende predição com movimento compensado combinada com codificação de transformação do erro de predição. Para cada bloco, o vetor de movimento estimado é também transmitido em forma de dados de sinalização no fluxo de bits de vídeo codificado. Os padrões atuais H.264/AVC e H.264/HEVC são baseados em uma resolução de deslocamento de 1/4 de píxel para o vetor de movimento. Para se estimar e compensar os deslocamentos de frações de píxel, o bloco de referência tem que ser interpolado nas posições de valores fracionários de píxel. Um filtro de interpolação é usado para se obter tal quadro interpolado nas posições de píxel fracionário.
[009]A qualidade do bloco interpolado depende fortemente das propriedades do filtro de interpolação usado. Os filtros de tap curto, por exemplo filtros bilineares, podem suprimir altas frequências e tornar o quadro interpolado desfocado. Outros filtros como os filtros de tap longo podem preservar altas frequências mas gerar alguns artefatos de ringing na proximidade de bordas afiadas. Um outro problema consiste no fato de que a compensação do movimento utiliza um quadro anteriormente codificado e reconstruído como um quadro de referência: o quadro de referência pode conter artefatos causados pela quantização do coeficiente de transformação ao qual se refere como efeito de Gibbs. Devido a estes artefatos, as bordas assim como a área ao redor das bordas podem também ser distorcidas.
[0010]Os blocos e quadros de referência reconstruídos podem também conter bordas falsas indesejáveis geradas pelo codificador de vídeo em si. Tais artefatos podem ser causados pelo processamento separado e independente de cada bloco. Neste sentido, a unidade de filtragem de laço 106 aplica uma filtragem de desbloqueio que visa mitigar estes artefatos de bloqueio, mas a unidade de filtragem em laço 106 é somente capaz de remover parcialmente estes artefatos. Outros artefatos de borda podem ser relacionados com uma formação de faixa de gradiente causado por uma quantização grosseira de regiões de gradiente suave. Consequentemente, o bloco e o quadro de referência podem conter bordas indesejáveis.
[0011]A qualidade da predição de movimento depende de diversos fatores. A qualidade do bloco de referência reconstruído, a presença de artefatos e de ruídos indesejáveis no bloco de referência afeta fortemente a qualidade da predição de movimento. Mais adiante, o filtro de interpolação define a qualidade das bordas interpoladas, o seu desfoque e a presença de ringing nas bordas no bloco interpolado. O conteúdo do bloco de predição também influencia a qualidade de predição de movimento, uma vez que a maioria dos artefatos aparece na proximidade das bordas.
[0012]Diversas técnicas são conhecidas pela técnica anterior para melhorar a predição com movimento compensado. Por exemplo, o padrão de codificação de vídeo H. 265/HEVC foi proposto com filtros de interpolação linear fixos mais sofisticados que proporcionam uma qualidade de interpolação melhor do que o padrão H.264/AVC anterior. Além disso, uma filtragem em laço adaptativa (ALF) pode ser conduzida na unidade de filtragem em laço 106. Tal filtragem introduz um filtro adaptativo linear, geralmente baseado em filtros de Wiener, para minimizar a diferença entre o bloco reconstruído e o bloco original. No entanto tal técnica de filtragem em laço não pode remover os artefatos causados pelo filtro de interpolação de movimento, pois os filtros em laço são aplicados ao bloco de referência antes da interpolação de movimento.
[0013]Um filtro de interpolação adaptativo (AIF) é uma técnica conhecida que tenta encontrar um filtro de interpolação ótimo baseado em filtros de Wiener para cada posição de movimento fracionário minimizando a diferença entre o bloco interpolado e o original. Os coeficientes de filtro encontrados precisam então ser passados para o decodificador. Tal filtro adaptativo é linear e se encontra na forma de uma matriz ou de vetor de coeficiente. Mais adiante, cada posição de vetor de movimento fracionário tem o seu próprio filtro ótimo. A forma do filtro adaptativo e a necessidade de se transferir diversos filtros para a posição fracionária implica em um excedente de sinalização significativo para a técnica de filtragem de interpolação adaptativa.
SUMÁRIO
[0014]Tendo reconhecido as desvantagens e problemas mencionados acima, a presente invenção visa melhorar o estado da técnica. Mais especificamente, 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 melhor codificação e uma melhor decodificação de um fluxo de vídeo de quadros subsequentes.
[0015]A presente invenção particularmente pretende melhorar a qualidade da codificação preditiva. Particularmente, a invenção pretende remover os artefatos causados pela compensação de movimento e especificamente, causados pela interpolação do bloco de referência na posição de píxel fracionário bem como melhorar a qualidade de predição pela redução dos artefatos de quantização do quadro de referência. É ainda um outro objetivo da invenção manter o excedente de sinalização no fluxo de bits do vídeo codificado em um nível baixo.
[0016]O objetivo mencionado acima da presente invenção é atingido pela solução proposta nas reivindicações independentes incluídas. Implementações vantajosas da presente invenção são ainda definidas nas reivindicações dependentes respectivas.
[0017]Um primeiro aspecto da presente invenção fornece um codificador de vídeo para a codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento em um fluxo de bits de vídeo codificado. O codificador de vídeo compreende um buffer de quadro configurado para armazenar pelo menos um quadro de referência do fluxo de vídeo. O codificador de vídeo compreende uma unidade de predição configurada para gerar um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento que tem uma resolução de píxel fracionário, dita resolução de píxel fracionário definindo uma posição de píxel inteiro e posições de píxel fracionário. A unidade de predição é configurada para interpolar o bloco de referência de acordo com a resolução de píxel fracionário por meio de um dos pelo menos três filtros de interpolação a seguir: um filtro de interpolação de desfoque, um filtro de tap, e um filtro de tap seguido por um filtro de nitidez.
[0018]Deste modo o esquema de interpolação de movimento da unidade de predição compreende os três tipos de filtros de interpolação mencionados que são um filtro de interpolação de desfoque, um filtro de tap, e um filtro de tap seguido por um filtro de nitidez. A unidade de predição pode então escolher o tipo de filtro dependendo do conteúdo do vídeo. Estes três tipos de filtro podem ser selecionados durante o processo de codificação para diferentes tipos de conteúdo.
[0019]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, pelo menos um do filtro de interpolação de desfoque e do filtro de nitidez é um filtro adaptativo configurado para ser controlado por pelo menos um parâmetro adaptativo.
[0020]Deste modo, o bloco de referência pode ser interpolado por um filtro de interpolação que pode ser adaptado ao conteúdo específico do vídeo. A adaptação pode levar em conta as características locais do conteúdo de vídeo e o excedente de sinalização requerido pode ser limitado devido ao uso de uma representação paramétrica do filtro de interpolação com somente um coeficiente para adaptação e transmissão.
[0021]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de nitidez é um filtro não linear.
[0022]Deste modo, esse uso de tal filtro de nitidez não linear é preferível para melhorar a predição de movimento. As técnicas de melhoramento de bordas tradicionais baseadas em filtros de nitidez lineares ou eliminação de desfoque, tal como técnicas de máscara de não nitidez, podem aumentar a qualidade subjetiva mas não podem eliminar os artefatos de ringing causados por filtragem de interpolação de movimento. Além disso, tal filtragem de nitidez linear pode até aumentar o ringing nas bordas e reduzir as características de desempenho objetivo. Por outro lado, o filtro de nitidez não linear proposto pode prover resultados melhores para a eliminação de ringing nas bordas e é, por este motivo, vantajoso. Além disso, o uso de um projeto não linear para o filtro de nitidez, por exemplo para o filtro de nitidez adaptativo, pode reduzir com vantagem o número de parâmetros adaptativos e, consequentemente, o excedente de sinalização.
[0023]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de nitidez é configurado para ser controlado por um único parâmetro adaptativo.
[0024]Deste modo, o excedente de sinalização requerido pode ser ainda mais limitado devido ao uso de um único parâmetro adaptativo para o filtro de nitidez. Particularmente, o tamanho dos blocos usados para a codificação preditiva pode ser reduzido sem que se aumente simultaneamente o excedente de sinalização.
[0025]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 do mapa de bordas adaptada para gerar um mapa de bordas de um bloco fonte, sendo o bloco fonte o bloco de referência ou o bloco de predição. O filtro de nitidez compreende um filtro de desfoque adaptado para desfocar o mapa de bordas do bloco fonte. O filtro de nitidez 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 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 compreende uma unidade de distorção adaptada para distorcer o bloco de predição com base no vetor de deslocamento.
[0026]Deste modo, esta estrutura do filtro de nitidez define um filtro de nitidez não linear que pode oferecer com vantagem resultados melhores em termo de eliminação de artefatos de ringing.
[0027]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o parâmetro adaptativo do filtro de nitidez inclui o coeficiente de intensidade de nitidez.
[0028]Deste modo, o uso do coeficiente de intensidade de nitidez como um parâmetro adaptativo implica que é somente necessário um parâmetro adaptativo, o que reduz ainda mais o excedente de sinalização.
[0029]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, a unidade de predição é configurada para selecionar o coeficiente de intensidade de nitidez que minimiza um bloco residual, sendo o bloco residual a diferença entre o bloco atual e o bloco de predição emitido pelo filtro de nitidez adaptativo, ou baseado em um critério de custo, tal como, por exemplo, uma otimização da curva taxa-distorção.
[0030]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de interpolação de desfoque é um filtro de passa baixa que não pode gerar artefatos de ringing devido à natureza do seu projeto.
[0031]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de interpolação de desfoque compreende um único parâmetro adaptativo.
[0032]Deste modo, o excedente de sinalização requerido pode ser ainda mais limitado devido ao uso de um único parâmetro adaptativo somente para o filtro de interpolação de desfoque.
[0033]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o parâmetro adaptativo do filtro de interpolação de desfoque inclui um coeficiente de desfoque.
[0034]Deste modo, o uso do coeficiente de desfoque como parâmetro adaptativo implica que é necessário somente um parâmetro adaptativo, o que reduz ainda mais o excedente de sinalização.
[0035]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de interpolação de desfoque é um filtro gaussiano ou um filtro bilinear, e se o filtro de interpolação de desfoque for um filtro gaussiano o coeficiente de desfoque é o desvio padrão da distribuição gaussiana.
[0036]Deste modo, é possível se eliminar as bordas indesejáveis causadas, por exemplo, pelo bloqueio e por formação de faixas de gradiente em um quadro de referência reconstruído por aplicação de interpolação de desfoque. Além disso, ruídos de alta frequência indesejáveis podem ser suprimidos em um quadro de referência reconstruído.
[0037]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de interpolação de desfoque compreende uma unidade de cálculo configurada para calcular coeficientes de filtros gaussianos com base no desvio padrão, e uma unidade de filtragem configurada para gerar, como uma saída do filtro de interpolação de desfoque, um bloco de predição usando os coeficientes de filtros gaussianos calculados.
[0038]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 configurada para armazenar um conjunto precalculado dos coeficientes de filtros gaussianos com base em diferentes desvios padrão, e uma unidade de filtragem configurada para gerar, como uma saída do filtro de interpolação de desfoque, um bloco de predição usando um do conjunto precalculado de filtros gaussianos.
[0039]Deste modo, este pré-cálculo tem o efeito de que podem ser economizados recursos computacionais durante um procedimento de otimização.
[0040]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, a unidade de predição é configurada para selecionar o coeficiente de desfoque que minimiza um bloco residual, sendo o bloco residual a diferença entre o bloco atual e o bloco de predição emitido pelo filtro de interpolação de desfoque, ou baseado em um critério de custo, tal, como, por exemplo, uma otimização de taxa-distorção.
[0041]Deste modo, a compensação de movimento pode ainda ser mais melhorada escolhendo-se um coeficiente de desfoque durante um procedimento de otimização.
[0042]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o filtro de tap é um filtro de tap longo fixo com uma resposta em degrau aguda.
[0043]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, a posição de píxel inteiro e cada uma das posições de píxel fracionário estão associadas com um de pelo menos três filtros de interpolação e/ou, se estiverem presentes, com o valor dado do parâmetro adaptativo do filtro de nitidez e/ou do filtro de interpolação de desfoque.
[0044]Deste modo, como uma posição de píxel é associada com um dos três filtros de interpolação e possivelmente com um respectivo parâmetro adaptativo, o excedente de sinalização pode ser reduzido devido ao uso de posições de vetor de movimento fracionárias como pontos de sinalização para o tipo de filtro de interpolação e parâmetros adaptativos.
[0045]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 codificação configurada para gerar a fluxo de bits de vídeo codificado e para especificar, como informações de sinalização no fluxo de bits de vídeo codificado, o tipo de filtro de interpolação e o valor dado do parâmetro adaptativo e a posição de píxel inteiro associada ou a posição de píxel fracionário associada.
[0046]Deste modo, a quantidade de informações de sinalização que tem que ser transmitida ao decodificador pode ser reduzida, e o excedente de sinalização pode ser reduzido.
[0047]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, a escolha do filtro de interpolação dentre os três filtros de interpolação depende da posição de píxel inteiro ou da posição de píxel fracionário, de modo que a posição dada de píxel inteiro ou a posição de píxel fracionário implica na escolha de um filtro de interpolação dado e na escolha de parâmetros adaptativos, se houver.
[0048]Deste modo, é possível se efetuar uma adaptação a características locais sem introduzir um excedente de sinalização adicional.
[0049]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, o codificador de vídeo compreende pelo menos um padrão de filtro de interpolação definindo, para cada uma da posição de píxel inteiro e das posições de píxeis fracionários, o tipo de filtro de interpolação e/ou, se estiver presente, o valor do parâmetro adaptativo.
[0050]Deste modo, o padrão de filtro de interpolação pode definir facilmente cada um o tipo de filtro de interpolação, e, se for aplicável, o valor de parâmetro adaptativo sem introduzir um excedente de sinalização adicional.
[0051]Deste modo, o decodificador é capaz de escolher o filtro de interpolação definido no padrão de filtro de interpolação dependendo da posição do píxel.
[0052]Em uma forma de implementação do codificador de vídeo de acordo com ao primeiro aspecto, o codificador de vídeo compreende uma pluralidade de padrões de filtros de interpolação, em que a unidade de predição é configurada para selecionar um de uma pluralidade de padrões de filtros de interpolação.
[0053]Deste modo, uma pluralidade de padrões de filtros de interpolação pode, por exemplo, ser calculada e prepara com antecedência, de tal modo que durante a codificação de um fluxo de vídeo é somente necessário escolher um dos padrões de filtros de interpolação.
[0054]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 codificação configurada para gerar o fluxo de bits de vídeo codificado e para acrescentar, como informações de sinalização no fluxo de bits de vídeo codificado, o(s) dito(s) padrão(ões) de filtros de interpolação.
[0055] Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, no caso de uma pluralidade de padrões de filtros de interpolação ser provida, a unidade de codificação é configurada para acrescentar, como informações de sinalização no fluxo de bits de vídeo codificado, informações de seleção sobre o padrão de filtro de interpolação a ser selecionado.
[0056]Deste modo, estas informações sobre seleção ou informações de índice podem indicar o padrão de filtro de interpolação que deve ser selecionado pelo decodificador. No caso de o decodificador já conhecer a pluralidade de padrões de filtros de interpolação, estas informações de seleção, portanto, reduzem ainda mais o excedente de sinalização.
[0057]Em uma forma de implementação do codificador de vídeo de acordo com o primeiro aspecto, a unidade de codificação está configurada para acrescentar as informações de sinalização sobre o padrão de filtro de interpolação a ser selecionado 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).
[0058]Deste modo, é possível se ajustar as informações de filtro de interpolação a uma granularidade desejada de modo que a sinalização possa ser otimizada.
[0059]Um segundo aspecto da presente invenção fornece um método para a codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento em um fluxo de bits de vídeo codificado. O método compreende o armazenar pelo menos de um quadro de referência do fluxo de vídeo. O método compreende a etapa de predição que compreende a geração de um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento que tem uma resolução de píxel fracionário, esta resolução de píxel fracionário define uma posição de píxel inteiro e posições de píxeis fracionários. A etapa de predição compreende ainda a interpolação do bloco de referência de acordo com a resolução de píxel fracionário por meio dos pelo menos três filtros de interpolação a seguir: um filtro de interpolação de desfoque, um filtro de tap, e o filtro de tap seguido por um filtro de nitidez.
[0060]Outras características ou implementações do método de acordo com o segundo aspecto da invenção podem executar a funcionalidade do codificador de vídeo de acordo com o primeiro aspecto da invenção e suas formas diferentes de implementação.
[0061]Um terceiro aspecto da presente invenção fornece um decodificador de vídeo para a decodificação de um fluxo de bits de vídeo codificado obtida por codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento. O decodificador de vídeo compreende um buffer de quadro configurado para armazenar pelo menos um quadro de referência obtido do fluxo de bits do vídeo codificado. O decodificador de vídeo compreende uma unidade de predição configurada para gerar um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento que tem uma resolução de píxel fracionário, dita resolução de píxel fracionário define uma posição de píxel inteiro e posições de píxeis fracionários. A unidade de predição é configurada para interpolar o bloco de referência de acordo com a resolução de píxel fracionário por meio de um dos pelo menos três filtros de interpolação a seguir: um filtro de interpolação de desfoque, um filtro de tap, e o filtro de tap seguido por um filtro de nitidez.
[0062]Deste modo, as vantagens obtidas em relação ao codificador de vídeo de acordo com primeiro aspecto são também dadas em relação ao decodificador de vídeo de acordo com o terceiro aspecto.
[0063]Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, pelo menos um do filtro de interpolação de desfoque e do filtro de nitidez é um filtro adaptativo configurado para ser controlado por pelo menos um parâmetro adaptativo.
[0064]Deste modo, o bloco de referência pode ser interpolado por um filtro de interpolação que pode ser adaptado ao conteúdo específico do vídeo. A adaptação pode levar em conta características locais do conteúdo de vídeo e o excedente de sinalização requerido pode ser limitado devido ao uso de uma representação paramétrica do filtro de interpolação com somente um coeficiente para a adaptação e para a transmissão.
[0065]Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, a escolha do filtro de interpolação dentre os três filtros de interpolação depende da posição de píxel inteiro ou da posição de píxel fracionário, de modo que uma dada posição de píxel inteiro ou de uma posição dada de píxel fracionário implica na escolha de um filtro de interpolação dado e/ou, se estiver presente, no valor do parâmetro adaptativo.
[0066]Deste modo, o uso das posições de vetor de movimento fracionárias como pontos de sinalização para o tipo de filtro de interpolação e para parâmetros adaptativos não gera um excedente de sinalização adicional.
[0067]Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, a unidade de predição é configurada para escolher o um dos três filtros de interpolação de acordo com um padrão de filtro de interpolação. Este padrão de filtro de interpolação define, para uma posição inteira do vetor de movimento e para as suas posições fracionárias associadas, o tipo de filtro de interpolação associado e/ou, se estiver presente, o valor do parâmetro adaptativo.
[0068]Deste modo, o padrão de filtro de interpolação pode definir cada tipo de filtro de interpolação e se for aplicável o valor de parâmetro adaptativo, de modo que o excedente de sinalização possa ser ainda mais reduzido.
[0069]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 obter do fluxo de bits de vídeo codificado, como informações de sinalização, o padrão de filtro de interpolação.
[0070]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 obter do fluxo de bits de vídeo codificado, como informações de sinalização, uma pluralidade de padrões de filtros de interpolação assim como informações de seleção sobre o padrão de filtro de interpolação a ser selecionado. A unidade de predição é configurada para selecionar um dos padrões de filtros de interpolação obtidos de acordo com as informações de seleção obtidas, e para escolher um dos três filtros de interpolação de acordo com o padrão de filtro de interpolação selecionado.
[0071]Deste modo, estas informações de seleção ou informações de índice podem indicar o padrão de filtro de interpolação que deve ser selecionado pelo decodificador. Uma vez que o decodificador conhece a pluralidade de padrões de filtros de interpolação, é somente necessário transmitir esta seleção de informação por meio do fluxo de bits de vídeo codificado, de tal modo que o excedente de sinalização possa ser ainda mais reduzido.
[0072]Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, a unidade de predição é configurada para pré-armazenar uma pluralidade de padrões de filtros de interpolação antes do decodificador de vídeo receber a fluxo de bits de vídeo codificado. O decodificador de vídeo compreende uma unidade de decodificação configurada para obter do fluxo de bits de vídeo codificado, em forma de informações de sinalização, informações de seleção sobre o padrão de filtro de interpolação pré-armazenado a ser selecionado. A unidade de predição é configurada para selecionar um dos padrões de filtros de interpolação pré-armazenados de acordo com as informações de seleção obtidas, e para escolher o um dos três filtros de interpolação de acordo com o padrão de filtro de interpolação selecionado.
[0073]Deste modo, o decodificador já conhece a pluralidade de padrões de filtros de interpolação e é somente necessário transmitir, por meio do fluxo de bits de vídeo codificado, esta informação de seleção. O excedente de sinalização pode então ser ainda mais reduzido.
[0074]Em uma forma de implementação do decodificador de vídeo de acordo com o terceiro aspecto, a unidade de decodificação é configurada para obter as informações de sinalização sobre o padrão de filtro de interpolação a ser selecionado 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 imagens) ou a um nível de SPS (conjunto de parâmetros de sequência).
[0075]Deste modo, é possível regular as informações de filtro de interpolação a uma granularidade desejada, de modo que a sinalização possa ser otimizada.
[0076]Outras características ou implementações do codificador de vídeo de acordo com o primeiro aspecto da invenção, particularmente em relação aos pelo menos três filtros de interpolação e a estrutura destes, são também aplicáveis ao decodificador de vídeo de acordo com o terceiro aspecto da invenção.
[0077]Um quarto aspecto da presente invenção fornece um método para a decodificação de um fluxo de bits de vídeo codificado obtida por codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com uma compensação de movimento. O método compreende a armazenagem de pelo menos um quadro de referência obtido do fluxo de bits de vídeo codificado. O método compreende uma etapa de predição que compreende a geração de um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento que tem uma resolução de píxel fracionário, dita resolução de píxel fracionário definindo uma posição de píxel inteiro e posições de píxeis fracionários. A etapa de predição compreende ainda a interpolação do bloco de referência de acordo com a resolução de píxel fracionário por meio de um dos pelo menos três filtros de interpolação a seguir: um filtro de interpolação de desfoque, um filtro de tap, e o filtro de tap seguido por um filtro de nitidez.
[0078]Outras características ou implementações do método de acordo com o quarto aspecto da invenção podem implementar a funcionalidade do decodificador de vídeo de acordo com o terceiro aspecto da invenção e as suas diferentes formas de implementação.
[0079]Um quinto aspecto da presente invenção fornece um programa de computador que tem um código de programa para a condução de tal método de codificação e/ou de decodificação quando o programa de computador funciona em um dispositivo de computação.
[0080]A presente invenção propõe uma compensação de movimento que consiste na aplicação de um esquema de filtragem de interpolação de movimento melhorado que inclui interpolação de desfoque, convencional e de nitidez que podem ser ajustados adaptativamente de acordo com as características de imagens locais. O esquema de interpolação de movimento compreende três diferentes tipos de filtro - filtros de desfoque, fixo e de nitidez - que podem ser selecionados durante o processo de codificação. O filtro de desfoque e de nitidez podem ser adaptativos para se justar melhor às características locais da imagem de codificação. Para sinalizar o tipo de filtro de interpolação e os parâmetros adaptativos ao decodificador, é proposto o uso de posições de vetor de movimento fracionárias.
[0081]Com o esquema de filtragem de interpolação proposto, é possível efetuar uma adaptação das características locais da imagem de codificação por aplicação de três tipos de filtros. Uma redução do excedente de sinalização pode ser obtida devido a uma representação paramétrica dos filtros adaptativos com somente um coeficiente para adaptação, o que reduz o excedente de sinalização e permite uma adaptação às menores regiões da imagem de codificação. O excedente de sinalização pode ser ainda mais reduzido devido ao uso de posições de vetores de movimento fracionárias como pontos de sinalização para o tipo de filtro de interpolação e parâmetros adaptativos. Uma adaptação pode ser efetuada nas características locais das regiões pequenas da imagem de codificação devido ao excedente de sinalização reduzido. Os artefatos de ringing e o desfoque das bordas causadas pelo filtro de interpolação de movimento podem ser reduzidos enquanto mantém-se a qualidade de bordas interpoladas. É também possível se reduzir os artefatos de ringing e o desfoque das bordas causado pela quantização de coeficiente de transformação na imagem de referência. O desfoque de bordas causado por desfoque de movimento pode também ser reduzido. O esquema proposto pode suprimir bordas indesejáveis causadas por exemplo por bloqueio e formação de faixas de gradientes na imagem de referência reconstruída pela aplicação da interpolação de desfoque, e suprimir ruídos de alta frequência indesejáveis na imagem de referência reconstruída pela aplicação da interpolação de desfoque. O esquema proposto também aumenta a qualidade subjetiva das bordas nas imagens reconstruídas e aumenta a qualidade subjetiva de regiões de gradiente desfocadas e suaves. A filtragem de interpolação proposta realiza a tarefa que a filtragem em laço ou de referência em laço faz, e simultaneamente reduz os artefatos causados por filtros de interpolação de movimento convencionais adaptativamente ao conteúdo de imagem.
[0082]Foi observado que todos os dispositivos, elementos, unidades e meios descritos no presente pedido poderiam ser implementados nos elementos de software ou hardware ou em qualquer tipo de sua combinação dos mesmos. Todas as etapas que são efetuadas pelas diversas entidades descritas no presente pedido assim como as funcionalidades descritas a serem efetuadas pelas diversas entidades pretendem a significar que a respectiva entidade estava adaptada a ou configurada a efetuar as respectivas etapas e funcionalidades. Mesmo se, na descrição seguinte de modalidades específicas, uma funcionalidade específica ou etapa a ser totalmente formada por entidades eternas não refletida na descrição de um elemento detalhado específico daquela entidade que conduz essa etapa ou funcionalidade específica, deve ficar evidente para os versados na técnica que estes métodos e funcionalidades podem ser implementados nos respectivos elementos de software ou hardware, ou em qualquer tipo de combinação dos mesmos.
DESCRIÇÃO SUCINTA DOS DESENHOS
[0083]Os aspectos acima e formas de implementação da presente invenção serão explicados na descrição seguinte de modalidades específicas em relação aos desenhos anexos, em que: Figura 1 mostra um codificador de vídeo de acordo com o estado da técnica, Figura 2 mostra um codificador de vídeo de acordo com uma modalidade da presente invenção, Figura 3 mostra filtros de interpolação de um codificador de vídeo de acordo com uma modalidade da presente invenção, Figura 4 mostra um decodificador de vídeo de acordo com uma modalidade da presente invenção, Figura 5 mostra um método de codificação de vídeo de acordo com uma modalidade da presente invenção, Figura 6 mostra um método de decodificação de vídeo de acordo com uma modalidade da presente invenção, Figura 7 mostra uma modalidade de um filtro de interpolação de desfoque de acordo com a presente invenção, Figura 8 mostra uma modalidade de um filtro de nitidez de acordo com a presente invenção, Figura 9 mostra um padrão de filtro de interpolação para um filtro de interpolação de desfoque de acordo com uma modalidade da presente invenção, Figura 10 mostra um padrão de filtro de interpolação para um filtro de nitidez de acordo com uma modalidade da presente invenção, Figura 11 mostra um padrão de filtro de interpolação misto de acordo com uma modalidade da presente invenção, e Figura 12 mostra uma modalidade da presente invenção com diferentes padrões de filtros de interpolação.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[0084]A Figura 2 mostra um codificador de vídeo de acordo com uma modalidade da presente invenção, e particularmente um codificador de vídeo 200 para a codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento em um fluxo de bits de vídeo codificado. Em seguida, a Figura 3 mostra filtros de interpolação de um codificador de vídeo de acordo com uma modalidade da presente invenção.
[0085]O codificador de vídeo 200 compreende particularmente um buffer de quadro 207 e uma unidade de predição.
[0086]O buffer de quadro 207 é configurado para armazenar pelo menos um quadro de referência ou imagem do fluxo de vídeo. A unidade de predição 210 é configurada para gerar um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento tendo uma resolução de píxel fracionário. Dita resolução de píxel fracionário define uma posição de píxel inteiro e posições de píxeis fracionários.
[0087]A seguir, a unidade de predição 210 é configurada para interpolar o bloco de referência de acordo com a resolução de píxel fracionário por meio de um dos pelo menos três filtros de interpolação seguintes: - um filtro de interpolação de desfoque 302, - um filtro de tap 303, e - o filtro de tap 303 seguido por um filtro de nitidez 311.
[0088]O filtro de nitidez 311 mostrado na Figura 3 é referido na Figura 2 pela referência 208. O filtro de interpolação de desfoque 302 e o filtro de tap 303 da Figura 3 são representados na figura 2 por um bloco de filtro(s) de interpolação 209.
[0089]Este quadro de referência pode ser diferente de um quadro atual do fluxo de vídeo. Particularmente e dentro do contexto da invenção, o quadro atual é um quadro do fluxo de vídeo que está atualmente codificado, ao passo que o quadro de referência é um quadro do fluxo de vídeo que já foi codificado e em seguida reconstruído. Nos seguintes, qualquer referência ao elemento “quadro” pode ser substituída por uma referência ao elemento “imagem”.
[0090]O quadro atual pode ser codificado usando-se uma técnica de intercodificação, isto é, o quadro atual é predito a partir da pelo menos um quadro de referência que é distinto do quadro atual. O quadro de referência pode ser um quadro anterior, isto é, um quadro que está localizado antes do quadro atual dentro do fluxo de vídeo de quadros subsequentes. Alternativamente, se for usada uma predição à frente, o quadro de referência pode ser um quadro futuro, isto é, um quadro que está localizado depois do quadro atual. Em caso de uma pluralidade de quadros de referência, pelo menos um pode ser tal quadro anterior e pelo menos um deles pode ser tal quadro futuro. Um quadro de referência pode ser intracodificado, isto é, pode ser codificado sem se usar qualquer quadro adicional e sem qualquer dependência de outros quadros, de modo que ele possa ser independentemente decodificado e pode servir como ponto de entrada para acesso de vídeo aleatório.
[0091]Particularmente, a unidade de predição 210 é adaptada para efetuar a estimação do movimento pela geração de um vetor de movimento e estimando o movimento entre o bloco de referência do quadro de referência e o bloco atual do quadro atual. Dita estimação de movimento é conduzida durante a codificação para ser encontrado o vetor de movimento que aponta para o melhor bloco de referência no quadro de referência com base em uma certa função de custo ser, por exemplo, a otimização de taxa-distorção. Além da estimação de movimento, a unidade de predição 210 é ainda adaptada para efetuar a compensação do movimento por geração do bloco de predição para o bloco atual com base no vetor de movimento e no bloco de referência.
[0092]Particularmente, a predição de movimento compreende a estimação do movimento e a compensação de movimento. O vetor de movimento é gerado usando-se uma unidade de estimação de movimento. O bloco de referência e o bloco atual são de preferência uma respectiva área ou subárea do quadro de referência e do quadro atual. Tal bloco pode ter um formato regular, por exemplo, um formato retangular, ou um formato irregular. Alternativamente, os blocos podem ter o mesmo tamanho que os quadros. Tanto o bloco atual como o bloco de referência têm o mesmo tamanho. O tamanho dos blocos pode ser definido por meio de informações de modo de bloco transmitidas como informações secundárias ou dados de sinalização ao decodificador. 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, de 64 x 64 píxeis.
[0093]O bloco de predição é gerado para o bloco atual visando o bloco de referência. Particularmente, uma pluralidade de blocos de predição pode ser gerada para uma pluralidade de blocos atuais do quadro atual visando uma pluralidade de blocos de referência. Estes blocos de referência podem ser parte de um único quadro de referência ou podem ser selecionados de quadros de referência diferentes. Diversos blocos de predição podem ser gerados para o quadro atual, e os blocos de predição gerados para o quadro atual podem ser combinados para se obter um quadro de predição do quadro atual.
[0094]O codificador de vídeo 200 da Figura 2 compreende unidades adicionais similares ao codificador de vídeo 100 da Figura 1 para suportar particularmente a codificação de vídeo híbrido. Por exemplo, o codificador de vídeo 200 compreende unidades similares que são uma unidade de transformação 201, uma unidade de quantização 202 e o codificador por entropia ou unidade de codificação por entropia 203 para, conforme já é conhecido na técnica, gerar coeficientes de transformadas por meio de uma transformação no domínio da frequência, quantizando os coeficientes e codificando por entropia os coeficientes quantizados, por exemplo, juntamente com os dados de sinalização. A entrada da unidade de transformação 201 consiste em um bloco residual definido como a diferença entre o bloco atual do quadro atual, referido como bloco de vídeo na figura 2, e o bloco de predição emitido pela unidade de predição 210. A unidade de codificação por entropia 203 é adaptada para gerar como uma saída o fluxo de bits de vídeo codificado.
[0095]O codificador de vídeo 200 compreende outras unidades similares que são uma unidade de quantização inversa 204, uma unidade de transformação inversa 205 e uma unidade de filtragem em laço 206. Os coeficientes de transformada quantizados gerados pela unidade de quantização 202 são inversamente quantizados e inversamente transformados respectivamente pela unidade de quantização inversa 204 e pela unidade de transformação inversa 205 para se obter um bloco residual reconstruído correspondendo ao bloco residual alimentando a unidade de transformação 201. O bloco residual reconstruído é então acrescentado ao bloco de predição anteriormente usado para gerar o bloco residual, para se obter um bloco atual reconstruído correspondendo ao bloco atual, este bloco reconstruído atual sendo referido como bloco de vídeo reconstruído na Figura 2. O bloco atual reconstruído pode ser processado pela unidade de filtragem em laço 206 para suavizar os artefatos que são introduzidos pelo processamento e quantização em termos de blocos. O quadro atual, que compreende pelo menos um bloco atual ou com vantagem uma pluralidade de blocos atuais, pode então ser reconstruído a partir de bloco(s) atual(is) reconstruído(s). Este quadro atual reconstruído pode ser armazenado no buffer de quadro 207 para servir como quadro de referência para a interpredição de um outro quadro do fluxo de vídeo.
[0096]O esquema de interpolação de movimento proposto pela presente invenção é colocado na unidade de predição 210 e é usado para a estimação de movimento e a compensação de movimento para a obtenção de blocos de quadros em posições de píxeis fracionários e inteiros. Conforme mostrado na Figura 3, o esquema de interpolação é baseado nas seguintes três tipos de filtros de interpolação: - um filtro de interpolação de desfoque 302 que vantajosamente não gera ringing, como, por exemplo, um filtro gaussiano ou bilinear, - um filtro de tap 303, como um filtro de tap longo convencional com uma resposta em degrau aguda que em geral pode gerar um ringing, tal como um filtro de interpolação baseado na transformada discreta de cossenos (DCT-IF) a partir de H.265/HEVC, - uma combinação do filtro de tap 303 seguido por um filtro de nitidez 311, tal como uma combinação do filtro convencional de tap longo com uma resposta em degrau aguda e um filtro de nitidez não linear que reduz ringing e aumenta a nitidez das bordas.
[0097]A unidade de predição 210, 300 é configurada para interpolar o bloco de referência armazenado no buffer de quadro 207, 307, de acordo com a resolução de píxel fracionário por meio de um dos pelo menos três filtros de interpolação.
[0098]Durante a estimação do movimento um dos três tipos de interpolação pode ser selecionado, por exemplo, por uma unidade de decisão 305 cumprindo um de erro mínimo de predição ou por um critério de custo mínimo (taxa/distorção).
[0099]A Figura 4 mostra um decodificador de vídeo de acordo com uma modalidade da presente invenção, e particularmente um decodificador de vídeo 400 para a decodificação de um fluxo de bits de vídeo codificado obtida por codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento.
[00100]O decodificador de vídeo 400 compreende particularmente um buffer de quadro 407 e uma unidade de predição 410. O buffer de quadro 407 é configurado para armazenar pelo menos um quadro de referência obtido do fluxo de bits de vídeo codificado. A unidade de predição 410 é configurada para gerar um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento que tem uma resolução de píxel fracionário, dita resolução de píxel fracionário definindo uma posição de píxel inteiro e posições de píxeis fracionários. A unidade de predição 410 é configurada para interpolar o bloco de referência de acordo com a resolução de píxel fracionário por meio de um dos pelo menos três seguintes filtros de interpolação: - um filtro de interpolação de desfoque 302, - um filtro de tap 303, e - o filtro de tap 303 seguido por um filtro de nitidez 311.
[00101]O decodificador 400 é adaptado para decodificar a fluxo de bits de vídeo codificado gerado pelo codificador de vídeo 300, e ambos o decodificador 400 e o decodificador 300 geram predições idênticas. O filtro de nitidez 311 mostrado na Figura 3 é referido na Figura 4 pela referência 411. O filtro de interpolação de desfoque 302 e o filtro de tap 303 da Figura 3 são representados na Figura 2 por um bloco de filtro(s) de interpolação 409.
[00102]Particularmente, o decodificador de vídeo 400 pode compreender outras unidades que estão também presentes no codificador de vídeo 200 como, por exemplo, uma unidade de quantização inversa 404, uma unidade de transformação inversa 405, e uma unidade de filtragem em laço 406, que correspondem respectivamente à unidade de quantização inversa 204, à unidade de transformação inversa 205 e à unidade de filtragem em laço 206 do codificador de vídeo 200. Uma unidade de decodificação em entropia 402 é adaptada para decodificar o fluxo de bits de vídeo codificado recebido e para obter de modo correspondentes coeficientes de transformada residual quantizada e, se estiverem presente, informações de sinalização. Os coeficientes de transformada residual quantizada alimentam a unidade de quantização inversa 404 e a unidade de transformação inversa 405 para gerar um bloco residual. O bloco residual é acrescentado a um bloco de predição e a adição alimenta a unidade de filtragem em laço 406 para se obter o vídeo decodificado. Os quadros do vídeo decodificado podem ser armazenados no buffer de quadro 407 e serve como um quadro de referência para uma interpredição.
[00103]O codificador de vídeo 200 e o decodificador de vídeo 400 compreendem filtros de interpolação similares que são o filtro de interpolação de desfoque 302, o filtro de tap 303, e uma combinação de filtro de tap 303 com o filtro de nitidez 311. Vantajosamente, pelo menos um do filtro de interpolação de desfoque 302, e do filtro de nitidez 311 é um filtro adaptativo configurado para ser controlado por pelo menos um parâmetro adaptativo.
[00104]Para se assegurar predições idênticas do lado do codificador e do lado do decodificador, a posição de píxel inteiro e cada uma das posições de píxeis fracionários são associadas com o dito um dos pelo menos três filtros de interpolação 302, 303, 303 + 311 e/ou, se estiver presente, com o valor dado do parâmetro adaptativo do filtro de nitidez 311 e/ou do filtro de interpolação de desfoque 302.
[00105]Para o codificador 200 e para o decodificador 400, a escolha do filtro de interpolação dentre os três filtros de interpolação depende da posição de píxel inteiro ou da posição de píxel fracionário, de modo que uma posição dada de píxel inteiro ou posição de píxel fracionário implica na escolha de um dado filtro de interpolação e dos parâmetros adaptativos, se houver.
[00106]Do lado do codificador de vídeo 200, a escolha do filtro de interpolação dentre os três filtros de interpolação depende da posição de píxel inteiro ou da posição de píxel fracionário definida pelo vetor de movimento obtido durante a estimação do movimento. A unidade de codificação 203 do codificador 200 é configurada para gerar a fluxo de bits de vídeo codificado, e para especificar, como informações de sinalização no fluxo de bits de vídeo codificado, o tipo de filtro de interpolação e se estiver presente o dito valor dado do parâmetro adaptativo, assim como a posição associada de píxel inteiro ou de píxel fracionário. Além disso, a unidade de codificação 203 especifica, como informações de sinalização no fluxo de bits de vídeo codificado, o dito vetor de movimento.
[00107]O decodificador de vídeo 400 é configurado par a obtenção destas informações de sinalização do fluxo de bits de vídeo codificado. O decodificador 400 recebe o tipo de filtro de interpolação e a posição de píxel associada, e particularmente recebe para cada posição de píxel o tipo de filtro de interpolação associado. Se estiver presente, o decodificador 400 também recebe o dito valor dado do parâmetro adaptativo para cada posição de píxel. Além disso, o decodificador de vídeo 400 é configurado para obter, como informações de sinalização no fluxo de bits de vídeo codificado, o vetor de movimento determinado pelo codificador 200 durante a estimação de movimento. Assim, usando-se o vetor de movimento obtido, o decodificador 400 é capaz de deduzir a posição de píxel e o tipo de filtro de interpolação associado, e, se estiver presente, o valor de parâmetro adaptativo associado. Portanto, as predições idênticas podem ser conduzidas do lado do codificador e do decodificador reduzindo ao mesmo tempo o excedente de sinalização.
[00108]A Figura 5 mostra um método de codificação de vídeo de acordo com uma modalidade da presente invenção, e particularmente um método para a codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento em um fluxo de bits de vídeo codificado.
[00109]O método compreende uma etapa 501 de armazenamento de pelo menos um quadro de referência do fluxo de vídeo.
[00110]O método compreende ainda mais adiante uma etapa de predição 502 compreendendo a geração de um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento que tem uma resolução de píxel fracionário. Dita resolução de píxel fracionário define uma posição de píxel inteiro e posições píxeis fracionários. Além disso, a etapa de predição compreende a interpolação do bloco de referência de acordo com a resolução de píxel fracionário por meio de um dos pelo menos três filtros de interpolação seguintes: - um filtro de interpolação de desfoque, - um filtro de tap, e - um filtro de tap seguido por um filtro de nitidez.
[00111]A Figura 6 mostra um método de decodificação de vídeo de acordo com uma modalidade da presente invenção, e particularmente um método para a decodificação de um fluxo de bits de vídeo codificado obtida por codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento.
[00112]O método compreende uma etapa de armazenagem 601 de pelo menos um quadro de referência obtido do fluxo de bits de vídeo codificado.
[00113]O método compreende ainda mais adiante uma etapa de predição 602 compreendendo a geração de um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento que tem uma resolução de píxel fracionário. Dita resolução de píxel fracionário define uma posição de píxel inteiro e posições de píxeis fracionários. A etapa de predição compreende ainda a interpolação do bloco de referência de acordo com a resolução do píxel fracionário por meio de um dos pelo menos três filtros de interpolação seguintes: - um filtro de interpolação de desfoque, - um filtro de tap, e - um filtro de tap seguido por um filtro de nitidez.
[00114]Outros aspectos e características descritos com referência ao codificador de vídeo 200 ou ao decodificador de vídeo 400 são também aplicáveis ao método de codificação e ao método de decodificação.
[00115]A Figura 7 mostra uma modalidade de um filtro de interpolação de desfoque de acordo com a presente invenção, e particularmente uma modalidade do filtro de interpolação de desfoque 302 do codificador de vídeo 200.
[00116]Na modalidade da Figura 7, o filtro de interpolação de desfoque 302 é implementado como um filtro gaussiano na forma paramétrica. A quantidade de desfoque pode ser controlada somente por um parâmetro adaptativo a do filtro gaussiano. Este único parâmetro adaptativo tem a vantagem de que o filtro pode ser facilmente otimizado e que o excedente de sinalização para a transferência do parâmetro de desfoque adaptativo pode ser reduzido.
[00117]O filtro de interpolação de desfoque 302 recebe como uma entrada o vetor de movimento. O vetor de movimento é determinado pelo codificador 200 durante a estimação do movimento. Com base no vetor de movimento uma unidade 701 é configurada para obter a parte fracionária da posição de píxel do dito vetor de movimento.
[00118]Uma outra unidade 702 é configurada para calcular os coeficientes de filtro gaussiano com um dado parâmetro a para se obter um deslocamento fracionário. Uma unidade 703 é configurada para se obter um bloco de predição de movimento, usando-se como entradas o bloco de referência e os coeficientes de filtros de interpolação calculados pela unidade 702. Em seguida o filtro de interpolação de desfoque 302 é configurado para calcular uma eficiência de predição por meio do erro de predição ou critério de custo. O erro de predição corresponde ao bloco residual e é calculado como a diferença entre o bloco original e o bloco de predição.
[00119]Para otimizar a eficiência de predição, a unidade 702 é configurada para calcular coeficientes para um outro valor do parâmetro a, de modo que um bloco de predição correspondente possa ser obtido pela unidade 703 e uma eficiência de predição correspondente possa ser calculada pelo filtro de interpolação de desfoque 302. Depois de uma iteração destas etapas para valores diferentes do parâmetro a, o filtro de interpolação de desfoque 302 escolhe o parâmetro a que provê a melhor eficiência de predição.
[00120]Alternativamente, é possível se pré-calcular os filtros de desfoque gaussianos com diferentes valores do parâmetro a, e armazená-los para diferentes posições fracionárias. Isto permite que se economizem alguns recursos computacionais durante o procedimento de otimização.
[00121]O decodificador de vídeo 400 compreende um filtro de interpolação de desfoque que é similar ao filtro de interpolação de desfoque 302 do codificador 200 mostrado na Figura 7. O filtro de interpolação de desfoque do decodificador de vídeo 400 compreende similarmente as unidades 701, 702 e 703 e similarmente recebe como uma entrada um vetor de movimento. Este vetor de movimento é obtido pelo decodificador de vídeo 400 como informações de sinalização do fluxo de bits de vídeo codificado. O decodificador 400 deriva o valor do parâmetro a que será usado para a geração de coeficientes de filtro da parte fracionária do vetor de movimento de acordo com o padrão de filtro de interpolação.
[00122]A diferença entre os filtros de interpolação de desfoque do codificador de vídeo 200 e do decodificador de vídeo 400 consiste preferencialmente no cálculo da eficiência de predição na otimização da eficiência de predição pelo cálculo iterativo da eficiência de predição para valores diferentes do parâmetro a.
[00123]A Figura 8 mostra uma modalidade de um filtro de nitidez adaptativo de acordo com a presente invenção, e particularmente uma modalidade do filtro de nitidez adaptativo 311 do codificador de vídeo 200.
[00124]O filtro de nitidez 311 é, de preferência, um filtro não linear. O uso de um filtro de nitidez não linear, em vez de um filtro linear, é preferível por remover artefatos causados pelo filtro de interpolação de movimento e pela quantização do bloco ou 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 311. Em particularmente, o filtro não linear pode utilizar somente um parâmetro adaptativo, de modo que o excedente de sinalização do fluxo de bits de vídeo codificado é reduzido. Embora a presente invenção também abranja o uso de mais de um parâmetro adaptativo para controlar o filtro de nitidez 311, um filtro de nitidez que utiliza somente um parâmetro adaptativo é uma modalidade particularmente vantajosa.
[00125]Particularmente, o filtro de nitidez 311 compreende uma unidade de cálculo de mapa de bordas 801, 802, um filtro de desfoque 804, um filtro de passa alta 805, uma unidade de escalonamento 806 e uma unidade de distorção 807.
[00126]A unidade de cálculo de mapa de bordas 801, 802 é adaptada para gerar um mapa de borda de um bloco fonte, dito bloco fonte sendo o bloco de referência ou bloco de predição. O filtro de desfoque 804 é adaptado para desfocar o mapa de bordas do bloco fonte. O filtro de passa alta 805 é adaptado para gerar, por filtragem de passa alta do mapa de bordas desfocado, um vetor de derivada (d2x, d2y) para cada posição do bloco fonte. A unidade de escalonamento 806 é adaptada para gerar um vetor de deslocamento (wx, wy) escalonando o vetor de derivada (d2x, d2y) com um coeficiente de intensidade de nitidez k. A unidade de distorção 807 é adaptada para distorcer o bloco de predição com base no vetor de deslocamento (wx, xy).
[00127]Deste modo, o parâmetro adaptativo que controla o filtro de nitidez 800 é o coeficiente de intensidade de nitidez k. O filtro de nitidez 800 mostrado na Figura 8 consiste em uma modalidade da presente invenção tendo somente um parâmetro adaptativo.
[00128]A unidade de cálculo do mapa de bordas 801, 802 pode compreender uma unidade de vetor gradiente 801 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 802 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 de distorção.
[00129]O vetor de gradiente pode ser obtido tomando-^ a primeira derivada separadamente para dx e dy, isto é, separadamente tanto para a direção horizontal como para a direção vertical do bloco fonte a que se refere como bloco de predição de movimento na Figura 8, por aplicação de um filtro Prewitt correspondente de acordo com as seguintes equações:
[00130]O mapa de bordas pode ser obtido pela unidade de comprimento de vetor de gradiente 802, calculando-se o comprimento do vetor de gradiente de acordo com a seguinte equação:
[00131]Vantajosamente, o filtro de nitidez 311 compreende uma unidade de corte 803 adaptada para cortar o mapa de bordas do bloco fonte, sendo a unidade de corte 803 localizada entre a unidade de cálculo do mapa de bordas 801, 802 e o filtro de desfoque 804. 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,
[00132]A etapa de desfoque do mapa de bordas cortado pode ser obtida por um filtro de forma de um filtro gaussiano que pode ser definido do seguinte modo:
[00133]O filtro de passa alta é usado para se obter separadamente para d2x e d2y, a segunda derivada, de acordo com, por exemplo, os seguintes:
[00134]O vetor de deslocamento (wx, wy) é obtido escalonando-se o segundo vetor de derivada (d2x, d2y) com o coeficiente k, podendo o coeficiente k ser considerado como intensidade de nitidez de acordo com as seguintes equações:
[00135]A unidade de distorção 807 inclui um filtro de interpolação que é, por exemplo, um filtro de interpolação bilinear para obter valores de amostras em posições de píxeis fracionários. A unidade de distorção 807 usa o vetor de deslocamento gerado pela unidade de escalonamento 806. Deste modo, a qualidade geral do codificador de vídeo é melhorada, sendo provida ao mesmo tempo uma interpolação do quadro/bloco de referência nas posições de píxeis fracionários.
[00136]Uma unidade de subtração 808 é adaptada para formar a diferença ente o bloco de predição com a nitidez aumentada gerado pela unidade de distorção 807 e o bloco atual, correspondendo o bloco atual ao bloco a ser codificado. A unidade de subtração 808 na verdade gera o bloco residual. O filtro de nitidez 311 é adaptado para encontrar a intensidade de nitidez k ótima, por exemplo, minimizando o bloco residual ou por um critério de custo com base, por exemplo, na curva taxa-distorção.
[00137]O decodificador de vídeo 400 compreende um filtro de nitidez adaptativo que é similar ao filtro de nitidez adaptativo 311 do codificador de vídeo 200 mostrado na Figura 8. A diferença entre os filtros de nitidez adaptativos do codificador de vídeo 200 e do decodificador de vídeo 300 consiste preferencialmente na unidade de subtração 808 e nesta minimização do bloco residual.
[00138]No decodificador de vídeo 400, o parâmetro adaptativo, por exemplo, o coeficiente k, não é ajustado por meio da unidade de subtração 808 e a minimização do bloco residual. Em vez disso o parâmetro adaptativo é ajustado no decodificador de vídeo 400, dependendo preferencialmente da parte fracionária do vetor de movimento de acordo com o padrão do filtro de interpolação.
[00139]O filtro de nitidez 400 compreende uma distorção baseada em um vetor de deslocamento calculado a partir do bloco fonte, referindo-se ao bloco fonte na Figura 8 como bloco de predição de movimento.
[00140]De acordo com uma modalidade não mostrada na figura 8, o bloco fonte é o bloco de referência do quadro de referência armazenado no buffer de quadro 207 de modo tal, que o vetor de deslocamento (wx, wy) é derivado do bloco de referência. Deste modo, o bloco de referência é usado como bloco fonte para a obtenção dos vetores deslocamento, que são também denominados vetores de deslocamento de nitidez ou de vetores de deslocamento de distorção. A distorção é então aplicada ao bloco de predição usando-se o vetor de deslocamento obtido. Esta modalidade é vantajosa por economizar recursos computacionais do lado do codificador.
[00141]De acordo com a modalidade alternativa da Figura 8, o bloco fonte é o bloco de predição gerado pela unidade de predição 210, de modo tal, que o vetor de deslocamento (wx, wy) é derivado do bloco de predição.
[00142]Deste modo, escolhendo o bloco de predição como bloco fonte permite que se calculem vetores de deslocamento adequados para a condução da distorção do bloco de predição. Além disso, o filtro de nitidez então somente exige uma entrada para o bloco de predição e não é necessária uma segunda entrada para o bloco de referência.
[00143]No tocante à modalidade da Figura 8, o filtro de nitidez pode ser controlado por somente um coeficiente, por exemplo, a intensidade de nitidez k. Isto torna o processo de adaptação mais fácil e exige um número menor de bits de sinalização para a transmissão do que os filtros lineares adaptativos tradicionais baseados em Wiener. O uso de um filtro de nitidez não linear em vez dos filtros lineares conhecidos é também mais preferível para a remoção de artefatos causados pelo filtro de interpolação de movimento e pela quantização da imagem de referência.
[00144]A Figura 9 mostra um padrão de filtro de interpolação de um filtro de interpolação de desfoque de acordo com uma modalidade da presente invenção. O padrão de filtro de interpolação mostrado na Figura 9 define, para cada uma da posição de píxel inteiro e das posições de píxeis fracionários, que o filtro de interpolação é o filtro de interpolação de desfoque 302. A seguir, o padrão da Figura 9 define, para cada posição de píxel, o valor do parâmetro adaptativo, por exemplo, o valor do coeficiente de desfoque o.
[00145]O espaço fracionário dos vetores de movimento compreende diversas posições de píxeis. Nos codecs de vídeo modernos tais como H.264/AVC e H.265/HEVC, o vetor de movimento tem tipicamente uma resolução de 1/4 de píxel em ambas as dimensões X e Y. A Figura 9 mostra uma modalidade da presente invenção de acordo com tal resolução de 1/4 píxel. Esta resolução implica em um total de 4 x 4 = 16 posições possíveis. Estas posições possíveis incluem uma posição inteira identificada como um “a” quadrado assim como 15 posições fracionárias b, c, d, e, f, g, h, i, j, k, l, m, n, o, p. As posições fracionárias compreendem 3 posições de 1/2 píxel identificadas como os círculos c, i, k, assim como 12 posições de 1/4 de píxel em forma de triângulos correspondentes. O padrão define para cada posição um valor o1, ..., o16 para o coeficiente de desfoque o.
[00146]O padrão de filtro de interpolação da figura 9 pode ser acrescentado pelo codificador 200 como informações de sinalização ao fluxo de bits de vídeo codificado, e pode ser de modo correspondente obtido pelo decodificador 400 do dito fluxo de bits de vídeo codificado. A efetuação de uma interpolação de acordo com ao padrão de filtro de interpolação da Figura 9 significa que em vez de se usar um filtro fixo convencional com a resposta em degrau aguda, o filtro de interpolação de desfoque é aplicado para a interpolação. O coeficiente de desfoque oi associado com a posição fracionária é usado como coeficiente adaptativo para o filtro de interpolação de desfoque adaptativo.
[00147]Os coeficientes oi poderiam ser constantes e predefinidos por treinamento offline ou selecionados com base, por exemplo, em píxel fracionárioes. É permitido se ter o mesmo coeficiente de desfoque oi em diferentes posições fracionárias do padrão. Os coeficientes oi podem também ser variáveis e adaptativos a um nível de sequências, nível GOP, nível de quadros, ou nível de regiões. Nesse caso é requerida uma sinalização adicional.
[00148]A Figura 10 mostra um padrão de filtro de interpolação para um filtro de nitidez de acordo com uma modalidade da presente invenção.
[00149]O padrão de filtro de interpolação da Figura 10 é similar ao padrão da Figura 9, e define, para cada uma da posição de píxel inteira e das posições de píxeis fracionários, que o filtro de interpolação associado é o filtro de nitidez 311. Mais adiante, em vez de definir o coeficiente de desfoque o do filtro de interpolação de desfoque, o dito padrão de filtro de interpolação da Figura 10 define, para cada posição de píxel, o valor do parâmetro adaptativo, por exemplo, o valor do coeficiente de intensidade de nitidez k.
[00150] Similarmente a Figura 9, os coeficientes ki poderiam ser constantes e predefinidos por treinamento offline ou selecionados com base, por exemplo, em píxel fracionário. É permito se ter o mesmo coeficiente de nitidez ki em diferentes posições fracionárias. Os coeficientes ki podem também ser variáveis e adaptativos a um nível de sequências, nível de GOP, nível de quadros ou nível de regiões. Nesse caso é necessária uma sinalização adicional.
[00151]A Figura 11 mostra um padrão de filtro de interpolação de acordo com uma outra modalidade da presente invenção.
[00152]O padrão mostrado na Figura 11 é de fato um padrão misto de filtros de interpolação que contém todos os três tipos de filtros de interpolação. Algumas posições de píxeis fracionários b, e, f, g, h, j, n têm um parâmetro associado de desfoque o, o que significa que para estas posições o filtro de interpolação de desfoque 302 será aplicado com o parâmetro correspondente de filtro o1, ..., o7.
[00153]Algumas outras posições de píxeis l, o, p têm um parâmetro associado de intensidade de nitidez k, o que significa que depois de uma interpolação com o filtro de tap 303, isto é, com o tap de filtro fixo convencional, o filtro de nitidez adaptativo 311 deve aplicado com o correspondente valor de parâmetro k1, k2, k3.
[00154]Algumas outras posições de píxel a, c, d, i, k, m não têm nenhum parâmetro associado, isto é, o padrão de filtro de interpolação não associa nenhum valor de parâmetro a estas posições. Isto é interpretado pelo decodificador 400 de um modo tal, que para estas posições o filtro de tap 303, isto é, um filtro de interpolação linear convencional, é usado.
[00155]Misturando-se todos os tipos de interpolação em um padrão de filtro de interpolação, é agora possível que o codificador escolha a interpolação mais adequada para cada caso especial de modo adaptativo ao conteúdo da imagem.
[00156]Na modalidade das Figuras 9, 10 e 11, a posição fracionária do vetor de movimento pode assim definir no tipo de filtro de interpolação assim como, para o filtro de interpolação de desfoque 302 e para o filtro de nitidez 311, o parâmetro adaptativo do tipo de filtro de interpolação definido. O padrão de filtro de interpolação deve ser conhecido tanto pelo codificador como pelo decodificador. Ele pode ser predefinido ou ser adaptativo e ser passado como informações secundárias, isto é, em forma de informações de sinalização do fluxo de bits de vídeo codificado.
[00157]A Figura 12 mostra uma modalidade da presente invenção com diferentes padrões de filtro de interpolação.
[00158]Para algumas regiões de um quadro o uso de filtro de interpolação de desfoque 302 ou do filtro de nitidez 311 pode não ser necessário. Em tal caso é melhor usar o filtro de tap 303 para todos os pontos fracionários.Em outras regiões do quadro, pode ser ótimo se aplicar o filtro de interpolação de desfoque 302 ou o filtro de nitidez 311.
[00159]Para cobrir estas variantes é proposto se definir diversos padrões de filtro de interpolação diferentes para algumas regiões locais do quadro, escolher o melhor padrão de filtro de interpolação com base, por exemplo, em um critério de custo tal como a otimização de curva taxa-distorção, e sinalizar ao decodificador 400 qual o padrão de filtro de interpolação deve ser usado para a interpolação de movimento na região dada.
[00160]De modo correspondente, a Figura 12 mostra um quadro compreendendo diversas regiões enquanto, por exemplo, dois padrões diferentes de filtro de interpolação são usados. O primeiro padrão identificado como “padrão de interpolação 0” define que o filtro de tap 303, isto é, o filtro de interpolação fixo convencional, deve ser usado para cada posição de píxel, enquanto que o segundo padrão identificado como “padrão de interpolação 1” é um padrão misto de filtros de interpolação conforme mostrado na Figura 11.
[00161]Na modalidade da Figura 12, o codificador 200 seleciona o primeiro padrão para duas regiões e o segundo padrão para as quatro regiões restantes do quadro. Durante o processo de codificação, o melhor padrão de filtro de interpolação pode ser selecionado para cada região particular - por exemplo, para cada unidade máxima de codificação (LCU) - e pode ser sinalizado ao decodificador em um bit, dito bit determinando o primeiro ou o segundo padrão de filtro de interpolação.
[00162]A presente invenção foi descrita em conjunto com diversas modalidades como exemplos assim como implementações. No entanto, outras variações podem ser compreendidas e efetuadas pelos versados na técnica e colocar em prática a invenção reivindicada, a partir dos estudos dos desenhos, desta descrição e das reivindicações independentes. Nas reivindicações, assim como na descrição, a palavra “compreendendo” não exclui outros elementos ou etapas e o artigo indefinido “um” ou “uma” não exclui a sua forma no plural. Um único elemento ou outra unidade podem preencher as funções de diversas entidades ou itens citados nas reivindicações. O simples fato que determinadas medidas são citadas nas reivindicações dependentes mútuas diferentes não indica que uma combinação destas medidas não possa ser usada em uma implementação vantajosa.

Claims (32)

1. Codificador de vídeo para a codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento em um fluxo de bits de vídeo codificado, CARACTERIZADO pelo fato de que compreende: - um buffer de quadro (207) configurado para armazenar pelo menos um quadro de referência do fluxo de vídeo, - uma unidade de predição (210) configurada para gerar um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do pelo menos um quadro de referência de acordo com um vetor de movimento que tem uma resolução de píxel fracionário, em que gerar o bloco de predição compreende ainda: selecionar um tipo de filtro a partir de um conjunto de tipos de filtro que inclui: um filtro de interpolação de desfoque (302), um filtro de tap (303) e um filtro de tap (303) seguido por um filtro de nitidez (311) não linear; e interpolar o bloco de referência de acordo com a resolução de píxel fracionário por meio do tipo de filtro selecionado.
2. Codificador de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o filtro de interpolação de desfoque (302) e/ou o filtro de nitidez (311) não linear é um filtro adaptativo configurado para ser controlado por pelo menos um parâmetro adaptativo.
3. Codificador de vídeo, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o filtro de nitidez (311) não linear é configurado para ser controlado por um único parâmetro adaptativo.
4. Codificador de vídeo, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que o filtro de nitidez (311) não linear compreende: - uma unidade de cálculo de mapa de borda (801, 802) adaptada para gerar um mapa de borda de um bloco fonte, sendo o bloco fonte o bloco de referência ou o bloco de predição, - um filtro de desfoque (804) adaptado para desfocar o mapa de borda do bloco fonte, - um filtro de passa alta (805) adaptado para gerar, por filtragem de passa alta, o mapa de borda desfocado, um vetor de derivada (d2x, d2y) para cada posição do bloco fonte, - uma unidade de escalonamento (806) 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) e - uma unidade de distorção (807) adaptada para distorcer o bloco de predição com base no vetor de deslocamento (wx, wy).
5. Codificador de vídeo, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que o filtro de interpolação de desfoque e/ou o filtro de nitidez não linear é um filtro adaptativo configurado para ser controlado por pelo menos um parâmetro adaptativo, e o pelo menos um parâmetro adaptativo do filtro de nitidez (311) não linear inclui o coeficiente de intensidade de nitidez (k).
6. Codificador de vídeo, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que a unidade de predição é configurada para selecionar o coeficiente de intensidade de nitidez (k) que minimiza um bloco residual, sendo o bloco residual a diferença entre o bloco atual e o bloco de predição emitido pelo filtro de nitidez (311) não linear, ou com base em critérios de custo.
7. Codificador de vídeo, de acordo com qualquer uma das reivindicações 2 a 6, CARACTERIZADO pelo fato de que o filtro de interpolação de desfoque (302) compreende um único parâmetro adaptativo.
8. Codificador de vídeo, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que o parâmetro adaptativo do filtro de interpolação de desfoque (302) inclui um coeficiente de desfoque (o).
9. Codificador de vídeo, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o filtro de interpolação de desfoque (302) é um filtro gaussiano ou um filtro bilinear.
10. Codificador de vídeo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o filtro de interpolação de desfoque (302) compreende: - uma unidade de cálculo (402) configurada para calcular coeficientes de filtro gaussiano com base no desvio padrão (o), - uma unidade de filtragem (403) configurada para gerar, como uma saída do filtro de interpolação de desfoque (302), um bloco de predição usando os coeficientes de filtro gaussiano calculados.
11. Codificador de vídeo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que compreende: - uma unidade configurada para armazenar um conjunto precalculado de coeficientes de filtros gaussianos baseados em diferentes desvios padrão (o), - uma unidade de filtragem (403) configurada para gerar, como uma saída do filtro de interpolação de desfoque (302), um bloco de predição usando um filtro do conjunto de filtros gaussianos precalculados.
12. Codificador de vídeo, de acordo com qualquer uma das reivindicações 8 a 11, CARACTERIZADO pelo fato de que a unidade de predição é configurada para selecionar o coeficiente de desfoque (o) que minimiza um bloco residual, dito bloco residual sendo a diferença entre o bloco atual e o bloco de predição emitido pelo filtro de interpolação de desfoque (302), ou baseada em um critério de custo.
13. Codificador de vídeo, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que o filtro de tap (303) é um filtro de tap longo fixo com uma resposta em degrau aguda.
14. Codificador de vídeo, de acordo com qualquer uma das reivindicações 2 a 13, CARACTERIZADO pelo fato de que uma respectiva posição de píxel inteiro e uma respectiva posição de píxel fracionário estão associadas com dito um dos pelo menos três filtros de interpolação (302, 303, 303 + 311) e/ou, se estiver presente, com o valor dado do pelo menos um parâmetro adaptativo.
15. Codificador de vídeo, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que compreende uma unidade de codificação (203) configurada para gerar a fluxo de bits de vídeo codificado, e para especificar, como informações de sinalização no fluxo de bits de vídeo codificado, um tipo de filtro de interpolação e o dito valor dado do pelo menos um parâmetro adaptativo e a respectiva posição de píxel inteiro ou a respectiva posição de píxel fracionário.
16. Codificador de vídeo, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que a escolha do filtro de interpolação dentre os três filtros de interpolação depende de uma posição de píxel inteiro ou de uma posição de píxel fracionário.
17. Codificador de vídeo, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que compreende pelo menos um padrão de filtro de interpolação definindo, para cada uma de uma posição de píxel inteiro e posições de píxeis fracionários, um tipo de filtro de interpolação associado e/ou, se estiver presente, um valor de pelo menos um parâmetro adaptativo.
18. Codificador de vídeo, de acordo com qualquer uma das reivindicações precedentes, CARACTERIZADO pelo fato de que compreende uma pluralidade de padrões de filtros de interpolação, em que a unidade de predição (210) é configurada para selecionar um padrão da pluralidade de padrões de filtros de interpolação.
19. Codificador de vídeo, de acordo com a reivindicação 17 ou 18, CARACTERIZADO pelo fato de que compreende uma unidade de codificação (203) configurada para gerar um fluxo de bits de vídeo codificado e para acrescentar, como informações de sinalização no fluxo de bits de vídeo codificado, o pelo menos um padrão de filtro de interpolação.
20. Codificador de vídeo, de acordo com qualquer uma das reivindicações 17 a 19, CARACTERIZADO pelo fato de que, o pelo menos um padrão de filtro de interpolação compreende uma pluralidade de padrões de filtro de interpolação, a unidade de codificação (203) é configurada para acrescentar, como informações de sinalização em um fluxo de bits de vídeo codificado, informações de seleção sobre o padrão de filtro de interpolação a ser selecionado.
21. Codificador de vídeo, de acordo com qualquer uma das reivindicações 17 a 20, CARACTERIZADO pelo fato de que a unidade de codificação (203) é configurada para acrescentar as informações de sinalização sobre o padrão de filtro de interpolação a ser selecionado 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 imagens) ou a um nível de SPS (conjunto de parâmetros de sequência).
22. Método para a codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com a compensação de movimento em um fluxo de bits de vídeo codificado, CARACTERIZADO pelo fato de que compreende: - armazenar (501) pelo menos um quadro de referência do fluxo de vídeo, - uma etapa de predição (502) compreendendo a geração de um bloco de predição de um bloco atual de um quadro atual a partir do bloco de referência do pelo menos um quadro de referência de acordo com um vetor de movimento tendo uma resolução de píxel fracionário, em que gerar o bloco de predição compreende ainda: selecionar um tipo de filtro a partir de um conjunto de tipos de filtro que inclui: um filtro de interpolação de desfoque, um filtro de tap e um filtro de tap seguido por um filtro de nitidez não linear; e interpolar o bloco de referência de acordo com a resolução de píxel fracionário por meio do tipo de filtro selecionado.
23. Decodificador de vídeo para a decodificação de um fluxo de bits de vídeo codificado obtido por codificação preditiva de acordo com compensação de movimento, CARACTERIZADO pelo fato de que compreende: - um buffer de quadro (407) configurado para armazenar pelo menos um quadro de referência obtido do fluxo de bits de vídeo codificado, - uma unidade de predição (410) configurada para gerar um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do pelo menos um quadro de referência de acordo com um vetor de movimento que tem uma resolução de píxel fracionário, em que gerar o bloco de predição compreende ainda: selecionar um tipo de filtro a partir de um conjunto de tipos de filtro que inclui: um filtro de interpolação de desfoque (302), um filtro de tap (303) e um filtro de tap (303) seguido por um filtro de nitidez (311) não linear; e interpolar o bloco de referência de acordo com a resolução de píxel fracionário por meio do tipo de filtro selecionado.
24. Decodificador de vídeo, de acordo com a reivindicação 23, CARACTERIZADO pelo fato de que o filtro de interpolação de desfoque (302) e/ou o filtro de nitidez (311) não linear é um filtro adaptativo configurado para ser controlado por pelo menos um parâmetro adaptativo.
25. Decodificador de vídeo, de acordo com a reivindicação 23 ou 24, CARACTERIZADO pelo fato de que a escolha do filtro de interpolação dentre os três filtros de interpolação depende de uma posição de píxel inteiro ou de uma posição de píxel fracionário.
26. Decodificador de vídeo, de acordo com qualquer uma das reivindicações 23 a 25, CARACTERIZADO pelo fato de que a unidade de predição (410) é configurada para escolher o um dos três filtros de interpolação de acordo com um padrão de filtro de interpolação, e em que este padrão de filtro de interpolação define, para uma respectiva posição de píxel inteiro do vetor de movimento e uma respectiva posição de píxel fracionário, o tipo de filtro de interpolação associado e/ou, se estiver presente, o valor de pelo menos um parâmetro adaptativo.
27. Decodificador de vídeo, de acordo com a reivindicação 26, CARACTERIZADO pelo fato de que compreende uma unidade de decodificação (403) configurada para obter do fluxo de bits de vídeo codificado, como informações de sinalização, o padrão de filtro de interpolação.
28. Decodificador de vídeo, de acordo com a reivindicação 26, CARACTERIZADO pelo fato de que compreende uma unidade de decodificação (403) configurada para obter do fluxo de bits de vídeo codificado, como informações de sinalização, uma pluralidade de padrões de filtros de interpolação assim como informações de seleção sobre o padrão de filtro de interpolação a ser selecionado, em que a unidade de predição (410) é configurada para selecionar um dos padrões de filtro de interpolação obtidos de acordo com as informações de seleção obtidas, e para selecionar o um dos três filtros de interpolação de acordo com o padrão de filtro de interpolação selecionado.
29. Decodificador de vídeo, de acordo com a reivindicação 26, CARACTERIZADO pelo fato de que: o decodificador de vídeo ainda compreende uma unidade de decodificação (403) configurada para obter do fluxo de bits de vídeo codificado, como informações de sinalização, informações de seleção sobre o padrão de filtro de interpolação pré-armazenado a ser selecionado, em que a unidade de predição (410) é configurada para selecionar um dos padrões de filtro de interpolação pré-armazenados de acordo com as informações de seleção obtidas e para escolher o um dos três filtros de interpolação de acordo com o padrão de filtro de interpolação selecionado.
30. Decodificador de vídeo, de acordo com qualquer uma das reivindicações 24 e 27 a 29, CARACTERIZADO pelo fato de que a unidade de decodificação (403) é configurada para obter as informações de sinalização sobre o padrão de filtro de interpolação a ser selecionado 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 imagens) ou a um nível de SPS (conjunto de parâmetros de sequência).
31. Método para a decodificação de um fluxo de bits de vídeo codificado obtida por codificação preditiva de um fluxo de vídeo de quadros subsequentes de acordo com uma compensação de movimento, CARACTERIZADO pelo fato de que compreende: - armazenar (601) pelo menos um quadro de referência obtido do fluxo de bits de vídeo codificado, - uma etapa de predição (602) compreendendo a geração de um bloco de predição de um bloco atual de um quadro atual a partir de um bloco de referência do quadro de referência de acordo com um vetor de movimento tendo uma resolução de píxel fracionário, em que gerar o bloco de predição compreende ainda: selecionar um tipo de filtro a partir de um conjunto de tipos de filtro que inclui: um filtro de interpolação de desfoque, um filtro de tap e um filtro de tap seguido por um filtro de nitidez não linear; e interpolar o bloco de referência de acordo com a resolução de píxel fracionário por meio do tipo de filtro selecionado.
32. Meio de armazenamento legível por computador, CARACTERIZADO pelo fato de ter nele armazenado instruções para executar o método, conforme definido na reivindicação 22 ou 31, quando as instruções são executadas em um dispositivo de computação.
BR112018006009-7A 2015-09-25 2015-09-25 Codificador de vídeo, decodificador de vídeo, métodos para a codificação e decodificação preditiva e meio de armazenamento legível por computador BR112018006009B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2015/000614 WO2017052409A1 (en) 2015-09-25 2015-09-25 Apparatus and method for video motion compensation with selectable interpolation filter

Publications (2)

Publication Number Publication Date
BR112018006009A2 BR112018006009A2 (pt) 2018-10-30
BR112018006009B1 true BR112018006009B1 (pt) 2023-12-12

Family

ID=55754395

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112018006009-7A BR112018006009B1 (pt) 2015-09-25 2015-09-25 Codificador de vídeo, decodificador de vídeo, métodos para a codificação e decodificação preditiva e meio de armazenamento legível por computador

Country Status (13)

Country Link
US (1) US10841605B2 (pt)
EP (1) EP3354028B1 (pt)
JP (1) JP2018530244A (pt)
KR (1) KR102192778B1 (pt)
CN (1) CN107925772B (pt)
AU (1) AU2015410097B2 (pt)
BR (1) BR112018006009B1 (pt)
CA (1) CA2999826C (pt)
MX (1) MX2018003768A (pt)
MY (1) MY187403A (pt)
RU (1) RU2696311C1 (pt)
WO (1) WO2017052409A1 (pt)
ZA (1) ZA201802228B (pt)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202003260WA (en) 2017-11-07 2020-05-28 Huawei Tech Co Ltd Interpolation filter for an inter prediction apparatus and method for video coding
EP3799692A4 (en) * 2018-06-13 2021-08-04 Huawei Technologies Co., Ltd. INTRA ENHANCEMENT AND / OR CONTOUR CORRECTION FILTER FOR VIDEO CODING ON THE BASIS OF A BIT TRAIN FLAG
CN111010568B (zh) * 2018-10-06 2023-09-29 华为技术有限公司 插值滤波器的训练方法、装置及视频图像编解码方法、编解码器
WO2020125629A1 (en) * 2018-12-17 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Reference pixels padding for motion compensation
CN113196753B (zh) * 2018-12-28 2023-05-12 华为技术有限公司 用于预测译码的插值滤波锐化方法和装置
CN117041595B (zh) * 2018-12-30 2024-05-17 北京达佳互联信息技术有限公司 用于对视频进行解码的方法、设备、存储介质和程序产品
US11044480B2 (en) * 2019-01-24 2021-06-22 Google Llc More accurate 2-tap interpolation filters for video compression
EP3922023A4 (en) 2019-03-05 2022-06-15 Huawei Technologies Co., Ltd. USING EXTENDED SAMPLES WHILE SEARCHING IN A DECODER-SIDE MOTION REFINEMENT
JP7358497B2 (ja) * 2019-03-12 2023-10-10 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ハイブリッドビデオコード化のためのエンコーダ、デコーダ、方法、およびビデオビットストリーム、ならびにコンピュータプログラム
CN110033415B (zh) * 2019-03-20 2023-03-21 东南大学 一种基于Retinex算法的图像去模糊方法
WO2020192793A1 (en) 2019-03-28 2020-10-01 Huawei Technologies Co., Ltd. Method and apparatus for intra smoothing
CN113728633B (zh) * 2019-04-01 2022-12-20 北京字节跳动网络技术有限公司 对基于历史的运动矢量预测使用插值滤波器
KR20230165888A (ko) 2019-04-02 2023-12-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 양방향 광학 흐름 기반 비디오 코딩 및 디코딩
WO2020211864A1 (en) 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Region based gradient calculation in different motion vector refinements
WO2020211867A1 (en) 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Delta motion vector in prediction refinement with optical flow process
JP7273193B2 (ja) 2019-05-12 2023-05-12 北京字節跳動網絡技術有限公司 参照ピクチャ再サンプリングのための信号通知
WO2021030502A1 (en) * 2019-08-12 2021-02-18 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatuses for adaptive motion vector resolution in video coding
CN114223205A (zh) * 2019-08-23 2022-03-22 北京字节跳动网络技术有限公司 参考图片重采样
KR20220049000A (ko) 2019-08-23 2022-04-20 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 참조 픽처 리샘플링에서의 클리핑
WO2021056212A1 (zh) * 2019-09-24 2021-04-01 深圳市大疆创新科技有限公司 视频编解码方法和装置
CN110572676B (zh) * 2019-09-27 2023-12-12 腾讯科技(深圳)有限公司 视频编码方法和装置、视频解码方法和装置及存储介质
EP4029250A4 (en) * 2019-09-30 2023-01-04 Huawei Technologies Co., Ltd. INTERPOLATION FILTER FOR INTER PREDICTION DEVICE AND VIDEO CODING METHOD
JP7395727B2 (ja) 2019-10-23 2023-12-11 北京字節跳動網絡技術有限公司 ビデオ・データを処理する方法、装置及び記憶方法
KR20220080107A (ko) 2019-10-23 2022-06-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 참조 픽처 리샘플링을 위한 시그널링
KR102617470B1 (ko) * 2019-12-24 2023-12-21 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 참조 픽처 리샘플링을 위한 방법 및 장치
WO2021146933A1 (en) * 2020-01-21 2021-07-29 Alibaba Group Holding Limited Next-generation loop filter implementations for adaptive resolution video coding
KR102254290B1 (ko) 2020-11-18 2021-05-21 한국과학기술원 모션 처리 방법 및 장치
CN112911286B (zh) * 2021-01-29 2022-11-15 杭州电子科技大学 一种分像素插值滤波器的设计方法
KR20220124031A (ko) * 2021-03-02 2022-09-13 삼성전자주식회사 영상 패킷을 송수신하는 전자 장치 및 이의 동작 방법
CN113301347B (zh) * 2021-05-08 2023-05-05 广东工业大学 一种hevc高清视频编码的优化方法
CN117716690A (zh) * 2021-06-25 2024-03-15 抖音视界有限公司 自适应双边滤波器的使用条件

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175656B1 (en) 1999-03-25 2001-01-16 Sony Corporation Non-linear video sharpening filter
US20020063807A1 (en) 1999-04-19 2002-05-30 Neal Margulis Method for Performing Image Transforms in a Digital Display System
US6864916B1 (en) 1999-06-04 2005-03-08 The Trustees Of Columbia University In The City Of New York Apparatus and method for high dynamic range imaging using spatially varying exposures
JP3995854B2 (ja) * 1999-06-10 2007-10-24 富士フイルム株式会社 画像処理方法および装置並びに記録媒体
FI117533B (fi) 2000-01-20 2006-11-15 Nokia Corp Menetelmä digitaalisten videokuvien suodattamiseksi
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
US7116831B2 (en) 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
US7471845B2 (en) 2004-01-06 2008-12-30 Sharp Laboratories Of America, Inc. De-ringing filter
US7397853B2 (en) 2004-04-29 2008-07-08 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
JP4576930B2 (ja) * 2004-08-26 2010-11-10 カシオ計算機株式会社 動きベクトル検出装置、および、プログラム
RU2008106939A (ru) 2005-04-19 2009-08-27 Самсунг Электроникс Ко., Лтд. (KR) Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии
WO2007044556A2 (en) 2005-10-07 2007-04-19 Innovation Management Sciences, L.L.C. Method and apparatus for scalable video decoder using an enhancement stream
EP1841230A1 (en) 2006-03-27 2007-10-03 Matsushita Electric Industrial Co., Ltd. Adaptive wiener filter for video coding
JP2008054267A (ja) * 2006-07-28 2008-03-06 Hitachi Ltd 画像処理装置、画像符号化装置及び画像復号化装置
US9014280B2 (en) * 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
US7751873B2 (en) 2006-11-08 2010-07-06 Biotronik Crm Patent Ag Wavelet based feature extraction and dimension reduction for the classification of human cardiac electrogram depolarization waveforms
US8199812B2 (en) 2007-01-09 2012-06-12 Qualcomm Incorporated Adaptive upsampling for scalable video coding
US20080205508A1 (en) 2007-02-22 2008-08-28 Streaming Networks (Pvt.) Ltd. Method and apparatus for low complexity video encoding and decoding
WO2009088340A1 (en) * 2008-01-08 2009-07-16 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive filtering
EP2081386A1 (en) 2008-01-18 2009-07-22 Panasonic Corporation High precision edge prediction for intracoding
US20090257499A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US8705622B2 (en) 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
US8811484B2 (en) 2008-07-07 2014-08-19 Qualcomm Incorporated Video encoding by filter selection
US10123050B2 (en) * 2008-07-11 2018-11-06 Qualcomm Incorporated Filtering video data using a plurality of filters
JP4763026B2 (ja) * 2008-08-27 2011-08-31 シャープ株式会社 画像処理装置、画像形成装置、画像処理方法、画像処理プログラム及びコンピュータ読み取り可能な記録媒体
US9078007B2 (en) 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
WO2011046607A2 (en) 2009-10-14 2011-04-21 Thomson Licensing Filtering and edge encoding
US8548065B2 (en) 2009-10-22 2013-10-01 The Chinese University Of Hong Kong Parametric interpolation filter for motion-compensated prediction
JP5705833B2 (ja) 2010-04-13 2015-04-22 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法および画像復号化方法
US20110299604A1 (en) 2010-06-04 2011-12-08 Apple Inc. Method and apparatus for adaptive video sharpening
US9154807B2 (en) 2010-06-25 2015-10-06 Qualcomm Incorporated Inclusion of switched interpolation filter coefficients in a compressed bit-stream
RS56473B1 (sr) * 2010-09-30 2018-01-31 Samsung Electronics Co Ltd Postupak za interpolaciju slika pomoću filtera za interpolaciju i uglačavanje
US8761245B2 (en) 2010-12-21 2014-06-24 Intel Corporation Content adaptive motion compensation filtering for high efficiency video coding
US9172972B2 (en) * 2011-01-05 2015-10-27 Qualcomm Incorporated Low complexity interpolation filtering with adaptive tap size
WO2012109528A1 (en) * 2011-02-11 2012-08-16 Vid Scale, Inc. Edge-based video interpolation for video and image upsampling
US8780971B1 (en) 2011-04-07 2014-07-15 Google, Inc. System and method of encoding using selectable loop filters
JP5552092B2 (ja) 2011-06-13 2014-07-16 日本電信電話株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
US9232233B2 (en) 2011-07-01 2016-01-05 Apple Inc. Adaptive configuration of reference frame buffer based on camera and background motion
US9432700B2 (en) 2011-09-27 2016-08-30 Broadcom Corporation Adaptive loop filtering in accordance with video coding
US9462298B2 (en) 2011-10-21 2016-10-04 Qualcomm Incorporated Loop filtering around slice boundaries or tile boundaries in video coding
US9596463B2 (en) 2012-02-22 2017-03-14 Qualcomm Incorporated Coding of loop filter parameters using a codebook in video coding
WO2013147495A1 (ko) 2012-03-26 2013-10-03 엘지전자 주식회사 스케일러블 비디오 인코딩/디코딩 방법 및 장치
WO2014003379A1 (ko) * 2012-06-24 2014-01-03 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
US9344718B2 (en) 2012-08-08 2016-05-17 Qualcomm Incorporated Adaptive up-sampling filter for scalable video coding
US20140072048A1 (en) 2012-09-13 2014-03-13 Samsung Electronics Co., Ltd Method and apparatus for a switchable de-ringing filter for image/video coding
US9596465B2 (en) 2013-01-04 2017-03-14 Intel Corporation Refining filter for inter layer prediction of scalable video coding
US20140192862A1 (en) 2013-01-07 2014-07-10 Research In Motion Limited Methods and systems for prediction filtering in video coding
US20140254659A1 (en) 2013-03-11 2014-09-11 Mediatek Inc. Video coding method using at least evaluated visual quality and related video coding apparatus
WO2014158050A1 (en) * 2013-03-28 2014-10-02 Huawei Technologies Co., Ltd. Method for determining predictor blocks for a spatially scalable video codec
US20160105685A1 (en) 2014-10-08 2016-04-14 Qualcomm Incorporated Boundary filtering and cross-component prediction in video coding

Also Published As

Publication number Publication date
WO2017052409A8 (en) 2017-10-26
KR20180057676A (ko) 2018-05-30
JP2018530244A (ja) 2018-10-11
EP3354028B1 (en) 2021-09-15
EP3354028A1 (en) 2018-08-01
AU2015410097B2 (en) 2020-01-23
US20180220148A1 (en) 2018-08-02
MX2018003768A (es) 2018-09-12
US10841605B2 (en) 2020-11-17
BR112018006009A2 (pt) 2018-10-30
AU2015410097A1 (en) 2018-04-26
ZA201802228B (en) 2019-01-30
KR102192778B1 (ko) 2020-12-18
CN107925772B (zh) 2020-04-14
CA2999826A1 (en) 2017-03-30
MY187403A (en) 2021-09-22
CA2999826C (en) 2020-10-13
WO2017052409A1 (en) 2017-03-30
CN107925772A (zh) 2018-04-17
RU2696311C1 (ru) 2019-08-01

Similar Documents

Publication Publication Date Title
BR112018006009B1 (pt) Codificador de vídeo, decodificador de vídeo, métodos para a codificação e decodificação preditiva e meio de armazenamento legível por computador
US10820008B2 (en) Apparatus and method for video motion compensation
US10834416B2 (en) Apparatus and method for video motion compensation
US10848784B2 (en) Apparatus and method for video motion compensation
JP2019195214A (ja) ビデオ動き補償用の装置および方法
BR112018005796B1 (pt) Codificador de vídeo e método para codificação preditiva, decodificador de vídeo e método para decodificação preditiva, e meio de armazenamento legível por computador

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 25/09/2015, OBSERVADAS AS CONDICOES LEGAIS