BR122020013143B1 - Dispositivo e método de processamento de imagem - Google Patents

Dispositivo e método de processamento de imagem Download PDF

Info

Publication number
BR122020013143B1
BR122020013143B1 BR122020013143-8A BR122020013143A BR122020013143B1 BR 122020013143 B1 BR122020013143 B1 BR 122020013143B1 BR 122020013143 A BR122020013143 A BR 122020013143A BR 122020013143 B1 BR122020013143 B1 BR 122020013143B1
Authority
BR
Brazil
Prior art keywords
section
filtering
horizontal
vertical
filter
Prior art date
Application number
BR122020013143-8A
Other languages
English (en)
Inventor
Masaru Ikeda
Junichi Tanaka
Yoshitaka Morigami
Original Assignee
Sony Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corporation filed Critical Sony Corporation
Publication of BR122020013143B1 publication Critical patent/BR122020013143B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Electrotherapy Devices (AREA)
  • Magnetic Treatment Devices (AREA)

Abstract

É descrito um dispositivo de processamento de imagem que habilita a paralelização adicional de processamento durante a aplicação de um filtro de desbloqueio. O dispositivo de processamento de imagem descrito é provido com: uma unidade de decodificação para decodificar uma imagem a partir de um fluxo contínuo de codificação; uma unidade de filtragem horizontal para aplicar o filtro de desbloqueio em contornos de bloco verticais na imagem decodificada pela supramencionada unidade de decodificação; uma unidade de filtragem vertical para aplicar o filtro de desbloqueio em contornos de bloco horizontais na imagem decodificada pela supramencionada unidade de decodificação; e uma unidade de controle que permite que a supramencionada unidade de filtragem horizontal filtre paralelamente múltiplos contornos de bloco verticais incluídos em uma unidade que abrange múltiplas unidades de codificação e permite que a supramencionada unidade de filtragem vertical filtre paralelamente múltiplos contornos de bloco horizontais incluídos na supramencionada unidade de processamento.

Description

