BR112013007563B1 - Filtro de intra suavização para codificação de vídeo - Google Patents
Filtro de intra suavização para codificação de vídeo Download PDFInfo
- Publication number
- BR112013007563B1 BR112013007563B1 BR112013007563-5A BR112013007563A BR112013007563B1 BR 112013007563 B1 BR112013007563 B1 BR 112013007563B1 BR 112013007563 A BR112013007563 A BR 112013007563A BR 112013007563 B1 BR112013007563 B1 BR 112013007563B1
- Authority
- BR
- Brazil
- Prior art keywords
- mode
- prediction
- encoding
- filter
- block
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
FILTRO DE INTRA SUAVIZAÇÃO PARA CODIFICAÇÃO DE VÍDEO Esta descrição refere-se a técnicas para reduzir a quantidade de dados adicionais codificados com um bloco codificado utilizando codificação intra preditiva. Especificamente, as técnicas proveem um equipamento e métodos para aplicar um filtro de suavização a amostras de predição utilizadas na codificação intra preditiva. Por exemplo, na codificação intra preditiva dependente de modo fixo, um codificador de vídeo pode determinar o tipo de filtro de suavização aplicado às amostras de predição com base em uma combinação de tamanho de bloco e modo de intra predição associada ao bloco atual, em que a combinação é utilizada para procurar um filtro em uma primeira tabela de filtros. Na codificação intra preditiva dependente de modo adaptativo, o codificador utiliza dois filtros, um da primeira tabela de filtros e o outro de uma segunda tabela de filtros, aplica ambos os filtros e determine que apresente melhores resultados, o codificador codifica uma indicação de filtragem. Quando um filtro da primeira tabela de filtros é utilizado, nenhuma indicação de filtragem é codificada.
Description
[0001] Esta descrição refere-se à codificação de vídeo e, mais especificamente, a codificação de vídeo com intra predição.
[0002] Capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de aparelhos, que inclui televisões digitais, sistemas de difusão direto digitais, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou de mesa, câmeras digitais, aparelhos de gravação digitais, tocadores de meios digitais, aparelhos para jogos de vídeo, consoles para jogos de vídeo, telefones celulares ou de rádio-satélite, aparelhos de teleconferência de vídeo e semelhantes. Aparelhos de vídeo digitais implementam técnicas de compactação de vídeo, tais como as descritas nos padrões definidos pelo MPEG-2, MPEG-4, ITU-T H.263 ou ITU-T H.264/MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC) e extensões de tais padrões, para transmitir e receber informações de vídeo digitais de maneira mais eficaz. Novos padrões de vídeo, tais como a Codificação de Vídeo de Alta Eficácia (HEVC), que é desenvolvida pela “Equipe de Colaboração Conjunta - Codificação de Vídeo” (JCTVC), que é uma colaboração entre o MPEG e o ITU-T, continuam a emergir e evoluir. Este novo padrão HEVC é às vezes referido como H.265.
[0003] As técnicas de compactação de vídeo efetuam predição espacial e/ou predição temporal para reduzir ou remover a redundância inerente a sequências de vídeo. Para codificação de vídeo baseada em blocos, um quadro ou fatia de vídeo pode ser particionada em blocos referidos como unidades de codificação (CUs). Em geral, uma CU tem uma finalidade semelhante à de um macro-bloco do padrão H.264, exceto pelo fato de que uma CU não tem uma distinção de tamanho. CUs em um quadro ou fatia intra codificada (I) são codificadas por meio de predição espacial com relação a CUs vizinhas no mesmo quadro ou fatia. CUs em um quadro ou fatia inter-codificada (P ou B) podem utilizar predição espacial com relação a CUs vizinhas no mesmo quadro ou fatia ou predição temporal com relação a outros quadros de referência.
[0004] Em geral, esta descrição descreve técnicas para aplicar um filtro de suavização a pixels que circundam amostras de predição na codificação com intra predição de dados de vídeo. Especificamente, as técnicas provêm um método para determinar e aplicar um filtro de suavização a amostras de predição utilizadas na codificação intra preditiva. Em alguns exemplos, as técnicas podem incluir selecionar o filtro de suavização a ser aplicado aos pixels que circundam amostras de predição com base em uma combinação de tamanho de bloco e modo de intra predição associados ao bloco atual.
[0005] Na intra suavização dependente de modo fixo, um codificador de vídeo pode determinar o tipo de filtro de suavização aplicado às amostras de predição com base na combinação de tamanho de bloco e modo de intra predição associada ao bloco atual. A combinação de tamanho de bloco e modo de intra predição pode ser utilizada para procurar um filtro em uma tabela de filtros. Neste caso, pode não haver overhead enviado ao decodificador para sinalizar o tipo de filtro utilizado na suavização, uma vez que a tabela de filtros estaria disponível no lado do decodificador e a combinação de tamanho de bloco e modo de intra predição pode ser utilizada de maneira semelhante no lado do decodificador.
[0006] Na intra suavização dependente de modo adaptativo, o codificador de vídeo pode selecionar o filtro de suavização a partir de duas opções de filtro, uma de uma primeira tabela de filtros e a outra de uma segunda tabela de filtros, aplicar ambos os filtros e determinar qual apresenta os melhores resultados. Neste caso, a sintaxe indicadora do filtro selecionado pode ser codificada com o vídeo e enviada ao decodificador para sinalizar o tipo de filtro selecionado. Em um exemplo, se o filtro da segunda tabela de filtros apresentar melhores resultados, o codificador de vídeo codifica uma indicação de filtragem. Quando um filtro da primeira tabela de filtros é utilizado, nenhuma indicação de filtragem é codificada.
[0007] Estas técnicas podem reduzir a quantidade de dados codificados com um bloco codificado por meio de codificação intra preditiva e, portanto, a quantidade de dados transmitida para um decodificador. Um decodificador de vídeo que recebe blocos codificados com intra predição pode aplicar um filtro de suavização durante a decodificação com a utilização da primeira tabela de filtros, a menos que uma indicação de filtragem seja codificada com o bloco. Se a indicação de filtragem for codificada com o bloco, então o decodificador de vídeo pode aplicar um filtro de suavização durante a decodificação utilizando o filtro que é indicado pela indicação de filtragem.
[0008] Em um exemplo, a descrição refere-se a um método que compreende determinar um tamanho de bloco associado ao bloco atual de dados de vídeo, determinar um modo de codificação com intra predição associado ao bloco atual, selecionar um filtro de uma tabela de filtros a ser aplicado ao bloco atual com base no tamanho de bloco e no modo de codificação e codificar de maneira intra preditiva o bloco atual utilizando o filtro selecionado.
[0009] Em outro exemplo, a descrição refere-se a um equipamento para codificar dados de vídeo, o equipamento compreendendo um processador configurado para determinar um tamanho de bloco associado ao bloco atual de dados de vídeo, determinar um modo de codificação com intra predição associado ao bloco atual, selecionar um filtro de uma tabela de filtros a ser aplicado ao bloco atual com base no tamanho de bloco e no modo de codificação e codificar de maneira intra preditiva o bloco atual utilizando o filtro selecionado.
[0010] Em outro exemplo, a descrição refere-se a um equipamento para codificar dados de vídeo, o equipamento compreende um dispositivo para determinar um tamanho de bloco associado ao bloco atual de dados de vídeo, um dispositivo para determinar um modo de codificação com intra predição associado ao bloco atual, um dispositivo para selecionar um filtro de uma tabela de filtros a ser aplicado ao bloco atual com base no tamanho de bloco e no modo de codificação e um dispositivo para codificar de maneira intra preditiva o bloco atual utilizando o filtro selecionado.
[0011] Em outro exemplo, a descrição refere-se a um meio de armazenamento legível por computador que compreende instruções para codificar dados de vídeo que, quando executadas em um processador, fazem com que o processador determine um tamanho de bloco associado ao bloco atual de dados de vídeo, determine um modo de codificação com intra predição associado ao bloco atual, selecione um filtro de uma tabela de filtros a ser aplicado ao bloco atual com base no tamanho de bloco e no modo de codificação e codifique de maneira intra predição o bloco atual utilizando o filtro selecionado.
[0012] A Figura 1 é um diagrama de blocos que mostra um sistema de codificação e decodificação de vídeo exemplar que pode utilizar as técnicas desta descrição para suportar intra suavização.
[0013] A Figura 2A é um diagrama conceptual que mostra um gráfico que apresenta um conjunto exemplar de direções de predição associadas a diversos modos de intra predição.
[0014] A Figura 2B é um diagrama conceptual que mostra outro gráfico, que apresenta um conjunto exemplar de direções de predição associadas a diversos modos de intra predição.
[0015] A Figura 3 é um diagrama conceptual que mostra um conjunto exemplar de direções de predição associadas a diversos modos de intra predição.
[0016] A Figura 4 é um diagrama de blocos que mostra um exemplo de codificador de vídeo que pode implementar técnicas para suportar intra suavização.
[0017] A Figura 5 é um diagrama de blocos que mostra um decodificador de vídeo, que decodifica uma sequência de vídeo codificada.
[0018] A Figura 6 é um fluxograma que mostra um método exemplar para codificar dados de vídeo de acordo com as técnicas desta descrição.
[0019] A Figura 7 é um fluxograma que mostra um método exemplar para decodificar dados de vídeo de acordo com as técnicas desta descrição.
[0020] A Figura 8 é um fluxograma que mostra outro método exemplar para codificar dados de vídeo de acordo com as técnicas desta descrição. A Figura 9 é um fluxograma que mostra outro método exemplar para decodificar dados de vídeo de acordo com as técnicas desta descrição.
[0021] Em geral, esta descrição descreve técnicas para determinar e aplicar um filtro de suavização a pixels que circundam as amostras de predição utilizadas na codificação intra preditiva de dados de vídeo. As técnicas podem incluir determinar se deve aplicar um filtro de suavização ao bloco atual de dados de vídeo que está sendo codificado. Por exemplo, a determinação de se deve aplicar o filtro de suavização pode ser baseada no tamanho do bloco que é codificado e no modo de codificação associado ao bloco atual. O modo de codificação do bloco atual pode ser baseado na direção associada à codificação intra preditiva do bloco atual ou na direção do bloco atual com relação do bloco a partir do qual o bloco atual é predito. Tabelas de decisões de filtragem podem ser geradas e utilizadas na tomada de decisões referente a se deve aplicar filtragem intra suavizadora ao bloco atual e/ou ao tipo de filtro de intra suavização a ser aplicado ao bloco atual. Portanto, a decisão de filtragem pode ser uma função do tamanho de bloco e do modo de intra predição associado ao bloco atual.
[0022] Na codificação de vídeo, a predição pode ser utilizada para aumentar a eficácia e reduzir a quantidade de dados de vídeo codificados e, portanto, a quantidade de dados de vídeo transmitida ou armazenada para recuperação e exibição subseqüentes. Dois tipos de predição são frequentemente utilizados nos sistemas de codificação de vídeo modernos, na inter-predição e na intra predição. Na inter-predição, o bloco de vídeo atual é predito a partir de um bloco de vídeo em outro quadro na sequência de vídeo. Na intra predição, o bloco de vídeo atual é predito a partir de um bloco de vídeo no mesmo quadro.
[0023] Conforme observado acima, a codificação intra preditiva envolve codificar os pixels do bloco atual de um quadro com relação aos pixels de blocos codificados anteriormente do mesmo quadro pela execução da extrapolação direcional dos pixels que circundam o bloco atual. Desta maneira, os pixels circundantes são utilizados como amostras de predição para formar pixels para o bloco atual. Em geral, os pixels são utilizados para formar o bloco atual ao longo de uma direção especificada. À medida que o tamanho do bloco atual, a precisão de predição dos pixels do bloco atual que estão mais afastados das amostras de predição pode deteriorar-se. Para superar a deterioração na codificação intra preditiva, a suavização é aplicada às amostras de predição circundantes.
[0024] O processo de codificação de vídeo pode aplicar um filtro de suavização a pixels de predição, efetuar e comparar predições com a utilização de pixels tanto filtrados quanto não filtrados e determinar e sinalizar se deve utilizar pixels tanto filtrados quanto não filtrados e determinar e sinalizar se deve utilizar os pixels filtrados ou não filtrados com base no resultado da comparação. A utilização deste método, que pode ser referido como intra suavização adaptativa (AIS), resulta no aumento da complexidade do codificador, uma vez que exige a aplicação do filtro de suavização a cada bloco e a comparação do resultado com o bloco não filtrado. Além disto, a utilização deste método, que sinaliza explicitamente se ou não um filtro de suavização específico deve ser aplicado, se soma às informações de overhead associadas a cada unidade de codificação. Além disto, a codificação e a decodificação por entropia dos dados AIS (como, por exemplo, o sinal, o filtro de suavização e semelhantes) acrescentam complexidade ao processo de codificação e decodificação.
[0025] Outra maneira de efetuar AIS é utilizar uma tabela de indicadores de filtro no codificador e no decodificador, onde o valor de indicador depende do tamanho de bloco e do modo de intra predição, que indica a direção de predição. A tabela pode ser gerada durante um estágio de desenho, evitando-se assim o aumento da complexidade computacional do codificador, uma vez que a decisão quanto a serem os pixels filtrados ou não não é tomada durante o processo de codificação. Entretanto, determinadas alterações no codificador/decodificador de vídeo podem exigir a geração de uma nova tabela para substituir a tabela atual.
[0026] As técnicas desta descrição propõem um esquema AIS simplificado ou uma intra suavização dependente do modo (MDIS) que é baseada em regras, onde as regras quanto a se ou não aplicar um filtro de suavização são baseadas no tamanho do bloco atual e no modo ou direção de predição. A MDIS pode ordenar os modos de predição em uma hierarquia, que pode ser mapeada nos tamanhos de bloco diferentes, onde, para tamanhos de bloco crescentes, mais modos são filtrados de acordo com a hierarquia. Em alguns exemplos, a determinação de se aplicar ou não um filtro de suavização pode ser também distinguida entre blocos maiores e blocos menores, onde a metodologia para determinar se ou não aplicar um filtro de suavização pode variar com base no tamanho de bloco. Além disto, para algumas sequências de vídeo, como, por exemplo, aquelas com textura direcional, a aplicação de um filtro de suavização pode proporcionar pouco ou nenhum benefício. As técnicas desta descrição podem também fazer com que as determinações de filtro de suavização resolvam estes problemas. Informações sobre intra predição e filtros de suavização podem ser codificadas em cabeçalhos de blocos correspondentes e decodificadas por um decodificador de vídeo para aplicação do filtro de suavização apropriado durante a decodificação.
[0027] A Figura 1 é um diagrama de blocos que mostra um sistema de codificação e decodificação de vídeo 10 exemplar, que pode utilizar as técnicas desta descrição para aplicar um filtro de suavização durante a codificação intra preditiva. Conforme mostrado na Figura 1, o sistema 10 inclui um aparelho de origem 12, que transmite vídeo codificado para um aparelho de destino 14 por meio de um canal de comunicação 16. O aparelho de origem 12 e o aparelho de destino 14 podem compreender qualquer um de uma ampla faixa de aparelhos. Em alguns exemplos, o aparelho de origem 12 e o aparelho de destino 14 podem compreender aparelhos de comunicação sem fio, tais como aparelhos telefônicos sem fio, os chamados telefones celulares ou de rádio-satélite ou quaisquer aparelhos sem fio que possam comunicar informações de vídeo através de um canal de comunicação 16, e neste caso o canal de comunicação 16 é sem fio.
[0028] Entretanto, as técnicas desta descrição, que se referem geralmente a técnicas para codificação intra preditiva, não são necessariamente limitadas a aplicativos ou configurações sem fio. Por exemplo, estas técnicas podem também ser úteis em uma ampla faixa de outras configurações e aparelhos, inclusive aparelhos que se comunicam por meio de fios físicos, fibras ópticas ou outros meios físicos ou sem fio, podem aplicar-se a difusões de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões de vídeo pela Internet, vídeo digital codificado que é codificado em um meio de armazenamento, ou outros cenários. Por exemplo, o vídeo codificado pode ser armazenado em um aparelho de armazenamento para recuperação, decodificação e exibição subseqüentes pelo aparelho de destino 14. Além disso, técnicas de codificação ou decodificação podem ser também aplicadas em um aparelho independente que não se comunica necessariamente com qualquer outro aparelho. Por conseguinte, o canal de comunicação 16 pode compreender qualquer combinação de meios sem fio ou cabeados adequada para transmissão de dados de vídeo codificados ou outros meios de armazenamento, e os aparelhos 12, 14 podem compreender qualquer um de diversos aparelhos de meios cabeados ou sem fio, tais como telefones móveis, telefones inteligentes, tocadores de meios digitais, conversores settop box, televisões, monitores, computadores de mesa, computadores portáteis, computadores tablet, consoles para jogos, aparelhos de jogar portátil ou semelhantes.
[0029] No exemplo da Figura 1, o aparelho de origem 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, um modulador/demodulador (modem) 22 e um transmissor 24. O aparelho de destino 14 inclui um receptor 26, um modem 28, um decodificador de vídeo 30 e um aparelho de exibição 32. Em outros exemplos, um aparelho de origem e um aparelho de destino podem incluir outros componentes ou disposições. Por exemplo, o aparelho de origem 12 pode receber dados de vídeo de uma fonte de vídeo externa 18, tal como uma câmera externa, um arquivo de armazenamento de vídeo, uma fonte de gráficos de computado ou semelhantes. De maneira semelhante, o aparelho de destino 14 pode formar interface com um aparelho de exibição externo, em vez de incluir um aparelho de exibição integrado.
[0030] O sistema 10 mostrado na Figura 1 é meramente um exemplo. Técnicas para aplicar um filtro de suavização à codificação intra preditiva podem ser executadas por qualquer aparelho de codificação e/ou decodificação de vídeo digital. Embora geralmente as técnicas desta descrição seja executadas por um aparelho de codificação de vídeo, as técnicas podem ser também executadas por codificador/decodificador de vídeo, tipicamente referido como “CODEC”. Além do mais, as técnicas desta descrição podem ser também executadas por um processador de vídeo. O aparelho de origem 12 e o aparelho de destino 14 são meramente exemplos de aparelhos de codificação nos quais o aparelho de origem 12 gera dados de vídeo codificados para transmissão para o aparelho de destino 14. Em alguns exemplos, os aparelhos 12, 14 podem funcionar de maneira substancialmente simétrica, de modo que cada um dos aparelhos 12, 14 inclui componentes de codificação e decodificação de vídeo. Consequentemente, o sistema 10 pode suportar transmissão de vídeo uni- ou bi-direcional entre os aparelhos 12, 14 como, por exemplo, para fluxo continuo de vídeo, repetição de vídeo, execução de difusão de vídeo ou telefonia de vídeo.
[0031] A fonte de vídeo 18 do aparelho de origem 12 pode incluir um aparelho de captação de vídeo e/ou uma alimentação de vídeo de um provedor de conteúdo de vídeo. Como outra alternativa, a fonte de vídeo 18 pode gerar dados baseados em gráficos de computador como o vídeo de origem ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em alguns exemplos, se a fonte de vídeo 18 for uma câmera de vídeo, o aparelho de origem 12 e o aparelho de destino 14 podem formar os chamados telefones com câmera ou telefones com vídeo. Conforme mencionado acima, contudo, as técnicas descritas nesta descrição podem ser aplicadas à codificação de vídeo em geral e podem ser aplicadas a aplicativos sem fio e/ou cabeados. Em cada caso, o vídeo captado, pré-captado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. As informações de vídeo codificadas podem ser então moduladas pelo modem 22 de acordo com um padrão de comunicação e transmitidas para o aparelho de destino 14 por meio do transmissor 24. O modem 22 pode incluir diversos misturadores, filtros, amplificadores ou outros componentes projetados para modulação de sinais. O transmissor 24 pode incluir circuitos projetados para transmitir dados, inclusive amplificadores, filtros e uma ou mais antenas.
[0032] O receptor 26 do aparelho de destino 14 recebe informações através do canal 16, e o modem 28 demodula as informações. Mais uma vez, o processo de codificação de vide pode implementar uma ou mais das técnicas aqui descritas para aplicar um filtro de suavização durante a codificação intra preditiva do bloco atual. As informações comunicadas através do canal 16 podem incluir informações de sintaxe definidas pelo codificador de vídeo 20, que são também utilizadas pelo decodificador de vídeo 30, que incluem elementos de sintaxe que descrevem as características e/ou o processamento de unidades de predição (Pus), unidades de codificação (CUs) ou outras unidades de vídeo codificado, como, por exemplo, fatias de vídeo, quadros de vídeo e sequências de vídeo ou grupos de imagens (GOPs). O aparelho de exibição 32 exibe os dados de vídeo decodificados para o usuário e pode compreender qualquer um de diversos aparelhos de exibição, tais como um tubo de raios catódicos (CRT), uma tela de cristal liquido (LCD), um monitor de plasma, um monitor de diodo emissor de luz orgânico (OLED) ou outro tipo de aparelho de exibição.
[0033] No exemplo da Figura 1, o canal de comunicação 16 pode compreender qualquer meio de comunicação sem fio ou cabeado, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de comunicação físicas ou qualquer combinação de meios sem fio e cabeados. O canal de comunicação 16 pode fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área estendida ou uma rede global, como a Internet. O canal de comunicação 16 representa geralmente qualquer meio de comunicação adequado ou coleção de meios de comunicação diferentes, para transmitir dados de vídeo do aparelho de origem 12 para o aparelho de destino 14, inclusive qualquer combinação adequada de meios cabeados ou sem fio. O canal de comunicação 16 podem incluir roteadores, comutadores, estações base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do aparelho de origem 12 para o aparelho de destino 14.
[0034] O codificador de vídeo 20 e o decodificador de vídeo 30 podem funcionar de acordo com um padrão de compactação de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) ou o padrão ITU H.264, alternativamente referido como Codificação Avançada de Vídeo (AVC), do MPEG-4, Parte 10. As técnicas desta descrição, contudo, não estão limitadas a qualquer padrão de codificação especifico. Outros exemplos incluem o MPEG-2 e o ITU-T H.263. Embora não mostrado na Figura 1, sob alguns aspectos o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, integrados com um codificador e decodificador de áudio e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para processar codificação tanto de áudio quanto de vídeo em um fluxo de dados comum ou em fluxos de dados separados. Se aplicável, unidades MUX-DEMUX podem conformar-se ao protocolo de multiplexador ITU H.223 ou a outros protocolos, como, por exemplo, o protocolo de datagrama de usuário (UDP).
[0035] O padrão ITU-T H.264/MPEG-4 (AVC) foi formulado pelo Grupo de Especialistas em Codificação de Vídeo (VCEG) ITU-T juntamente com o Grupo de Especialistas em Imagens em Movimento (MPEG) ISSO/IEC como o produto de uma parceria coletiva conhecida como Equipa de Vídeo Conjunta (JVT). Sob alguns aspectos, as técnicas descritas nesta descrição podem ser aplicadas a aparelhos que geralmente se conformam ao padrão H.264. O padrão H.264 é definido na Recomendação ITU-T H.264, Codificação Avançada de Vídeo para serviços audiovisuais genéricos, pelo Grupo de Estudos ITU-T, e datado de março de 2005, que pode ser aqui referido como padrão H.264 ou especificação H.264, ou padrão ou especificação H.264/AVC.
[0036] A Equipe de Vídeo Conjunta (JVT) continua a trabalhar sobre extensões do H.264/AVC e a desenvolver novos padrões, como, por exemplo, para HEVC. Os esforços de padronização HEVC são baseados em um modelo de aparelho de codificação de vídeo referido como Modelo de Teste HVC (HM). O HM presume várias capacidades adicionais de aparelhos de codificação de vídeo com relação aos aparelhos existentes de acordo com o ITU-T H.264/AVC, por exemplo. Por exemplo, ao passo que o H.264 apresenta nove modos de codificação intra preditiva, o HM apresenta tantos quanto trinta e cinco modos de codificação intra preditiva.
[0037] O HM refere-se a um bloco de dados de vídeo como uma unidade de codificação (CU). Os dados de sintaxe dentro de um fluxo de bits podem definir a maior unidade de codificação (LCU), que é a maior unidade de codificação em termos do número de pixels. Em geral, uma CU tem uma finalidade semelhante à de um macrobloco do padrão H.264, exceto pelo fato de que uma CU não tem uma distinção de tamanho. Assim, uma CU pode dividir-se em sub-CUs. Em geral, as referências nesta descrição a uma CU podem referir-se à maior unidade de codificação de uma imagem ou a uma sub-CU de uma LCU. Uma LCU pode dividir-se em sub- CUs, e cada sub-CU pode ser também dividida em sub-CUs. Os dados de sintaxe para um fluxo de bits podem definir o número máximo de vezes em que uma LCU pode ser dividida, referido como profundidade de CU. Por conseguinte, um fluxo de bits pode definir também a menor unidade de codificação (SCU). Esta descrição utiliza também o termo “bloco” para referir-se a qualquer uma de uma CU, uma PU ou uma TU. Além do mais, onde esta descrição se refere a exemplos que envolvem uma unidade de codificação ou CU, deve ficar entendido que outros exemplos podem ser dados com relação a unidades de codificação substituídas por macroblocos.
[0038] Uma LCU pode ser associada a uma estrutura de dados de transformação quad-tree. Em geral, uma estrutura de dados de transformação quad-tree inclui um nó por CU, em que um nó-raiz corresponde à LCU. Se uma CU for dividida em quatro sub-CUs, o nó que corresponde à CU inclui quatro nós-folha, cada um dos quais corresponde a uma das sub-CUs. Cada nó da estrutura de dados de transformação quad-tree pode prover dados de sintaxe para a CU correspondente. Por exemplo, um nó na quad-tree pode incluir um indicador dividido, que indica se a CU que corresponde ao nó está dividida em sub-CUs. Os elementos de sintaxe para uma CU podem ser definidos recursivamente podem depender de a CU estar ou não dividida em sub-CUs.
[0039] Uma CU que não é dividida (que corresponde a um nó-folha na estrutura de dados de transformação quad-tree) pode incluir uma ou mais unidades de predição (PUs). Em geral, uma PU representa toda ou uma parte da CU correspondente e inclui dados para recuperar uma amostra de referência para a PU. Por exemplo, quando a PU é codificada de maneira intra modal, a PU pode incluir dados que descrevem um modo de intra predição para a PU. Os dados que descrevem o modo de intra predição podem definir, por exemplo, a direção associada ao modo de intra predição para a PU (componentes luma e croma) e o tamanho de bloco associado à PU. Como outro exemplo, quando a PU é codificada de maneira inter-modal, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (precisão de pixel de um quarto ou precisão de pixel de um oitavo, por exemplo), um quadro de referência para o qual o vetor de movimento aponta e/ou uma lista de quadros de referência (lista 0 ou lista 1, por exemplo) para o vetor de movimento e o índice de predição do vetor de movimento. Os dados para a CU que definem a(s) PU(s) podem descrever também, por exemplo, o particionamento da CU em uma ou mais PUs. Os modos de particionamento podem diferir entre CU não codificada, codificada pelo modo de intra predição ou codificada pelo modo de inter-predição.
[0040] Uma CU que tem uma ou mais PUs pode incluir também uma ou mais unidades de transformada (TUs). Em seguida à predição com a utilização de uma PU, um codificador de vídeo pode calcular um valor residual para a parte da CU que corresponde à PU. O valor residual corresponde a valores de diferença de pixel que podem ser transformados em coeficientes de transformada, quantificados e varridos de modo a se produzirem coeficientes de transformada serializados para codificação por entropia. O tamanho de TU não é necessariamente limitado ao tamanho de uma PU. Em particular, as TUs podem ter o mesmo tamanho ou menor que o de PUs correspondentes para uma CU. Em alguns exemplos, o tamanho máximo de uma TU pode ser o tamanho da CU correspondente. Em geral, as TUs podem compreender as estruturas de dados que incluem os coeficientes de transformada residuais associados a um dada CU.
[0041] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, implementados como qualquer um de diversos circuitos de codificador adequados, tais como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados específicos de aplicativo (ASICs), arranjos de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmaware ou quaisquer combinações deles. Cada um do codificador de vídeo 20 e do decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, ou um ou outro dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em uma respectiva câmera, computador, aparelho móvel, aparelho de assinante, aparelho de difusão, conversor set-top box, servidor ou semelhantes.
[0042] Uma sequência de vídeo inclui tipicamente uma série de quadros de vídeo. Um grupo de imagens (GOP) compreende geralmente uma série de um ou mais quadros de vídeo. Um GOP pode incluir dados de sintaxe, em um cabeçalho do GOP, em um cabeçalho de um ou mais quadros do COP ou em qualquer lugar, que descrevem o número de quadros incluídos no GOP. Cada quadro pode inclui dados de sintaxe de quadro que descrevem um modo de codificação para o respectivo quadro. O codificador de vídeo 20 funciona tipicamente em blocos de vídeo dentro de quadros de vídeo individuais para codificação dos dados de vídeo. Um bloco de vídeo pode corresponder a uma unidade de codificação (CU) ou a uma unidade de partição (PU) da CU. Os blocos de vídeo podem ter tamanhos fixos ou variáveis e podem diferir em tamanho de acordo com um padrão de codificação especificado. Cada quadro de vídeo pode incluir uma série de fatias. Cada fatia pode incluir uma série de CUs, que podem incluir uma ou mais PUs.
[0043] Como exemplo, o Modelo de Teste HEVC (HM) suporta predição em diversos tamanhos de CU. O tamanho de uma LCU pode ser definido por informações de sintaxe. Supondo-se que o tamanho de uma CU seja 2Nx2N, o HM suporta intra predição em tamanhos de 2Nx2N ou NxN e inter-predição em tamanhos simétricos de 2Nx2N, 2NxN, Nx2N ou NxN. O HM suporta também divisão simétrica para inter-predição de 2NxnD, nLx2N e nRx2N. Na divisão assimétrica, uma direção de uma CU não é dividida, enquanto a outra direção é dividida em 25% e 75%. A parte da CU que corresponde à divisão de 25% é indicada por um “n” seguido de uma indicação de “Para Cima”, “Para Baixo”, “Esquerda” ou “Direita”. Assim, por exemplo, “2NxnU” refere-se a uma CU 2Nx2N que é dividida horizontalmente, com uma PU 2Nx0,5N no topo e uma PU 2Nx1,5N na base.
[0044] Nesta descrição, “NxN” e “N por N” podem ser utilizados intercambiavelmente para referir-se às dimensões de pixel de um bloco de vídeo (CU, PU ou TU, por exemplo) em termos de dimensões verticais e horizontais, como, por exemplo, pixels de 16x16 ou de 16 por 16. Em geral, um bloco de 16x16 terá 16 pixels na direção vertical (y = 16) e 16 pixels na direção horizontal (x = 16). Da mesma maneira, um bloco NxN tem geralmente N pixels na direção vertical e N pixels na direção horizontal, onde N representa um valor de número inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Além do mais, os blocos não precisam ter necessariamente o mesmo número de pixels em ambas as direções, horizontal e vertical. Por exemplo, os blocos podem compreender NxM pixels, onde M não é necessariamente igual a N.
[0045] Conforme observado acima, as CUs podem ser codificadas por meio de codificação inter-preditiva ou codificação intra preditiva. Na intra predição, o bloco atual pode ser predito com relação a um bloco do mesmo quadro que já tenha sido codificado. Tipicamente, os blocos de um quadro são codificados da esquerda para a direita e do topo para a base ou, em alguns exemplos, em uma ordem de varredura em z. Portanto, o bloco atual pode ser predito com relação a blocos em qualquer lugar acima dele ou à esquerda do bloco atual. Os tamanhos de bloco na codificação intra preditiva podem variar de um tamanho relativamente pequeno, como, por exemplo, 2x2, até um tamanho relativamente grande, como, por exemplo, 128x128. A direção de predição ou a direção de um bloco já codificado até o bloco atual pode determinar o modo de intra predição. O HM permite até 34 modos, que incluem 33 modos direcionais de intra predição diferentes, que correspondem a uma direção de extrapolação e um modo DC. Cada um dos 33 modos direcionais de intra predição corresponde a um ângulo entre 0 e 180 (ou entre 45 e -135 graus da horizontal, no sentido horário, no exemplo da Figura 2A), com uma resolução de ângulo próxima de 5,625°, que indica a direção de extrapolação dos pixels do bloco utilizados para predizer os pixels do bloco atual. O modo não direcional (designado como modo 2) corresponde a DC, onde uma amostragem dos pixels vizinhos é utilizada para predizer os pixels do bloco atual. Em alguns exemplos, o HM pode permitir o 35° modo (modo 34), que corresponde a um modo planar, onde os valores dos pixels podem ser ajustados por meio de uma função de gradiente, discutida mais detalhadamente a seguir.
[0046] Durante a codificação intra preditiva, a qualidade da precisão de predição pode ser afetada e deteriorada. Por exemplo, à medida que o tamanho da PU aumenta, a precisão de predição dos pixels afastados dos pixels de predição pode deteriorar-se. A deterioração da precisão de precisão pode resultar em dados mais residuais, que podem resultar em mais dados que é necessário codificar, transmitir ou armazenar. Um filtro de suavização pode ser aplicado aos pixels de predição utilizados para predizer um bloco, de modo a se aperfeiçoar a precisão de predição. Em alguns casos, contudo, os padrões atuais utilizam técnicas de intra suavização (AIS).
[0047] As técnicas desta descrição propõem um esquema AIS simplificado que é baseado em regras, em que as regras quanto a se ou não aplicar um filtro de suavização são baseadas principalmente no tamanho do bloco atual e no modo ou direção de predição. No HM, os tamanhos de bloco variam de um tamanho pequeno, como, por exemplo, 2x2, até um tamanho de 128x128, por exemplo. Os modos de intra predição disponíveis para cada bloco podem variar com base no tamanho, conforme explicado mais detalhadamente a seguir. Para cada tamanho de bloco, um filtro de suavização pode ser necessário quando a predição é aplicada em algumas direções, mas não em outras direções, onde as direções correspondem a modos de intra predição diferentes. Em um exemplo, as combinações de tamanhos e modos de intra predição para as quais um filtro de suavização é aplicado podem ser pré-definidas em uma tabela de busca (LUT). Portanto, a determinação de se ou não aplicar um filtro de suavização pode ser genérica e permanece a mesma independentemente de alterações no codificado e/ou no decodificador, e a sinalização da determinação de filtragem pode não ser necessária. Além disto, fazer com que a determinação de se ou não aplicar um filtro de suavização não incorre em complexidade significativa no codificador.
[0048] Em alguns exemplos, a determinação de se ou não aplicar um filtro de suavização pode ser também distinguida entre blocos maiores e blocos menores, em que a metodologia para determinar se ou não aplicar um filtro de suavização pode variar com base no tamanho de bloco. Para alguns tamanhos de bloco, por exemplo, o codificador pode efetuar predição utilizando pixels tanto filtrados quanto não filtrados e comparar os resultados de modo a determinar se ou não utilizar um filtro de suavização. O codificador pode então sinalizar o modo de filtragem, isto é, se ou não um filtro de suavização é utilizado na codificação do bloco. O codificador pode em seguida sinalizar o modo de filtragem, isto é, se ou não um filtro de suavização é utilizado na codificação do bloco. Em um exemplo, o modo de filtragem pode ser sinalizado se for diferente da decisão que seria obtida com base na LUT, isto é, na decisão de filtragem pré-definida.
[0049] Em um exemplo, podem ser definidos um ou mais filtros de suavização (candidatos a filtro, por exemplo). Para cada combinação de tamanho de bloco e modo de intra predição, uma tabela pode definir o filtro apropriado a ser utilizado. Para combinações para as quais nenhum filtro de suavização é utilizado, o filtro definido pode ser um filtro para todas as passagens. Uma tabela primária pode incluir o filtro de suavização mais provável para cada combinação Esaú. Em alguns exemplos, uma tabela secundária (ou várias tabelas adicionais) pode ser definida de modo a incluir o segundo filtro de suavização mais provável (ou vários filtros de suavização possíveis no caso de várias tabelas adicionais) para cada combinação correspondente de tamanho de bloco e modo de intra predição. Em um exemplo, podem ser utilizadas as informações sobre o filtro de suavização mais provável, a menos que indicado de outro modo. As informações associadas à codificação intra preditiva (tamanho de bloco e modo de intra predição) e as informações sobre o filtro de suavização (modo de filtragem e tabela(s) de filtros de suavização prováveis, por exemplo) podem ser codificadas em cabeçalhos (ou em outras estruturas de dados, tais como rodapés) de blocos correspondentes e decodificadas por um decodificador de vídeo para aplicar o filtro de suavização apropriado durante a decodificação.
[0050] Em seguida à codificação intra preditiva ou inter-preditiva para produzir os dados preditivos (uma PU para uma CU, por exemplo), o codificador de vídeo 20 pode calcular dados residuais para produzir uma ou mais unidades de transformada (TUs) para a CU. As PUs de uma CU podem compreender dados de pixel no domínio espacial (também referido como domínio de pixels), enquanto as TUs da CU podem compreender coeficientes no domínio de transformada, como, por exemplo, em seguida à aplicação de uma transformada, tal como uma transformada de co-seno discreta (DCT), uma transformada de número inteiro, uma transformada de wavelet ou uma transformada conceptualmente semelhante, a dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre pixels da imagem não codificada e valores de predição de uma PU de uma CU. O codificador de vídeo 20 pode formar uma ou mais TUs que incluem os dados residuais para a CU. O codificador de vídeo 20 pode em seguida transformar as TUs.
[0051] Em seguida a quaisquer transformadas para produzir coeficientes de transformada, pode ser efetuada a quantificação dos coeficientes de transformada. A quantificação refere-se geralmente a um processo em que coeficientes de transformada são quantificados para reduzir possivelmente a quantidade de dados utilizados para representar os coeficientes. O processo de quantificação pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes. Por exemplo, um valor de N bits pode ser arredondado para menos até um valor de M bits durante a quantificação, onde N é maior que M.
[0052] Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura pré-definida para varrer os coeficientes de transformada quantificados de modo a produzir um vetor serializado que possa ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 pode efetuar uma varredura adaptativa. Depois de varrer os coeficientes de transformada para formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, como, por exemplo, de acordo com codificação de comprimento variável adaptativa ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto baseada na sintaxe (SBAC) ou outra metodologia de codificação por entropia.
[0053] Uma unidade de processamento configurada para codificação por entropia, ou outra unidade de processamento, pode desempenhar outras funções de processamento, tais como codificação de comprimento de execução zero de coeficientes quantificados e/ou geração de informações de sintaxe, tais como valores de padrão de blocos codificados (CBP), tipo de macrobloco, modo de codificação, tamanho de LCU ou semelhantes.
[0054] O decodificador de vídeo 30 do aparelho de destino 14 pode ser configurado para executar técnicas semelhantes, e geralmente simétricas, a qualquer uma ou todas as técnicas do codificador de vídeo 20 desta descrição. Por exemplo, o decodificador de vídeo 30 pode receber CUs codificadas por entropia de um quadro de vídeo. Os dados recebidos podem incluir elementos de sintaxe que indicam se a codificação intra preditiva foi utilizada para codificar a CU no codificador de vídeo 20. De acordo com as técnicas desta descrição, os elementos de sintaxe associados à codificação intra preditiva podem incluir informações tais como, por exemplo, o modo de intra predição ou a direção de predição, o tamanho de bloco e outras informações associadas ao filtro de suavização, quando aplicável. Por exemplo, o decodificador de vídeo 30 pode determinar que uma CU é codificada utilizando codificação intra preditiva e decodificar elementos de sintaxe incluídos com a CU codificada para determinar o modo de intra predição da CU. O codificador de vídeo 20 pode determinar também o tamanho do bloco utilizado na codificação intra preditiva e, utilizando as informações sobre tamanho do bloco e modo de intra predição, o decodificador de vídeo 30 pode determinar se ou não aplicar um filtro de suavização aos pixels de predição na predição de um bloco.
[0055] Em um exemplo, o decodificador de vídeo 30 pode determinar se ou não aplicar um filtro de suavização com base na combinação de tamanho de bloco e modo de intra predição utilizada para codificar o bloco. Se não indicado de outro modo, o decodificador de vídeo 30 pode utilizar o filtro de suavização mais provável associado à combinação de tamanho de bloco e modo de intra predição. Se o filtro de suavização para a combinação de tamanho de bloco e modo de intra predição for diferente do filtro de suavização mais provável para essa combinação, uma indicação pode ser decodificada pelo decodificador de vídeo 30 a partir dos elementos de sintaxe associados ao bloco, e um filtro de suavização de um segundo filtro de suavização mais provável (ou o mais provável) para essa combinação é selecionado e utilizado pelo decodificador de vídeo 30.
[0056] Desta maneira, a quantidade de informações codificadas para indicar se ou não um filtro de suavização é aplicado na codificação intra preditiva é reduzida ao mínimo e, em alguns casos, eliminada. Por exemplo, quando a decisão de aplicação do filtro de suavização é a mais provável para uma combinação de tamanho de bloco e modo de intra predição, nenhuma sinalização referente ao filtro de suavização é codificada, e o decodificador de vídeo 30 é capaz de fazer a determinação sem necessidade de informações adicionais além do tamanho de bloco e do modo de intra predição.
[0057] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser implementados, cada um, como qualquer um de diversos circuitos de codificador ou decodificador adequados, conforme aplicável, tais como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados específicos de aplicativo (ASICs), arranjos de portas programáveis no campo (FPGAs), circuitos de lógica discreta, software, hardware, firmware ou qualquer combinação deles. Cada um do codificador de vídeo 20 e do decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, ou um ou o outro dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado. Um equipamento que inclua o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e/ou um aparelho de comunicação sem fio, tal como um telefone celular.
[0058] A Figura 2A é um diagrama conceptual que mostra um gráfico que apresenta um conjunto exemplar de direções de predição associadas a diversos modos de intra predição. Conforme observado acima, o HM provê um máximo de trinta e três modos de codificação direcionais de intra predição. Um codificador de HM (o codificador de vídeo 20, por exemplo) pode ser configurado de modo que o conjunto disponível de modos de intra predição para um bloco possa depender do tamanho do bloco ou da PU. Ou seja, o tamanho de um bloco pode determinar o número de modos de intra predição disponíveis para o bloco, a partir do que o codificador pode selecionar um modo de intra predição para predizer o bloco. A TABELA 1 abaixo mostra um exemplo de correspondência entre tamanhos de bloco e os modos de intra predição disponíveis para blocos desse tamanho. As direções associadas aos modos de intra predição são mostradas na Figura 3. O modo 2, não mostrado na Figura 3, corresponde ao modo DC, em que uma amostragem dos pixels vizinhos é utilizada para predizer os pixels do bloco atual. TABELA 1
[0059] No exemplo da Figura 2 A, o bloco 106 (indicado com o contorno pontilhado) pode ser predito a partir dos pixels 100A-100AG vizinhos (pixels 100 vizinhos) dependendo do modo de intra predição selecionado. As setas 102 A-102AG (setas 102) representam direções ou ângulos associados com diversos modos de intra predição. O exemplo da Figura 2A é representativo de modos de intra predição providos pelo HM. Em outros exemplos, contudo, mais ou menos modos de intra predição podem ser apresentados. Embora o exemplo do bloco 106 seja um bloco de 8x8 pixels, em geral um bloco pode ter qualquer número de pixels, como, por exemplo, 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, etc. Embora o exemplo do bloco 106 seja quadrado, as técnicas desta descrição podem ser também aplicadas a outros tamanhos de bloco, como, por exemplo, blocos NxM, onde N não é necessariamente igual a M.
[0060] Um modo de intra predição pode ser definido de acordo com o ângulo da direção de predição com relação, por exemplo, ao eixo geométrico que é perpendicular aos lados verticais do bloco 106. Assim, cada uma das setas 102 pode representar o ângulo específico de uma direção de predição de um modo de intra predição correspondente. Em alguns exemplos, um modo de direção de intra predição pode ser definido por um par de números inteiros (dx, dy), que pode representar a direção que o modo de intra predição utiliza extrapolação de pixel contextual. Ou seja, o ângulo do modo de intra predição pode ser calculado como dx/dy. Em outras palavras, o ângulo pode ser determinado de acordo com o deslocamento horizontal dx e com o deslocamento vertical dy. O valor de pixel na localização(x, y) no bloco 106 pode ser determinado a partir do pixel ou pixels 100 vizinhos através dos quais passa uma linha, que passa também através da localização (x, y) com um ângulo de dy/dx.
[0061] A Figura 2B é um diagrama conceptual que mostra um gráfico que apresenta outro conjunto exemplar de direções de predição associadas a diversos modos de intra predição. NO exemplo da Figura 2B, são mostrados trinta e três modos de codificação direcionais de intra predição, semelhantes aos mostrados na Figura 2A. Neste exemplo, além dos 33 modos direcionais, há dois modos direcionais, o modo 2, que corresponde ao modo DC, e o modo 34, que corresponde ao modo planar.
[0062] No exemplo da Figura 2B, o codificador e/ou o decodificador podem ser configurados de modo que o conjunto disponível de modos de intra predição para um bloco possa depender do tamanho do bloco, como, por exemplo, PU, CU ou TU. Ou seja, o tamanho de um bloco pode determinar o número de modos de intra predição disponíveis para o bloco, a partir do que o codificador pode selecionar um modo de intra predição para predizer o bloco. A TABELA 2 abaixo mostra outro exemplo de correspondência entre tamanhos de bloco e os modos de intra predição disponíveis para blocos desse tamanho. TABELA 2
[0063] A Figura 3 é um diagrama conceptual que mostra um conjunto exemplar de direções de predição associadas a diversos modos de intra predição. Cada um dos 33 modos direcionais de intra predição apresentados pelo HM corresponde a uma direção com um ângulo especificado. Por exemplo, o modo 1 corresponde a uma direção de extrapolação horizontal ou a um ângulo de 0° da horizontal, onde um bloco codificado com a utilização do modo 1 é predito a partir de pixels direcionados para a sua esquerda. Como outro exemplo, o modo 0 corresponde a uma direção de extrapolação vertical ou a um ângulo de 90° da horizontal, onde um bloco codificado com a utilização do modo 0 é predito a partir de pixels diretamente acima dele. Como outro exemplo, os modos 3, 6 e 9 correspondem a uma direção de extrapolação diagonal a uma resolução angular de 45°. Os modos 0, 1 e 3-33 correspondem a direções de predição que cobrem 180° (entre os modos 6 e 9) com uma resolução angular próxima de 5,625°. O modo 2, no exemplo do HM, corresponde ao modo DC, em que uma amostragem dos oito pixels vizinhos é utilizada para predizer os pixels do bloco atual. O modo 34 corresponde ao modo planar, em que pode ser incluída uma função de plano linear que é encaixada no bloco de finalidades de predição. O modo planar pode funcionar bem em áreas de luminância ligeiramente variável. O modo planar pode ser eficaz para predizer blocos maiores, mas pode ser menos eficaz quando utilizado para predizer blocos menores. Os círculos da Figura 3 representam a resolução angular dos modos direcionais de intra predição associados a cada círculo. Por exemplo, para o círculo 0, a resolução entre os modos no interior do círculo (modos 0 e 1) é de 90 graus, a resolução entre os modos no interior do círculo 1 (modos 3, 6 e 9) é de 45 graus, a resolução entre os modos no interior do círculo 2 (modos 4, 5, 7 e 8) é de 22,5 graus e assim por diante.
[0064] A Figura 4 é um diagrama de blocos que mostra um exemplo de codificador de vídeo 20 que pode implementar técnicas para aplicar um filtro de suavização a pixels que circundam as amostras de predição utilizadas na codificação intra predição de dados de vídeo. O codificador de vídeo 20 pode efetuar intra e inter-predição de blocos de vídeo dentro de quadros de vídeo, inclusive LCUs, CUs e PUs, e calcular valores residuais que podem ser codificados como TUs. A intra codificação conta com predição espacial para reduzir ou remover redundância espacial em vídeo dentro de um dado quadro de vídeo. A inter-codificação conta com predição temporal para reduzir ou remover a redundância temporal em vídeo dentro de quadros adjacentes de uma sequência de vídeo. O modo intra (modo I) pode referir-se a qualquer um de vários modos de compactação espacial. Os modos inter, tais como predição unidirecional (modo P), predição bidirecional (modo B) ou predição P/B generalizada (modo GPB), podem referir-se a qualquer um de vários modos de compactação temporal. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem efetuar codificação intra preditiva, enquanto a unidade de intra predição 46 pode efetuar codificação intra preditiva.
[0065] Conforme mostrado na Figura 4, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro ou fatia de vídeo a ser codificada. No exemplo da Figura 4, o codificador de vídeo 20 inclui uma unidade de seleção de modo 40, uma unidade de predição 41, um armazenamento de quadros de referência 64, um somador 50, uma unidade de transformada 52, uma unidade de quantificação 54 e uma unidade de codificação por entropia 56. A unidade de predição 41 inclui uma unidade de estimação de movimento 42, uma unidade de compensação de movimento 44 e uma unidade de intra predição 46. Para reconstrução de blocos de vídeo, o codificador de vídeo 20 inclui também uma unidade de quantificação inversa 58, uma unidade de transformada inversa 60 e um somador 62. Um filtro de desbloqueio (não mostrado na Figura 4) pode ser também incluído para filtrar fronteiras de blocos de modo a remover artefatos de bloqueio do vídeo reconstruído. Se desejado, o filtro de desbloqueio filtraria tipicamente a saída do somador 62.
[0066] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro ou fatia de vídeo a ser codificada. O quadro ou fatia pode ser dividida em vários blocos de vídeo ou CUs. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 efetuam codificação intra preditiva do bloco de vídeo recebido com relação a um ou mais blocos em um ou mais quadros de referência de modo a se obter compactação temporal. A unidade de intra predição 46 pode efetuar codificação intra preditiva do bloco de vídeo recebido com relação a um ou mais blocos vizinhos no mesmo quadro ou fatia como o bloco a ser codificado, de modo a se obter compactação espacial.
[0067] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, como, por exemplo, com base em resultados de erro, e provê a seleção do modo de codificação para a unidade de predição 41. A unidade de predição 41 produz então um bloco intra ou inter-codificado e provê o bloco codificado para o somador 50 de modo a se gerarem dados em bloco residuais e para o somador 62, de modo a se reconstruir o bloco codificado para utilização como um quadro de referência. Quando a unidade de seleção de modo 40 seleciona codificação intra preditiva para um bloco, a unidade de intra predição 46 pode selecionar um modo de intra predição para o bloco. Por exemplo, o modo de intra predição selecionado pode ser um dos 35 modos providos pelo HM. O número de modos de intra predição a partir dos quais um modo de intra predição é selecionado para um dado bloco pode depender do tamanho do bloco, conforme mostrado no exemplo da TABELA 1 acima.
[0068] Em um exemplo, quando a unidade de seleção de modo 40 seleciona codificação inter-preditiva, a unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem executar processamento associado à codificação inter-preditiva de modo a se gerar um bloco inter-codificado. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são mostradas separadamente para fins conceptuais. A estimação de movimento, executada pela unidade de estimação de movimento 42, é o processo de gerar vetores de movimento, que estima o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de um bloco preditivo ou PU dentro de um quadro de referência preditivo (ou outra unidade codificada) com relação ao bloco atual que é codificado dentro do quadro atual (ou outra unidade codificada). Um bloco preditivo é um bloco que é considerado como correspondendo de perto ao bloco de vídeo ou PU a ser codificada em termos de diferença de pixel, o que pode ser determinado pela soma da diferença absoluta (SAD), soma da diferença ao quadrado (SSD) ou por outras métricas de diferença.
[0069] Um vetor de movimento pode indicar também o deslocamento de uma partição de um macrobloco. A compensação de movimento pode envolver a busca ou a geração do bloco de predição com base no vetor de movimento determinado pela estimação de movimento. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel de sub-número inteiro de quadros de referência armazenados no armazenamento de quadros de referência 64. Por exemplo, o codificador de vídeo 20 pode calcular valores de posições de pixel de um quarto, posições de pixel de um oitavo e outras posições de pixel fracionárias do quadro de referência. Portanto, a unidade de estimação de movimento 42 pode efetuar uma busca de movimento com relação às posições de pixel completas e às posições de pixel fracionárias e transmitir um vetor de movimento com precisão de pixel fracionária.
[0070] A unidade de estimação de movimento 42 calcula um vetor de movimento para um bloco de vídeo ou PU de um quadro inter-codificado comparando a PU com blocos de um quadro de referência no armazenamento de quadros de referência 64. A unidade de compensação de movimento 44 pode também interpolar pixels de sub-número inteiro do quadro de referência, como, por exemplo, um quadro I ou um quadro P. O HM, como exemplo, descreve duas listas: a lista 0, que inclui quadros de referência que têm uma ordem de exibição anterior à do quadro atual que é codificado, e a lista 1, que inclui quadros de referência que têm uma ordem de exibição posterior à do quadro atual que é codificado. Portanto, os dados armazenados no armazenamento de quadros de referência 64 podem ser organizados de acordo com estas listas. Em alguns casos, a unidade de estimação de movimento 42 pode também calcular um valor de diferença de vetor de movimento (MVD) para o vetor de movimento e passar o valor de MVD, em vez do vetor de movimento propriamente dito, para a unidade de codificação por entropia 56.
[0071] Em um exemplo, quando a unidade de seleção de modo 40 seleciona codificação intra preditiva, a unidade de intra predição 46 pode executar processamento associado à codificação intra preditiva de modo a se gerar um bloco intra codificado. Conforme observado acima, com base no tamanho do bloco, pode ser determinado o número de modos de intra predição disponíveis para o bloco. Um exemplo de correspondência entre tamanho de bloco e número de modos de intra predição disponíveis para blocos desse tamanho é mostrado na TABELA 1 na TABELA 2 acima. A unidade intra preditiva 46 pode codificar de maneira intra preditiva o bloco de vídeo atual com relação a blocos vizinhos, codificados anteriormente, como, por exemplo, os blocos acima, acima e à direita, e acima e à esquerda, ou à esquerda do bloco atual, supondo-se uma ordem ou blocos de codificação da esquerda para a direita, do topo para a base. A unidade de intra predição 46 pode utilizar um bloco vizinho com base no modo de intra predição selecionado para o bloco atual.
[0072] A unidade de intra predição 46 pode determinar o modo de intra predição apropriado para o bloco, pela seleção de um dos modos de intra predição disponíveis. A unidade de intra predição 46 pode selecionar um modo de intra predição, por exemplo, calculando valores de erro para os diversos modos de intra predição associados ao tamanho de bloco e selecionando um modo que apresente o valor de erro mais baixo. Os modos de predição direcional podem incluir funções para combinar valores de pixels espacialmente vizinhos e aplicar os valores combinados a uma ou mais posições de pixel em uma unidade de predição (PU). Uma vez que os valores para as posições de pixel tenham sido calculados, a unidade de intra predição 46 pode calcular um valor de erro para o modo de predição com base na diferença de pixel entre a PU e o bloco atual a ser codificado. A unidade de intra predição 46 pode continuar testando modos de intra predição associados ao tamanho de bloco do bloco atual até que um modo de intra predição que apresenta um valor de erro aceitável seja descoberto. O modo de intra predição que resulta no valor de erro mais baixo pode ser então utilizado para gerar a PU para o bloco atual. A unidade de intra predição 46 pode sinalizar o modo de intra predição selecionado de modo que seja codificado com os elementos de sintaxe associados ao bloco codificado.
[0073] De acordo com esta descrição, o codificador de vídeo 20 pode determinar se ou não aplicar um filtro de suavização aos pixels em volta das amostras de predição do bloco atual que é codificado com a utilização de codificação intra preditiva. A determinação pode ser baseada no tamanho de bloco e no modo de intra predição utilizado na codificação do bloco atual. Em um exemplo, de acordo com as técnicas desta descrição, o filtro de suavização não é aplicado quando são utilizados os modos 0, 1 ou 2, que correspondem aos modos vertical, horizontal e DC, respectivamente, uma vez que cada um destes modos apresenta resultados de predição relativamente precisos sem aplicação de suavização. Portanto, quando a direção de predição é perfeitamente horizontal, vertical ou o modo de intra predição e o modo DC, o filtro de suavização não é aplicado. A determinação de se ou não aplicar um filtro de suavização para outros modos (isto é, os modos diagonais) depende do tamanho da unidade de predição e do modo de intra predição. A TABELA 3 abaixo mostra um relação exemplar de combinações de tamanho de bloco e modo de intra predição para as quais um filtro de suavização é aplicado. As combinações de tamanho de bloco e modo de intra predição para as quais a filtragem pode ser aplicada podem ser baseadas em treinamento OFF-LINE e resultados estatísticos. A TABELA 3 não representa o único tipo de relação que pode ser definido, mas meramente apresenta um exemplo compatível com esta descrição. TABELA 3
[0074] Como mostra a TABELA 3, a determinação quanto a se aplicar um filtro de suavização é genérica e permanece a mesma com base no tamanho de bloco e no modo de intra predição utilizado para codificar o bloco. Em um exemplo, as combinações de tamanhos e modos de intra predição mostradas acima na TABELA 3, e para as quais um filtro de suavização é aplicado, podem ser pré-definidas em uma tabela de busca (LUT). A LUT pode estar disponível ou no codificador ou no decodificador, ou o codificador pode enviá-la ao decodificador. Portanto, a determinação quanto a se aplicar ou não um filtro de suavização pode ser genérica e permanece a mesma independentemente das alterações no codificador e/ou no decodificador, e a sinalização da determinação de filtragem pode não ser necessária. Além disto, fazer a determinação de se ou não aplicar um filtro de suavização não incorre em complexidade significativa no codificador.
[0075] Em um exemplo, durante a codificação intra preditiva de um bloco, o codificador pode determinar se ou não aplicar um filtro de suavização às amostras preditivas com base na combinação do tamanho do bloco e do modo intra preditivo utilizado, e de acordo com as combinações definidas em uma LUT. Estas combinações podem ser associadas à opção de filtragem mais provável indicada em uma tabela de filtros mais prováveis. Por exemplo, uma tabela de filtros mais prováveis pode ser criada para indicar, para cada combinação de tamanho de bloco e modo de intra predição, qual opção de filtragem utilizar. Em um exemplo, um filtro de suavização pode ser selecionado de uma lista de candidatos a filtro para cada combinação de tamanho de bloco e modo de intra predição. A opção por nenhuma filtragem pode ser generalizada em um filtro de suavização que é um filtro para todas as passagens. Em alguns exemplos, podem ser utilizados um ou mais filtros de suavização, em que, por exemplo, um filtro de suavização pode funcionar para algumas combinações de tamanhos de bloco e modos de intra predição e um segundo filtro de suavização pode funcionar melhor para outras combinações de tamanhos de bloco e modos de intra predição. O número de filtros no conjunto de candidatos a filtro pode variar de um sistema para outro. Em um exemplo, as opções de filtro para uma combinação de tamanho de bloco e modo de intra predição podem ser baseadas em treinamento OFF-LINE com dados de vídeo de treinamento diferentes. Para simplificar, o número de filtros pode ser 3, o filtro 0, o filtro 1 e o filtro 2, em que o filtro 0 indica uma filtragem para todas as passagens (isto é, nenhuma filtragem). Com a utilização dos filtros candidatos, uma tabela de filtros mais prováveis pode ser gerada de acordo com a tabela seguinte, que é representada em pseudo-código:
[0076] No exemplo acima, o filtro de suavização mais provável pode ser definido para cada tamanho de bloco e modo de intra predição. O índice de tabela de um filtro de suavização para uma combinação específica pode ser definido como [S, M], que corresponde ao tamanho e ao modo. O tamanho de bloco pode variar de 1 a 7, correspondendo aos tamanhos de bloco 2x2, 4x4, 8x8, 16x16, 32x32, 64x64 e 128x128, por exemplo. O modo de intra predição pode variar de 1 a 40, por exemplo. No exemplo desta descoberta, contudo, apenas 35 modos são definidos e, portanto, o resto dos modos é preenchido com 0, que indica filtro 0 ou filtro para todas as passagens. O exemplo da tabela acima mostra, para cada entrada na tabela, um filtro de suavização do conjunto exemplar de filtros (0, 1, 2). Os modos de intra predição para os quais um filtro de suavização 1 ou 2 é aplicado correspondem às combinações definidas na TABELA 3 acima.
[0077] Em um exemplo, durante a codificação, o codificador de vídeo 20 pode implementar codificação intra preditiva dependente de modo fixo, em que o codificador de vídeo 20 seleciona o filtro de suavização mais provável para cada combinação de tamanho de bloco e modo de intra predição, conforme definido pela tabela acima. Neste exemplo, o codificador de vídeo 20 pode indicar a codificação intra preditiva dependente de modo fixo, sem ter que codificar o filtro de suavização que é utilizado para um bloco. Durante a codificação, se a codificação intra preditiva dependente de modo fixo for indicada, o decodificador (o decodificador de vídeo 30, por exemplo) pode determinar o filtro de suavização a ser aplicado utilizando informações da tabela acima com baseadas no tamanho de bloco e informações sobre o modo de intra predição utilizadas como índice para a tabela. Por exemplo, um bloco de 8x8 codificado utilizando-se o modo de intra predição 6 pode corresponder a Filtro1([3,6]), que é o filtro de suavização 2. O Filtro1 pode indicar que as informações são obtidas da tabela que corresponde à tabela de filtros mais prováveis.
[0078] Em alguns casos, a utilização da codificação intra preditiva dependente de modo fixo pode não render os melhores resultados para alguns dos tamanhos de bloco maiores, como, por exemplo, 64x64 e 128x128. Em um exemplo, durante a codificação intra preditiva de um bloco, o codificador de vídeo 20 pode determinar se ou não aplicar um filtro de suavização a amostras preditivas utilizando codificação intra preditiva dependente de modo adaptativo. Para blocos menores que um tamanho-limite, como, por exemplo, 64x64, o codificador de vídeo 20 pode utilizar a tabela de filtros mais prováveis mostrada acima. Para blocos maiores ou iguais ao limite, como, por exemplo, blocos de 64x64 e maiores, o codificador de vídeo 20 pode avaliar os resultados para aplicar filtros de suavização diferentes, que incluem nenhum filtro, às amostras preditivas e determinar qual apresenta melhores resultados. Os resultados podem ser determinados com base em uma métrica de qualidade ou em uma métrica de distorção de taxa. A parte de taxa da métrica pode indicar a taxa de codificação do bloco atual, e a parte de distorção da métrica pode indicar o grau de distorção do bloco atual. A métrica de distorção de taxa pode ser baseada na taxa, na distorção ou em uma combinação de ambas.
[0079] Em um exemplo, a avaliação da aplicação de filtros de suavização diferentes pode ser baseada na taxa de codificação associada à aplicação de cada dos filtros ao bloco atual. A taxa de codificação pode ser proporcional à quantidade de dados residuais que correspondem ao bloco atual quando um filtro de suavização é utilizado. Quanto maior a quantidade de dados residuais, mais elevada a taxa de codificação para o bloco atual. O filtro de suavização que resulta em uma quantidade menor de dados residuais e, portanto, em uma taxa de codificação melhor pode ser considerado o filtro que apresenta melhores resultados.
[0080] Em outro exemplo, a avaliação da aplicação de filtros de suavização diferentes pode ser baseada no grau de distorção associado à aplicação de cada um dos filtros ao bloco atual. Em um exemplo, o grau de distorção pode ser determinado com base em um valor de erro quadrático médio entre o bloco de predição e o bloco original. O bloco de predição pode ser o resultado da utilização de amostras de predição pela aplicação de um filtro de suavização selecionado. O filtro de suavização que resulta em um valor de erro quadrático médio menor e, portanto, em menos distorção pode ser considerado o filtro que apresenta melhores resultados.
[0081] Em um exemplo, o codificador de vídeo 20 pode comparar os resultados da aplicação do filtro especificado pela tabela de filtros mais prováveis mostrada acima com filtros especificados por uma segunda tabela de filtros mais prováveis, mostrada a seguir, que é representada em pseudo-código:
[0082] Em alguns exemplos, mais tabelas podem ser utilizadas para especificar outros filtros. No exemplo simples de utilização de uma tabela de filtros mais prováveis e uma segunda tabela de filtros mais prováveis, as entradas que correspondem a filtros não zero, como, por exemplo, os filtros 1 e 2, na primeira tabela podem ser substituídas pelo filtro 0 na segunda tabela e vice-versa. Desta maneira, a comparação entre o filtro mais provável e o segundo filtro mais provável é entre filtragem e não filtragem. Se a opção de filtragem que apresenta os melhores resultados for a especificada na tabela de filtros mais prováveis, então o codificador de vídeo 20 pode não precisar indicar nada, uma vez que o decodificador supõe que o filtro mais provável é utilizado se não especificado de outro modo. Se a opção de filtragem que apresenta os melhores resultados for a especificada na segunda tabela de filtros mais prováveis, o codificador de vídeo 20 pode sinalizar um modo de filtragem de modo a indicar que um outro filtro que não o filtro mais provável deve ser aplicado durante a decodificação. As tabelas de filtros podem ser armazenadas em uma unidade de memória (não mostrada) associada ao codificador de vídeo 20 e acessada pela unidade de intra predição 46 durante a codificação.
[0083] A sinalização do modo de filtragem pode ser feita de várias maneiras. Em um exemplo, o codificador de vídeo 20 pode utilizar um indicador de modo de filtragem para sinalizar se outra filtragem que não a que é especificada na tabela de filtros mais prováveis é utilizada para um determinado bloco. Em exemplos nos quais há mais de duas tabelas de filtros, como, por exemplo, quando há uma terceira (ou mais) tabela de filtros mais prováveis, o codificador de vídeo 20 pode indicar qual das segunda ou terceira (ou mais) tabelas de filtros mais prováveis é utilizada para um determinado bloco. Em ainda outro exemplo, a sinalização pode ser baseada em uma combinação de informações contextuais, tais como o tamanho de bloco do bloco atual, o modo de predição e o modo de filtragem de blocos visinhos. Desta maneira, o decodificador pode determinar, com base em informações contextuais, se a filtragem deve ou não deve ser utilizada com um bloco e utilizar a tabela VLC ou informações de CABAC para determinar o modo de filtragem.
[0084] Em outros exemplos, outras técnicas podem ser utilizadas para determinar se aplicar ou não um filtro de suavização. As técnicas de filtro de suavização desta descrição podem prover uma decisão sobre o modo de filtragem com intra suavização (se deve filtrar ou não) com base nas estatísticas de uma métrica de distorção de taxa como uma função da combinação de modo de intra predição e tamanho de bloco.
[0085] Novamente com referência à Figura 2B, ela mostra as combinações de modos de intra predição e tamanhos de PU, que são candidatas à filtragem de suavização com base na comparação entre as estatísticas dos modos de intra suavização filtrados e não filtrados. Por exemplo, as estatísticas indicam que as direções de predição vertical (modo 0) e horizontal (modo 1) são candidatas à filtragem de intra suavização para o tamanho de PU 32x32 e as direções de intra predição diagonais principais (modos 3, 6, 9) são candidatas à filtragem de intra suavização para os tamanhos de PU 32x32, 16x16, 8x8 e 4x4. As estatística podem indicar também que as direções de intra predição entre as direções de intra predição horizontal e vertical e as direções diagonais principais são candidatas à filtragem de intra suavização em tamanhos de PU progressivamente menores. Para o modo DC, as estatísticas podem indicar que o modo 2, o modo DC, não é um candidato à filtragem de intra suavização, enquanto o modo planar (modo 34) é um candidato à filtragem de intra suavização em determinados tamanhos de PU, como, por exemplo, 8x8, 16x16 e 32x32.
[0086] Embora as estatística possam indicar quais modos de intra predição e quais tamanhos de PU são candidatos à filtragem de intra suavização, experiências com eficácia de codificação podem demonstrar que a atribuição de candidatos à filtragem de intra suavização mostrada na Figura 2B pode não ser ótima no sentido da distorção de taxa. Portanto, os candidatos à intra suavização da Figura 2B podem ser um “padrão de gabarito” para derivar “padrões de subconjunto” com eficácia de codificação mais elevada. Em um exemplo, um “padrão de subconjunto” é definido pela seleção de candidatos à filtragem de intra suavização a partir do “padrão de gabarito” por modo de intra predição e por tamanho de PU ou, alternativamente, nenhuma filtragem de intra suavização para qualquer tamanho de PU que corresponde a um determinado modo de intra predição. As TABELAS 4-7 abaixo apresentam alguns exemplos de padrão de subconjunto. As TABELAS 4-7 podem ser geralmente referidas como tabelas de decisões de filtragem.
[0087] Em cada uma das TABELAS 4-7, “1” pode indicar que a filtragem de intra suavização é aplicada ao modo de intra predição e ao tamanho de bloco correspondentes. Portanto, “1” em uma posição de coluna e fileira específica indica que a intra suavização é aplicada no caso de um modo de intra predição e um tamanho de bloco que são mapeados nessas posições de coluna e fileira, respectivamente. Em um exemplo, a TABELA 4 pode corresponder ao “padrão de gabarito” e cada uma das TABELAS 5-7 pode corresponder a um “padrão de subconjunto” diferente. Em outro exemplo, a TABELA 7 pode corresponder ao “padrão de gabarito”, e cada uma das TABELAS 4-6 pode corresponder a um “padrão de gabarito”. O “padrão de gabarito” pode corresponder à Figura 2B e é mostrada pela TABELA 4, por exemplo, que mostra também o tamanho de PU 64x62 para generalização. As TABELAS 5-7 podem representar “padrões de subconjunto”. Em um exemplo desta descrição, a TABELA 7 pode representar o “padrão de subconjunto” que é adequado para sequências de vídeo gerais baseadas em experiências de eficácia de codificação. TABELA 4 TABELA 5 TABELA 6 TABELA 7
[0088] Depois que a unidade de predição 41 gera o bloco preditivo ou PU para o bloco de vídeo atual (inter- ou intra codificado), o codificador de vídeo 20 forma um bloco de vídeo residual subtraindo o bloco preditivo do bloco de vídeo atual. O somador 50 representa o componente ou componentes que executam esta operação de subtração. A unidade de transformada 52 pode formar uma ou mais unidades de transformada (TUs) a partir do bloco residual. A unidade de transformada 52 aplica uma transformada, tal como uma transformada de co-seno discreta (DCT), ou uma transformada conceptualmente semelhante, à TU, produzindo um bloco de vídeo que compreende coeficientes de transformada residuais. A transformada pode converter o bloco residual do domínio de pixels no domínio de transformada, tal como o domínio da frequência.
[0089] A unidade de transformada 52 pode executar outras transformadas, tais como as definidas pelo HM, que são conceptualmente semelhantes à DCT. Podem ser também utilizadas transformadas de wavelet, transformadas de número inteiro, transformadas de sub-banda ou outros tipos de transformada. Seja como for, a unidade de transformada 52 aplica a transformada ao bloco residual, produzindo um bloco de coeficientes de transformada residuais. A transformada pode converter as informações residuais do domínio de valores de pixel no domínio de transformada, tal como o domínio da frequência.
[0090] A unidade de transformada 52 pode enviar os coeficientes de transformada resultantes à unidade de quantificação 54. A unidade de quantificação 54 quantifica os coeficientes de transformada de modo a reduzir ainda mais a taxa de bits. O processo de quantificação pode reduzir a profundidade bits associada a alguns ou todos os coeficientes. O grau de quantificação pode ser modificado com o ajuste de um parâmetro de quantificação. Em alguns exemplos, a unidade de quantificação 54 pode efetuar então uma varredura na matriz, incluindo os coeficientes de transformada quantificados. Alternativamente, a unidade de codificação por entropia 56 pode efetuar a varredura.
[0091] Em seguida à quantificação, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantificados. Por exemplo, a unidade de codificação por entropia 56 pode executar codificação de comprimento variável adaptativo ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC) ou outra técnica de codificação por entropia. Em seguida à codificação por entropia pela unidade de codificação por entropia 56, o vídeo codificado pode ser transmitido para outro aparelho (o decodificador de vídeo 30, por exemplo) ou arquivado para transmissão ou recuperação posterior.
[0092] Em alguns casos, a unidade de codificação por entropia 56 ou outra unidade do codificador de vídeo 20 pode ser configurada para desempenhar outras funções de codificação além da codificação por entropia. Por exemplo, a unidade de codificação por entropia 56 pode ser configurada para determinar os valores de CBP para os macroblocos e partições. Além disto, em alguns casos, a unidade de codificação por entropia 56 pode efetuar codificação de comprimento de execução dos coeficientes em um macrobloco ou partição dela. Em particular, a unidade de codificação por entropia 56 pode aplicar uma varredura em ziguezague ou outro padrão de varredura para varrer os coeficientes de transformada em um macrobloco ou partição e codificar execuções de zeros para compactação adicional. A unidade de codificação por entropia 56 pode também construir informações de cabeçalho que incluem elementos de sintaxe apropriados para transmissão no fluxo de bits de vídeo codificado. Para codificar por entropia os elementos de sintaxe, a unidade de codificação por entropia 56 pode efetuar CABAC e tornar binários os elementos de sintaxe em um ou mais bits binários com base em um modelo de contexto. A unidade de codificação por entropia pode efetuar também CAVLC e codificar os elementos de sintaxe como palavras de código de acordo com probabilidades baseadas no contexto.
[0093] De acordo com as técnicas desta descrição, a unidade de codificação por entropia 56 pode ser configurada para codificar a indicação de que um outro filtro de suavização que não o filtro de suavização mais provável é aplicado a amostras de predição durante a codificação intra preditiva. Quando a decisão de filtragem para um bloco é mesma especificada na tabela de filtros mais prováveis, o codificador de vídeo 20 pode não enviar uma indicação ao decodificador e, portanto, não é necessário codificar nenhuma informação adicional. Quando uma indicação é necessária, como, por exemplo, quando a decisão de filtragem para um bloco é especificada na segunda (ou mais) tabela de filtros mais prováveis, o codificador de vídeo 20 pode codificar uma indicação referente à filtragem. Além disto, o codificador de vídeo 20 pode codificar o modo de intra predição utilizado na codificação do bloco. A unidade de codificação por entropia 56 pode codificar a indicação (como, por exemplo, o modo de intra predição e a decisão de filtragem, quando aplicáveis) utilizando CABAC. Além disto, a unidade de codificação por entropia 56 pode utilizar informações contextuais para efetuar CABAC de modo a codificar a indicação de que o modo de intra predição para um bloco e informações de filtragem quando ou segundo (ou mais) filtro mais provável é aplicado às amostras de predição.
[0094] A unidade de quantificação inversa 58 e a unidade de transformada inversa 60 aplicam quantificação inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixels para utilização posterior como um bloco de referência de um quadro de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando o bloco residual a um bloco preditivo de um dos quadros de um armazenamento de quadros de referência 64. A unidade de compensação de movimento 44 pode também aplicar um ou mais filtros de interpolação ao bloco residual reconstruído de modo a calcular os valores de pixel de sub-número inteiro para utilização na estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado em movimento produzido pela unidade de compensação de movimento 44 de modo a se produzir um bloco de vídeo reconstruído para armazenamento no armazenamento de quadros de referência 64. O bloco de vídeo reconstruído pode ser utilizado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para inter-predizer um bloco em um quadro de vídeo subsequente.
[0095] A Figura 5 é um diagrama de blocos que mostra um exemplo de decodificador de vídeo 30, que decodifica uma sequência de vídeo codificada. No exemplo da Figura 5, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 70, uma unidade de predição 71, uma unidade de quantificação inversa 76, uma unidade de transformação inversa 78, um armazenamento de quadros de referência 82 e um somador 80. A unidade de predição 71 inclui uma unidade de compensação de movimento 72 e uma unidade de intra predição 74. O decodificador de vídeo 30 pode, em alguns exemplos, executar uma passagem de decodificação geralmente correspondente à passagem de codificação descrita com relação ao codificador de vídeo 20 (Figura 4). A unidade de predição 71 pode gerar dados de predição com base nas informações recebidas da unidade de codificação por entropia 70. Quando a codificação inter- preditiva é indicada, a unidade de compensação de movimento 72 pode gerar dados de predição com base nos vetores de movimento recebidos da unidade de codificação por entropia 70. Quando a codificação intra preditiva, a unidade de intra predição 74 pode gerar dados de predição para o bloco atual do quadro atual com base no modo de intra predição indicado e nos dados de blocos decodificados anteriormente do quadro atual.
[0096] O decodificador de vídeo 30 pode receber um fluxo de bits de vídeo codificado, como, por exemplo, por meio de rede, difusão, ou de um meio físico. O fluxo de bits codificado pode incluir dados de vídeo codificados por entropia. A unidade de decodificação por entropia 70 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits de modo a gerar coeficientes quantificados, vetores de movimento e dados de predição. A unidade de decodificação por entropia 70 emite os vetores de movimento e dados de predição para a unidade de predição 71.
[0097] De acordo com as técnicas desta descrição, os dados de vídeo codificados por entropia podem incluir uma indicação codificada por entropia do modo de intra predição utilizado na codificação do bloco atual. Os dados de vídeo codificados por entropia podem incluir também uma indicação codificada por entropia da filtragem, que indica uma decisão sobre filtro de suavização. Em um exemplo, a indicação de filtragem pode ser utilizada para indicar que a tabela de filtros mais prováveis não foi utilizada para selecionar o filtro de suavização durante a codificação intra preditiva do bloco atual. Quando os dados de vídeo não incluem uma indicação de filtragem, a indicação de nenhuma filtragem implica que a tabela de filtros mais prováveis foi utilizada para selecionar o filtro de suavização durante a codificação intra preditiva do bloco atual. Os dados de vídeo codificados por entropia podem incluir também informações sobre tamanho de bloco, que a unidade de decodificação por entropia 70 pode utilizar juntamente com o modo de intra predição como informações contextuais quando decodifica por entropia a indicação de filtragem para o bloco codificado por intra predição. Desta maneira, a unidade de decodificação por entropia 70 pode decodificar a indicação de filtragem (se ou não um filtro de suavização é aplicado, por exemplo) e enviar a indicação à unidade de intra predição 74.
[0098] A unidade de compensação de movimento 72 pode utilizar os vetores de movimento recebidos no fluxo de bits de modo a identificar um bloco de predição em quadros de referência no armazenamento de quadros de referência 82. A unidade de intra predição 74 pode utilizar os modos de intra predição recebidos no fluxo de bits para formar um bloco de predição a partir de blocos espacialmente adjacentes. A unidade de quantificação inversa 76 quantifica por inversão, isto é, desquantifica, os coeficientes de bloco quantificados apresentados no fluxo de bits e codificados pela unidade de decodificação por entropia 70. O processo de quantificação inversa pode incluir um processo convencional, como, por exemplo, definido pelo padrão de decodificação H.264. O processo de quantificação inversa pode incluir também a utilização de um parâmetro de quantificação QPy calculado pelo codificador de vídeo 20 para cada bloco de vídeo ou CU de modo a se determinar o grau de quantificação e, da mesma maneira, o grau de quantificação inversa que deve ser aplicado. A unidade de transformada inversa 78 aplica uma transformada inversa, como, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa, ou um processo de transformada inversa conceptualmente semelhante, aos coeficientes de transformada de modo a produzir blocos residuais no domínio dos pixels.
[0099] A unidade de compensação de movimento 72 pode também efetuar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 pode utilizar filtros de interpolação utilizados pelo codificador de vídeo 20 durante a codificação do bloco de vídeo, de modo a calcular valores interpolados para pixels de sub-número inteiro de um bloco de referência. A unidade de compensação de movimento 72 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e utilizar os filtros de interpolação para produzir blocos preditivos.
[00100] A unidade de compensação de movimento 72 utiliza algumas das informações de sintaxe de modo a determinar os tamanhos das LCUs e CUs utilizadas para codificar quadro(s) e/ou fatia(s) da sequência de vídeo codificada, particionar as informações que descrevem como cada macrobloco de um quadro da sequência de vídeo codificada é particionada, modos que indicam como cada partição é codificada, um ou mais quadros de referência (e listas de quadros de referência) para cada CU inter-codificada e outras informações para decodificar a sequência de vídeo codificada.
[00101] A unidade de intra predição 74 pode também determinar se ou não aplicar um filtro de suavização às amostras de predição quando da execução de um bloco de predição. A unidade de intra predição 74 pode determinar se ou não aplicar o filtro de suavização com base no tamanho de bloco e no modo de intra predição correspondente. Se nenhuma indicação de filtragem for assinalada, a unidade de intra predição 74 pode determinar filtragem com base no que é especificado na tabela de filtros mais prováveis (mostrada acima) para a combinação de tamanho de bloco e modo de intra predição. Se uma indicação de filtragem for sinalizada, a unidade de intra predição 74 pode determinar que a decisão de filtragem não é baseada na tabela de filtros mais prováveis e pode determinar filtragem com base no que é especificado na segunda tabela de filtros mais prováveis (mostrada acima) para essa combinação de tamanho de bloco e modo de intra predição. Em um exemplo, mais de uma tabela de filtros adicional pode ser apresentada, como, por exemplo, uma segunda, terceira, ou mais, tabelas de filtros mais prováveis. Neste exemplo, a indicação de filtragem pode indicar também qual das tabelas deve ser utilizada para determinar o filtro de suavização a ser aplicado. As tabelas de filtros podem ser armazenadas em uma unidade de memória (não mostrada) no decodificador de vídeo 30. A unidade de intra predição 74 pode acessar as tabelas de filtros da memória durante a decodificação.
[00102] O somador 80 soma os blocos residuais com os blocos de predição correspondentes gerados pela unidade de compensação de movimento 72 ou pela unidade de intra predição 74 para formar blocos decodificados. Se desejável, um filtro desbloqueador pode ser também aplicado para filtrar os blocos decodificados de modo a se removerem artefatos de bloqueio. Os blocos de vídeo decodificados são em seguida armazenados no armazenamento de quadros de referência 82, que provê blocos de referência para compensação de movimento subsequente e também produz vídeo decodificador para apresentação em um aparelho de exibição (tal como o aparelho de exibição 32 da Figura 1).
[00103] A Figura 6 é um fluxograma que mostra um método exemplar para codificar dados de vídeo de acordo com as técnicas desta descrição. Embora descritas com relação ao codificador de vídeo 20 (Figuras 1 e 4) para fins de exemplificação, deve ficar entendido que as técnicas da Figura 6 podem ser executadas por qualquer unidade de codificação de vídeo. Além do mais, as etapas mostradas na Figura 6 podem ser executadas em uma ordem diferente, determinadas etapas podem ser omitidas e etapas adicionais podem ser incluídas, sem que se abandonem as técnicas desta descrição.
[00104] O codificador de vídeo 20 pode receber um bloco (uma CU, por exemplo) de dados de vídeo a ser codificado. Quando o bloco atual é designado como um bloco a ser codificado com a utilização de codificação intra preditiva, o codificador de vídeo 20 pode determinar se ou não aplicar um filtro de suavização às amostras de predição e determinar o filtro de suavização se um deles vier a se aplicado. Um filtro de suavização pode ser, em algumas ocorrências, aplicado às amostras de predição ou aos preditores, que são utilizados para predizer um bloco no mesmo quadro na codificação intra preditiva. A aplicação do filtro de suavização em alguns casos proporciona predição mais precisa e reduz ao mínimo o bloqueio no quadro predito reconstruído.
[00105] O codificador de vídeo 20 pode determinar se vai funcionar na codificação intra preditiva dependente de modo fixo ou na codificação intra preditiva dependente de modo adaptativo (602). Em um exemplo, a determinação pode ser feita ao nível de sequência ou imagem com base no conteúdo, ou com base no tamanho de bloco. Para blocos grandes, por exemplo, pode ser utilizada codificação intra preditiva dependente de modo adaptativo e, para blocos pequenos, pode ser utilizada a codificação intra preditiva dependente de modo fixo. Consequentemente, quando são utilizados blocos grandes, há menos blocos a serem codificados dentro de uma imagem e, assim, uma quantidade de informações de overhead menor do que quando blocos pequenos são utilizados. Entretanto, a codificação intra preditiva dependente de modo fixo acrescenta pouca ou nenhuma informação de overhead, ao passo que a codificação intra preditiva dependente de modo adaptativo exige informações de overhead adicionais. Desta maneira, o modo selecionado pode proporcionar uma compensação entre as informações de overhead e o desempenho.
[00106] Se o codificador de vídeo 20 vier a funcionar na codificação intra preditiva dependente de modo fixo, o codificador de vídeo 20 pode determinar se ou não aplicar um filtro de suavização com base no filtro especificado em uma tabela de filtros, como, por exemplo, a tabela de filtros mais prováveis, selecionado com base na combinação de tamanho de bloco e modo de intra predição, e aplicar o filtro especificado (604).
[00107] Em um exemplo, para cada um dos modos de intra predição disponíveis, como, por exemplo, os 35 modos definidos pelo HM, se ou não um filtro de suavização é aplicado depende do tamanho de bloco. A TABELA 3 acima mostra as combinações de tamanho de bloco e modo de intra predição para as quais um filtro de suavização é aplicado. Uma tabela de filtros mais prováveis (mostrada acima) pode ser gerada com base nas combinações de tamanho de bloco e modo de intra predição. Cada uma das entradas da tabela pode indicar um filtro que deve ser aplicado para o índice correspondente, em que o índice é associado a um tamanho de bloco e um modo de intra predição. Cada um dos filtros especificados na tabela pode ser de um conjunto de filtros, em que o conjunto de filtros pode variar de um fluxo para outro, de um grupo de quadros para outro, de um quadro ou fatia para outro e assim por diante. Por simplificação, um filtro para todas as passagens pode ser identificado para entradas nas quais não é necessário aplicar um filtro de suavização.
[00108] Se o codificador de vídeo 20 vier a funcionar na codificação intra preditiva dependente de modo adaptativo, o codificador de vídeo 20 pode determinar se o tamanho de bloco é igual ou está acima de um tamanho de bloco limite, como, por exemplo, 64x64 (606). Se o tamanho de bloco for menor que o tamanho de bloco limite, então o codificador de vídeo 20 pode aplicar o filtro especificado pela tabela de filtros mais prováveis e determinar se ou não aplicar um filtro de suavização com base no tamanho de bloco e no modo de intra predição (604). Se o tamanho de bloco for igual ou maior que o tamanho de bloco limite, o codificador de vídeo 20 pode determinar se a aplicação de um filtro de acordo com a tabela de filtros mais prováveis rende melhores resultados que a aplicação de um filtro de acordo com uma segunda tabela de filtros mais prováveis (608). Portanto, o codificador de vídeo 20 pode aplicar o filtro correspondente da primeira tabela ao bloco, o filtro correspondente da segunda tabela ao bloco e avaliar os resultados da aplicação dos dois filtros comparando-os um com o outro de modo a determinar qual apresenta melhores resultados.
[00109] Em um exemplo, para cada combinação de tamanho de bloco e modo de intra predição, aplicar um filtro de acordo com uma das tabelas pode ser o mesmo que não aplicar um filtro de todo ou, neste exemplo, aplicar um filtro para todas as passagens. Na realidade, portanto, comparar a aplicação de um filtro de acordo com a tabela de filtros mais prováveis e a aplicação de um filtro de acordo com a segunda tabela de filtros mais prováveis pode ser o mesmo que comparar os resultados da aplicação de um filtro ou da não aplicação de um filtro.
[00110] Se a aplicação do filtro de acordo com a tabela de filtros mais prováveis render os melhores resultados, o codificador de vídeo 20 pode determinar e aplicar o filtro especificado pela tabela de filtros mais prováveis com base na combinação de tamanho de bloco e modo de intra predição associada ao bloco atual (604). Se a aplicação do filtro de acordo com a segunda tabela de filtros mais prováveis render os melhores resultados, o codificador de vídeo 20 pode determinar e aplicar o filtro especificado pela segunda tabela de filtros mais prováveis com base na combinação de tamanho de bloco e modo de intra predição associada ao bloco atual (610). Em alguns exemplos, quando há mais de 2 tabelas de filtros mais prováveis, como, por exemplo, uma terceira ou mais, a comparação entre os resultados da aplicação de todos os filtros possíveis pode ser feita de modo a se determinar a tabela de filtros a ser utilizada para selecionar o filtro de suavização a ser aplicado às amostras de predição. Em alguns exemplos, pode ser utilizada uma série de tabelas de decisões de filtragem, como, por exemplo, as TABELAS 4-7 acima, em que uma tabela pode ser considerada o “padrão de gabarito” e as tabelas restantes podem ser consideradas tabelas alternativa ou “padrões de subconjunto”, obtendo-se opção de filtragem alternativa, conforme descrito acima.
[00111] O codificador de vídeo 20 pode em seguida codificar o bloco atual aplicando o filtro de suavização selecionado às amostras de predição e efetuando codificação intra preditiva de acordo com o modo de intra predição associado ao bloco atual (612). O codificador de vídeo 20 pode codificar também elementos de sintaxe associados à codificação intra preditiva com o bloco atual (614), como, por exemplo, um ou mais elementos de sintaxe que identificam o modo de intra predição. Outros exemplos de elementos de sintaxe associados à codificação intra preditiva que podem ser codificados com um bloco podem ser o tipo de partição associado ao bloco, tamanho de PU, tamanho de TU, CBP e coeficientes quantificados. Se a decisão sobre filtro de suavização aplicada não tiver sido baseada na tabela de filtros mais prováveis ou no “padrão de gabarito”, como, por exemplo, se a decisão de filtragem tiver sido tomada com a utilização da segunda tabela de filtros mais prováveis ou de outros “padrões de subconjunto”, o codificador de vídeo 20 pode codificar também os elementos de sintaxe que indicam que a tabela de filtros mais prováveis não foi utilizada para sinalizar que o bloco não foi codificado com a utilização da codificação intra preditiva dependente de modo fixo. Por exemplo, se a TABELA 7 acima for o “padrão de gabarito” e as TABELAS 4-6 forem os “padrões de subconjunto”, o codificador de vídeo pode codificar elementos de sintaxe indicadores da tabela de “padrão de subconjunto” utilizada, quando uma é utilizada em vez da tabela de “padrão de gabarito”. O codificador de vídeo 20 pode transmitir então o bloco de vídeo codificado, dentro de um quadro de vídeo codificado, e com os elementos de sintaxe, para um decodificador de vídeo (616).
[00112] A Figura 7 é um fluxograma que mostra um método exemplar para decodificar dados de vídeo de acordo com as técnicas desta descrição. Embora descritas com relação ao decodificador de vídeo 30 (Figuras 1 e 5) a título de exemplo, deve ficar entendido que as técnicas da Figura 7 podem ser executadas por qualquer unidade de codificação de vídeo. Além do mais, as etapas mostradas na Figura 7 podem ser executadas em uma ordem diferente, determinadas etapas podem ser omitidas e etapas adicionais podem ser incluídas, sem que se abandonem as técnicas desta descrição.
[00113] O decodificador de vídeo 30 pode receber um bloco codificado (uma CU, por exemplo) de dados de vídeo a ser decodificado (702). O decodificador de vídeo 30 pode decodificar o bloco de vídeo codificado e elementos de sintaxe de modo a determinar que o bloco é codificado com a utilização de codificação intra preditiva (704). Com base nos elementos de sintaxe, o decodificador de vídeo 30 pode determinar o modo de intra predição do bloco (706). O decodificador de vídeo 30 pode determinar se os elementos de sintaxe incluem uma indicação de filtragem (708).
[00114] Se não houver indicação de filtragem, o decodificador de vídeo 30 pode decodificar então o bloco utilizando codificação intra preditiva e aplicar uma opção de filtro de suavização especificada pela tabela de filtros mais prováveis (710). Se houver uma indicação de filtragem, o decodificador de vídeo 30 pode decodificar então o bloco utilizando codificação intra preditiva e aplicar uma opção de filtro de suavização especificada pela segunda tabela de filtros mais prováveis (712). Em ambos os casos, utilizando quer a tabela de filtros mais prováveis, quer a segunda tabela de filtros mais prováveis, o decodificador de vídeo 30 pode determinar o filtro com base na combinação de tamanho de bloco e modo de intra predição associada ao bloco atual. Em alguns exemplos, várias tabelas podem definir segundos (ou mais) filtros prováveis ou pode haver vários filtros de “padrão de subconjunto” e a indicação de filtragem pode indicar a tabela de “padrão de subconjunto” alternativamente à tabela de filtros mais prováveis ou tabela de “padrão de gabarito”.
[00115] Desta maneira, o decodificador de vídeo 30 pode não precisar fazer quaisquer determinações referentes às opções que apresentam os melhores resultados. Se nenhuma indicação for sinalizada pelo codificador, então o decodificador de vídeo 30 supõe que a tabela de filtros mais prováveis ou tabela de “padrão de gabarito” foi utilizada, caso contrário qualquer tipo de sinalização indica que a segunda tabela de filtros mais prováveis foi utilizada. Em alguns exemplos, nos quais mais de duas tabelas de filtros são utilizadas, como, por exemplo, uma terceira (ou mais) tabela de filtros mais prováveis ou “padrões de subconjunto”, a indicação de filtragem pode identificar qual das tabelas adicionais foi utilizada na seleção do filtro de suavização.
[00116] Conforme discutido acima, uma filtragem de intra suavização pode ser utilizada para tamanhos de PU grandes, conforme mostrado pela Figura 2B e na TABELA 4, por exemplo. A filtragem de intra suavização pode ser também utilizada para a maioria dos tamanhos de PU em modos de intra predição que correspondem a direções diagonais verdadeiras (isto é, +/-45 e +/-135 graus) ou modos 3, 6, 9, enquanto a filtragem de intra suavização pode não ser utilizada para tamanhos de PU menores no caso das direções vertical (modo 0) e horizontal (modo 1). Para direções de intra predição entre as direções diagonais e respectivamente as direções horizontal ou vertical, a filtragem intra preditiva pode ser menos provavelmente utilizada para tamanhos de PU pequenos quando a direção está próxima da direção horizontal ou vertical, enquanto mais provavelmente utilizada para tamanhos de PU pequenos quando a direção está próxima as direções diagonais, conforme mostrado na Figura 2B e na TABELA 4. Em um exemplo, um codificador e um decodificador de acordo com as técnicas desta descrição podem aplicar filtragem de intra suavização de acordo com os “padrões de subconjunto” especificados pela TABELA 7, mostrada acima. Em um exemplo, para o modo DC (modo 2), a filtragem de intra suavização pode não ser utilizada para qualquer tamanho de PU. Além disto, para o modo planar (modo 34), a filtragem de intra suavização pode ser utilizada com tamanhos de PU maiores.
[00117] O codificador e o decodificador podem aplicar filtragem de intra suavização de acordo com um “padrão de subconjunto” que é derivado do “padrão de gabarito” (TABELA 4), que especifica para cada combinação de tamanho de PU e modo de intra predição se ou não a filtragem de intra suavização é efetuada. Um “padrão de subconjunto” pode ser derivado selecionando-se candidatos à filtragem de intra suavização do “padrão de gabarito” por modo de intra predição e por tamanho de PU ou, alternativamente, nenhuma filtragem de intra suavização para qualquer tamanho de PU que corresponde ao modo de intra predição. Um “padrão de subconjunto” derivado do “padrão de gabarito” pode ter determinadas características, tais como, por exemplo, para cada modo de intra predição, a filtragem de intra suavização não é aplicada pelo menos para um dos tamanhos de PU, de modo que o codificador tem a opção de efetuar intra predição sem intra suavização. O “padrão de subcomjunto” pode ter também determinadas características, tais como, por exemplo, para cada modo de intra predição, se a filtragem de intra suavização não é aplicada em determinado tamanho de PU, a filtragem de intra suavização pode não ser aplicada em quaisquer tamanhos de PU menores para esse modo de intra predição.
[00118] A computação das amostras de predição para cada combinação de modo de intra predição e tamanho de PU pode estar sujeita a regras de arredondamento, tais como arredondamento para menos, arredondamento para mais ou arredondamento até o número inteiro mais próximo. As regras de arredondamento podem ser modificadas no codificador e no decodificador com base na localização da amostra de predição de maneira determinística, como, por exemplo, com base no modo de intra predição e no tamanho de PU, tal como intercalando amostras de predição com regras de arredondamento diferentes de modo a se aumentar a eficácia de codificação. No exemplo de filtragem de intra suavização das amostras de referência para intra predição, a filtragem de intra suavização pode ser saltada para determinadas localizações de amostras de referência, como, por exemplo, a amostra de referência no canto esquerdo de topo ou outras localizações de amostras de referência de maneira determinística (com base no modo de intra predição e no tamanho de PU, por exemplo), de modo a se aumentar a eficácia de codificação.
[00119] Em um exemplo, o codificador e/ou o decodificador podem armazenar um “padrão de subconjunto” como uma tabela de busca (LUT) e acessar esta LTU de modo a determinar se aplicar ou não filtragem de intra suavização para uma combinação de tamanho de PU e modo de intra predição associada ao bloco atual. Em outro exemplo, o codificador e/ou o decodificador podem representar um “padrão de subconjunto” por um conjunto de condições utilizadas para determinar se aplicar ou não filtragem de intra suavização para as entradas: tamanho de PU e modo de intra predição. Em outro exemplo, o codificador e/ou o decodificador podem representar um “padrão de subconjunto” por uma ou mais equações matemáticas, que computam se aplicar filtragem de intra suavização para as entradas: tamanho de PU e modo de intra predição. Em outro exemplo, o codificador e/ou o decodificador podem representar um “padrão de subconjunto” por uma combinação de LUT, conjunto de condições e/ou conjunto de equações matemáticas.
[00120] Em um exemplo, o “padrão de gabarito” (TABELA 4, por exemplo) ou “padrões de subconjunto” (TABELAS 5-7, por exemplo) podem ser expandidos de modo a incluírem vários tipos de filtro de intra suavização que é possível utilizar para cada combinação de tamanho de PU e modo de intra predição. Por exemplo, para cada combinação em que a filtragem de intra suavização é aplicada, o número na tabela pode indicar o tipo de filtro a ser utilizado. Em um exemplo, dois filtros de intra suavização podem ser definidos e representados por “1” e “2”. Uma entrada em uma tabela que corresponde a uma determinada posição de fileira/coluna pode não ter entrada, isto é, nenhum filtro é aplicado, ou um “1” ou um “2” para indicar que a filtragem de intra suavização é aplicada e o filtro de intra suavização utilizado, isto é, ou o filtro “1” ou o filtro “2”.
[00121] Em alguns exemplos, a HEVC pode suportar PUs de Intra Predição de curta Distância (SDIP), que podem ter diversos tamanhos retangulares por unidade de codificação (CU). Em um exemplo, as técnicas desta descrição podem ser aplicadas a PUs quadradas e retangulares, tais como as utilizadas na Intra predição de Curta Distância (SDIP). A TABELA 8 abaixo mostra exemplos de tamanhos de PU retangulares (em pixels) por tamanho de CU da SDIP. TABELA 8
[00122] Além das técnicas descritas acima, as técnicas desta descrição podem incluir técnicas para aperfeiçoar a aplicação de MDIS a partições de SDIP retangulares. Por exemplo, a aplicação de filtragem de intra suavização pode depender da largura e/ou da altura das partições de SDIP retangulares. Técnicas para determinar as dimensões da partição de SDIP, ou regras de determinação de dimensão, podem ser utilizadas para determinar uma dimensão ou as dimensões da partição. Por exemplo, tais técnicas para determinar uma dimensão da partição de SDIP podem incluir determinar a dimensão mínima ou máxima da partição, equações matemáticas que calculam as dimensões da partição com base em outras variáveis conhecidas associadas à partição, ou verificações condicionais que podem ser aplicadas à largura e altura da partição de SDIP para determinar as dimensões da partição. Em um exemplo, a dimensão determinada resultante da partição pode ser utilizada para determinar se ou não aplicar filtragem de intra suavização, por exemplo, utilizando-se uma das tabelas de decisões de filtragem descritas acima. Por exemplo, as técnicas podem utilizar a dimensão para determinar se ou não filtrar. Se, em um exemplo ilustrativo, a dimensão mínima for de 8 pixels, a decisão de filtragem pode ser determinada com base na entrada de tabela associada aos blocos 32x32 e no modo de intra predição apropriado associado à partição que é atualmente processada.
[00123] Em um exemplo, a aplicação de filtragem de intra suavização pode ser baseada na direção de intra predição associada à partição de SDIP e/ou na largura e/ou altura da partição de SDIP. Por exemplo, quando a direção de predição vertical é escolhida, a altura da partição pode ser utilizada em uma das tabelas de decisões de filtragem descritas acima e, no caso da direção horizontal, a largura pode ser utilizada em uma das tabelas de decisões de filtragem descritas acima. Em outro exemplo, as direções horizontal, vertical e diagonal podem ser consideradas separadamente para determinação da dimensão a ser utilizada.
[00124] Em um exemplo, quando o modo planar é utilizado para partições de SDIP, as técnicas de determinação de dimensão descritas acima podem ser utilizadas para determinar uma dimensão de uma partição de SDIP. A dimensão determinada pode ser utilizada para determinar se aplicar ou não filtragem de intra suavização, por exemplo, pela ação de acessar uma das tabelas de decisões de filtragem descritas acima.
[00125] A Figura 8 é um fluxograma que mostra outro método exemplar para codificar dados de vídeo de acordo com as técnicas desta descrição. Embora descritas com relação ao codificador de vídeo 20 para fins de exemplificação, deve ficar entendido que as técnicas da Figura 8 podem ser executadas por qualquer unidade de codificação de vídeo. Além do mais, as etapas mostradas na Figura 8 podem ser executadas em uma ordem diferente, determinadas etapas podem ser omitidas e etapas adicionais podem ser incluídas, sem que se abandonem as técnicas desta descrição.
[00126] O codificador de vídeo 20 pode receber um bloco (uma CU, por exemplo) de dados de vídeo a ser codificado. Quando o bloco atual é designado como o bloco atual a ser codificado com a utilização de codificação intra preditiva, o codificador de vídeo 20 pode determinar o tamanho de bloco e o modo de intra predição utilizado para codificar o bloco atual (802). O codificador de vídeo pode então determinar e aplicar um filtro de suavização utilizando uma tabela de filtros, como, por exemplo, a TABELA 7 acima, com base no tamanho de bloco e no modo de intra predição (804), conforme discutido acima.
[00127] O codificador de vídeo 20 pode em seguida codificar o bloco atual aplicando o filtro de suavização selecionado às amostras de predição e efetuando codificação intra preditiva de acordo com o modo de intra predição associado ao bloco atual (612). O codificador de vídeo 20 pode codificar também elementos de sintaxe associados à codificação intra preditiva com o bloco atual (614), como, por exemplo, um ou mais elementos de sintaxe que identificam o modo de intra predição. Outros exemplos de elementos de sintaxe associados à codificação intra preditiva que podem ser codificados com um bloco podem ser o tipo de partição associado ao bloco, tamanho de PU, tamanho de TU, CBP e coeficientes quantificados. O codificador de vídeo 20 pode transmitir então o bloco de vídeo codificado, dentro de um quadro de vídeo codificado, e com os elementos de sintaxe, para um decodificador de vídeo (616).
[00128] A Figura 9 é um fluxograma que mostra outro método exemplar para decodificar dados de vídeo de acordo com as técnicas desta descrição. Embora descritas com relação ao decodificador de vídeo 30 para fins de exemplificação, deve ficar entendido que as técnicas da Figura 9 podem ser executadas por qualquer unidade de codificação de vídeo. Além do mais, as etapas mostradas na Figura 9 podem ser executadas em uma ordem diferente, determinadas etapas podem ser omitidas e etapas adicionais podem ser incluídas, sem que se abandonem as técnicas desta descrição.
[00129] O decodificador de vídeo 30 pode receber um bloco codificado (uma CU, por exemplo) de dados de vídeo a ser decodificado (902). O decodificador de vídeo 30 pode decodificar o bloco de vídeo codificado e elementos de sintaxe de modo a determinar que o bloco é codificado com a utilização de codificação intra preditiva (904). Com base nos elementos de sintaxe, o decodificador de vídeo 30 pode determinar também o modo de intra predição do bloco (906). O decodificador de vídeo 30 pode em seguida decodificar o bloco utilizando codificação intra preditiva e aplicar um filtro de suavização selecionado da mesma tabela de filtragem, como, por exemplo, a TABELA 7, utilizada durante a codificação, com base no tamanho de bloco e no modo de intra predição (908). Desta maneira, o decodificador de vídeo 30 pode não precisar quaisquer determinações referentes a outras opções de filtragem que não selecionar um filtro da tabela de filtros.
[00130] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação deles. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. Meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, que correspondem a meios tangíveis, tais como meios de armazenamento de dados ou meios de comunicação que incluem qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, de acordo com um protocolo de comunicação, por exemplo. Desta maneira, os meios legíveis por computador podem geralmente corresponder a (1) meios de armazenamento legíveis por computador tangíveis que são não transitórios ou a (2) um meio de comunicação, tal como um sinal ou onda portadora. Os meios de armazenamento de dados podem ser quaisquer meios disponíveis que possam ser acessados por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nesta descrição. Um produto de programa de computador pode incluir um meio legível por computador.
[00131] A título de exemplo, e não de limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou qualquer outro armazenamento em disco óptico, armazenamento em disco magnético ou outros aparelhos de armazenamento magnético ou qualquer outro meio que possa ser utilizado para portar ou armazenar dispositivos de código de programa desejados sob a forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disto, qualquer conexão é apropriadamente denominada de meio legível por computador. Por exemplo, se as instruções forem transmitidas de um site da Web, servidor ou outra fonte remota utilizando-se um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio tais como infravermelho, rádio e microonda, então o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou tecnologias sem fio tais como infravermelho, rádio e microonda são incluídos na definição de meio. O termo disco (DISK e DISC), conforme aqui utilizado, inclui disco compacto (CD), disco de laser, disco óptico, disco versátil digital (DVD), disco flexível e disco blu-ray, em que usualmente discos (DISKS) reproduzem dados magneticamente, enquanto discos (DISCS) reproduzem dados opticamente com lasers. Combinações deles devem ser também incluídas dentro do alcance dos meios legíveis por computador.
[00132] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSPs), microprocessadores de uso geral, circuitos integrados específicos de aplicativo (ASICs), matriz lógica programável no campo (FPGAs) ou outros circuitos integrados ou de lógica discreta equivalentes. Por conseguinte, o termo “processador”, conforme aqui utilizado, pode referir- se a qualquer uma da estrutura precedente ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disto, sob alguns aspectos a funcionalidade aqui descrita pode ser apresentada dentro de módulos de hardware e/ou software dedicados configurados para codificação e decodificação ou incorporados a um codec combinado. Além disto, as técnicas podem ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[00133] As técnicas desta descrição podem ser implementadas em uma ampla variedade de aparelhos ou equipamento, inclusive um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (um conjunto de chips, por exemplo). Diversos componentes, módulos ou unidades são descritos nesta descrição para enfatizar aspectos funcionais de aparelhos configurados para executar as técnicas descritas, mas não exigem necessariamente execução por unidades de hardware diferentes. Em vez disso, conforme descrito acima, diversas unidades podem ser combinadas em uma unidade de hardware de codec ou providas por uma coleção de unidades de hardware interoperantes, inclusive um ou mais processadores, conforme descritos acima, em conjunto com software e/ou firmware adequado.
Claims (10)
1. Método para codificar dados de vídeo, o método compreendendo: determinar (606, 802) um tamanho de bloco associado a um bloco atual de dados de vídeo, o tamanho de bloco sendo determinado de uma pluralidade de tamanhos de bloco incluindo um tamanho de bloco de 4x4, um tamanho de bloco de 8x8, um tamanho de bloco de 16x16, e um tamanho de bloco de 32x32; determinar (802) um modo de codificação de intra predição associado ao bloco atual, o modo de codificação de intra predição sendo determinado de uma pluralidade de modos de codificação de intra predição incluindo um modo horizontal, um modo vertical, um modo plano, um modo dc, e uma pluralidade de modos diagonais incluindo um modo diagonal superior esquerdo, um modo diagonal superior direito, um modo diagonal inferior esquerdo e uma pluralidade de modos diagonais que são diretamente adjacentes ao modo horizontal ou ao modo vertical; determinar, com base no tamanho de bloco e o modo de codificação em combinação, uma decisão de filtro para se aplica um filtro para amostras de predição usadas para predição de bloco atual, o método CARACTERIZADO pela determinação compreender: se o tamanho de bloco é o tamanho de bloco de 4x4, determinar a decisão de filtro para ser de nenhum filtro ser aplicado às amostras de predição usadas para predição do bloco atual para qualquer da pluralidade de modos de codificação intra predição, se o tamanho de bloco é de 8x8, determinar a decisão de filtro para ser de amostras de predição usadas para predição do bloco atual devem ser filtradas apenas se o modo de codificação é o modo plano, modo diagonal superior esquerdo, modo diagonal superior direito ou o modo diagonal inferior esquerdo, se o tamanho de bloco é de 16x16, determinar a decisão de filtro para ser de amostras de predição usadas para predição do bloco atual devem ser filtradas se o modo de codificação é o modo plano, ou se o modo de codificação é qualquer outro da pluralidade de modos de codificação exceto para o modo horizontal, o modo vertical, o modo dc, e os modos diretamente adjacentes ao modo horizontal ou ao modo vertical, e não filtradas se o modo de codificação é o modo horizontal, o modo vertical, o modo dc, ou os modos diretamente adjacentes ao modo horizontal ou ao modo vertical, e se o tamanho de bloco é de 32x32, determinar a decisão de filtro para ser de amostras de predição usadas para predição de bloco atual devem ser filtradas se o modo de codificação é o modo plano, ou se o modo de codificação é qualquer outro da pluralidade de modos de codificação exceto para o modo horizontal, o modo vertical, o modo dc, e não filtradas se o modo de codificação é o modo horizontal, o modo vertical, ou o modo dc; e codificar (612, 806) de maneira intra preditiva o bloco atual utilizando a decisão de filtro determinada para tanto filtrar ou não filtrar as amostras de predição usadas para predição do bloco atual.
2. Método para decodificar dados de vídeo, o método compreendendo: determinar um tamanho de bloco associado a um bloco atual de dados de vídeo, o tamanho de bloco sendo determinado de uma pluralidade de tamanhos de bloco incluindo um tamanho de bloco de 4x4, um tamanho de bloco de 8x8, um tamanho de bloco de 16x16, e um tamanho de bloco de 32x32; determinar (706, 906) um modo de codificação de intra predição associado ao bloco atual, o modo de codificação de intra predição sendo determinado de uma pluralidade de modos de codificação de intra predição incluindo um modo horizontal, um modo vertical, um modo plano, um modo dc, e uma pluralidade de modos diagonais incluindo um modo diagonal superior esquerdo, um modo diagonal superior direito, um modo diagonal inferior esquerdo e uma pluralidade de modos diagonais que são diretamente adjacentes ao modo horizontal ou ao modo vertical; determinar, com base no tamanho de bloco e o modo de codificação em combinação, uma decisão de filtro para se aplica um filtro para amostras de predição usadas para predição de bloco atual, o método CARACTERIZADO pela determinação compreender: se o tamanho de bloco é o tamanho de bloco de 4x4, determinar a decisão de filtro para ser de nenhum filtro ser aplicado às amostras de predição usadas para predição do bloco atual para qualquer da pluralidade de modos de codificação intra predição, se o tamanho de bloco é de 8x8, determinar a decisão de filtro para ser de amostras de predição usadas para predição do bloco atual devem ser filtradas apenas se o modo de codificação é o modo plano, modo diagonal superior esquerdo, modo diagonal superior direito ou o modo diagonal inferior esquerdo, se o tamanho de bloco é de 16x16, determinar a decisão de filtro para ser de amostras de predição usadas para predição do bloco atual devem ser filtradas se o modo de codificação é o modo plano, ou se o modo de codificação é qualquer outro da pluralidade de modos de codificação exceto para o modo horizontal, o modo vertical, o modo dc, e os modos diretamente adjacentes ao modo horizontal ou ao modo vertical, e não filtradas se o modo de codificação é o modo horizontal, o modo vertical, o modo dc, ou os modos diretamente adjacentes ao modo horizontal ou ao modo vertical, e se o tamanho de bloco é de 32x32, determinar a decisão de filtro para ser de amostras de predição usadas para predição de bloco atual devem ser filtradas se o modo de codificação é o modo plano, ou se o modo de codificação é qualquer outro da pluralidade de modos de codificação exceto para o modo horizontal, o modo vertical, o modo dc, e não filtradas se o modo de codificação é o modo horizontal, o modo vertical, ou o modo dc; e decodificar (710, 712, 908) de maneira intra preditiva o bloco atual utilizando a decisão de filtro determinada para tanto filtrar ou não filtrar as amostras de predição usadas para predição do bloco atual.
3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO por determinar a decisão de filtro compreender selecionar de uma primeira tabela de filtros um filtro com base no tamanho de bloco e ao modo de codificação.
4. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO por não filtrar compreender aplicar um filtro passa tudo.
5. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo bloco atual compreender uma unidade de predição codificada de acordo com a previsão de Intra Predição de Curta Distância, SDIP, e em que o método compreende preferivelmente as etapas adicionais de: determinar uma dimensão associada ao bloco atual; e determinar o tamanho de bloco com base na dimensão utilizando um conjunto de regras de determinação de dimensão.
6. Aparelho (20) para codificação de dados de vídeo, o aparelho compreendendo: mecanismos para determinar (606, 802) um tamanho de bloco associado a um bloco atual de dados de vídeo, o tamanho de bloco sendo determinado de uma pluralidade de tamanhos de bloco incluindo um tamanho de bloco de 4x4, um tamanho de bloco de 8x8, um tamanho de bloco de 16x16, e um tamanho de bloco de 32x32; mecanismos para determinar (802) um modo de codificação de intra predição associado ao bloco atual, o modo de codificação de intra predição sendo determinado de uma pluralidade de modos de codificação de intra predição incluindo um modo horizontal, um modo vertical, um modo plano, um modo dc, e uma pluralidade de modos diagonais incluindo um modo diagonal superior esquerdo, um modo diagonal superior direito, um modo diagonal inferior esquerdo e uma pluralidade de modos diagonais que são diretamente adjacentes ao modo horizontal ou ao modo vertical; mecanismos para determinar, com base no tamanho de bloco e o modo de codificação em combinação, uma decisão de filtro para se aplica um filtro para amostras de predição usadas para predição de bloco atual, o aparelho CARACTERIZADO pela determinação compreender: se o tamanho de bloco é o tamanho de bloco de 4x4, determinar a decisão de filtro para ser de nenhum filtro ser aplicado às amostras de predição usadas para predição do bloco atual para qualquer da pluralidade de modos de codificação intra predição, se o tamanho de bloco é de 8x8, determinar a decisão de filtro para ser de amostras de predição usadas para predição do bloco atual devem ser filtradas apenas se o modo de codificação é o modo plano, modo diagonal superior esquerdo, modo diagonal superior direito ou o modo diagonal inferior esquerdo, se o tamanho de bloco é de 16x16, determinar a decisão de filtro para ser de amostras de predição usadas para predição do bloco atual devem ser filtradas se o modo de codificação é o modo plano, ou se o modo de codificação é qualquer outro da pluralidade de modos de codificação exceto para o modo horizontal, o modo vertical, o modo dc, e os modos diretamente adjacentes ao modo horizontal ou ao modo vertical, e não filtradas se o modo de codificação é o modo horizontal, o modo vertical, o modo dc, ou os modos diretamente adjacentes ao modo horizontal ou ao modo vertical, e se o tamanho de bloco é de 32x32, determinar a decisão de filtro para ser de amostras de predição usadas para predição de bloco atual devem ser filtradas se o modo de codificação é o modo plano, ou se o modo de codificação é qualquer outro da pluralidade de modos de codificação exceto para o modo horizontal, o modo vertical, o modo dc, e não filtradas se o modo de codificação é o modo horizontal, o modo vertical, ou o modo dc; e mecanismos para codificar (612, 806) de maneira intra preditiva o bloco atual utilizando a decisão de filtro determinada para tanto filtrar ou não filtrar as amostras de predição usadas para predição do bloco atual.
7. Aparelho, de acordo com a reivindicação 8, CARACTERIZADO por compreender mecanismos para realizar um método conforme definido em qualquer uma das reivindicações 3 a 5.
8. Aparelho para decodificação de dados de vídeo, o aparelho compreendendo: mecanismos para determinar um tamanho de bloco associado a um bloco atual de dados de vídeo, o tamanho de bloco sendo determinado de uma pluralidade de tamanhos de bloco incluindo um tamanho de bloco de 4x4, um tamanho de bloco de 8x8, um tamanho de bloco de 16x16, e um tamanho de bloco de 32x32; mecanismos para determinar (706, 906) um modo de codificação de intra predição associado ao bloco atual, o modo de codificação de intra predição sendo determinado de uma pluralidade de modos de codificação de intra predição incluindo um modo horizontal, um modo vertical, um modo plano, um modo dc, e uma pluralidade de modos diagonais incluindo um modo diagonal superior esquerdo, um modo diagonal superior direito, um modo diagonal inferior esquerdo e uma pluralidade de modos diagonais que são diretamente adjacentes ao modo horizontal ou ao modo vertical; mecanismos para determinar, com base no tamanho de bloco e o modo de codificação em combinação, uma decisão de filtro para se aplica um filtro para amostras de predição usadas para predição de bloco atual, o aparelho CARACTERIZADO pela determinação compreender: se o tamanho de bloco é o tamanho de bloco de 4x4, determinar a decisão de filtro para ser de nenhum filtro ser aplicado às amostras de predição usadas para predição do bloco atual para qualquer da pluralidade de modos de codificação intra predição, se o tamanho de bloco é de 8x8, determinar a decisão de filtro para ser de amostras de predição usadas para predição do bloco atual devem ser filtradas apenas se o modo de codificação é o modo plano, modo diagonal superior esquerdo, modo diagonal superior direito ou o modo diagonal inferior esquerdo, se o tamanho de bloco é de 16x16, determinar a decisão de filtro para ser de amostras de predição usadas para predição do bloco atual devem ser filtradas se o modo de codificação é o modo plano, ou se o modo de codificação é qualquer outro da pluralidade de modos de codificação exceto para o modo horizontal, o modo vertical, o modo dc, e os modos diretamente adjacentes ao modo horizontal ou ao modo vertical, e não filtradas se o modo de codificação é o modo horizontal, o modo vertical, o modo dc, ou os modos diretamente adjacentes ao modo horizontal ou ao modo vertical, e se o tamanho de bloco é de 32x32, determinar a decisão de filtro para ser de amostras de predição usadas para predição de bloco atual devem ser filtradas se o modo de codificação é o modo plano, ou se o modo de codificação é qualquer outro da pluralidade de modos de codificação exceto para o modo horizontal, o modo vertical, o modo dc, e não filtradas se o modo de codificação é o modo horizontal, o modo vertical, ou o modo dc; e mecanismos para decodificar (710, 712, 908) de maneira intra preditiva o bloco atual utilizando a decisão de filtro determinada para tanto filtrar ou não filtrar as amostras de predição usadas para predição do bloco atual.
9. Aparelho, de acordo a reivindicação 8, CARACTERIZADO por compreender mecanismos para realizar um método conforme definido em qualquer uma das reivindicações 3 a 5.
10. Memória CARACTERIZADA por compreender instruções para codificação de dados de vídeo que, quando executadas em um processador, fazem com que o processador realize um método conforme definido em qualquer uma das reivindicações 1 a 5.
Applications Claiming Priority (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38917310P | 2010-10-01 | 2010-10-01 | |
US61/389,173 | 2010-10-01 | ||
US40604610P | 2010-10-22 | 2010-10-22 | |
US61/406,046 | 2010-10-22 | ||
US201061426388P | 2010-12-22 | 2010-12-22 | |
US201061426964P | 2010-12-23 | 2010-12-23 | |
US201161492335P | 2011-06-01 | 2011-06-01 | |
US61/492,335 | 2011-06-01 | ||
US201161499579P | 2011-06-21 | 2011-06-21 | |
US61/499,579 | 2011-06-21 | ||
US201161500095P | 2011-06-22 | 2011-06-22 | |
US61/500,095 | 2011-06-22 | ||
US13/248,968 US9008175B2 (en) | 2010-10-01 | 2011-09-29 | Intra smoothing filter for video coding |
PCT/US2011/054130 WO2012044886A1 (en) | 2010-10-01 | 2011-09-30 | Intra smoothing filter for video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112013007563A2 BR112013007563A2 (pt) | 2016-08-02 |
BR112013007563B1 true BR112013007563B1 (pt) | 2022-03-03 |
Family
ID=45889817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112013007563-5A BR112013007563B1 (pt) | 2010-10-01 | 2011-09-30 | Filtro de intra suavização para codificação de vídeo |
Country Status (19)
Country | Link |
---|---|
US (1) | US9008175B2 (pt) |
EP (1) | EP2622858B1 (pt) |
JP (1) | JP5587508B2 (pt) |
KR (2) | KR101626734B1 (pt) |
CN (1) | CN103141100B (pt) |
AU (1) | AU2011308653B2 (pt) |
BR (1) | BR112013007563B1 (pt) |
CA (1) | CA2812307C (pt) |
DK (1) | DK2622858T3 (pt) |
ES (1) | ES2656494T3 (pt) |
HK (1) | HK1182249A1 (pt) |
HU (1) | HUE035458T2 (pt) |
IL (1) | IL225331A (pt) |
PL (1) | PL2622858T3 (pt) |
PT (1) | PT2622858T (pt) |
RU (1) | RU2543552C2 (pt) |
SG (1) | SG189036A1 (pt) |
SI (1) | SI2622858T1 (pt) |
WO (1) | WO2012044886A1 (pt) |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5544996B2 (ja) * | 2010-04-09 | 2014-07-09 | ソニー株式会社 | 画像処理装置および方法 |
KR20110113561A (ko) * | 2010-04-09 | 2011-10-17 | 한국전자통신연구원 | 적응적인 필터를 이용한 인트라 예측 부호화/복호화 방법 및 그 장치 |
KR20110123651A (ko) | 2010-05-07 | 2011-11-15 | 한국전자통신연구원 | 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법 |
KR101663764B1 (ko) * | 2010-08-26 | 2016-10-07 | 에스케이 텔레콤주식회사 | 인트라 예측을 이용한 부호화 및 복호화 장치와 방법 |
KR102427824B1 (ko) * | 2010-12-08 | 2022-08-02 | 엘지전자 주식회사 | 인트라 예측 방법과 이를 이용한 부호화 장치 및 복호화 장치 |
US10142630B2 (en) * | 2010-12-10 | 2018-11-27 | Texas Instruments Incorporated | Mode adaptive intra prediction smoothing in video coding |
KR101824241B1 (ko) * | 2011-01-11 | 2018-03-14 | 에스케이 텔레콤주식회사 | 인트라 부가정보 부호화/복호화 장치 및 방법 |
WO2012121575A2 (ko) | 2011-03-10 | 2012-09-13 | 한국전자통신연구원 | 인트라 예측 방법 및 그 장치 |
US20130336398A1 (en) | 2011-03-10 | 2013-12-19 | Electronics And Telecommunications Research Institute | Method and device for intra-prediction |
US9008180B2 (en) | 2011-04-21 | 2015-04-14 | Intellectual Discovery Co., Ltd. | Method and apparatus for encoding/decoding images using a prediction method adopting in-loop filtering |
KR20130000334A (ko) * | 2011-06-15 | 2013-01-02 | 광운대학교 산학협력단 | 스케일러블 비디오 코딩 및 디코딩 방법과 이를 이용한 장치 |
US9602839B2 (en) * | 2011-06-15 | 2017-03-21 | Futurewei Technologies, Inc. | Mode dependent intra smoothing filter table mapping methods for non-square prediction units |
KR20120140181A (ko) * | 2011-06-20 | 2012-12-28 | 한국전자통신연구원 | 화면내 예측 블록 경계 필터링을 이용한 부호화/복호화 방법 및 그 장치 |
US10499063B2 (en) * | 2011-09-16 | 2019-12-03 | Hfi Innovation Inc. | Method and apparatus for prediction mode and partition mode syntax coding for coding units in HEVC |
US20130083840A1 (en) * | 2011-09-30 | 2013-04-04 | Broadcom Corporation | Advance encode processing based on raw video data |
EP2582134A1 (en) * | 2011-10-12 | 2013-04-17 | Thomson Licensing | Saliency value determination of predictively encoded video streams |
WO2013058583A1 (ko) * | 2011-10-18 | 2013-04-25 | 주식회사 케이티 | 영상 부호화 방법, 영상 복호화 방법, 영상 부호화기 및 영상 복호화기 |
US10645398B2 (en) | 2011-10-25 | 2020-05-05 | Texas Instruments Incorporated | Sample-based angular intra-prediction in video coding |
EP2774360B1 (en) * | 2011-11-04 | 2017-08-02 | Huawei Technologies Co., Ltd. | Differential pulse code modulation intra prediction for high efficiency video coding |
CN110225354A (zh) * | 2012-01-17 | 2019-09-10 | 华为技术有限公司 | 用于高性能视频编码中的无损编码模式的环内滤波的装置 |
WO2013109867A1 (en) * | 2012-01-19 | 2013-07-25 | Futurewei Technologies, Inc. | Simplification of mode dependent intra smoothing |
US9924169B2 (en) * | 2012-03-06 | 2018-03-20 | Lg Electronics Inc. | Method and apparatus for selecting a filter based on a variance of depth data |
US9544612B2 (en) * | 2012-10-04 | 2017-01-10 | Intel Corporation | Prediction parameter inheritance for 3D video coding |
US10440377B2 (en) * | 2012-10-11 | 2019-10-08 | Intel Corporation | Motion estimation for video processing |
JP2014131162A (ja) * | 2012-12-28 | 2014-07-10 | Nippon Telegr & Teleph Corp <Ntt> | イントラ予測符号化方法、イントラ予測復号方法、イントラ予測符号化装置、イントラ予測復号装置、それらのプログラム並びにプログラムを記録した記録媒体 |
US20140192862A1 (en) * | 2013-01-07 | 2014-07-10 | Research In Motion Limited | Methods and systems for prediction filtering in video coding |
US9426473B2 (en) * | 2013-02-01 | 2016-08-23 | Qualcomm Incorporated | Mode decision simplification for intra prediction |
KR101468078B1 (ko) * | 2013-02-06 | 2014-12-08 | 성균관대학교산학협력단 | 화면 내 예측 방법 및 장치 |
US9615086B2 (en) | 2013-02-06 | 2017-04-04 | Research & Business Foundation Sungkyunkwan University | Method and apparatus for intra prediction |
US9491460B2 (en) * | 2013-03-29 | 2016-11-08 | Qualcomm Incorporated | Bandwidth reduction for video coding prediction |
BR112015025623B1 (pt) | 2013-04-08 | 2023-02-07 | Dolby International Ab | Método e codificador para codificar uma tabela de busca de cor tridimensional associada a octantes de uma octree, e método e decodificador para decodificar uma tabela de busca de cor tridimensional de octantes |
EP3078194B1 (en) * | 2014-01-02 | 2019-09-11 | HFI Innovation Inc. | Method and apparatus for intra prediction coding with boundary filtering control |
JP6528765B2 (ja) * | 2014-03-28 | 2019-06-12 | ソニー株式会社 | 画像復号装置および方法 |
KR101844698B1 (ko) | 2014-05-23 | 2018-04-02 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 블록-예측 기법들에 사용하기 위한 사전-예측 필터링을 위한 방법 및 장치 |
US20160105685A1 (en) * | 2014-10-08 | 2016-04-14 | Qualcomm Incorporated | Boundary filtering and cross-component prediction in video coding |
US10148953B2 (en) * | 2014-11-10 | 2018-12-04 | Samsung Electronics Co., Ltd. | System and method for intra prediction in video coding |
US10841593B2 (en) | 2015-06-18 | 2020-11-17 | Qualcomm Incorporated | Intra prediction and intra mode coding |
US11463689B2 (en) * | 2015-06-18 | 2022-10-04 | Qualcomm Incorporated | Intra prediction and intra mode coding |
KR102160667B1 (ko) * | 2015-09-10 | 2020-09-28 | 엘지전자 주식회사 | 비디오 코딩 시스템에서 인트라 예측 방법 및 장치 |
US10136131B2 (en) * | 2015-09-11 | 2018-11-20 | Beamr Imaging Ltd. | Video coding apparatus and method |
CA3113488A1 (en) | 2015-11-17 | 2017-05-26 | Huawei Technologies Co., Ltd. | Method and apparatus for video coding |
WO2017146526A1 (ko) * | 2016-02-25 | 2017-08-31 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
US10652575B2 (en) * | 2016-09-15 | 2020-05-12 | Qualcomm Incorporated | Linear model chroma intra prediction for video coding |
JP2019534629A (ja) * | 2016-09-30 | 2019-11-28 | エルジー エレクトロニクス インコーポレイティド | 画像処理方法及びこのための装置 |
CN110063059B (zh) | 2016-12-15 | 2022-05-13 | 华为技术有限公司 | 视频编解码方法、相关编解码器和计算机可读存储介质 |
EP3545680A1 (en) | 2016-12-15 | 2019-10-02 | Huawei Technologies Co., Ltd. | Intra sharpening and/or de-ringing filter for video coding |
WO2018174657A1 (ko) * | 2017-03-23 | 2018-09-27 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치 |
US10992939B2 (en) * | 2017-10-23 | 2021-04-27 | Google Llc | Directional intra-prediction coding |
US10225578B2 (en) | 2017-05-09 | 2019-03-05 | Google Llc | Intra-prediction edge filtering |
EP3410722A1 (en) | 2017-05-31 | 2018-12-05 | Thomson Licensing | Method and apparatus for low-complexity bi-directional intra prediction in video encoding and decoding |
JP6904156B2 (ja) * | 2017-08-10 | 2021-07-14 | 富士通株式会社 | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム |
EP3454556A1 (en) * | 2017-09-08 | 2019-03-13 | Thomson Licensing | Method and apparatus for video encoding and decoding using pattern-based block filtering |
EP3496401A1 (en) * | 2017-12-05 | 2019-06-12 | Thomson Licensing | Method and apparatus for video encoding and decoding based on block shape |
US11277644B2 (en) * | 2018-07-02 | 2022-03-15 | Qualcomm Incorporated | Combining mode dependent intra smoothing (MDIS) with intra interpolation filter switching |
US10567752B2 (en) * | 2018-07-02 | 2020-02-18 | Tencent America LLC | Method and apparatus for intra prediction for non-square blocks in video compression |
KR20210016601A (ko) | 2018-07-11 | 2021-02-16 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 인트라 예측을 위한 종횡비 의존적 필터링을 위한 방법 및 장치 |
US10630979B2 (en) * | 2018-07-16 | 2020-04-21 | Tencent America LLC | Reference sample padding and filtering for intra prediction in video compression |
US10834393B2 (en) * | 2018-09-10 | 2020-11-10 | Tencent America LLC | Intra interpolation filter for multi-line intra prediction |
EP3850840A1 (en) * | 2018-09-13 | 2021-07-21 | FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. | Affine linear weighted intra predictions |
US11303885B2 (en) * | 2018-10-25 | 2022-04-12 | Qualcomm Incorporated | Wide-angle intra prediction smoothing and interpolation |
WO2020085955A1 (en) * | 2018-10-26 | 2020-04-30 | Huawei Technologies Co., Ltd. | Method and apparatus for reference sample filtering |
CN113261281A (zh) * | 2019-01-02 | 2021-08-13 | 北京字节跳动网络技术有限公司 | 交织预测的使用 |
CN117915081A (zh) | 2019-01-02 | 2024-04-19 | 北京字节跳动网络技术有限公司 | 视频处理的方法 |
US10778972B1 (en) | 2019-02-27 | 2020-09-15 | Google Llc | Adaptive filter intra prediction modes in image/video compression |
CN115955561A (zh) | 2019-05-02 | 2023-04-11 | 北京字节跳动网络技术有限公司 | 使用多个参考滤波器的帧内视频编解码 |
US11445174B2 (en) * | 2019-05-06 | 2022-09-13 | Tencent America LLC | Method and apparatus for video coding |
CN113812152B (zh) * | 2019-05-14 | 2023-10-03 | 北京字节跳动网络技术有限公司 | 帧内视频编解码的滤波器选择 |
EP4014503A1 (en) * | 2019-08-16 | 2022-06-22 | Apple Inc. | Adaptive bilateral filtering using look-up tables |
US11297316B2 (en) * | 2019-12-24 | 2022-04-05 | Tencent America LLC | Method and system for adaptive cross-component filtering |
CN113766246A (zh) * | 2020-06-05 | 2021-12-07 | Oppo广东移动通信有限公司 | 图像编码方法、图像解码方法及相关装置 |
CN113965764B (zh) * | 2020-07-21 | 2023-04-07 | Oppo广东移动通信有限公司 | 图像编码方法、图像解码方法及相关装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10158658A1 (de) * | 2001-11-30 | 2003-06-12 | Bosch Gmbh Robert | Verfahren zur gerichteten Prädiktion eines Bildblockes |
JP4120301B2 (ja) | 2002-04-25 | 2008-07-16 | ソニー株式会社 | 画像処理装置およびその方法 |
AU2003246987A1 (en) | 2002-07-09 | 2004-01-23 | Nokia Corporation | Method and system for selecting interpolation filter type in video coding |
US6795584B2 (en) * | 2002-10-03 | 2004-09-21 | Nokia Corporation | Context-based adaptive variable length coding for adaptive block transforms |
US7227901B2 (en) * | 2002-11-21 | 2007-06-05 | Ub Video Inc. | Low-complexity deblocking filter |
CN100584024C (zh) | 2003-01-10 | 2010-01-20 | 汤姆森特许公司 | 为编码图像中的错误掩蔽定义内插滤波器 |
JP2006157481A (ja) | 2004-11-30 | 2006-06-15 | Canon Inc | 画像符号化装置及びその方法 |
KR100657919B1 (ko) | 2004-12-13 | 2006-12-14 | 삼성전자주식회사 | 화상 데이터의 공간상 예측 장치 및 방법과 그를 이용한부호화 장치 및 방법, 화상 데이터의 공간상 예측 보상장치 및 방법과 그를 이용한 복호화 장치 및 방법 |
JP2006229411A (ja) | 2005-02-16 | 2006-08-31 | Matsushita Electric Ind Co Ltd | 画像復号化装置及び画像復号化方法 |
US7876833B2 (en) * | 2005-04-11 | 2011-01-25 | Sharp Laboratories Of America, Inc. | Method and apparatus for adaptive up-scaling for spatially scalable coding |
US8548064B2 (en) * | 2006-01-05 | 2013-10-01 | Nippon Telegraph And Telephone Corporation | Video encoding method and decoding method by using selected parallax for parallax compensation, apparatuses therefor, programs therefor, and storage media for storing the programs |
WO2009001793A1 (ja) * | 2007-06-26 | 2008-12-31 | Kabushiki Kaisha Toshiba | 画像符号化と画像復号化の方法及び装置 |
KR101568708B1 (ko) | 2007-09-02 | 2015-11-12 | 엘지전자 주식회사 | 비디오 신호처리 방법 및 장치 |
JP2010081368A (ja) | 2008-09-26 | 2010-04-08 | Toshiba Corp | 画像処理装置、動画像復号装置、動画像符号化装置、画像処理方法、動画像復号方法、及び、動画像符号化方法 |
KR101590500B1 (ko) * | 2008-10-23 | 2016-02-01 | 에스케이텔레콤 주식회사 | 동영상 부호화/복호화 장치, 이를 위한 인트라 예측 방향에기반한 디블록킹 필터링 장치 및 필터링 방법, 및 기록 매체 |
KR101510108B1 (ko) * | 2009-08-17 | 2015-04-10 | 삼성전자주식회사 | 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
EP2559239A2 (en) | 2010-04-13 | 2013-02-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus for intra predicting a block, apparatus for reconstructing a block of a picture, apparatus for reconstructing a block of a picture by intra prediction |
EP2584781A4 (en) | 2010-06-17 | 2016-03-09 | Sharp Kk | IMAGE FILTER DEVICE, DECODING APPARATUS, ENCODING APPARATUS, AND DATA STRUCTURE |
ES2748100T3 (es) | 2010-07-14 | 2020-03-13 | Ntt Docomo Inc | Intra-predicción de baja complejidad para codificación de vídeo |
KR20120012385A (ko) | 2010-07-31 | 2012-02-09 | 오수미 | 인트라 예측 부호화 장치 |
ES2670325T3 (es) | 2010-08-17 | 2018-05-30 | M&K Holdings Inc. | Procedimiento de codificación de un modo de intra predicción |
CN108737843B (zh) * | 2010-09-27 | 2022-12-27 | Lg 电子株式会社 | 用于分割块的方法和解码设备 |
JP2012138884A (ja) | 2010-12-10 | 2012-07-19 | Sony Corp | 符号化装置および符号化方法、並びに復号装置および復号方法 |
KR101604959B1 (ko) | 2011-01-12 | 2016-03-18 | 미쓰비시덴키 가부시키가이샤 | 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법 및 화상 복호 방법 |
-
2011
- 2011-09-29 US US13/248,968 patent/US9008175B2/en active Active
- 2011-09-30 DK DK11767583.5T patent/DK2622858T3/en active
- 2011-09-30 HU HUE11767583A patent/HUE035458T2/en unknown
- 2011-09-30 RU RU2013120332/08A patent/RU2543552C2/ru active
- 2011-09-30 EP EP11767583.5A patent/EP2622858B1/en active Active
- 2011-09-30 SI SI201131392T patent/SI2622858T1/en unknown
- 2011-09-30 PL PL11767583T patent/PL2622858T3/pl unknown
- 2011-09-30 KR KR1020157000979A patent/KR101626734B1/ko active IP Right Grant
- 2011-09-30 JP JP2013531897A patent/JP5587508B2/ja active Active
- 2011-09-30 WO PCT/US2011/054130 patent/WO2012044886A1/en active Application Filing
- 2011-09-30 BR BR112013007563-5A patent/BR112013007563B1/pt active IP Right Grant
- 2011-09-30 PT PT117675835T patent/PT2622858T/pt unknown
- 2011-09-30 AU AU2011308653A patent/AU2011308653B2/en active Active
- 2011-09-30 CN CN201180047756.6A patent/CN103141100B/zh active Active
- 2011-09-30 CA CA2812307A patent/CA2812307C/en active Active
- 2011-09-30 SG SG2013020904A patent/SG189036A1/en unknown
- 2011-09-30 KR KR1020137011347A patent/KR20130063030A/ko active Application Filing
- 2011-09-30 ES ES11767583.5T patent/ES2656494T3/es active Active
-
2013
- 2013-03-19 IL IL225331A patent/IL225331A/en active IP Right Grant
- 2013-08-15 HK HK13109524.1A patent/HK1182249A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP2622858B1 (en) | 2017-11-01 |
JP2013543315A (ja) | 2013-11-28 |
CN103141100A (zh) | 2013-06-05 |
SG189036A1 (en) | 2013-05-31 |
RU2013120332A (ru) | 2014-11-20 |
WO2012044886A1 (en) | 2012-04-05 |
BR112013007563A2 (pt) | 2016-08-02 |
US9008175B2 (en) | 2015-04-14 |
PL2622858T3 (pl) | 2018-05-30 |
CA2812307C (en) | 2016-06-28 |
KR101626734B1 (ko) | 2016-06-01 |
KR20130063030A (ko) | 2013-06-13 |
CN103141100B (zh) | 2016-08-24 |
IL225331A0 (en) | 2013-06-27 |
IL225331A (en) | 2017-01-31 |
SI2622858T1 (en) | 2018-02-28 |
EP2622858A1 (en) | 2013-08-07 |
DK2622858T3 (en) | 2018-01-15 |
ES2656494T3 (es) | 2018-02-27 |
HUE035458T2 (en) | 2018-05-02 |
US20120082224A1 (en) | 2012-04-05 |
KR20150021113A (ko) | 2015-02-27 |
AU2011308653A1 (en) | 2013-05-02 |
AU2011308653B2 (en) | 2015-11-19 |
JP5587508B2 (ja) | 2014-09-10 |
PT2622858T (pt) | 2018-02-05 |
CA2812307A1 (en) | 2012-04-05 |
HK1182249A1 (zh) | 2013-11-22 |
RU2543552C2 (ru) | 2015-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112013007563B1 (pt) | Filtro de intra suavização para codificação de vídeo | |
KR102292788B1 (ko) | 비디오 코딩을 위한 다중-유형-트리 프레임워크 | |
ES2779461T3 (es) | Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo | |
US9838718B2 (en) | Secondary boundary filtering for video coding | |
ES2973247T3 (es) | Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo | |
KR101752989B1 (ko) | 인트라 예측을 위한 모드 결정 단순화 | |
EP2680585B1 (en) | Edge-based directional transform for DC intra prediction mode | |
EP2628300B1 (en) | Adaptive motion vector resolution signaling for video coding | |
US20130163664A1 (en) | Unified partition mode table for intra-mode coding | |
BR112016021151B1 (pt) | Transformada inversa de espaço-cor tanto para vídeo codificado com perdas como sem perdas | |
BR112013031006B1 (pt) | Modelagem de contexto eficaz em memória | |
BR112015024766B1 (pt) | Desabilitação da ocultação de dados de sinal na codificação de vídeo | |
BR112013017423B1 (pt) | Indicação de seleção de modo intra-previsão para codificação de vídeo utilizando cabac | |
KR20130095311A (ko) | 변환 계수들에 대한 함수-기반의 스캐닝 순서를 이용한 비디오 코딩 | |
BR112013032601B1 (pt) | Seleção de candidatos a modo de junção e modo de predição adaptativa de vetor de movimento unificados | |
BRPI0919839B1 (pt) | Método, aparelho e mídia de armazenamento não transitória legível por computador para codificação de vídeo com macroblocos grandes | |
AU2012271835A1 (en) | Border pixel padding for intra prediction in video coding | |
KR20180090971A (ko) | 영상 부호화 방법 및 장치 | |
KR102358760B1 (ko) | 비디오 신호의 처리 방법 및 장치 | |
WO2023141238A1 (en) | Methods and devices for decoder-side intra mode derivation | |
WO2023164245A1 (en) | Methods and devices for decoder-side intra mode derivation | |
WO2023129744A1 (en) | Methods and devices for decoder-side intra mode derivation | |
BR112016021144B1 (pt) | Método e dispositivo de codificação e decodificação de dados de vídeo, e memória legível por computador |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B15K | Others concerning applications: alteration of classification |
Ipc: H04N 19/85 (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: 20 (VINTE) ANOS CONTADOS A PARTIR DE 30/09/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |