BRPI0910638B1 - Filtragem semelhante a interpolaqao de posiqoes de pixel inteiro em codificaqao de video - Google Patents

Filtragem semelhante a interpolaqao de posiqoes de pixel inteiro em codificaqao de video Download PDF

Info

Publication number
BRPI0910638B1
BRPI0910638B1 BRPI0910638-3A BRPI0910638A BRPI0910638B1 BR PI0910638 B1 BRPI0910638 B1 BR PI0910638B1 BR PI0910638 A BRPI0910638 A BR PI0910638A BR PI0910638 B1 BRPI0910638 B1 BR PI0910638B1
Authority
BR
Brazil
Prior art keywords
pixel
filter
video
coefficients
interpolation
Prior art date
Application number
BRPI0910638-3A
Other languages
English (en)
Inventor
Yan Ye
Marta Karczewicz
Original Assignee
Qualcomm Incorporated
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 Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BRPI0910638A2 publication Critical patent/BRPI0910638A2/pt
Publication of BRPI0910638B1 publication Critical patent/BRPI0910638B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • 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

Landscapes

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

Abstract

FILTRAGEM SEMELHANTE À INTERPOLAÇÃO DE POSIÇÕES DE PIXEL INTEIRO EM CODIFICAÇÃO DE VÍDEO. Esta divulgação descreve técnicas de filtragem aplicadas por um codificador e um decodificador durante a fase de predição de um processo de codificação de vídeo e/ou decodificação. As técnicas de filtragem podem aumentar a precisão dos dados preditivos usados durante a interpolação fracionada, e podem melhorar os dados preditivos de blocos inteiros de pixels. Há vários aspectos à esta divulgação, incluindo um suporte de filtro de doze pixels útil que pode ser utilizado para a interpolação, técnicas que utilizam a simetria de coeficiente e simetria de pixel para reduzir a quantidade de dados necessária para ser enviada entre um codificador e um decodificador para configurar o suporte de filtro para interpolação, e técnicas para filtrar dados em localizações de pixel inteiro de uma maneira que é semelhante à interpolação de subpixel. Outros aspectos dessa divulgação se referem a técnicas de codificação de informações no fluxo de bits para transportar o tipo de filtro usado e, possivelmente, os coeficientes de filtro utilizados. Codificação preditiva de coeficientes de filtro também é descrita.

Description