Campo da Invenção
[001] A presente descrição se refere a um dispositivo de processamento de imagem e a um método de processamento de imagem.
Fundamentos da Invenção
[002] H.264/AVC, uma das especificações de padrão para o esquema de codificação de imagem, aplica um filtro de desbloqueio em um contorno de bloco em unidades de blocos, cada qual contendo 4 x 4 pixels, por exemplo, a fim de impedir a degradação de qualidade da imagem devida à distorção de bloco enquanto uma imagem é codificada. O filtro de desbloqueio exige uma grande quantidade de processamento e pode ser responsável por 50 % da íntegra da quantidade de processamento na decodificação da imagem, por exemplo.
[003] O trabalho de padrão para Codificação de Vídeo de Alta Eficiência (HEVC), um esquema de codificação de imagem da próxima geração, propõe aplicação do filtro de desbloqueio em unidades de blocos, cada qual contendo 8 x 8 pixels ou mais de acordo com JCTVC-A119 (veja Literatura Não Patente 1). A técnica proposta em JCTVC-A119 aumenta o tamanho do bloco como uma unidade mínima, o que permite aplicar o filtro de desbloqueio para realizar processos de filtragem em paralelo em contornos de bloco na mesma direção em um macrobloco.
Lista de Citação Literatura Não Patente
[004] Literatura Não Patente 1: K. Ugur (Nokia), K. R. Andersson (LM Ericsson), A. Fuldseth (Tandberg Telecom), “JCTVC-A119: Video coding technology proposal by Tandberg, Nokia, and Ericsson”, Documentos da primeira reunião de Joint Collaborative Team on Video Coding (JCT-VC), Dresden, Alemanha, 15 - 23 de abril de 2010.
Sumário da Invenção Problema Técnico
[005] Mesmo se a técnica proposta em JCTVC-A119 for usada, permanece dependência entre um processo no contorno de bloco vertical e um processo no contorno de bloco horizontal. Especificamente, um processo no contorno vertical para um macrobloco espera até que um processo no contorno horizontal para um macrobloco vizinho seja realizado. Um processo no contorno horizontal para um macrobloco espera até que um processo no contorno vertical para o mesmo macrobloco seja realizado. A supradescrita técnica pode prover somente um processo em paralelo do filtro de desbloqueio em um grau muito limitado. Desta maneira, a supradescrita técnica pode não resolver com sucesso problemas de um atraso e uma diminuição nas taxas de dados devidos a uma grande quantidade de processamento enquanto o filtro de desbloqueio é aplicado.
[006] A tecnologia de acordo com a descrição visa a prover um dispositivo de processamento de imagem e um método de processamento de imagem capazes de prover processamento em paralelo adicional quando um filtro de desbloqueio for aplicado. Solução do Problema
[007] De acordo com uma modalidade da presente descrição, é provido um dispositivo de processamento de imagem que inclui uma seção de decodificação configurada para decodificar uma imagem a partir de um fluxo contínuo codificado, uma seção de filtragem horizontal configurada para aplicar um filtro de desbloqueio em um contorno de bloco vertical em uma imagem a ser decodificada pela seção de decodificação, uma seção de filtragem vertical configurada para aplicar um filtro de desbloqueio em um contorno de bloco horizontal em uma imagem a ser decodificada pela seção de decodificação e uma seção de controle configurada para fazer com que a seção de filtragem horizontal filtre em paralelo uma pluralidade de contornos de bloco verticais incluídos em uma unidade de processamento que contém uma pluralidade de unidades de codificação e fazer com que a seção de filtragem vertical filtre em paralelo uma pluralidade de contornos de bloco horizontais incluídos na unidade de processamento.
[008] O dispositivo de processamento de imagem pode ser realizado, tipicamente, como um dispositivo de decodificação de imagem para decodificação de uma imagem.
[009] De acordo com uma modalidade da presente descrição, é provido um método de processamento de imagem que inclui decodificar uma imagem a partir de um fluxo contínuo codificado, realizar filtragem horizontal para aplicar um filtro de desbloqueio em um contorno de bloco vertical em uma imagem a ser decodificada, realizar filtragem vertical para aplicar um filtro de desbloqueio em um contorno de bloco horizontal em uma imagem a ser decodificada, e controlar a filtragem horizontal e a filtragem vertical para filtrar em paralelo uma pluralidade de contornos de bloco verticais incluídos em uma unidade de processamento que contém uma pluralidade de unidades de codificação e filtrar em paralelo uma pluralidade de contornos de bloco horizontais incluídos na unidade de processamento.
[0010] De acordo com uma modalidade da presente descrição, é provido um dispositivo de processamento de imagem que inclui uma seção de filtragem horizontal configurada para aplicar um filtro de desbloqueio em um contorno de bloco vertical em uma imagem a ser localmente decodificada durante a codificação de uma imagem a ser codificada, uma seção de filtragem vertical configurada para aplicar um filtro de desbloqueio em um contorno de bloco horizontal na imagem, uma seção de controle configurada para fazer com que a seção de filtragem horizontal filtre em paralelo uma pluralidade de contornos de bloco verticais incluídos em uma unidade de processamento que contém uma pluralidade de unidades de codificação e fazer com que a seção de filtragem vertical filtre em paralelo uma pluralidade de contornos de bloco horizontais incluídos na unidade de processamento e uma seção de codificação configurada para codificar a imagem a ser codificada usando uma imagem filtrada pela seção de filtragem horizontal e pela seção de filtragem vertical.
[0011] O dispositivo de processamento de imagem pode ser realizado, tipicamente, como um dispositivo de codificação de imagem para codificação de uma imagem.
[0012] De acordo com uma modalidade da presente descrição, é provido um método de processamento de imagem que inclui realizar filtragem horizontal para aplicar um filtro de desbloqueio em um contorno de bloco vertical em uma imagem a ser localmente decodificada durante a codificação de uma imagem a ser codificada, realizar filtragem vertical para aplicar um filtro de desbloqueio em um contorno de bloco horizontal na imagem, controlar a filtragem horizontal e a filtragem vertical para filtrar em paralelo uma pluralidade de contornos de bloco verticais incluídos em uma unidade de processamento que contém uma pluralidade de unidades de codificação e filtrar em paralelo uma pluralidade de contornos de bloco horizontais incluídos na unidade de processamento, e codificar a imagem a ser codificada usando uma imagem filtrada pela filtragem horizontal e pela filtragem vertical.
Efeitos Vantajosos da Invenção
[0013] Da forma supradescrita, o dispositivo de processamento de imagem e o método de processamento de imagem de acordo com a presente descrição melhoram adicionalmente o processamento em paralelo quando um filtro de desbloqueio for aplicado.
Breve Descrição dos Desenhos
[0014] A figura 1 é um diagrama de blocos que mostra um exemplo de uma configuração de um dispositivo de codificação de imagem de acordo com uma modalidade.
[0015] A figura 2 é um diagrama de blocos que mostra um exemplo de uma configuração de um dispositivo de decodificação de imagem de acordo com uma modalidade.
[0016] A figura 3 é um diagrama explicativo que mostra um exemplo de pixels vizinhos ao redor de um contorno.
[0017] A figura 4 é um diagrama explicativo que ilustra pixels de referência durante os processos de determinação de necessidade de filtragem de acordo com uma técnica existente.
[0018] A figura 5 é um diagrama explicativo que ilustra pixels atualizados por processos de filtragem.
[0019] A figura 6 é um diagrama explicativo que ilustra identificação de bordas para descrição da modalidade.
[0020] A figura 7 é um diagrama explicativo que ilustra um processo em paralelo de acordo com uma técnica existente.
[0021] A figura 8 é um primeiro diagrama explicativo que ilustra a dependência entre os processos de acordo com uma técnica existente.
[0022] A figura 9 é um segundo diagrama explicativo que ilustra a dependência entre os processos de acordo com uma técnica existente.
[0023] A figura 10 é um diagrama explicativo que ilustra uma sequência dos processos de acordo com uma técnica existente.
[0024] A figura 11 é um diagrama explicativo que ilustra uma sequência dos processos de acordo com um primeiro exemplo funcional.
[0025] A figura 12 é um diagrama de blocos que ilustra uma configuração detalhada de um filtro de desbloqueio de acordo com a primeira modalidade.
[0026] A figura 13 é um diagrama de blocos que ilustra uma configuração detalhada de uma seção de determinação.
[0027] A figura 14 é um diagrama explicativo que ilustra blocos vizinhos ao redor de um contorno de fatia.
[0028] A figura 15 é um diagrama explicativo que ilustra um primeiro exemplo de uma sequência dos processos para cada fatia.
[0029] A figura 16 é um diagrama explicativo que ilustra um segundo exemplo de uma sequência dos processos para cada fatia.
[0030] A figura 17 é um diagrama explicativo que ilustra primeiro e segundo exemplos de uma técnica de determinação provida por uma modificação.
[0031] A figura 18 é um diagrama explicativo que ilustra terceiro e quarto exemplos de uma técnica de determinação provida por uma modificação.
[0032] A figura 19 é um diagrama explicativo que ilustra quinto e sexto exemplos de uma técnica de determinação provida por uma modificação.
[0033] A figura 20 é um fluxograma que ilustra um fluxo do processo para o filtro de desbloqueio de acordo com o primeiro exemplo funcional.
[0034] A figura 21 é um fluxograma que ilustra um fluxo de um processo de determinação de necessidade de filtragem.
[0035] A figura 22 é um diagrama explicativo que ilustra uma sequência dos processos de acordo com um segundo exemplo funcional.
[0036] A figura 23 é um diagrama de blocos que ilustra uma configuração detalhada do filtro de desbloqueio de acordo com o segundo exemplo funcional.
[0037] A figura 24 é um fluxograma que ilustra um fluxo do processo para o filtro de desbloqueio de acordo com o segundo exemplo funcional.
[0038] A figura 25 é um diagrama explicativo que ilustra uma sequência de processo para cada LCU.
[0039] A figura 26 é um fluxograma que ilustra um fluxo do processo para cada LCU.
[0040] A figura 27 é um diagrama explicativo que ilustra uma visão geral de um terceiro exemplo funcional.
[0041] A figura 28 é um diagrama de blocos que ilustra uma configuração detalhada de um filtro de desbloqueio de acordo com o terceiro exemplo funcional.
[0042] A figura 29 é um diagrama explicativo que ilustra a determinação de um peso para média ponderada.
[0043] A figura 30 é um diagrama explicativo que ilustra um exemplo de um peso para média ponderada.
[0044] A figura 31 é um diagrama explicativo que ilustra um valor do pixel de saída proveniente de uma seção de cálculo de acordo com o terceiro exemplo funcional.
[0045] A figura 32 é um diagrama explicativo que ilustra um primeiro exemplo da sequência de processo para comparação.
[0046] A figura 33 é um diagrama explicativo que ilustra um primeiro exemplo da sequência de processo provida pelo terceiro exemplo funcional.
[0047] A figura 34 é um diagrama explicativo que ilustra um segundo exemplo da sequência de processo para comparação.
[0048] A figura 35 é um diagrama explicativo que ilustra um segundo exemplo da sequência de processo provida pelo terceiro exemplo funcional.
[0049] A figura 36 é um fluxograma que ilustra um primeiro exemplo de um fluxo do processo para o filtro de desbloqueio de acordo com o terceiro exemplo funcional.
[0050] A figura 37 é um fluxograma que ilustra um fluxo de um processo de cálculo do valor de pixel mostrado na figura 36.
[0051] A figura 38 é um diagrama explicativo que ilustra codec de multivisualizações.
[0052] A figura 39 é um diagrama explicativo que ilustra um processo de codificação de imagem de acordo com uma modalidade aplicada no codec de multivisualizações.
[0053] A figura 40 é um diagrama explicativo que ilustra um processo de decodificação de imagem de acordo com uma modalidade aplicada no codec de multivisualizações.
[0054] A figura 41 é um diagrama explicativo que ilustra o codec escalonável.
[0055] A figura 42 é um diagrama explicativo que ilustra um processo de codificação de imagem de acordo com uma modalidade aplicada no codec escalonável.
[0056] A figura 43 é um diagrama explicativo que ilustra um processo de decodificação de imagem de acordo com uma modalidade aplicada no codec escalonável.
[0057] A figura 44 é um diagrama de blocos que ilustra uma configuração esquemática de um aparelho de televisão.
[0058] A figura 45 é um diagrama de blocos que ilustra uma configuração esquemática de um telefone celular.
[0059] A figura 46 é um diagrama de blocos que ilustra uma configuração esquemática de um dispositivo de gravação/reprodução.
[0060] A figura 47 é um diagrama de blocos que ilustra uma configuração esquemática de um dispositivo de captura de imagem.
Descrição da Modalidade
[0061] A seguir, modalidades preferidas da presente invenção serão descritas com detalhes em relação aos desenhos anexos. Note que, nesta especificação e nos desenhos, elementos que têm, substancialmente, as mesmas função e estrutura são denotados com os mesmos sinais de referência, e explicação repetida é omitida.
[0062] Descrição da modalidade será realizada na seguinte sequência. 1. Visão Geral do Aparelho 1-1. Dispositivo de Codificação de Imagem 1-2. Dispositivo de Decodificação de Imagem 2. Técnica Existente 2-1. Configuração Básica do Filtro de Desbloqueio 2-2. Dependência Entre os Processos de Acordo com uma Técnica Existente 3. Primeiro Exemplo Funcional 3-1. Exemplo de Configuração do Filtro de Desbloqueio 3-2. Modificações da Condição de Determinação 3-3. Fluxo do Processo 4. Segundo Exemplo Funcional 4-1. Exemplo de Configuração do Filtro de Desbloqueio 4-2. Fluxo do Processo 4-3. Exemplo de Processo para Cada LCU 5. Terceiro Exemplo Funcional 5-1. Visão Geral 5-2. Exemplo de Configuração do Filtro de Desbloqueio 5-3. Exemplo da Sequência de Processo 5-4. Fluxo do Processo 6. Aplicação em Vários Codecs 6-1. Codec de Multivisualizações 6-2. Codec Escalonável 7. Aplicações de Exemplo 8. Sumário Final
1. Visão Geral do Aparelho
[0063] Em relação às figuras 1 e 2, o seguinte descreve uma visão geral de um aparelho no qual a tecnologia descrita nesta especificação é aplicável. A tecnologia descrita nesta especificação é aplicável em um dispositivo de codificação de imagem e em um dispositivo de decodificação de imagem, por exemplo.
[1-1. Dispositivo de Codificação de Imagem]
[0064] A figura 1 é um diagrama de blocos que mostra um exemplo de uma configuração de um dispositivo de codificação de imagem 10 de acordo com uma modalidade. Em relação à figura 1, o dispositivo de codificação de imagem 10 inclui uma seção de conversão A/D (Analógico para Digital) 11, um buffer de reordenação 12, uma seção de subtração 13, uma seção de transformada ortogonal 14, uma seção de quantização 15, uma seção de codificação sem perdas 16, um buffer de acúmulo 17, uma seção de controle de taxa 18, uma seção de quantização inversa 21, uma seção de transformada ortogonal inversa 22, uma seção de adição 23, um filtro de desbloqueio 24a, uma memória de quadro 25, um seletor 26, uma seção de intraprevisão 30, uma seção de estimativa de movimento 40 e uma seção de seleção de modo 50.
[0065] A seção de conversão A/D 11 converte um sinal de imagem inserido em um formato analógico para dados de imagem em um formato digital e transmite uma série de dados de imagem digital ao buffer de reordenação 12.
[0066] O buffer de reordenação 12 reordena as imagens incluídas na série de dados de imagem inseridos a partir da seção de conversão A/D 11. Depois de reordenar as imagens de acordo com uma estrutura de GOP (Grupo de Figuras) de acordo com o processo de codificação, o buffer de reordenação 12 transmite os dados de imagem que foram reordenados à seção de subtração 13, à seção de intraprevisão 30 e à seção de estimativa de movimento 40.
[0067] Os dados de imagem inseridos a partir do buffer de reordenação 12 e dados de imagem previstos selecionados pela seção de seleção de modo 50 descrita a seguir são supridos à seção de subtração 13. A seção de subtração 13 calcula dados de erro previstos, que compreendem uma diferença entre os dados de imagem inseridos a partir do buffer de reordenação 12 e os dados de imagem previstos inseridos a partir da seção de seleção de modo 50, e transmite os dados de erro previstos calculados à seção de transformada ortogonal 14.
[0068] A seção de transformada ortogonal 14 realiza transformada ortogonal nos dados de erro previstos inseridos a partir da seção de subtração 13. A transformada ortogonal a ser realizada pela seção de transformada ortogonal 14 pode ser transformada discreta de cosseno (DCT) ou transformada Karhunen-Loève, por exemplo. A seção de transformada ortogonal 14 transmite dados do coeficiente de transformada adquiridos pelo processo de transformada ortogonal à seção de quantização 15.
[0069] Os dados do coeficiente de transformada inseridos a partir da seção de transformada ortogonal 14 e um sinal de controle de taxa proveniente da seção de controle de taxa 18 descrita a seguir são supridos à seção de quantização 15. A seção de quantização 15 quantiza os dados do coeficiente de transformada, e transmite os dados do coeficiente de transformada que foram quantizados (a seguir, referidos como dados quantizados) à seção de codificação sem perdas 16 e à seção de quantização inversa 21. Também, a seção de quantização 15 comuta um parâmetro de quantização (uma escala de quantização) com base no sinal de controle de taxa proveniente da seção de controle de taxa 18 para, desse modo, mudar a taxa de bits dos dados quantizados a serem inseridos na seção de codificação sem perdas 16.
[0070] Os dados quantizados inseridos a partir da seção de quantização 15 e informação descrita a seguir sobre intraprevisão ou interprevisão gerada pela seção de intraprevisão 30 ou pela seção de estimativa de movimento 40 e selecionada pela seção de seleção de modo 50 são supridos à seção de codificação sem perdas 16. A informação sobre intraprevisão pode incluir informação do modo de previsão que indica um modo de intraprevisão ideal para cada bloco, por exemplo. Também, a informação sobre interprevisão pode incluir informação do modo de previsão para previsão de um vetor de movimento para cada bloco, informação do vetor de movimento da diferença, informação da imagem de referência e similares, por exemplo.
[0071] A seção de codificação sem perdas 16 gera um fluxo contínuo codificado pela realização de um processo de codificação sem perdas nos dados quantizados. A codificação sem perdas pela seção de codificação sem perdas 16 pode ser codificação com comprimento variável ou codificação aritmética, por exemplo. Além do mais, a seção de codificação sem perdas 16 multiplexa a informação sobre intraprevisão ou a informação sobre interprevisão supramencionadas no cabeçalho do fluxo contínuo codificado (por exemplo, um cabeçalho do bloco, um cabeçalho de fatia ou similares). Então, a seção de codificação sem perdas 16 transmite o fluxo contínuo codificado gerado ao buffer de acúmulo 17.
[0072] O buffer de acúmulo 17 armazena temporariamente o fluxo contínuo codificado inserido a partir da seção de codificação sem perdas 16 usando uma mídia de armazenamento, tal como uma memória semicondutora. Então, o buffer de acúmulo 17 transmite o fluxo contínuo codificado acumulado em uma taxa de acordo com a banda de uma linha de transmissão (ou uma linha de saída do dispositivo de codificação de imagem 10).
[0073] A seção de controle de taxa 18 monitora o espaço livre do buffer de acúmulo 17. Então, a seção de controle de taxa 18 gera um sinal de controle de taxa de acordo com o espaço livre no buffer de acúmulo 17 e transmite o sinal de controle de taxa gerado à seção de quantização 15. Por exemplo, quando não houver muito espaço livre no buffer de acúmulo 17, a seção de controle de taxa 18 gera um sinal de controle de taxa para diminuir a taxa de bits dos dados quantizados. Também, por exemplo, quando o espaço livre no buffer de acúmulo 17 for suficientemente grande, a seção de controle de taxa 18 gera um sinal de controle de taxa para aumentar a taxa de bits dos dados quantizados.
[0074] A seção de quantização inversa 21 realiza um processo de quantização inversa nos dados quantizados inseridos a partir da seção de quantização 15. Então, a seção de quantização inversa 21 transmite dados do coeficiente de transformada adquiridos pelo processo de quantização inversa à seção de transformada ortogonal inversa 22.
[0075] A seção de transformada ortogonal inversa 22 realiza um processo de transformada ortogonal inversa nos dados do coeficiente de transformada inseridos a partir da seção de quantização inversa 21 para, desse modo, restaurar os dados de erro previstos. Então, a seção de transformada ortogonal inversa 22 transmite os dados de erro previstos restaurados à seção de adição 23.
[0076] A seção de adição 23 adiciona os dados de erro previstos restaurados inseridos a partir da seção de transformada ortogonal inversa 22 e os dados de imagem previstos inseridos a partir da seção de seleção de modo 50 para, desse modo, gerar dados de imagem decodificados. Então, a seção de adição 23 transmite os dados de imagem decodificados gerados ao filtro de desbloqueio 24a e à memória de quadro 25.
[0077] Um filtro de desbloqueio 24a realiza os processos de filtragem para diminuir a distorção de bloco que ocorre durante a codificação de imagem. Por exemplo, o filtro de desbloqueio 24a determina a necessidade de filtragem para cada contorno de bloco dos dados de imagem decodificados supridos a partir de uma seção de adição 23 e aplica o filtro de desbloqueio em um contorno que se determina que exige o filtro. Ao filtro de desbloqueio 24a também é suprida informação usada para a determinação da necessidade de filtragem (por exemplo, informação de modo, informação do coeficiente de transformada e informação do vetor de movimento), bem como dados de imagem decodificados provenientes da seção de adição 23. Depois da filtragem, a distorção de bloco é eliminada dos dados de imagem decodificados e o filtro de desbloqueio 24a transmite os dados de imagem decodificados à memória de quadro 25. O processo para o filtro de desbloqueio 24a será descrito com detalhes a seguir.
[0078] A memória de quadro 25 armazena, usando uma mídia de armazenamento, os dados de imagem decodificados inseridos a partir da seção de adição 23 e os dados de imagem decodificados depois da filtragem inseridos a partir do filtro de desbloqueio 24a.
[0079] O seletor 26 lê, a partir da memória de quadro 25, os dados de imagem decodificados antes da filtragem que devem ser usados para a intraprevisão e supre os dados de imagem decodificados que foram lidos à seção de intraprevisão 30 como dados de imagem de referência. Também, o seletor 26 lê, a partir da memória de quadro 25, os dados de imagem decodificados depois da filtragem a serem usados para a interprevisão e supre os dados de imagem decodificados que foram lidos à seção de estimativa de movimento 40 como dados de imagem de referência.
[0080] A seção de intraprevisão 30 realiza um processo de intraprevisão em cada modo de intraprevisão, com base nos dados de imagem a serem codificados que são inseridos a partir do buffer de reordenação 12 e nos dados de imagem decodificados supridos por meio do seletor 26. Por exemplo, a seção de intraprevisão 30 avalia o resultado da previsão de cada modo de intraprevisão usando uma função de custo pré-determinada. Então, a seção de intraprevisão 30 seleciona um modo de intraprevisão pelo qual o valor da função de custo é o menor, isto é, um modo de intraprevisão pelo qual a razão de compressão é a mais alta, como o modo de intraprevisão ideal. Além do mais, a seção de intraprevisão 30 transmite, à seção de seleção de modo 50, informação do modo de previsão que indica o modo de intraprevisão ideal, os dados de imagem previstos e a informação sobre intraprevisão, tal como o valor da função de custo.
[0081] Uma seção de estimativa de movimento 40 realiza um processo de interprevisão (processo de previsão entre quadros) com base nos dados de imagem para codificação supridos a partir de um buffer de reordenação 12 e nos dados de imagem decodificados supridos por meio de um seletor 26. Por exemplo, a seção de estimativa de movimento 40 avalia o resultado da previsão de cada modo de previsão usando uma função de custo pré-determinada. Então, a seção de estimativa de movimento 40 seleciona um modo de previsão ideal, a saber, um modo de previsão que minimiza o valor da função de custo ou maximiza a razão de compressão. A seção de estimativa de movimento 40 gera dados de imagem previstos de acordo com o modo de previsão ideal. A seção de estimativa de movimento 40 transmite informação sobre a interprevisão, tais como informação do modo de previsão que indica o modo de intraprevisão ideal, os dados de imagem previstos e o valor da função de custo, a uma seção de seleção de modo 50.
[0082] A seção de seleção de modo 50 compara o valor da função de custo relacionado à intraprevisão inserido a partir da seção de intraprevisão 30 e o valor da função de custo relacionado à interprevisão inserido a partir da seção de estimativa de movimento 40. Então, a seção de seleção de modo 50 seleciona um método de previsão com um menor valor da função de custo, a partir da intraprevisão e da interprevisão. No caso de seleção da intraprevisão, a seção de seleção de modo 50 transmite a informação sobre intraprevisão à seção de codificação sem perdas 16 e, também, transmite os dados de imagem previstos à seção de subtração 13 e à seção de adição 23. Também, no caso de seleção da interprevisão, a seção de seleção de modo 50 transmite a informação sobre interprevisão supradescrita à seção de codificação sem perdas 16 e, também, transmite os dados de imagem previstos à seção de subtração 13 e à seção de adição 23.
[1-2. Dispositivo de Decodificação de Imagem]
[0083] A figura 2 é um diagrama de blocos que mostra um exemplo de uma configuração de um dispositivo de decodificação de imagem 60 de acordo com uma modalidade. Em relação à figura 2, o dispositivo de decodificação de imagem 60 inclui um buffer de acúmulo 61, uma seção de decodificação sem perdas 62, uma seção de quantização inversa 63, uma seção de transformada ortogonal inversa 64, uma seção de adição 65, um filtro de desbloqueio 24b, um buffer de reordenação 67, uma seção de conversão D/A (Digital para Analógico) 68, uma memória de quadro 69, seletores 70 e 71, uma seção de intraprevisão 80 e uma seção de compensação de movimento 90.
[0084] O buffer de acúmulo 61 armazena temporariamente um fluxo contínuo codificado inserido por meio de uma linha de transmissão usando uma mídia de armazenamento.
[0085] A seção de decodificação sem perdas 62 decodifica um fluxo contínuo codificado inserido a partir do buffer de acúmulo 61 de acordo com o método de codificação usado no momento da codificação. Também, a seção de decodificação sem perdas 62 decodifica informação multiplexada na região do cabeçalho do fluxo contínuo codificado. Informação que é multiplexada na região do cabeçalho do fluxo contínuo codificado pode incluir informação sobre intraprevisão e informação sobre interprevisão no cabeçalho do bloco, por exemplo. A seção de decodificação sem perdas 62 transmite a informação sobre intraprevisão à seção de intraprevisão 80. Também, a seção de decodificação sem perdas 62 transmite a informação sobre interprevisão à seção de compensação de movimento 90.
[0086] A seção de quantização inversa 63 quantiza inversamente dados quantizados que foram decodificados pela seção de decodificação sem perdas 62. A seção de transformada ortogonal inversa 64 gera dados de erro previstos pela realização de transformada ortogonal inversa nos dados do coeficiente de transformada inseridos a partir da seção de quantização inversa 63 de acordo com o método de transformada ortogonal usado no momento da codificação. Então, a seção de transformada ortogonal inversa 64 transmite os dados de erro previstos gerados à seção de adição 65.
[0087] A seção de adição 65 adiciona os dados de erro previstos inseridos a partir da seção de transformada ortogonal inversa 64 e os dados de imagem previstos inseridos a partir do seletor 71 para, desse modo, gerar dados de imagem decodificados. Então, a seção de adição 65 transmite os dados de imagem decodificados gerados ao filtro de desbloqueio 24b e à memória de quadro 69.
[0088] O filtro de desbloqueio 24b realiza os processos de filtragem para diminuir a distorção de bloco que aparece em uma imagem decodificada. O filtro de desbloqueio 24b determina a necessidade de filtragem em cada contorno de bloco para dados de imagem decodificados inseridos a partir da seção de adição 65, por exemplo, e aplica o filtro de desbloqueio em um contorno que se determina que exige o filtro. Ao filtro de desbloqueio 24b também é suprida informação usada para a determinação da necessidade de filtragem, bem como dados de imagem decodificados provenientes da seção de adição 65. Depois da filtragem, a distorção de bloco é eliminada dos dados de imagem decodificados e o filtro de desbloqueio 24b transmite os dados de imagem decodificados ao buffer de reordenação 67 e à memória de quadro 69. O processo para o filtro de desbloqueio 24b será descrito com detalhes a seguir.
[0089] O buffer de reordenação 67 gera uma série de dados de imagem em uma sequência temporal pela reordenação das imagens inseridas a partir do filtro de desbloqueio 24b. Então, o buffer de reordenação 67 transmite os dados de imagem gerados à seção de conversão D/A 68.
[0090] A seção de conversão D/A 68 converte os dados de imagem em um formato digital inseridos a partir do buffer de reordenação 67 em um sinal de imagem em um formato analógico. Então, a seção de conversão D/A 68 faz com que uma imagem seja exibida pela transmissão do sinal de imagem analógico a uma tela (não mostrada) conectada no dispositivo de decodificação de imagem 60, por exemplo.
[0091] A memória de quadro 69 usa uma mídia de armazenamento para armazenar os dados de imagem decodificados inseridos a partir da seção de adição 65 antes da filtragem e os dados de imagem decodificados inseridos a partir do filtro de desbloqueio 24b depois da filtragem.
[0092] O seletor 70 comuta o destino de saída dos dados de imagem da memória de quadro 69 entre a seção de intraprevisão 80 e a seção de compensação de movimento 90 para cada bloco na imagem de acordo com a informação de modo adquirida pela seção de decodificação sem perdas 62. Por exemplo, no caso em que o modo de intraprevisão for especificado, o seletor 70 transmite os dados de imagem decodificados antes da filtragem que são supridos a partir da memória de quadro 69 à seção de intraprevisão 80 como dados de imagem de referência. Também, no caso em que o modo de interprevisão for especificado, o seletor 70 transmite os dados de imagem decodificados depois da filtragem que são supridos a partir da memória de quadro 69 à seção de compensação de movimento 90 como os dados de imagem de referência.
[0093] O seletor 71 comuta a origem da saída dos dados de imagem previstos a serem supridos à seção de adição 65 entre a seção de intraprevisão 80 e a seção de compensação de movimento 90 para cada bloco na imagem de acordo com a informação de modo adquirida pela seção de decodificação sem perdas 62. Por exemplo, no caso em que o modo de intraprevisão for especificado, o seletor 71 supre à seção de adição 65 os dados de imagem previstos transmitidos a partir da seção de intraprevisão 80. No caso em que o modo de interprevisão for especificado, o seletor 71 supre à seção de adição 65 os dados de imagem previstos transmitidos a partir da seção de compensação de movimento 90.
[0094] A seção de intraprevisão 80 realiza previsão na tela de um valor de pixel com base na informação sobre intraprevisão inserida a partir da seção de decodificação sem perdas 62 e nos dados de imagem de referência provenientes da memória de quadro 69, e gera dados de imagem previstos. Então, a seção de intraprevisão 80 transmite os dados de imagem gerados previstos ao seletor 71.
[0095] A seção de compensação de movimento 90 realiza um processo de compensação de movimento com base na informação sobre interprevisão inserida a partir da seção de decodificação sem perdas 62 e nos dados de imagem de referência provenientes da memória de quadro 69, e gera dados de imagem previstos. Então, a seção de compensação de movimento 90 transmite os dados de imagem gerados previstos ao seletor 71.
<2. Técnica Existente> [2-1. Configuração Básica do Filtro de Desbloqueio]
[0096] No geral, processos que usam o filtro de desbloqueio em um esquema de codificação de imagem existente, tais como H.264/AVC ou HEVC, incluem dois tipos de processos, a saber, processos de determinação de necessidade de filtragem e processos de filtragem. O seguinte descreve estes dois processos em HEVC, por exemplo. (1) Processos de Determinação de Necessidade de Filtragem
[0097] Os processos de determinação de necessidade de filtragem determinam se o filtro de desbloqueio precisa ser aplicado em cada contorno dos blocos em uma imagem de entrada. Contornos de bloco incluem um contorno vertical entre os blocos horizontalmente adjacentes uns aos outros e um contorno horizontal entre blocos verticalmente adjacentes uns aos outros. JCTVC-A119 usa um tamanho do bloco de 8 x 8 pixels como uma unidade mínima de processamento. Por exemplo, um macrobloco de 16 x 16 pixels inclui quatro blocos de 8 x 8 pixels. O processo é aplicado em um contorno vertical (esquerdo) e um contorno horizontal (topo) para cada bloco, a saber, quatro contornos mais quatro contornos igual a oito contornos no total. A especificação considera que o macrobloco, como um termo técnico, inclua uma unidade de codificação (CU) no contexto de HEVC.
[0098] A figura 3 é um diagrama explicativo que mostra um exemplo de pixels em dois blocos (blocos vizinhos) Ba e Bb adjacentes um ao outro ao redor de um contorno. O seguinte descreve o contorno vertical com um exemplo e a descrição é obviamente aplicável no contorno horizontal. O exemplo da figura 3 usa o símbolo pij para representar um pixel no bloco Ba. Neste símbolo, i denota um índice da coluna e j denota um índice da linha. O índice da coluna i é numerado como 0, 1, 2 e 3 na ordem (da direita para a esquerda) a partir da coluna mais próxima do contorno vertical. O índice da linha j é numerado como 0, 1, 2, . . . , 7 do topo até a base. A metade esquerda do bloco Ba é omitida do desenho. O símbolo qkj é usado para representar um pixel no bloco Bb. Neste símbolo, k denota um índice da coluna e j denota um índice da linha. O índice da coluna k é numerado como 0, 1, 2 e 3 na ordem (da esquerda para a direita) a partir da coluna mais próxima do contorno vertical. O metade direita do bloco Bb é omitida do desenho.
[0099] As seguintes condições podem ser usadas para determinar a necessidade de aplicar o filtro de desbloqueio no contorno vertical entre os blocos Ba e Bb mostrados na figura 3.
[00100] Condição de determinação do componente luma (Luma)... O filtro de desbloqueio é aplicado se ambas as condições A e B forem verdadeiras.
[00101] Condição A: (A1) Blocos Ba ou Bb entram no modo de intraprevisão; (A2) Blocos Ba ou Bb têm um coeficiente de transformada ortogonal não zero; ou (A3) MVAx - MVBxl > 4 ou MVAy - MVByl > 4
[00102] Condição B: |p22 - 2p12 + p02| + |q22 - 2q12 + q02| + |p25 - 2p15 + p05| + |q25 - 2q15 + q05| < β
[00103] A condição A3 considera um vetor de movimento para o bloco Ba como (MVAx, MVAy) e um vetor de movimento para o bloco Bb como (MVBx, MVBy) de acordo com a precisão Qpel (1/4 pixel). A condição B usa β como um valor limite da determinação de borda. Um valor inicial de β é dado de acordo com um parâmetro de quantização. O valor para β é especificável pelo usuário usando um parâmetro no cabeçalho de fatia.
[00104] Condição de determinação do componente croma (Croma)... O filtro de desbloqueio é aplicado se a condição A1 for verdadeira.
[00105] Condição A1: Blocos Ba ou Bb entram no modo de intraprevisão.
[00106] Da forma indicada por quadros em linha rompida L3 e L6 da figura 4, os processos de determinação de necessidade de filtragem nos contornos verticais gerais (particularmente, sob a condição de determinação B do componente luma) referenciam pixels nas terceira e sexta linhas (considerando a linha de topo como a primeira) em cada bloco. Similarmente, os processos de determinação de necessidade de filtragem nos contornos horizontais referenciam pixels (não mostrados na figura 4) nas terceira e sexta colunas em cada bloco. As supradescritas condições de determinação são usadas para determinar que o filtro de desbloqueio precisa ser aplicado em um contorno no qual os processos de filtragem descritos a seguir são realizados. (2) Processos de Filtragem
[00107] Se for determinado que o filtro de desbloqueio precisa ser aplicado em um contorno, os processos de filtragem são realizados nos pixels à direita e à esquerda do contorno vertical e nos pixels acima e abaixo do contorno horizontal. Nos componentes luma, a intensidade do filtro é comutada entre um filtro forte e um filtro fraco de acordo com valores de pixel. Filtragem dos componentes luma
[00108] Seleção da intensidade... A intensidade do filtro é selecionada para cada linha ou coluna. O filtro forte é selecionado se todas as seguintes condições C1 até C3 forem satisfeitas. O filtro fraco é selecionado mesmo se nenhuma das condições for satisfeita.
[00109] (C1) d < (β >> 2) (C2) (|p3j - p0j| + |q0j - q3j|) < (β >> 3) (C3) |p0j - q0j| < ((5tC + 1) >> 1) em que j denota um índice da linha para o contorno vertical ou um índice da coluna para o contorno horizontal. d = |p22 - 2p12 + p02| + |q22 - 2q12 + q02| + |p25 - 2p15 + p05| + |q25 - 2q15 + q05|. Filtragem Fraca
[00110] 5)) Δ = Clip(-tC,tC,(13(q0j - p0j) + 4(q1j - p1j) - 5(q2j - p2j) + 16) >> p0j = Clip0 - 255(p0j + Δ) q0j = Clip0 - 255(q0j - Δ) p1j = Clip0 - 255(p1j + Δ/2) q1j = Clip0 - 255(q1j - Δ/2) Filtragem Forte
[00111] p0j = Clip0-255((p2j + 2p1j + 2p0j + 2q0j + q1j + 4) >> 3) q0j = Clip0-255((p1j + 2p0j + 2q0j + 2q1j + q2j + 4) >> 3) p1j = Clip0-255((p2j+p1j+p0j+q0j + 2) >> 2) q1j = Clip0-255((p0j+q0j+q1j+q2j + 2) >> 2) p2j = Clip0-255((2p3j + 3p2j+p1j+p0j+q0j + 4) >> 3) q2j = Clip0-255((p0j + q0j + q1j + 3q2j + 2q3j + 4) >> 3) em que Clip(a, b, c) denota um processo para recortar o valor c na faixa de a < c < b e Clip0-255(c) denota um processo para recortar o valor c na faixa de 0 < c < 255. Filtragem de componentes croma
[00112] Δ = Clip(-tC,tC,((((q0j - p0j) << 2) + p1j - q1j + 4) >> 3)) p0j = Clip0 - 255(p0j + Δ) q0j = Clip0 - 255(q0j - Δ)
[00113] Da forma indicada por quadros em linha rompida C6 até C8 e C1 até C3 da figura 5, os processos de filtragem (particularmente, filtragem forte nos componentes luma) nos contornos verticais gerais atualizam os valores de pixel nas primeira até terceira e sexta até oitava colunas em cada bloco. Similarmente, os processos de filtragem nos contornos horizontais atualizam valores de pixel nas primeira até terceira e sexta até oitava linhas em cada bloco. [2-2. Dependência Entre os Processos de Acordo com uma Técnica Existente]
[00114] Com o propósito de descrição, da forma mostrada na figura 6, macroblocos MBx (MB0, MB1...), cada qual com o tamanho de 16 x 16 pixels, incluem o contorno vertical no topo à esquerda representado como Vx,0, o contorno vertical no topo ao centro representado como Vx,1, o contorno vertical na base à esquerda representado como Vx,2, o contorno vertical na base ao centro representado como Vx,3, o contorno horizontal no topo à esquerda representado como Hx,0, o contorno horizontal no topo à direita representado como Hx,1, o contorno horizontal à esquerda do centro representado como Hx,2 e o contorno horizontal à direita do centro representado como Hx,3. Em relação ao contorno Z, por exemplo, o processo de determinação de necessidade de filtragem é representado como JZ e o processo de filtragem é representado como FZ.
[00115] A supradescrita técnica existente ocasiona nenhuma dependência entre os processos nos contornos na mesma direção em um macrobloco. Portanto, a técnica pode realizar filtragem em paralelo nos contornos verticais e contornos horizontais em um macrobloco, por exemplo. Como um exemplo, a figura 7 torna claro que não há dependência entre quatro processos de filtragem FV0,0, FV0,1, FV0,2 e FV0,3 (no pixel atualizado redundantemente) no macrobloco MB0, e os processos de filtragem podem ser realizados em paralelo.
[00116] Entretanto, a supradescrita técnica existente deixa a dependência entre os processos de filtragem nos contornos verticais e os processos de determinação de necessidade de filtragem nos contornos horizontais. A técnica existente também deixa a dependência entre os processos de filtragem nos contornos horizontais e os processos de determinação de necessidade de filtragem nos contornos verticais. Se um contorno vertical for processado antes de um contorno horizontal, por exemplo, os processos de determinação de necessidade de filtragem precisam ser realizados em contornos horizontais em um dado macrobloco depois do término dos processos de filtragem nos contornos verticais. Como um exemplo, a figura 8 mostra que, no macrobloco MB0, o processo de determinação de necessidade de filtragem JH0,0 depende dos resultados dos processos de filtragem FV0,0 e FV0,1 e o processo de determinação de necessidade de filtragem JH0,1 depende de um resultado dos processos de filtragem FV0,1. Similarmente, os processos de determinação de necessidade de filtragem precisam ser realizados em contornos verticais em um dado macrobloco depois do término do processo de filtragem no contorno horizontal para o macrobloco adjacente. Como um exemplo, a figura 9 mostra que o processo de determinação de necessidade de filtragem JV1,0 para o macrobloco MB1 depende dos resultados dos processos de filtragem FH0,1 e FH0,3 para o macrobloco MB0 e o processo de determinação de necessidade de filtragem JV1,2 para o macrobloco MB1 depende de um resultado de processo de filtragem FH0,3 para o macrobloco MB0.
[00117] A técnica existente envolve a dependência entre os processos e, portanto, provê o processamento em paralelo do filtro de desbloqueio em um grau muito limitado mesmo se a técnica proposta em JCTVC-A119 for usada.
[00118] A figura 10 é um diagrama explicativo que ilustra uma sequência dos processos do filtro de desbloqueio de acordo com uma técnica existente. O exemplo considera que, ao filtro de desbloqueio, é suprida uma imagem com o tamanho de 32 x 32 pixels. A imagem de entrada inclui quatro macroblocos MB0 até MB3, cada qual com o tamanho de 16 x 16 pixels.
[00119] Na figura 10, cada quadro em linha rompida representa um processo a ser realizado em paralelo. Por exemplo, a primeira etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JV0,0, JV0,1, JV0,2 e JV0,3 em quatro contornos verticais no macrobloco MB0. A segunda etapa realiza, em paralelo, os processos de filtragem FV0,0, FV0,1, FV0,2 e FV0,3 em quatro contornos verticais no macrobloco MB0. Depois do término da segunda etapa, a terceira etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JH0,0, JH0,1, JH0,2 e JH0,3 em quatro contornos horizontais no macrobloco MB0. A terceira etapa usa um valor de pixel depois do processo de filtragem no contorno vertical na segunda etapa para o processo de determinação de necessidade de filtragem no contorno horizontal. A quarta etapa realiza, em paralelo, os processos de filtragem FH0,0, FH0,1, FH0,2 e FH0,3 em quatro contornos horizontais no macrobloco MB0. Depois do término da quarta etapa, os processos (quinta até oitava etapas) para o macrobloco MB1 são realizados sucessivamente. A quinta etapa usa um valor de pixel depois do processo de filtragem no contorno horizontal no macrobloco MB0 na quarta etapa para o processo de determinação de necessidade de filtragem no contorno vertical no macrobloco MB1. Depois do término do processo no macrobloco MB1, processos (nona até décima segunda etapas) para o macrobloco MB2 são realizados sucessivamente. Depois do término do processo no macrobloco MB2, processos (décima terceira até décima sexta etapas) para o macrobloco MB3 são realizados sucessivamente.
[00120] Tal processamento em paralelo no grau limitado não pode resolver satisfatoriamente os problemas de atraso ou de degradação da taxa de dados devido a uma grande quantidade de processamento quando o filtro de desbloqueio for aplicado. Três exemplos funcionais descritos a seguir melhoram adicionalmente o processamento em paralelo quando a definição for aplicada.
<3. Primeiro Exemplo Funcional> [3-1. Exemplo de Configuração do Filtro de Desbloqueio]
[00121] O seguinte descreve configurações de exemplo do filtro de desbloqueio 24a para o dispositivo de codificação de imagem 10 mostrado na figura 1 e do filtro de desbloqueio 24b para o dispositivo de decodificação de imagem 60 mostrado na figura 2 de acordo com o primeiro exemplo funcional. As configurações do filtro de desbloqueio 24a e do filtro de desbloqueio 24b podem ser comuns uma à outra. Na seguinte descrição, o filtro de desbloqueio 24a e o filtro de desbloqueio 24b são genericamente referidos como um filtro de desbloqueio 24 quando não houver necessidade de distinção entre eles. (1) Dependência entre novos processos
[00122] De acordo com o exemplo funcional, processos que usam o filtro de desbloqueio 24 também incluem dois tipos de processos, a saber, um processo de determinação de necessidade de filtragem e um processo de filtragem. O filtro de desbloqueio 24 usa valores de pixel para uma imagem inserida no filtro de desbloqueio para a determinação através de uma pluralidade dos macroblocos no processo de determinação de necessidade de filtragem em um do contorno vertical e do contorno horizontal. Se o contorno vertical for processado antes do contorno horizontal, por exemplo, o filtro de desbloqueio 24 pode realizar o processo de determinação de necessidade de filtragem no contorno vertical para um dado bloco sem esperar pelo processo de filtragem no contorno horizontal para os blocos vizinhos. Se o contorno horizontal for processado antes do contorno vertical, por exemplo, o filtro de desbloqueio 24 pode realizar o processo de determinação de necessidade de filtragem no contorno horizontal para um dado bloco sem esperar pelo processo de filtragem no contorno horizontal para os blocos vizinhos. O resultado é aliviar a dependência dos processos entre macroblocos.
[00123] Aliviar a dependência dos processos entre macroblocos pode paralelizar os processos entre a pluralidade dos macroblocos em uma imagem. Por exemplo, isto habilita realizar os processos de determinação de necessidade de filtragem em paralelo nos contornos verticais para todos os blocos em uma imagem de entrada. Isto também habilita realizar processos de determinação de necessidade de filtragem em paralelo nos contornos horizontais para todos os blocos em uma imagem de entrada.
[00124] A figura 11 é um diagrama explicativo que ilustra uma sequência dos processos disponível para o exemplo funcional. O exemplo também considera que, ao filtro de desbloqueio, é suprida uma imagem com o tamanho de 32 x 32 pixels. A imagem de entrada inclui quatro macroblocos MB0 até MB3, cada qual com o tamanho de 16 x 16 pixels.
[00125] Na figura 11, cada quadro em linha rompida representa um processo a ser realizado em paralelo. Embora o exemplo da figura 10 exija 16 etapas de processo para uma sequência de processos, o exemplo da figura 11 agrega o mesmo número de processos em quatro etapas de processo. A primeira etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JV0,0 até JV3,3 e JH0,0 até JH3,3 em todos os contornos verticais e todos os contornos horizontais de todos os macroblocos MB0 até MB3. A segunda etapa realiza, em paralelo, os processos de filtragem FV0,0 até FV3,3 em 16 contornos verticais de todos os macroblocos MB0 até MB3. A terceira etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem FH0,0 até FH3,3 em todos os contornos horizontais de todos os macroblocos MB0 até MB3. A quarta etapa realiza, em paralelo, os processos de filtragem FH0,0 até FH3,3 em 16 contornos horizontais de todos os macroblocos MB0 até MB3. As terceira e quarta etapas podem preceder as primeira e segunda etapas se o contorno horizontal for processado antes do contorno vertical.
[00126] A figura 11 provê o exemplo de maximização do paralelismo (processos realizados em paralelo) pela paralelização de processos em todos os macroblocos em uma imagem. Embora não limitado ao exemplo, processos podem ser paralelizados em alguns macroblocos em vez de todos os macroblocos em uma imagem. (2) Configuração detalhada do filtro de desbloqueio
[00127] A figura 12 é um diagrama de blocos que ilustra uma configuração detalhada do filtro de desbloqueio 24 de acordo com o primeiro exemplo funcional para realizar os supradescritos processos em paralelo. Em relação à figura 12, o filtro de desbloqueio 24 inclui um bloco de determinação vertical 110, um bloco de determinação horizontal 114, um bloco de filtragem horizontal 130, um bloco de filtragem vertical 140 e uma seção de controle de paralelização 150. (2-1) Bloco de determinação vertical
[00128] O bloco de determinação vertical 110 inclui uma pluralidade de seções de determinação do contorno vertical 112-1 até 112-n. A cada seção de determinação de contorno vertical 112 são supridas imagens inseridas no filtro de desbloqueio 24 e informação de determinação usada para determinar se filtragem é necessária.
[00129] As seções de determinação do contorno vertical 112-1 até 112- n determinam se aplica-se o filtro de desbloqueio nos contornos verticais usando valores de pixel para uma imagem inserida no filtro de desbloqueio 24 através da pluralidade dos macroblocos na imagem. Cada seção de determinação de contorno vertical 112 supre ao bloco de filtragem horizontal 130 informação que indica um resultado da determinação sobre cada contorno vertical, tal como informação binária que indica um resultado da determinação cujo valor “1” força a aplicação do filtro de desbloqueio. (2-2) Bloco de filtragem horizontal
[00130] O bloco de filtragem horizontal 130 inclui uma pluralidade de seções de filtragem horizontal 132-1 até 132-n. A cada seção de filtragem horizontal 132 são supridos uma imagem de entrada e o resultado da determinação sobre cada contorno vertical proveniente do bloco de determinação vertical 110.
[00131] Um resultado da determinação da correspondente seção de determinação de contorno vertical 112 pode indicar que o filtro precisa ser aplicado. Em um caso como este, cada seção de filtragem horizontal 132 aplica o filtro de desbloqueio para o contorno vertical nos elementos direito e esquerdo em relação ao contorno vertical. Cada seção de filtragem horizontal 132 supre ao bloco de determinação horizontal 114 e ao bloco de filtragem vertical 140 valores de pixel depois da filtragem for pixels aplicados ao filtro e valores de pixel da imagem de entrada para os outros pixels. (2-3) Bloco de determinação horizontal
[00132] O bloco de determinação horizontal 114 inclui uma pluralidade de seções de determinação do contorno horizontal 116-1 até 116- n. A cada seção de determinação de contorno horizontal 116 são supridos valores de pixel depois da filtragem realizada pelo bloco de filtragem horizontal 130 e a informação de determinação usada para determinar se filtragem é necessária.
[00133] A seção de determinação de contorno horizontal 116-1 até 116-n determina se aplica-se o filtro de desbloqueio nos contornos horizontais usando valores de pixel depois da filtragem realizada pelo bloco de filtragem horizontal 130 através da pluralidade dos macroblocos na imagem. Cada seção de determinação de contorno horizontal 116 supre ao bloco de filtragem vertical 140 informação que indica um resultado da determinação sobre cada contorno horizontal. (2-4) Bloco de filtragem vertical
[00134] O bloco de filtragem vertical 140 inclui uma pluralidade de seções de filtragem vertical 142-1 até 142-n. A cada seção de filtragem vertical 142 são supridos valores de pixel depois da filtragem realizada pelo bloco de filtragem horizontal 130 e um resultado da determinação sobre cada contorno horizontal proveniente do bloco de determinação horizontal 114.
[00135] Um resultado da determinação da correspondente seção de determinação de contorno horizontal 116 pode indicar que o filtro precisa ser aplicado. Em um caso como este, cada seção de filtragem vertical 142 aplica o filtro de desbloqueio para o contorno horizontal nos elementos de topo e base em relação ao contorno horizontal. Cada seção de filtragem vertical 142 supre aos pixels aplicados ao filtro valores de pixel depois da filtragem e aos outros pixels valores de pixel supridos a partir do bloco de filtragem horizontal 130. Uma saída de cada seção de filtragem vertical 142 pode configurar uma imagem de saída do filtro de desbloqueio 24. (3) Configuração mais detalhada da seção de determinação
[00136] A figura 13 é um diagrama de blocos que ilustra uma configuração detalhada de cada uma das seções de determinação do contorno vertical 112 e das seções de determinação do contorno horizontal 116. Em relação à figura 13, cada seção de determinação inclui uma seção de constituição de derivação 121, uma seção de cálculo 122, uma seção de comparação de limite 123, uma seção de avaliação de distorção 124 e uma seção de determinação de filtragem 125.
[00137] A seção de constituição de derivação 121 adquire um valor do pixel de referência a partir dos valores de pixel de dois blocos vizinhos através de um contorno focalizado na imagem de entrada e constitui uma derivação (um conjunto de valores do pixel de referência) para determinar a condição de determinação B para o supradescrito componente luma. Por exemplo, um contorno vertical pode ser focalizado nos blocos, cada dos quais tendo o tamanho de 8 x 8 pixels. Neste caso, a seção de constituição de derivação 121 constitui uma derivação a partir de valores de pixel que pertencem às terceira e sexta linhas de dois blocos na direita e esquerda. Se um contorno horizontal for focalizado, a seção de constituição de derivação 121 constitui uma derivação a partir de valores de pixel que pertencem às terceira e sexta colunas de dois blocos no topo e na base. A seção de cálculo 122 atribui a derivação constituída pela seção de constituição de derivação 121 ao lado esquerdo da expressão de determinação na condição de determinação B e calcula um valor da borda para ser comparado com o valor limite da determinação de borda β. A seção de comparação de limite 123 compara o valor calculado pela seção de cálculo 122 com o valor limite da determinação de borda β e transmite um resultado da comparação à seção de determinação de filtragem 125.
[00138] A seção de avaliação de distorção 124 avalia a condição de determinação A do supradescrito componente luma usando a informação de modo (modo MB), a informação do coeficiente de transformada e a informação do vetor de movimento suprida como a informação de determinação. A seção de avaliação de distorção 124 transmite um resultado da avaliação à seção de determinação de filtragem 125. A seção de avaliação de distorção 124 avalia somente a condição de determinação A1 de um componente croma com base na informação de modo.
[00139] A seção de determinação de filtragem 125 determina se aplica- se o filtro de desbloqueio em um contorno focalizado com base em um resultado da comparação da condição de determinação B suprido a partir da seção de comparação de limite 123 e em um resultado da avaliação da condição de determinação A suprido a partir da seção de avaliação de distorção 124. A seção de determinação de filtragem 125 transmite informação que indica o resultado da determinação. (4) Seção de controle de paralelização
[00140] A seção de controle de paralelização 150 mostrada na figura 12 controla o paralelismo dos processos de determinação de necessidade de filtragem no bloco de determinação vertical 110 e no bloco de determinação horizontal 114 e o paralelismo dos processos de filtragem no bloco de filtragem horizontal 130 e no bloco de filtragem vertical 140.
[00141] Por exemplo, a seção de controle de paralelização 150 pode controlar o paralelismo dos processos para cada bloco com base em um tamanho da imagem de entrada. Mais especificamente, a seção de controle de paralelização 150 aumenta o paralelismo dos processos para cada bloco se o tamanho da imagem de entrada for relativamente grande. Isto pode impedir adaptativamente atraso ou degradação da taxa de dados devidos a uma quantidade de processamento que aumenta de acordo com tamanhos da imagem. Por exemplo, a seção de controle de paralelização 150 pode controlar o paralelismo dos processos para cada bloco com base em um conjunto de parâmetro de sequência, em um conjunto de parâmetro de figura ou parâmetros contidos no cabeçalho de fatia. Isto habilita configurar de forma flexível o paralelismo de acordo com as exigências dos usuários que desenvolvem aparelhos. Por exemplo, o paralelismo pode ser configurado de acordo com as restrições no ambiente de instalação, tais como o número de núcleos do processador ou o número de encadeamentos de software.
[00142] O exemplo funcional pode paralelizar processos entre macroblocos. Isto significa que nenhuma sequência de processos nos blocos em uma imagem tem efeito em um resultado finalmente transmitido. Desta maneira, a seção de controle de paralelização 150 pode controlar uma sequência dos processos de determinação de necessidade de filtragem no bloco de determinação vertical 110 e no bloco de determinação horizontal 114 e uma sequência dos processos de filtragem no bloco de filtragem horizontal 130 e no bloco de filtragem vertical 140 com base em bloco.
[00143] Mais especificamente, a seção de controle de paralelização 150 pode controlar uma sequência dos processos de filtragem de acordo com a dependência dos processos de filtragem entre macroblocos. De acordo com uma técnica existente, por exemplo, a dependência dos processos entre macroblocos vizinhos ao redor de um contorno de fatia pode atrasar processos em paralelo em cada fatia em uma imagem. Entretanto, a seção de controle de paralelização 150 de acordo com o exemplo funcional pode realizar processos de filtragem nos macroblocos vizinhos ao redor do contorno de fatia antes dos outros macroblocos.
[00144] Por exemplo, a figura 14 ilustra oito macroblocos MB10 até MB13 e MB20 até MB23 ao redor de um contorno de fatia. Macroblocos MB10 até MB13 pertencem à fatia SL1. Macroblocos MB20 até MB23 pertencem à fatia SL2. Em relação a estes macroblocos, os processos de filtragem para contornos horizontais no macrobloco MB20 da fatia SL2 dependem dos processos de filtragem para contornos verticais no macrobloco MB12 da fatia SL1. Similarmente, os processos de filtragem para contornos horizontais no macrobloco MB21 da fatia SL2 dependem dos processos de filtragem para contornos verticais no macrobloco MB13 da fatia SL1.
[00145] De acordo com um exemplo da figura 15, sob estas condições, a seção de controle de paralelização 150 realiza os processos de filtragem nos contornos verticais dos macroblocos MB12 e MB13, dentre os processos de filtragem para a fatia SL1, em preferência a processos nos outros contornos. O resultado é impedir que um grande atraso ocorra nos processos de filtragem nos contornos horizontais dos macroblocos MB20 e MB21, dentre os processos de filtragem para a fatia SL2. Um exemplo da figura 16 realiza inicialmente os processos de filtragem em paralelo nos contornos verticais para todos os macroblocos incluídos na fatia SL1. Também neste caso, nenhum atraso ocorre no processo de filtragem nos contornos horizontais dos macroblocos MB20 e MB21 da fatia SL2. [3-2. Modificações da Condição de Determinação]
[00146] Da forma supradescrita, cada seção de determinação de contorno vertical 112 referencia pixels correspondentes às terceira e sexta linhas em um bloco e determina, para contornos verticais de cada bloco, se filtragem é necessária, similarmente à técnica existente, da forma ilustrada na figura 4. Igualmente, cada seção de determinação de contorno horizontal 116 referencia pixels correspondentes às terceira e sexta colunas em um bloco e determina, para contornos horizontais de cada bloco, se filtragem é necessária. Em um caso como este, a configuração de acordo com o exemplo funcional pode ser facilmente incorporada sem mudar as condições de determinação para o processo de determinação de necessidade de filtragem providas para o aparelho existente.
[00147] Cada seção de determinação de contorno vertical 112 e cada seção de determinação de contorno horizontal 116 podem realizar a determinação usando condições de determinação diferentes da técnica existente. Por exemplo, cada seção de determinação de contorno vertical 112 pode referenciar pixels correspondentes a três ou mais colunas em um bloco. Cada seção de determinação de contorno horizontal 116 pode referenciar pixels correspondentes a três ou mais colunas em um bloco. Além do mais, cada seção de determinação de contorno vertical 112 e cada seção de determinação de contorno horizontal 116 podem usar expressões de condição de determinação diferentes da técnica existente. Em relação às figuras 17 até 19, o seguinte descreve seis exemplos da técnica de determinação de acordo com o exemplo funcional. (5) Primeiro exemplo
[00148] A figura 17 é um diagrama explicativo que ilustra primeiro e segundo exemplos da técnica de determinação. Nos primeiro e segundo exemplos, os processos de determinação de necessidade de filtragem (particularmente, a determinação usando a condição de determinação B para componentes luma) para contornos verticais referenciam pixels de todas as linhas L1 até L8, da primeira até a oitava, em cada bloco. Os processos de determinação de necessidade de filtragem para contornos horizontais também referenciam pixels de todas as colunas, da primeira até a oitava, em cada bloco.
[00149] O primeiro exemplo pode definir condições de determinação para componentes luma como segue.
[00150] Condição de determinação do componente luma (Luma)... O filtro de desbloqueio é aplicado se ambas as condições A e B forem verdadeiras.
[00151] Condição A: (A1) Blocos Ba ou Bb entram no modo de intraprevisão; (A2) Blocos Ba ou Bb têm um coeficiente de transformada ortogonal não zero; ou (A3) MVAx - MVBxl > 4 ou MVAy - MVByl > 4
[00152] Condição B: iD0 = |p20 - 2p10 + p00| + |q20 - 2q10 + q00| + |p27 - 2p17 + p07| + |q27 - 2q17 + q07| iD1 = |p21 - 2p11 + p01| + |q21 - 2q11 + q01| + |p26 - 2p16 + p06| + |q26 - 2q16 + q06| iD2 = |p22 - 2p12 + p02| + |q22 - 2q12 + q02| + |p25 - 2p15 + p05| + |q25 - 2q15 + q05| iD3 = |p23 - 2p13 + p03| + |q23 - 2q13 + q03| + |p24 - 2p14 + p04| + |q24 - 2q14 + q04| iDave = (iD0 + iD1 + iD2 + iD3) >> 2 Sob esta condição, iDave < β.
[00153] A condição de determinação para componentes croma pode ser igual à supradescrita técnica existente. Uma média ponderada pode ser calculada para calcular a média iDave para quatro parâmetros de determinação iD0 até iD3. (6) Segundo exemplo
[00154] O segundo exemplo pode definir a condição de determinação B para componentes luma como segue.
[00155] Condição B: iD0 = |p20 - 2p10 + p00| + |q20 - 2q10 + q00| + |p27 - 2p17 + p07| + |q27 - 2q17 + q07| iD1 = |p21 - 2p11 + p01| + |q21 - 2q11 + q01| + |p26 - 2p16 + p06| + |q26 - 2q16 + q06| iD2 = |p22 - 2p12 + p02| + |q22 - 2q12 + q02| + |p25 - 2p15 + p05| + |q25 - 2q15 + q05| iD3 = |p23 - 2p13 + p03| + |q23 - 2q13 + q03| + |p24 - 2p14 + p04| + |q24 - 2q14 + q04| Sob esta condição, iD0 < β e iD1 < β e iD2 < β e iD3 < β.
[00156] Uma equação para calcular quatro parâmetros de determinação iD0 até iD3 é igual àquela do primeiro exemplo. Uma condição disponível é que nem todos, mas pelo menos três, dois ou um de quatro parâmetros de determinação iD0 até iD3 é menor que o valor limite da determinação de borda β. (7) Terceiro exemplo
[00157] A figura 18 é um diagrama explicativo que ilustra terceiro e quarto exemplos da técnica de determinação. Nos terceiro e quarto exemplos, os processos de determinação de necessidade de filtragem (particularmente, a determinação usando a condição de determinação B para componentes luma) para contornos verticais referenciam pixels de quatro linhas L1, L3, L6 e L8 em cada bloco. Os processos de determinação de necessidade de filtragem para contornos horizontais também referenciam pixels de quatro colunas em cada bloco.
[00158] O terceiro exemplo pode definir condições de determinação para componentes luma como segue.
[00159] Condição de determinação do componente luma (Luma)... O filtro de desbloqueio é aplicado se ambas as condições A e B forem verdadeiras.
[00160] Condição A: (A1) Blocos Ba ou Bb entram no modo de intraprevisão; (A2) Blocos Ba ou Bb têm um coeficiente de transformada ortogonal não zero; ou (A3) |MVAx - MVBx| ( 4 ou |MVAy - MVBy| ( 4
[00161] Condição B: iD0 = |p20 - 2p10 + p00| + |q20 - 2q10 + q00| + |p27 - 2p17 + p07| + |q27 - 2q17 + q07| iD2 = |p22 - 2p12 + p02| + |q22 - 2q12 + q02| + |p25 - 2p15 + p05| + |q25 - 2q15 + q05| iDave = (iD0 + iD2) >> 1 Sob esta condição, iDave < (.
[00162] A condição de determinação para componentes croma pode ser igual à supradescrita técnica existente. Uma média ponderada pode ser calculada para calcular a média iDave para dois parâmetros de determinação iD0 e iD2. (8) Quarto exemplo
[00163] O quarto exemplo pode definir a condição de determinação B para componentes luma como segue.
[00164] Condição B: iD0 = |p20 - 2p10 + p00| + |q20 - 2q10 + q00| + |p27 - 2p17 + p07| + |q27 - 2q17 + q07| iD2 = |p22 - 2p12 + p02| + |q22 - 2q12 + q02| + |p25 - 2p15 + p05| + |q25 - 2q15 + q05| Sob esta condição, iD0 < β e iD2 < β.
[00165] Uma equação para calcular dois parâmetros de determinação iD0 e iD2 é igual àquela do terceiro exemplo. Uma condição disponível é que não ambos, mas qualquer um dos dois parâmetros de determinação iD0 e iD2, seja menor que o valor limite da determinação de borda β.
[00166] Embora tenha sido descrito o exemplo de referência das primeira, terceira, sexta e oitava linhas (ou colunas) L1, L3, L6 e L8 em um bloco durante a determinação, as outras combinações de linhas ou colunas podem ser referenciadas. (9) Quinto exemplo
[00167] A figura 19 é um diagrama explicativo que ilustra quinto e sexto exemplos da técnica de determinação. Nos quinto e sexto exemplos, os processos de determinação de necessidade de filtragem para contornos verticais referenciam pixels de quatro linhas L1, L3, L5 e L7 em cada bloco. Os processos de determinação de necessidade de filtragem para contornos horizontais também referenciam pixels de quatro colunas em cada bloco.
[00168] O quinto exemplo pode definir condições de determinação para componentes luma como segue.
[00169] Condição de determinação do componente luma (Luma)... O filtro de desbloqueio é aplicado se ambas as condições A e B forem verdadeiras.
[00170] Condição A: (A1) Blocos Ba ou Bb entram no modo de intraprevisão; (A2) Blocos Ba ou Bb têm um coeficiente de transformada ortogonal não zero; ou (A3) MVAx - MVBxl > 4 ou MVAy - MVByl > 4
[00171] Condição B: iD0 = |p20 - 2p10 + p00| + |q20 - 2q10 + q00| + |p26 - 2p16 + p06| + |q26 - 2q16 + q06| iD2 = |p22 - 2p12 + p02| + |q22 - 2q12 + q02| + |p24 - 2p14 + p04| + |q24 - 2q14 + q04| iDave = (iD0 + iD2) >> 1 Sob esta condição, iDave < β.
[00172] A condição de determinação para componentes croma pode ser igual à supradescrita técnica existente. Uma média ponderada pode ser calculada para calcular a média iDave para dois parâmetros de determinação iD0 e iD2. (10) Sexto exemplo
[00173] O sexto exemplo pode definir a condição de determinação B para componentes luma como segue.
[00174] Condição B: iD0 = |p20 - 2p10 + p00| + |q20 - 2q10 + q00| + |p26 - 2p16 + p06| + |q26 - 2q16 + q06| iD2 = |p22 - 2p12 + p02| + |q22 - 2q12 + q02| + |p24 - 2p14 + p04| + |q24 - 2q14 + q04| Sob esta condição, iD0 < β e iD2 < β.
[00175] Uma equação para calcular dois parâmetros de determinação iD0 e iD2 é igual àquela do quinto exemplo. Uma condição disponível é que não ambos, mas qualquer um dos dois parâmetros de determinação iD0 e iD2 é menor que o valor limite da determinação de borda β.
[00176] No geral, aumentar o número de linhas e colunas a serem referenciadas para a determinação aumenta a precisão da determinação. Portanto, o primeiro e o segundo exemplos de referência a oito linhas e colunas pode minimizar uma possibilidade de filtragem de um bloco originalmente não visado para que o filtro de desbloqueio seja aplicado e uma possibilidade de não filtragem de um bloco originalmente visado para que o filtro de desbloqueio seja aplicado. O resultado é a melhoria da qualidade de uma imagem a ser codificada e decodificada. Por outro lado, diminuir o número de linhas e colunas a serem referenciadas para a determinação pode reduzir os custos de processamento. Já que há uma proporcionalidade entre a qualidade da imagem e o custo de processamento, pode ser vantajoso selecionar adaptativamente o número de linhas e colunas a serem referenciadas para a determinação dependendo do uso do aparelho ou das restrições na instalação. Pode ser vantajoso selecionar adaptativamente combinações de linhas e colunas a serem referenciadas.
[00177] Da forma descrita nos primeiro, terceiro e quinto exemplos, o valor médio iDave dos parâmetros de determinação pode ser comparado com o valor limite da determinação de borda β para realizar apropriadamente a determinação com base em bloco sem um efeito excessivo de variações de parâmetro para cada linha ou coluna. [3-3. Fluxo do Processo]
[00178] Em relação às figuras 20 e 21, um fluxo do processo para o filtro de desbloqueio 24 será descrito.
[00179] A figura 20 é um fluxograma que ilustra um fluxo do processo para o filtro de desbloqueio 24 de acordo com o primeiro exemplo funcional. Em relação à figura 20, as seções de determinação do contorno vertical 112-1 até 112-n determinam em paralelo, para todos os contornos verticais incluídos em uma pluralidade dos macroblocos em uma imagem de entrada, se filtragem é necessária (etapa S110). As seções de filtragem horizontal 132-1 até 132-n aplicam em paralelo o filtro de desbloqueio em todos os contornos verticais determinados, na etapa S110, que exigem que o filtro de desbloqueio seja aplicado (etapa S120). As seções de determinação do contorno horizontal 116-1 até 116-n determinam em paralelo, para todos os contornos horizontais incluídos em uma pluralidade dos macroblocos em uma imagem de entrada, se filtragem é necessária (etapa S130). As seções de filtragem vertical 142-1 até 142-n aplicam em paralelo o filtro de desbloqueio em todos os contornos horizontais determinados, na etapa S130, que exigem que o filtro de desbloqueio seja aplicado (etapa S140).
[00180] Os supradescritos fluxos de processo são meros exemplos. Por exemplo, o filtro de desbloqueio 24 pode paralelizar processos em dois ou mais macroblocos. A sequência de processos pode mudar.
[00181] A figura 21 é um fluxograma que ilustra um fluxo de processo do processo de determinação de necessidade de filtragem correspondente às etapas S110 e S130 da figura 20. Em relação à figura 21, a seção de avaliação de distorção 124 avalia contornos em relação à distorção com base na informação de modo, na informação do coeficiente de transformada e na informação do vetor de movimento (etapa S150). O processo prossegue para a etapa S154 se a avaliação resultar na presença de distorção (condição de determinação A é verdadeira). O processo prossegue para a etapa S160 se a avaliação resultar na ausência de distorção (etapa S152).
[00182] Na etapa S154, a seção de cálculo 122 calcula um valor da borda com base em uma derivação do pixel de referência constituída pela seção de constituição de derivação 121 (etapa S154). A seção de comparação de limite 123 compara o valor calculado com o valor limite da determinação de borda β (etapa S156). O processo prossegue para a etapa S158 se o valor da borda não for menor que o valor limite β (condição de determinação B é verdadeira). O processo prossegue para a etapa S160 se o valor da borda não for menor que o valor limite β.
[00183] Na etapa S158, a seção de determinação de filtragem 125 determina aplicar o filtro de desbloqueio em um contorno a ser determinado (etapa S158). Na etapa S140, a seção de determinação de filtragem 125 determina não aplicar o filtro de desbloqueio em um contorno a ser determinado (etapa S160).
<4. Segundo Exemplo Funcional> [4-1. Exemplo de Configuração do Filtro de Desbloqueio]
[00184] O seguinte descreve configurações de exemplo do filtro de desbloqueio 24 de acordo com o segundo exemplo funcional. (1) Dependência entre novos processos
[00185] De acordo com o exemplo funcional, o filtro de desbloqueio 24 realiza o processo de determinação de necessidade de filtragem em contornos verticais de cada bloco sem esperar pela aplicação do filtro de desbloqueio nos outros blocos do macrobloco ao qual o bloco pertence. O filtro de desbloqueio 24 realiza o processo de determinação de necessidade de filtragem em contornos horizontais de cada bloco sem esperar pela aplicação do filtro de desbloqueio nos outros blocos do macrobloco ao qual o bloco pertence. Isto pode aliviar a dependência dos processos em um macrobloco.
[00186] Da forma supradescrita, aliviar a dependência dos processos pode paralelizar consequentemente os processos de determinação de necessidade de filtragem nos contornos verticais e nos contornos horizontais em um macrobloco.
[00187] A figura 22 é um diagrama explicativo que ilustra um primeiro exemplo da sequência de processo disponível no filtro de desbloqueio 24. O exemplo também considera que, ao filtro de desbloqueio, é suprida uma imagem com o tamanho de 32 x 32 pixels. A imagem de entrada inclui quatro macroblocos MB0 até MB3, cada qual com o tamanho de 16 x 16 pixels.
[00188] Na figura 22, cada quadro em linha rompida representa um processo a ser realizado em paralelo. Embora o exemplo da figura 10 exija 16 etapas de processo para uma sequência de processos, o exemplo da figura 22 agrega o mesmo número de processos em 12 etapas de processo. A primeira etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JV0,0 até JV0,3 e JH0,0 até JH0,3 em quatro contornos verticais e quatro contornos horizontais no macrobloco MB0. A segunda etapa realiza, em paralelo, os processos de filtragem FV0,0 até FV0,3 em quatro contornos verticais no macrobloco MB0. A terceira etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JV1,0 até JV1,3 e JH1,0 até JH1,3 em quatro contornos verticais e quatro contornos horizontais no macrobloco MB1. A quarta etapa realiza, em paralelo, os processos de filtragem FV1,0 até FV1,3 em quatro contornos verticais no macrobloco MB1. A quinta etapa realiza, em paralelo, os processos de filtragem FH0,0 até FH0,3 em quatro contornos horizontais no macrobloco MB0. A sexta etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JV2,0 até JV2,3 e JH2,0 até JH2,3 em quatro contornos verticais e quatro contornos horizontais no macrobloco MB2. A sétima etapa realiza, em paralelo, os processos de filtragem FV2,0 até FV2,3 em quatro contornos verticais no macrobloco MB2. A oitava etapa realiza, em paralelo, os processos de filtragem FH1,0 até FH1,3 em quatro contornos horizontais no macrobloco MB1. A nona etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JV3,0 até JV3,3 e JH3,0 até JH3,3 em quatro contornos verticais e quatro contornos horizontais no macrobloco MB3. A décima etapa realiza, em paralelo, os processos de filtragem FV3,0 até FV3,3 em quatro contornos verticais no macrobloco MB3. A décima primeira etapa realiza, em paralelo, os processos de filtragem FH2,0 até FH2,3 em quatro contornos horizontais no macrobloco MB2. A décima segunda etapa realiza, em paralelo, os processos de filtragem FH3,0 até FH3,3 em quatro contornos horizontais no macrobloco MB3. Neste caso, o filtro de desbloqueio 24 pode realizar um processo na íntegra da imagem de entrada usando menos etapas de processo que aquelas da técnica existente. (2) Configuração detalhada do filtro de desbloqueio
[00189] A figura 23 é um diagrama de blocos que ilustra uma configuração detalhada do filtro de desbloqueio 24 de acordo com o segundo exemplo funcional para realizar os supradescritos processos em paralelo. Em relação à figura 23, o filtro de desbloqueio 24 inclui um bloco de determinação vertical 210, um bloco de determinação horizontal 214, o bloco de filtragem horizontal 130, o bloco de filtragem vertical 140 e a seção de controle de paralelização 150. (2-1) Bloco de determinação vertical
[00190] O bloco de determinação vertical 210 inclui uma pluralidade de seções de determinação do contorno vertical 212-1 até 212-n. Cada seção de determinação de contorno vertical 212 determina se aplica-se o filtro de desbloqueio nos contornos verticais de cada bloco sem esperar pela aplicação do filtro de desbloqueio nos outros blocos do macrobloco ao qual o bloco pertence. Cada seção de determinação de contorno vertical 212 supre ao bloco de filtragem horizontal 130 informação que indica um resultado da determinação sobre cada contorno vertical, tal como informação binária que indica um resultado da determinação cujo valor “1” força a aplicação do filtro de desbloqueio. (2-2) Bloco de determinação horizontal
[00191] O bloco de determinação horizontal 214 inclui uma pluralidade de seções de determinação do contorno horizontal 216-1 até 216- n. Cada seção de determinação de contorno horizontal 216 determina se aplica-se o filtro de desbloqueio nos contornos horizontais de cada bloco sem esperar pela aplicação do filtro de desbloqueio nos outros blocos do macrobloco ao qual o bloco pertence. Cada seção de determinação de contorno horizontal 216 supre ao bloco de filtragem vertical 140 informação que indica um resultado da determinação sobre cada contorno horizontal.
[00192] Também de acordo com o exemplo funcional, cada seção de determinação de contorno vertical 212 e cada seção de determinação de contorno horizontal 216 pode determinar, para cada contorno, se filtragem é necessária pela referência a pixels nas posições, similarmente à técnica existente. Em vez disto, cada seção de determinação de contorno vertical 212 e cada seção de determinação de contorno horizontal 216 pode determinar, para cada contorno, se filtragem é necessária de acordo com a técnica descrita em “3-2. Modificações da Condição de Determinação”.
[3-2. Fluxo do Processo]
[00193] A figura 24 é um fluxograma que ilustra um fluxo do processo para o filtro de desbloqueio 24 de acordo com o segundo exemplo funcional. Em relação à figura 24, as seções de determinação do contorno vertical 212-1 até 212-n determinam em paralelo, para todos os contornos verticais incluídos em macroblocos focalizados em uma imagem de entrada, se filtragem é necessária (etapa S202). As seções de determinação do contorno horizontal 214-1 até 214-n determinam em paralelo se filtragem é necessária para todos os contornos horizontais incluídos no macrobloco focalizado (etapa S204). As etapas S202 e S204 também são realizadas em paralelo.
[00194] As seções de filtragem horizontal 132-1 até 132-n aplicam o filtro de desbloqueio em paralelo nos contornos verticais no macrobloco focalizado determinado na etapa S202 que exige que o filtro de desbloqueio seja aplicado (etapa S210).
[00195] O processo da etapa S220 visa a um macrobloco focalizado no circuito mais recente. O processo da etapa S220 pode ser ignorado para o primeiro macrobloco focalizado. As seções de filtragem vertical 142-1 até 142-n aplicam o filtro de desbloqueio em paralelo nos contornos horizontais determinados, na etapa S204 no circuito mais recente, que exigem que o filtro de desbloqueio seja aplicado (etapa S220).
[00196] O processo das etapas S202 até S220 é repetido para um macrobloco novamente focalizado se macroblocos focalizados permanecerem não processados na imagem de entrada (etapa S230).
[00197] Se permanecer nenhum macrobloco focalizado não processado, as seções de filtragem vertical 142-1 até 142-n aplicam o filtro de desbloqueio em paralelo nos contornos horizontais determinados que exigem que o filtro de desbloqueio seja aplicado no macrobloco focalizado para o último circuito (etapa S240).
[00198] O fluxo dos processos supradescritos também é um mero exemplo. O paralelismo e a sequência de processos podem mudar. Adicionalmente, a seção de controle de paralelização 150 pode controlar o paralelismo e a sequência de processos.
[4-3. Exemplo de Processo para Cada LCU]
[00199] Da forma já mencionada, a tecnologia de acordo com vários exemplos funcionais descritos nesta especificação pode ser provida como um processo com base em uma unidade de codificação (CU) HEVC. De acordo com HEVC, uma unidade de codificação com o maior tamanho é referida como uma maior unidade de codificação (LCU) que pode ser selecionada como 64 x 64 pixels, por exemplo. O mínimo tamanho de CU selecionável é 8 x 8 pixels. Normalmente, uma imagem é codificada e decodificada correspondente a cada LCU de acordo com uma sequência de varredura por rastreio da LCU no topo à esquerda de uma figura (ou uma fatia). O seguinte descreve exemplos de processo correspondentes a LCUs no filtro de desbloqueio 24.
[00200] A figura 25 é um diagrama explicativo que ilustra uma sequência de processo para cada LCU de acordo com o segundo exemplo funcional supradescrito. O exemplo considera o tamanho da LCU como 16 x 16 pixels e o tamanho da CU como 8 x 8 pixels.
[00201] Em relação à figura 25, o primeiro estágio é mostrado no topo à esquerda do desenho e indica que a filtragem nas LCUs foi concluída até a (n-1)-ésima LCU. Pixels sombreados são visados para filtragem nos contornos verticais. Pixels preenchidos são visados para filtragem nos contornos horizontais.
[00202] Na figura 25, o segundo processo no topo à direita e o terceiro processo na base à esquerda são visados para a n-ésima LCU. Antes do segundo processo, processos de determinação de necessidade de filtragem são realizados em paralelo em todos os contornos verticais e contornos horizontais que pertencem à n-ésima LCU. A saber, o processo de determinação de necessidade de filtragem em contornos que pertence a CUs na n-ésima LCU é realizado sem esperar pela aplicação do filtro de desbloqueio nas outras CUs na n-ésima LCU. O segundo processo realiza os processos de filtragem em paralelo nos contornos verticais que pertencem à n- ésima LCU e são determinados exigindo que o filtro de desbloqueio seja aplicado. O segundo processo realiza os processos de filtragem em paralelo nos contornos horizontais que pertencem à n-ésima LCU e são determinados exigindo que o filtro de desbloqueio seja aplicado.
[00203] Um processo para o quarto estágio na base à direita da figura 25 é visado para a (n+1)-ésima LCU. No quarto estágio, o processo de filtragem é realizado em paralelo em um contorno vertical determinado que exige que o filtro de desbloqueio seja aplicado depois que os processos de determinação de necessidade de filtragem forem realizados em paralelo nos contornos que pertencem a todas as CUs na (n+1)-ésima LCU.
[00204] Embora o exemplo considere o tamanho da LCU como 16 x 16 pixels, ele pode ser definido em 32 x 32 ou 64 x 64 pixels. O efeito de diminuição do tempo de processamento de acordo com a paralelização é adicionalmente melhorado em virtude de o aumento do tamanho de uma LCU a ser selecionada também aumentar o número de contornos verticais e contornos horizontais que pertencem a uma LCU.
[00205] A figura 26 é um fluxograma que ilustra um fluxo do processo do filtro de desbloqueio 24 para cada LCU.
[00206] Em relação à figura 26, as seções de determinação do contorno vertical 212-1 até 212-n determinam em paralelo se filtragem é necessária para todos os contornos verticais incluídos em uma LCU focalizada em uma imagem de entrada (etapa S252). As seções de determinação do contorno horizontal 216-1 até 216-n determinam em paralelo se filtragem é necessária para todos os contornos horizontais incluídos na LCU focalizada (etapa S254). As etapas S252 e S254 também são realizadas em paralelo.
[00207] As seções de filtragem horizontal 132-1 até 132-n aplicam o filtro de desbloqueio em paralelo nos contornos verticais na LCU focalizada determinada na etapa S252 que exige que o filtro de desbloqueio seja aplicado (etapa S260).
[00208] As seções de filtragem vertical 142-1 até 142-n aplicam o filtro de desbloqueio em paralelo nos contornos horizontais na LCU focalizada determinada na etapa S254 que exige que o filtro de desbloqueio seja aplicado (etapa S270).
[00209] O processo das etapas S252 até S270 é repetido para uma LCU novamente focalizada se uma LCU permanecer não processada na imagem de entrada (etapa S280). O processo termina se permanecer nenhuma LCU não processada.
<5. Terceiro Exemplo Funcional> [5-1. Visão Geral]
[00210] Os primeiro e segundo exemplos funcionais mudam a sequência de processos existente para o filtro de desbloqueio para melhorar o paralelismo dos processos. Particularmente, o primeiro exemplo funcional alivia o processo dependência pela extensão do escopo dos valores de pixel para uma imagem de entrada suprida ao filtro de desbloqueio quando a necessidade de filtragem for determinada. O terceiro exemplo funcional a ser descrito aprimora este conceito. O terceiro exemplo funcional paraleliza processos adicionalmente pela filtragem dos valores do pixel de entrada suprido ao filtro de desbloqueio durante um processo de filtragem nos contornos verticais e nos contornos horizontais.
[00211] A figura 27 é um diagrama explicativo que ilustra uma visão geral do exemplo funcional. Na base à esquerda da figura 27, é mostrada uma forma que representa pixels de entrada (também referidos como pixels de reconstrução) antes de serem processados pelo filtro de desbloqueio. O exemplo funcional permite que valores de pixel inseridos no filtro de desbloqueio sejam referenciados a partir de um processo de determinação de necessidade de filtragem para contornos verticais e contornos horizontais, bem como um processo de filtragem para contornos verticais e um processo de filtragem para contornos horizontais. Desta maneira, isto habilita resolver a dependência entre os dois processos de determinação de necessidade de filtragem e a dependência entre os dois processos de filtragem.
[00212] Os processos de filtragem para contornos verticais e os processos de filtragem para contornos horizontais podem atualizar valores de pixels duplicados. Pixels preenchidos na figura 27 ilustram posições dos pixels a serem provavelmente duplicados. O filtro de desbloqueio de acordo com o exemplo funcional calcula um valor do pixel de saída proveniente das duas saídas de filtro em termos de pixels que são duplicadamente atualizados por dois filtros que operam em paralelo.
[5-2. Exemplo de Configuração do Filtro de Desbloqueio]
[00213] A figura 28 é um diagrama de blocos que ilustra uma configuração detalhada do filtro de desbloqueio 24 de acordo com o terceiro exemplo funcional. Em relação à figura 28, o filtro de desbloqueio 24 inclui a memória de linha 308, o bloco de determinação 310, um bloco de filtragem horizontal 330, um bloco de filtragem vertical 340, a seção de controle de paralelização 150 e uma seção de cálculo 360.
[00214] A memória de linha 308 armazena valores de pixel para uma imagem de entrada suprida ao filtro de desbloqueio 24. Processos de filtragem no bloco de filtragem horizontal 330 e no bloco de filtragem vertical 340 não atualizam valores de pixel armazenados na memória de linha 308. Processos de determinação de necessidade de filtragem realizados pelas seções descritas a seguir no bloco de determinação 310 referenciam valores do pixel armazenados na memória de linha 308. O aparelho inclui uma outra memória com propósitos diferentes dos processos do filtro de desbloqueio 24. Esta memória pode ser reusada (compartilhada) como a memória de linha 308.
[00215] O bloco de determinação 310 inclui seções de determinação do contorno vertical 312-1 até 312-n e seções de determinação do contorno horizontal 314-1 até 314-n. Às seções de determinação do contorno vertical 312 e às seções de determinação do contorno horizontal 314 são supridos valores de pixel armazenados na memória de linha 308 para uma imagem inserida no filtro de desbloqueio 24 e informação de determinação usada para determinar a necessidade de filtragem.
[00216] As seções de determinação do contorno vertical 312 usam valores de pixel inseridos no filtro de desbloqueio 24 para determinar se aplica-se o filtro de desbloqueio em cada contorno vertical. As seções de determinação do contorno vertical 312 transmitem, ao bloco de filtragem horizontal 330, informação que indica um resultado da determinação sobre cada contorno vertical.
[00217] As seções de determinação do contorno horizontal 314 também usam valores de pixel inseridos no filtro de desbloqueio 24 para determinar se aplica-se o filtro de desbloqueio em cada contorno horizontal. As seções de determinação do contorno horizontal 314 realizam os processos de determinação em paralelo aos processos de determinação realizados pelas seções de determinação do contorno vertical 312. As seções de determinação do contorno horizontal 314 transmitem, ao bloco de filtragem vertical 340, informação que indica um resultado da determinação sobre cada contorno horizontal.
[00218] Também de acordo com o exemplo funcional, cada seção de determinação de contorno vertical 312 e cada seção de determinação de contorno horizontal 314 pode determinar, para cada contorno, se filtragem é necessária pela referência aos pixels nas posições, similarmente à técnica existente. Em vez disto, cada seção de determinação de contorno vertical 312 e cada seção de determinação de contorno horizontal 314 pode determinar, para cada contorno, se filtragem é necessária de acordo com a técnica descrita em “3-2. Modificações da Condição de Determinação”.
[00219] O bloco de filtragem horizontal 330 inclui seções de filtragem horizontal 332-1 até 332-n. Às seções de filtragem horizontal 332 são supridos um valor da imagem de entrada proveniente da memória de linha 208 e um resultado da determinação em relação a cada contorno vertical proveniente do bloco de determinação 310.
[00220] As seções de filtragem horizontal 332 aplicam o filtro de desbloqueio para contornos verticais nos pixels direito e esquerdo ao redor do correspondente contorno vertical se o resultado da determinação proveniente da seção de determinação de contorno vertical 312 indicar que o filtro precisa ser aplicado. As seções de filtragem horizontal 332 transmitem, à seção de cálculo 360, um valor de pixel depois da filtragem em termos do pixel filtrado ou um valor do pixel de entrada em termos dos outros pixels.
[00221] O bloco de filtragem vertical 340 inclui seções de filtragem vertical 342-1 até 342-n. Às seções de filtragem vertical 342 são supridos um valor do pixel de entrada proveniente da memória de linha 308 e um resultado da determinação em relação a cada contorno horizontal proveniente do bloco de determinação 310.
[00222] As seções de filtragem vertical 342 aplicam o filtro de desbloqueio para contornos horizontais em pixels de topo e base ao redor do correspondente contorno horizontal se o resultado da determinação proveniente da seção de determinação de contorno horizontal 314 indicar que o filtro precisa ser aplicado. Processos de filtragem das seções de filtragem vertical 342-1 até 342-n são realizados em paralelo aos processos de filtragem das seções de filtragem horizontal 332-1 até 332-n. As seções de filtragem vertical 342 transmitem, à seção de cálculo 360, um valor de pixel depois da filtragem em termos do pixel filtrado ou um valor do pixel de entrada em termos dos outros pixels.
[00223] À seção de cálculo 360 são supridos um valor do pixel de saída proveniente do bloco de filtragem horizontal 330 e um valor do pixel de saída proveniente do bloco de filtragem vertical 340 em paralelo. Adicionalmente, à seção de cálculo 360 são supridos resultados da determinação provenientes da seção de determinação de contorno vertical 312 e da seção de determinação de contorno horizontal 314. De acordo com um resultado da determinação, a seção de cálculo 360 calcula valores do pixel de saída para pixels filtrados provenientes do bloco de filtragem horizontal 330 e do bloco de filtragem vertical 340 com base nas saídas do filtro provenientes do bloco de filtragem horizontal 330 e do bloco de filtragem vertical 340.
[00224] De acordo com o exemplo funcional, por exemplo, a seção de cálculo 360 calcula uma média das duas saídas de filtro para pixels duplicadamente filtrados. A seção de cálculo 360 pode calcular uma média simples das duas saídas do filtro. Em vez disto, a seção de cálculo 360 pode calcular uma média ponderada das duas saídas do filtro. Por exemplo, a seção de cálculo 360 pode determinar um peso para médias ponderadas de pixels de acordo com a distância de cada pixel até o contorno vertical e até o contorno horizontal.
[00225] A figura 29 é um diagrama explicativo que ilustra a determinação de um peso para média ponderada calculado pela seção de cálculo 360. A figura 29 mostra pixel focalizado PZ em negro correspondente a uma das posições duplicadas ilustradas na figura 27. Há três pixels correspondentes à distância DV entre o pixel focalizado PZ e o contorno vertical mais próximo VZ. Há dois pixels correspondentes à distância DH entre o pixel focalizado PZ e o contorno horizontal mais próximo HZ. A distância DH é menor que a distância DV. Neste caso, a seção de cálculo 360 pode definir um peso para a saída do filtro de desbloqueio aplicado no contorno horizontal HZ maior que um peso para a saída do filtro de desbloqueio aplicado no contorno vertical VZ. O exemplo da figura 29 considera que uma razão da saída do filtro Vout para o contorno vertical VZ pela saída do filtro Hout para o contorno horizontal HZ é 2:3.
[00226] Da forma vista a partir da figura 29, calcular uma média ponderada das duas saídas de filtro pode prover, consequentemente, a cada pixel focalizado, um valor do pixel de saída, similar ao caso de aplicação de um filtro bidimensional com uma derivação de filtro ao longo da direção horizontal e uma derivação de filtro ao longo da direção vertical. A paralelização de processos de filtragem no contorno vertical e no contorno horizontal também pode reduzir apropriadamente a distorção de bloco que aparece no contorno vertical e no contorno horizontal. Como um outro exemplo funcional, o filtro de desbloqueio 24 pode incluir um filtro bidimensional que calcula simultaneamente a filtragem horizontal, a filtragem vertical e uma média ponderada. Neste caso, entretanto, a instalação é muito complicada em virtude de os coeficientes de filtro precisarem mudar de forma variada correspondentemente aos pixels. Por outro lado, o terceiro exemplo funcional realiza dois filtros unidimensionais em paralelo e, então, calcula uma média ponderada. Isto pode prover facilmente processos substancialmente iguais a um filtro bidimensional, ainda garantindo a funcionalidade dos filtros de desbloqueio existentes.
[00227] A figura 30 é um diagrama explicativo que ilustra um exemplo do peso para médias ponderadas calculado com base no exemplo da figura 29. A figura 30 mostra 36 pixels (6 x 6) ao redor de uma interseção entre o contorno vertical e o contorno horizontal. Os pixels correspondem às supradescritas posições duplicadas. A razão do peso para a saída do filtro Vout pelo peso para a saída do filtro Hout é 1:1 (2:2 ou 3:3) para pixels posicionados em uma distância igual em relação ao contorno vertical e ao contorno horizontal. O peso para a saída do filtro Vout é maior que o peso para a saída do filtro Hout para pixels mais próximos do contorno vertical. Por exemplo, a razão de pesos para o pixel P1 é Vout:Hout = 3:1. O peso para a saída do filtro Vout é menor que o peso para a saída do filtro Hout para pixels mais próximos do contorno horizontal. Por exemplo, a razão de pesos para o pixel P2 é Vout:Hout = 1:3.
[00228] A distorção de bloco pode ser mais efetivamente suprimida e a qualidade da imagem pode melhorar pela variação do peso para médias ponderadas, dependendo da distância entre cada pixel e o contorno.
[00229] Os supradescritos pesos são meros exemplos. Por exemplo, a seção de cálculo 360 pode determinar o peso das médias ponderadas para pixels de acordo com as intensidades da borda do contorno vertical e do contorno horizontal correspondentes a cada pixel, em vez da distância entre cada pixel e o contorno, ou além dela. A intensidade da borda pode ser representada com um parâmetro, tal como um valor da borda calculado a partir da seção de cálculo 122, da forma mostrada na figura 13, por exemplo. Neste caso, o peso para a saída do filtro em um contorno com uma borda mais forte pode ser definido maior que o peso para a saída do filtro em um contorno com uma borda mais fraca. Variar o peso das médias ponderadas de acordo com a intensidade da borda pode melhorar adaptativamente o efeito do filtro de desbloqueio em um contorno que ocasiona notavelmente a distorção de bloco.
[00230] A seção de cálculo 360 seleciona saídas a partir dos blocos realmente filtrados em termos de pixels filtrados por um do bloco de filtragem horizontal 330 e do bloco de filtragem vertical 340. A seção de cálculo 360 transmite diretamente um valor do pixel de entrada a ser transmitido ao filtro de desbloqueio 24 em termos de pixels não filtrados pelo bloco de filtragem horizontal 330 ou pelo bloco de filtragem vertical 340. Uma tabela da figura 31 lista valores do pixel de saída provenientes da seção de cálculo 360 de acordo com os resultados da determinação se exige-se a filtragem.
[5-3. Exemplo da Sequência de Processo]
[00231] O seguinte descreve dois exemplos de sequência de processo disponíveis para o filtro de desbloqueio 24 de acordo com o exemplo funcional. O exemplo também considera que, ao filtro de desbloqueio, é suprida uma imagem com o tamanho de 32 x 32 pixels. A imagem de entrada inclui quatro macroblocos MB0 até MB3, cada qual com o tamanho de 16 x 16 pixels. (1) Primeiro exemplo
[00232] Por comparação, a figura 32 ilustra uma sequência de processo quando permanecer dependência entre um processo de filtragem no contorno vertical e um processo de filtragem no contorno horizontal. Na figura 32, a primeira etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JV0,0 até JV3,3 e JH0,0 até JH3,3 em todos os contornos verticais e todos os contornos horizontais de todos os quatro macroblocos MB0 até MB3. A segunda etapa realiza os processos de filtragem FV0,0 até FV3,3 em 16 contornos verticais dos quatro macroblocos MB0 até MB3. A terceira etapa realiza os processos de filtragem FH0,0 até FH3,3 em 16 contornos horizontais dos quatro macroblocos MB0 até MB3. A quarta etapa armazena valores de pixel depois do processo de filtragem no contorno horizontal na memória usada para transmissão a partir do filtro de desbloqueio 24.
[00233] A figura 33 ilustra um primeiro exemplo da sequência de processo provida pelo exemplo funcional. Na figura 33, a primeira etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JV0,0 até JV3,3 e JH0,0 até JH3,3 em todos os contornos verticais e todos os contornos horizontais dos quatro macroblocos MB0 até MB3. A segunda etapa realiza, em paralelo, os processos de filtragem FV0,0 até FV3,3 e FH0,0 até FH3,3 em todos os contornos verticais e todos os contornos horizontais dos quatro macroblocos MB0 até MB3. Realmente, a segunda etapa filtra somente um contorno determinado que exige a filtragem. A terceira etapa armazena valores de pixel na memória usada para transmissão a partir do filtro de desbloqueio 24. Uma média ponderada das duas saídas de filtro pode ser calculada como um valor do pixel de saída em termos de pixels filtrados pelo bloco de filtragem horizontal 330 e pelo bloco de filtragem vertical 340. (2) Segundo exemplo
[00234] Embora o primeiro exemplo maximize o paralelismo, o filtro de desbloqueio 24 de acordo com o segundo exemplo também pode realizar um processo para cada macrobloco.
[00235] Por comparação, a figura 34 ilustra uma sequência de processo para cada macrobloco quando permanecer dependência entre um processo de filtragem no contorno vertical e um processo de filtragem no contorno horizontal. A sequência de processo da figura 34 iguala substancialmente a sequência de processo da figura 22 de acordo com o primeiro exemplo funcional. A figura 36 mostra explicitamente as quatro etapas de processo (sexta, décima, 14a e 16a) que armazenam valores de pixel na memória para transmissão, e são omitidas da figura 22 por simplicidade. Dezesseis etapas de processo, incluindo as quatro etapas de processo, configuram o processo da figura 34.
[00236] A figura 35 ilustra um segundo exemplo da sequência de processo provida pelo exemplo funcional. Na figura 35, a primeira etapa realiza, em paralelo, os processos de determinação de necessidade de filtragem JV0,0 até JV0,3 e JH0,0 até JH0,3 em quatro contornos verticais e quatro contornos horizontais do macrobloco MB0. A segunda etapa realiza, em paralelo, os processos de filtragem FV0,0 até FV0,3 e FH0,0 até FH0,3 em quatro contornos verticais e quatro contornos horizontais do macrobloco MB0. A terceira etapa armazena valores de pixel do macrobloco MB0 na memória usada para transmissão a partir do filtro de desbloqueio 24. Uma média ponderada das duas saídas de filtro pode ser calculada como um valor do pixel de saída em termos de pixels duplicadamente filtrados por dois filtros. As quarta até sexta etapas processam similarmente o macrobloco MB1. As sétima até nona etapas processam similarmente o macrobloco MB2. As décima até décima segunda etapas processam similarmente o macrobloco MB3. O processo da figura 35 inclui doze etapas de processo menos que aquelas do processo da figura 34.
[00237] O terceiro exemplo funcional elimina a dependência entre os processos de filtragem para contornos verticais e um processo de filtragem para contornos horizontais. O processo do filtro de desbloqueio 24 pode ser realizado usando menos etapas de processo que aquelas usadas para o primeiro e o segundo exemplos funcionais. Uma das vantagens de permitir que um processo de filtragem referencie somente pixels inseridos no filtro de desbloqueio é que nenhuma configuração das derivações de filtro ocasiona nenhuma dependência entre os processos de filtragem para contornos verticais e os processos de filtragem para contornos horizontais. O terceiro exemplo funcional pode aumentar a qualidade da imagem pela configuração de uma derivação de filtro usando mais pixels do que é usado por técnicas existentes. Por exemplo, a técnica existente usa uma derivação de filtro de três pixels para cada lado de cada contorno, da forma descrita em relação à figura 7. O exemplo funcional ocasiona nenhuma dependência entre os processos, mesmo se uma derivação de filtro de cinco pixels ou mais for usada em cada contorno. Nenhuma dependência ocorre entre processos, mesmo pela diminuição adicional do tamanho do bloco como uma unidade de processo para o filtro de desbloqueio.
[00238] Também, no terceiro exemplo funcional, bem como no primeiro e no segundo exemplos funcionais, a seção de controle de paralelização 150 pode controlar o paralelismo e a sequência de processos no filtro de desbloqueio 24.
[5-4. Fluxo do Processo]
[00239] A figura 36 é um fluxograma que ilustra um exemplo de um fluxo do processo para o filtro de desbloqueio de acordo com o terceiro exemplo funcional. A figura 37 é um fluxograma que ilustra um fluxo do processo de cálculo do valor de pixel mostrado na figura 36.
[00240] Em relação à figura 36, as seções de determinação do contorno vertical 312-1 até 312-n determinam em paralelo se filtragem é necessária para todos os contornos verticais em uma imagem de entrada ou em um macrobloco (etapa S302). As seções de determinação do contorno horizontal 314-1 até 314-n determinam em paralelo se filtragem é necessária para todos os contornos horizontais na imagem de entrada ou no macrobloco (etapa S304). As etapas S302 e S304 também são realizadas em paralelo.
[00241] As seções de filtragem horizontal 332-1 até 332-n aplicam o filtro de desbloqueio em paralelo em todos os contornos verticais determinados na etapa S302 para exigir que o filtro de desbloqueio seja aplicado (etapa S306). As seções de filtragem vertical 342-1 até 342-n aplicam o filtro de desbloqueio em paralelo em todos os contornos horizontais determinados na etapa S304 para exigir que o filtro de desbloqueio seja aplicado (etapa S308). As etapas S306 e S308 também são realizadas em paralelo.
[00242] Então, a seção de cálculo 360 realiza o processo de cálculo do valor de pixel, da forma mostrada na figura 37 (etapa S310). Em relação à figura 37, o processo da etapa S314 até a etapa S326 fica em circuito para cada pixel a ser processado (etapa S312).
[00243] Na etapa S314, a seção de cálculo 360 determina se dois filtros para contornos verticais e contornos horizontais filtraram um pixel focalizado (etapa S314). O processo prossegue para a etapa S322 se os dois filtros tiverem filtrado o pixel focalizado. O processo prossegue para a etapa S316 se os dois filtros não tiverem filtrado o pixel focalizado.
[00244] Na etapa S316, a seção de cálculo 360 determina se um dos dois filtros para contornos verticais e contornos horizontais filtrou o pixel focalizado (etapa S316). O processo prossegue para a etapa S320 se um dos dois filtros tiver filtrado o pixel focalizado. O processo prossegue para a etapa S318 se nenhum dos filtros tiver filtrado o pixel focalizado.
[00245] Na etapa S318, a seção de cálculo 360 adquire um valor do pixel de entrada em relação ao filtro de desbloqueio 24 (etapa S318). Na etapa S320, a seção de cálculo 360 adquire uma saída do filtro a partir do filtro que realmente filtra o pixel focalizado (etapa S320).
[00246] Na etapa S322, a seção de cálculo 360 determina valores de peso para calcular uma média ponderada das saídas do filtro provenientes dos dois filtros em relação ao pixel focalizado de acordo com as distâncias do pixel focalizado até o contorno vertical e o contorno horizontal ou com as intensidades da borda do contorno vertical e do contorno horizontal correspondentes ao pixel focalizado (etapa S322). A seção de cálculo 360 calcula uma média ponderada das saídas do filtro provenientes dos dois filtros usando o peso determinado (etapa S324).
[00247] A seção de cálculo 360 armazena o valor de pixel do pixel focalizado na memória enquanto o valor de pixel for adquirido nas etapas S318 ou S320 ou for calculado na etapa S324 (etapa S326). A sequência de processos mostrada nas figuras 36 e 37 termina quando o processo for realizado em todos os pixels a serem processados.
<6. Aplicação em Vários Codecs>
[00248] A tecnologia de acordo com a descrição é aplicável em vários codecs relacionados à codificação e à decodificação de imagem. O seguinte descreve exemplos de aplicação da tecnologia de acordo com a descrição no codec de multivisualizações e no codec escalonável. [6-1. Codec de Multivisualizações]
[00249] O codec de multivisualizações é um esquema de codificação de imagem que codifica e decodifica vídeo com múltiplas perspectivas. A figura 38 é um diagrama explicativo que ilustra o codec de multivisualizações. A figura 38 ilustra sequências de quadros para três visualizações capturadas em três pontos de observação. A cada visualização é provido um ID de visualização (view_id). Uma das visualizações é especificada como uma visualização base. Visualizações diferentes da visualização base são referidas como visualizações não base. O exemplo da figura 38 representa uma visualização base com ID de visualização “0” e duas visualizações não base com ID de visualização “1” ou “2”. Codificação de dados de imagem multivisualizações pode comprimir o tamanho dos dados do fluxo contínuo codificado como um todo pela codificação de quadros da visualização não base com base na informação de codificação sobre quadros da visualização base.
[00250] O filtro de desbloqueio pode ser aplicado em cada visualização durante o processo de codificação e o processo de decodificação de acordo com o codec de multivisualizações supradescrito. A aplicação do filtro de desbloqueio em cada visualização pode paralelizar a filtragem horizontal e a filtragem vertical em unidades de processos que incluem múltiplas CUs para cada visualização de acordo com a tecnologia da descrição. A supradescrita unidade de processo pode representar diversas CUs, LCUs ou figuras. O parâmetro (tal como aquele descrito no parágrafo precedente 0092) para controlar um processo em paralelo pode ser definido para cada visualização. O parâmetro definido para a visualização base pode ser reusado para a visualização não base.
[00251] A filtragem horizontal e a filtragem vertical podem ser paralelizadas em uma pluralidade de visualizações. A pluralidade de visualizações pode compartilhar o parâmetro (tal como aquele descrito no parágrafo precedente 0092) para controlar o processo em paralelo. Pode ser vantajoso especificar adicionalmente um indicador que indica se a pluralidade de visualizações compartilha o parâmetro.
[00252] A figura 39 é um diagrama explicativo que ilustra o processo de codificação de imagem aplicado no codec de multivisualizações supradescrito. A figura 39 mostra uma configuração de um dispositivo de codificação multivisualizações 710 como um exemplo. O dispositivo de codificação multivisualizações 710 inclui uma primeira seção de codificação 720, uma segunda seção de codificação 730 e uma seção de multiplexação 740.
[00253] A primeira seção de codificação 720 codifica uma imagem de visualização base e gera um fluxo contínuo codificado para a visualização base. A segunda seção de codificação 730 codifica uma imagem de visualização não base e gera um fluxo contínuo codificado para a visualização não base. A seção de multiplexação 740 multiplexa um fluxo contínuo codificado para a visualização base gerado a partir da primeira seção de codificação 720 e um ou mais fluxos contínuos codificados para a visualização não base gerados a partir da segunda seção de codificação 730 para gerar um fluxo contínuo multiplexado para multivisualizações.
[00254] A primeira seção de codificação 720 e a segunda seção de codificação 730 ilustradas na figura 39 são configuradas similarmente ao dispositivo de codificação de imagem 10 de acordo com a supradescrita modalidade. Aplicar o filtro de desbloqueio em visualizações habilita paralelizar a filtragem horizontal e a filtragem vertical em unidades de processos que contêm múltiplas CUs. Um parâmetro para controlar estes processos pode ser inserido em uma área de cabeçalho do fluxo contínuo codificado para cada visualização ou em uma área de cabeçalho comum no fluxo contínuo multiplexado.
[00255] A figura 40 é um diagrama explicativo que ilustra um processo de decodificação de imagem aplicado no codec de multivisualizações supradescrito. A figura 40 mostra uma configuração de um dispositivo de decodificação multivisualizações 760 como um exemplo. O dispositivo de decodificação multivisualizações 760 inclui uma seção de demultiplexação 770, uma primeira seção de decodificação 780 e uma segunda seção de decodificação 790.
[00256] A seção de demultiplexação 770 demultiplexa um fluxo contínuo multiplexado para multivisualizações em um fluxo contínuo codificado para a visualização base e um fluxo contínuo codificado para uma ou mais visualizações não base. A primeira seção de decodificação 780 decodifica uma imagem de visualização base a partir de um fluxo contínuo codificado para a visualização base. A segunda seção de decodificação 730 decodifica uma imagem de visualização não base a partir de um fluxo contínuo codificado para a visualização não base.
[00257] A primeira seção de decodificação 780 e a segunda seção de decodificação 790 ilustradas na figura 40 são configuradas similarmente ao dispositivo de decodificação de imagem 60 de acordo com a supradescrita modalidade. Aplicar o filtro de desbloqueio em visualizações habilita paralelizar a filtragem horizontal em unidades de processos que incluem múltiplas CUs e paralelizar a filtragem vertical. Um parâmetro para controlar estes processos pode ser adquirido a partir de uma área de cabeçalho do fluxo contínuo codificado para cada visualização ou a partir de uma área de cabeçalho comum no fluxo contínuo multiplexado.
[6-2. Codec Escalonável]
[00258] O codec escalonável é um esquema de codificação de imagem para prover codificação hierárquica. A figura 41 é um diagrama explicativo que ilustra o codec escalonável. A figura 41 ilustra sequências de quadro para três camadas de diferentes resoluções espaciais, resoluções temporais ou qualidades da imagem. A cada camada é provido um ID de camada (layer_id). Estas camadas incluem uma camada base com a resolução (ou a qualidade da imagem) mais baixa. Camadas diferentes da camada base são referidas como camadas de melhoria. O exemplo da figura 41 representa uma camada base com ID de camada “0” e duas camadas de melhoria com ID de camada “1” ou “2”. A codificação de dados de imagem multicamadas pode comprimir o tamanho dos dados do fluxo contínuo codificado como um todo pela codificação de quadros da camada de melhoria com base na informação de codificação sobre quadros da camada base.
[00259] O filtro de desbloqueio pode ser aplicado em cada camada durante o processo de codificação e o processo de decodificação de acordo com o codec escalonável supradescrito. A aplicação do filtro de desbloqueio em cada camada pode paralelizar a filtragem horizontal e a filtragem vertical em unidades de processos que incluem múltiplas CUs para cada visualização de acordo com a tecnologia da descrição. A supradescrita unidade de processo pode representar diversas CUs, LCUs ou figuras. O parâmetro (tal como aquele descrito no parágrafo precedente 0092) para controlar um processo em paralelo pode ser definido para cada camada. O parâmetro definido para a visualização da camada base pode ser reusado para a camada de melhoria.
[00260] A filtragem horizontal e a filtragem vertical podem ser paralelizadas em uma pluralidade de camadas. A pluralidade de camadas pode compartilhar o parâmetro (tal como aquele descrito no parágrafo precedente 0092) para controlar o processo em paralelo. Pode ser vantajoso especificar adicionalmente um indicador que indica se a pluralidade de camadas compartilha o parâmetro.
[00261] A figura 42 é um diagrama explicativo que ilustra o processo de codificação de imagem aplicado no codec escalonável supradescrito. A figura 42 mostra uma configuração de um dispositivo de codificação escalonável 810 como um exemplo. O dispositivo de codificação escalonável 810 inclui uma primeira seção de codificação 820, uma segunda seção de codificação 830 e uma seção de multiplexação 840.
[00262] A primeira seção de codificação 820 codifica uma imagem da camada base e gera um fluxo contínuo codificado para a camada base. A segunda seção de codificação 830 codifica uma imagem da camada de melhoria e gera um fluxo contínuo codificado para a camada de melhoria. A seção de multiplexação 840 multiplexa um fluxo contínuo codificado para a camada base gerado a partir da primeira seção de codificação 820 e um ou mais fluxos contínuos codificados para a camada de melhoria gerados a partir da segunda seção de codificação 830 para gerar um fluxo contínuo multiplexado para multicamadas.
[00263] A primeira seção de codificação 820 e a segunda seção de codificação 830 ilustradas na figura 42 são configuradas similarmente ao dispositivo de codificação de imagem 10 de acordo com a supradescrita modalidade. Aplicar o filtro de desbloqueio nas camadas habilita paralelizar a filtragem horizontal em unidades de processos que incluem múltiplas CUs e paralelizar a filtragem vertical. Um parâmetro para controlar estes processos pode ser inserido em uma área de cabeçalho do fluxo contínuo codificado para cada camada ou em uma área de cabeçalho comum no fluxo contínuo multiplexado.
[00264] A figura 43 é um diagrama explicativo que ilustra um processo de decodificação de imagem aplicado no codec escalonável supradescrito. A figura 43 mostra uma configuração de um dispositivo de decodificação escalonável 860 como um exemplo. O dispositivo de decodificação escalonável 860 inclui uma seção de demultiplexação 870, uma primeira seção de decodificação 880 e uma segunda seção de decodificação 890.
[00265] A seção de demultiplexação 870 demultiplexa um fluxo contínuo multiplexado para multicamadas em um fluxo contínuo codificado para a camada base e um fluxo contínuo codificado para uma ou mais camadas de melhoria. A primeira seção de decodificação 880 decodifica uma imagem da camada base a partir de um fluxo contínuo codificado para a camada base. A segunda seção de decodificação 830 decodifica uma imagem da camada de melhoria a partir de um fluxo contínuo codificado para a camada de melhoria.
[00266] A primeira seção de decodificação 880 e a segunda seção de decodificação 890 ilustradas na figura 43 são configuradas similarmente ao dispositivo de decodificação de imagem 60 de acordo com a supradescrita modalidade. Aplicar o filtro de desbloqueio nas camadas habilita paralelizar a filtragem horizontal em unidades de processos que incluem múltiplas CUs e paralelizar a filtragem vertical. Um parâmetro para controlar estes processos pode ser adquirido a partir de uma área de cabeçalho do fluxo contínuo codificado para cada camada ou a partir de uma área de cabeçalho comum no fluxo contínuo multiplexado.
<7. Aplicação de Exemplo>
[00267] O dispositivo de codificação de imagem 10 e o dispositivo de decodificação de imagem 60 de acordo com a modalidade supradescrita podem ser aplicados em vários utensílios eletrônicos, tais como um transmissor e um receptor para difusão via satélite, difusão a cabo, tal como TV a cabo, distribuição na Internet, distribuição a terminais por meio de comunicação celular e similares, um dispositivo de gravação que grava imagens em uma mídia, tais como um disco óptico, um disco magnético ou uma memória flash, um dispositivo de reprodução que reproduz imagens a partir de tal mídia de armazenamento e similares. Quatro aplicações de exemplo serão descritas a seguir.
[7-1. Primeira Aplicação de Exemplo]
[00268] A figura 44 é um diagrama de blocos que mostra um exemplo de uma configuração esquemática de uma televisão que adota a modalidade supradescrita. Uma televisão 900 inclui uma antena 901, um sintonizador 902, um demultiplexador 903, um decodificador 904, uma seção de processamento do sinal de vídeo 905, uma seção de exibição 906, uma seção de processamento do sinal de áudio 907, um alto-falante 908, uma interface externa 909, uma seção de controle 910, uma interface de usuário 911 e um barramento 912.
[00269] O sintonizador 902 extrai um sinal de um canal desejado dos sinais de difusão recebidos por meio da antena 901 e demodula o sinal extraído. Então, o sintonizador 902 transmite um fluxo contínuo de bits codificado obtido pela demodulação ao demultiplexador 903. Isto é, o sintonizador 902 serve como dispositivo de transmissão das televisões 900 para receber um fluxo contínuo codificado no qual uma imagem é codificada.
[00270] O demultiplexador 903 separa um fluxo contínuo de vídeo e um fluxo contínuo de áudio de um programa a ser visualizado a partir do fluxo contínuo de bits codificado e transmite cada fluxo contínuo que foi separado ao decodificador 904. Também, o demultiplexador 903 extrai dados auxiliares, tal como um EPG (Guia de Programa Eletrônico), do fluxo contínuo de bits codificado e supre os dados extraídos à seção de controle 910. Adicionalmente, o demultiplexador 903 pode realizar desembaralhamento no caso em que o fluxo contínuo de bits codificado estiver embaralhado.
[00271] O decodificador 904 decodifica o fluxo contínuo de vídeo e o fluxo contínuo de áudio inseridos a partir do demultiplexador 903. Então, o decodificador 904 transmite dados de vídeo gerados pelo processo de decodificação à seção de processamento do sinal de vídeo 905. Também, o decodificador 904 transmite os dados de áudio gerados pelo processo de decodificação à seção de processamento do sinal de áudio 907.
[00272] A seção de processamento do sinal de vídeo 905 reproduz os dados de vídeo inseridos a partir do decodificador 904 e faz com que a seção de exibição 906 exiba o vídeo. A seção de processamento do sinal de vídeo 905 também pode fazer com que a seção de exibição 906 exiba uma tela de aplicação suprida por meio de uma rede. Adicionalmente, a seção de processamento do sinal de vídeo 905 pode realizar um processo adicional, tal como remoção de ruído, por exemplo, nos dados de vídeo de acordo com a definição. Além do mais, a seção de processamento do sinal de vídeo 905 pode gerar uma imagem de uma GUI (Interface de Usuário Gráfica), tais como um menu, um botão, um cursor ou similares, por exemplo, e sobrepor a imagem gerada em uma imagem de saída.
[00273] A seção de exibição 906 é acionada por um sinal de acionamento suprido pela seção de processamento do sinal de vídeo 905 e exibe um vídeo ou uma imagem em uma tela de vídeo de um dispositivo de exibição (por exemplo, uma tela de cristal líquido, uma tela de plasma, um OLED ou similares).
[00274] A seção de processamento do sinal de áudio 907 realiza processos de reprodução, tais como conversão D/A e amplificação, nos dados de áudio inseridos a partir do decodificador 904 e transmite áudio a partir do alto-falante 908. Também, a seção de processamento do sinal de áudio 907 pode realizar um processo adicional, tal como remoção de ruído, nos dados de áudio.
[00275] A interface externa 909 é uma interface para conectar a televisão 900 e um utensílio externo ou uma rede. Por exemplo, um fluxo contínuo de vídeo ou um fluxo contínuo de áudio recebidos por meio da interface externa 909 podem ser decodificados pelo decodificador 904. Isto é, a interface externa 909 também serve como dispositivo de transmissão das televisões 900 para receber um fluxo contínuo codificado no qual uma imagem é codificada.
[00276] A seção de controle 910 inclui um processador, tal como uma CPU (Unidade de Processamento Central), e uma memória, tais como uma RAM (Memória de Acesso Aleatório), uma ROM (Memória Exclusiva de Leitura) ou similares. A memória armazena um programa a ser executado pela CPU, dados de programa, dados de EPG, dados adquiridos por meio de uma rede e similares. O programa armazenado na memória é lido e executado pela CPU no momento da ativação da televisão 900, por exemplo. A CPU controla a operação da televisão 900 de acordo com um sinal de operação inserido a partir da interface de usuário 911, por exemplo, pela execução do programa.
[00277] A interface de usuário 911 é conectada na seção de controle 910. A interface de usuário 911 inclui um botão e uma chave usados por um usuário para operar a televisão 900, e uma seção de recepção para um sinal de controle remoto, por exemplo. A interface de usuário 911 detecta uma operação de um usuário por meio destes elementos estruturais, gera um sinal de operação e transmite o sinal de operação gerado à seção de controle 910.
[00278] O barramento 912 interconecta o sintonizador 902, o demultiplexador 903, o decodificador 904, a seção de processamento do sinal de vídeo 905, a seção de processamento do sinal de áudio 907, a interface externa 909 e a seção de controle 910.
[00279] Na televisão 900 configurada desta maneira, o decodificador 904 tem uma função do dispositivo de decodificação de imagem 60 de acordo com a modalidade supradescrita. Desta maneira, também, no caso da decodificação da imagem na televisão 900, é possível aprimorar o paralelismo dos processos do filtro de desbloqueio e garantir processamento em alta velocidade.
[7-2. Segunda Aplicação de Exemplo]
[00280] A figura 45 é um diagrama de blocos que mostra um exemplo de uma configuração esquemática de um telefone celular que adota a modalidade supradescrita. Um telefone celular 920 inclui uma antena 921, uma seção de comunicação 922, um codec de áudio 923, um alto-falante 924, um microfone 925, uma seção de câmera 926, uma seção de processamento de imagem 927, uma seção de demultiplexação 928, uma seção de gravação/reprodução 929, uma seção de exibição 930, uma seção de controle 931, uma seção de operação 932 e um barramento 933.
[00281] A antena 921 é conectada na seção de comunicação 922. O alto-falante 924 e o microfone 925 são conectados no codec de áudio 923. A seção de operação 932 é conectada na seção de controle 931. O barramento 933 interconecta a seção de comunicação 922, o codec de áudio 923, a seção de câmera 926, a seção de processamento de imagem 927, a seção de demultiplexação 928, a seção de gravação/reprodução 929, a seção de exibição 930 e a seção de controle 931.
[00282] O telefone celular 920 realiza operação, tais como transmissão/recepção de sinal de áudio, transmissão/recepção de correios eletrônicos ou dados de imagem, captura de imagem, gravação de dados e similares, em vários modos de operação, incluindo um modo de comunicação de áudio, um modo de comunicação de dados, um modo de captura de imagem e um modo de videofone.
[00283] No modo de comunicação de áudio, um sinal de áudio analógico gerado pelo microfone 925 é suprido ao codec de áudio 923. O codec de áudio 923 converte o sinal de áudio analógico em dados de áudio, e realiza conversão A/D e comprime os dados de áudio convertidos. Então, o codec de áudio 923 transmite os dados de áudio comprimidos à seção de comunicação 922. A seção de comunicação 922 codifica e modula os dados de áudio, e gera um sinal de transmissão. Então, a seção de comunicação 922 transmite o sinal de transmissão gerado a uma estação base (não mostrada) por meio da antena 921. Também, a seção de comunicação 922 amplifica um sinal sem fios recebido por meio da antena 921, converte a frequência do sinal sem fios e adquire um sinal recebido. Então, a seção de comunicação 922 demodula e decodifica o sinal recebido, gera dados de áudio e transmite os dados de áudio gerados ao codec de áudio 923. O codec de áudio 923 estende e realiza conversão D/A nos dados de áudio, e gera um sinal de áudio analógico. Então, o codec de áudio 923 supre o sinal de áudio gerado ao alto- falante 924 e faz com que o áudio seja transmitido.
[00284] Também, no modo de comunicação de dados, a seção de controle 931 gera dados de texto que constituem um correio eletrônico de acordo com uma operação de um usuário por meio da seção de operação 932, por exemplo. Além do mais, a seção de controle 931 faz com que o texto seja exibido na seção de exibição 930. Além do mais, a seção de controle 931 gera dados de correio eletrônico de acordo com uma instrução de transmissão do usuário por meio da seção de operação 932 e transmite os dados de correio eletrônico gerados à seção de comunicação 922. Então, a seção de comunicação 922 codifica e modula os dados de correio eletrônico, e gera um sinal de transmissão. Então, a seção de comunicação 922 transmite o sinal de transmissão gerado a uma estação base (não mostrada) por meio da antena 921. Também, a seção de comunicação 922 amplifica um sinal sem fios recebido por meio da antena 921, converte a frequência do sinal sem fios e adquire um sinal recebido. Então, a seção de comunicação 922 demodula e decodifica o sinal recebido, restaura os dados de correio eletrônico e transmite os dados de correio eletrônico restaurados à seção de controle 931. A seção de controle 931 faz com que a seção de exibição 930 exiba os conteúdos do correio eletrônico e, também, faz com que os dados de correio eletrônico sejam armazenados na mídia de armazenamento da seção de gravação/reprodução 929.
[00285] A seção de gravação/reprodução 929 inclui uma mídia de armazenamento legível e gravável arbitrária. Por exemplo, a mídia de armazenamento pode ser uma mídia de armazenamento incorporada, tais como uma RAM, uma memória flash ou similares, ou uma mídia de armazenamento externamente montada, tais como um disco rígido, um disco magnético, um disco magneto-óptico, um disco óptico, uma memória USB, um cartão de memória ou similares.
[00286] Além do mais, no modo de captura de imagem, a seção de câmera 926 captura uma imagem de um objeto, gera dados de imagem e transmite os dados de imagem gerados à seção de processamento de imagem 927, por exemplo. A seção de processamento de imagem 927 codifica os dados de imagem inseridos a partir da seção de câmera 926 e faz com que o fluxo contínuo codificado seja armazenado na mídia de armazenamento da seção de gravação/reprodução 929.
[00287] Além do mais, no modo de videofone, a seção de demultiplexação 928 multiplexa um fluxo contínuo de vídeo codificado pela seção de processamento de imagem 927 e um fluxo contínuo de áudio inserido a partir do codec de áudio 923, e transmite o fluxo contínuo multiplexado à seção de comunicação 922, por exemplo. A seção de comunicação 922 codifica e modula o fluxo contínuo, e gera um sinal de transmissão. Então, a seção de comunicação 922 transmite o sinal de transmissão gerado a uma estação base (não mostrada) por meio da antena 921. Também, a seção de comunicação 922 amplifica um sinal sem fios recebido por meio da antena 921, converte a frequência do sinal sem fios e adquire um sinal recebido. Estes sinal de transmissão e sinal recebido podem incluir um fluxo contínuo de bits codificado. Então, a seção de comunicação 922 demodula e decodifica o sinal recebido, restaura o fluxo contínuo e transmite o fluxo contínuo restaurado à seção de demultiplexação 928. A seção de demultiplexação 928 separa um fluxo contínuo de vídeo e um fluxo contínuo de áudio do fluxo contínuo de entrada, e transmite o fluxo contínuo de vídeo à seção de processamento de imagem 927 e o fluxo contínuo de áudio ao codec de áudio 923. A seção de processamento de imagem 927 decodifica o fluxo contínuo de vídeo e gera dados de vídeo. Os dados de vídeo são supridos à seção de exibição 930, e uma série de imagens é exibida pela seção de exibição 930. O codec de áudio 923 estende e realiza conversão D/A no fluxo contínuo de áudio, e gera um sinal de áudio analógico. Então, o codec de áudio 923 supre o sinal de áudio gerado ao alto-falante 924 e faz com que o áudio seja transmitido.
[00288] No telefone celular 920 configurado desta maneira, a seção de processamento de imagem 927 tem uma função do dispositivo de codificação de imagem 10 e do dispositivo de decodificação de imagem 60 de acordo com a modalidade supradescrita. Desta maneira, também, no caso de codificação e de decodificação de uma imagem no telefone celular 920, é possível aprimorar o paralelismo dos processos do filtro de desbloqueio e garantir processamento em alta velocidade.
[7-3. Terceira Aplicação de Exemplo]
[00289] A figura 46 é um diagrama de blocos que mostra um exemplo de uma configuração esquemática de um dispositivo de gravação/reprodução que adota a modalidade supradescrita. Um dispositivo de gravação/reprodução 940 codifica, e grava em uma mídia de gravação, dados de áudio e dados de vídeo de um programa de difusão recebido, por exemplo. O dispositivo de gravação/reprodução 940 também pode codificar, e gravar na mídia de gravação, dados de áudio e dados de vídeo adquiridos a partir de um outro dispositivo, por exemplo. Além do mais, o dispositivo de gravação/reprodução 940 reproduz, usando um monitor ou um alto-falante, dados gravados na mídia de gravação de acordo com uma instrução de um usuário, por exemplo. Neste momento, o dispositivo de gravação/reprodução 940 decodifica os dados de áudio e os dados de vídeo.
[00290] O dispositivo de gravação/reprodução 940 inclui um sintonizador 941, uma interface externa 942, um codificador 943, uma HDD (Unidade de Disco Rígido) 944, uma unidade de disco 945, um seletor 946, um decodificador 947, uma OSD (Exibição Na Tela) 948, uma seção de controle 949 e uma interface de usuário 950.
[00291] O sintonizador 941 extrai um sinal de um canal desejado dos sinais de difusão recebidos por meio de uma antena (não mostrada) e demodula o sinal extraído. Então, o sintonizador 941 transmite um fluxo contínuo de bits codificado obtido pela demodulação ao seletor 946. Isto é, o sintonizador 941 serve como dispositivo de transmissão do dispositivo de gravação/reprodução 940.
[00292] A interface externa 942 é uma interface para conectar o dispositivo de gravação/reprodução 940 e um utensílio externo ou uma rede. Por exemplo, a interface externa 942 pode ser uma interface IEEE 1394, uma interface de rede, uma interface USB, uma interface de memória flash ou similares. Por exemplo, dados de vídeo e dados de áudio recebidos pela interface externa 942 são inseridos no codificador 943. Isto é, a interface externa 942 serve como dispositivo de transmissão do dispositivo de gravação/reprodução 940.
[00293] No caso em que os dados de vídeo e os dados de áudio inseridos a partir da interface externa 942 não forem codificados, o codificador 943 codifica os dados de vídeo e os dados de áudio. Então, o codificador 943 transmite o fluxo contínuo de bits codificado ao seletor 946.
[00294] A HDD 944 grava, em um disco rígido interno, um fluxo contínuo de bits codificado, que compreende dados de conteúdo comprimidos de um vídeo ou um áudio, vários programas e outras partes de dados. Também, a HDD 944 lê estas partes de dados a partir do disco rígido no momento da reprodução de um vídeo ou um áudio.
[00295] A unidade de disco 945 grava ou lê dados em uma mídia de gravação que é montada. Uma mídia de gravação que é montada na unidade de disco 945 pode ser um disco DVD (um DVD-Vídeo, um DVD-RAM, um DVD-R, um DVD-RW, um DVD+, um DVD+RW ou similares), um disco Blu-ray (marca registrada) ou similares, por exemplo.
[00296] O seletor 946 seleciona, no momento da gravação de um vídeo ou um áudio, um fluxo contínuo de bits codificado inserido a partir do sintonizador 941 ou do codificador 943, e transmite o fluxo contínuo de bits codificado selecionado à HDD 944 ou à unidade de disco 945. Também, o seletor 946 transmite, no momento da reprodução de um vídeo ou um áudio, um fluxo contínuo de bits codificado inserido a partir da HDD 944 ou da unidade de disco 945 ao decodificador 947.
[00297] O decodificador 947 decodifica o fluxo contínuo de bits codificado, e gera dados de vídeo e dados de áudio. Então, o decodificador 947 transmite os dados de vídeo gerados à OSD 948. Também, o decodificador 904 transmite os dados de áudio gerados a um alto-falante externo.
[00298] A OSD 948 reproduz os dados de vídeo inseridos a partir do decodificador 947 e exibe um vídeo. Também, a OSD 948 pode sobrepor uma imagem de uma GUI, tais como um menu, um botão, um cursor ou similares, por exemplo, em um vídeo exibido.
[00299] A seção de controle 949 inclui um processador, tal como uma CPU, e uma memória, tais como uma RAM ou uma ROM. A memória armazena um programa a ser executado pela CPU, dados de programa e similares. Um programa armazenado na memória é lido e executado pela CPU no momento da ativação do dispositivo de gravação/reprodução 940, por exemplo. A CPU controla a operação do dispositivo de gravação/reprodução 940 de acordo com um sinal de operação inserido a partir da interface de usuário 950, por exemplo, pela execução do programa.
[00300] A interface de usuário 950 é conectada na seção de controle 949. A interface de usuário 950 inclui um botão e uma chave usados por um usuário para operar o dispositivo de gravação/reprodução 940, e uma seção de recepção para um sinal de controle remoto, por exemplo. A interface de usuário 950 detecta uma operação de um usuário por meio destes elementos estruturais, gera um sinal de operação e transmite o sinal de operação gerado à seção de controle 949.
[00301] No dispositivo de gravação/reprodução 940 configurado desta maneira, o codificador 943 tem uma função do dispositivo de codificação de imagem 10 de acordo com a modalidade supradescrita. Também, o decodificador 947 tem uma função do dispositivo de decodificação de imagem 60 de acordo com a modalidade supradescrita. Desta maneira, também, no caso de codificação e de decodificação de uma imagem no dispositivo de gravação/reprodução 940, é possível aprimorar o paralelismo dos processos do filtro de desbloqueio e garantir processamento em alta velocidade.
[7-4. Quarta Aplicação de Exemplo]
[00302] A figura 47 é um diagrama de blocos que mostra um exemplo de uma configuração esquemática de um dispositivo de captura de imagem que adota a modalidade supradescrita. Um dispositivo de captura de imagem 960 captura uma imagem de um objeto, gera uma imagem, codifica os dados de imagem e grava os dados de imagem em uma mídia de gravação.
[00303] O dispositivo de captura de imagem 960 inclui um bloco óptico 961, uma seção de captura de imagem 962, uma seção de processamento de sinal 963, uma seção de processamento de imagem 964, uma seção de exibição 965, uma interface externa 966, uma memória 967, uma unidade de mídia 968, uma OSD 969, uma seção de controle 970, uma interface de usuário 971 e um barramento 972.
[00304] O bloco óptico 961 é conectado na seção de captura de imagem 962. A seção de captura de imagem 962 é conectada na seção de processamento de sinal 963. A seção de exibição 965 é conectada na seção de processamento de imagem 964. A interface de usuário 971 é conectada na seção de controle 970. O barramento 972 interconecta a seção de processamento de imagem 964, a interface externa 966, a memória 967, a unidade de mídia 968, a OSD 969 e a seção de controle 970.
[00305] O bloco óptico 961 inclui uma lente de foco, um mecanismo de interrupção de abertura e similares. O bloco óptico 961 forma uma imagem óptica de um objeto em uma superfície de captura de imagem da seção de captura de imagem 962. A seção de captura de imagem 962 inclui um sensor de imagem, tais como um CCD, um CMOS ou similares, e converte por conversão fotoelétrica a imagem óptica formada na superfície de captura de imagem em um sinal de imagem, que é um sinal elétrico. Então, a seção de captura de imagem 962 transmite o sinal de imagem à seção de processamento de sinal 963.
[00306] A seção de processamento de sinal 963 realiza vários processos de sinal da câmera, is como correção de compressão, correção de gama, correção de cor e similares, no sinal de imagem inserido a partir da seção de captura de imagem 962. A seção de processamento de sinal 963 transmite os dados de imagem depois do processo de sinal da câmera à seção de processamento de imagem 964.
[00307] A seção de processamento de imagem 964 codifica os dados de imagem inseridos a partir da seção de processamento de sinal 963 e gera dados codificados. Então, a seção de processamento de imagem 964 transmite os dados codificados gerados à interface externa 966 ou à unidade de mídia 968. Também, a seção de processamento de imagem 964 decodifica dados codificados inseridos a partir da interface externa 966 ou da unidade de mídia 968, e gera dados de imagem. Então, a seção de processamento de imagem 964 transmite os dados de imagem gerados à seção de exibição 965. Também, a seção de processamento de imagem 964 pode transmitir os dados de imagem inseridos a partir da seção de processamento de sinal 963 à seção de exibição 965, e fazer com que a imagem seja exibida. Além do mais, a seção de processamento de imagem 964 pode sobrepor dados para exibição adquiridos a partir da OSD 969 em uma imagem a ser transmitida à seção de exibição 965.
[00308] A OSD 969 gera uma imagem de uma GUI, tais como um menu, um botão, um cursor ou similares, por exemplo, e transmite a imagem gerada à seção de processamento de imagem 964.
[00309] A interface externa 966 é configurada como um terminal de entrada/saída USB, por exemplo. A interface externa 966 conecta o dispositivo de captura de imagem 960 e uma impressora no momento da impressão de uma imagem, por exemplo. Também, uma unidade de disco é conectada na interface externa 966 conforme necessário. Uma mídia removível, tais como um disco magnético, um disco óptico ou similares, por exemplo, é montada na unidade de disco, e um programa lido a partir da mídia removível pode ser instalado no dispositivo de captura de imagem 960. Além do mais, a interface externa 966 pode ser configurada como uma interface de rede a ser conectada em uma rede, tais como uma LAN, a Internet ou similares. Isto é, a interface externa 966 serve como dispositivo de transmissão do dispositivo de captura de imagem 960.
[00310] Uma mídia de gravação a ser montada na unidade de mídia 968 pode ser uma mídia removível legível e gravável arbitrária, tais como um disco magnético, um disco magneto-óptico, um disco óptico, uma memória semicondutora ou similares, por exemplo. Também, uma mídia de gravação pode ser fixamente montada na unidade de mídia 968, configurando uma seção de armazenamento não transportável, tais como uma unidade de disco rígido incorporada ou uma SSD (Unidade em Estado Sólido), por exemplo.
[00311] A seção de controle 970 inclui um processador, tal como uma CPU, e uma memória, tais como uma RAM ou uma ROM. A memória armazena um programa a ser executado pela CPU, dados de programa e similares. Um programa armazenado na memória é lido e executado pela CPU no momento da ativação do dispositivo de captura de imagem 960, por exemplo. A CPU controla a operação do dispositivo de captura de imagem 960 de acordo com um sinal de operação inserido a partir da interface de usuário 971, por exemplo, pela execução do programa.
[00312] A interface de usuário 971 é conectada na seção de controle 970. A interface de usuário 971 inclui um botão, uma chave e similares usados por um usuário para operar o dispositivo de captura de imagem 960, por exemplo. A interface de usuário 971 detecta uma operação de um usuário por meio destes elementos estruturais, gera um sinal de operação e transmite o sinal de operação gerado à seção de controle 970.
[00313] No dispositivo de captura de imagem 960 configurado desta maneira, a seção de processamento de imagem 964 tem uma função do dispositivo de codificação de imagem 10 e do dispositivo de decodificação de imagem 60 de acordo com a modalidade supradescrita. Desta maneira, no caso de codificação e de decodificação de uma imagem no dispositivo de captura de imagem 960, é possível aprimorar o paralelismo dos processos do filtro de desbloqueio e garantir processamento em alta velocidade.
<8. Sumário Final>
[00314] Em relação às figuras 1 até 47, foram descritos três exemplos funcionais do filtro de desbloqueio para o dispositivo de codificação de imagem 10 e o dispositivo de decodificação de imagem 60 de acordo com uma modalidade. Os três exemplos funcionais aliviam a dependência dos processos do filtro de desbloqueio inerente à técnica existente. Isto pode melhorar o paralelismo dos processos quando o filtro de desbloqueio for aplicado. Em decorrência disto, é possível evitar atraso ou degradação da taxa de dados devidos a uma grande quantidade de processamento do filtro de desbloqueio e garantir processamento em alta velocidade. O paralelismo e as sequências de processos do filtro de desbloqueio podem ser definidos de forma flexível de acordo com várias condições, tais como tamanho da imagem ou ambiente de instalação.
[00315] De acordo com o primeiro exemplo funcional, valores de pixel de uma imagem de entrada suprida ao filtro de desbloqueio são referidos através de uma pluralidade dos macroblocos na imagem durante a determinação para um de um contorno vertical e de um contorno horizontal se filtragem for necessária. O resultado é aliviar a dependência dos processos entre macroblocos ou unidades de codificação. Portanto, é possível paralelizar processos de determinação de necessidade de filtragem através da pluralidade dos macroblocos ou de todos os macroblocos em uma imagem se o paralelismo for maximizado.
[00316] De acordo com o segundo exemplo funcional, determinações, para contornos verticais e contornos horizontais de cada bloco, se filtragem é necessária são feitas sem esperar a aplicação dos filtros de desbloqueio nos outros blocos do macrobloco ao qual o bloco pertence. Isto alivia a dependência dos processos entre um contorno vertical e um contorno horizontal em um macrobloco ou uma unidade de codificação. Desta maneira, é possível paralelizar processos de determinação de necessidade de filtragem nos contornos verticais e nos contornos horizontais em um macrobloco.
[00317] De acordo com o terceiro exemplo funcional, processos de filtragem para contornos verticais e contornos horizontais filtram pixels inseridos no filtro de desbloqueio. Esta configuração pode paralelizar processos de filtragem para contornos verticais e contornos horizontais um em relação ao outro. Isto pode acelerar adicionalmente os processos do filtro de desbloqueio. Um valor do pixel de saída é calculado com base em duas saídas de filtro em termos de um pixel atualizado por dois processos de filtragem realizados em paralelo. A paralelização de dois processos de filtragem também pode reduzir apropriadamente a distorção de bloco que aparece no contorno vertical e no contorno horizontal. Um valor do pixel de saída pode ser calculado como uma média ponderada das duas saídas do filtro. Isto pode permitir que o filtro de desbloqueio elimine mais efetivamente a distorção de bloco e, adicionalmente, melhore a qualidade da imagem.
[00318] A especificação descreveu, principalmente, exemplos em que processos de filtragem para contornos verticais precedem processos de filtragem para contornos horizontais. Além do mais, os supradescritos efeitos da tecnologia de acordo com a descrição são igualmente disponíveis a um caso em que processos de filtragem para contornos horizontais precedem processos de filtragem para contornos verticais. A unidade de processamento do filtro de desbloqueio ou do macrobloco pode ser dimensionada de forma diferente daquela descrita na especificação. Uma técnica disponível pode omitir os processos de determinação de necessidade de filtragem e paralelizar a aplicação do filtro de desbloqueio em contornos verticais e em contornos horizontais.
[00319] Uma técnica de transmissão da informação usada para a paralelização do processo do filtro de desbloqueio do lado da codificação ao lado da decodificação não é limitada à técnica de multiplexação da informação no cabeçalho do fluxo contínuo codificado. Por exemplo, a informação pode não ser multiplexada em um fluxo contínuo de bits codificado, mas pode ser transmitida ou gravada como dados separados associados com o fluxo contínuo de bits codificado. O termo “associação” significa garantir a possibilidade de ligar uma imagem (ou parte de uma imagem, tais como uma fatia ou um bloco) contida no fluxo contínuo de bits com informação correspondente à imagem. A saber, a informação pode ser transmitida em um caminho de transmissão diferente daquele usado para imagens (ou fluxos contínuos de bits). A informação pode ser gravada em uma mídia de gravação (ou uma área de gravação diferente na mesma mídia de gravação) diferente daquela usada para imagens (ou fluxos contínuos de bits). A informação e a imagem (ou o fluxo contínuo de bits) podem ser associadas uma com a outra com base em quaisquer unidades, tais como múltiplos quadros, um quadro ou parte de um quadro.
[00320] As modalidades preferidas da presente invenção foram supradescritas em relação aos desenhos anexos, embora, certamente, a presente invenção não seja limitada aos exemplos expostos. Versados na técnica podem descobrir várias alterações e modificações no escopo das reivindicações anexas, e entende-se que elas cairão naturalmente no escopo técnico da presente invenção.
[00321] A especificação representa processos de filtragem para contornos verticais como “filtragem horizontal” e processos de filtragem para contornos horizontais como “filtragem vertical”. No geral, processos de filtragem para contornos verticais usam derivações de filtro horizontalmente posicionadas. Processos de filtragem para contornos horizontais usam derivações de filtro verticalmente posicionadas. Por este motivo, a supradescrita nomenclatura é usada para os processos de filtragem. Lista dos Sinais de Referência
[00322] 10, 60 dispositivo de processamento de imagem 112, 212 primeira seção de determinação (seção de determinação de contorno vertical) 116, 216 segunda seção de determinação (seção de determinação de contorno horizontal) 132 primeira seção de filtragem (seção de filtragem horizontal) 142 segunda seção de filtragem (seção de filtragem vertical) 150 seção de controle de paralelização

Claims (12)

1. Dispositivo de processamento de imagem, caracterizado pelo fato de que compreende: uma seção de filtragem horizontal (130) configurada para realizar filtragem horizontal aplicando um filtro horizontal para pixels vizinhos através de uma pluralidade de contornos de bloco verticais dentro de uma imagem localmente decodificada para ser localmente decodificada durante o período de codificação para gerar uma primeira imagem filtrada; uma seção de filtragem vertical (140) configurada para realizar filtragem vertical aplicando um filtro vertical para pixels vizinhos através de uma pluralidade de contornos de bloco horizontais dentro da primeira imagem filtrada gerada pela seção de filtragem horizontal para gerar uma segunda imagem filtrada; uma seção de controle (150) configurada para fazer com que a seção de filtragem horizontal filtre em paralelo pixels vizinhos através de uma pluralidade de contornos de bloco verticais de uma pluralidade de blocos de 8x8 pixels e, então, fazer com que a seção de filtragem vertical filtre em paralelo pixels vizinhos através de uma pluralidade de contornos de bloco horizontais da pluralidade de blocos; e uma seção de codificação (14, 15, 16) configurada para codificar uma imagem usando a segunda imagem filtrada; em que a seção de controle faz com que a seção de filtragem horizontal filtre através de cada contorno de bloco vertical sem depender de resultados de filtragem para outros contornos de bloco verticais; e em que a seção de controle faz com que a seção de filtragem vertical filtre através de cada contorno de bloco horizontal sem depender de resultados de filtragem para outros contornos de bloco horizontais.
2. Dispositivo de processamento de imagem de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho do bloco não representa uma dependência entre aplicações do filtro horizontal.
3. Dispositivo de processamento de imagem de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho de bloco não representa uma dependência entre aplicações do filtro vertical.
4. Dispositivo de processamento de imagem de acordo com a reivindicação 1, caracterizado pelo fato de que: uma Unidade de Codificação é formada dividindo uma Maior Unidade de Codificação em menores unidades de codificação como particionamento de bloco, e em que a seção de codificação codifica a imagem na base de Unidade de Codificação.
5. Dispositivo de processamento de imagem de acordo com a reivindicação 4, caracterizado pelo fato de que compreende adicionalmente: uma seção de determinação (110, 114) configurada para determinar em paralelo se aplica-se a filtragem horizontal a blocos vizinhos que circunvizinham cada um de uma pluralidade de contornos de bloco verticais por uma unidade de processamento em paralelo da pluralidade de contornos de bloco verticais entre uma pluralidade de blocos, em que a seção de controle faz com que a seção de filtragem horizontal realize filtragem de acordo com um resultado de determinação da seção de determinação.
6. Dispositivo de processamento de imagem de acordo com a reivindicação 5, caracterizado pelo fato de que: a seção de determinação determina em paralelo se aplica-se o filtro vertical a blocos vizinhos que circunvizinham cada um da pluralidade de contornos de bloco horizontais por uma unidade de processamento em paralelo da pluralidade de contornos de bloco horizontais entre uma pluralidade de blocos, e em que a seção de controle faz com que a seção de filtragem vertical realize filtragem de acordo com um resultado de determinação da seção de determinação.
7. Método de processamento de imagem, caracterizado pelo fato de que compreende: realizar filtragem horizontal aplicando um filtro horizontal para pixels vizinhos através de uma pluralidade de contornos de bloco verticais dentro de uma imagem localmente decodificada para ser localmente decodificada durante o período de codificação para gerar uma primeira imagem filtrada; realizar filtragem vertical aplicando um filtro vertical para pixels vizinhos através de uma pluralidade de contornos de bloco horizontais dentro da primeira imagem filtrada gerada pela seção de filtragem horizontal para gerar uma segunda imagem filtrada; fazer com que a seção filtragem horizontal filtre em paralelo pixels vizinhos através de uma pluralidade de contornos de bloco verticais de uma pluralidade de bloco de 8x8 pixels e, então, fazer com que a filtragem vertical filtre em paralelo pixels vizinhos através de uma pluralidade de contornos de bloco horizontais da pluralidade de blocos; e codificar uma imagem usando a segunda imagem filtrada, em que a filtragem horizontal filtra através de cada contorno de bloco vertical sem depender de resultados de filtragem para outros contornos de bloco verticais; e em que a filtragem vertical filtra através de cada contorno de bloco horizontal sem depender de resultados de filtragem para outros contornos de bloco horizontal.
8. Método de processamento de imagem de acordo com a reivindicação 7, caracterizado pelo fato de que o tamanho do bloco não representa uma dependência entre aplicações do filtro horizontal.
9. Método de processamento de imagem de acordo com a reivindicação 7, caracterizado pelo fato de que o tamanho do bloco não representa uma dependência entre desempenhos do filtro vertical.
10. Método de processamento de imagem de acordo com a reivindicação 7, caracterizado pelo fato de que: a Unidade de Codificação é formada dividindo uma Maior Unidade de Codificação em menores unidades de codificação como particionamento de bloco, e em que a seção de codificação codifica a imagem na base de Unidade de Codificação.
11. Método de processamento de imagem de acordo com a reivindicação 10, caracterizado pelo fato de que compreende adicionalmente: realizar uma determinação em paralelo se aplica-se o filtro horizontal a blocos vizinhos que circunvizinham cada um de uma pluralidade de contornos de bloco verticais por uma unidade de processamento em paralelo da pluralidade de contornos de bloco verticais entre uma pluralidade de blocos, em que a seção de filtragem horizontal realiza filtração de acordo com um resultado de determinação da determinação.
12. Método de processamento de imagem de acordo com a reivindicação 11, caracterizado pelo fato de que: a determinação determina em paralelo se aplica-se o filtro vertical a blocos vizinhos que circunvizinham cada um de uma pluralidade de contornos de bloco horizontais por uma unidade de processamento em paralelo da pluralidade de contornos de bloco horizontais entre uma pluralidade de blocos, e em que a filtragem vertical realiza filtração de acordo com um resultado de determinação da determinação.
BR122020013143-8A 2010-12-07 2011-12-02 Dispositivo e método de processamento de imagem BR122020013143B1 (pt)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
JP2010272907 2010-12-07
JP2010-272907 2010-12-07
JP2011-004392 2011-01-12
JP2011004392 2011-01-12
JP2011045651 2011-03-02
JP2011-045651 2011-03-02
JP2011-117558 2011-05-26
JP2011117558 2011-05-26
BR112013013516-6A BR112013013516B1 (pt) 2010-12-07 2011-12-02 Dispositivo e método de processamento de imagem
PCT/JP2011/077954 WO2012077608A1 (ja) 2010-12-07 2011-12-02 画像処理装置及び画像処理方法

Publications (1)

Publication Number Publication Date
BR122020013143B1 true BR122020013143B1 (pt) 2022-02-22

Family

ID=46207096

Family Applications (4)

Application Number Title Priority Date Filing Date
BR122020013150-0A BR122020013150B1 (pt) 2010-12-07 2011-12-02 Dispositivo e método de processamento de imagem
BR122020013143-8A BR122020013143B1 (pt) 2010-12-07 2011-12-02 Dispositivo e método de processamento de imagem
BR122020013166-7A BR122020013166B1 (pt) 2010-12-07 2011-12-02 Dispositivo e método de processamento de imagem
BR112013013516-6A BR112013013516B1 (pt) 2010-12-07 2011-12-02 Dispositivo e método de processamento de imagem

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR122020013150-0A BR122020013150B1 (pt) 2010-12-07 2011-12-02 Dispositivo e método de processamento de imagem

Family Applications After (2)

Application Number Title Priority Date Filing Date
BR122020013166-7A BR122020013166B1 (pt) 2010-12-07 2011-12-02 Dispositivo e método de processamento de imagem
BR112013013516-6A BR112013013516B1 (pt) 2010-12-07 2011-12-02 Dispositivo e método de processamento de imagem

Country Status (17)

Country Link
US (7) US9912967B2 (pt)
EP (6) EP2651129B1 (pt)
JP (4) JP6011342B2 (pt)
KR (6) KR102216571B1 (pt)
CN (6) CN106791878B (pt)
AU (1) AU2011339461B2 (pt)
BR (4) BR122020013150B1 (pt)
CA (1) CA2815817C (pt)
CO (1) CO6720978A2 (pt)
ES (1) ES2753587T3 (pt)
MX (2) MX2013006130A (pt)
MY (1) MY174587A (pt)
PH (2) PH12018501811A1 (pt)
RU (3) RU2702219C2 (pt)
TW (4) TWI578761B (pt)
WO (1) WO2012077608A1 (pt)
ZA (2) ZA201303963B (pt)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295609B2 (en) 2001-11-30 2007-11-13 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
JP5359657B2 (ja) * 2009-07-31 2013-12-04 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
JP5914962B2 (ja) 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
WO2011127941A1 (de) * 2010-04-14 2011-10-20 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren zum deblocking-filtern
TWI600318B (zh) 2010-05-18 2017-09-21 Sony Corp Image processing apparatus and image processing method
HUE047906T2 (hu) 2010-06-04 2020-05-28 Sony Corp QP és delta QP kódolása egy minimális méretnél nagyobb képblokkoknál
WO2012077607A1 (ja) 2010-12-07 2012-06-14 ソニー株式会社 画像処理装置及び画像処理方法
MX2013006130A (es) * 2010-12-07 2013-06-28 Sony Corp Dispositivo de procesamiento de imagenes y metodo de procesamiento de imagenes.
JP5741076B2 (ja) 2010-12-09 2015-07-01 ソニー株式会社 画像処理装置及び画像処理方法
JP5884313B2 (ja) 2011-01-18 2016-03-15 ソニー株式会社 画像処理装置、画像処理方法、プログラム及び記録媒体
MX2013008980A (es) 2011-02-10 2013-11-01 Sony Corp Dispositivo de procesamiento de imagenes y metodo de procesamiento de imagenes.
CN106534872B (zh) 2011-03-11 2019-05-17 索尼公司 图像处理装置和方法
TWI530161B (zh) 2011-06-07 2016-04-11 Sony Corp Image processing apparatus and method
KR102067368B1 (ko) 2011-06-28 2020-01-16 소니 주식회사 화상 처리 장치 및 화상 처리 방법
JP5907367B2 (ja) 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
PL3306921T3 (pl) * 2011-09-09 2021-05-04 Sun Patent Trust Wykorzystanie decyzji o niskim stopniu złożoności do filtrowania deblokującego
TWI581623B (zh) * 2012-04-06 2017-05-01 Sony Corp Image processing apparatus and method, program, and recording medium
KR102070484B1 (ko) * 2013-10-25 2020-01-29 미디어텍 인크. 슬라이스 높이로 균등하게 분할할 수 없는 화상 높이 및/또는 화소 그룹 폭으로 균등하게 분할할 수 없는 슬라이스 폭을 갖는 화상을 처리하는 방법 및 장치
US10038919B2 (en) 2014-05-29 2018-07-31 Apple Inc. In loop chroma deblocking filter
CN105451025B (zh) * 2014-07-31 2019-03-01 富士通株式会社 图像处理方法以及装置
US11477484B2 (en) 2015-06-22 2022-10-18 Qualcomm Incorporated Video intra prediction using hybrid recursive filters
JP7173961B2 (ja) 2016-08-21 2022-11-16 エルジー エレクトロニクス インコーポレイティド 映像符号化/復号化方法及びそのための装置
TWI833248B (zh) * 2017-04-06 2024-02-21 美商松下電器(美國)知識產權公司 解碼方法及編碼方法
CN110290384A (zh) * 2018-03-19 2019-09-27 华为技术有限公司 图像滤波方法、装置及视频编解码器
JP7155568B2 (ja) 2018-03-26 2022-10-19 東洋製罐グループホールディングス株式会社 金属加工物
CA3118410A1 (en) 2018-11-02 2020-05-07 Sony Corporation Image processing device and image processing method
WO2020175146A1 (ja) * 2019-02-27 2020-09-03 ソニー株式会社 画像処理装置及び画像処理方法
WO2020180166A1 (ko) 2019-03-07 2020-09-10 디지털인사이트주식회사 영상 부호화/복호화 방법 및 장치
CN109905709B (zh) * 2019-03-21 2021-05-07 南京威翔科技有限公司 一种基于流水线重组方式的去方块滤波方法
CN110213579A (zh) * 2019-06-11 2019-09-06 上海富瀚微电子股份有限公司 双核心计算单元实现环路滤波的方法
BR112022001077A2 (pt) * 2019-07-19 2022-03-15 Lg Electronics Inc Método e dispositivo de codificação/decodificação de imagem usando filtragem e método para transmitir fluxo de bits
CN111314579B (zh) * 2020-02-21 2021-10-15 苏州浪潮智能科技有限公司 一种图像垂直滤波处理的方法及芯片
KR20210125657A (ko) 2020-04-08 2021-10-19 삼성디스플레이 주식회사 표시장치
KR20210130891A (ko) 2020-04-22 2021-11-02 삼성디스플레이 주식회사 표시 장치

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63105586A (ja) 1986-10-23 1988-05-10 Matsushita Electric Ind Co Ltd テレビジヨン信号処理方法
JPH0832030B2 (ja) * 1986-10-21 1996-03-27 ソニー株式会社 ブロツク符号化された画像信号の復号装置
US6658379B1 (en) * 1997-02-10 2003-12-02 Sony Corporation Wavelet processing with leading and trailing edge extrapolation
US6125201A (en) 1997-06-25 2000-09-26 Andrew Michael Zador Method, apparatus and system for compressing data
KR100269125B1 (ko) * 1997-10-25 2000-10-16 윤덕용 양자화효과감소를위한영상데이터후처리방법및장치
MXPA01001705A (es) 1998-08-19 2004-09-06 Urecoats Technologies Inc Composiciones de reticula elastomerica inetrpenetrante de poliuretano bituminoso.
JP4254017B2 (ja) * 2000-03-10 2009-04-15 ソニー株式会社 画像符号化装置及び方法
US7295609B2 (en) 2001-11-30 2007-11-13 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
US6992455B2 (en) * 2002-02-15 2006-01-31 Sony Corporation Leg device for leg type movable robot, and method of controlling leg type movable robot
JP4114494B2 (ja) 2002-03-07 2008-07-09 セイコーエプソン株式会社 画像処理装置及び画像処理プログラム、並びに画像処理方法
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
JP3743384B2 (ja) * 2002-04-19 2006-02-08 ソニー株式会社 画像符号化装置及び方法、並びに画像復号装置及び方法
US8116379B2 (en) * 2004-10-08 2012-02-14 Stmicroelectronics, Inc. Method and apparatus for parallel processing of in-loop deblocking filter for H.264 video compression standard
JP4270125B2 (ja) * 2004-12-16 2009-05-27 ソニー株式会社 データ処理装置、画像処理装置、それらの方法およびプログラム
KR100843196B1 (ko) 2004-12-17 2008-07-02 삼성전자주식회사 H.264/avc 비디오 디코더의 디블록킹 필터
KR100679035B1 (ko) * 2005-01-04 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
US7792385B2 (en) 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
JP2006270851A (ja) 2005-03-25 2006-10-05 Victor Co Of Japan Ltd 画像符号化装置及び画像復号装置
TWI264951B (en) * 2005-05-19 2006-10-21 Cheertek Inc Deblock filter method for applying on video encoding/decoding and the apparatus thereof
JP4825524B2 (ja) * 2006-01-31 2011-11-30 株式会社東芝 動画像復号装置および動画像復号方法
CN101076124B (zh) * 2006-05-18 2010-09-08 北京大学深圳研究生院 去块滤波器
US8542744B2 (en) * 2006-05-19 2013-09-24 Altera Corporation Methods and apparatus for providing a scalable deblocking filtering assist function within an array processor
JP4712642B2 (ja) * 2006-08-17 2011-06-29 富士通セミコンダクター株式会社 デブロッキングフィルタ、画像符号化装置および画像復号化装置
US9014280B2 (en) * 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
US8111760B2 (en) * 2006-11-16 2012-02-07 Texas Instruments Incorporated Deblocking filters
US20080123750A1 (en) 2006-11-29 2008-05-29 Michael Bronstein Parallel deblocking filter for H.264 video codec
US20080159407A1 (en) * 2006-12-28 2008-07-03 Yang Nick Y Mechanism for a parallel processing in-loop deblock filter
US8204129B2 (en) 2007-03-27 2012-06-19 Freescale Semiconductor, Inc. Simplified deblock filtering for reduced memory access and computational complexity
CN101472177B (zh) * 2007-12-27 2013-03-06 宝利微电子系统控股公司 一种块效应检测方法
GB0807804D0 (en) * 2008-04-29 2008-06-04 Imagination Tech Ltd Interlaced video edge filtering
US20090304086A1 (en) 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
JP2010014513A (ja) 2008-07-03 2010-01-21 Fuji Electric Holdings Co Ltd はんだフラックス中の金属成分分析方法
JPWO2010035403A1 (ja) 2008-09-25 2012-02-16 パナソニック株式会社 フィルタ装置およびフィルタ方法
US8861586B2 (en) * 2008-10-14 2014-10-14 Nvidia Corporation Adaptive deblocking in a decoding pipeline
JP2010136245A (ja) * 2008-12-08 2010-06-17 Toshiba Corp 動画像処理装置及び方法
JP2010141513A (ja) * 2008-12-10 2010-06-24 Toshiba Corp 演算装置及び動画像符号化装置
US8611435B2 (en) * 2008-12-22 2013-12-17 Qualcomm, Incorporated Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding
JP5087016B2 (ja) * 2009-01-19 2012-11-28 キヤノン株式会社 符号化装置及びその制御方法、コンピュータプログラム
JP5344238B2 (ja) 2009-07-31 2013-11-20 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
JP5359657B2 (ja) 2009-07-31 2013-12-04 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
US20110123121A1 (en) * 2009-10-13 2011-05-26 Sony Corporation Method and system for reducing blocking artefacts in compressed images and video signals
JP5914962B2 (ja) 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
WO2011129090A1 (ja) * 2010-04-13 2011-10-20 パナソニック株式会社 符号化歪み除去方法、符号化方法、復号化方法、符号化歪み除去装置、符号化装置、および復号化装置
EP2560387A4 (en) * 2010-04-13 2014-07-02 Samsung Electronics Co Ltd VIDEO CODING METHOD AND VIDEO CODING DEVICE, AND VIDEO ENCODING METHOD AND VIDEO ENCODING DEVICE FOR CARRYING OUT AN ABSORPTION FILTRATION BASED ON TREE STRUCTURE CODING UNITS
TWI600318B (zh) 2010-05-18 2017-09-21 Sony Corp Image processing apparatus and image processing method
WO2011152425A1 (ja) * 2010-06-03 2011-12-08 シャープ株式会社 フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造
HUE047906T2 (hu) 2010-06-04 2020-05-28 Sony Corp QP és delta QP kódolása egy minimális méretnél nagyobb képblokkoknál
WO2012077607A1 (ja) 2010-12-07 2012-06-14 ソニー株式会社 画像処理装置及び画像処理方法
MX2013006130A (es) 2010-12-07 2013-06-28 Sony Corp Dispositivo de procesamiento de imagenes y metodo de procesamiento de imagenes.
JP5741076B2 (ja) 2010-12-09 2015-07-01 ソニー株式会社 画像処理装置及び画像処理方法
MA34911B1 (fr) * 2011-01-14 2014-02-01 Telefonaktieblaget L M Ericsson Filtrage de déblocage
MX2013008980A (es) 2011-02-10 2013-11-01 Sony Corp Dispositivo de procesamiento de imagenes y metodo de procesamiento de imagenes.
CN106534872B (zh) 2011-03-11 2019-05-17 索尼公司 图像处理装置和方法
TWI530161B (zh) 2011-06-07 2016-04-11 Sony Corp Image processing apparatus and method
JP5907367B2 (ja) 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
TWI694715B (zh) 2012-06-29 2020-05-21 愛爾蘭商維洛思媒介國際公司 資訊處理設備及資訊處理方法

Also Published As

Publication number Publication date
KR20130129380A (ko) 2013-11-28
US20170111663A1 (en) 2017-04-20
ES2753587T3 (es) 2020-04-13
CN103229505B (zh) 2017-04-12
KR101962591B1 (ko) 2019-03-26
US20180234703A1 (en) 2018-08-16
EP4425923A2 (en) 2024-09-04
US20200374565A1 (en) 2020-11-26
TW201230809A (en) 2012-07-16
CA2815817C (en) 2019-01-15
PH12018501811A1 (en) 2019-02-18
KR102007626B1 (ko) 2019-08-05
US9088786B2 (en) 2015-07-21
AU2011339461B2 (en) 2015-09-24
CO6720978A2 (es) 2013-07-31
CN103229505A (zh) 2013-07-31
BR112013013516B1 (pt) 2021-09-28
JP6471786B2 (ja) 2019-02-20
RU2578665C2 (ru) 2016-03-27
CN103716632A (zh) 2014-04-09
TW201528781A (zh) 2015-07-16
JPWO2012077608A1 (ja) 2014-05-19
EP3582497A1 (en) 2019-12-18
KR101958611B1 (ko) 2019-03-14
CN106791877A (zh) 2017-05-31
KR101868651B1 (ko) 2018-06-18
MX336566B (es) 2016-01-25
US10785504B2 (en) 2020-09-22
CA2815817A1 (en) 2012-06-14
US10003827B2 (en) 2018-06-19
RU2013125500A (ru) 2014-12-10
CN106791877B (zh) 2020-02-28
EP3582496A1 (en) 2019-12-18
ZA201703025B (en) 2018-08-29
US20130301743A1 (en) 2013-11-14
JP2018014742A (ja) 2018-01-25
RU2016105596A3 (pt) 2019-04-30
CN106791878A (zh) 2017-05-31
US20130251050A1 (en) 2013-09-26
KR20180069917A (ko) 2018-06-25
US11381846B2 (en) 2022-07-05
KR20180069080A (ko) 2018-06-22
MX2013006130A (es) 2013-06-28
JP2019083545A (ja) 2019-05-30
EP2651129A4 (en) 2015-03-04
TWI578762B (zh) 2017-04-11
CN103716632B (zh) 2017-04-19
US20190261021A1 (en) 2019-08-22
RU2702219C2 (ru) 2019-10-07
KR20190091576A (ko) 2019-08-06
EP4425924A2 (en) 2024-09-04
KR20200053645A (ko) 2020-05-18
PH12015501384A1 (en) 2015-09-28
RU2016105596A (ru) 2018-11-22
RU2019125559A (ru) 2021-02-15
EP3582496B1 (en) 2021-10-27
ZA201303963B (en) 2018-11-28
JP6819702B2 (ja) 2021-01-27
BR112013013516A2 (pt) 2016-10-11
JP6011342B2 (ja) 2016-10-19
PH12015501384B1 (en) 2015-09-28
CN106658026A (zh) 2017-05-10
EP2651129B1 (en) 2019-10-16
US10334279B2 (en) 2019-06-25
CN106713934A (zh) 2017-05-24
KR20190031604A (ko) 2019-03-26
EP3582498A1 (en) 2019-12-18
TWI578761B (zh) 2017-04-11
WO2012077608A1 (ja) 2012-06-14
EP2651129A1 (en) 2013-10-16
BR122020013150B1 (pt) 2021-09-28
TW201528782A (zh) 2015-07-16
BR122020013166B1 (pt) 2021-10-05
CN106658026B (zh) 2019-06-18
US9912967B2 (en) 2018-03-06
US9998766B2 (en) 2018-06-12
CN106713934B (zh) 2019-04-16
TW201528783A (zh) 2015-07-16
TWI514892B (zh) 2015-12-21
KR102117800B1 (ko) 2020-06-01
JP6213626B2 (ja) 2017-10-18
KR102216571B1 (ko) 2021-02-17
MY174587A (en) 2020-04-28
TWI565300B (zh) 2017-01-01
CN106791878B (zh) 2019-05-14
JP2016208532A (ja) 2016-12-08
AU2011339461A1 (en) 2013-06-20
US20170111662A1 (en) 2017-04-20

Similar Documents

Publication Publication Date Title
JP6819702B2 (ja) テレビジョン装置、携帯電話機、再生装置、カメラ及び方法
BR112013013509B1 (pt) Dispositivo de processamento de imagem, e, método de processamento de imagem
AU2017202277B2 (en) Image processing device and image processing method

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 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 02/12/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 10A ANUIDADE

B24D Patent annual fee: restoration after fee payment