Este pedido reivindica o beneficio do pedido provisorio U.S 61/044,020 depositado em 10 de abril de 2008, pedido provisorio U.S. 61/044,023 depositado em 10 de abril de 2008, pedido provisorio U.S.61/044, 240 depositado em 11 de abril de 2008, e pedido provisorio U.S.N ° 61/057,373 depositado em 30 de maio de 2008 todo o conteudo dos quais sao incorporados por referenda.
CAMPO TECNICO
Esta divulgapao refere-se a codificapao e decodificapao de video digital e, mais particularmente, a tecnicas de filtragem aplicadas para gerar dados preditivos utilizados nacodificapao e decodificapao de video.
FUNDAMENTOS
Capacidades de video digital podem ser incorporadas em uma ampla faixa de dispositivos, incluindo os televisores digitais, sistemas de broadcast direto digitais, sistemas de broadcast sem fio, assistentes digitais pessoais (PDAs), laptops ou desktops, cameras digitais, aparelhos de gravapao digital, dispositivos de jogos de video, consoles de videogame, celulares e telefones por satelite, radio e semelhantes. Dispositivos de video digital implementam tecnicas de compressao de video, tai como as descritas nos padrbes definidos pelo MPEG-2, MPEG-4, ou H.264/MPEG-4 ITU-T, parte 10, Advanced Video Coding (AVC), para transmitir e receber informapbes de video digital de forma mais eficiente. Tecnicas de compressao de video podem executar predipao espacial e/ou predipao temporal para reduzir ou eliminar a redundancia inerente em sequencias de video.
Intercodificapao baseada em bloco e uma tecnica muito util de codificapao que se baseia na predipao temporal para reduzir ou eliminar a redundancia temporal entre os blocos de video de sucessivas unidades codificadas de uma sequencia de video. As unidades codificadas podem incluir os quadros de video, as fatias de quadros de video, grupos de quadros, ou outra unidade definida de blocos de video codificado.Para intercodificagao, o codificador de video executa estimagao de movimento e compensagao de movimento para rastrear o movimento de blocos de video correspondentes de duas ou mais unidades adjacentes codificadas. Estimagao de movimento gera vetores de movimento, que indicam o deslocamento dos blocos de video em relagao aos blocos de video de predigao correspondentes em um ou mais quadros de referenda ou outras unidades codificadas. Compensagao de movimento utiliza os vetores de movimento para gerar blocos de video de predigao a partir de um ou mais quadros de referenda ou outras unidades codificadas.Depois de compensagao de movimento, blocos de video residuais sao formados subtraindo blocos de video de predigao dos blocos de video originais que estao sendo codificados.
O codificador de video tambem pode aplicar processes de transformada, quantizagao e codificagao de entropia para reduzir ainda mais a taxa de bits associados a comunicagao de blocos residuais. Tecnicas de transformada podem incluir transforma de cosseno (DCTs) ou processos conceitualmente similares.Alternativamente, transformada de wavelets, transformada de inteiro, ou outros tipos de transformadas podem ser utilizadas. Em um processo DCT, como exemplo, um conjunto de valores de pixels sao convertidos em coeficientes de transformada, que podem representar a energia dos valores de pixels no dominio da frequencia. Quantizagao e aplicada aos coeficientes de transformada, e envolve geralmente um processo que reduz o numero de bits associados a um determinado coeficiente de transformada. Codificagao de entropia compreende um ou mais processes que coletivamente comprimem uma sequencia de modos de codificagao, informagao de movimento, padroes de bloco codificado e coeficientes de transformada quantizados. Exemplos de codificagao de entropia incluem, mas nao estao limitados a, codificagao de comprimento variavel adaptativo de conteudo (CAVLC) e codificagao aritmetica binaria adaptativa de contexto (CABAC).
Um bloco de video codificado pode ser representado por informagbes de predigao que podem ser usadas para criar ou identificar um bloco de predigao, e um bloco residual de dados indicativos de diferengas entre o bloco sendo codificado e o bloco de predigao.As informagdes de predigao podem incluir um ou mais vetores de movimento que sao usados para identificar o bloco preditivo de dados. Dado os vetores de movimento, o decodificador e capaz de reconstruir os blocos de predigao que foram utilizados para codificar o residue. Assim, dado um conjunto de blocos residuais e um conjunto de vetores de movimento (e possivelmente algumas sintaxes adicionais), o decodificador pode reconstruir um quadro de video que foi originalmente codificado. Intercodificagao com base na estimagao de movimento e compensagao de movimento pode alcangar uma compressao muito boa, porque os quadros de video sucessivos ou outros tipos de unidades codificadas sao muitas vezes bastante semelhantes. Uma sequencia de video codificado pode incluir blocos de dados residuais, vetores de movimento, e eventualmente outros tipos de sintaxe.
Tecnicas de interpolagao foram desenvolvidas a firn de melhorar o nivel de compressao que pode ser alcangado na intercodificagao. Neste caso, os dados preditivos gerados durante compensagao de movimento, que e utilizada para codificar um bloco de video, podem ser interpolados a partir dos pixels de blocos de video do quadro de video ou outra unidade codificada utilizada na estimagao de movimento. Interpolagao e frequentemente realizada para gerar valores de meio pixel preditivo (meio pel) e valores de um quarto de pixel preditivo (um quarto- pel) .Os valores de meio e um quarto de pel estao associados com localizagoes de subpixel. Vetores de movimento fracionarios podem ser usados para identificar blocos de video na resolugao de subpixel, a firn de capturar o movimento fracionado em uma sequencia de video, e assim fornecer blocos de predigao, que sao mais parecidos com os blocos de video sendo codificados do que os blocos de video inteiros.
SUMARIO
Em geral, essa divulgagao descreve tecnicas de filtragem aplicadas por um codificador e um decodificador durante a fase de predigao de uma codificagao de video e/ou processo de decodificagao. As tecnicas de filtragem descritas podem melhorar a precisao dos dados preditivos usados durante a interpolagao fracionaria, e, em alguns casos, podem melhorar os dados de blocos de predigao inteiros de pixels. Ha varios aspectos a esta divulgagao, incluindo um suporte de filtro de doze pixels util que pode ser utilizado para a interpolagao, tecnicas que utilizam a simetria de coeficiente e simetria de pixel para reduzir a quantidade de dados necessaria para ser enviada entre um codificador e um decodificador para configurar o suporte de filtro para interpolagao, e tecnicas para dados de filtragem em localizagoes de pixel inteiro de uma maneira que .e semelhante a interpolagao de subpixel. Outros aspectos dessa divulgagao se referem a tecnicas para codificagao de informagoes no fluxo de bits para transportar o tipo de filtro usado e, possivelmente, os coeficientes de filtro utilizado.Tecnicas de codificagao preditivas para os coeficientes de filtro tambem sao descritas.Estes e outros aspectos desta divulgagao se tornarao aparentes a partir da DESCRIÇÃO abaixo.
Em um exemplo, esta divulgagao e um metodo que compreende a obtengao de blocos de pixels, em que os blocos de pixels incluem valores de pixel inteiro correspondentes a posigoes de pixel inteiro dentro dos blocos de pixels, filtragem dos valores de pixel inteiro com base em outros valores de pixel inteiro dentro do bloco de pixels para gerar valores de pixel inteiros ajustados, em que os valores de pixel inteiro ajustados correspondent as posigoes de pixel inteiro, e geragao de um bloco de predigao com base nos valores de pixel inteiro ajustados.
Em outro exemplo, esta divulgagao prove um aparelho compreendendo um codificador de video que obtem blocos de pixels, em que os blocos de pixels incluem valores de pixel inteiro correspondentes a posigoes de pixel inteiro dentro dos blocos de pixels, filtragem dos valores de pixel inteiro com base em outros valores de pixel inteiro dentro do bloco de pixels para gerar valores de pixel inteiro ajustados, em que os valores de pixel inteiro ajustados correspondem as posigoes de pixel inteiro, e geragao de um bloco de predigao com base nos valores de pixel inteiro ajustados.
Em outro exemplo, esta divulgagao prove um dispositivo compreendendo meios para a obtengao de blocos de pixels, em que os blocos de pixels incluem valores de pixel inteiro correspondentes a posigoes de pixel inteiro dentro dos blocos de pixels, meios para filtragem de valores de pixel inteiro com base em outros valores de pixel inteiro dentro do bloco de pixels para gerar valores de pixel inteiro ajustados, em que os valores de pixel inteiro ajustados correspondem as posigoes de pixel inteiro, e meios para gerar um bloco de predigao com base nos valores de pixel inteiro ajustados.
As tecnicas descritas na presente divulgagao podem ser implementadas em hardware, software, firmware, ou qualquer combinagao dos mesmos. Se implementadas em software, o software pode ser executado em um ou mais processadores, tai como um microprocessador, circuito integrado de aplicagao especifica (ASIC), arranjo de porta programavel em campo (FPGA), ou processador de sinal digital (DSP). 0 software que executa as tecnicas pode ser inicialmente armazenado em um meio legivel por computador e carregado e executado no processador.
Por conseguinte, esta divulgagao tambem contempla um meio de armazenamento legivel por computador compreendendo instrugoes que quando executadas por um processador fazem com que o processador obtenha blocos de pixels, em que os blocos de pixels incluem valores de pixel inteiro correspondentes a posigoes de pixel inteiro dentro dos blocos de pixel, filtragem dos valores de pixel inteiro com base em outros valores de pixels inteiro dentro do bloco de pixels para gerar valores de pixel inteiro ajustados, em que os valores de pixel inteiro ajustados correspondem as posigoes de pixel inteiro, e geragao de um blocos de predigao com. base nos valores de pixel inteiro ajustados.
Os detalhes de um ou mais aspectos da divulgagao estao definidos nos desenhos que acompanham e DESCRIÇÃO abaixo.Outras caracteristicas, objetos e as vantagens das tecnicas descritas nesta divulgagao serao aparentes a partir da DESCRIÇÃO e desenhos, e das reivindicaçoes.
BREVE DESCRIÇÃO DOS DESENHOS
A figura 1 e um diagrama de blocos ilustrando um exemplo de sistema de codificapao de video e decodificapao que pode implementar tecnicas desta divulgapao.
A figura 2 e um diagrama de blocos ilustrando um exemplo de um codificador de video, que pode executar tecnicas de filtragem de acordo com esta divulgapao.
A figura 3 e um diagrama conceitual que ilustra as posipoes de pixel inteiro associados com dados preditivos, e as posipoes de subpixel associados com os dados preditivos interpolados.
A figura 4 e um diagrama conceitual ilustrando um suporte de filtro de 12 pixels em relapao a nove localizagoes de subpixel.
A figura 5 e um diagrama conceitual ilustrando um suporte de filtro de 6 pixels horizontal com relapao a tres localizagoes de subpixel horizontal, e um suporte de filtro de 6 pixels vertical com relapao a tres localizapbes de subpixel vertical.
A figura 6 e um diagrama conceitual ilustrando um suporte de filtro cinco pixels por cinco pixels para a filtragem de uma localizapao de pixel inteiro.
A figura 7 e um diagrama conceitual que ilustra quatro posipoes de pixel inteiro e quinze posipoes de subpixel com sombreamento para agrupar as posipoes de pixel que podem utilizar a simetria de pixel para os coeficientes de filtro de acordo com esta divulgapao.
A figura 8 e um diagrama conceitual ilustrando seis posipoes de suporte de pixel linear horizontal em relapao a um subpixel, com sombreamento que mostra a simetria de coeficiente.
A figura 9 e um diagrama conceitual ilustrando seis posipoes de suporte de pixel linear horizontal em relagao a um subpixel, com sombreamento que mostra uma falta de simetria de coeficiente.
A figura 10 e um diagrama conceitual ilustrando seis posigoes de suporte de pixel linear vertical em relagao a um subpixel, com sombreamento que mostra a simetria de coeficiente.
A figura 11 e um diagrama conceitual ilustrando seis posigoes de suporte de pixel linear vertical em relagao a um subpixel, com sombreamento que mostra uma falta de simetria de coeficiente.
A figura 12 e um diagrama conceitual ilustrando 12 posigoes de suporte de pixel bidimensional em relagao a um subpixel, com sombreamento que mostra uma falta de simetria de coeficiente.
A figura 13 e um diagrama conceitual ilustrando 12 posigoes de suporte de pixel bidimensional em relagao a um subpixel, com sombreamento que mostra a simetria de coeficiente.
A figura 14 e um diagrama conceitual ilustrando 12 posigoes de suporte de pixel bidimensional em relagao a um subpixel, com sombreamento que mostra a simetria de coeficiente.
A figura 15 e um diagrama conceitual ilustrando 12 posigoes de suporte de pixel bidimensional em relagao a um subpixel, com sombreamento que mostra a simetria de coeficiente.
A figura 16 e um diagrama de blocos ilustrando um exemplo de um decodificador de video, que pode decodificar uma sequencia de video que e codificada na forma aqui descrita.
A figura 17 e um fluxograma ilustrando uma operagao exemplar de um codificador de video que utiliza um suporte de filtro de doze pixels de acordo com esta divulgagao.
A figura 18 e um fluxograma ilustrando uma operapao exemplar de um decodificador de video que utiliza um suporte de filtro de doze pixels de acordo com esta divulgagao.
A figura 19 e um fluxograma ilustrando uma operapao exemplar de um codificador de video que utiliza a simetria de coeficiente e simetria de pixel de acordo com esta divulgagao.
A figura 20 e um fluxograma ilustrando uma operapao exemplar de um decodificador de video que utiliza a simetria de coeficiente e simetria de pixel de acordo com esta divulgagao.
A figura 21 e um fluxograma ilustrando uma operapao exemplar de um codificador de video que utiliza a filtragem de localizapoes de pixel inteiro para gerar os valores de pixel inteiro ajustados de acordo com esta divulgagao.
A figura 22 e um fluxograma ilustrando uma operapao exemplar de um decodificador de video que utiliza a filtragem de localizapoes de pixel inteiro para gerar os valores de pixel inteiro ajustados de acordo com esta divulgagao.
A figura 23 e um fluxograma que ilustra uma tecnica para a interpolapao definida por distorpao de taxa para codificagao de video com base em um filtro fixo ou um filtro adaptativo.
A figura 24 e um fluxograma que ilustra uma tecnica para a codificagao de coeficientes de filtro usando codificagao preditiva.
A figura 25 e outro fluxograma que ilustra uma tecnica para a codificapao de coeficientes de filtro usando codificapao preditiva.
A figura 26 e um diagrama que ilustra uma tecnica para a decodificapao de coeficientes de filtro usando codificapao preditiva.
As figuras 27 e 28 sao graficos conceituais ilustrando os coeficientes de filtro que podem ser preditivamente codificados.
A figura 2 9 e um exemplo ilustrativo de uma matriz de coeficientes de filtro de pixel inteiro para que as tecnicas de predipao possam ser utilizadas para a codificapao.
DESCRICAO DETALHADA
Esta divulgapao descreve tecnicas de filtragem aplicadas por um codificador e um decodificador durante a fase de predipao de um processo de codificapao de video e/ou decodificapao. As tecnicas de filtragem descritas podem melhorar a precisao dos dados preditivos usados durante a interpolagao fracionaria, e, em alguns casos, podem melhorar os dados de blocos de predipao inteiros de pixels. Ha varios aspectos a esta divulgapao, incluindo um suporte de filtro de doze pixel util que pode ser utilizado para a interpolagao, tecnicas que utilizam a simetria de coeficiente e simetria de pixel para reduzir a quantidade de dados necessaria para ser enviada entre um codificador e um decodificador para configurar o suporte de filtro para interpolagao, e tecnicas de filtragem de dados em localizagoes de pixel inteiro de uma maneira que e semelhante a interpolagao de subpixel. Estas e outras tecnicas sao descritas em detalhes abaixo.
A figura 1 e um diagrama de blocos que ilustra uma sistema de codificapao e decodificapao de video exemplar 10 que pode ser usado para implementar uma ou mais das tecnicas desta divulgagao. Como mostrado na FIG. 1, o sistema 10 inclui um dispositivo de origem 12, que transmits video codificado para um dispositivo de destino 16 atraves de um canal de comunicagao 15. 0 dispositivo de origem 12 e o dispositivo de destino 16 podem compreender qualquer uma dentre uma ampla faixa de dispositivos. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 16 compreendem dispositivos de comunicagao sem fio, tais como telefones celulares, os chamados celulares ou radiotelefones via satelite, ou qualquer dispositivo sem fio que pode comunicar informagoes de video em um canal de comunicagao 15, neste caso o canal de comunicagao 15 e sem fio. As tecnicas desta divulgagao, no entanto, que dizem respeito a filtragem e a geragao de dados preditivos durante a codificagao preditiva, nao sao necessariamente limitadas a aplicagoes sem fio ou configuragoes. As tecnicas tambem podem ser uteis em uma ampla faixa de outras configuragoes e dispositivos, incluindo os dispositivos que se comunicam atraves de cabos fisicos, fibras opticas ou outros meios fisicos ou sem fio. Alem disso, as tecnicas de codificagao ou decodificagao tambem podem ser aplicadas em um dispositivo autonomo que nao necessariamente se comunica com qualquer outro dispositivo.
No exemplo da FIG. 1, dispositivo de origem 12 pode incluir uma fonte de video 20, codificador de video 22 de modulador / demodulador (modem) 23 e transmissor 24. Dispositivo de destinol6 pode incluir um receptor 26, modem 27, decodificador de video 28, e dispositivo de exibigao 30. De acordo com esta divulgagao, o codificador de video 22 do dispositivo de origem 12 pode ser configurado para aplicar uma ou mais das tecnicas desta divulgagao como parte de um processo de codificagao de video. Da mesma forma, o decodificador de video 28 do dispositivo de destino 16 pode ser configurado para aplicar uma ou mais das tecnicas desta divulgagao como parte de um processo de decodificagao de video.
Mais uma vez, o sistema 10 ilustrado da FIG. 1 e meramente exemplificative. As diferentes tecnicas dessa divulgagao podem ser feitas por qualquer dispositivo de codificagao que suporte codificagao preditiva baseada em blocos, ou por qualquer dispositivo que suporte decodificagao preditiva baseada em bloco. 0 dispositivo de origem 12 e o dispositivo de destino 16 sao apenas exemplos de tais dispositivos de codificagao em que o dispositivo de origem 12 gera dados de video codificados para transmissao ao dispositivo de destino 16. Em alguns casos, os dispositivos 12, 16 podem operar em uma maneira substancialmente simetrica tai que, cada um dos dispositivos 12, 16 inclui codificagao de video e componentes de decodificagao. Assim, o sistema 10 pode suportar transmissao de video em sentido unico ou em dois sentidos entre dispositivos de video 12, 16, por exemplo, para fluxo de bits de video, reprodugao de video, broadcast de video ou video telefonia.
A fonte de video 20 do dispositivo de origem 12 pode incluir um dispositivo de captura de video, tai como uma camera de video, um arquivo de video contendo o video capturado anteriormente, ou uma alimentagao de video proveniente de um provedor de conteudo de video. Como alternativa, a fonte de video 20 pode gerar dados com bases em computagao grafica como a fonte de video, ou uma combinagao de video ao vivo, video arquivado e video gerado por computador. Em alguns casos, se a fonte de video 20 for uma camera de video, o dispositivo de origem 12 e o dispositivo de destino 16 podem formar os assim chamados telefones com camera ou telefones com video. Em todos os casos, o video capturado, pre-capturado ou gerado por computador pode ser codificado por codificador de video 22. A informagao de video codificado pode ser modulada por modem 23 de acordo com um padrao de comunicagao, por exemplo, tai como acesso multiple por divisao de codigo (CDMA) ou outro padrao de comunicagao, e transmitida para o dispositivo de destino 16 atraves do transmissor 24 e o canal de comunicagao 15. 0 Modem 23 pode incluir diversos misturadores, filtros, amplificadores ou outros componentes projetados para a modulagao do sinal. 0 transmissor 24 pode incluir circuitos projetados para transmissao de dados, incluindo os amplificadores, filtros e uma ou mais antenas.
O receptor 26 do dispositivo de destino 16 recebe informagbes sobre o canal de comunicagao 15, e modem 27 demodula a informagao. Semelhante ao transmissor 24, um receptor 26 pode incluir circuitos projetados para receber dados, incluindo os amplificadores, filtros e uma ou mais antenas.Em alguns casos, o transmissor 24 e/ou receptor 26 pode ser incorporado dentro de um unico componente transceptor que inclui ambos conjuntos de circuitos de recepgao e transmissao. 0 modem 27 pode incluir diversos misturadores, filtros, amplificadores ou outros componentes projetados para a demodulagao do sinal. Em alguns casos, os modems 23 e 27 podem incluir componentes para executar tanto a modulagao quanto a demodulagao.
Mais uma vez, o processo de codificagao de video realizado pelo codificador de video 22 pode implementar uma ou mais das tecnicas descritas aqui durante compensagao de movimento. 0 processo de decodificagao de video realizado pelo decodificador de video 28 pode tambem realizar essas tecnicas durante sua fase de compensagao de movimento do processo de decodificagao. 0 "codificador" e aqui utilizado para se referir a um dispositivo de computador especializado ou aparelho que realiza a codificagao de video ou decodificagao de video. 0 termo "codificador" geralmente se refere a qualquer codificador de video, decodificador de video ou codificador / decodificador (codec) combinado. 0 termo "codificagao" refere-se a codificagao ou decodificagao. 0 dispositivo de video 30 exibe os dados de video decodificado para um usuario, e pode incluir qualquer um de uma variedade de dispositivos de exibigao, tal como um tubo de raios catodicos (CRT) , um display de cristal liquido (LCD) , uma tela de plasma, um diodo organico emissor de luz (OLED) , ou outro tipo de dispositivo de exibigao.
No exemplo da FIG. 1, o canal de comunicagao 15 pode incluir qualquer meio de comunicagao com ou sem fios, tal como um espectro de radio frequencia (RF) ou uma ou mais linhas de transmissao fisica, ou qualquer combinagao de meios de comunicagao sem fio e com fio. 0 canal de comunicagao 15 pode fazer parte de uma rede baseada em pacotes, tal como uma rede de area local, uma rede de area ampla, ou uma rede global como a Internet. 0 canal de comunicagao 15 geralmente representa qualquer meio de comunicagao adequado, ou colegao de diferentes meios de comunicagao, para transmissao de dados de video do dispositivo de origem 12 para o dispositivo de destino 16. 0 canal de comunicagao 15 pode incluir roteadores, comutadores, estagoes base, ou qualquer outro equipamento que possa ser util para facilitar a comunicagao do dispositivo de origem 12 para o dispositivo de destino 16.
O codificador de video 22 e o decodificador de video 28 podem operar de acordo com um padrao de compressao de video, tal como o padrao ITU-T H.264, alternativamente descrito como MPEG-4, Part 10, Advanced Video Coding (AVC).
As tecnicas desta divulgagao, no entanto, nao estao limitadas a qualquer padrao de codificagao de video em particular. Embora nao seja mostrado na FIG. 1, em alguns aspectos, o codificador de video 22 e o decodificador de video 28 podem cada um ser integrado com um codificador de audio e um decodificador, e podem incluir unidades MUX- DEMUX adequadas, ou outro hardware e software, para lidar com a codificagao de audio e video em um fluxo de dados comum ou fluxos de dados separados. Se aplicavel, as unidades MUX-DEMUX podem estar de acordo com o protocolo de multiplexador H.223 ITU, ou outros protocolos, tai como o Protocolo de Datagrama de Usuario (UDP).
O codificador de video 22 e o decodificador de video 28 cada um pode ser implementado como um ou mais processadores, processadores de sinal digital (DSPs), circuitos integrados de aplicagao especifica (ASICs), arranjos de porta programaveis em campo (FPGA), logica discrete, software, hardware, firmware ou quaisquer combinagoes dos mesmos. Cada um do codificador de video 22 e decodificador de video 28 pode ser incluido em um ou mais codificadores ou decodificadores, um dos quais pode ser integrado como parte de um codec combinado que fornece capacidade de codificagao e decodificagao em um respectivo dispositivo movel, dispositivo de assinante, dispositivo de transmissao, servidor, ou algo parecido.
Uma sequencia de video tipicamente inclui uma serie de quadros de video.Codificador de video 22 opera em blocos de video dentro de quadros de video individuals, a firn de codif icar os dados de video.Os blocos de video podem ter tamanhos fixos ou variados, e podem diferir em tamanho de acordo com um determinado nivel de codificagao.Cada quadro de video inclui uma serie de fatias.Cada fatia pode incluir uma serie de macroblocos, que podem ser organizados em subblocos. Como exemplo, o padrao ITU-T H.264 suporta intrapredigao em varios tamanhos de bloco, tais como 16 por 16, 8 por 8, ou 4 por 4 para os componentes luma e 8x8 para os componentes croma, bem como a interpredigao em varios tamanhos de blocos, tai como 16 por 16, 16 por 8, 8 por 16, 8 por 8, 8 por 4, 4 por 8, e 4 por 4 para os componentes luma e os correspondentes tamanhos escalades para componentes croma. Os blocos de video podem incluir blocos de dados de pixel, ou blocos de coeficientes de transformada, por exemplo, na sequencia de um processo de transformada, tai como transformada de cosseno (DCT), ou um processo de transformada conceitualmente semelhante.
Blocos menores de video podem fornecer melhor resolugao e podem ser utilizados para localizagao de um quadro de video, que inclui altos niveis de detalhe. Em geral, macroblocos e os varios subblocos podem ser considerados como blocos de video. Alem disso, uma fatia pode ser considerada uma serie de blocos de video, tais como macroblocos e/ou subblocos. Cada fatia pode ser uma unidade independentemente decodificavel de um quadro de video. Alternativamente, os proprios quadros podem ser unidades decodificaveis, ou outras partes de um quadro podem ser definidas como unidades decodificaveis. 0 termo "unidade codificada" refere-se a qualquer unidade independente decodificavel de um quadro de video, tai como um quadro inteiro, uma fatia de um quadro ou outra unidade independente decodificavel definida de acordo com as tecnicas de codificapao usadas.
Para codificar os blocos de video, codificador de video 22 realiza intra ou interpredigao para gerar um bloco de predigao. 0 codificador de video 22 subtrai os blocos de predigao dos blocos de video originals a serem codificados para gerar blocos residuals. Assim, os blocos residuals sao indicatives de diferengas entre os blocos a serem codificados e os blocos de predigao.Codificador de video 22 pode realizar uma transformada sobre os blocos residuals para gerar blocos de coeficientes de transformada.Apos tecnicas de codificagao e transformada baseadas em intra ou interpredigao, o codificador de video 22 realiza a quantizagao. Quantizagao geralmente se refere a um processo no qual os coeficientes sao quantizados para, possivelmente, reduzir a quantidade de dados usada para representar os coeficientes. Apos a quantizagao, codificagao de entropia pode ser realizada de acordo com uma metodologia de codificagao de entropia, tal como codificagao de comprimento variavel adaptativo de contexto (CAVLC) ou codificagao aritmetica binaria adaptativa de contexto (CABAC). Mais detalhes de cada etapa do processo de codificagao realizado pelo codificador de video 22 serao descritos em mais detalhes na FIG. 2.
No dispositivo de destino 16, o decodificador de video 28 recebe os dados de video codificados. 0 decodificador de video 28 decodifica por entropia os dados de video recebidos de acordo com uma metodologia de codificagao de entropia, tal como CAVLC ou CABAC, para obter os coeficientes quantizados. 0 decodificador de video 28 aplica a quantizagao inversa (dequantizagao) e fungoes de transformada inversa para reconstruir o bloco residual no dominio de pixel. 0 decodificador de video 28 tambem gera um bloco de predigao com base em informagoes de controle ou informagoes de sintaxe (por exemplo, modo de codificagao, vetores de movimento, sintaxe que define os coeficientes de filtro e similares) incluidas nos dados de video codificados. 0 decodificador de video 28 soma o bloco de predigao com o bloco residual reconstruido para produzir um bloco de video reconstruido para exibigao. Mais detalhes de cada etapa do processo de codificagao realizada pelo codificador de video 22 serao descritos em mais detalhes na FIG. 16.
De acordo com as tecnicas desta divulgagao, o codificador de video 22 e o decodificador de video 28 podem usar a interpolagao de uma ou mais tecnicas de filtragem durante a compensagao de movimento. Em particular, de acordo com um aspecto desta divulgagao, o codificador de video 22 e/ou o decodificador de video 28 podem obter um bloco de pixels, em que o bloco de pixels inclui valores de pixel inteiro correspondentes a posigoes de pixel inteiro dentro do bloco de pixels, calcular valores de subpixels para posigoes de subpixel associadas ao bloco de pixels com base nos valores de pixel inteiro, em que a computagao dos valores de subpixel compreende aplicar um filtro de interpolagao que define uma matriz bidimensional de posigoes de suporte de filtro correspondentes a um conjunto de doze ou mais posigoes de pixel inteiro que cercam as posigoes de subpixel em forma radial, e gerar um bloco de predigao com base em pelo menos alguns dos valores de subpixel. Um exemplo de matriz bidimensional de posigoes de suporte de filtro correspondentes a um conjunto de doze ou mais posigoes de pixel inteiro e explicado em maiores detalhes abaixo.
De acordo com outro aspecto desta divulgagao, o codificador de video 22 e/ou decodificador de video 28 podem utilizer os aspectos de simetria, a fim de reduzir a quantidade de dados que precisam ser comunicados entre o dispositivo de origem 12 e o dispositivo de destino 16 para comunicagao de coeficientes de filtro utilizada na interpolagao. Codificador de video 22 pode determinar oito conjuntos de coeficientes de filtro para quinze diferentes localizagoes de subpixel, onde os oito conjuntos de coeficientes de filtro sao gerados com base na simetria de coeficiente e simetria de pixel entre as quinze localizagoes de subpixel, e a saida de oito conjuntos de coeficientes de filtro para outro dispositivo, como parte de um fluxo continuo de dados codificados. Desta forma, os oito conjuntos, juntamente com aspectos de simetria de pixel e simetria de coeficientes podem definir todos os coeficientes de filtro para todas as quinze posipoes de pixels meio-pel e um quarto-de-pel. Alem disso, a simetria de pixel pode existir entre as diferentes quinze localizagoes de subpixel em uma dimensao vertical e em uma dimensao horizontal, mas a simetria de pixel nao pode existir em uma dimensao diagonal para pelo menos algumas das quinze localizagoes de subpixel de conjuntos. Essa falta de simetria de pixel na dimensao diagonal para pelo menos algumas das quinze localizagoes pode melhorar interpolagbes e pode qualidade de video na codificagao e decodificagao de video.
Decodificador de video 28 do dispositivo de destino 16 pode receber os oito conjuntos de coeficientes de filtro, como parte de um fluxo de bits de video codificado, para gerar quinze conjuntos de coeficientes de filtro correspondentes a quinze diferentes localizagoes de subpixel com base nos oito conjuntos de coeficientes de filtro, gerar dados preditivos interpolados para decodificagao de video baseada em um dos quinze conjuntos de coeficientes de filtro, onde os dados preditivos interpolados correspondem a uma das quinze localizagoes diferentes de subpixel, e decodificar um ou mais blocos de video com.base nos dados preditivos interpolados.
De acordo com outro aspecto desta divulgagao, o codificador de video 22 e/ou decodificador de video 28 podem utilizer filtragem semelhante a interpolagao em relapao a posigoes de pixel inteiro, a firn de gerar valores de pixel inteiro ajustados. Tai filtragem semelhante a interpolagao pode melhorar a compressao especificamente durante as mudangas de iluminagao, fade-ins ou fade-out de cenas, pode remover o ruido e facilitam a nitidez do quadro de imagem, e pode ajudar a melhorar a codificagao do movimento do objeto tenue entre sucessivos quadros de video em especial quando a simetria nao e imposta sobre os coeficientes de filtro.
Tecnicas de filtragem semelhantes a interpolagao de codificador de video 22 e/ou decodificador de video 28 podem incluir a obtengao de blocos de pixels, em que os blocos de pixels incluem valores de pixel inteiro correspondentes a posigoes de pixel inteiro dentro dos blocos de pixels, filtragem dos valores de pixel inteiro com base em outros valores de pixel inteiro dentro do bloco de pixels ajustado para gerar valores de pixel inteiro, em que os valores de pixel inteiro ajustados correspondem as posigoes de pixel inteiro, e geragao de blocos de predigao com base nos valores de pixel inteiro ajustados.
De acordo com outro aspecto desta divulgagao, codificador de video 22 pode gerar primeiros dados preditivos interpolados para a codificagao de dados de video com base em um primeiro filtro de interpolagao, gerar segundos dados preditivos interpolados para codificagao de video dos dados de video com base em um segundo filtro de interpolagao, selecionar entre os primeiros dados preditivos interpolados e os segundos dados preditivos interpolados com base em uma analise de taxa de distorgao, codificar os dados de video com base na selegao, e codificar a sintaxe para indicar a selegao. 0 primeiro filtro de interpolagao pode incluir um filtro de interpolagao fixo, e o segundo filtro de interpolagao pode incluir um filtro de interpolagao adaptativo, mas esta divulgagao nao e necessariamente limitada a estes exemplos.
Alem disso, filtros de interpolagao adicionais tambem podem ser aplicados para gerar mais dados preditivos interpolados, os quais tambem podem ser considerados na analise de taxa de distorgao. Em outras palavras, as tecnicas da divulgagao nao se limitam apenas a geragao dos primeiro e segundos dados preditivos interpolados com bases em dois filtros de interpolagao, mas poderiam ser aplicadas para gerar uma pluralidade de dados preditivos interpolados com base em qualquer numero de filtros de interpolagao. Mais importante ainda, uma analise de taxa de distorgao de dados preditivos interpolados e usada para identificar a escolha do filtro.
Em um exemplo, um metodo pode compreender gerar uma pluralidade de versoes diferentes de dados preditivos para a codificagao de dados de video com base em uma pluralidade de filtros de interpolagao diferentes, selecionar entre a pluralidade de versoes diferentes de dados preditivos com base em uma analise de distorgao de taxa, codificar dados de video com base na selegao, e codificar sintaxe para indicar a selegao.
Esta divulgagao tambem contempla tecnica para a codificagao de coeficientes de filtro. Por exemplo, o codificador de video 22 pode identificar um conjunto de coeficientes de filtro para interpolagao de dados preditivos em codificagao de video, gerar valores residuals associados com o conjunto de coeficientes de filtro com base em codificagao preditiva do conjunto de coeficientes de filtro em relagao aos coeficientes de filtro associados com um filtro de interpolagao fixo, aplicar quantizagao aos valores residuals e emitir os valores quantizados residuals como parte de um fluxo de bits codificado.
O decodificador de video 28 pode receber valores residuals associados com um conjunto de coeficientes de filtro, gerar o conjunto de coeficientes de filtro usando decodificagao preditiva com base no conjunto de valores residuals e coeficientes de filtro associados com um filtro de interpolagao fixo, e aplicar o conjunto de coeficientes de filtro para interpolar dados preditivos utilizados para a decodificagao de predigao de blocos de video.
A figura 2 e um diagrama de blocos ilustrando um exemplo de um codificador de video 50, que pode executar tecnicas de filtragem de acordo com esta divulgagao. Codificador de video 50 e um exemplo de um dispositivo de computador de video especializado ou aparelhos mencionados neste documento como um "codificador". Codificador de video 50 pode corresponder ao codificador de video 22 do dispositivo 20, ou a um codificador de video de um dispositivo diferente. Codificador de video 50 pode realizar intra e intercodificagao de blocos dentro de quadros de video, embora componentes de intracodificagao nao sejam mostrados na FIG. 2 para facilitar a ilustragao. Intracodificagao se baseia na predigao espacial para reduzir ou remover redundancia espacial em video dentro de um dado quadro de video. Intercodificagao depende de predigao temporal para reduzir ou eliminar a redundancia temporal em video dentro de quadros adjacentes de uma sequencia de video. Intramodo (I-mode) pode se referir ao modo de compressao com base em espago, e Intermodos tai como uma predigao (P-modo) ou um bi-direcional (modo-B) podem se referir aos modos de compressao com base em tempo. As tecnicas da divulgagao aplicam-se durante intercodificagao e, portanto, unidades de intracodificagao, tais como unidade espacial de predigao nao sao ilustradas na FIG. 2 para a simplicidade e facilidade de ilustragao.
Como mostrado na FIG. 2, o codificador de video 50 recede um bloco de video dentro de um quadro de video a ser codificado. No exemplo da FIG. 2, codificador de video 50 inclui uma unidade de predigao 32, memoria 34, um somador 48, uma unidade de transformada 38, uma unidade de quantizagao 40, e uma unidade de codificagao de entropia 46. Para a reconstrugao do bloco de video, o codificador de video 50 tambem inclui uma unidade de quantizagao inversa 42, uma unidade de transformada inversa 44, e um somador 51. Um filtro de desbloqueio (nao mostrado) tambem pode ser incluido para filtrar as fronteiras de bloco para remover artefatos de bloco de video reconstruido. Se desejar, o filtro de desbloqueio normalmente filtra a saida do somador 51.
Unidade de predigao 32 pode incluir uma estimagao de movimento (ME) , unidade 35, e uma unidade de compensagao de movimento (MC) 37. 0 filtro 37 pode ser incluido na unidade de predigao 32 e pode ser invocado por um ou ambas a unidade ME 35 e unidade MC 37 para realizar interpolagao ou filtragem tipo interpolagao como parte de estimagao de movimento e/ou compensagao de movimento, de acordo com esta divulgagao. 0 filtro 37 pode representar uma pluralidade de filtros diferentes para facilitar inumeros tipos diferentes de interpolagao e filtragem tipo interpolagao tal como aqui descrito. Assim, a unidade de predigao 32 pode incluir uma pluralidade de interpolagao ou filtragem tipo interpolagao. Durante o processo de codificagao, o codificador de video 50 recebe um bloco de video a ser codificado (chamado de "BLOCO DE VIDEO" na FIG. 2), e unidade de predigao 32 realiza a codificagao de interpredigao para gerar um bloco de predigao (identificado como "BLOCO DE PRED." na FIG. 2).
Especificamente, a unidade ME 35 pode realizar estimapao de movimento para identificar o bloco de predipao na memoria 34, e unidade MC 37 pode efetuar a compensagao de movimento para gerar o bloco de predipao.
A estimapao de movimento e geralmente considerada o processo de geragao de vetores de movimento, que estima movimento para os blocos de video. Um vetor de movimento, por exemplo, pode indicar o deslocamento de um bloco de predipao dentro de um quadro de predipao ou de referenda (ou outra unidade codificada, por exemplo, fatia) em relapao ao bloco a ser codificado dentro do quadro atual (ou outra unidade codificada) . 0 quadro de referenda (ou parte do quadro) pode ser temporalmente localizado antes ou depois do quadro de video (ou parte do quadro de video) ao qual o bloco de video atual pertence. Compensagao de movimento e geralmente considerada o processo de buscar ou gerar o bloco de predipao a partir da memoria 34, ou, eventualmente, interpolar ou gerar dados filtrados preditivos com base no vetor de movimento determinado pela estimapao de movimento.
Unidade ME 35 seleciona o vetor de movimento adequado para o bloco de video a ser codificado, comparando o bloco de video aos blocos de video de um ou mais quadros de referenda (por exemplo, um quadro anterior e/ou seguinte). A unidade ME 35 pode realizar estimapao de movimento com precisao de pixel fracionario, por vezes referido como pixel fracionario, pel fracionado, ou estimapao de movimento de subpixel. Como tai, os termos pixel fracionario, pel fracionario e estimapao de movimento de subpixel podem ser usados alternadamente. Na estimapao de movimento pixel fracionario, a unidade ME 35 pode selecionar um vetor de movimento que indica o deslocamento para um local que nao seja um local de pixel inteiro. Desta forma, a estimapao de movimento de pixel fracionario permite que a unidade de predipao 32 rastreie o movimento com maior precisao do que locais de pixel inteiro (ou pixel complete), assim gera um bloco de predipao mais precise. A estimapao de movimento de pixel fracionario pode ter precisao de meio pixel, precisao de um quarto de pixel, precisao de um oitavo de pixel ou qualquer precisao mais fina. Unidade ME 35 pode invocar filtro 39 para quaisquer interpolapdes necessarias durante o processo de estimapao de movimento.
Para efetuar a compensagao de movimento de pixel fracionario, a unidade MC 37 pode realizar interpolapao (por vezes referida como filtragem de interpolagao), a firn de gerar dados com resolupao de subpixel (aqui referido como subpixel ou valores de pixel fracionado). Unidade MC 37 pode invocar filtro 39 para a interpolapao. Unidade de predipao 32 pode realizar a interpolapao (ou filtragem tipo interpolapao de pixels inteiros) utilizando as tecnicas descritas neste document©.
Uma vez que o vetor de movimento para o bloco de video a ser codificado e selecionado pela unidade ME 35, a unidade MC 37 gera o bloco de video de predipao associado a esse vetor de movimento. Unidade MC 37 pode buscar o bloco de predipao da memoria 34 com base no vetor de movimento determinado pela unidade de MC 35. No caso de um vetor de movimento com precisao de pixel fracionario, a unidade MC 37 filtra dados provenientes da memoria 34 para interpolar estes dados para a resolupao de subpixel, por exemplo, invocando o filtro 39 para este processo. Em alguns casos, a tecnica de filtragem por interpolapao ou modo que foi utilizado para gerar os dados preditivos de subpixel pode ser indicada como um ou mais elementos de sintaxe de interpolapao para a unidade de codificapao de entropia 46 para a inclusao no fluxo de bits codificado. De fato, alguns aspectos desta divulgagao se referem ao uso da simetria de pixel e simetria de coeficiente para reduzir a quantidade de sintaxe que deve ser transportada.
Uma vez que a unidade de predigao 32 gera o bloco de predigao, codificador de video 50 forma um bloco de video residual (chamado de "BLOCO RESID." na FIG 2.) Subtraindo-se o bloco de predigao do bloco de video original que esta sendo codificado. 0 somador 48 representa o componente ou componentes que executa esta operagao de subtragao. Unidade de transformada 38 aplica uma transformada, tai como uma transformada discreta de cosseno (DOT) ou uma transformada conceitualmente semelhante, ao bloco residual, produzindo um bloco de video compreendendo coeficientes de bloco de transformada residual. Unidade de transformada 38, por exemplo, pode executar outras transformadas, tais como as definidas pelo padrao H.264, que sao conceitualmente semelhantes a DCT. Transformada de Wavelet, transformada de inteiro, transformada de sub-banda ou outros tipos de transformadas tambem poderiam ser usadas. Em todo o caso, unidade de transformada 38 aplica a transformada ao bloco residual, produzindo um bloco de coeficientes de transformada residual. A transformada pode converter a informagao residual de um dominio de pixel para um dominio de frequencia.
A unidade de quantizagao 40 quantifies os coeficientes de transformada residual para reduzir ainda mais a taxa de bits. O processo de quantizagao pode reduzir a profundidade de bits associados a alguns ou todos os coeficientes. Apos a quantizagao, a unidade de codificagao de entropia 46 codifica por entropia os coeficientes de transformada quantizados.Por exemplo, a unidade de codificapao de entropia 46 pode realizar CAVLC, CABAC, ou outro metodo de codificagao de entropia.
Unidade de codificapao de entropia 46 tambem pode codificar um ou mais elementos de sintaxe de predipao obtidos a partir da unidade de predipao 32 ou outro componente do codificador de video 50. Os um ou mais elementos de sintaxe de predipao podem incluir um modo de codificapao, um ou mais vetores de movimento, uma tecnica de interpolapao que foi usada para gerar os dados de subpixel, um conjunto ou subconjunto de coeficientes de filtro, ou outras informapoes associadas a gerapao do bloco de predipao. Predipao de coeficiente e unidade de quantizapao 41 pode codificar e quantificar a sintaxe de predipao, tais como os coeficientes de filtro, de acordo com alguns aspectos dessa divulgapao. Apos a codificapao de entropia pela unidade de codificapao de entropia 46, o video codificado e elementos de sintaxe podem ser transmitido para outro dispositivo ou arquivados para posterior transmissao ou recuperapao.
A unidade de quantizapao inversa 42 e unidade de transformapao inversa 44 aplicam quantizapao inversa e transformada inversa, respectivamente, para reconstruir o bloco residual no dominio de pixels, por exemplo, para posterior utilizapao como um bloco de referenda. 0 bloco reconstruido residual (chamado de "BLOCO RECON. RESID." na FIG. 2) pode representar uma versao reconstruida do bloco residual provido para a unidade de transformada 38. 0 bloco reconstruido residual pode ser diferente do bloco residual gerado pelo somador 48, devido a perda de detalhe causada pela quantizapao e operapoes de quantizapao inversa. 0 somador 51 adiciona o bloco residual reconstruido ao bloco de predipao de movimento compensado produzido pela unidade de predipao 32 para produzir um bloco de video reconstruido para o armazenamento em memoria 34. 0 bloco de video reconstruido pode ser utilizado pela unidade de predigao 32 como um bloco de referenda que pode ser utilizado para posteriormente codificar um bloco em um quadro de video subsequente ou unidade codificada subsequente.
Como descrito acima, a unidade de predigao 32 pode realizar estimapao de movimento com precisao de pixel fracionario (ou subpixel). Quando a unidade de predigao 32 usa a estimapao de movimento de pixel fracionado, unidade de predigao 32 pode gerar dados em resolupao de subpixel (por exemplo, subpixel ou valores de pixel fracionados) atraves de operapoes de interpolapao descritas nesta divulgapao. Em outras palavras, as operapoes de interpolapao sao utilizadas para calcular os valores em posipoes entre as posipoes de pixel inteiro. Posipoes de subpixel localizado na metade da distancia entre as posipoes de pixel inteiro podem ser referidas como posipoes de meio pixel (meio-pel), posipoes de subpixel localizadas na metade da distancia entre uma posipao de pixel inteiro e uma posipao de meio pixel podem ser designadas posipoes de um quarto de pixel (um quarto de pel), posipoes de subpixel localizadas na metade da distancia entre uma posipao de pixel inteiro (ou posipao de meio pixel) e uma posipao de um quarto de pixel sao referidas como posipoes de um oitavo de pixel (um oitavo de pel), e assim por diante.
A figura 3 e um diagrama conceitual ilustrando pixel inteiro (ou pixels completes) associado aos dados preditivos, e posipoes de subpixel (ou pixels fracionados) associadas com dados preditivos interpolados. Na ilustragao conceitual da FIG. 3, as diferentes caixas representam localizapoes ou posipoes de pixel e subpixel dentro de um quadro ou um bloco de um quadro.Letras maiusculas (nas caixas com linhas solidas) representam locais pixel inteiro, enquanto as letras minusculas (nas caixas com linhas pontilhadas) representam os locais de subpixel. Em particular, as localizapoes de pixel A1-A6, B1-B6, C1-C6, D1-D6, E1-E6 e F1-F6 representam uma matriz 6 x 6 de localizapoes de pixel inteiro dentro de um quadro, fatia ou outra unidade codificada. Locais de subpixel "a" ate "o" representam quinze locais de subpixel associados pixel inteiro C3, por exemplo, entre as localizapoes de pixel inteiro C3, C4, D3 e D4. Locais de subpixel similares podem existir para cada local de pixel inteiro. Os locais de subpixel "a" ate "o" representam todos os locais de pixel de meio pel e um quarto de pel associados ao pixel inteiro C3.
Locais de pixel inteiro podem ser associados a um elemento de sensor fisico, como um fotodiodo quando os dados de video foram originalmente gerados. Os diodos podem medir a intensidade de uma fonte de luz no local do sensor e associar um valor de intensidade de pixel com o local de pixel inteiro. Novamente, cada localizapao de pixel inteiro pode ter um conjunto de quinze localidades de subpixel associadas (ou possivelmente mais).0 numero de locais de subpixel associados a localizapoes de pixel inteiro pode ser dependente da precisao desejada. No exemplo ilustrado na FIG. 3, a precisao desejada e a precisao um quarto de pixel, caso em que, cada uma das localizapoes de pixel inteiro corresponds a quinze diferentes posipoes de subpixel. Mais ou menos posipoes de subpixel podem ser associadas a cada localizapao de pixel inteiro com base na precisao desejada. Para uma precisao de meio pixel, por exemplo, cada local de pixel inteiro pode corresponder a tres posipoes de subpixel.Como outro exemplo, cada uma das localizapoes de pixel inteiro pode corresponder a sessenta e tres posipoes de subpixel para precisao de um oitavo de pixel.'Cada local de pixel pode definir um ou mais valores de pixels, por exemplo, luminancia e valores de crominancia.
Y pode representar a luminancia, e Cb e Cr podem representar dois valores diferentes de crominancia de um espago de cor YCbCr tridimensional.Cada local de pixel pode realmente definir tres valores de pixel para um espago de cor tridimensional. As tecnicas desta divulgagao, no entanto, podem se referir a predipao com relapao a uma dimensao para fins de simplicidade. Na medida em que as tecnicas sao descritas com relapao a valores de pixels em uma dimensao, tecnicas semelhantes podem ser estendidas a outras dimensoes.
No exemplo da FIG. 3, locals de subpixel associados ao pixel inteiro "C3" sao ilustrados pela precisao um quarto de pixel. As quinze posigoes de subpixel associadas ao pixel C3 sao rotuladas como "a","b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "1", "m", "n" e "o". A maioria dos outros locais fracionados associados a outras localizapoes de pixel inteiro nao sao mostrados por simplicidade (exceto os usados para gerar um ou mais dos 15 locais fracionados diferentes associados a localizagao de pixel C3, conforme descrito em mais detalhes abaixo). Locais de subpixel "b", "h" e "j" podem ser referidos como locais de meio pixel e locais de subpixel "a", "c", "d", "e", "f", "g", "i" "k", "1", "m" e "o" podem ser referidos como locais de um quarto de pixel.
A unidade de predipao 32 de codificador de video 40 pode determinar valores de pixels para locais de subpixel "a" ate "o" usando filtragem por interpolagao pela unidade MC 37. Consistente com o padrao ITU-T H.264, por exemplo, a uma unidade de predipao 32 pode determinar os valores dos pixels para locais de meio pixel usando umafiltro de interpolagao de derivagao 6, tai como um filtro Wiener. No caso do padrao H.264, os coeficientes de filtro para o filtro de interpolagao de derivagao 6 sao normalmente [1, -5, 20, 20, -5, 1], embora outroscoeficientes possam ser usados. A unidade de predigao 32 pode aplicar o primeiro filtro de interpolagao na diregao horizontal e no sentido vertical, ou vice-versa. Para as posigoes de meio pixel "b" e "h", cada derivagao pode corresponder a uma posigao pixel inteiro na diregao horizontal e vertical, respectivamente. Em especial, na posigao de meio pixel "b", as derivagoes do filtro de derivagao 6 correspondem a Cl, C2, C3, C4, C5 e C6. Da mesma forma, para a posigao de meio pixel "h", as derivagoes do filtro de derivagao 6 correspondem a A3, B3, C3, D3, E3 e F3. Por exemplo, os valores dos pixels para as posigoes de subpixel "b" e "h" podem ser calculados utilizando as equagoes (1) e (2) :b = ((Cl - 5*C2 + 20*C3 + 20*C4 - 5 *C5 + C6) + 16) / 32 (1)h = ((A3 - 5*B3 + 20*C3 + 20*D3 - 5*E3 + F3) + 16) / 32 (2)
Para a posigao de meio pixel "j", as derivagoes do filtro de derivagao 6 correspondem a horizontalmente interpoladas entre posigoes C1-C6 e D1-D6, ou verticalmente entre as posigoes A3-F3 e A4-F4. Local de meio pixel "j" pode ser calculado com um filtro de derivagao 6 que usa os valores de pixel anteriormente interpolados das posigoes de meio pixel, por exemplo, de acordo com uma das equagoes (3) ou (4 ) :j = ((aa - 5*bb + 20*b + 20*hh - 5*ii + jj) 16) / 32 (3)j = ((cc - 5*dd + 20*h + 20*ee - 5*ff + gg) 16) /32 (4),onde (como ilustrado na FIG. 3) aa corresponde auma interpolagao entre A3 e A4, bb corresponde a umainterpolagao entre B3 e B4, b corresponde a umainterpolagao entre 03 e 04, hh corresponde a umainterpolagao entre D3 e D4, ii corresponde a umainterpolagao entre E3 e E4 e j j corresponde a umainterpolagao entre F3 e F4 . Na equagao 4, cc corresponde auma interpolagao entre 01 e DI, dd corresponde a umainterpolagao entre 02 e D2, h corresponde a umainterpolagao entre 03 e D3, ee corresponde a umainterpolagao entre 04 e D4, ff corresponde a umainterpolagao entre 05 e D5, e gg corresponde a umainterpolagao
Em entre 06 e D6.conformidade com o padrao H.264, unidade depredigao 32 pode determinar os valores de pixels em locaisde um quarto de pixel "a", "c", "d", "e", "f", "g", "i", "k", "1", "m", "n" e "o" com um filtro de interpolagao bilinear e os valores de pixels das localidades vizinhas de meio pixel e pixel inteiro. Por exemplo, unidade de predigao 32 pode determinar um valor de pixel associado a posigao de subpixel "a" usando valores de pixel 03 e "b", determinar um valor de pixel associado com posigao de subpixel "c", utilizando valores de pixels de "b" e 04, e assim por diante.
0 filtro real que e aplicado pela unidade de MO 37 para gerar dados interpolados nos locais de subpixel pode ser sujeito a uma ampla variedade de implementagbes. Como um exemplo, uma unidade de predigao 32 pode usar filtragem de interpolagao adaptativa (FIA), conforme descrito abaixo, para definir os valores interpolados. 0 comite SG16/Q.6/VCEG ITU-T (Video Coding Expert Group) tern explorado as tecnologias de codificagao que oferecem maior eficiencia de codificagao do que H.264 e, em particular,
AIF. AIF oferece grande ganho de codificagao sobre a filtragem de interpolagao utilizada no padrao H.264, especialmente nas sequencias de video com alta resolugao (por exemplo, 720i/p ou 1080i/p) . Na AIF, o filtro de interpolagao para cada posigao de subpixel e calculado analiticamente para cada quadro de video, minimizando a energia do erro de predigao. Isso ajuda a enderegar graduagao, quantizagao enderego e erros de estimagao de movimento, ruido da camera ou outro artefato contido nos quadros de video original e de referenda. Os coeficientes de filtro adaptativo analiticamente derivados para cada quadro sao entao previstos, quantizados, codificados e enviados no fluxo de bits de video. Algumas das tecnicas da divulgagao poderiam trabalhar dentro de um esquema AIF, assim como muitos outros esquemas de interpolagao.
Ha muitos tipos diferentes de sistemas AIF em conformidade com os aspectos desta divulgagao. Por exemplo, um primeiro esquema e uma AIF bidimensional nao-separavel (NS-AIF), um segundo e um AIF separavel (S-AIF), e um terceiro e um AIF com filtros direcionais (D-AIF). Embora cada um desses esquemas AIF usam tecnicas de interpolagao e de suporte, todos os tres sistemas AIF podem utilizar processes analiticos semelhantes para derivar os coeficientes de filtro, o que e explicado abaixo usando AIF nao separavel, como um exemplo.
Suponha-se que um filtro 6 por 6, em bidimensional nao separavel tenha coeficientes hf? , onde i,j = 0 ... 5 e SP represents uma das 15 posigoes de subpixel ("a" ate "o") mostradas na FIG. 3. Note-se que 6 das 15 posigoes de subpixel, isto e, "a", "b", "c", "d", "h" e "1", sao posigoes de subpixel unidimensionais (ID), e a unidade de predigao 32 pode usar uma filtro de interpolagao de derivapao 6 para interpolar dados. Posipoes de subpixel "a", "b", "c", "d", "h" e "1", sao ID no sentido de que eles estao localizados em uma linha horizontal ou vertical entre as duas posipoes de pixel inteiro. Alem disso, suponha-se que os pixels de predipao nas posipdes de pixel inteiro (Al ate F6 na FIG. 3) no quadro de referenda pegam os valores de pixels de Pi,j ondei,j = 0 ... 5. Ou seja, Al pega o valor de P0,o, . .., A6 pega o valor de Ps,o, . .., Fl pega o valor de P5;0, •••/ e F6 pega o valor de P5,5- Entao, o valor interpolado pSP na posipao de subpixel SP, SP e e {a ,..., o}, pode ser calculado pela unidade de predipao 32, usando a seguinte equapao 5
Figure img0001
5(5)1=0 j=0
Deixe Sx,y ser o valor de pixel no quadro de video atual na posipao (x, y) . x
Figure img0002
y + [mvy J - FO,onde (mvx, mvy) e o vetor de movimento, ( | mvx | , Imvy|) e o componente inteiro do vetor de movimento, e FO e o deslocamento do filtro. 0 valor de (x,y} e a posipao do pixel correspondente nos quadros de referenda. Por exemplo, no caso de filtro de derivapbes 6, FO = 6/2 -1 = 2. Para cada posipao de subpixel SP, a energia de erro de predipao (eSP)2 entre o valor real do pixel no quadro atual e o valor interpolado pode ser acumulado por unidade de predipao 32 para todos os pixels que tern a precisao de vetor de movimento correspondente a posipao de subpixel SP. A energia de erro de predipao (eSP)2 pode ser calculado pela unidade de predipao 32, usando a seguinte equapao:
Figure img0003
/ \2 / T 5 5 Y=ZZfc., - PZ1=ZZ s,, - ZE A- pltl^ (6)x y x y \ i=0 J=Q J
Para cada uma das posigoes de subpixel a ate o, a unidade MC 37 pode criar um conjunto individual de equagoes pelo calculo da derivada de (esp)2 com relapao ao coeficientes de filtro . 0 numero de equagoes, neste caso, e igual ao numero de coeficientes de filtro usado para a posigao de subpixel atual SP. Para cada posipao de subpixel bidimensional (2D) "e", "f", "g", "i, "j", "k", "m", "n" e "o", a unidade de predipao 32 pode usar umfiltro de interpolapao de derivagao 6x6 2D. Posipoes de subpixel "e", "f", "g", "i", "j", "k", "m", "n" e "o", sao 2D no sentido de que nao estao localizados em uma linha vertical ou linha horizontal entre duas posipoes de pixel inteiro. Neste caso, um sistema de trinta e seis equagoes com trinta e seis incognitas pode ser resolvido pela unidade de MC 37. As posipoes de subpixel ID restantes "a", "b", "c", "d", "h" e "1" so podem exigir uma interpolapao ID (por exemplo, filtro de derivagao 6 ID) . No caso de um filtro.de derivagao 6 ID, um sistema de seis equagoes pode ser resolvido pela unidade de MC 37.
Figure img0004
Filtro 39 pode representer um filtro ou um conjunto de muitos filtros diferentes, que podem ser utilizados pela unidade MC 37 para gerar os dados preditivos.
Assim, um processo de exemplo de derivar e aplicar os filtros AIF pode ter as seguintes etapas, que podem ser realizadas pela unidade de predipao 32:1. Estimar vetores de movimento (MVX, MVY) para cada bloco de video a ser codificado. Durante a estimapao de movimento, um filtro de interpolapao fixo (por exemplo, o processo de interpolapao de H.264/AVC) pode ser aplicado.2. Utilizer estes vetores de movimento, acumulo de energia de erro de predipao para cada posipao de subpixel SP sobre o quadro atual. Entao, calcular os coeficientes de filtro adaptativo para cada posipao de subpixel SP independente minimizando a energia de erro de predipao assim como nas duas equapoes de energia de predipao acima.3. Estimar novos vetores de movimento. Durante este processo de estimapao de movimento, os filtros de interpolapao adaptativa calculado na etapa 2 podem ser aplicados. Usar os filtros de interpolapao adaptativa, os erros de estimapao de movimento, causados por graduapao, ruido da camera, etc., sao reduzidos e uma melhor predipao de movimento e alcanpada.
Esquemas de AIF podem usar o mesmo processo analitico, tai como dado acima. As diferenpas entre os diferentes esquemas na maior parte residem no numero de coeficientes de filtro originais usados, se os filtros de posipoes de subpixel). Em cada um desses esquemas, certas restripoes de simetria nos filtros de AIF podem ser aplicadas para reduzir o numero de coeficientes de filtro que precisam ser codificados e enviados em fluxo de bits de video.
Para NS-AIF, por exemplo, Unidade de MC 37 da unidade de predipao 32 pode interpolar posipoes de subpixel ID "a", "b", "c", "d", "h" e "1" usando um filtro de interpolapao de derivapao 6 ID (tambem referido como um filtro de 6 posipoes assim como cada derivapao corresponde a uma posipao de pixel inteiro), que exige seis coeficientes. Os seis coeficientes dos filtros de 6 posipoes usados para interpolar o subpixel ID cada um corresponde a uma das posipoes de pixel inteiro ilustradas na FIG. 3. Por exemplo, para as posipoes de subpixel "a", "b" e "c", as seis posipoes de pixel inteiro correspondentes aos coeficientes sao Cl, C2, C3, C4, C5 e C6 e para as posipoes de subpixel "d", "h" e "1", as seis posipoes de pixel inteiro correspondentes aos coeficientes sao: A3, B3, C3, D3, E3 e F3. Estas posipoes de pixel inteiro representam o "suporte de filtro" do filtro de interpolapao.
A unidade de predipao 32 pode interpolar posipoes de subpixel 2D "e", "f", "g", "i", "j" "k", "m", "n" e "o" usam um filtro de interpolapao 6 por 6 2D, que exige trinta e seis coeficientes de filtro. Os trinta e seis coeficientes do filtro de interpolapao 6x6 2D usado para interpolar o subpixel 2D cada um corresponde a posipoes de pixel inteiro A1-A6, B1-B6, C1-C6, D1-D6, E1-E6 e F1-F6. Estas posipoes de pixel inteiro representam o "suporte de codificar e transmitir nove conjuntos de trinta e seis coeficientes para as posigoes de subpixel 2D e seis conjuntos de seis coeficientes para as posigoes de subpixel ID, para um total de 360 coeficientes.Codificar e enviar aquele numero de coeficientes no fluxo de bits de video pode resultar em overhead um pouco caro. 0 elevado overhead de bits pode, por sua vez, aumentar a taxa de bits para um dado nivel de distorgao, o que e indesejavel.
Para reduzir o overhead de bit associado com o envio de coeficientes de filtro, certas restrigdes de simetria podem ser impostas nos filtros de interpolagao para reduzir o numero de coeficientes de filtro originais que precisam ser enviados ao decodificador 28. Dois tipos de simetria, ou seja, a simetria de pixel e a simetria de coeficiente podem ser aplicadas isoladamente ou em combinagao.A simetria de pixel aplica o mesmo conjunto de coeficientes de filtro (e as versdes espelhadas, interrompidas e/ou giradas do conjunto) para as diferentes posigoes de subpixel. Simetria de pixel pode tambem ser referida como a simetria de subpixel na medida em que a simetria de pixel se aplica com relagao aos coeficientes de filtro associados a duas ou mais localizagdes de subpixel. Simetria de coeficiente, por outro lado, reforga um dado filtro de interpolagao como sendo simetrico em um determinado sentido (por exemplo, o sentido horizontal, vertical ou ambos) para as diferentes posigoes de suporte de filtro em relagao a outras posigoes de suporte de filtro de determinados valores de suboixel a ser interoolados.filtro para posipao de subpixel "c" e ha5 ,h4, , ou seja, omesmocoeficiente em sentido inverse ou horizontalmente interrompido. Ou seja, a o valor de pixel de predipao pa na posipao de subpixel "a" e valor de pixel de predipao pc na posipao de subpixel "c" pode ser calculado usando (8) e (9), respectivamente
Figure img0005
pa =h“-G+h? ■C2+h“-C3 + h?-C4+h“-C5 + h“-C6 (8)pc = ha5 ■Cl + ha4-C2+h^-C3 + h^C4+h^-C5+h“-C6 (9)
Posipoes de subpixel "d" e "1" podem ser interpoladas utilizando o mesmo conjunto de coeficientes de filtro de interpolapao assim como posipoes de subpixel "a" e "c", respectivamente. Como tai, as posipoes de subpixel "a" e "c" podem ter simetria de pixel em relapao as posipoes de subpixel "d" e "1".
Um aspecto desta divulgapao e para remover realmente simetria de pixel entre as posipoes de subpixel "a" e "c" em relapao as posipoes de subpixel "d" e "1". Alem disso, a simetria de pixel pode ser evitada por uma posipao de subpixel "f" em relapao a posipao de subpixel "i" Alem disso, a simetria de pixel pode ser evitada por posipao de subpixel "k" em relapao a posipao de subpixel "n" Nesses casos, a correlapao diagonal pode ser baixa, tornando ineficiente ou ineficaz a imposipao de simetria diagonal nestes casos.Como outro exemplo, tem-se^o,o’^o,i’•••» ^0 5’•••’^5,0’^51 sendo o conjunto de coeficientesde filtro 6 por 6 2D para a posipao de subpixel "e." Em seguida, o conjunto de coeficientes de filtro para a posipao g e 4 (versaohorizontalmente interrompida). Da mesma forma, o conjuntode coeficientes de posigao de filtro de subpixel "m" e ^5,o» ^5,i’•••’^5,5> •••’^o.o’^oi -A's (versao verticalmente invertida) , e o conjunto de coeficientes de filtro para a posipao de subpixel "o" e he55, he5 A,he5S>,heai, heafi (primeiro horizontalmente interrompida e depois verticalmente invertida). Como tai, posipoes de subpixel "e", "g", "m" e "o" tern simetria de pixel. Simetria entre as posipoes de subpixel "b" e "h", e entre as posipoes "f", "i", "k" e "n" sao impostas de forma semelhante como os exemplos citados acima. Sob tai uma restripao de simetria de pixel, restam apenas cinco grupos de conjuntos de filtros exclusivos, um primeiro conjunto de coeficientes de filtro para o grupo de subpixel "a", "c", "d" e "1", um segundo conjunto decoeficientes de filtro para o grupo de subpixel "b" e "h", um terceiro conjunto de coeficientes de filtro para o grupo de subpixel "e", "g", "m" e "o", um quarto conjunto de coeficientes de filtro para o grupo "f , "i", "k" e "n", e um quinto conjunto de coeficientes de filtro para o grupo de subpixel "j . "
Alem disso, NS-AIF pode impor restripao desimetria de coeficiente em alguns desses conjuntos defiltros, isoladamente ou em combinapao com a simetria desubpixel acima descrita. Em alguns casos, a simetria decoeficiente diagonal pode ser propositadamente evitada, por exemplo, eliminando quaisquer restripbes de simetria de coeficiente diagonal. Em um exemplo, a simetria de coeficiente e imposta no filtro para o primeiro grupo de posipoes de subpixel, que inclui locais de subpixel "a", "c", "d" e "1". No entanto, o segundo grupo de posigoes de subpixel, que inclui coeficiente "b" e "h", pode ter simetria de coeficiente de acordo com a equapao (10).
Figure img0006
Da mesma forma, os coeficientes para os filtros de interpolapao para os grupos de terceira, quarta e quinta posipoes de subpixel, que incluem posipoes de subpixel "e", "f" e "j", respectivamente, podem ter simetria de coeficiente determinada nas equapbes (11), (12) e (13), respectivamente.
Figure img0007
hij=h»’for 7,7 = 0...5,1* j (11)hfj = hG-i ’for 47 = 0-5 (12)hij = hb-j = = hL,s-j _ i,j = 0...2, torhi.=hj. i*JI, J J,I J
De acordo com a simetria de pixel e restripoes de simetria de coeficiente descritas acima, o numero de coeficientes de filtro original pode ser reduzido de 360 (sem restripao de simetria) para 6 (a) + 3 (b) + 21 (e) + 18 (J) + 6 (J ) = 54 coeficientes, ou seja, 6 coeficientes para o grupo, incluindo a posipao de subpixel "a", tres coeficientes para o grupo, incluindo posipao subpixel "b", 21 coeficientes para o grupo, incluindo a posipao de subpixel "e", 18 coeficientes para o grupo, incluindo a posipao de subpixel "f", e 6 coeficientes para o grupo, incluindo a posipao de subpixel "j." Assim, na NS-AIF, codificador de video 22 pode codificar e transmitir cinquenta e quatro coeficientes, em vez de 360, como no caso de nao existirem restripoes de simetria. Como descrito acima, os cinquenta e quatro coeficientes podem ser resolvidos analiticamente com base na equagao (7) acima. Codificador de video 50 pode entao prever, quantizer, codificar (por exemplo, utilizando o codigo assinado Exp- Golomb), e enviar os coeficientes no fluxo de bits.Detalhes adicionais sobre a codificagao de predipao de coeficientes de filtro sao discutidos em maiores detalhes abaixo.Unidade de quantizagao e predigao de coeficiente 41 podem ser utilizados para a codificagao preditiva e quantizagao dos coeficientes de filtro de acordo com esta divulgagao.
Em outro esquema AIF, isto e, S-AIF, a unidade de predigao 32 pode usar filtros de interpolagao separaveis no sentido horizontal e no sentido vertical, ao inves de filtros de interpolagao nao separaveis como os usados no NS-AIF. Para as posigoes de subpixel ID, unidade de predigao 32 (por exemplo, Unidade de MC 37 da unidade de predigao 32) so aplica filtros direcionais horizontais ou verticals ou somente filtros direcionais dependendo da localizagao de subpixel.Em um exemplo, os filtros horizontais e verticals direcionais compreendem filtros de 6 posigoes (ou 6-derivagao). Unidade de predigao horizontal 32 aplica filtros direcionais para as posigoes de subpixel "a", "b", "e" c "com posigoes de pixel inteiro Cl, C2, C3, C4, C5 e C6 (ver FIG. 3) como suporte de filtro vertical e aplica filtros direcionais para as posigoes de subpixel "d" "h", e "1" com posigoes de pixel inteiro A3, B3, C3, D3, E3 e F3 (ver FIG. 3) como suporte de filtro. Para as posigoes de subpixel restantes, isto e, as posigoes de subpixel 2D, unidade de predigao 32 aplica primeiro filtragem horizontal, sequido de filtragem vertical ou filtragem equagao (7) acima. Sem qualquer simetria, S-AIF pode reduzir o numero de coeficientes que devem ser codificados e enviados para 144 coeficientes de 360 coeficientes, como e o caso de NS-AIF sem simetria.
S-AIF pode adicionalmente impor uma ou mais restrigoes de simetria em pelo menos alguns dos filtros de interpolagao. Ao contrario da simetria de subpixel da NS- AIF, com o S-AIF, os conjuntos de filtro usados para as posigoes de subpixel "a" e "c" nao sao simetricos, ou seja, versoes horizontalmente interrompidas umas das outras. Em vez disso, os coeficientes dos conjuntos de filtros utilizados para as posigoes de subpixel "a" e "c" sao derivados independentemente um do outro como h%,h°, e hc0, , ....hf respectivamente. Para cada posigao de subpixel que tern movimento vertical, a simetria de subpixel e semelhante ao NS-AIF. Ou seja, os coeficientes para as posigoes de subpixel "d" e "1", os coeficientes para asposigoes de subpixel "e" e "m", os coeficientes para asposigoes de subpixel "f" e "n", e os coeficientes para asposigoes de subpixel "g" e "o" sao versoes verticalmenteinvertidas de cada um, respectivamente. Por exemplo, se os coeficientes de filtro vertical para a posigao de subpixel "d" e ,hy , ...,h^, entao os coeficientes de filtro vertical de posigao de subpixel "1" h$ ,h%, ...,1$ . Assim, a simetria de subpixel utilizada na S-AIF so tern simetria de subpixel em uma dimensao vertical. S-AIF nao tern, no entanto, simetria de subpixel horizontal.A simetria de subpixel em S-AIF coeficientes que precisam ser codificados e enviados pelo codificador de video 50. A simetria de coeficiente utilizada no S-AIF pode ser a mesma que no NS-AIF, exceto que no S-AIF so existem filtros ID (horizontal ou vertical) de derivapao 6. Em outras palavras, nao existem filtros 6 por 6 2D. Na S-AIF, para cada posipao de subpixel SP, SP e {b, h, i, j, k}, os coeficientes de filtro podem ter simetria, como indicado na equapao (14).
Figure img0008
c = hf,h*p = hfp,h^p = C (14)
Portanto, tanto com simetria de subpixel quanto com simetria de coeficiente, o filtros S-AIF pode ter onze conjuntos de filtros de derivapao 6 ID exclusive, cinco dos quais sao filtros simetricos onde cada um tern tres coeficientes originals. Os restantes seis filtros podem ter cada um seis coeficientes originals. Neste caso, o codificador de video 22 pode quantizer, prever, codificar e enviar um total de cinquenta e um coeficientes de filtro exclusives no fluxo de bits de video.
Em outro esquema AIF, D-AIF, a unidade de predipao 32 usa filtros direcionais para as posipoes de subpixel 2D "e", "f", "g", "i", "j", "k", "m","n" e "o". Os filtros direcionais podem incluir filtros de seis derivapbes, e os coeficientes podem ter simetria de modo que apenas um subconjunto dos coeficientes precisa ser transmitido. Como descrito aqui, suporte de filtro refere- se as posipoes de pixels a partir do quadro de referenda que e usado na interpolapao das posipoes de subpixel. = MO T7 •= 1 ■. 1 v- <« H de interpolated diagonal de 6 posipoes que tern posipoes de pixel inteiro A6, B5, C4, D3, E2 e Fl como suporte de filtro. Unidade de predipao 32 pode calcular posipoes de subpixel "f", "i", "j", "k" e "n" com um filtro de interpolapao diagonal de 12 posipoes que tern posipoes de pixel inteiro Al, B2, C3, D4, E5 , F6, A6, B5, C4, D3, E2 e Fl como suporte de filtro.
D-AIF pode usar a mesma simetria de subpixel e de coeficiente, conforme descrito acima com relapao a NS-AIF. Em termos de simetria de subpixel, ha cinco conjuntos exclusivos de coeficientes de filtro para interpolapao das quinze posipoes de subpixel com posipoes de subpixel "a", "c", "d" e "1" compartilhando os mesmos coeficientes de filtro (por exemplo, versoes espelhadas, interrompidas e/ou giradas), posipoes de subpixel "e", "g", "m" e "o" compartilham os mesmos coeficientes de filtro (por exemplo, versoes espelhadas, interrompidas e/ou giradas), posipoes de subpixel "b" e "h" compartilham os mesmos coeficientes de filtro ("b" sendo um filtro horizontal e "h" sendo um filtro vertical), as posipoes de subpixel "f", "i", "k", e "n" compartilham os mesmos coeficientes de filtro (por exemplo, versoes espelhadas, interrompidas e/ou giradas), e a posipao de subpixel "j" tern seu proprio conjunto de coeficientes de filtro.
Em termos de simetria de coeficiente, os coeficientes de filtro para o primeiro grupo de subpixel, incluindo "a", "c", "d" e "1", utilizam um filtro de 6 posipoes ID com seis coeficientes de filtro original (isto e, o primeiro grupo sendo nao-simetrico), os coeficientes de filtro oara o seaundo aruoo de suboixel "b" e "h" usam "e", "g", "m" e "o" usa um filtro de 6 posigoes direcional tendo seis coeficientes de filtro originals. Um quarto conjunto de coeficientes de filtro para o grupo "f", "i", "k" e "n" usa um filtro de 12 posigoes tendo 6 coeficientes originals e um quinto conjunto de coeficientes de filtro para o grupo "j" tendo tres coeficientes originals. 0 numero total de coeficientes exclusivos no esquema D-AIF e 6 (a) + 3 (b) + 6 (e) + 6 (f) + 3 (j) = 24 coeficientes. Estes coeficientes de filtro podem ser preditos, quantizados, codificados e enviados no fluxo de bits de video.
Unidade MC 37 da unidade de predigao 32 pode utilizar uma ou mais das tecnicas de interpolagao descritas aqui para aumentar a precisao de interpolagao das posigoes de subpixel e/ou reduzir o numero de coeficientes de filtro de interpolagao que precisam ser codificados e transmitidos. Descrito em maiores detalhes abaixo e um suporte de filtro de doze pixels util em forma radial que pode ser usado para a interpolagao, tecnicas que utilizam a simetria de coeficiente e simetria de pixel para reduzir a quantidade de dados necessaria para ser enviada entre um codificador e um decodificador para configurar o suporte de filtro para interpolagao, tecnicas para a remogao de alguns aspectos de simetria em relagao as tecnicas convencionais e tecnicas de filtragem de dados em localizagoes de pixel inteiro de uma maneira que e semelhante a interpolagao de subpixel. Tecnicas de deslocamento tambem sao descritas.Alem disso, tecnicas para selecionar entre os filtros de interpolagao, e tecnicas para preditivamente codificar coeficientes de filtro tambem sao descritas.
A figura 4 e um diagrama conceitual ilustrando um suporte.de filtro de doze pixel com relagao aos nove locais de subpixel. De acordo com esta divulgagao, a unidade MC 37 pode calcular os valores de subpixel para as posipoes de subpixel "e", "f", "g", "i", "j", "k", "m", "n", e "o" com base nos valores de pixel inteiro sombreados. Neste caso, computer os valores de subpixel compreende aplicar uma filtro de interpolagao que define uma matriz bidimensional de posipoes de suporte de filtro correspondents a um conjunto de doze (ou possivelmente mais) posipoes de pixel inteiro que cercam as posipoes de subpixel, conforme ilustrado na FIG. 4. As posipoes de suporte de filtro sao exibidas com sombreamento e letras maiusculas, e as posipoes de subpixel sao mostradas como caixas com linhas pontilhadas e letras minusculas. Unidade MC 37 pode interpolar pixels desta forma para cada pixel de um bloco de video, e pode gerar um bloco de predigao baseado interpolar os valores de subpixel. 0 suporte de 12 posipoes do filtro tern uma forma radial, e tern resposta de frequencia similar como o suporte 36 posipoes do filtro utilizado na NS-AIF, mas com a complexidade de interpolapao muito reduzida.
Como pode ser apreciado a partir da FIG. 3, os valores de subpixel podem incluir quinze valores de meio pel e um quarto de pel. A filtro de interpolapao que define a matriz bidimensional de posipoes de suporte de filtro e aplicada para definir nove dos quinze valores de meio pel e um quarto de pel, como mostrado na FIG. 4.
O conjunto de doze ou mais posipoes de pixel inteiro que cercam as posipoes de subpixel e mostrado com sombreamento na FIG. 4, e pode incluir quatro posipoes de pixel inteiro C3, C4, D3 e D4 em torno dos nove valores de meio pel e um quarto de pel, e de oito posipoes de pixel inteiro B3, B4, C2, C5, D2, D5, E3 e E4 ao redor das quatro posipoes de pixel inteiro. Cada uma das posipoes de suporte de filtro na matriz bidimensional de posipoes de suporte de filtro mostradas na FIG. 4 estao dentro de duas posigoes de pixel inteiro em relagao as posigoes de subpixel. Essa filtragem pode fazer parte de compensagao de movimento durante o processo de codificagao de video pelo codificador de video 50 (fig. 2) ou durante um processo de decodificagao de video pelo decodificador de video 60 (fig. 16). Durante o processo de codificagao de video, a unidade de predigao 32 apresenta uma pluralidade de conjuntos de valores de coeficiente para unidade de codificagao de entropia 46, como parte dos elementos de sintaxe de predigao. Como mostrado na FIG. 4, o conjunto de doze ou mais posigoes de pixel inteiro que cercam as posigoes de subpixel tem uma forma radial e pode incluir um conjunto de posigoes de pixel inteiro espacialmente mais proximas para os nove valores de meio pel e um quarto de pel definidos pela filtro de interpolagao (por exemplo, filtro 39, na FIG. 2).
Unidade de codificagao de entropia 46 pode codificar os conjuntos de valores de coeficiente e emitir os valores de coeficientes do filtro de interpolagao como parte de um fluxo de bits codificado, que pode entao ser transmitido para outro dispositivo. Cada um da pluralidade de conjuntos de valores de coeficientes definidos com relagao a cada local de subpixel diferente mostrado na FIG. 04 pode definir diferentes ponderagdes para as doze ou mais posigoes de pixel inteiro. Simetria de pixel pode existir de tal forma que M conjuntos de valores de coeficientes definem N ponderagoes diferentes para as doze ou mais posigoes de pixel inteiro, onde M e N sao numeros inteiros positives e N e maior do que M. Em -outras palavras, a simetria de pixel pode permitir que alguns dos locais de pixels permanegam em ponderagoes espelhadas, invertidas ou giradas de outras localizagoes de pixel, para que os coeficientes nao precisem ser codificados para as posigoes que tern simetria de pixel com outros locais de subpixel.
A figura 5 e um diagrama conceitual ilustrando um suporte de filtro de seis pixels horizontal em relagao a tres posigoes de subpixel horizontais, e um suporte de filtro de seis pixels vertical em relagao a tres locais de subpixel vertical.Os locais de suporte de filtro sao sombreados com letras maiusculas, e os locais de subpixel sao nao-sombreados, com letras minusculas e as linhas pontilhadas. Unidade MC 37 pode calcular os valores de subpixel para locais "a", "b", "e", "c", aplicando um filtro de interpolagao linear que define uma matriz unidimensional de posigoes de suporte de filtro C1-C6. Unidade de MC 37 tambem pode calcular os valores de subpixel para locais "d", "h" , "e" "1" pela aplicagao de um filtro de interpolagao linear que define uma matriz unidimensional de posigoes de suporte de filtro A3-F3. Desta forma, os filtros de interpolagao linear podem ser utilizados por seis dos quinze valores de meio pel e um quarto de pel mostrados na FIG. 3.
A figura 6 e um diagrama conceitual ilustrando um suporte de filtro de cinco pixels por cinco pixels para a filtragem de um local de pixel inteiro.Neste caso, a filtragem tipo interpolagao pode ser aplicada com relagao a localizagoes de pixel inteiro, a firn de gerar valores de pixel inteiro ajustados. Na FIG. 6, por exemplo, o valor de pixel inteiro na posigao C3 pode ser filtrado com base em um matriz de pixel de cinco por cinco A1-A5, B1-B5, C1-C5, D1-D5 e E1-E5. Outros suportes de filtro poderiam ser definidos por filtragem inteira. Neste caso, se a Unidade ME 35 identifica um bloco de pixel inteiro, a unidade MC 37 pode filtrar cada pixel com base na matriz de pixel de cinco por cinco mostrada na FIG. 6 (ou outro suporte de filtro) para gerar valores de pixel inteiro filtrado. Desta forma, a filtragem tipo interpolapao pode ser aplicada para pixel inteiro, o que pode melhorar a codificapao em tempos de mudanpas de iluminapao ou fade-ins ou fade-outs de cena. Alem disso, filtragem inteira pode remover o ruido e facilitar nitidez do quadro de imagem, e pode ajudar a melhorar a codificapao do movimento do objeto tenue entre sucessivos quadros de video em especial quando a simetria nao e imposta aos coeficientes de filtro. Filtragem de pel inteiro tambem pode ser extremamente util na melhoria da qualidade e/ou compressao para sequencias de video que tern mudanpas de foco.
Assim, o codificador de video 22 e/ou decodificador de video 28 pode utilizar filtragem tipo interpolapao em relapao a posipoes de pixel inteiro, a firn de gerar valores de pixel inteiro ajustados. 0 decodificador de video 22 ou codificador de video 28 pode, por exemplo, obter blocos de pixels, onde os blocos de pixels incluem valores de pixel inteiro correspondentes a posipoes de pixel dentro do bloco de pixels. 0 codificador de video 22 ou decodificador de video 28 pode filtrar os valores de pixel inteiro com base em outros valores de pixel inteiro dentro dos blocos de pixels para gerar valores de pixel inteiro ajustados, em que os valores de pixel inteiro ajustados correspondem as posipoes de pixel inteiro, e gerar bloco de predipao com base nos valores de pixel inteiro ajustados. 0 bloco de predipao pode ser usado para codificar ou decodificar um bloco de video, dependendo de se o processo e realizado durante a codificapao ou decodificapao.
Se a tecnica for realizada durante um processo de codificapao, o codificador de video 22 pode gerar um bloco de video residual como uma diferenpa entre um bloco de video atual a ser codificado e o bloco de predigao. Codificador de video 22 pode tambem codificar um conjunto de coeficientes de filtro por unidade codificada para filtragem inteira, ou possivelmente codificar dois ou mais conjuntos de coeficientes de filtro por unidade codificada para filtragem inteira em diferentes locais dentro da unidade codificada. No exemplo da FIG. 6, os suportes de filtro para a filtragem inteira podem definir um filtro bidimensional, por exemplo, um filtro 5x5 com deslocamento. Alem disso, a simetria de coeficiente pode existir entre pelo menos alguns coeficientes utilizados para a filtragem de tai forma que apenas um subconjunto dos 25 coeficientes diferentes e necessario para determinar os 25 coeficientes para o filtro.Muitos outros tamanhos e formas de filtro podem ser utilizados de acordo com a filtragem de pel inteiro.
Se a filtragem de pel inteiro for realizada durante um processo de decodificagao, a tecnica pode incluir gerar um bloco de video reconstruido como uma soma de um bloco de video residual associado a um bloco de video atual que esta sendo decodificado e o bloco de predigao. Neste caso, o dispositivo de decodificagao (por exemplo, o dispositivo de destino 16) pode receber um conjunto de coeficientes de filtro por unidade codificada para filtragem inteira, ou pode receber dois ou mais conjuntos de coeficientes de filtro por unidade codificada para filtragem inteira em diferentes locais dentro da unidade codificada. Cada unidade codificada pode ter um ou mais conjuntos de coeficientes de filtragem de pel inteiro, bem como conjuntos de coeficientes de filtragem de subpel, por exemplo, oito conjuntos que podem ser utilizados para gerar todos os quinze conjuntos para as posigoes de meio pel e um quarto de pel.
Mais uma vez, filtragem tipo interpolapao de valores de pixel inteiro pode melhorar a compressao especificamente durante as mudanpas de iluminapao, fade-ins ou fade-out de cena pode remover o ruido e facilitar a moldura da imagem nitidez, e podem ajudar a melhorar a codificapao do movimento do objeto tenue entre video sucessivas quadros especialmente quando a simetria nao e imposta aos coeficientes de filtro. Alem disso, filtragem de pel inteiro tambem e encontrada para ser extremamente util, por exemplo, para melhorar a compressao, em sequencias de video que tern mudanpas de foco.
Convencionalmente, a filtragem tipo interpolapao nao e feita para as posipoes de pixels inteiro na AIF. Em vez disso, a posipao de pixel inteiro correspondente no quadro de referenda e simplesmente usada "como e" . No entanto, de acordo com esta divulgapao, um filtro pode ser usado para localizapoes de pixel inteiro de uma maneira que e semelhante a interpolapoes. Filtragem de interpolapao em posipoes de pixel inteiro e tecnicamente uma troca de nome, como os valores de pixel de posipoes de pixel inteiro ja existentes. Assim, a filtragem de posipoes de pixel inteiro passa a ser referida aqui como filtragem tipo interpolapao e pode ser vista apenas como uma filtragem dos valores de pixel inteiro para gerar novos valores de pixel ajustado.
Ao contrario de filtragem por interpolapao para as posipoes de subpixel, onde o objetivo e obter os valores inexistentes no quadro de referenda, os pixels nas posipoes inteiras no quadro de referenda ja existem. No entanto, a aplicagao de filtros sobre as posipoes de pixel inteiro no quadro de referenda oferece uma serie de beneficios. Por exemplo, quando as posipoes de pixel inteiro contem um deslocamento, a filtragem das posipoes pixel inteiro pode permitir uma melhor captapao das variagoes de iluminagao entre os quadros. Alem disso, a filtragem nas posigoes de pixel inteiro pode permitir que as posigoes de pixel inteiro capturem efeitos especiais, como fade in e fade-out. Filtragem nas posigoes de pixel inteiro tambem pode remover certos ruidos de sinal (como o ruido da camera) e/ou executar nitidez, se necessario. Alem disso, se nenhuma simetria no filtro de pixel inteiro e imposta, o filtro de pixel inteiro pode ajudar a capturar objeto de movimento fino, como o movimento do objeto que nao e um multiple de um quarto de pixel. Finalmente, filtragem de pixel inteiro tambem pode ser util para melhorar a compressao de sequencias de video quando ocorrem mudangas de foco.
Em alguns casos, filtragem de interpolagao de posigoes de pixel inteiro pode ser dependente de vetores de movimento. Em outras palavras, Unidade de MC 37 da unidade de predigao adaptativa 32 pode aplicar a filtragem por interpolagao com base no vetor de movimento identificado pela Unidade ME 35. Por exemplo, a filtragem de interpolagao de posigoes de pixel inteiro pode ser realizada quando o vetor de movimento aponta para uma posigao de pixel inteiro.A filtragem por interpolagao pode resultar em um valor de pixel ajustado para a posigao de pixel inteiro. Quando o vetor de movimento aponta para uma posigao de subpixel, nenhuma filtragem de posigoes de pixel inteiro e feita com relagao aos valores de pixel inteiro, mas a filtragem pode ser utilizada para a interpolagao dos valores de subpixel. Desta forma, a filtragem de pixel inteiro pode ser considerada adaptativa com base em vetores de movimento.
Para as posigoes de pixel inteiro, filtro de interpolagao 5 x 5 na forma da equagao (15) pode ser derivado usando o mesmo processo analitico utilizado para obter a posipao de filtros de subpixel.4 4= (15)z=0 1=0onde PFP e o valor de pixel filtrado inteiro, Pi,j e o valor de pixel inteiro na posipao (i, j), HFPi,j e o coeficiente para a posipao (i, j), e oFP e um deslocamento de filtro. Em alguns casos, a filtro de interpolapao para as posipoes de numero pixel inteiro nao pode ter um deslocamento de filtro (ou seja, oFP =0). Em outros casos, o deslocamento de filtro oFP pode usarqualquer uma de uma serie de tecnicas.
Diferentes deslocamentos podem ser definidos para cada posipao de subpixel, por exemplo, quinze diferentes deslocamentos podem ser definidos para cada posipao de subpixel mostrada na FIG. 3. Outro deslocamento pode ser definido para pixel inteiros, elevando o numero total de deslocamentos para dezesseis. Pedido de Patente co-pendente e comumente atribuido U.S. n° de serie, depositada por Karczewicz et al, e intitulado "DESLOCAMENTOS AT SUBPIXEL RESOLUTION" tendo numero de procurador 081399U2, que foi depositado no mesmo dia que o presente pedido, e que e incorporado aqui por referenda, fornece muitos detalhes adicionais sobre o uso de muitos deslocamentos para diferentes pixels e locais de subpixel.
A firn de reduzir o numero de coeficientes de filtro a ser transmitido, a simetria de coeficiente na equapao (16) pode ser imposta no filtro de pixel inteiro.
C = Cl = Ci = C4-1 > for i,J = 0...4 (16)
Outras formas de simetria de coeficiente tambempodem ser usadas. Se a simetria de coeficiente e imposta ou nao pode ser decidido pelo codificador e um sinalizado para o decodificador. Se a simetria como em (16) for usada no filtro de pixel inteiro, entao nove coeficientes de filtro e um deslocamento pode precisar ser enviado para o decodificador.
Codificapao dos deslocamentos pode ser feita pela primeira codificapao de um deslocamento inteiro e, em seguida, codificapao de cada deslocamento fracionario.Neste caso, o deslocamento inteiro e os deslocamentos fracionarios sao codificados de forma diferente. O deslocamento inteiro pode ser codificado utilizando o codigo Golomb exponencial assinado. Dependendo da magnitude do deslocamento inteiro, os deslocamentos fracionarios podem ser quantizados de forma diferente do deslocamento inteiro. Por exemplo, os niveis de quantizapao mais grosseiros podem ser aplicados sobre os deslocamentos fracionarios, quando um deslocamento inteiro tern uma grande magnitude.Apos a quantizapao, os deslocamentos fracionarios podem ser codificados usando codigos de comprimento fixo. Como exemplo, o seguinte pseudocodigo pode ilustrar como um determinado deslocamento inteiro pode ser codificado usando diferentes codigos de comprimento fixo definidos com base no valor de deslocamento inteiro.
Deixe deslocamentol ser o deslocamento inteiro
Deixe deslocamentoF ser o deslocamento fracionario
Deixe deslocamentoFbits ser o numero de bits usados para quantizer deslocamentoF
Deixe abs(a) ser o valor absolute de um a se (abs (deslocamentol) = 0) deslocamentoFbits = 5 tambem se (abs (deslocamentol) < 3) deslocamentoFbits = 4tambem se (abs (deslocamentol) < 7) deslocamentoFbits = 2 tambem deslocamentoFbits = 0
Neste caso, o codificador de video 50 pode utilizar a predipao de coeficiente e unidade de quantizagao 41 que para cada um dos valores de deslocamento atribui um primeiro numero de bits a uma porpao inteira de um determinado valor de deslocamento e atribui um segundo numero de bits a uma porpao fracionaria do dado valor de deslocamento, em que os primeiro e segundo numeros de bits sao determinados com base em uma magnitude da parte inteira. Neste caso, as versoes quantizadas dos valores deslocados podem ser encaminhadas pela unidade de predigao 32 como elementos de sintaxe de predipao apos a quantizagao dos valores de deslocamento ser realizada de acordo com o pseudocodigo acima. Em qualquer caso, o codificador de video 50 pode codificar o primeiro numero de bits diferente do segundo numero de bits.
A figura 7 e um diagrama conceitual que ilustra quatro posipoes de pixel inteiro e quinze posipoes de subpixel com sombreamento para agrupar as posipoes de pixels que podem utilizar a simetria de pixel para os coeficientes de filtro de acordo com esta divulgagao. Em especial, a FIG. 7 ilustra as posipoes de subpixel "a" ate "o" correspondente a posipao de pixel inteiro C3. As posipoes de subpixel inteiro mostrada na FIG. 7 correspondem as das figs. 4 e 5. Ou seja, locais de subpixel "e", "f", "g", "i", "j", "k", "m", "n" e "o" podem ter valores determinados por um suporte de doze pixels, como mostrado na FIG. 4, enquanto locais de subpixel "a", "b" e "c", e os locais de subpixel "d", "h" e "1", podem ter valores determinados por suportes de pixel horizontal e linear mostrados na FIG. 5.
Neste cenario, a simetria de pixel pode ser imposta de tai forma que os coeficientes de filtro para localizagao de pixel "a" sao simetria em relagao aos coeficientes de filtro para localizagao de pixel "c." Da mesma forma, a simetria de pixel pode ser imposta de tai forma que os coeficientes de filtro para localizagao de pixel "d" sao simetricos com relagao aos coeficientes de filtro para localizagao de pixel "1". Simetria de pixel pode ser imposta de modo que os coeficientes de filtro para localizagao de pixel "e" sao simetricos com relagao aos coeficientes de filtro para locais de pixel "g", "m" e "o", e simetria de pixel pode ser imposta de tai forma que os coeficientes de filtro para localizagao de pixel "i" sao simetricos com relagao aos coeficientes de filtro para localizagoes de pixels "k", e simetria de pixel pode ser imposta de tai forma que os coeficientes de filtro para localizagao de pixel "f" sao simetricos com relagao aos coeficientes de filtro para localizagoes de pixels "n". Portanto, apenas oito conjuntos de valores de coeficientes podem precisar ser comunicados como parte de um fluxo de bits de video de forma a permitir que um decodificador gere conjuntos completos de valores de coeficientes para todos os locais de quinze pixels. Alem disso, para qualquer conjunto de coeficientes, a simetria de coeficiente pode permitir que apenas um subconjunto dos valores de coeficientes seja enviado, e o decodificador pode gerar um conjunto complete de valores de coeficientes de um local de pixel determinado com base no subconjunto e simetria de coeficiente.
Um aspecto desta divulgagao e realmente remover qualquer simetria de pixel entre as posigoes de subpixel "a" e "c" em relagao as posipoes de subpixel "d" e "1". Alem disso, a simetria de pixel pode ser evitada por uma posipao de subpixel "f" em relapao a posipao de subpixel "i" Alem disso, a simetria de pixel pode ser evitada pela posipao de subpixel "k" em relapao a posipao de subpixel "n" Nesses casos, a correlapao diagonal pode ser baixa, tornando ineficiente ou ineficaz a imposipao de simetria diagonal. Desta forma, os oito conjuntos de coeficientes utilizados para gerar todos os quinze conjuntos de coeficientes podem ser um conjunto maior do que algumas tecnicas convencionais na medida em que a simetria e evitada na dimensao diagonal para algumas das localizapdes de pixel. Em alguns casos, a simetria de pixel diagonal e simetria de coeficiente diagonal podem ser eliminadas ou evitadas para permitir variancia na dimensao vertical.
Referindo-se novamente a figura 1, o codificador de video 22 pode determinar oito conjuntos de coeficientes de filtro e usar os oito conjuntos de coeficientes de filtro para gerar todos os quinze conjuntos de coeficientes de filtro correspondentes a quinze diferentes localizapoes de subpixel com base na simetria de coeficiente e simetria de pixel, e emitir oito conjuntos de coeficientes de filtro, como parte de um fluxo de bits codificado. Oito conjuntos de coeficientes de filtro podem ser emitidos para cada unidade codificada do fluxo de bits codificado, ou, eventualmente, varias ocorrencias dos oito conjuntos de coeficientes de filtro podem ser emitidas para as diferentes areas de uma unidade codificada.
Os quinze conjuntos correspondem a todas as localizapoes de subpixel de meio pel e um quarto de pel mostradas na FIG. 3, e os oito conjuntos, a simetria de coeficiente e a simetria de pixel definem suportes de filtro para cada local de subpixel de meio pel e um quarto de pel. 0 decodif icador de video 28 do dispositivo de destino 16 pode receber oito conjuntos de coeficientes de filtro, como parte de um fluxo de bits de video codificado, gerar quinze conjuntos de coeficientes de filtro correspondentes a quinze diferentes localizapoes de subpixel com base nos oito conjuntos de coeficientes de filtro, gerar dados preditivos interpolados para decodificagao de video com base em um dos quinze conjuntos de coeficientes de filtro, em que os dados preditivos interpolados correspondem a um dos quinze locais de subpixel diferentes, e decodificar um ou mais blocos de video com base nos dados preditivos interpolados.
Pelo menos alguns dos oito conjuntos de coeficientes de filtro podem ter simetria de coeficiente de tai forma que um determinado conjunto com simetria de coeficiente compreenda um subconjunto dos coeficientes de filtro associado com um suporte de filtro para um determinado local de subpixel associado com o dado conjunto. Assim, o decodificador de video 28 pode gerar os quinze conjuntos de coeficientes de filtro com base pelo menos em parte na simetria de pixel entre duas ou mais diferentes localizapoes de subpixel. Alem disso, o decodificador de video 28 pode gerar os quinze conjuntos de coeficientes de filtro com base pelo menos em parte na simetria de pixel entre duas ou mais diferentes localizapoes de subpixel, e com base pelo menos em parte na simetria de coeficiente definida para um determinado conjunto de tai forma que o conjunto de dados com simetria de coeficiente compreende um subconjunto dos coeficientes de filtro associados com um suporte de filtro para um determinado local de subpixel associado com o dado conjunto.
Novamente, os quinze conjuntos podem corresponder a cada localizagao de subpixel de meio pel e um quarto de pel.A simetria de pixel pode existir entre os diferentes conjuntos de quinze coeficientes de filtro em uma dimensao vertical e em uma dimensao horizontal, mas a simetria de pixel nao existe em uma dimensao diagonal para pelo menos alguns dos quinze conjuntos de coeficientes de filtro. Conforme explicado com mais detalhes a seguir, dois dos oito conjuntos podem definir tres dos quinze conjuntos de suporte de filtro horizontal, dois dos oito conjuntos podem definir tres dos quinze conjuntos de suporte de filtro vertical, e quatro dos oito conjuntos podem definir nove dos quinze conjuntos de suporte de filtro bidimensional. 0 suporte bidimensional pode incluir um suporte de posigao de filtro 12 util ao redor das nove posigoes de subpixel em forma radial.
Especificamente, os dados preditivos interpolados podem incluir quinze valores de meio pel e um quarto de pel, por exemplo, mostrados na FIG. 7, em que o filtro de interpolagao define uma matriz bidimensional de doze posigoes de suporte de filtro, por exemplo, mostradas na FIG. 4, que sao utilizadas para definir os valores de nove dos quinze valores de meio pel e um quarto de pel e, por exemplo, tambem mostrados na FIG. 4. Gerar os dados interpolados preditivos pode ainda compreender a aplicagao de filtros de interpolagao linear que definem matrizes unidimensionais de posigoes de suporte de filtro para seis dos quinze valores de. meio pel e um quarto de pel, por exemplo, como mostrado na FIG. 5.
Simetria horizontal e falta de simetria diagonal pode ser vista com relagao as posigoes de subpixel "a" e "c" ou com relagao as posigoes de subpixel "i" e "k" Neste caso, as posigoes de subpixel inteiro "a" e "c" sao simetricas ao longo de um eixo horizontal X, mas a simetria nao existe ao longo de um eixo diagonal para esses pixels tal que os locais de subpixel "d" e "1" nao sao simetricos em relagao as posigoes de subpixel "a" e "c", respectivamente. Da mesma forma, as posigoes de subpixel "i" e "k" sao simetricas ao longo de um eixo horizontal X, mas a simetria nao exists ao longo do eixo diagonal para esses pixels tal que os locais de subpixel "f" e "n" nao sao simetricos com relagao as posigoes de subpixel "i" e "k", respectivamente.
A simetria de pixel significa que um primeiro conjunto de coeficientes com relagao a primeira posigao de subpixel e simetrico em relagao a um segundo conjunto de coeficientes em relagao a segunda posigao de subpixel. Por exemplo, a localizagao do pixel "a" tern simetria de em relagao a localizagao do pixel "c", e a localizagao de pixel "d" tern simetria de pixel em relagao a localizagao do pixel "1". 0 local de pixel "f" tern simetria em relagao ao local de pixel "n", e a localizagao de pixel "i" tern simetria de pixel em relagao ao local de pixel "k". 0 local de pixel "e" tern simetria de pixel em relagao aos locais de pixel "g", "m", e "o". 0 sombreamento mostrado na FIG. 7 demonstra essa simetria de pixel, por exemplo, com sombreamento de pixel comum correspondente a locais que sao simetricos com relagao a outras localizagoes de pixel. Neste caso, os coeficientes de oito localizagoes de pixel (em conjunto com aspectos de simetria de pixel) podem definir os coeficientes para todas as quinze localizagoes de pixel. Alem disso, dentro de um determinado conjunto de coeficientes, a simetria de coeficiente pode existir de tal forma que apenas um subconjunto dos coeficientes, naquele conjunto de coeficientes, precisa ser comunicado com o fluxo de bits.
O codificador de video 22 pode gerar dados de video codificados com base em dados preditivos interpolados, em que os dados preditivos interpolados compreendem quinze valores de um meio pel e um quarto de pel, em que o filtro de interpolagao define uma matriz bidimensional de doze posigoes de suporte de filtro que sao aplicadas para definir nove de quinze valores de meio pel e um quarto de pel. Gerar os dados de video codificados com base em dados preditivos interpolados pode ainda compreender a aplicagao de filtros de interpolagao lineares que definem matrizes unidimensionais de posigoes de suporte de filtro para seis dos quinze valores de meio pel e um quarto de pel.
A figura 8 e um diagrama conceitual ilustrando seis posigoes de suporte de pixel horizontal linear C1-C6 relatives a uma posigao de subpixel "b", com sombreamento que mostra a simetria de coeficiente. Neste caso, a simetria de coeficiente significa que apenas tres coeficientes de filtro sao necessaries para Cl, C2 e C3, a firn de definir o conjunto de coeficientes para posigoes de suporte de filtro C1-C6.Cl e simetrico com C6, C2 e simetrico com C5 e C3 e simetrico com C4. Assim, apenas tres coeficientes precisam ser comunicados como parte de um fluxo de bits de video codificados com o intuito de definir o conjunto de seis coeficientes necessaries para interpolar a posigao de subpixel "b."
A figura 9 e um diagrama conceitual ilustrando seis posigoes de suporte de pixel linear horizontal em relagao a um subpixel, com sombreamento que mostra uma falta de simetria de coeficiente. Assim, todos os seis coeficientes sao necessaries para definir o conjunto de coeficientes para suporte de filtro com relagao a posigao de subpixel "a" Como mencionado acima, no entanto, a simetria de pixel significa que esses mesmos coeficientes com relagao a posigao de subpixel "a" tambem podem ser utilizados para derivar o suporte de filtro para posigao de subpixel "c" (ver FIG. 7). Assim, apenas seis coeficientes precisam ser comunicados como parte de um fluxo de bits de video codificados com o intuito de definir dois conjuntos diferentes de seis coeficientes necessaries para interpolar a posigao de subpixel "a" e "c".
A figura 10 e um diagrama conceitual ilustrando seis posigoes de suporte de pixel linear vertical A3, B3, 03, D3, E3 e F3 em relagao a um subpixel "h", comsombreamento que mostra a simetria de coeficiente. Neste caso, a simetria de coeficiente significa que apenas tres coeficientes de filtro sao necessarios para a A3, B3 e C3, a fim de definir o conjunto de coeficientes para posigoes de suporte de filtro A3, B3, C3, D3, E3 e F3. A3 esimetrico com F3, B3 e simetrico com E3 e C3 e simetrico com D3. Assim, apenas tres coeficientes precisam ser comunicados como parte de um fluxo de bits de video codificados com o intuito de definir o conjunto de seis coeficientes necessarios para interpolar a posigao de subpixel "h."
A figura 11 e um diagrama conceitual ilustrando seis posigoes de suporte de pixel vertical linear em relagao a um subpixel, com sombreamento que mostra uma falta de simetria de coeficiente. Assim, todos os seis coeficientes sao necessarios para definir o conjunto de coeficientes para suporte de filtro com relagao a posigao de subpixel "d" Como mencionado acima, no entanto, a simetria de pixel significa que esses mesmos coeficientes com relagao a posigao de subpixel "d" tambem podem ser utilizados para derivar o suporte de filtro para posigao de subpixel "1" (ver FIG. 7). Assim, apenas seis coeficientes precisam ser comunicados como parte de um fluxo de bits de video codificados com o intuito de definir dois conjuntos diferentes de seis coeficientes necessarios para interpolar a posipao de subpixel "d" e "1".
A figura 12 e um diagrama conceitual ilustrando 12 posigoes de suporte de pixel bidimensional (posigoes de pixel inteiro apresentadas com letras maiusculas e sombreamento) relatives a uma posigao de subpixel "e." 0 sombreamento que mostra uma falta de simetria de coeficiente. Assim, todos os doze coeficientes sao necessarios para definir o conjunto de coeficientes para suporte de filtro com relagao a posigao de subpixel "e." Como mencionado acima, no entanto, a simetria de pixel significa que esses mesmos coeficientes em relagao a posigao de subpixel "e" tambem podem ser utilizados para derivar o suporte de filtro para as posigoes de subpixel "g", "m" e "o" (ver FIG. 7) . Portanto, 12 coeficientes definem o posigao de subpixel de suporte de filtro "e" e esses mesmos coeficientes podem ser usados para derivar o conjunto de coeficientes para as posigoes de subpixel "g", "m" e "o".
A figura 13 e um diagrama conceitual ilustrando 12 posigoes de suporte de pixel bidimensional (posigoes de pixel inteiro apresentadas com letras maiusculas) relatives a um subpixel "i", com sombreamento que mostra a simetria de coeficiente. Neste caso, a simetria de coeficiente significa que os coeficientes de filtro para posigoes de suporte de filtro B3, B4, C2, C3, C4 e C5 podem ser usados para definir os coeficientes de filtro para posigoes de suporte de filtro E3, E4, D2, D3, D4 e D5. B3 e simetrico com E3, B4 e simetrico com E4, C2 e simetrico com D2, C3 e simetrico com D3, C4 e simetrico com D4, e C5 e simetrico com D5. Assim, apenas seis coeficientes precisam ser comunicados como parte de um fluxo de bits de video codificados com o intuito de definir o conjunto de doze coeficientes necessaries para interpolar a posipao de subpixel "i". Alem disso, como mencionado acima, a posipao de subpixel "i" pode ter simetria de pixel com relapao a posipao de subpixel "k". Portanto, o mesmo subconjunto de seis coeficientes pode definir o conjunto inteiro de doze coeficientes de filtro para as posipoes de subpixel "i" e "k" .
A figura 14 e um diagrama conceitual ilustrando 12 posipoes de suporte de pixel bidimensional (posipoes de pixel inteiro apresentadas com letras maiusculas) relatives a um subpixel "f", com sombreamento que mostra a simetria de coeficiente. Neste caso, a simetria de coeficiente signifies que os coeficientes de filtro para posipoes de suporte de filtro D2, C2, B3, C3, D3 e E3 podem ser utilizados para definir os coeficientes de filtro para posipoes de suporte de filtro C5, D5, B4, C4, D4 e E4. C2 e simetrico com C5, D2 e simetrico com D5, B3 e simetrico com B4, C3 e simetrico com C4, D3 e simetrico com D4, E3 e simetrico com E4. Assim, apenas seis coeficientes precisam ser comunicados como parte de um fluxo de bits de video codificados com o intuito de definir o conjunto de doze coeficientes necessaries para interpolar a posipao de subpixel "f." Alem disso, como mencionado acima, a posipao de subpixel "f" pode ter simetria de pixel com relapao a posipao de subpixel "n" Portanto, o mesmo subconjunto de seis coeficientes pode definir o conjunto inteiro de doze coeficientes de filtro para as posipoes de subpixel "f" e "n".
A figura 15 e um diagrama conceitual ilustrando 12 posipoes de suporte de pixel bidimensional (posipoes de pixel inteiro apresentadas com letras maiusculas) relativas a um subpixel "j", com sombreamento que mostra a simetria de coeficiente. Neste caso, a simetria de coeficiente significa que apenas tres coeficientes de filtro sao necessarios para C2, B3 e C3, a firn de definir o conjunto de doze coeficientes para as posipoes de suporte de filtro B3, D2 B4, C2, C3, C4, 05, D3, D4, D5, E3 e E4. C3 e simetrico com C4, D3 e D4, C2 e simetrico com D2, C5 e E4, e B3 e simetrico com B4, E3 e D5. Assim, apenas tres coeficientes precisam ser comunicados como parte de um fluxo de bits de video codificados com o intuito de definir o conjunto de doze coeficientes necessarios para interpolar a posipao de subpixel "j".
A figura 16 e um diagrama de blocos ilustrando um exemplo de um decodificador de video, que pode decodificar uma sequencia de video que e codificada na forma aqui descrita. 0 decodificador de video 60 e um exemplo de um dispositivo ou aparelho de computador de video especializado mencionado neste documento como um "codificador". 0 decodificador de video 60 inclui uma unidade de decodificapao de entropia 52, que decodifica por entropia o fluxo de bit recebido para gerar coeficientes quantizados e os elementos de sintaxe de predipao. Os elementos de sintaxe de predipao podem incluir um modo de codificapao, um ou mais vetores de movimento, informapao que identifica um uso de tecnica de interpolapao para gerar os dados de subpixel, os coeficientes para uso em filtragem de interpolapao e/ou outras informapoes associadas com a gerapao do bloco de predipao.
Os elementos de sintaxe de predipao, por exemplo, os coeficientes, sao encaminhados para unidade de predipao 55. Se a predipao e utilizada para codificar os coeficientes relatives aos coeficientes de um filtro fixo, ou um em relapao ao outro, unidade de quantizapao e predipao de coeficiente inversa 53 podem decodificar os elementos de sintaxe para definir os coeficientes reais. Alem disso, se a quantizapao e aplicada a qualquer uma da sintaxe de predipao, unidade de quantizapao e predipao de coeficiente inversa 53 tambem podem remover tal quantizapao. Os coeficientes Filer, por exemplo, podem ser preditivamente codificados e quantizados de acordo com esta divulgagao, e neste caso, a predipao do coeficiente e a unidade de quantizapao inversa 53 podem ser usadas pelo decodificador de video 60 para preditivamente decodificar e dequantizar esses coeficientes.
Unidade de predipao 55 pode gerar dados preditivos com base na elementos de sintaxe predipao e um ou mais blocos previamente decodificados que sao armazenados na memoria 62, da mesma maneira como descrito em detalhes acima em relapao a unidade de predipao 32 de codificador de video 50. Em particular, a unidade de predipao 55 pode executar um ou mais das tecnicas de filtragem de interpolagao desta divulgagao durante compensagao de movimento para gerar um bloco de predipao com uma determinada precisao, tais como a precisao um quarto de pixel. Como tal, uma ou mais das tecnicas dessa divulgagao podem ser usadas pelo decodificador de video 60 na gerapao de um bloco de predipao. A unidade de predipao 55 pode incluir uma unidade de compensagao de movimento que compreende os filtros usados para tecnicas de interpolapao e filtragem tipo filtragem de interpolapao desta divulgagao. 0 componente de compensagao de movimento nao e mostrado na FIG. 16 para a simplicidade e facilidade de ilustrapao.
A unidade de quantizapao inversa 56 quantifica inversamente, ou seja, dequantifica os coeficientes quantizados. 0 processo de quantizapao inversa pode ser um processo definido para a decodificagao H.264.Unidade de transformada inversa 58 aplica uma transformada inversa, por exemplo, um DCT inverse ou processo de transformada inverso conceitualmente semelhante, para coeficientes de transformada para produzir blocos residuais no dominio de pixels. 0 somador 64 soma o bloqueio residual com o bloco de predigao correspondente gerado pela unidade de predigao 55 para formar uma versao reconstruida do bloco original codificado pelo codificador de video 50. Se desejado, um filtro de desbloqueio tambem pode ser aplicado para filtrar os blocos decodificados a firn de remover artefatos de desbloqueio. Os blocos de video decodificados sao entao armazenados em alojamento de quadro de referenda 62, que fornece blocos de referenda para compensagao de movimento posterior e tambem produz video decodificado para acionar o dispositivo de exibigao (tai como dispositivo 28 da FIG. 1) .
Tecnicas NS-AIF podem calcular os valores de pixels para as posigoes de subpixel 2D usando um filtro de interpolagao tendo suporte de filtro de 36 posigoes (ou seja, um suporte de filtro 6x6 2D). S-AIF usa posigoes de pixel inteiro separaveis como suporte de filtro para primeiro filtrar por interpolagao em uma diregao horizontal do que em uma dimensao vertical. D-AIF usa um filtro de interpolagao menos complexo para o calculo das posigoes de subpixel 2D do que NS-AIF. No D-AIF as posigoes de subpixel 2D sao calculadas utilizando um filtro de interpolagao, com um suporte de filtro de 6 posigoes ou uma suporte de filtro diagonal de 12 posigoes.
Uma desvantagem de usar o suporte de filtro diagonal como em D-AIF e que as posigoes de pixel inteiro usadas na filtragem estao longe da posigao atual a ser interpolada. Como a distancia entre a posigao atual a ser interpolada e as posipoes dos pixels utilizados como suporte de filtro aumenta, diminui a correlapao espacial de pixel. Como tai, o suporte de filtro diagonal usado em D- AIF e menos adequado para a formagao de uma predipao precisa.
A firn de proporcionar uma melhor predipao usando pixels com maior correlapao com a posipao a ser interpolada (ou seja, as posipoes de pixels que estao mais perto ou em menor distancia entre a posipao a ser interpolada) , mantendo a mesma complexidade baixa oferecida pela D-AIF, com o suporte de filtro de 12 posipoes mostrado na FIG. 4 podem ser usados para a interpolapao. As posipoes de pixel inteiro utilizados no suporte de filtro de 12 posipoes descrito nesta divulgapao incluem as quatro posipoes de pixel inteiro em torno das posipoes de subpixel, isto e, posipoes de pixel inteiro C3, C4, D3 e D4, que podem ser referidas como o posipoes de pixel inteiro de "canto" como eles estao localizados perto dos cantos das posipoes de subpixel 2D. Alem das posipoes de pixel inteiro de canto, uma ou mais posipoes de pixel inteiro imediatamente adjacentes a posipao de pixel inteiro de canto tambem podem ser usadas no suporte de filtro. As posipoes de pixel inteiro imediatamente adjacentes a posipao de pixel inteiro de canto podem incluir posipoes de pixel inteiro acima (para o norte ou superior) ou diretamente abaixo (na parte inferior ou sul) as posipoes de pixel inteiro de canto, assim como posigoes de pixel inteiro diretamente a esquerda (ou oeste) ou diretamente a direita (ou leste) das posipoes de pixel inteiro de canto. No exemplo ilustrado na FIG. 4, o suporte de filtro de 12 posipoes pode incluir localizagoes de pixel inteiro B3, B4, C2, C3, C4, C5, D2, D3, D4, D5, E3 e E4. Todas estas posigoes de pixel inteiro estao localizadas dentro de duas posigoes de pixel inteiro do subpixel a ser interpolado.
O suporte de filtro de acordo com as tecnicas dessa divulgapao pode, no entanto, incluir outras localizapoes de pixel inteiro.Por exemplo, o suporte de filtro pode incluir localizapoes de pixel inteiro que estao localizados dentro de tres posipoes de pixel inteiro da posipao de subpixel a ser interpolada que forma uma forma radial.
Mesmo posipoes de um quarto de pixel ou resolupao mais fina podem ser interpoladas com base nas posipoes de pixel inteiro localizado dentro de pelo menos duas posipoes de pixel inteiro. Desta forma, as tecnicas de suporte de filtro dessa divulgapao fornecem uma predipao de interpolapao melhor usando pixels inteiros com maior correlapao com a posipao a ser interpolada, mantendo a mesma complexidade baixa oferecida pela D-AIF.
Como descrito acima, a simetria de subpixel pode aplicar o mesmo conjunto de coeficientes de filtro (e as versoes espelhadas, invertidas e/ou giradas do conjunto) para um grupo de uma ou mais posipoes de subpixel.Usar um processo analitico, tal como aquele na equapao (5) pode ser usado para derivar coeficientes de filtro de interpolapao para todas as posipoes de subpixel, por exemplo, quinze posipoes de subpixel no caso de precisao de um quarto de pixel. Analise de correlapao entre os quinze conjuntos de coeficientes de filtro de interpolapao revela uma correlapao relativamente forte entre os coeficientes de filtro de posipoes de subpixel (ambos posipoes de subpixel
Por exemplo, pode haver uma alta correlapao entre os coeficientes de filtro para as posipoes de subpixel "a" e "c", que sao ambos na dimensao horizontal. Como outro exemplo, pode haver uma alta correlapao entre os coeficientes de filtro para as posipoes de subpixel "d" e "1", que sao ambos na dimensao vertical. No entanto, pode haver pouca, ou nenhuma, correlapao entre os coeficientes de filtro para as posipoes de subpixel "a", posipao que esta na dimensao horizontal, e subpixel "d", que esta na dimensao vertical. Com base nessas observapoes das correlapoes, a simetria de subpixel pode ser concebida de tai que a simetria de subpixel para os coeficientes de filtro de posipoes de subpixel em dimensoes diagonals nao e imposta. Isto leva a oito conjuntos de coeficientes, conforme aqui descrito, que pode ser mais conjuntos do que o necessario para alguns processes convencionais. Ao eliminar a simetria de pixel diagonal em algumas localizapoes de pixel, como aqui descrito, codificapao de video e compressao pode ser melhorada.
Mais uma vez, FIG. 7 mostra as posigoes de pixels com os mesmos sombreamentos (ou eclosdes) que pertencem a um grupo de posipoes de subpixel que tern simetria de subpixel. Em particular, as posipoes de subpixel "a" e "c" formam um primeiro grupo de simetria de subpixel, posipoes de subpixel "d" e "1" formam um segundo grupo de simetria de subpixel, posipoes de subpixel "e", "g" ,"m", e "o" formam um terceiro grupo de simetria de subpixel, posigoes de subpixel "f" e "n" formam um quarto grupo de simetria de subpixel e posipoes de subpixel "i" e "k" formam um quinto grupo de simetria de subpixel. Posipoes de subpixel "b", aos seus proprios grupos, um sexto, setimo e oitavo grupo, respectivamente. Cada grupo de coeficientes (que pode ser subconjuntos devido a simetria de coeficiente) pode ser comunicado imediatamente por unidade codificada, ou, eventualmente, varias vezes por unidade codificada se diferentes tipos de filtragem forem definidos para diferentes areas ou caracteristicas de uma unidade codificada.Coeficientes para filtragem tipo interpolagao de pel inteiro tambem.podem ser enviados uma ou varias vezes por unidade codificada.
No NS-AIF e D-AIF simetria de subpixel existe entre as posigoes de subpixel na mesma dimensao, por exemplo, duas posigoes de subpixel na dimensao vertical ou duas posigoes de subpixel na dimensao horizontal. Em alguns NS-AIF e AIF-D convencionais, tambem existe simetria diagonal entre as posigoes de subpixel em diferentes dimensbes. Por exemplo, a simetria de subpixel existe entre a posigao de subpixel "a" na dimensao vertical e a posigao de subpixel "d" na diregao horizontal em alguns NS-AIF e AIF-D convencionais. Com simetria de subpixel em dimensoes horizontais, verticals e diagonals, apenas cinco unicos conjuntos de coeficientes de filtro de interpolagao podem ser utilizados para a precisao de um quarto de pixel.
Para alguns tipos de S-AIF, por outro lado, a simetria de subpixel existe entre as posigoes de subpixel na diregao vertical (ou dimensao), mas nao as posigoes de subpixel na dimensao horizontal. Em outras palavras, a simetria de subpixel nem sempre existe para as posigoes de subpixel na mesma dimensao. A simetria de subpixel tambem nao existe nas dimensoes diagonals. A simetria de alguns esquemas S-AIF, portanto, exige mais conjuntos de coeficientes de interpolagao.Em particular, para a precisao de um quarto de pixel, alguns sistemas S-AIF exigem onze conjuntos exclusivos de coeficientes de interpolagao.
O esquema de simetria de subpixel descrito nesta divulgagao, e ilustrado na FIG. 7, pode resultar em mais uma predigao rigorosa do que a simetria de subpixel descrita acima para alguns tipos de NS-AIF e D-AIF. Em particular, o esquema de simetria de subpixel da FIG. 7 impoe simetria de subpixel em uma dimensao (por exemplo, na diregao horizontal ou na vertical), mas nao impoe a simetria de subpixel, simultaneamente, em duas dimensoes (por exemplo, na diagonal).
Ao nao impor simetria de subpixel para as posigoes de subpixel na diagonal, a fraca correlagao entre os coeficientes de filtro de interpolagao e as posigoes de subpixel em dimensoes diferentes nao esta integrada na interpolagao. Embora mais conjuntos de coeficientes de interpolagao possam ser necessarios (por exemplo, oito em vez de cinco), os dados preditivos interpolados resultantes podem ser mais precisos.Simetria de coeficiente diagonal tambem pode ser evitada ou eliminada, em grande parte da mesma maneira.
A unidade de predigao 32 pode tambem impor simetria de coeficiente, conforme descrito acima. Em particular, a simetria de coeficiente e imposta aos coeficientes de filtro em uma dimensao (por exemplo, a diregao horizontal ou vertical), mas nao para ambas as dimensoes de uma forma diagonal. Por exemplo, os coeficientes de filtro para a posigao de subpixel "e" nao sao forgados a serem diagonalmente simetricos como no esquema NS-AIF descrito, representado na equagao (11) . A simetria de coeficiente e resumida a seguir nas equagoes (17) - (21) .
Figure img0009
hb=hb,hb=hb,hb=hb (17)7^=^=^^=^ (18)hftJ =hf3^, for i,J = 0.,3 (19)hlJ^^.J,fori,j = Q..3 (20)Hj=hb-j= hL,j = hL,.-j ,&ri,j = 0...3 (21)
Note-se que para as posipoes de subpixel "f", "i" e "j", alguns coeficientes de filtro, ou seja, \o = “0,3 = "3,0 = sa° iguais a zero nos casos em que o filtro de 12 posipoes descrito em detalhes com relapao a FIG. 4 pode ser usado. Como tai, a simetria de subpixel e coeficiente descrito nesta divulgagao podem ser usados em conjunto ou separadamente, a partir das tecnicas de suporte de filtro. Quando usados em conjunto com o suporte de filtro de 12 posipoes descrito na FIG. 4, ha 6 (a) + 3 (b) + 6 (d) + 3 (h) + 12 (e) + 6 (f) + 6 (i) + 3 = 45 coeficientes exclusivos para essas posipoes de subpixel que precisam ser enviadas para o decodificador, ou seja, seis coeficientes para o grupo, incluindo a posigao de subpixel "a", 3 coeficientes para o grupo, incluindo a posigao de subpixel "b", 6 coeficientes para o grupo, incluindo a posipao de subpixel "d", 3 coeficientes para o grupo, incluindo a posipao de subpixel "h", 12 coeficientes para o grupo, incluindo a posipao de subpixel "e" 6 coeficientes para o grupo, incluindo a posipao de subpixel "f", 6 coeficientes para o grupo, incluindo a posipao de subpixel "i", e 3 coeficientes para o grupo, incluindo a posipao de subpixel "j".
A figura 17 e um fluxograma ilustrando uma operapao exemplar de um codificador de video que utiliza um suporte de filtro de doze pixels de acordo com esta divulgagao. A tecnica da FIG. 17 sera descrita a partir da perspective de codificador de video 50 da FIG. 2, embora outros dispositivos possam executar tecnicas similares. Como foi mostrado, na FIG. 17, a unidade MC 37 da unidade de predipao 32 obtem um bloco de pixels a partir da memoria 34, que inclui os valores de pixel inteiro correspondentes a posipoes de pixel inteiro (171). Filtro 39 calcula os valores de subpixel com base em um suporte de filtro que tern doze ou mais posipoes que circundam as posipoes de subpixel (172). Conforme explicado com mais detalhe, o suporte de doze posipoes de filtro pode ser usado para gerar nove das quinze interpolapbes de subpixel possiveis, enquanto filtragem linear horizontal e linear vertical pode ser usada para gerar seis das quinze possiveis interpolapbes de subpixel.
A unidade MC 37, em seguida, gera um bloco de predipao com base nos valores calculados de subpixel (173). Em particular a unidade de MC 37 pode gerar e emitir um bloco de predipao interpolado compreendendo valores interpolados de subpixel. 0 Somador 48 pode codificar um bloco de video atual com base no bloco de predipao interpolado (174), por exemplo, subtraindo o bloco de predipao interpolado dos blocos de video a serem codificados para gerar um bloco residual. 0 bloco residual pode entao ser transformado e quantizer pela unidade de transformada 38 e unidade de quantizapao 40, respectivamente. Apos a codificapao de entropia pela unidade de codificapao de entropia 46, o codificador de video 50 pode emitir o fluxo de bit de video codificado em informapbes de filtro (175). As informapbes de filtro, como descritas aqui, podem incluir oito conjuntos de coeficientes utilizado,s para gerar os quinze conjuntos de coeficientes para quinze posipoes de sub-pel. As informapoes de filtro podem ser emitidas uma vez por unidade codificada, ou, eventualmente, varias vezes por unidade codificada, se diferentes areas de uma unidade codificada utilizar diferentes tipos de interpolagao de sub-pel.
A figura 18 e um fluxograma ilustrando uma operapao exemplar de um decodificador de video que utiliza um suporte de filtro de doze pixels de acordo com esta divulgapao. Assim, o processo da FIG. 18 pode ser considerado o processo de decodificapao reciproca para o processo de codificapao da FIG. 17. A figura 18 sera descrita a partir da perspective de decodificador de video 60 da FIG. 16, embora outros dispositivos possam executar tecnicas similares. Como mostrado na FIG. 18, o decodificador de video 60 recebe um blocos de video codificado e informapoes de filtro (181). A unidade de decodificapao de entropia 52 pode decodificar por entropia essa informapao recebida.A unidade de predipao 55 realiza compensagao de movimento intercalado de acordo com tecnicas de divulgapao das informapoes.Em particular, a unidade de predipao 55 obtem um bloco de pixels da memoria 62, que inclui os valores de pixels inteiros correspondentes a posipoes de pixels inteiros (182). A unidade de predipao 55 pode usar vetores de movimento recebidos para determinar como fazer interpolapao. Com base nos vetores de movimento, uma unidade de predipao 55 pode calcular subpixel com base em um suporte de filtro que inclui doze ou mais posipoes que circundam as posipoes de subpixel (183). Desta forma, a unidade de predipao 55 usa a interpolapao para gerar o bloco de predipao (184). 0 bloco de predipao pode ser usado para decodificar um bloco de video residual invocando somador 64 para adicionar o bloco de predipao ao bloco residual (185). Os varios aspectos de interpolapao descritos neste documento, incluindo o uso de um suporte de filtro de doze posipoes que envolve as posipoes de subpixel em forma radial, pode melhorar a codificapao de video, proporcionando uma melhor qualidade de interpolapao de dados do que as tecnicas convencionais.
A figura 19 e um fluxograma ilustrando uma operagao exemplar de um codificador de video que utiliza a simetria de coeficiente e simetria de pixel de acordo com esta divulgapao. A tecnica da FIG. 19 sera descrita a partir da perspectiva de codificador de video 50 da FIG. 2, embora outros dispositivos possam executar tecnicas similares. Como foi mostrado, na FIG. 19, a unidade de predipao 32 de codificador de video 50 define oito conjuntos de coeficientes de filtro de quinze posipoes de subpixel com base na simetria de coeficiente e simetria de pixel, como descrito aqui (201) . Em particular, a unidade de predipao 32 pode usar simetria de pixel para reduzir o conjunto de coeficientes de quinze para oito, e pode reduzir ainda mais o numero de coeficientes para alguns ou todos os oito conjuntos com base na simetria de coeficiente entre os coeficientes dos conjuntos dados. A unidade de predipao 32 pode entao codificar dados de video usando filtros de interpolapao (como filtro 39) e os oito conjuntos de coeficientes de filtro (202). 0 codificador de video 50 pode emitir dados de video codificados e os oito conjuntos de coeficientes de filtro (203) . Os oito conjuntos de coeficientes, que sao codificados e emitidos no fluxo de bits, podem ser enviados a cada unidade codificada (por exemplo, cada quadro ou fatia) de modo que um dispositivo de decodificapao pode ser informado dos coeficientes de filtro a serem usados para a interpolapao. Alternativamente, os diferentes grupos de oito conjuntos de coeficientes podem ser codificados e enviados com cada unidade codificada para permitir diferentes tipos de interpolapoes em diferentes locais dentro de uma unidade codificada.
A figura 20 e um fluxograma ilustrando umaoperapao exemplar de um decodificador de video que utiliza a simetria de coeficiente e simetria de pixel de acordo com esta divulgapao. Neste caso, a unidade de predipao 55 do decodificador de video 60 recebe oito conjuntos de 10 coeficientes de filtro (191), e gera os quinze conjuntos de coeficientes de filtro com base nos oito conjuntos, na simetria de coeficiente e simetria de pixel. Unidade de predipao 60 pode entao programar os seus filtros de interpolapao e aplicar filtros de interpolapao, a firn de 15 gerar corretamente os dados preditivos interpolados (193) .
Decodificador de video 60 pode decodificar os blocos de video com base nos dados preditivos (194), por exemplo, invocando o somador 64 para adicionar dados preditivos corretos interpolados pela unidade de predipao 55 e um 20 bloco residual a ser decodificado.
A figura 21 e um fluxograma ilustrando uma operapao exemplar de um codificador de video que utiliza a filtragem de localizagoes de pixel inteiro para gerar os valores de pixel inteiro ajustados de acordo com esta 25 divulgapao. Isso e discutido acima, como filtragem tipo interpolapao na medida em que e semelhante a interpolapbes, mas nao gera valores de sub-inteiro. Pelo contrario, este processo gera novos valores inteiros que sao filtrados com base no valor inteiro original e outros valores inteiros 30 que cercam o valor inteiro original.
A figura 21 sera descrita a partir da perspectiva de codificador de video 50 da FIG. 2, embora outros dispositivos possam executar tecnicas similares. Como foi mostrado, na FIG. 21, a unidade MC 37 da unidade de predigao 32 obtem um bloco de pixels da memoria 34, que inclui valores de pixel inteiro correspondentes a localizapoes de pixel inteiro (211). Filtro 39 da unidade de predipao 32 filtra os valores de pixel inteiro com base em outros valores de pixel inteiros do bloco de pixels para gerar valores de pixel inteiros ajustados (212). Unidade de predipao 32 gera um bloco de predipao com base nos valores de pixel inteiro ajustados (213), e o codificador de video 50 codifica um bloco de video com base no bloco de predipao (214), por exemplo, invocando somador 48 para subtrair o bloco de predipao do bloco de video que esta sendo codificado para gerar um bloco residual. Na sequencia, transformagao e quantificagao do bloco residual pela unidade de transformada 38 uma unidade de quantizagao 40, e seguindo codificagao de entropia pela unidade de codificagao de entropia 46, o codificador de video 50 emite o bloco de video codificado e informagoes de filtro (215). Tai como acontece com interpolagao de sub-pel, a filtragem tipo interpolagao em relagao a localizapoes de pixel inteiro pode envoiver a produgao e comunicagao da informagao de filtro uma vez por unidade codificada, ou, eventualmente varias vezes por unidade codificada, se diferentes areas de uma unidade codificada utilizarem diferentes tipos de filtragem inteira tipo interpolagao.
A figura 22 e um fluxograma ilustrando uma operapao exemplar de um decodificador de video que utiliza a filtragem de localizapoes de pixel inteiro para gerar os valores de pixel inteiro ajustados de acordo com esta divulgagao. Unidade de predigao 55 do decodificador de video codificados 60 recebe blocos video, e tambem recebe informagoes de filtro (por exemplo, uma vez por unidade codificada) (221). Unidade de predigao 55 obtem um bloco de pixels da memoria 62, que incluem os valores de pixel inteiro correspondentes a posipoes de pixels inteiro (222). Unidade de predipao 55 invoca um filtro (nao mostrado), como parte da compensapao de movimento para filtrar pixel inteiro com base em outros valores de pixel inteiros do bloco de pixels ajustado para gerar valores de pixel inteiro (223) . Unidade de predipao 55 gera um bloco de predipao com base nos valores de pixel inteiro ajustados (224). Decodificador de video 60 pode decodificar os blocos de video baseado no exemplo de bloco de predipao, invocando somador 64 para adicionar o bloco preditivo interpolado por unidade de predipao 55 de um bloco de video residual a ser decodificado (225).
A figura 23 e um fluxograma que ilustra uma tecnica para a interpolapao definida por distorpao de taxa para codificapao de video com base em dois conjuntos de filtros candidates. Neste caso, Unidade de MC 37 da unidade de predipao 32 pode gerar dois ou mais conjuntos diferentes de dados preditivos, um conjunto com base no primeiro conjunto de filtros de interpolapao candidato e outro conjunto com base no segundo conjunto de filtros de interpolapao candidato. Unidade MC 37 pode entao usar uma analise baseada em taxa de distorpao a firn de selecionar qual filtro de interpolapao ira produzir os melhores resultados a partir da perspectiva da taxa e distorpao. Desta forma, a unidade MC 37 nao considera apenas que o conjunto de dados preditivos trara os melhores resultados (ou seja, o minimo de distorpao), mas tambem ira ter fator no fato de que um conjunto de filtros candidato pode requerer menos overhead de bits a firn de transmitir seus coeficientes de filtro para o decodificador.
Como mostrado na FIG. 23, a unidade MC 37 da unidade de predipao 32 gera primeiros dados preditivos interpolados para a codificapao de dados de video com base em um primeiro filtro de interpolapao (231). 0 primeiro filtro de interpolapao, em um exemplo, dispoe de um filtro de interpolapao fixo correspondente a um filtro definido por um padrao de codificapao de video em particular, como um filtro que corresponde a um filtro de interpolapao ITU-T H.264. Para maior precisao, em alguns casos, o filtro de interpolapao fixo pode corresponder a um filtro de interpolapao ITU-T H.264 sem arredondamento dos valores intermediaries de meio pixel que sao usados para gerar valores de um quarto de pixel. Neste caso, o filtro de interpolagao fixo pode gerar valores de meio pixel e pode arredondar para cima tais valores para fins de interpolapao para a resolupao de meio pixel. No entanto, na medida em que tais valores de meio pixel tambem serao usados para a interpolapao para a resolupao de um quarto de pixel, a unidade MC 37 pode armazenar versoes nao-arredondadas dos valores de meio pixel e usar as versoes nao-arredondadas de valores de meio pixel para qualquer interpolapao para a resolupao de um quarto de pixel. Pedido de Patente U.S. Co- pendente e comumente atribuido n° de serie , depositado por Karczewicz et al, e intitulado "ADVANCED INTERPOLATION TECHNIQUES FOR MOTION COMPENSATION IN VIDEO CODING" portando o numero de procurator 081399U1, que foi depositado no mesmo dia que o presente pedido, e que e aqui incorporado por referenda, fornece muitos detalhes adicionais sobre filtragem de interpolapao sem arredondamento dos valores intermediaries de meio pixel que sao usados para gerar valores de um quarto de pixel.
Em seguida, a unidade de MC 37 da unidade de predipao 32 gera segundos dados preditivos interpolados para codificapao de video dos dados de video com base em um segundo filtro de interpolapao (232). Em um exemplo, o segundo filtro de interpolagao pode incluir um filtro de interpolagao adaptativo. Neste caso, de acordo com a interpolagao adaptativa, unidade MC 37 pode definir os coeficientes de filtro a serem utilizados. Em particular unidade de MC 37 pode executar um processo de interpolagao adaptativa em que Unidade de MC 37 comega com os coeficientes de filtro pre-ajustado, gera dados preliminares de predigao, e depois ajusta os coeficientes de filtro em um processo de adaptagao, de modo que esses coeficientes de filtro definem dados preditivos mais desej ados.
Quando a unidade MC 37 da unidade de predigao 32 tern gerado tanto os primeiros quanto os segundos dados preditivos interpolados, a unidade de MC 37 pode escolher entre os primeiros dados preditivos interpolados e os segundos dados preditivos interpolados, com base em uma analise de taxa de distorgao (233). Desta forma, a unidade MC 37 nao considera apenas que o conjunto de dados preditivos trara os melhores resultados (ou seja, o minimo de distorgao), mas unidade de MC 37 tambem fatora nas quantidades de dados diferentes (isto e, as taxas de bits diferentes) que serao necessarias para o primeiro filtro de interpolagao em relagao ao segundo filtro de interpolagao. Nomeadamente, se o filtro de interpolagao fixo e usado (por exemplo, como o primeiro filtro de interpolagao), codificador de video 50 nao tera que codificar os coeficientes de filtro no fluxo de bits, enquanto que se o filtro de interpolagao adaptativo e usado (por exemplo, como o segundo filtro de interpolagao) o codificador de video 50 tera que codificar os coeficientes de filtro. Assim, a analise de taxa de distorgao pode determinar o que conjunto de dados preditivos trara os melhores resultados (ou seja, o custo minimo de distorgao de taxa), levando em consideragao o fato de que o uso do filtro de interpolagao fixo nao exige bits adicionais para transmitir os coeficientes de filtro para o decodificador.
Mais especificamente, a selegao entre os primeiros dados preditivos interpolados e os segundos dados preditivos interpolados com base em uma analise de taxa de distorgao (233) pode incluir um calculo de um primeiro custo de distorgao associado aos dados de video, se os dados de video sao codificados atraves dos primeiros dados preditivos interpolados, calcular o segundo custo de distorgao associado aos dados de video, se os dados de video sao codificados atraves dos segundos dados preditivos interpolados, e escolher entre os primeiros dados preditivos interpolados e os segundos dados preditivos interpolados com base nos primeiro e segundo custos de taxa de distorgao.
O custo de taxa de distorgao associado aos dados de video, se os dados de video forem codificados atraves dos primeiros dados preditivos interpolados podem incluir uma primeira diferenga metrica, por exemplo, o erro medio quadrado (MSE) de valores de pixels ou a soma da diferenga absoluta (SAD) de valores de pixels ou a soma da diferenga ao quadrado (SSD) de valores de pixels indicativos de diferengas entre os dados de video e os primeiros dados interpolados preditivos, alem de um primeiro valor que quantifica os custos associados com a codificagao de coeficientes de filtro. Neste caso, se o primeiro filtro de interpolagao e um filtro de interpolagao fixo, o primeiro valor que quantifica o custo pode ser definido como zero. Da mesma forma, o segundo custo de distorgao pode incluir uma segunda diferenga de metrica indicativa de diferengas entre os dados de video e os segundos dados preditivos interpolados (MSE, SAD ou SSD) , alem de um segundo valor que quantifies os custos associados com a codificagao de coeficientes de filtro. No caso de segundo filtro de interpolagao ser um filtro de interpolagao adaptativo, o segundo valor que quantifica os custos associados com a codificagao de coeficientes de filtro pode incluir o numero de bits (r) necessario para codificar os coeficientes de filtro de interpolagao adaptativa, ou possivelmente este numero (r) multiplicado por um multiplicador de Lagrange (A) .
Depois de selecionar entre os primeiros dados preditivos interpolados e os segundos dados preditivos interpolados com base em uma analise de taxa de distorgao (233), Unidade de MC 37 da unidade de predigao 32 codifica os dados de video com base na selegao (234), e codifica a sintaxe para indicar a selegao (235). A sintaxe pode incluir um sinalizador de um bit ou um sinalizador de multi-bit que define se o primeiro filtro de interpolagao ou o segundo filtro de interpolagao deve ser usado por um decodificador. 0 processo da FIG. 23 pode ser repetido para cada um de uma pluralidade de locais de subpixel para cada unidade codificada de uma sequencia de video para indicar se o primeiro filtro de interpolagao ou o segundo filtro de interpolagao deve ser usado por um decodificador para cada um da pluralidade de locais de subpixel.Os locais de subpixel podem incluir quinze possiveis localizagoes de subpixel com interpolagao consistente para a resolugao de um quarto de pixel, ou podem incluir um numero diferente de locais de subpixel. O processo da FIG. 23 pode tambem ser repetido para a localizagao de pixel inteiro para cada unidade codificada de uma sequencia de video para indicar se o primeiro filtro de interpolagao ou o segundo filtro de interpolagao deve ser usado por um decodificador para a localizagao de pixel inteiro.
Uma vez que codificador de video 50 (fig. 2), codifica os dados de video com base na selegao (234), e a codifica a sintaxe para indicar a selegao (235), modem 23 e transmissor 24 (FIG. 1) podem modular e transmitir os dados de video codificados e a sintaxe para o dispositivo de destino 17. No caso do primeiro filtro de interpolagao ser fixo e o segundo filtro de interpolagao ser adaptavel, o transmissor 24 pode transmitir os coeficientes de filtro quando a sintaxe indicar que os segundos dados preditivos interpolados foram utilizados para gerar os dados de video codificados, mas nao pode transmitir os coeficientes de filtro quando a sintaxe indicar que os primeiros dados preditivos interpolados foram utilizados para gerar os dados de video codificados. Desta forma, quando o primeiro filtro de interpolagao e fixo e o segundo filtro de interpolagao e adaptativo, os coeficientes de filtro sao enviados apenas se a sintaxe indicar que a filtragem de interpolagao adaptativa foi utilizada, e a decisao se deve ou nao usar filtragem de interpolagao adaptativa considera nao apenas a qualidade de video preditiva, mas tambem a taxa de bits, que e afetada pela presenga de coeficientes de filtro no fluxo de bits transmitido. Em outros exemplos, no entanto, os primeiro e segundo filtros de interpolagao podem ser fixos ou podem ambos ser adaptaveis.
As tecnicas dessa divulgagao podem ser aplicadas em muitos cenarios, incluindo cenarios quando ha mais de dois conjuntos de filtros a serem selecionados pelo codificador. Em outras palavras, os filtros de interpolagao adicionais tambem podem ser aplicados para gerar mais dados preditivos interpolados, que tambem podem ser considerados na analise de taxa de distorgao. Em outras palavras, o metodo nao se limita apenas a geragao de primeiros e segundos dados preditivos interpolados com base em dois filtros de interpolagao, mas poderia ser aplicado para gerar uma pluralidade de dados preditivos interpolados com base em qualquer numero de filtros de interpolapao. Mais importante ainda, uma analise de taxa de distorpao de dados preditivos interpolados e usada para identificar a escolha do filtro. Em um exemplo, um metodo executado pelo codificador de video 50 pode incluir gerar uma pluralidade de versoes diferentes de dados preditivos para a codificapao de dados de video com base em uma pluralidade de filtros de interpolapao diferente, selecionar entre a pluralidade de versoes diferentes de dados preditivos com base em uma taxa analise de distorpao, codificar dados de video com base na selepao, e a codificar sintaxe para indicar a selepao.
Alem de selecionar a filtro de interpolapao com base em uma analise de taxa de distorpao e gerar sintaxe para indicar a selepao, a unidade de MC 37 da unidade de predipao 32 tambem pode realizar uma analise similar de taxa de distorpao em relapao filtragem de pixel inteiro que e explicada em detalhes acima. Em particular a unidade de MC 37 da unidade de predipao 32 pode gerar dois ou mais conjuntos diferentes de dados preditivos para as localizapoes de pixel inteiro, por exemplo, um com filtragem de pixel inteiro e um sem filtragem de pixel inteiro, e pode realizar uma analise de taxa de distorpao em relapao a estes dois conjuntos diferentes, a firn de determinar se a filtragem de pixel inteiro e desejada. Assim, a unidade de MC 37 da unidade de predipao 32 pode gerar um outro element© de sintaxe com base em uma analise de taxa de distorpao associada com dois diferentes conjuntos de dados preditivos inteiro para indicar se filtragem de pixel deve ser aplicada a unidade codificada, em que um primeiro conjunto de dados preditivos inteiro nao e filtrado e um segundo conjunto de dados preditivos inteiro e filtrado. Desta forma, a decisao de realizar filtragem de pixel inteiro pode ser baseada nao apenas na qualidade de codificagao de video, mas tambem no overhead de bit possiveis associados com filtragem de pixel, especialmente quando filtragem de pixel inteiro implicaria na codificagao e envio de coeficientes de filtro de pixel inteiro usado para executar tai filtragem de pixel inteiro. Filtragem inteira pode tambem considerar N filtros inteiro (por exemplo, onde N e qualquer numero inteiro positivo e plural) . Consistente com o uso de N filtros inteiros, no exemplo acima corresponde ao caso em que N e um e dois dos filtros nao aplicar qualquer filtragem.
Sempre que os coeficientes de filtro de interpolagao forem realmente codificados e enviados a partir do dispositivo de origem 12 para o dispositivo de destino 16, esta divulgagao tambem contempla tecnicas para codificagao de interpolagao de coeficientes de filtro. A codificagao descrita para os coeficientes de filtro pode melhorar a compressao de dados.Em particular, esta divulgagao contempla tecnicas de predigao para os coeficientes de filtro, por exemplo, em relagao aos coeficientes de filtro fixos.Alem disso, esta divulgagao contempla tecnicas de predigao para um segundo conjunto de coeficientes de filtro em relagao ao primeiro conjunto de coeficientes de filtro.Nestes modos, a simetria imperfeita entre os diferentes coeficientes de filtro pode ser explorada para permitir a compressao de dados. Alem da utilizagao de tecnicas de predigao para tais coeficientes de filtro de interpolagao, esta divulgagao tambem prove tecnicas de quantizagao uteis e codificagao de entropia dos coeficientes de filtro de interpolagao com base em codificagao de prefixo e sufixo. A discussao a seguir fornece mais detalhes sobre estes aspectos dessa divulgagao.
A figura 24 e um fluxograma que ilustra uma tecnica para a codificagao de coeficientes de filtro usando codificagao preditiva. Neste caso, os coeficientes de filtro usados pelo codificador de video 50 podem ser preditivamente codificados em relagao aos coeficientes de filtro de um filtro fixo, que pode melhorar a compressao de dados, quando os coeficientes de filtro sao enviados como parte de um fluxo continue de dados codificados.
Como mostrado na FIG. 24, a unidade MC 37 da unidade de predigao 32 identifica um conjunto de coeficientes de filtro para interpolagao de dados preditivos de codificagao de video (241) .Por exemplo, a Unidade MC 37 pode identificar o conjunto de coeficientes de filtro atraves da realizagao de um processo de filtragem por interpolagao adaptativa. Neste caso, a unidade de MC 37 pode determinar o conjunto de coeficientes de filtro atraves do processo de filtragem por interpolagao adaptativa e gerar os dados preditivos com base nos coeficientes de filtro identificados no processo de filtragem por interpolagao adaptativa. Na filtragem por interpolagao adaptativa, conforme explicado em maiores detalhes aqui, a unidade MC 37 pode realizar uma abordagem de duas passagens em que os dados preditivos sao gerados com base em um filtro fixo, e, em seguida, os coeficientes de filtro sao ajustados de modo que os dados preditivos sao feitos para serem mais parecidos com os dados de video a serem codificados. Os coeficientes de filtro ajustado, em seguida, definem os coeficientes de filtros que sao usados e codificados no fluxo de bits.
A firn de codificar os coeficientes de filtro para que tais coeficientes de filtro possam ser transmitidos como parte de um fluxo de bits, a unidade de quantizapao e predipao de coeficiente 41 pode gerar valores residuals associados com o conjunto de coeficientes de filtro com base em codificapao preditiva do conjunto de coeficientes de filtro relativos aos coeficientes de filtro associados a um filtro de interpolapao fixo (242). Em particular, a unidade de quantizapao e predipao de coeficiente 41 pode subtrair os coeficientes de filtro determinados no processo de filtragem por interpolapao adaptativa a partir de coeficientes de filtro correspondentes associados com um filtro fixo, tal como um filtro de interpolapao H.264 ITU- T, ou um filtro de interpolapao ITU-T H.264 sem arredondamento intermediario dos valores de meio pixel. Por codificapao e transmissao de valores residuais, ao inves de transmitir os coeficientes de filtro real, a quantidade de dados transmitidos no fluxo de bits pode ser reduzida. Neste caso, o decodificador pode ser programado para saber a maneira na qual os coeficientes de filtro sao codificados.
O codificador de video 50 pode invocar a unidade de quantizapao e predipao de coeficiente 41 tanto para prover quanto quantificar os coeficientes residuais e a unidade de codificapao de entropia 46 pode codificar por entropia os residues quantizados (243). 0 codificador de video 50 pode, entao, emitir valores residuais, como parte do fluxo de bits codificado (244). A quantificapao dos valores residuais associados aos coeficientes de filtro pode envoiver quantizapao dos valores residuais, em que pelo menos alguns dos valores residuais associados com diferentes coeficientes de filtro sao atribuidos a diferentes niveis de quantizapao.Desta forma, a unidade de quantizapao e predipao de coeficiente 41 pode atribuir mais quantizapao para maiores coeficientes residuais, e pode atribuir menos quantizaqao para coeficientes residuals mais finos, a firn de alcangar um equilibrio desejavel de quantificagao e precisao.Quando mais quantizagao e utilizada, mais dados sao eliminados, e mais compressao pode ser alcangada.A unidade de codificapao por entropia 46 pode codificar por entropia os valores residuals atraves da atribuigao de um codigo de prefixo, atribuindo um codigo de sufixo e atribuindo um valor de sinal para os valores residuals apos a quantizagao dos valores residuals. 0 codificador de video 50 pode, entao, emitir valores residuals, como parte do fluxo de bits codificado (244).
A figura 27 e um grafico conceitual ilustrando alguns coeficientes de filtro ilustrativos que podem ser preditivamente codificados.Neste caso, os coeficientes de filtro 01, 02, 03 e 04 podem definir os coeficientes de filtro associados com um filtro de interpolagao fixo. Os coeficientes de filtro XI, X2, X3 e X4 podem definir os coeficientes de filtro desejados, que podem ser bastante semelhantes aos do filtro de interpolagao fixo. Assim, os coeficientes de filtro XI, X2, X3 e X4 podem ser previstos com base em coeficientes de filtro 01, 02, 03 e 04, respectivamente. Em particular, um primeiro residual pode ser formado como a diferenga entre XI e 01. Da mesma forma, um segundo residual pode ser formado como a diferenga entre X2 e 02, um terceiro residual pode ser formado como a diferenga entre X3 e 03, e um quarto residual pode ser formado como a diferenga entre X4 e 04. 0s residues podem confer menos dados do que os coeficientes de filtro originals, promovendo assim a compressao de dados.
Em alguns casos, o conjunto de coeficientes de filtro compreende um primeiro conjunto de coeficientes de filtro que define apenas uma parte de todo um conjunto de coeficientes de filtro associado com um filtro de interpolagao adaptativa, em que um segundo conjunto de coeficientes de filtro pode ser determinado por um decodificador com base no primeiro conjunto de coeficientes de filtro e simetria de coeficiente. Por exemplo, os coeficientes de filtro XI e X2 podem ser preditivamente codificados com base em 01 e 02, respectivamente. Neste caso, porem, X3 e X4 podem ser simetricos com XI e X2 e o decodificador pode ser programado para saber que essa simetria e imposta. Assim, atraves do uso de simetria, coeficientes X3 e X4 neste exemplo simples, podem ser eliminados do fluxo de bits, e podem ser calculados no decodificador com base na simetria de coeficiente, uma vez que os coeficientes XI e X2 sao preditivamente decodificados.
A figura 25 e um outro diagrama que ilustra uma tecnica para a codificagao de coeficientes de filtro usando codificagao preditiva.Neste caso, porem, dois tipos diferentes de predigao sao usados. Como mostrado na FIG. 25, unidade MC 37 da unidade de predigao 32 identifica um conjunto de coeficientes de filtro para interpolagao de dados preditivos de codificagao de video (251) . Tai como acontece com o processo da FIG. 24, na FIG. 25, a unidade MC 37 pode identificar o conjunto de coeficientes de filtro atraves da realizagao de um processo de filtragem de interpolagao adaptativa. Neste caso, a unidade de MC 37 pode determinar o conjunto de coeficientes de filtro atraves do processo de filtragem de interpolagao adaptativa e gerar os dados preditivos com base nos coeficientes de filtro identificados no processo de filtragem por interpolagao adaptativa. Na filtragem por interpolagao adaptativa, a unidade MC 37 pode realizar uma abordagem de duas passagens em que os dados preditivos sao gerados com base em um filtro fixo, e, em seguida, os coeficientes de filtro sao ajustados de modo que os dados preditivos sao feitos para serem mais semelhantes aos dados de video a serem codificados. Os coeficientes de filtro ajustados, em seguida, definem os coeficientes de filtro que sao usados e codificados no fluxo de bits.
A firn de codificar os coeficientes de filtro para que tais coeficientes de filtro possam ser transmitidos como parte de um fluxo de bits, o unidade de quantizagao e predigao de coeficiente 41 pode gerar um primeiro conjunto de valores residuais associados com um primeiro conjunto de coeficientes de filtro com base em codificagao preditiva em relagao aos coeficientes de filtro associados a um filtro de interpolagao fixo (252) . Em particular, a unidade de quantizagao e predigao de coeficiente 41 pode subtrair o primeiro conjunto de coeficientes de filtro dos coeficientes de filtro correspondentes associados com um filtro fixo, tal como um filtro de interpolagao H.264 ITU- T, ou um filtro de interpolagao ITU-T H.264 sem arredondamento intermediario dos valores de meio pixel. Depois, a unidade de quantizagao e predigao de coeficiente 41 pode gerar um segundo conjunto de valores residuais associados a um segundo conjunto de coeficientes de filtro com base em codificagao preditiva em relagao ao primeiro conjunto de coeficientes de filtro (253). Em particular, a unidade de quantizagao e predigao de coeficiente 41 pode subtrair o segundo conjunto de coeficientes de filtro dos valores espelhados ou girados do primeiro conjunto de coeficientes. Assim, o primeiro conjunto de coeficientes e preditivamente codificado com base nos coeficientes de um filtro fixo, e o segundo conjunto de coeficientes e preditivamente codificado com base no primeiro conjunto de coeficientes. Ao gerar valores residuais em vez de usar os coeficientes de filtro reais, a quantidade de dados transmitidos no fluxo de bits pode ser reduzida. Alem disso, usar o filtro fixo para predizer o primeiro conjunto de coeficientes e, em seguida, utilizar o primeiro conjunto de coeficientes para predizer o segundo conjunto de coeficientes, compressao de dados adicionais pode ser alcangada em relagao a predigao que depende exclusivamente do filtro fixo.
Tai como acontece com o processo da FIG. 24, na FIG. 25, o codificador de video 50 pode invocar a unidade de quantizagao e predigao de coeficiente 41 tanto para preditivamente codificar quanto para quantizer os coeficientes residuals, e a unidade de codificagao de entropia 46 pode codificar por entropia os residues quantizados (254) . 0 codificador de video 50 pode, entao, emitir valores residuais, como parte do fluxo de bits codificado (254). Novamente, a quantificagao de valores residuais associados aos coeficientes de filtro pode envoiver quantizer os valores residuais, em que pelo menos alguns dos valores residuais associados com diferentes coeficientes de filtro sao atribuidos a diferentes niveis de quantizagao.Desta forma, a unidade de quantizagao e predigao de coeficiente 41 pode atribuir mais quantizagao para maiores coeficientes residuais, e pode atribuir menos quantizagao para coeficientes residuais mais finos, a firn de alcangar um equilibrio desejavel de quantificagao e precisao.A unidade de codificagao por entropia 46 pode codificar por entropia os valores residuais atraves da atribuigao de um codigo de prefixo, atribuindo um codigo de sufixo e atribuindo um valor de sinal para os valores residuais apos a quantizagao dos valores residuais. 0 codificador de video 50 pode, entao, emitir valores residuais, como parte do fluxo de bits codificado (255).
A figura 28 e um grafico conceitual ilustrando alguns coeficientes de filtro ilustrativos que podem ser preditivamente codificados de acordo com o processo da FIG. 25.Neste caso, os coeficientes de filtro 01 e 02 podem definir os coeficientes de filtro associados com um filtro de interpolagao fixo. Os coeficientes de filtro XI e X2 podem definir um primeiro conjunto de coeficientes de filtro desejado, que pode ser bastante semelhantes aos do filtro de interpolagao fixo. Assim, os coeficientes de filtro XI e X2 podem ser previstos com base em coeficientes de filtro 01 e 02, respectivamente. Em particular, um primeiro residual pode ser formado como a diferenga entre XI e 01, e um segundo residual pode ser formado como a diferenga entre X2 e 02. Os residues podem confer menos dados do que os coeficientes de filtro originals, promovendo assim a compressao de dados. Os residues sao entao quantizados pela unidade de quantizagao e predigao de coeficiente 41 e codificados por entropia pela unidade de codificagao por entropia 46.X} e X2 podem se referir a coeficientes de filtro modificados que sao gerados pela adigao dos residues dequantizados para os coeficientes de filtro de predigao 01 e 02.
Em seguida, um segundo conjunto de coeficientes de filtro Z1 e Z2 pode ser preditivamente codificado com base no primeiro conjunto de coeficientes de XI e X2, por exemplo, especificamente a partir dos coeficientes Xl e X2 , que sao definidos com base nos coeficientes Xl e X2. Em particular, um terceiro residual pode ser formado como a diferenga entre Z1 e Xx, e um quarto residual pode ser formado como a diferenga entre Z2 e X2 . Xx e X2 podem ser mais semelhantes a Z1 e Z2 que 01 e 02 e, portanto, usar X] e X2 para preditivamente codificar Z1 e Z2 compressao de dados adicionais pode ser promovida.
A figura 26 e um fluxograma que ilustra uma tecnica para a decodificagao de coeficientes de filtro usando codificagao preditiva. FIG. 26 sera descrita a partir da perspective do decodificador de video 60 da FIG. 16. Como mostrado, o decodificador de video 60 recede valores residuais associados a um conjunto de coeficientes de filtro (261) . 0 decodificador de video 60 pode decodificar por entropia os valores residuais atraves da unidade de decodificagao de entropia 52, e pode invocar a unidade de quantizagao inversa e predigao de coeficiente 53 para dequantizar os valores residuais (262), que sao depois enviados para a unidade de predigao 55. A unidade de predigao 56 gera o conjunto de coeficientes de filtro usando decodificagao de predigao dos valores residuais (263) .
Em particular, a unidade de predigao 56 pode gerar todo o conjunto de coeficientes de filtro com base nos valores residuais e nos coeficientes de filtro associados com um filtro de interpolagao fixo, por exemplo, como conceitualmente ilustrados na FIG. 27 e, acima referidos no contexto de codificagao. Em alguns casos, um primeiro conjunto de coeficientes de filtro pode ser gerado com base nos valores residuais e nos coeficientes de filtro associados com um filtro de interpolagao fixo, e um segundo conjunto de coeficientes de filtro pode ser gerado com base na simetria. Em outros casos, um primeiro conjunto de coeficientes de filtro pode ser gerado com base nos valores residuais e nos coeficientes de filtro associados com um filtro de interpolagao fixo, e um segundo conjunto de coeficientes de filtro pode ser gerado com base em valores adicionais residuais e no primeiro conjunto de coeficientes de filtro, por exemplo, como conceitualmente ilustrado na FIG. 28 e, acima referido no contexto de codificagao. Em qualquer caso, a unidade de predigao 56 do decodificador de video 60 aplica o conjunto de coeficientes de filtro para interpolar dados preditivos utilizados para decodificagao preditiva de blocos de video (264). Em particular, a unidade de predigao 56 filtra dados para gerar dados preditivos interpolados usando os coeficientes de filtro preditivamente decodificados de modo que os blocos de video possam ser decodif icados com base em tais dados interpolados preditivos.
Mais uma vez, o conjunto de coeficientes de filtro preditivamente decodificados pode incluir um primeiro conjunto de coeficientes de filtro que define apenas uma parte de todo um conjunto de coeficientes de filtro associados com um filtro de interpolagao adaptativa. Neste caso, a unidade de quantizagao inversa e predigao de coeficiente 53 do decodificador de video 60 pode gerar um segundo conjunto de coeficientes de filtro com base no primeiro conjunto de coeficientes de filtro e da simetria de coeficiente, e aplicar os primeiro e segundo conjuntos de coeficientes de filtro para interpolar os dados preditivos.
Em outro caso, o conjunto de coeficientes de filtro preditivamente decodificados pode incluir um primeiro conjunto de coeficientes de filtro que define apenas uma parte de todo um conjunto de coeficientes de filtro associados com um filtro de interpolagao adaptativo. Neste caso, o decodificador de video 60 pode receber os valores residuais associados com todo o conjunto de coeficientes de filtro. A unidade de quantizagao inversa e predigao de coeficiente 53 pode gerar um segundo conjunto de coeficientes de filtro usando decodificagao preditiva com base em valores adicionais residuais e no primeiro conjunto de coeficientes de filtro, e a unidade de predigao 55 pode aplicar os primeiro e segundo conjuntos de coeficientes de filtro para interpolar os dados preditivos.
Em alguns casos, filtros de interpolagao fixos com base em filtros H.264/AVC podem ser usados para prever os filtros 1-D (que podem incluir filtros para as posigoes de subpixel a, b, d, h mostradas nas Figs. 8, 9, 10 e 11). Para os filtros 2-D, que incluem filtros para as posigoes de subpixel, f, i, e j das figs. 12, 13, 14 e 15, um dos esquemas de predigao pode ser utilizado:1. Definir predigao para zero (sem predigao), XC) = °' sp e<e' f' i' I*2. Usar uma predigao de filtro fixo, tai como o filtro medio agrupado em um conjunto de treinamento, isto e, = hfj, SP e {e, f, i, j}, onde e o (ij)-esimo coeficiente de filtro no filtro medio para a posigao de subpixel SP.3. Explorar a simetria possivel nos coeficientes e usar os coeficientes ja codificados para predizer os coeficientes restantes.
Para os filtros 1-D, qualquer um destes tres metodos de predigao pode ser aplicado.
Para predigao, a FIG. 29 fornece um exemplo de uma matriz de coeficientes de filtro de pixel inteiro para os quais as tecnicas de predigao podem ser utilizadas para codificagao.Neste exemplo, pode-se supor que nenhuma simetria e imposta ao filtro de pixel inteiro. Coeficientes (h0,0), (h0,l), (hl,0), (hl,l), (h2,0), (h2,l) (h0,2), (hl,2) e (h2,2) podem ser quantizados e codificados primeiro. Em seguida, os coeficientes ja codificados superiores esquerdos (h0,0), (h0,l), (hl,0), (hl,l) e (h2,0) podem ser usados para prever os coeficientes superiores direitos (h0,3), (hl,3), (h2,3), (h0,4), (hl,4) e (h2,4). Em seguida, uma vez que a metade superior dos coeficientes de filtro (h0,0), (h0,l), (h0,2), (h0,3), (h0,4), (hl,0) (hl,l), (hl,2), (hl,3) e (hl,4) e quantizada e codificada, ela pode continuar a ser utilizada para prever a metade inferior dos coeficientes de filtro (h3,0), (h3,l), (h3,2), (h3,3), (h3,4), (h4,0), (h4,l), (h4,2), (h4,3) e (h4,4). Predipao de outros coeficientes de filtro pode ser feita de forma semelhante. Por exemplo, para o filtro da posipao de subpixel "e" (ver FIG. 12), que pode ter alguma simetria diagonal, os coeficientes superiores direitos podem ser quantizados e codificados primeiro, e entao usados para prever os coeficientes inferiores esquerdos.
De qualquer forma, depois da predipao dos coeficientes (por exemplo, unidade de quantizapao e predipao de coeficiente 41 da unidade de predipao 32), erros de predigao sao quantificados (por exemplo, unidade de quantizapao e predipao de coeficiente 41).Como descrito acima, a chamada "quantizapao irregular" pode ser utilizada. Neste caso, a precisao da quantizapao aplicada pela unidade de quantizapao e predipao de coeficiente 41 pode depender da localizapao do coeficiente. Foi constatado que nos coeficientes com menor magnitude (que geralmente sao os coeficientes mais longe do centre do filtro) melhor precisao pode ser desejavel. Em contrapartida, em coeficientes com maior magnitude (que geralmente sao os coeficientes mais perto do centre do filtro) menos precisao e mais desejavel.
As seguintes matrizes, Q1D, Q2D, QFP, podem ser utilizadas pela unidade de quantizapao e predipao de coeficiente 41 para especificar a precisao de quantizapaopara coeficientes nos filtros de ID, nos filtros 2D, e nofiltro de pixel inteiro, respectivamente. Note que osnumeros de bits dados nas matrixes podem incluir 1 bit paracodificar o sinal dos respectivos coeficientes.
Figure img0010
QFP0 10 10 O’ 10 9 9 10 10 9 9 10 0 10 10 0 11 11 11 11 1111 10 10 10 1111 10 9 10 1111 10 10 10 1111 11 11 11 110lfl=[12 11 9 9 11 12]
A unidade de quantizagao e predipao decoeficiente 41 pode codificar os erros de predipao de coeficiente quantizado, ou seja, os residues decoeficiente, com base em um esquema de codificagao deprefixosimples. Em primeiro lugar, o alcance dinamico da magnitude do erro de predipao e dividido em N faixas, por exemplo, N = 6. Se o alcance dinamico da magnitude for [0,..., 2q-1 -1], onde q e a precisao de quantizagao para a posipao de coeficiente dada, (tai como especificado nas matrizes acima) , entao cada faixa n, n = 0, ... Nl, pode estender as seguintes faixas:
Figure img0011
Neste caso, a faixa b, b = 0, ..., Nl, a qual a magnitude de entrada m pertence, pode ser codificada usando um codigo de prefixo unario (que leva b + 1 bits) . Em seguida, o restante da magnitude, m-binicio, pode ser codificada usando o codigo de sufixo de comprimento fixo de (q - N + b-1) bits. Finalmente, o sinal do erro de predipao e codificado usando 1 bit.
Por exemplo, para o centre do coeficiente no filtro ID, 9 bits de precisao podem ser utilizados pela unidade de quantizapao e predipao de coeficiente 41 para quantizer erro de predipao, ou seja, q = 9, dos quais 8 bits podem ser usados para quantizer o erro de magnitude. Se a magnitude de erro for 97, entao ela cai dentro da 4° faixa, ou seja, b = 4. Portanto, o codigo prefixo de unario "11110" pode ser codificado para indicar a 4° faixa, e o restante de m-biniCiO = 97 - 64 = 33 pode ser codificado usando um codigo de sufixo de comprimento fixo de (q - N + b-1) = (9 - 6 + 4 - 1) =6 bits. Finalmente, um bit "0" pode ser codificado para indicar o sinal positive.
As tecnicas dessa divulgapao podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um telefone sem fio, e um circuito integrado (CI) ou um conjunto de ICs (isto e, um conjunto de chips). Quaisquer componentes, modulos ou unidades foram descritos para enfatizar os aspectos funcionais e nao implicam necessariamente na realizapao de exigencies por unidades de hardware diferentes.
Assim, as tecnicas descritas neste documento podem ser implementadas em hardware, software, firmware, ou qualquer combinapao dos mesmos.Se .implementadas em hardware, todas as caracteristicas descritas como modulos, unidades ou componentes podem ser implementadas juntas em um dispositivo logico integrado, ou separadamente como dispositivos logicos discretes interoperaveis. Se implementadas em software, as tecnicas podem ser realizadas pelo menos em parte por um meio legivel por computador compreendendo instrupoes que quando executadas em um processador executam um ou mais dos metodos descritos acima.0 meio legivel por computador pode incluir um meio de armazenamento legivel por computador e pode formar parte de um produto de programa de computador, que pode incluir materials de empacotamento. O meio de armazenamento legivel por computador pode compreender memoria de acesso aleatorio (RAM) tai como memoria de acesso aleatorio dinamica sincrona (SDRAM), memoria somente para leitura (ROM), memoria de acesso aleatorio nao volatil (NVRAM) , memoria programavel somente para leitura eletricamente apagavel (EEPROM), memoria flash, meios de armazenamento de dados magneticos ou opticos, e assim por diante. As tecnicas adicional ou alternativamente podem ser realizadas pelo menos em parte por um meio de comunicagao legivel por computador que porta ou comunica codigo na forma de instrugoes ou estruturas de dados e que pode ser acessado, lido e/ou executado por um computador.
O codigo pode ser executado por um ou mais processadores, tai como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, um circuito integrado de aplicagao especifica (ASIC), arranjos logicos programaveis em campo (FPGA), ou outros conjuntos de circuito logicos integrados ou discretes equivalentes. Assim, o termo "processador", utilizado aqui pode se referir a qualquer uma das estruturas acima ou a qualquer outra estrutura adequada para a aplicagao das tecnicas descritas neste documento. Alem disso, em alguns aspectos, a funcionalidade descrita neste documento pode ser fornecida dentro de modules de software dedicados ou modules de hardware configurados para codificagao e decodificagao, ou incorporada em um codec de video combinado. Alem disso, as tecnicas poderiam ser plenamente implementadas em um ou mais circuitos ou elementos de logica.aspectos da divulgagao foram descritos.aspectos estao dentro do escopo das seguir.

Claims (9)

1. Metodo para realizar um processo de compensagao de movimento durante codificagao ou decodificagao de um bloco de video dentro de uma unidade codificada de uma sequencia de video, o metodo compreendendo: obter blocos de pixels a partir de uma ou mais unidades de video de referência no processo de compensação de movimento, em que os blocos de pixels compreendem blocos de referência reconstruídos que foram previamente decodificados e incluem valores de pixel inteiro correspondentes a posições de pixel inteiro dentro dos blocos de pixels; aplicar filtragem a um valor de pixel inteiro com base em outros valores de pixel inteiro dentro dos blocos de pixels e um valor de pixel inteiro original do valor de pixel inteiro para gerar um valor de pixel inteiro ajustado, em que o valor de pixel inteiro ajustado correspondem a uma posição de pixel inteiro circundada por outras posições de pixel inteiro às quais os outros valores de pixel inteiro correspondem, e gerar um bloco de predição no processo de compensação de movimento durante a codificação ou decodificação do bloco de video com base pelo menos em parte no valor de pixel inteiro ajustado; o método caracterizado pelo fato de que um filtro 4 4 de interpolação 5x5 na forma de pFP=∑4i=0∑4j=0Pi,jhi,jFP+OFP é usado i=0 j=0 para filtrar o pixel inteiro, em que pFP é o valor de pixel inteiro ajustado, Pi,j é o valor de pixel inteiro na posição (i, j), hFPi,j é o coeficiente para posição (i, j), e oFP é um deslocamento de filtro.
2. Metodo, de acordo com a reinvindicação 1, caracterizado pelo fato de que o metodo e realizado durante um processo de codificapao, o metodo compreendendo adicionalmente gerar um bloco de video residual como uma diferenpa entre um bloco de video atual sendo codificado e o bloco de predipao.
3. Metodo, de acordo com a reinvindicação 1, caracterizado pelo fato de que o metodo e realizado durante um processo de codificapao, o metodo compreendendo adicionalmente codificar um conjunto de coeficientes de filtro por unidade codificada para filtragem de inteiro.
4. Metodo, de acordo com a reinvindicação 1, caracterizado pelo fato de que o metodo e realizado durante um processo de decodificapao, o metodo compreendendo adicionalmente gerar um bloco de video reconstruido como uma soma de um bloco de video residual associado a um bloco de video atual sendo decodificado e o bloco de predipao.
5. Metodo, de acordo com a reinvindicação 1, caracterizado pelo fato de que o metodo e realizado durante um processo de decodificapao, o metodo compreendendo adicionalmente receber um conjunto de coeficientes de filtro por unidade codificada para filtragem de inteiro.
6. Dispositivo que realiza um processo de compensapao de movimento durante codificapao ou decodificapao de um bloco de video dentro de uma unidade codificada de uma sequencia de video, o dispositivo compreendendo:meios para obter blocos de pixels a partir de uma ou mais unidades de video de referenda no processo de compensapao de movimento, em que os blocos de pixels compreendem blocos de referenda reconstruidos que foram previamente decodificados e incluem valores de pixel inteiro correspondentes a posigoes de pixel inteiro dentro dos blocos de pixels;meios para aplicar filtragem a um valor de pixel inteiro com base em outros valores de pixel inteiro dentro dos blocos de pixels e um valor de pixel inteiro original do valor de pixel inteiro para gerar um valor de pixel inteiro ajustado, em que o valor de pixel inteiro ajustado correspondem a uma posigao de pixel inteiro circundada por outras posigoes de pixel inteiro as quais os outros valores de pixel inteiro correspondem, emeios para gerar um bloco de predigao no processo de compensagao de movimento durante a codificagao ou decodif icagao do bloco de video com base pelo menos em parte no valor de pixel inteiro ajustado;o metodo caracterizado pelo fato de que um filtro4 4pp V 1 _ pp ppde interpolagao 5x5 na forma de pFP=∑4i=0∑4j=0Pi,jhi,jFP+OFP e usado 1=0 j=0para filtrar o pixel inteiro, em que pFP e o valor de pixel inteiro ajustado, P±,j e o valor de pixel inteiro na posigao (i, j), hFPi,j e o coeficiente para posigao (i, j), e oFP e um deslocamento de filtro.
7. Dispositivo, de acordo com a reinvindicação 6, caracterizado pelo fato de que o dispositivo realiza um processo de codificagao, o dispositivo compreendendo meios para gerar um bloco de video residual como uma diferenga entre um bloco de video atual sendo codificado e o bloco de predigao.
8. Dispositivo, de acordo com a reinvindicação 6, caracterizado pelo fato de que o dispositivo realiza um processo de decodificagao, o dispositivo compreendendo adicionalmente meios para gerar um bloco de videoreconstruido como uma soma do bloco de video residual associado com um bloco de video atual sendo decodificado e o bloco de predigao.
9. Memoria caracterizada pelo fato de que compreende instruqoes armazenadas na mesma, as instruqoes 5 sendo executadas por um computador para realizar o metodo conforme definido em qualquer uma das reivindicaqoes 1 a 5.
BRPI0910638-3A 2008-04-10 2009-04-10 Filtragem semelhante a interpolaqao de posiqoes de pixel inteiro em codificaqao de video BRPI0910638B1 (pt)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US4402308P 2008-04-10 2008-04-10
US4402008P 2008-04-10 2008-04-10
US61/044,023 2008-04-10
US61/044,020 2008-04-10
US4424008P 2008-04-11 2008-04-11
US61/044,240 2008-04-11
US5737308P 2008-05-30 2008-05-30
US61/057,373 2008-05-30
US12/420,292 US9077971B2 (en) 2008-04-10 2009-04-08 Interpolation-like filtering of integer-pixel positions in video coding
US12/420,292 2009-04-08
PCT/US2009/040270 WO2009126929A1 (en) 2008-04-10 2009-04-10 Interpolation-like filtering of integer-pixel positions in video coding

Publications (2)

Publication Number Publication Date
BRPI0910638A2 BRPI0910638A2 (pt) 2016-08-02
BRPI0910638B1 true BRPI0910638B1 (pt) 2020-11-24

Family

ID=40755172

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0910638-3A BRPI0910638B1 (pt) 2008-04-10 2009-04-10 Filtragem semelhante a interpolaqao de posiqoes de pixel inteiro em codificaqao de video

Country Status (15)

Country Link
US (1) US9077971B2 (pt)
EP (2) EP2827593B1 (pt)
JP (1) JP5575747B2 (pt)
KR (1) KR101214021B1 (pt)
CN (1) CN102017631B (pt)
BR (1) BRPI0910638B1 (pt)
CA (1) CA2719404C (pt)
DK (1) DK2827593T3 (pt)
ES (1) ES2633476T3 (pt)
HU (1) HUE033226T2 (pt)
PL (1) PL2827593T3 (pt)
PT (1) PT2827593T (pt)
SI (1) SI2827593T1 (pt)
TW (1) TWI523528B (pt)
WO (1) WO2009126929A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967590B2 (en) 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
US8705622B2 (en) * 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
US8462842B2 (en) * 2008-04-10 2013-06-11 Qualcomm, Incorporated Symmetry for interpolation filtering of sub-pixel positions in video coding
KR101773012B1 (ko) * 2009-12-31 2017-08-30 톰슨 라이센싱 비디오 인코딩 및 디코딩을 위해 적응형 결합된 전처리 및 후처리 필터들을 위한 방법들 및 장치
US9219921B2 (en) 2010-04-12 2015-12-22 Qualcomm Incorporated Mixed tap filters
TWI399971B (zh) * 2010-07-28 2013-06-21 Vatics Inc 降低數位影像雜訊的方法及其電子裝置
US10045046B2 (en) * 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
US9172972B2 (en) 2011-01-05 2015-10-27 Qualcomm Incorporated Low complexity interpolation filtering with adaptive tap size
CN107295341B (zh) 2011-07-22 2020-02-28 Sk电信有限公司 视频编码方法
US9357235B2 (en) * 2011-10-13 2016-05-31 Qualcomm Incorporated Sample adaptive offset merged with adaptive loop filter in video coding
KR20130050149A (ko) * 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
US9313498B2 (en) 2012-04-16 2016-04-12 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
US10200711B2 (en) 2015-03-27 2019-02-05 Qualcomm Incorporated Motion vector derivation in video coding
KR102357142B1 (ko) * 2017-11-07 2022-02-08 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩을 위한 인터 예측 장치 및 방법을 위한 보간 필터
CN113056909A (zh) 2018-12-31 2021-06-29 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
US12400119B2 (en) * 2021-11-16 2025-08-26 Samsung Electronics Co., Ltd. Learning method and system for object tracking based on hybrid neural network

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61210599A (ja) 1985-03-14 1986-09-18 Casio Comput Co Ltd 録音機能付電子機器
US6266373B1 (en) * 1998-06-15 2001-07-24 U.S. Philips Corporation Pixel data storage system for use in half-pel interpolation
JP3992419B2 (ja) * 2000-03-27 2007-10-17 パイオニア株式会社 情報再生装置
US6950469B2 (en) 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US7379501B2 (en) 2002-01-14 2008-05-27 Nokia Corporation Differential coding of interpolation filters
US7129962B1 (en) * 2002-03-25 2006-10-31 Matrox Graphics Inc. Efficient video processing method and system
US7305034B2 (en) 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
JP2005532725A (ja) 2002-07-09 2005-10-27 ノキア コーポレイション ビデオ符号化における内挿フィルタタイプの選択方法および選択システム
KR20050018948A (ko) 2002-07-09 2005-02-28 노키아 코포레이션 비디오 부호화에서 보간 필터 유형을 선택하기 위한 방법및 장치
JP4724351B2 (ja) 2002-07-15 2011-07-13 三菱電機株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置
US20040012610A1 (en) * 2002-07-22 2004-01-22 Taneja Nimita J. Anti-aliasing interlaced video formats for large kernel convolution
KR100472476B1 (ko) * 2002-08-31 2005-03-10 삼성전자주식회사 움직임 보상을 위한 보간 방법 및 그 장치
KR100534207B1 (ko) * 2002-12-09 2005-12-08 삼성전자주식회사 비디오 부호화기의 움직임 추정기 및 그 방법
JP2004297768A (ja) * 2003-03-10 2004-10-21 Mitsubishi Electric Corp 映像信号符号化装置、および映像信号符号化方法
EP1603338A4 (en) 2003-03-10 2007-12-05 Mitsubishi Electric Corp APPARATUS AND METHOD FOR VIDEO SIGNAL CODING
RU2305377C2 (ru) 2003-05-20 2007-08-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ уменьшения искажения сжатого видеоизображения и устройство для его реализации
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
CN1294490C (zh) 2003-12-31 2007-01-10 宏碁股份有限公司 智能卡与终端机间的数据处理方法及数据处理系统
EP1578137A2 (en) * 2004-03-17 2005-09-21 Matsushita Electric Industrial Co., Ltd. Moving picture coding apparatus with multistep interpolation process
US8284835B2 (en) * 2004-04-21 2012-10-09 Panasonic Corporation Motion compensating apparatus
JP2005318297A (ja) 2004-04-28 2005-11-10 Toshiba Corp 動画像符号化・復号方法及び装置
KR100605105B1 (ko) 2004-05-28 2006-07-26 삼성전자주식회사 영상 보간 장치
EP1617672A1 (en) 2004-07-13 2006-01-18 Matsushita Electric Industrial Co., Ltd. Motion estimator/compensator including a 16-bit 1/8 pel interpolation filter
EP1641274B1 (en) 2004-09-23 2013-06-05 Panasonic Corporation Video coding employing an image de-graining loop-filter
JP4284265B2 (ja) * 2004-11-02 2009-06-24 株式会社東芝 動画像符号化装置、動画像符号化方法、動画像復号化装置および動画像復号化方法
US7653132B2 (en) * 2004-12-21 2010-01-26 Stmicroelectronics, Inc. Method and system for fast implementation of subpixel interpolation
JP2008536414A (ja) 2005-04-13 2008-09-04 ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー ビデオの拡張された符号化方法及び装置
US7778494B2 (en) * 2005-10-13 2010-08-17 Texas Instruments Incorporated FIR-based interpolation in advanced video codecs on VLIW processor
KR100754841B1 (ko) 2005-10-28 2007-09-04 경희대학교 산학협력단 비트율 왜곡 비용에 기초하여 선택된 보간 필터를 이용하여공간 계층간 예측을 수행하는 스케일러블 h.264부호화/복호화 방법
TWI444047B (zh) 2006-06-16 2014-07-01 Via Tech Inc 用於視訊解碼的去方塊效應濾波器、視訊解碼器與圖形處理單元
KR20080001116A (ko) 2006-06-29 2008-01-03 삼성전자주식회사 정착온도 제어 방법 및 장치와 화상형성장치
BRPI0714233A2 (pt) 2006-07-18 2013-01-15 Thomson Licensing mÉtodos e aparelho para filtragem de referÊncia adaptativa
TW200808067A (en) 2006-07-31 2008-02-01 Univ Nat Cheng Kung Prediction module
US8582663B2 (en) * 2006-08-08 2013-11-12 Core Wireless Licensing S.A.R.L. Method, device, and system for multiplexing of video streams
SG140508A1 (en) * 2006-08-31 2008-03-28 St Microelectronics Asia Multimode filter for de-blocking and de-ringing
EP2127391A2 (en) 2007-01-09 2009-12-02 Nokia Corporation Adaptive interpolation filters for video coding
US20090097545A1 (en) * 2007-10-14 2009-04-16 Nokia Corporation Fixed-Point Implementation of an Adaptive Image Filter with High Coding Efficiency
US8462842B2 (en) * 2008-04-10 2013-06-11 Qualcomm, Incorporated Symmetry for interpolation filtering of sub-pixel positions in video coding
US8705622B2 (en) * 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding

Also Published As

Publication number Publication date
CA2719404A1 (en) 2009-10-15
US20090257501A1 (en) 2009-10-15
KR101214021B1 (ko) 2012-12-20
EP2827593B1 (en) 2017-05-17
PL2827593T3 (pl) 2017-10-31
EP2304960A1 (en) 2011-04-06
TWI523528B (zh) 2016-02-21
US9077971B2 (en) 2015-07-07
WO2009126929A1 (en) 2009-10-15
JP5575747B2 (ja) 2014-08-20
JP2011517240A (ja) 2011-05-26
EP2827593A1 (en) 2015-01-21
BRPI0910638A2 (pt) 2016-08-02
CN102017631B (zh) 2013-05-01
DK2827593T3 (en) 2017-07-24
SI2827593T1 (sl) 2017-07-31
HUE033226T2 (hu) 2017-11-28
CA2719404C (en) 2013-07-30
PT2827593T (pt) 2017-07-24
TW201006252A (en) 2010-02-01
CN102017631A (zh) 2011-04-13
KR20100130643A (ko) 2010-12-13
ES2633476T3 (es) 2017-09-21

Similar Documents

Publication Publication Date Title
BRPI0910638B1 (pt) Filtragem semelhante a interpolaqao de posiqoes de pixel inteiro em codificaqao de video
US11683519B2 (en) Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
JP5619725B2 (ja) ビデオコーディングにおけるサブピクセル解像度のための補間フィルタサポート
JP5180366B2 (ja) ビデオコーディングにおけるサブピクセル位置の補間フィルタリングに対する対称性
KR101202632B1 (ko) 비디오 코딩에서의 보간을 위한 예측 기술
RU2477577C2 (ru) Подобная интерполяции фильтрация положений целочисленных пикселей при видеокодировании

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 19/523 (2014.01), H04N 19/117 (2014.01), H04N

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
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: 10 (DEZ) ANOS CONTADOS A PARTIR DE 24/11/2020, OBSERVADAS AS CONDICOES LEGAIS.