BR122021004637B1 - Aparelho para interpolar uma imagem para inter-predição - Google Patents
Aparelho para interpolar uma imagem para inter-predição Download PDFInfo
- Publication number
- BR122021004637B1 BR122021004637B1 BR122021004637-9A BR122021004637A BR122021004637B1 BR 122021004637 B1 BR122021004637 B1 BR 122021004637B1 BR 122021004637 A BR122021004637 A BR 122021004637A BR 122021004637 B1 BR122021004637 B1 BR 122021004637B1
- Authority
- BR
- Brazil
- Prior art keywords
- interpolation
- filter
- pixel
- unit
- image
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
- G06F17/175—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
são providos um método e um equipamento para interpolar uma imagem. o método inclui: selecionar um primeiro filtro dentre uma pluralidade de filtros diferentes, para interpolação entre valores de pixel de unidades de pixel de número inteiro, de acordo com um local de interpolação; e gerar ao menos um valor de pixel de ao menos uma unidade de pixel fracionária mediante interpolação entre os valores de pixel das unidades de pixel de número inteiro mediante uso do primeiro filtro selecionado.
Description
[0001] Equipamentos e métodos consistentes com asmodalidades exemplares se referem à interpolação de uma imagem, e mais especificamente, à interpolação entre valores de pixel de unidades de pixel de número inteiro.
[0002] Em um método de codificação e decodificação de imagemda técnica relacionada, uma imagem é dividida em uma pluralidade de macroblocos de modo a codificar uma imagem. Então, cada um dos vários macroblocos é codificado por predição mediante realização de predição inter ou de predição intra nos mesmos.
[0003] Predição inter é um método de compactar uma imagemmediante remoção de redundância temporal entre imagens. Um exemplo representativo de predição inter é a codificação de estimação de movimento. Na codificação de estimação de movimento, cada bloco de uma imagem atual é predito mediante uso de pelo menos uma imagem de referência. Um bloco de referência que é o mais semelhante a um bloco atual é pesquisado em uma faixa de pesquisa predeterminada mediante uso de uma função de avaliação predeterminada.
[0004] O bloco atual é predito com base no bloco dereferência, um bloco residual é obtido mediante subtração de um bloco predito, o qual é o resultado da predição, a partir do bloco atual, e então o bloco residual é codificado. Nesse caso, para predizer com exatidão o bloco atual, os subpixels que são menores do que as unidades de pixel de número inteiro são gerados mediante realização de interpolação em uma faixa de busca da imagem de referência, e predição inter é realizada com base nos subpixels.
[0005] Aspectos de uma ou mais modalidades exemplaresproporcionam um método e equipamento para gerar valores de pixel de unidades de pixel fracionárias mediante interpolação de valores de pixel de unidades de pixel de número inteiro.
[0006] Aspectos de uma ou mais modalidades exemplares tambémproporcionam um meio de gravação legível por computador tendo gravado no mesmo um programa de computador para executar o método.
[0007] De acordo com o presente pedido, uma unidade de pixelfracionária pode ser gerada mais exatamente.
[0008] As características acima e outras se tornarão maisevidentes mediante descrição em detalhes de modalidades exemplares, com referência aos desenhos anexos, nos quais:A Figura 1 é um diagrama de blocos de um equipamento para codificar uma imagem, de acordo com uma modalidade exemplar;A Figura 2 é um diagrama de blocos de um equipamento para decodificar uma imagem, de acordo com uma modalidade exemplar;A Figura 3 ilustra unidades de codificação hierárquicas de acordo com uma modalidade exemplar;A Figura 4 é um diagrama de blocos de um codificador de imagem baseado em uma unidade de codificação, de acordo com uma modalidade exemplar;A Figura 5 é um diagrama de blocos de um decodificador de imagem baseado em uma unidade de codificação, de acordo com uma modalidade exemplar;A Figura 6 ilustra uma unidade de codificação máxima, uma subunidade de codificação, e uma unidade de predição, de acordo com uma modalidade exemplar;A Figura 7 ilustra uma unidade de codificação e uma unidade de transformada, de acordo com uma modalidade exemplar;As Figuras 8A a 8D ilustram formatos de divisão de uma unidade de codificação, de uma unidade de predição, e de uma unidade de transformação, de acordo com uma modalidade exemplar;A Figura 9 é um diagrama de blocos de um equipamento de interpolação de imagem de acordo com uma modalidade exemplar;A Figura 10 é um diagrama ilustrando um método de interpolação bidimensional (2D) realizado pelo equipamento de interpolação de imagem da Figura 9, de acordo com uma modalidade exemplar;A Figura 11 é um diagrama ilustrando uma região de interpolação de acordo com uma modalidade exemplar;A Figura 12 é um diagrama ilustrando um método de interpolação unidimensional (1D) de acordo com uma modalidade exemplar;A Figura 13 é um diagrama ilustrando especificamente um método de interpolação 1D realizado pelo equipamento de interpolação de imagem da Figura 9, de acordo com uma modalidade exemplar;A Figura 14 é um diagrama de blocos de um equipamento de interpolação de imagem de acordo com uma m modalidade exemplar;A Figura 15 ilustra filtros de interpolação 2D de acordo com uma modalidade exemplar;As Figuras 16A a 16F ilustram filtros de interpolação1D de acordo com as modalidades exemplares;As Figuras 17A a 17Y ilustram filtros de interpolação1D otimizados de acordo com as modalidades exemplares;As Figuras 18A e 18B ilustram métodos de interpolar valores de pixel em várias direções mediante uso de um filtro de interpolação 1D, de acordo com as modalidades exemplares;A Figura 19A ilustra um método de interpolação 2D de acordo com uma modalidade exemplar;A Figura 19B ilustra um método de interpolação 2D utilizando um filtro de interpolação 1D, de acordo com outra modalidade exemplar;A Figura 19C ilustra um método de interpolação 2D utilizando um filtro de interpolação 1D, de acordo com outra modalidade exemplar;A Figura 20 é um fluxograma ilustrando um método deinterpolação de imagem de acordo com uma modalidade exemplar;A Figura 21 é um fluxograma ilustrando um método deinterpolação de imagem de acordo com outra modalidade exemplar;A Figura 22 é um fluxograma ilustrando um método de interpolação de imagem de acordo com outra modalidade exemplar; eAs Figuras 23A a 23E ilustram métodos de realizar escalonamento e arredondamento em relação ao filtro de interpolação 1D, de acordo com modalidades exemplares.
[0009] De acordo com um aspecto de uma modalidade exemplar,é provido um método de interpolar uma imagem, o método incluindo: selecionar um primeiro filtro, entre umapluralidade de filtros diferentes, para interpolação entre valores de pixel de unidades de pixel de número inteiro, de acordo com um local de interpolação; e gerar pelo menos um valor de pixel de pelo menos uma unidade de pixel fracionária mediante interpolação entre os valores de pixel das unidades de pixel de número inteiro mediante uso do primeiro filtro selecionado para interpolação entre os valores de pixel das unidades de pixel de número inteiro.
[00010] método pode incluir ainda a seleção de um segundo filtro, dentre uma pluralidade de filtros diferentes, para interpolação entre pelo menos um valor de pixel da pelo menos uma unidade de pixel fracionária, de acordo com um local de interpolação; e interpolação entre o pelo menos um valor de pixel gerado da pelo menos uma unidade de pixel fracionária mediante uso do segundo filtro selecionado para interpolação entre o pelo menos um valor de pixel gerado da pelo menos uma unidade de pixel fracionária.
[00011] primeiro filtro para interpolação entre os valores de pixel das unidades de pixel de número inteiro pode ser um filtro de domínio espacial para transformar os valores de pixel das unidades de pixel de número inteiro mediante uso de uma pluralidade de funções básicas tendo diferentes frequências, e transformação inversa de uma pluralidade de coeficientes, os quais são obtidos pela transformação dos valores de pixel das unidades de pixel de número inteiro, mediante uso da pluralidade de funções básicas, cujas fases são mudadas.
[00012] O segundo filtro para interpolação entre o pelo menosum valor de pixel gerado da pelo menos uma unidade de pixelfracionária pode ser um filtro de domínio espacial para transformar o pelo menos um valor de pixel gerado da pelo menos uma unidade de pixel fracionária mediante uso de uma pluralidade de funções básicas tendo diferentes frequências, e transformação inversa de uma pluralidade de coeficientes, os quais são obtidos por intermédio da transformação do pelo menos um valor de pixel gerado da pelo menos uma unidade de pixel fracionária, mediante uso da pluralidade de funções básicas, cujas fases são mudadas.
[00013] De acordo com um aspecto de outra modalidade exemplar, é provido um equipamento para interpolar uma imagem, o equipamento incluindo: um seletor de filtro que seleciona um primeiro filtro, dentre uma pluralidade de filtros diferentes, para interpolação entre valores de pixel de unidades de pixel de número inteiro, de acordo com um local de interpolação; e um interpolador que gera pelo menos um valor de pixel da pelo menos uma unidade de pixel fracionária mediante interpolação entre os valores de pixel das unidades de pixel de número inteiro mediante uso do primeiro filtro selecionado para interpolação entre os valores de pixel das unidades de pixel de número inteiro.
[00014] O seletor de filtro pode selecionar um segundo filtro, dentre uma pluralidade de filtros diferentes, para interpolação entre o pelo menos um valor de pixel da pelo menos uma unidade de pixel fracionária, de acordo com um local de interpolação, e o interpolador pode interpolar entre o pelo menos um valor de pixel gerado da pelo menos uma unidade de pixel fracionária mediante uso do segundo filtro selecionado para interpolação entre o pelo menos um valor de pixel gerado da pelo menos uma unidade de pixel fracionária.
[00015] De acordo com um aspecto de outra modalidade exemplar, é provido um meio de gravação legível por computador tendo incorporado no mesmo um programa de computador para executar o método descrito acima.
[00016] De acordo com um aspecto de outra modalidade exemplar, é provido um método de interpolar uma imagem, o método incluindo: transformar valores de pixel em um domínio espacial mediante uso de uma pluralidade de funções básicas tendo frequências diferentes; mudar as fases das várias funções básicas; e transformação inversa de uma pluralidade de coeficientes, obtida por intermédio da transformação dos valores de pixel, mediante uso da pluralidade de funções básicas de fase mudada.
[00017] Em seguida, uma ou mais modalidades exemplares serão descritas mais completamente com referência aos desenhos anexos. Expressões tais como "ao menos um de", quando precedendo uma lista de elementos, modificam a lista inteira de elementos e não modificam os elementos individuais da lista. No presente relatório descritivo, uma "imagem" pode denotar uma imagem estática para um vídeo ou uma imagem em movimento, isto é, o próprio vídeo.
[00018] A Figura 1 é um diagrama de blocos de um equipamento 100 para codificar uma imagem, de acordo com uma modalidade exemplar. Com referência à Figura 1, o equipamento 100 para codificar uma imagem inclui um divisor de unidade de codificação máxima 110, um determinador de profundidade de codificação 120, um codificador de dados de imagem 130, e um codificador de informação de codificação 140.
[00019] O divisor de unidade de codificação máxima 110 pode dividir um quadro ou fatia atual com base em uma unidade de codificação máxima que é uma unidade de codificação do maior tamanho. Isto é, o divisor de unidade de codificação máxima 110 pode dividir o quadro ou fatia atual em pelo menos uma unidade de codificação máxima.
[00020] De acordo com uma modalidade exemplar, uma unidade de codificação pode ser representada utilizando-se uma unidade de codificação máxima e uma profundidade. Conforme descrito acima, a unidade de codificação máxima indica uma unidade de codificação que tem o maior tamanho dentre as unidades de codificação do quadro atual, e a profundidade indica um grau de diminuição hierárquica da unidade de codificação. À medida que uma profundidade aumenta, a unidade de codificação pode diminuir a partir de uma unidade de codificação máxima para uma unidade de codificação mínima, em que uma profundidade da unidade de codificação máxima é definida como uma profundidade mínima; e uma profundidade da unidade de codificação mínima é definida como uma profundidade máxima. Como o tamanho de uma unidade de codificação diminui a partir de uma unidade de codificação máxima à medida que aumenta a profundidade, uma subunidade de codificação de uma profundidade de ordem k pode incluir uma pluralidade de unidades de codificação de uma profundidade de ordem (k+n) (k e n são números inteiros iguais ou maiores do que 1).
[00021] De acordo com um aumento do tamanho de um quadro a ser codificado, a codificação de uma imagem em uma unidade de codificação maior pode causar uma relação de compactação de imagem superior. Contudo, se uma unidade de codificação maior for fixada, uma imagem pode não ser eficientemente codificada por refletir características de imagem que mudam continuamente.
[00022] Por exemplo, quando uma área suave tal como o mar ou o céu é codificada, quanto maior for a unidade de codificação, mais pode aumentar uma relação de compactação. Contudo, quando uma área complexa tal como pessoas ou edifícios é codificada, quanto menor for uma unidade de codificação, mais pode aumentar uma relação de compactação.
[00023] Consequentemente, em uma modalidade exemplar, uma unidade de codificação de imagem máxima diferente e uma profundidade máxima diferente são estabelecidas para cada quadro ou fatia. Como uma profundidade máxima denota o número máximo de vezes através do qual uma unidade de codificação pode diminuir, o tamanho de cada unidade de codificação máxima incluída em uma unidade de codificação de imagem máxima pode ser estabelecida de forma variável de acordo com uma profundidade máxima. A profundidade máxima pode ser determinada de forma diferente para cada quadro ou fatia ou para cada unidade de codificação máxima.
[00024] O determinador de profundidade de codificação 120 determina um formato de divisão da unidade de codificação máxima. O formato de divisão pode ser determinado com base no cálculo de custos de distorção de taxa (RD). O formato de divisão determinado da unidade de codificação máxima é provido ao codificador de informação de codificação 140, e os dados de imagem de acordo com as unidades de codificação máxima são providos ao codificador de dados de imagem 130.
[00025] Uma unidade de codificação máxima pode ser dividida em subunidades de codificação tendo diferentes tamanhos de acordo com diferentes profundidades, e as subunidades de codificação tendo tamanhos diferentes, as quais são incluídas na unidade de codificação máxima, podem ser preditas ou transformadas em frequência com base nas unidades de processamento tendo diferentes tamanhos. Em outras palavras, oequipamento 100 pode realizar uma pluralidade de operações de processamento para codificação de imagem com base nas unidadesde processamento tendo diversos tamanhos e diversos formatos. Para codificar os dados de imagem, operações de processamento tal como predição, transformada, e codificação de entropia são realizadas, em que as unidades de processamento tendo o mesmo tamanho ou tamanhos diferentes podem ser usadas para as operações de processamento, respectivamente.
[00026] Por exemplo, o equipamento 100 pode selecionar uma unidade de processamento que é diferente de uma unidade de codificação para predizer a unidade de codificação.
[00027] Quando o tamanho de uma unidade de codificação é 2Nx2N (onde N é um número inteiro positivo), as unidades de processamento para predição podem ser 2Nx2N, 2NxN, Nx2N, e NxN. Em outras palavras, a predição de movimento pode ser realizada com base em uma unidade de processamento tendo um formato pelo que ao menos uma de altura e largura de uma unidade de codificação é igualmente dividida por dois. Em seguida, uma unidade de processamento que é a base de predição, é definida como uma ‘unidade de predição’.
[00028] Um modo de predição pode ser ao menos um de um modo intra, um modo inter, e um modo de salto, e um modo de predição específico pode ser realizado apenas para uma unidade de predição tendo um tamanho específico ou um formato específico. Por exemplo, o modo intra pode ser realizado apenas para as unidades de predição tendo os tamanhos de 2Nx2N e NxN que tem o formato de um quadrado. Adicionalmente, o modo de salto pode ser realizado apenas para uma unidade de predição tendo o tamanho de 2Nx2N. Se uma existirem várias unidades de predição em uma unidade de codificação, o modo de predição com menos erros de codificação podem ser selecionados após a realização da predição para cada unidade de predição.
[00029] Alternativamente, o equipamento 100 pode realizar uma transformada de frequência nos dados de imagem, com base em uma unidade de processamento que tem um tamanho diferente, a partir de uma unidade de codificação. Para a transformada de frequência na unidade de codificação, a transformada de frequência pode ser realizada com base em uma unidade de processamento tendo um tamanho igual ou menor do que aquele da unidade de codificação. Em seguida, uma unidade de processamento, a qual é a base da transformada de frequência, é definida como uma ‘unidade de transformada’. A transformada de frequência pode ser transformada discreta de cosseno (DCT) ou transformada de Karhunen Loeve (KLT) ou qualquer outra transformada espacial de ponto fixo.
[00030] O determinador de profundidade de codificação 120 pode determinar as subunidades de codificação incluídas em uma unidade de codificação máxima utilizando otimização RD com base em um multiplicador Lagrangiano. Em outras palavras, o determinador de profundidade de codificação 120 pode determinar qual formato tem as várias subunidades de codificação divididas a partir da unidade de codificação máxima, em que as várias subunidades de codificação têm tamanhos diferentes de acordo com as profundidades das subunidades de codificação. O codificador de dados de imagem 130 produz um fluxo de bits mediante codificação da unidade de codificação máxima com base nos formatos de divisão determinados pelo determinador de profundidade de codificação 120.
[00031] O codificador de informação de codificação 140 codifica a informação sobre um modo de codificação da unidade de codificação máxima determinada pelo determinador de profundidade de codificação 120. Em outras palavras, o codificador de informação de codificação 140 produz um fluxo de bits mediante codificação de informação sobre um formato de divisão da unidade de codificação máxima, informação sobre a profundidade máxima, e informação sobre um modo de codificação de uma subunidade de codificação para cada profundidade. A informação sobre o modo de codificação da subunidade de codificação pode incluir informação sobre uma unidade de predição da subunidade de codificação, informação sobre um modo de predição para cada unidade de predição, e informação sobre uma unidade de transformada da subunidade de codificação.
[00032] A informação sobre o formato de divisão da unidade de codificação máxima pode ser uma informação, por exemplo, de indicador, indicando se cada unidade de codificação é dividida. Por exemplo, quando a unidade de codificação máxima é dividida e codificada, informação indicando se a unidade de codificação máxima é dividida é codificada. Além disso, quando uma subunidade de codificação dividida a partir da unidade de codificação máxima é dividida e codificada, informação indicando se a subunidade de codificação é dividida é codificada.
[00033] Como as subunidades de codificação tendo diferentes tamanhos existem para cada unidade de codificação máxima e informação sobre um modo de codificação é determinada para cada subunidade de codificação, informação sobre ao menos um modo de codificação pode ser determinada para uma unidade de codificação máxima.
[00034] O equipamento 100 para codificar uma imagem pode gerar subunidades de codificação mediante divisão igual da altura e largura de uma unidade de codificação máxima por dois de acordo com um aumento de profundidade. Isto é, quando o tamanho de uma unidade de codificação de uma profundidade de ordem k é 2Nx2N, o tamanho de uma unidade de codificação de uma profundidade de ordem (k+1) é NxN.
[00035] Consequentemente, o equipamento 100 para codificar uma imagem pode determinar um formato de divisão ótima para cada unidade de codificação máxima com base nos tamanhos das unidades de codificação máxima e uma profundidade máxima em consideração das características de imagem. Mediante ajuste de forma variável do tamanho de uma unidade de codificação máximaconsiderando as características de imagem e codificando uma imagem através de divisão de uma unidade de codificação máximaem subunidades de codificação de diferentes profundidades, imagens tendo resoluções diversas podem ser codificadas eficientemente.
[00036] A Figura 2 é um diagrama de blocos de um equipamento200 para decodificar uma imagem de acordo com uma modalidadeexemplar. Com referência à Figura 2, o equipamento 200 para decodificar uma imagem inclui uma unidade de aquisição de dados de imagem 210, um extrator de informação de codificação 220, e um decodificador de dados de imagem 230.
[00037] A unidade de aquisição de dados de imagem 210 adquire dados de imagem de acordo com as unidades de codificação máxima mediante a análise de um fluxo de bits recebido pelo equipamento 200 e produz os dados de imagem para o decodificador de dados de imagem 230. A unidade de aquisição de dados de imagem 210 pode extrair informação sobre uma unidade de codificação máxima de um quadro ou fatia atual a partir de um cabeçalho do quadro ou fatia atual. Em outras palavras, a unidade de aquisição de imagem 210 divide o fluxo de bits na unidade de codificação máxima de modo que o decodificador de dados de imagem 230 pode decodificar os dados de imagem de acordo com as unidades de codificação máxima.
[00038] O extrator de informação de codificação 220 extrai informação sobre uma unidade de codificação máxima, uma profundidade máxima, um formato de divisão da unidade de codificação máxima, um modo de codificação de subunidades de codificação a partir do cabeçalho do quadro atual mediante análise do fluxo de bits recebido pelo equipamento 200. A informação sobre um formato de divisão e a informação sobre um modo de codificação são providas ao decodificador de dados de imagem 230.
[00039] A informação sobre um formato de divisão da unidade de codificação máxima pode incluir informação sobre subunidades de codificação tendo diferentes tamanhos, de acordo com as profundidades; e incluídas na unidade de codificação máxima, e pode ser informação (por exemplo, informação de indicador) indicando se cada unidade de codificação é dividida. A informação sobre um modo de codificação pode incluir informação sobre uma unidade de predição de acordo com as subunidades de codificação, informação sobre um modo de predição, e informação sobre uma unidade de transformada.
[00040] O decodificador de dados de imagem 230 restaura o quadro atual mediante decodificação dos dados de imagem de cada unidade de codificação máxima com base na informação extraída pelo extrator de informação de codificação 220.
[00041] O decodificador de dados de imagem 230 pode decodificar as subunidades de codificação incluídas em uma unidade de codificação máxima com base na informação sobre um formato de divisão da unidade de codificação máxima. Um processo de decodificação pode incluir um processo de predição incluindo predição intra e compensação de movimento e um processo de transformada inversa.
[00042] O decodificador de dados de imagem 230 pode realizar predição intra ou predição inter, com base na informação sobre uma unidade de predição e informação sobre um modo de predição para predizer uma unidade de predição. O decodificador de dados de imagem 230 também pode realizar uma transformada inversa para cada subunidade de codificação com base na informação sobre uma unidade de transformada de uma subunidade de codificação.
[00043] A Figura 3 ilustra unidades de codificação hierárquicas de acordo com uma modalidade exemplar. Com referência à Figura 3, as unidades de codificação hierárquicas podem incluir unidades de codificação cujas larguras e alturas são 64x64, 32x32, 16x16, 8x8 e 4x4. Além dessas unidades de codificação tendo formatos quadrados perfeitos, também podem existir unidades de codificação cujas larguras e alturas são 64x32, 32x64, 32x16, 16x32, 16x8, 8x16, 8x4 e 4x8.
[00044] Com referência à Figura 3, para o conjunto de dados de imagem 310 cuja resolução é 1920x1080, o tamanho de uma unidade de codificação máxima é ajustado para 64x64, e uma profundidade máxima é ajustada para 2.
[00045] Para os dados de imagem 320 cuja resolução é de 1920x1080, o tamanho da unidade de codificação máxima é ajustado para 64x64, e uma profundidade máxima é ajustada para 3. Para o conjunto de dados de imagem 330 cuja resolução é 352x288, o tamanho de uma unidade de codificação máxima é ajustado para 16x16, e uma profundidade máxima é ajustada para 1.
[00046] Quando a resolução é alta ou a quantidade de dados é grande, um tamanho máximo de uma unidade de codificação pode ser ajustado relativamente grande para aumentar uma proporção de compactação e refletir com mais precisão às características da imagem. Consequentemente, para os conjuntos de dados de imagem 310 e 320 tendo resolução superior do que o conjunto de dados de imagem 330, 64x64 pode ser selecionado como o tamanho de uma unidade de codificação máxima.
[00047] Uma profundidade máxima indica o número total de camadas nas unidades de codificação hierárquicas. Como a profundidade máxima do conjunto de dados de imagem 310 é 2, uma unidade de codificação 315 do conjunto de dados de imagem 310 pode incluir uma unidade de codificação máxima cujo tamanho de eixo mais longo é 64 e subunidades de codificação cujos tamanhos de eixo mais longos são 32 e 16, de acordo com um aumento de uma profundidade.
[00048] Por outro lado, como a profundidade máxima do conjunto de dados de imagem 330 é 1, uma unidade de codificação 335 do conjunto de dados de imagem 330 pode incluir uma unidade de codificação máxima cujo tamanho de eixo mais longo é 16 e unidades de codificação cujos tamanhos de eixo mais longo é 8, de acordo com um aumento de uma profundidade.
[00049] Contudo, como a profundidade máxima dos dados de imagem 320 é 3, uma unidade de codificação 325 do conjunto de dados de imagem 320 pode incluir uma unidade de codificação máxima cujo tamanho de eixo mais longo é 64 e subunidades de codificação cujos tamanhos de eixo mais longo são 32, 16, 8 e4 de acordo com um aumento de uma profundidade. Como uma imagem é codificada com base em uma subunidade de codificação menor à medida que aumenta uma profundidade, modalidades exemplares são adequadas para codificar uma imagem incluindo cenas mais minúsculas.
[00050] A Figura 4 é um diagrama de blocos de um codificador de imagem 400 com base em uma unidade de codificação, de acordo com uma modalidade exemplar. Uma unidade de predição intra 410 realiza predição intra nas unidades de predição do modo intra em um quadro atual 405, e um estimador de movimento 420 e um compensador de movimento 425 realizam predição inter e compensação de movimento nas unidades de predição do modo inter utilizando o quadro atual 405 e um quadro de referência 495.
[00051] Valores residuais são gerados com base nas unidades de predição produzidas a partir da unidade de predição intra 410, estimador de movimento 420, e compensador de movimento 425. Os valores residuais gerados são produzidos como coeficientes de transformada, quantizados mediante passagem através de um transformador 430 e de um quantizador 440.
[00052] Os coeficientes de transformada quantizados são restaurados para valores residuais mediante passagem através de um quantizador inverso 460 e de um transformador de inversão 470, e os valores residuais restaurados são pós- processados mediante passagem através de uma unidade de desblocagem 480 e uma unidade de filtração de rede 490 e emitidos como o quadro de referência 495. Os coeficientes de transformada quantizados podem ser emitidos como um fluxo de bits 455 mediante passagem através de um codificador de entropia 450.
[00053] Para realizar a codificação com base em um método de codificação de acordo com uma modalidade exemplar, a unidade de intrapredição 410, o estimador de movimento 420, o compensador de movimento 425, o transformador 430, o quantizador 440, o codificador de entropia 450, o quantizador inverso 460, o transformador de inversão 470, a unidade de desblocagem 480, e a unidade de filtração de rede 490 do codificador de imagem 400 realizam processos de codificação de imagem com base em uma unidade de codificação máxima, uma subunidade de codificação de acordo com as profundidades, uma unidade de predição, e uma unidade de transformada.
[00054] A Figura 5 é um diagrama de blocos de um decodificador de imagem 500 com base em uma unidade de codificação, de acordo com uma modalidade exemplar. Com referência à figura 5 um fluxo de bits 505 é analisado por umanalisador 510 para obter os dados codificados de imagem a serdecodificados e informação de codificação necessária para a decodificação. Os dados codificados de imagem são produzidos como dados quantizados inversos mediante passagem através de um decodificador de entropia 520 e de um quantizador inverso 530, e restaurados para valores residuais mediante passagem através de um transformador de inversão 540. Os valores residuais são restaurados de acordo com as unidades de codificação por serem adicionados a um resultado de predição intra de uma unidade de predição intra 550 ou um resultado de compensação de movimento de um compensador de movimento 560. As unidades de codificação restauradas são usadas para predição das próximas unidades de codificação ou de um próximo quadro mediante passagem através de uma unidade de desblocagem 570 e uma unidade de filtração de rede 580.
[00055] Para realizar a decodificação com base em um método de decodificação de acordo com uma modalidade exemplar, o analisador 510, o decodificador de entropia 520, o quantizador inverso 530, o transformador de inversão 540, a unidade de predição intra 550, o compensador de movimento 560, a unidade de desblocagem 570, e a unidade de filtração de malha 580 podem realizar processos de decodificação de imagem com base em uma unidade de codificação máxima, subunidades de codificação de acordo com as profundidades, uma unidade de predição e uma unidade de transformada.
[00056] Particularmente, a unidade de predição 550 e o compensador de movimento 560 determinam uma unidade de predição e um modo de predição em uma subunidade de codificação mediante consideração de uma unidade de codificação máxima e uma profundidade, e o transformador de inversão 540 realiza uma transformada inversa mediante consideração do tamanho de uma unidade de transformada.
[00057] A Figura 6 ilustra uma unidade de codificação máxima, uma subunidade de codificação, e uma unidade de predição, de acordo com uma modalidade exemplar. O equipamento 100 para codificar uma imagem, ilustrado na Figura 1, e o equipamento 200 para decodificar uma imagem, ilustrado na Figura 2, utilizam unidades de codificação hierárquicas para realizar a codificação e decodificação em consideração das características de imagem. Uma unidade de codificação máxima e uma profundidade máxima podem ser ajustadas de forma adaptativa de acordo com as características de imagem ou ajustadas de forma diversa de acordo com as exigências de um usuário.
[00058] Na Figura 6, uma estrutura de unidade de codificação hierárquica 600 tem uma unidade de codificação máxima 610 que é uma unidade de codificação máxima cuja altura e largura são 64 e a profundidade máxima é 4. Uma profundidade aumenta ao longo de um eixo vertical da estrutura de unidade de codificação hierárquica 600, e à medida que aumenta uma profundidade, diminuem as alturas e as larguras das subunidades de codificação 620 a 650. As unidades de predição da unidade de codificação máxima 610 e as subunidades de codificação 620 a 650 são mostradas ao longo de um eixo horizontal da estrutura de unidade de codificação hierárquica 600.
[00059] A unidade de codificação máxima 610 tem uma profundidade de 0 e o tamanho de uma unidade de codificação, ou uma altura e uma largura de 64x64. Uma profundidade aumenta ao longo do eixo vertical, e existe uma primeira subunidade de codificação 620 cujo tamanho é de 32x32 e a profundidade é 1, uma segunda subunidade de codificação 630 cujo tamanho é 16x16 e a profundidade é 2, uma terceira subunidade de codificação 640 cujo tamanho é 8x8 e a profundidade é 3, e uma unidade de codificação mínima 650 cujo tamanho é de 4x4 e a profundidade é 4. A unidade de codificação mínima 650 cujo tamanho é de 4x4 e a profundidade é 4 é uma unidade de codificação mínima, e a unidade de codificação mínima pode ser dividida em unidades de predição, cada uma das quais é menor do que a unidade de codificação mínima.
[00060] Com referência à Figura 6, exemplos de unidades de predição são mostrados ao longo do eixo horizontal de acordo com cada profundidade. Isto é, uma unidade de predição da unidade de codificação máxima 610 cuja profundidade é 0 pode ser uma unidade de predição cujo tamanho é igual ao tamanho de 64x64 da unidade de codificação máxima, ou uma unidade de predição 612 cujo tamanho é de 64x32, uma unidade de predição 614 cujo tamanho é de 32x64, ou uma unidade de predição 616 cujo tamanho é de 32x32, o qual tem um tamanho menor do que aquele da unidade de codificação máxima cujo tamanho é de 64x64.
[00061] Uma unidade de predição da primeira subunidade de codificação 620 cuja profundidade é 1 e o tamanho de 32x32 pode ser uma unidade de predição cujo tamanho é igual ao tamanho de 32x32 da primeira subunidade de codificação, ou uma unidade de predição de predição 622 cujo tamanho é de 32x16, uma unidade de predição 624 cujo tamanho é de 16x32, ou uma unidade de predição 626 cujo tamanho é de 16x16, o qual tem um tamanho menor do que aquele da primeira subunidade de codificação 620 cujo tamanho é de 32x32.
[00062] Uma unidade de predição da segunda subunidade de codificação 630 cuja profundidade é 2 e o tamanho é de 16x16pode ser uma unidade de predição cujo tamanho é igual ao tamanho de 16x16 da segunda subunidade de codificação 630, ouuma unidade de predição 632 cujo tamanho é de 16x8, uma unidade de predição 634 cujo tamanho é de 8x16, ou uma unidade de predição 636 cujo tamanho é de 8x8, a qual tem um tamanho menor do que aquele da segunda subunidade de codificação 630 cujo tamanho é de 16x16.
[00063] Uma unidade de predição da terceira subunidade de codificação 640 cuja profundidade é 3 e o tamanho é de 8x8 pode ser uma unidade de predição cujo tamanho é igual ao tamanho de 8x8 da terceira subunidade de codificação 640 ou uma unidade de predição 642 cujo tamanho é de 8x4, uma unidade de predição 644 cujo tamanho é de 4x8, ou uma unidade de predição646 cujo tamanho é de 4x4, que tem um tamanho menor do que aquele da terceira subunidade de codificação 640 cujo tamanho é de 8x8.
[00064] Por último, a unidade de codificação mínima 650, cuja profundidade é 4, e cujo tamanho é de 4x4 é uma unidade de codificação mínima e uma unidade de codificação de uma profundidade máxima. Uma unidade de predição da unidade de codificação mínima 650 pode ser uma unidade de predição 650 cujo tamanho é de 4x4, uma unidade de predição 652 tendo um tamanho de 4x2, uma unidade de predição 654 tendo um tamanho de 2x4, ou uma unidade de predição 656 tendo um tamanho de 2x2.
[00065] A Figura 7 ilustra uma unidade de codificação e uma unidade de transformada, de acordo com uma modalidade exemplar. O equipamento 100 para codificar uma imagem, ilustrado na Figura 1, e o equipamento 200 ilustrado na Figura 2 realizam a codificação e decodificação com a própria unidade de codificação máxima ou com subunidades de codificação, as quais são iguais ou menores do que a unidade de codificação máxima, dividida a partir da unidade de codificação máxima. No processo de codificar e decodificar, o tamanho de uma unidade de transformada para transformada de frequência é selecionado para ser maior do que aquele de uma unidade de codificação correspondente. Por exemplo, com referência à figura 7, quando uma unidade de codificação atual 710 tem o tamanho de 64x64, a transformada de frequência pode ser realizada utilizando uma unidade de transformação 720 tendo tamanho de 32x32.
[00066] As Figuras 8A a 8D ilustram formatos de divisão de uma unidade de codificação, uma unidade de predição e uma unidade de transformada, de acordo com uma modalidade exemplar. Especificamente, as Figuras 8A e 8B ilustram uma unidade de codificação e uma unidade de predição, de acordo com uma modalidade exemplar.
[00067] A Figura 8A mostra um formato de divisão selecionado pelo equipamento 100 ilustrado na Figura 1, para codificar uma unidade de codificação máxima 810. O equipamento 100 divide a unidade de codificação máxima 810 em vários formatos, realizada codificação, e seleciona um formato de divisão ótimo mediante comparação dos resultados de codificação dos vários formatos de divisão entre si com base nos custos de RD. Quando for ótimo que a unidade de codificação máxima 810 seja codificada no estado em que se encontra, a unidade de codificação máxima 810 pode ser codificada sem dividir a unidade de codificação máxima 810, conforme ilustrado nas Figuras 8A a 8D.
[00068] Com referência à Figura 8B, a unidade de codificação máxima 810 cuja profundidade é 0 é codificada mediante divisão da mesma em subunidades de codificação cujas profundidades são iguais ou superiores a 1. Isto é, a unidade de codificação máxima 810 é dividida em quatro subunidades de codificação cujas profundidades são 1, e todas ou algumas das subunidades de codificação cujas profundidades são 1 são divididas em subunidades de codificação cujas profundidades são de 2.
[00069] Uma subunidade de codificação localizada em um lado direito superior e uma subunidade de codificação localizada em um lado esquerdo inferior dentre as subunidades de codificação cujas profundidades são 1 são divididas em subunidades de codificação cujas profundidades são iguais ou maiores do que 2. Algumas das subunidades de codificação cujas profundidades são iguais ou maiores do que 2 podem ser divididas em subunidades de codificação cujas profundidades são iguais ou maiores do que 3.
[00070] A Figura 8B mostra um formato de divisão de uma unidade de predição para a unidade de codificação máxima 810. Com referência à Figura 8B, uma unidade de predição 860 para a unidade de codificação máxima 810 pode ser dividida de forma diferente da unidade de codificação máxima 810. Em outras palavras, uma unidade de predição para cada uma das subunidades de codificação pode ser menor do que uma subunidade de codificação correspondente.
[00071] Por exemplo, uma unidade de predição para uma subunidade de codificação 854 localizada em um lado direito inferior dentre as subunidades de codificação cujas profundidades são de 1 pode ser menor do que a subunidade de codificação 854. Além disso, as unidades de predição para as subunidades de codificação 814, 816, 850 e 852 das subunidades de codificação 814, 816, 818, 828, 850 e 852 cujas profundidades são de 2 podem ser menores do que as subunidades de codificação 814, 816, 850 e 852, respectivamente.
[00072] Além disso, as unidades de predição para as subunidades de codificação 822, 832 e 848 cujas profundidadessão 3 podem ser menores do que as subunidades de codificação 822, 832 e 848, respectivamente. As unidades de predição podemter um formato pelo que subunidades de codificação respectivas são igualmente divididas por 2 em uma direção da altura ou largura e tem um formato de modo que subunidades de codificação respectivas são igualmente divididas por 4 nas direções de altura e largura.
[00073] As Figuras 8C e 8D ilustram uma unidade de predição e uma unidade de transformada, de acordo com uma modalidade exemplar.
[00074] A Figura 8C mostra um formato de divisão de uma unidade de predição para a unidade de codificação máxima 810 mostrada na Figura 8B, e a Figura 8D mostra um formato de divisão de uma unidade de transformada da unidade de codificação máxima 810.
[00075] Com referência à Figura 8D, um formato de divisão de uma unidade de transformação 870 pode ser ajustado diferentemente da unidade de predição 860.
[00076] Por exemplo, embora uma unidade de predição para a subunidade de codificação 854, cuja profundidade é de 1, sejaselecionada com um formato pelo que a altura da subunidade de codificação 854 é igualmente dividida por 2, uma unidade de transformada pode ser selecionada com o tamanho original da subunidade de codificação 854. Similarmente, embora as unidades de predição para as subunidades de codificação 814 e 850 cujas profundidades são 2 sejam selecionadas com um formato, pelo que a altura de cada uma das subunidades de codificação, 814 e 850, é igualmente dividida por 2, uma unidade de transformada pode ser selecionada com o mesmo tamanho que o tamanho original de cada uma das subunidades de codificação 814 e 850.
[00077] Uma unidade de transformada pode ser selecionada com um tamanho menor do que uma unidade de predição. Por exemplo, quando uma unidade de predição para a subunidade de codificação 852 cuja profundidade é 2 é selecionada com um formato pelo que a largura da subunidade de codificação 852 é igualmente dividida por 2, uma unidade de transformada pode ser selecionada com um formato pelo que a subunidade de codificação 852 é igualmente dividida por 4 nas direções da altura e largura, a qual tem um tamanho menor do que o formato da unidade de predição.
[00078] A Figura 9 é um diagrama de blocos de um equipamento de interpolação de imagem 900 de acordo com uma modalidade exemplar. A interpolação de imagem pode ser usada para converter uma imagem tendo uma baixa resolução em uma imagem tendo uma alta resolução. Além disso, a interpolação de imagem pode ser usada para converter uma imagem entrelaçada em uma imagem progressiva ou pode ser usada para amostrar ascendentemente uma imagem tendo uma baixa resolução para uma resolução superior. Quando o codificador de imagem 400 da Figura 4 codifica uma imagem, o estimador de movimento 420 e o compensador de movimento 425 podem realizar predição inter, mediante uso de um quadro de referência interpolado. Isto é, com referência à Figura 4, uma imagem tendo uma alta resolução pode ser gerada mediante interpolação do quadro de referência 495, e estimação e compensação de movimentos podem ser realizadas com base na imagem que tenha alta resolução, desse modo aumentando a precisão de predição inter. Similarmente, quando o decodificador de imagem 500 da Figura 5 decodifica uma imagem, o compensador de movimento 550 pode realizar compensação de movimento mediante uso de um quadro de referência interpolado, desse modo aumentando a precisão de interpredição.
[00079] Com referência à Figura 9, o equipamento de interpolação de imagem 900 inclui um transformador 910 e um transformador de inversão 920.
[00080] O transformador 910 transforma os valores de pixel mediante uso de uma pluralidade de funções básicas que têm frequências diferentes. A transformada pode ser um de vários processos de transformação de valores de pixel em um domínio espacial em coeficientes de domínio de frequência, e podem ser, por exemplo, DCT como descrito acima. Valores de pixel de uma unidade de pixel de número inteiro são transformados utilizando a pluralidade de funções básicas. Os valores de pixel podem ser valores de pixel de componentes de luminância ou de componentes de croma. O tipo da pluralidade de funções básicas não é limitado, e pode ser um de vários tipos de funções para transformar valores de pixel em um domínio espacial em um valor(es) de domínio de frequência. Por exemplo, as várias funções básicas podem ser funções de cosseno para realizar DCT ou DCT inversa. Além disso, vários tipos de funções básicas; tais como funções básicas de seno ou funções básicas polinomiais, podem ser usadas. Exemplos de DCT podem incluir DCT modificada, e DCT modificada que utiliza janelamento.
[00081] O transformador de inversão 920 muda as fases das várias funções básicas utilizadas para realizar transformada por intermédio do transformador 910, e transforma de modo inverso uma pluralidade de coeficientes, isto é, valores de domínio de frequência, os quais são gerados pelo transformador 910, mediante uso da pluralidade de funções básicas, cujas fases são mudadas. A transformada realizada pelo transformador 910 e a transformada inversa realizada pelo transformador de inversão 920 serão descritas mediante uso de DCT bidimensional (2D) e DCT unidimensional (1D).DCT 2D e DCT inversa 2D
[00082] A Figura 10 é um diagrama ilustrando um método de interpolação 2D realizado pelo equipamento de interpolação de imagem 900 da Figura 9, de acordo com uma modalidade exemplar. Com referência à Figura 10, o equipamento de interpolação de imagem 900 gera valores de pixel nos locais X, isto é, locais de interpolação, mediante interpolação entre os valores de pixel de unidades de pixel de número inteiro no domínio espacial, por exemplo, valores de pixel nos locais O em um bloco 1000. Os valores de pixel nos locais X são valores de pixel de unidades de pixel fracionárias, cujos locais de interpolação são determinados por 'ax' e 'ay'. Embora a Figura 10 ilustre um caso onde o bloco 1000 tem um tamanho de 4x4, o tamanho do bloco 1000 não é limitado a 4x4, e seria óbvio para aqueles de conhecimento comum na técnica que valores de pixel de unidades de pixel fracionárias podem ser gerados mediante realização de DCT 2D e DCT inversa 2D em um bloco que é menor ou maior do que o bloco 1000.
[00083] Em primeiro lugar, o transformador 910 realiza DCT 2D nos valores de pixel das unidades de pixel de número inteiro. DCT 2D pode ser realizada de acordo com a seguinte equação:em que "C" denota um bloco que inclui coeficientes de domínio de frequência obtidos mediante realização de DCT 2D, "REF" denota o bloco 1000 no qual a DCT é realizada, "D(x)" é uma matriz para realizar DCT na direção de eixo X, isto é, a direção horizontal, e "D(y)" denota uma matriz para realizar DCT na direção de eixo Y, isto é, a direção vertical. Aqui, "D(x)" e "D(y)" podem ser definidos pela seguinte equação (2):em que "k" e "l" denotam números inteirosindividualmente satisfazendo à condição expressa na Equação (2), "Dxl(x)" denota uma fileira de ordem k e uma coluna de ordem l de uma matriz quadrada D(x), e Sx denota os tamanhos horizontais e verticais da matriz quadrada D(x). em que "k" e "l" denotam números inteiros satisfazendo individualmente a condição expressa na Equação (3), Dxl(y) denota uma fileira de ordem k e uma coluna de ordem l de uma matriz quadrada D(y), e Sy denota os tamanhos horizontais e verticais da matriz quadrada D(y).
[00084] O transformador 910 realiza DCT 2D no bloco 1000 mediante cálculo da Equação (1), e o transformador inverso 910 realiza DCT inversa 2D nos coeficientes de domínio de frequência gerados pelo transformador 910 mediante cálculo da seguinte equação:em que "P" denota um bloco incluindo valores de pixel em um local de interpolação, isto é, o local X, os quais são obtidos mediante realização de DCT inversa. Em comparação com a Equação (1), a Equação (4) é obtida mediante multiplicação de ambos os lados do bloco C por "W(x)" e "W(y)", respectivamente, de modo a realizar DCT inversa no bloco C. Aqui, "W(x)" denota uma matriz para realizar DCT inversa na direção horizontal, e "W(y)" denota realização de DCT inversa na direção vertical.
[00085] Conforme descrito acima, o transformador de inversão 910 utiliza várias funções básicas, cujas fases são mudadas, de modo a realizar DCT inversa 2D. "W(x)" e "W(y)" podem serdefinidos pelas seguintes equações (5) e (6):em que "l" e "k" denotam números inteiros satisfazendo individualmente a condição expressa na Equação (5), "Wlk(x)" denota uma fileira de ordem l e uma coluna de ordem k de uma matriz quadrada W(x), e Sx denota os tamanhos horizontais e verticais da matriz quadrada W(x). αx denota umlocal de interpolação horizontal como ilustrado na Figura 10,e pode ser um número fracionário, por exemplo, 1/2, 1/4, 3/4,1/8, 3/8, 5/8, 7/8, 1/16, ou ... Contudo, o número fracionárionão é limitado a estes, e αx pode ser um número real.em que "l" e "k" denotam números inteiros individualmente satisfazendo à condição expressa na Equação (6), "Wlk(y)" denota uma fileira de ordem l e uma coluna de ordem k de uma matriz quadrada W(y), e Sy denota os tamanhos horizontais e verticais da matriz quadrada W(y). ay denota um local de interpolação vertical como ilustrado na Figura 10, e pode ser um número fracionário, por exemplo, 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, ou ... Contudo, o número fracionário não é limitado a estes, e ay pode ser um número real.
[00086] Em comparação com as Equações (2) e (3), as fases das várias funções básicas usadas pelo transformador de inversão 910, isto é, várias funções de cosseno, são mudadas por 2ax e 2ay, respectivamente, nas Equações (5) e (6). Se o transformador de inversão 910 realizar DCT inversa 2D com base na pluralidade de funções de cosseno, cujas fases são mudadas, conforme expresso nas Equações (5) e (6), então os valores de pixel dos locais X são gerados.
[00087] A Figura 11 é um diagrama ilustrado uma região de interpolação 1110 de acordo com uma modalidade exemplar. Quando o transformador 910 e o transformador de inversão 920 da Figura 9 geram valores de pixel nos locais de interpolação mediante realização de DCT 2D e DCT inversa 2D, respectivamente, uma região 1120 que é maior do que um bloco que deve ser interpolado, isto é, uma região de interpolação 1110, pode ser usada. Em geral, a exatidão da interpolação pode ser diminuída nas bordas da região de interpolação 1110, e assim, a correlação entre os valores de pixel adjacentes a um local de interpolação pode ser considerada para interpolação. O equipamento de interpolação de imagem 900 da Figura 9 realiza DCT 2D nos valores de pixel incluídos na região de interpolação 1110 e então realiza DCT inversa 2D no resultado da realização de DCT 2D, em que a correlação entre os valores de pixel incluídos na região de interpolação 1110 e os valores de pixel fora da região de interpolação 1110 não é considerada.
[00088] Assim, o equipamento de interpolação de imagem 900 realiza interpolação na região 1120, a qual é maior do que a região de interpolação 1110 e inclui a região de interpolação 1110 e uma região adjacente à região de interpolação 1110, e utiliza os valores de pixel na região de interpolação 1110 para compensação de movimento.DCT 1D e DCT inversa de 1D
[00089] Figura 12 é um diagrama ilustrando um método de interpolação 1D de acordo com uma modalidade exemplar. Com referência à Figura 12, o equipamento de interpolação de imagem 900 da Figura 9 gera um valor de pixel 1200 em um local de interpolação por intermédio de interpolação entre um valor de pixel 1210 e o valor de pixel 1220 de unidades de pixel de número inteiro em um domínio espacial. O valor de pixel 1200 é um valor de pixel de uma unidade de pixel fracionária, cujo local de interpolação é determinado por "a". O método de interpolação 1D de acordo com a modalidade exemplar atual será descrito abaixo em detalhe com referência à Figura 13.
[00090] A Figura 13 é um diagrama ilustrando especificamente um método de interpolação 1D realizado pelo equipamento de interpolação de imagem 900 da Figura 9, de acordo com uma modalidade exemplar. Com referência à Figura 13, vários valores de pixel adjacentes 1310 e 1320 que incluem valores de pixel 1210 e 1220 de unidades de pixel de número inteiro, respectivamente, são usados para gerar um valor de pixel 1200 de uma unidade de pixel fracionária mediante interpolação entre os dois valores de pixel 1210 e 1220. Em outras palavras, DCT 1D é realizado em valores de pixel de ordem -(M1) a M, isto é, valores de pixel 2M, DCT inversa 1D é realizada no resultado da execução de DCT 1D, com base na pluralidade de funções básicas, cujas fases são mudadas, desse modo realizando a interpolação entre o pixel de ordem 0 e um primeiro pixel. A Figura 13 ilustra um caso onde M=6, mas "M" não é limitado a 6 e pode ser qualquer número inteiro positivo maior do que 0.
[00091] Além disso, as Figuras 12 e 13 ilustram os casos onde a interpolação é realizada entre os valores de pixel adjacentes na direção horizontal, mas seria óbvio para aqueles de conhecimento comum na técnica que os métodos de interpolação 1D das Figuras 12 e 13 podem ser usados para interpolação entre valores de pixel adjacentes na direção vertical ou em uma direção diagonal (vide Figuras 18A e 18B para mais detalhes).
[00092] O transformador 910 realiza DCT 1D nos valores de pixel das unidades de pixel de número inteiro. A DCT 1D pode ser realizada mediante cálculo da seguinte equação:em que "p(1)" denota os valores de pixel de ordem(M-1) a M, por exemplo, os valores de pixel de ordem -5 a 6 1310 e 1320 ilustrados na Figura 13, e "Ck" denota uma pluralidade de coeficientes obtidos mediante realização de DCT 1D nos valores de pixel. Aqui, "k" denota um número inteiro positivo satisfazendo à condição expressa na Equação (7).
[00093] Quando o transformador 910 realiza DCT 1D nos valores de pixel 1310 e 1320 mediante cálculo da Equação (7), o transformador de inversão 920 realiza DCT inversa 1D nos coeficientes de domínio de frequência gerados pelo transformador 910 mediante cálculo da seguinte Equação (8).em que "α" denota um local de interpolação entre dois valores de pixel conforme descrito acima com referência à Figura 13, e pode ser um de vários números fracionários, por exemplo, 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, ... Osnúmeros fracionários não são limitados, e "α" pode ser um número real. "P(α)" denota o valor de pixel 1200 no local de interpolação gerado mediante realização de DCT inversa 1D. Em comparação com a Equação (7), a fase da função de cosseno expressa na Equação (8), a qual é uma função básica usada para realizar DCT inversa 1D, é determinada pelo número fracionário "α" exceto um número inteiro "1", e assim é diferente da fase da função básica usada para realizar DCT 1D.
[00094] A Figura 14 é um diagrama de blocos de um equipamento de interpolação de imagem 1400 de acordo com uma modalidade exemplar. Com referência à Figura 14, o equipamento de interpolação de imagem 1400 inclui um seletor de filtro 1410 e um interpolador 1420. O equipamento de interpolação de imagem 900 da Figura 9 transforma uma imagem e transforma inversamente o resultado da transformação com base em uma pluralidade de funções básicas, cujas fases são mudadas. Contudo, se a transformada e a transformada inversa forem realizadas sempre que os valores de pixel forem introduzidos no equipamento de interpolação de imagem 900, a quantidade de cálculo exigida é grande, desse modo aumentando a velocidade de operação de um sistema de processamento de imagem.
[00095] Assim, a interpolação de imagem pode ser realizada rapidamente em um domínio espacial sem ter que transformar o domínio espacial em um domínio de frequência mediante cálculo dos coeficientes de filtro para realizar transformada e transformada inversa descritas acima e então filtrar os valores de pixel no domínio espacial, os quais são introduzidos no equipamento de interpolação de imagem 1400, mediante uso dos coeficientes de filtro, calculados.
[00096] O seletor de filtro 1410 recebe informação com relação a um local de interpolação e seleciona um filtro a ser usado para interpolação. Conforme descrito acima, o filtro é usado para transformar valores de pixel com base em uma pluralidade de funções básicas tendo diferentes frequências e para transformar inversamente uma pluralidade de coeficientes, os quais são obtidos através da transformada, com base na pluralidade de funções básicas, cujas fases são mudadas. Os coeficientes de filtro podem variar de acordo com um local de interpolação, e o filtro é selecionado de acordo com o local de interpolação.
[00097] Conforme descrito acima com referência à Figura 9, os valores de pixel são transformados utilizando as várias funções básicas que têm diferentes frequências, e as fases das várias funções básicas que têm frequências diferentes são mudadas de acordo com o local de interpolação de modo a realizar a transformada inversa. Então, os valores de pixel no local de interpolação podem ser interpolados mediante transformação inversa da pluralidade de coeficientes mediante uso da pluralidade de funções básicas, cujas fases são mudadas. Em outras palavras, se a transformada for realizada com base nos valores de pixel das unidades de pixel de número inteiro e a transformada inversa for realizada com base a pluralidade de funções básicas, cujas fases são mudadas, de acordo com o local de interpolação, então os valores de pixel de pelo menos uma unidade de pixel fracionária podem ser gerados por vários locais de interpolação. Assim, o seletor de filtro 1410 da Figura 14 estabelece previamente uma pluralidade de filtros para realizar transformada e para realizar transformada inversa com base nas diferentes funções básicas, e seleciona um dos filtros preestabelecidos, com base na informação relacionada a um local de interpolação.
[00098] O interpolador 1420 realiza interpolação mediante uso do filtro selecionado pelo seletor de filtro 1410. Especificamente, a interpolação é realizada mediante filtração de uma pluralidade de valores de pixel de unidades de pixel de número inteiro com base no filtro selecionado. Como resultado da interpolação, um valor(es) de pixel em um local de interpolação predeterminado, isto é, um valor(es) de pixel de uma unidade de pixel fracionária, é(são) obtido(s). Com referência à Figura 10, se um bloco que inclui vários valores de pixel de unidades de pixel de número inteiro for filtrado com um filtro 2D, então vários valores de pixel nos locais de interpolação, cada um dos quais é determinado por "ax" e "ay", são gerados. Com referência à Figura 13, se uma fileira ou coluna incluindo vários valores de pixel de unidades de pixel de número inteiro forem filtrados com um filtro 1D, então vários valores de pixel nas interpolações a são gerados. Os métodos de interpolação realizados utilizando o filtro 2D e o filtro 1D, respectivamente, serão descritos agora, abaixo, com referência aos desenhos anexos.conforme descrito acima em relação à Equação (4). Essa equação também pode ser expressa como a seguir:em que "F(x)" denota um filtro para transformar um bloco REF na direção horizontal e para transformação inversa do resultado da transformação na direção horizontal mediante uso de várias funções básicas, cujas fases são mudadas. "F(y)" denota um filtro para transformar o bloco REF na direção vertical e para transformação inversa do resultado da transformação da direção vertical mediante uso das várias funções básicas, cujas fases são mudadas. Por exemplo, "F(x)" pode denotar um filtro para realizar DCT no bloco REF na direção horizontal, e realizar DCT inversa no resultado da realização na direção horizontal mediante uso de váriasfunções de cosseno, cujas fases são mudadas. "F(y)" pode denotar um filtro para realizar DCT no bloco REF na direçãovertical, e realizar DCT inversa no resultado da realização na direção vertical mediante uso de uma pluralidade de funções de cosseno, cujas fases são mudadas.
[00099] De acordo com as Equações (2), (3), (5) e (6), os filtros F(x) e F(y) podem ser definidos pelas seguintes Equações (10) e (11):em que "k" e "l" denotam números inteirossatisfazendo individualmente a condição expressa na Equação (10), "Fkl(x)" denota uma fileira de ordem k e uma coluna de ordem l de uma matriz F(x), e Sx denota os tamanhos horizontais e verticais das matrizes quadradas W(x) e D(x). Como asmatrizes quadradas W(x) e D(x) têm o mesmo tamanho, os seus tamanhos horizontais e verticais também são idênticos. "Wkn(x)" denotam uma fileira de ordem k e uma coluna de ordem n da matriz quadrada W(x) descrita acima em relação à Equação (5). Dnl(x) denota uma fileira de ordem n e uma coluna de ordem l da matriz quadrada D(x) descrita acima em relação à Equação (2).em que "k" e "l" denotam números inteiros satisfazendo individualmente a condição expressa na Equação (11), "Fkl(y)" denota uma fileira de ordem k e uma coluna de ordem l de uma matriz F(y) e Sy denota os tamanhos horizontais e verticais das matrizes quadradas W(y) e D(y). Como as matrizes quadradas W(y) e D(y) têm o mesmo tamanho, os seus tamanhos horizontais e verticais também são idênticos. "Wnl(y)" denota uma fileira de ordem n e uma coluna de ordem l da matriz quadrada W(y) descrita acima em relação à Equação (5). "Dkn(y)" denota uma fileira de ordem k e uma coluna de ordem n da matriz quadrada D(y) descrita acima em relação à Equação (2).
[000100] Se interpolação for realizada mediante aumento das profundidades - bit dos filtros F(x) e F(y), a precisão da filtração pode ser aperfeiçoada. Assim, de acordo com uma modalidade exemplar, os coeficientes dos filtros F(x) e F(y) são aumentados mediante multiplicação dos mesmos por um valor predeterminado, e uma imagem pode ser interpolada utilizando esses filtros incluindo os coeficientes aumentados. Nesse caso, a Equação (9) pode ser mudada como a seguir:em que "F'(x)" denota um filtro escalonado mediante multiplicação dos coeficientes do filtro F(x) por um fator de escalonamento "S" e arredondamento do resultado da multiplicação para um número inteiro, e "F'(y)" denota umfiltro obtido mediante multiplicação dos coeficientes do filtro F(y) por "S" e arredondamento do resultado damultiplicação para um número inteiro. Como a interpolação é realizada utilizando o filtro escalonado, os valores de pixel nos locais de interpolação são calculados e são então divididos por "S2" para compensar o efeito de escalonamento.
[000101] A Figura 15 ilustra filtros de interpolação 2D de acordo com uma modalidade exemplar. Especificamente, a Figura 15 ilustra os coeficientes de filtro escalonados de acordo com a Equação (2). Isto é, a Figura 15 ilustra os filtros deinterpolação 2D F'(x) quando "αx" é 1/4, 1/2 e 3/4, em que os filtros de interpolação 2D F'(x) são gerados mediante multiplicação dos coeficientes do filtro de interpolação 2D F(x) por um fator de escalonamento 213. Um filtro deinterpolação 2D F'(y) quando "αy" é 1/4, 1/2 e 3/4, pode ser usado para transpor o filtro F'(x).
[000102] Com referência à Figura 14, se o seletor de filtro 1410 selecionar um dos filtros de interpolação 2D da Figura 15 com base em um local de interpolação, o interpolador 1420 gera valores de pixel no local de interpolação mediante cálculo da Equação (9) ou (12).Filtro 1D
[000103] DCT 1D de acordo com a Equação (7) pode ser expressa como a seguinte determinante:em que "C" denota uma matriz (2Mx1) para coeficientes 2M descritos acima em relação à Equação (7), e "REF" denota uma matriz (2Mx1) para valores de pixel de unidades de pixel de número inteiro descritas acima em relação à Equação (7), isto é, P-(m-1),... até PM. O número total de valores de pixel usados para interpolação, isto é, 2M, denota o número total de derivações de um filtro de interpolação 1D. "D" denota uma matriz quadrada para DCT 1D, que pode ser definido como a seguir.em que "k" e "l" denotam números inteiros satisfazendo individualmente a condição expressa na Equação (14), "Dkl" denota uma fileira de ordem k e uma coluna de ordem l de uma matriz quadrada D para DCT 1D expresso na Equação (13), e "M" foi descrito acima em relação à Equação (13).
[000104] DCT 1D utilizando uma pluralidade de funções básicas, cujas fases são mudadas, de acordo com a Equação (8) pode ser expressa como o seguinte determinante:em que "P(a)" é o mesmo que "P(a)" expresso na Equação (8), e "W(a)" denota uma matriz (1x2M) área DCT inversa 1D utilizando uma pluralidade de funções básicas, cujas fases são mudadas. "W(a)" pode ser definido como a seguir:em que "k" denota um número inteiro satisfazendo à condição expressa na Equação (16), e "Wk(a)" denota uma colunade ordem k da matriz W(a) descrita acima em relação à Equação(15). Um filtro de interpolação 1D F(a) para realizar DCT 1D eDCT inversa 1D que utiliza uma pluralidade de funções básicas, cujas fases são mudadas, com base nas Equações (13) e (15), pode ser definida como a seguir:em que "k" e "l" denotam números inteiros satisfazendo individualmente a condição expressa na Equação (17), "Fl(a)" denota uma coluna de ordem l do filtro F(a), e "W(a)" e "D" são idênticos a "W(a)" e "D" expressos na Equação (13).
[000105] A precisão da filtração pode ser aperfeiçoadamediante aumento da profundidade de bits do filtro de interpolação 1D F(a) similar a um filtro de interpolação 2D. Uma imagem pode ser interpolada mediante aumento dos coeficientes do filtro de interpolação 1D F(a) mediante multiplicação dos mesmos com um valor predeterminado e utilizando o filtro de interpolação 1D F(a) incluindo os coeficientes aumentados.
[000106] Por exemplo, a interpolação pode ser realizada mediante multiplicação do filtro de interpolação 1D F(a) por um fator de escalonamento '2ScalingBits'. Nesse caso, P(a) = F(a) x REF expresso na Equação (17) pode ser mudado como a seguir:em que Fl (a) denota um filtro escalonado mediantemultiplicação dos coeficientes do filtro de interpolação 1D F(a) pelo fator de escalonamento '2ScalingBits' e arredondando o resultado da multiplicação para um número inteiro, 'REFl' denota uma coluna de ordem l da matriz REF expressa na Equação (17), e '2ScalingBits-1' denota um valor adicionado para arredondar um valor de pixel filtrado. Um valor de pixel em um local de interpolação a é calculado mediante multiplicação do filtro escalonado F'1(a) por uma matriz para valores de pixel, o resultado do cálculo é arredondado mediante adição do valor '2ScalingBits-1' ao mesmo, e o valor resultante é mudado por um bit "Bits de Escalonamento" de modo a compensar o efeito de escalonamento.
[000107] O arredondamento usado nas equações descritas acima é apenas um exemplo de um método de quantificar os coeficientes de filtro. Para generalizar um método de quantificar os coeficientes de filtro para facilidade de entendimento, os coeficientes de filtro podem ser modificados e otimizados conforme expresso nas seguintes Equações (19) e (20):em que "Fl(α)" denota um coeficiente de ordem l do filtro que não é quantificado, "Fl(α)" denota um coeficiente de ordem l do filtro que é quantificado, e "ε" denota qualquer número real que pode ser selecionado de acordo com um grau de quantização e pode ser, por exemplo, 0.2*Fl(a). De acordo com a Equação (19), quando o coeficiente de ordem l Fl(a) que é um número real é calculado de acordo com a Equação (13) a (17), então o coeficiente de ordem l Fl (a) é mudado para o coeficiente de ordem l f'1(a) satisfazendo à Equação (19), desse modo quantizando o coeficiente de ordem l f1(a).
[000108] Quando os coeficientes de filtro são escalonados por um fator de escalonamento predeterminado, a quantização de acordo com a Equação (19) pode ser mudada como a seguir:em que "p" denota um fator de escalonamento (o qual pode ser '2ScaligBits'), e p*Fl(a) denota um coeficiente de filtro escalonado. De acordo com a Equação (20), "p*Fl(a)" é convertido para "F'l(a).
[000109] As Figuras 16A a 16F ilustram filtros de interpolação 1D de acordo com as modalidades exemplares. Nas Figuras 16A a 16F, os filtros escalonados descritos acima em relação à Equação (18) são ilustrados de acordo com o número de derivações e um local de interpolação. Especificamente, as Figuras 16A a 16F ilustram u filtro de 4 derivações, um filtro de 6 derivações, um filtro de 8 derivações, um filtro de 10 derivações, um filtro de 12 derivações, e um filtro de 14 derivações, respectivamente. Nas Figuras 16A a 16F, um fator de escalonamento para os coeficientes de filtro é ajustado para "256", isto é, um ScalingBits é ajustado para "8".
[000110] Nas Figuras 16A a 16F, os coeficientes de filtro incluem coeficientes para componentes de alta frequência, pelo que a precisão da interpolação e predição pode ser aumentada, porém a eficiência da compactação de imagem pode ser degradada devido aos componentes de alta frequência. Contudo, a interpolação é realizada para aumentar a eficiência de compactação de imagem conforme descrito acima com referência à Figura 9. Para resolver esse problema, os coeficientes de filtro ilustrados nas Figuras 16A a 16F podem ser ajustados para aumentar a eficiência de compactação de imagem nesse caso.
[000111] Por exemplo, um valor absoluto de cada um dos coeficientes de filtro pode ser reduzido, e cada coeficiente de filtro no ponto médio de cada filtro pode ser multiplicado por um valor ponderado maior do que os valores ponderados atribuídos aos outros coeficientes de filtro. Por exemplo, com referência à Figura 16B, no filtro de 6 derivações para gerar valores de pixel em um local de interpolação de 1/2, os coeficientes de filtro, {11, -43, 160, 160, -43, 11,} sãoajustados de tal maneira que os valores absolutos de "11", "43" e "160" podem ser reduzidos e apenas "160" no ponto médio do filtro de 6 derivações é multiplicado por um valor ponderado.
[000112] As Figuras 17A a 17Y ilustram filtros de interpolação 1D otimizados de acordo com modalidades exemplares. Os filtros ilustrados nas Figuras 16A a 16F também podem ser ajustados para facilmente incorporar o filtro mediante hardware. Quando a Equação (17) ou (18) é calculado utilizando-se um computador, os coeficientes de filtro podem ser otimizados para minimizar uma operação aritmética, por exemplo, mudança de bits de números binários e adição.
[000113] Nas Figuras 17A e 17B, a quantidade de cálculo necessária para realizar filtração para interpolação de cada filtro é indicada em ambas, unidades de "adição" e de "mudança". Cada um dos filtros das Figuras 17A a 17M inclui coeficientes otimizados para minimizar as unidades de "adição", e de "mudança", em um local de interpolação correspondente.
[000114] As Figuras 17A e 17B ilustram um filtro de 6 derivações, e um filtro de 12 derivações, otimizados para interpolar uma imagem com a precisão de 1/4 pixel escalonado por um deslocamento de 8 bits, respectivamente. As Figuras 17C, 17D e 17E ilustram filtros de 8 derivações otimizadospara interpolar uma imagem com a precisão de 1/4 pixel escalonado por um deslocamento de 8 bits. Os filtros de 8 derivações das Figuras 17C a 17E são classificados de acordo com pelo menos um de se os coeficientes de filtro devem ser otimizados e um método de otimização dos coeficientes de filtro. As Figuras 17F e 17G ilustram filtros de 8 derivações otimizados para interpolar uma imagem com a precisão de 1/4 pixel escalonado por um deslocamento de 6 bits. Os filtros das Figuras 17F e 17G podem ser classificados de acordo com um método de otimizar os coeficientes de filtro.
[000115] A Figura 17H ilustra um filtro de 6 derivações otimizado para interpolar uma imagem com a precisão de 1/8 pixel escalonado por um deslocamento de 6 bits. A Figura 17I ilustra um filtro de 6 derivações otimizado para interpolar uma imagem com a precisão de 1/8 pixel escalonado por um deslocamento de 8 bits.
[000116] As Figuras 17J e 17K ilustram filtros de 4 derivações otimizados para interpolar uma imagem com a precisão de 1/8 pixel escalonado por um deslocamento de 5 bits. Os filtros dasFiguras 17J e 17K podem ser classificados de acordo com um método de otimização de coeficientes de filtro. As Figuras 17Le 17M ilustram filtros de 4 derivações otimizados para interpolar uma imagem com a precisão de 1/8 pixel escalonado por um deslocamento de 8 bits. Os filtros das Figuras 17L e 17M também podem ser classificados de acordo com um método de otimização de coeficientes de filtro.
[000117] As Figuras 17N a 17Y ilustram um filtro de 4 derivações, um filtro de 6 derivações, um filtro de 8 derivações, um filtro de 10 derivações, e um filtro de 12 derivações, otimizados para interpolar uma imagem com a precisão de 1/8 pixel escalonado por um deslocamento de 8 bits, respectivamente. Os filtros das Figuras 17N a 17Y são diferentes dos filtros das Figuras 17A a 17M e que alguns doscoeficientes de filtro são diferentes, porém são os mesmos queos filtros das Figuras 17A a 17M em que um coeficiente de filtro para interpolação de um local de interpolação 1/8 é simétrico com um coeficiente de filtro para interpolação de um local de interpolação de 7/8, um coeficiente de filtro para interpolação de um local de interpolação de 2/8 é simétrico com um coeficiente de filtro para interpolação de um local de interpolação de 6/8, e um coeficiente de filtro para interpolação de um local de interpolação de 3/8 é simétrico com um coeficiente de filtro para interpolar um local de interpolação de 5/8.
[000118] As Figuras 23A a 23E ilustram métodos de realizar escalonamento e arredondamento em relação a um filtro de interpolação 1D, de acordo com as modalidades exemplares.
[000119] Conforme descrito acima, a filtração de interpolação utiliza DCT e DCT inversa, e o filtro de interpolação 1D desse modo inclui coeficientes de filtro, cujos valores absolutos são menores do que "1". Assim conforme descrito acima em relação à Equação (12), os coeficientes de filtro são escalonados mediante multiplicação dos mesmos por '2ScalingBits', são arredondados para números inteiros, respectivamente, e são então usados para interpolação.
[000120] A Figura 23A ilustra os coeficientes de filtro escalonados por '2ScalingBits' quando os filtros de interpolação 1D são filtros de 12 derivações. Com referência à Figura 23A, os coeficientes de filtro foram escalonados, mas não arredondados para números inteiros.
[000121] A Figura 23B ilustra o resultado do arredondamento dos coeficientes de filtro escalonados da Figura 23A para números inteiros mediante arredondamento dos mesmos para o décimo ponto decimal. Com referência à Figura 23B, alguns filtros de interpolação, cuja soma do arredondamento dos coeficientes de filtros escalonados é inferior a '256' dentre os filtros de interpolação 1D. Especificamente, a soma de todos os coeficientes de filtro de cada filtro para interpolação de valores de pixel em um local de interpolação de 1/8, um filtro para interpolação de valores de pixel em um local de interpolação de 3/8, um filtro para interpolação de valores de pixel em um local de interpolação de 5/8, e um filtro para interpolação de valores de pixel e um local de interpolação de 7/8, é menor do que '256'. Isto é, a soma dos coeficientes de filtro de um filtro escalonado por um deslocamento de 8 bits deve ser de '256', mas um erro ocorre durante o arredondamento dos coeficientes de filtro.
[000122] O fato de que as somas dos coeficientes de filtro não são idênticas, significa que os valores de pixel podem variar de acordo com um local de interpolação. Para resolver esse problema, um filtro normalizado pode ser gerado mediante ajuste dos coeficientes de filtro. A Figura 23C ilustra um filtro normalizado gerado pelos coeficientes de filtro dos filtros ilustrados na Figura 23B.
[000123] Uma comparação das Figuras 23B e 23C revela que as somas de todos os coeficientes de filtro são normalizadas para '256' mediante ajuste de alguns dos coeficientes de filtro do filtro para interpolar os valores de pixel no local de interpolação de 1/8, o filtro para interpolar os valores de pixel no local de interpolação de 3/8, o filtro para interpolar os valores de pixel no local de interpolação de 5/8, e o filtro para interpolar os valores de pixel no local de interpolação de 7/8.
[000124] As Figuras 23D e 23E ilustram os filtros de 8 derivações que são escalonados, e o resultado da normalização dos filtros de 8 derivações, respectivamente. Se os filtros de 8 derivações que são escalonados por 2offset são conforme ilustrado na Figura 23D, então o resultado do arredondamento dos coeficientes de filtro dos filtros de 8 derivações da Figura 23D para valor de número inteiro e normalização do resultado do arredondamento em uma tal forma que as somas dos coeficientes de filtro sejam '256' pode ser ilustrado na Figura 23E. Com referência à Figura 23E, alguns dos coeficientes de filtro são diferentes do resultado do arredondamento dos coeficientes de filtro dos filtros de 8 derivações ilustrados na Figura 23D. Isso significa que alguns dos coeficientes de filtro são ajustados de tal modo que as somas de todos os coeficientes de filtro são '256'.
[000125] Conforme ilustrado nas Figuras 23B e 23C, pelo menos um dos coeficientes de filtro resultantes obtidos por ao menos um dos coeficientes de filtro de escalonamento e de arredondamento pode ser diferente do resultado de normalização dos coeficientes de filtro resultantes. Assim, seria óbvio para aqueles de conhecimento comum na técnica que um filtro de interpolação 1D, cujo ao menos um dentre os coeficientes de filtro é mudado em uma faixa predeterminada de erro, por exemplo, +-1 ou +-2, a partir dos filtros ilustrados nas Figuras 16A a 16F ou dos filtros ilustrados em 17A a 17M devem ser entendidos como abrangidos pelo escopo das modalidades exemplares.
[000126] Se o seletor de filtro 1410 selecionar um dos filtros ilustrados nas Figuras 16A a 16F ou Figuras 17A a 17Y ou Figuras 23A a 23E com base em um local de interpolação, então o interpolador 1420 gera valores de pixel no local de interpolação mediante cálculo da Equação (17) ou (18). Os outros vários fatores (tal como uma direção de predição inter, um tipo de filtro de malha, uma posição de pixel em um bloco) podem ser adicionalmente considerados para o seletor de filtro 1410 para selecionar um dos filtros. Um tamanho, isto é, um tamanho de derivação, de um filtro que deve ser selecionado pode ser determinado ou pelo tamanho de um bloco que deve ser interpolado ou por uma direção de filtração para interpolação. Por exemplo, um filtro grande pode ser selecionado quando um bloco que deve ser interpolado for grande, e um filtro pequeno pode ser selecionado para minimizar acesso de memória quando a interpolação deve ser realizada na direção vertical.
[000127] De acordo com uma modalidade exemplar, informação com relação à seleção de filtro pode ser adicionalmente codificada. Por exemplo, se uma imagem foi interpolada durante a codificação da imagem, um lado de decodificação deve conhecer o tipo de filtro usado para interpolar a imagem de modo a interpolar e decodificar a imagem mediante uso do mesmo filtro usado durante a codificação da imagem. Com essa finalidade, informação especificando o filtro usado para interpolar a imagem pode ser codificada junto com a imagem. Contudo, quando a seleção de filtro é realizada com base no resultado da codificação anterior de outro bloco, isto é, contexto, a informação com relação à seleção de filtro não precisa ser codificada adicionalmente.
[000128] Se um valor de pixel gerado pela realização da interpolação for menor do que um valor de pixel mínimo ou for maior do que um valor de pixel máximo, então o valor de pixel é mudado para o valor de pixel mínimo ou máximo. Por exemplo, se o valor de pixel gerado for menor do que um valor de pixel mínimo de 0, ele é mudado para "0", e se o valor de pixel gerado for maior do que um valor de pixel máximo de 255, ele é mudado para '255',
[000129] Quando a interpolação é realizada para executar com precisão a predição inter durante a codificação de uma imagem, informação especificando um filtro de interpolação pode ser codificada em conjunto com a imagem. Em outras palavras, a informação com relação ao tipo do filtro selecionado pelo seletor de filtro 1410 pode ser codificada como um parâmetro de imagem em conjunto com a imagem. Como um tipo diferente de filtro de interpolação pode ser selecionado em unidades de codificação ou em unidades de imagem ou fatia, informação com relação à seleção de filtro também pode ser codificada nas unidades de codificação ou nas unidades de imagem ou fatia, em conjunto com a imagem. Contudo, se a seleção de filtro for realizada consequentemente, como uma regra implícita, a informação com relação à seleção de filtro pode não ser codificada em conjunto com a imagem.
[000130] Os métodos de realização de interpolação por intermédio do interpolador 1420 de acordo com as modalidades exemplares serão descritos agora, em detalhe, com referência às Figuras 18A, 18B e 19.
[000131] As Figuras 18A e 18B ilustram os métodos de interpolação de valores de pixel em diversas direções mediante uso de um filtro de interpolação 1D, de acordo com as modalidades exemplares. Com referência às Figuras 18A e 18B, os valores de pixel nos locais de interpolação em diversas direções podem ser gerados mediante uso de um filtro de interpolação 1D que pode realizar DCT 1D nos valores de pixel 1D e realizar DCT inversa de 1D no resultado da realização mediante uso de uma pluralidade de funções básicas, cujas fases são mudadas.
[000132] Com referência à Figura 18A, um valor de pixel P(α) 1800 em um local de interpolação α na direção vertical pode ser gerado mediante interpolação entre um valor de pixel P0 1802 e um valor de pixel P1 1804 que são adjacentes na direção vertical. Em comparação com o método de interpolação 1D da Figura 13, a interpolação é realizada utilizado valores de pixel 1810 e 1820 arranjados na direção vertical em vez dos valores de pixel 1310 e 1320 arranjados na direção horizontal, mas o método de interpolação descrito acima em relação às Equações (13) a (18) também pode ser aplicado ao método da Figura 18A.
[000133] Similarmente, em comparação com o método de interpolação 1D da Figura 13, no método da Figura 18B, a interpolação é realizada utilizando valores de pixel 1840 e 1850 arranjados em uma direção diagonal em vez dos valores de pixel 1310 e 1320 arranjados na direção horizontal, mas um valor de pixel P(α) 1830 em um local de interpolação α podeser gerado mediante interpolação entre dois valores de pixel adjacentes 1832 e 1834 como descrito acima em relação às Equações (13) a (18).
[000134] A Figura 19A ilustra um método de interpolação 2D de acordo com uma modalidade exemplar. Com referência à Figura 19A, os valores de pixel 1910 a 1950 das unidades de pixel fracionárias podem ser gerados com base nos valores de pixel 1900 a 1906 das unidades de pixel de número inteiro.
[000135] Especificamente, em primeiro lugar, o seletor de filtro 1410 do equipamento de interpolação de imagem 1400 ilustrado na Figura 14 seleciona um filtro de interpolação 1D para gerar valores de pixel 1910, 1920, 1930, e 1940 deunidades de pixel fracionárias que estão presentes entre os valores de pixel 1900 a 1906 das unidades de pixel de número inteiro. Conforme descrito acima com referência à Figura 14, um filtro diferente pode ser selecionado de acordo com um local de interpolação. Por exemplo, filtros diferentes podem ser selecionados para valores de pixel 1912, 1914, e 1916 deuma unidade de pixel fracionária, respectivamente, de modo a interpolar o valor de pixel 1910 entre dois valores de pixel superiores 1900 e 1902. Por exemplo, um filtro para gerar o valor de pixel 1914 de uma unidade de pixel 1/2 pode ser diferente de um filtro para gerar os valores de pixel 1912 e 1916 da mesma unidade de 1/4 pixel. Além disso, os valores de pixel 1912 e 1916 da mesma unidade de 1/4 pixel podem ser gerados utilizando-se filtros diferentes, respectivamente. Conforme descrito acima com referência à Figura 14, um grau de mudança das fases das funções básicas usadas para realizar DCT inversa varia de acordo com um local de interpolação e, desse modo, um filtro para realizar interpolação é selecionado de acordo com um local de interpolação.
[000136] Similarmente, os valores de pixel 1920, 1930 e 1940de diferentes unidades de pixel fracionárias presentes entre os valores de pixel de 1900 a 1906 de unidades de pixel de número inteiro podem ser geradas com base em um filtro de interpolação 1D selecionado de acordo com um local de interpolação.
[000137] Se o seletor de filtro 1410 selecionar um filtro para gerar os valores de pixel 1910, 1920, 1930 e 1940 das unidadesde pixel fracionárias presentes entre os valores de pixel 1900 a 1906 de unidades de pixel de números inteiros, então o interpolador 1420 gera os valores de pixel 1910, 1920, 1930 e1940 das unidades de pixel fracionárias nos locais de interpolação, respectivamente, com base no filtro selecionado. De acordo com uma modalidade exemplar, como um filtro para gerar um valor de pixel em cada um dos locais de interpolação foi calculado previamente, os valores de pixel em todos os locais de interpolação podem ser gerados com base nos valoresde pixel dos valores de pixel de número inteiro.
[000138] Em outras palavras, como os valores de pixel 1912 e 1916 da unidade de 1/4 pixel podem ser gerados diretamente a partir dos valores de pixel 1900 e 1920 de uma unidade de pixel de número inteiro, não há a necessidade de calcular em primeiro lugar o valor de pixel 1914 de uma unidade de 1/2 pixel e então gerar os valores de pixel 1912 e 1916 da unidade de 1/4 pixel com base nos valores de pixel 1900 e 1902 das unidades de pixel de número inteiro e o valor de pixel 1914 da unidade de 1/2 pixel. Como a interpolação de imagem não precisa ser realizada sequencialmente de acordo com o tamanho de uma unidade de pixel, a interpolação de imagem pode ser realizada em alta velocidade.
[000139] De acordo com outra modalidade exemplar, um método de interpolação com base em um local de interpolação de acordo com uma modalidade exemplar pode ser combinado com um método de interpolação relacionado. Por exemplo, um valor de pixel de uma unidade de 1/2 pixel e um valor de pixel, de uma unidade de 1/4 pixel, podem ser gerados diretamente a partir dos valores de pixel 1900 e 1920 da unidade de pixel de número inteiro mediante uso de um filtro de interpolação de acordo com uma modalidade exemplar, e um valor de pixel de uma unidade de 1/8 pixel pode ser gerado partir do valor de pixel da unidade de 1/4 pixel mediante uso de um filtro de interpolação linear relacionado. De outro modo, apenas o valor de pixel da unidade de 1/2 pixel pode ser gerado diretamente a partir dos valores de pixel 1900 e 1920 da unidade de pixel de número inteiro mediante utilização do filtro de interpolação de acordo com uma modalidade exemplar, o valor de pixel da unidade de 1/4 pixel pode ser gerado a partir do valor de pixel da unidade de 1/2 pixel mediante uso do filtro de interpolação linear da técnica relacionada, e o valor de pixel da unidade de 1/8 pixel pode ser gerado a partir do valor de pixel da unidade de 1/4 pixel mediante uso do filtro de interpolação linear da técnica relacionada.
[000140] Se todos os valores de pixel 1910, 1920, 1930 e 1940 das unidades de pixel fracionárias presentes entre os valores de pixel 1900 a 1906 das unidades de pixel de número inteiro forem gerados mediante realização de interpolação, então o seletor de filtro 1410 seleciona um filtro de interpolação 1D outra vez para interpolação entre os valores de pixel 1910, 1920, 1930 e 1940 das unidades de pixel fracionárias. Nesse caso, um filtro diferente é selecionado de acordo com um local de interpolação similar a uma forma na qual um filtro é selecionado para interpolar entre os valores de pixel 1900 a 1906 das unidades de pixel de número inteiro.
[000141] O interpolador 1420 gera o valor de pixel 1950 de uma unidade de pixel fracionária correspondendo a cada um dos locais de interpolação mediante uso do filtro selecionado pelo seletor de filtro. Isto é, o valor de pixel 1950 das unidades de pixel fracionário entre os valores de pixel 1910, 1920, 1930 e 1940 das unidades de pixel fracionárias é gerado.
[000142] A Figura 19B ilustra um método de interpolação 2D utilizando um filtro de interpolação 1D, de acordo com outra modalidade exemplar. Com referência à Figura 19B, um valor de pixel em um local de interpolação 2D pode ser gerado mediante realização repetidamente de interpolação nas direções verticais e horizontais utilizando o filtro de interpolação 1D.
[000143] Especificamente, um valor de pixel Temp(i,j) é gerado mediante interpolação entre um valor de pixel REF(i,j) 1960 e um valor de pixel REF(i,1,j) 1964 de uma unidade de pixel de número inteiro na direção horizontal. Além disso, um valor de pixel Temp(i,j+1) é gerado mediante interpolação entre um valor de pixel REF(i,j+1) 1962 e um valor de pixel REF(i+1,j+1) 1966 nadireção horizontal. Então, um valor de pixel P(i,j) em um local de interpolação 2D é gerado mediante interpolação entre um valor de pixel Temp(i,j) e o valor de pixel Temp(i,j+1) na direção vertical.
[000144] O filtro de interpolação 1D pode ser um filtro para realizar DCT 1D e realizar DCT inversa 1D com base em uma pluralidade de funções básicas, cujas fases são mudadas. Além disso, o filtro de interpolação 1D pode ser um filtro escalonado como descrito acima em relação à Equação (17). Quando a interpolação é realizada as direções, horizontal e vertical, com base no filtro escalonado, a interpolação pode ser realizada mediante cálculo da seguinte Equação (21):em que F1 (αx) e F1 (ay) correspondem a F1 (a) expressona Equação (18). Contudo, como um local de interpolação vertical pode ser diferente de um local de interpolação horizontal, um filtro de interpolação 1D diferente pode ser selecionado de acordo comum local de interpolação.
[000145] Quando a interpolação horizontal e a interpolação vertical são realizadas, primeira mudança de bit é realizada de acordo com StageBits1 após a interpolação horizontal e segunda mudança de bit é realizada de acordo com StageBits2 após a interpolação vertical. (TotalBits = StageBits1 + StageBits2). Se StageBits1 for ajustado para zero, a primeira mudança de bit não é realizada.
[000146] Assim, se um fator de escalonamento para F'1(αy) for'2bit1' e um fator de escalonamento para F1(αx) for '2bit2' naEquação (21), então 'TotalBits = 'bit1 + bit2'.
[000147] A Figura 19C ilustra um método de interpolação 2Dutilizando um filtro de interpolação 1D, de acordo com outra modalidade exemplar. Com referência à Figura 19C, um valor de pixel em um local de interpolação 2D pode ser gerado mediante realização repetidamente de interpolação nas direções, vertical e horizontal, mediante uso do filtro de interpolação 1D.
[000148] Especificamente, um valor de pixel Temp(i,j) é gerado por intermédio da interpolação entre valores de pixel REF(i,j) 1960 e um valor de pixel REF(i,j+1) 1962 de uma unidade de pixel de número inteiro na direção vertical. A seguir, um Temp(i+1,j) é gerado mediante interpolação entre um valor de pixel REF(i,j+1) 1964 e um valor de pixel REF(i+1,j+1) 1966 na direção vertical. Então, um valor de pixel P(i,j) em um local de interpolação 2D é gerado mediante interpolação entre o valor de pixel Temp(i,j) e o valor de pixel Temp(i+1,j). Quando a interpolação é realizada nas direções, horizontal e vertical, com base em um filtro escalonado, a interpolação pode ser realizada mediante cálculo da seguinte Equação (22):
[000149] A Figura 20 é um fluxograma ilustrando um método de interpolação de imagem de acordo com uma modalidade exemplar. Com referência à Figura 20, na operação 2010, o equipamento de interpolação de imagem 900 da Figura 9 transforma os valores de pixel em um domínio espacial mediante uso de uma pluralidade de funções básicas tendo diferentes frequências. Os valores de pixel podem ser vários valores de pixel incluídos em um bloco predeterminado ou podem ser fileiras ou colunas de valores de pixel arranjadas na direção horizontal ou vertical.
[000150] Aqui, a transformada pode ser DCT 2D ou DCT 1D descrita acima em relação ao transformador 910 e Equações (1), (2), (3) e (7).
[000151] Na operação 2020, o equipamento de interpolação de imagem 900 muda as fases das várias funções básicas usadas na operação 2010. As fases das várias funções básicas podem ser mudadas de acordo com um local de interpolação 2D determinado por 'ax' e 'ay' ou de acordo com um local de interpolação 1D determinado por 'a'.
[000152] Na operação 2030, o equipamento de interpolação de imagem 900 transforma inversamente os coeficientes DCT, os quais foram obtidos mediante transformação dos valores de pixel no domínio espacial na operação 2010, mediante uso das várias funções básicas, cujas fases foram mudadas na operação 2020. Isto é, os valores de pixel os locais de interpolação são gerados mediante transformação inversa dos coeficientes DCT obtidos na operação 2010.
[000153] Se a transformada realizada na operação 2010 for DCT 2D, então na operação 2030, o equipamento de interpolação de imagem 900 gera valores de pixel nos locais de interpolação 2D mediante realização de DCT inversa 2D nos coeficientes DCT mediante uso de uma pluralidade de funções de cosseno, cujas fases são mudadas.
[000154] Se a transformada realizada na operação 2010 for DCT 1D realizada em fileiras ou colunas de valores de pixel, então na operação 2030, o equipamento de interpolação de imagem 900 gera valores de pixel em locais de interpolação 1D mediante realização de DCT inversa 1D nos coeficientes DCT mediante uso de uma pluralidade de funções de cosseno, cujas fases são mudadas.
[000155] As várias funções básicas, cujas fases são mudadas, e a transformada inversa com base nas mesmas, foram descritas acima em relação ao transformador inverso 920 e Equações (4), (5), (6) e (8).
[000156] A Figura 21 é um fluxograma ilustrando um método de interpolação de imagem de acordo com outra modalidade exemplar. Com referência à Figura 21, na operação 2110, o equipamento de interpolação de imagem 1400 da Figura 14 seleciona um filtro para realizar transformada e realizar a transformada inversa com base em uma pluralidade de funções básicas, cujas fases são mudadas, de acordo com um local de interpolação. Por exemplo, um filtro para realizar DCT e para realizar DCT inversa com base em uma pluralidade de funções de cosseno, cujas fases são mudadas, é selecionado de acordo com um local de interpolação. Se valores de pixel que devem ser interpolados forem incluídos em um bloco predeterminado, então um filtro para realizar DCT 2D e DCT inversa 2D é selecionado com base em 'ax' e 'ay'. Se os valores de pixel que devem ser interpolados forem fileiras e colunas de valores de pixel, então um filtro para realizar DCT 1D e DCT inversa 1D é selecionado com base em 'a'. Um dos filtros descritos acima com referência à Figura 15, Figuras 16A a 16F, e Figura 17 pode ser selecionado de acordo com um local de interpolação. Contudo, o tamanho de um filtro pode ser determinado pelos vários outros fatores sem considerar um local de interpolação como descrito acima em relação ao seletor de filtro 1410 e com referência à Figura 17.
[000157] Na operação 2120, o equipamento de interpolação de imagem 1400 realiza interpolação com base no filtro selecionado na operação 2110. Os valores de pixel em um local de interpolação 2D ou um valor de pixel em um local de interpolação 1D podem ser gerados mediante filtração de valores de pixel em um domínio espacial mediante uso do filtro selecionado na operação 2110. A interpolação realizada utilizando a filtração foi descrita acima em relação às Equações (9) a (19).
[000158] A Figura 22 é um fluxograma ilustrando um método de interpolação de imagem de acordo com outra modalidade exemplar. Com referência à Figura 22, na operação 2210, o equipamento de interpolação de imagem 1400 da Figura 14 seleciona um filtro diferente para interpolação entre valores de pixel 1900 a 1906 de unidades de pixel de número inteiro,de acordo com um local de interpolação. Na modalidade exemplaratual, valores de pixel 1910, 1920, 1930 e 1940 de pelo menos uma unidade de pixel fracionária podem ser gerados diretamente a partir dos valores de pixel 1900 a 1906 dos valores de pixel de número inteiro. Assim, o equipamento de interpolação de imagem 1400 seleciona os filtros de interpolação correspondendo aos locais de interpolação, respectivamente, na operação 2210.
[000159] Na operação 2220, o equipamento de interpolação de imagem 1400 gera os valores de pixel 1910, 1920, 1930 e 1940 da pelo menos uma unidade de pixel fracionária mediante interpolação entre os valores de pixel 1900 a 1906 das unidades de pixel de número inteiro, com base no filtro diferente selecionado de acordo com cada um dos locais de interpolação na operação 2210.
[000160] Na operação 2230, o equipamento de interpolação de imagem 1400 seleciona um filtro diferente para interpolação entre os valores de pixel 1910, 1920, 1930 e 1940 da pelo menos uma unidade de pixel fracionária gerada na operação 2220, de acordo com um local de interpolação. Um filtro diferente para gerar os valores de pixel 1950 de outra unidade de pixel fracionária ilustrada na Figura 19, os quais estão presentes entre os valores de pixel 1910, 1920, 1930 e 1940 da pelo menos uma unidade de pixel fracionária, é selecionado de acordo com um local de interpolação.
[000161] Na operação 2240, o equipamento de interpolação de imagem 1400 gera os valores de pixel 1950 de outra unidade de pixel fracionária mediante interpolação dos valores de pixel 1910, 1920, 1930 e 1940 da pelo menos uma unidade de pixel fracionária, com base no filtro selecionado na operação 2230.
[000162] Embora modalidades exemplares tenham sido particularmente mostradas e descritas acima, será entendido por aqueles de conhecimento comum na técnica que diversas alterações em forma e detalhes podem ser feitas nas mesmas sem se afastar da essência e escopo do conceito inventivo conforme definido pelas reivindicações anexas e seus equivalentes. Além disso, um sistema de acordo com uma modalidade exemplar pode ser incorporado como código legível por computador em um meio de gravação legível por computador.
[000163] Por exemplo, cada um de um equipamento para codificar uma imagem, um equipamento para decodificar uma imagem, um codificador de imagem, e um decodificador de imagem; de acordo com modalidades exemplares, conforme ilustrado nas Figuras 1, 2, 4, 5, 9 e 14; podem incluir um barramento acoplado às suas unidades, pelo menos um processador conectado ao barramento, e memória que é conectada ao barramento para armazenar um comando ou uma mensagem recebida ou gerada e é acoplada a pelo menos um processador para executar o comando.
[000164] O meio de gravação legível por computador pode ser qualquer dispositivo de armazenamento de dados que possa armazenar os dados para serem lidos por um sistema de computador. Exemplos do meio de gravação legível por computador incluem memória de leitura (ROM), memória de acesso aleatório (RAM), disco a laser (CD-ROM), fitas magnéticas, disquetes, e dispositivos óticos de armazenamento de dados. O meio de gravação legível por computador também pode ser distribuído através de sistemas de computador acoplados à rede de modo que o código legível por computador pode ser armazenado e executado de uma forma distribuída.
Claims (1)
1. APARELHO PARA INTERPOLAR UMA IMAGEM PARA INTER- PREDIÇÃO, o aparelho caracterizado pelo fato de que compreende:um seletor de filtro configurado para selecionar coeficientes de filtro de um primeiro filtro de interpolação, para interpolar de acordo com um primeiro local de interpolação incluindo pelo menos uma de localização 2/4 de pixel, de localização 1/4 de pixel e de localização 3/4 de pixel, e selecionar coeficientes de filtro de um segundo filtro de interpolação, para interpolar de acordo com um segundo local de interpolação incluindo pelo menos uma de localização 1/8 de pixel, de localização 3/8 de localização de pixel e de localização 4/8 de pixel; eum interpolador configurado para gerar pelo menos um valor de pixel de uma unidade de 1/4 de pixel mediante aplicar o primeiro filtro de interpolação a um primeiro conjunto de valores de pixel de uma unidade de pixel inteiro de uma primeira imagem de referência mediante usar os coeficientes de filtro selecionados da primeira filtro de interpolação e gerar pelo menos um valor de pixel de uma unidade de 1/8 de pixel mediante aplicar o segundo filtro de interpolação a um segundo conjunto de valores de pixel de uma unidade de pixel inteiro de uma segunda imagem de referência mediante usar os coeficientes de filtro selecionados do segundo filtro de interpolação,em que: quando o primeiro local de interpolação é o local de 2/4 pixels, o primeiro filtro de interpolação é um filtro de interpolação de 8 derivações que compreende oito coeficientes de filtro: {-1, 4, -11, 40, 40, -11, 4, - 1}, quando o primeiro local de interpolação é um local de 1/4 pixel ou um local de 3/4 pixel, pelo menos um valor de pixel é gerado mediante aplicar o primeiro filtro de interpolação ao primeiro conjunto de valores de pixel das unidades de pixel inteiras, sem usar um valor de pixel gerado de localização de 2/4 pixels, equando a segunda localização de interpolação é a localização de 4/8 pixels, o segundo filtro de interpolação é um filtro de interpolação de 4 torneiras que compreende quatro coeficientes de filtro: {-4, 36, 36, -4}.
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32084710P | 2010-04-05 | 2010-04-05 | |
US61/320,847 | 2010-04-05 | ||
US36749810P | 2010-07-26 | 2010-07-26 | |
US61/367,498 | 2010-07-26 | ||
KR1020100095956A KR101682147B1 (ko) | 2010-04-05 | 2010-10-01 | 변환 및 역변환에 기초한 보간 방법 및 장치 |
KR10-2010-0095956 | 2010-10-01 | ||
PCT/KR2011/002388 WO2011126287A2 (en) | 2010-04-05 | 2011-04-05 | Method and apparatus for performing interpolation based on transform and inverse transform |
BR112012025307-7A BR112012025307B1 (pt) | 2010-04-05 | 2011-04-05 | Método de interpolar uma imagem, equipamento para interpolar uma imagem, e meio de gravação legível por computador |
Publications (1)
Publication Number | Publication Date |
---|---|
BR122021004637B1 true BR122021004637B1 (pt) | 2022-01-11 |
Family
ID=80053489
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122021004645-0A BR122021004645B1 (pt) | 2010-04-05 | 2011-04-05 | Aparelho para compensação de movimento |
BR122021004637-9A BR122021004637B1 (pt) | 2010-04-05 | 2011-04-05 | Aparelho para interpolar uma imagem para inter-predição |
BR122021004646-8A BR122021004646B1 (pt) | 2010-04-05 | 2011-04-05 | Método de interpolação de uma imagem para inter-predição |
BR122021004640-9A BR122021004640B1 (pt) | 2010-04-05 | 2011-04-05 | Método de compensação de movimento |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122021004645-0A BR122021004645B1 (pt) | 2010-04-05 | 2011-04-05 | Aparelho para compensação de movimento |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR122021004646-8A BR122021004646B1 (pt) | 2010-04-05 | 2011-04-05 | Método de interpolação de uma imagem para inter-predição |
BR122021004640-9A BR122021004640B1 (pt) | 2010-04-05 | 2011-04-05 | Método de compensação de movimento |
Country Status (1)
Country | Link |
---|---|
BR (4) | BR122021004645B1 (pt) |
-
2011
- 2011-04-05 BR BR122021004645-0A patent/BR122021004645B1/pt active IP Right Grant
- 2011-04-05 BR BR122021004637-9A patent/BR122021004637B1/pt active IP Right Grant
- 2011-04-05 BR BR122021004646-8A patent/BR122021004646B1/pt active IP Right Grant
- 2011-04-05 BR BR122021004640-9A patent/BR122021004640B1/pt active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
BR122021004640B1 (pt) | 2022-01-11 |
BR122021004645B1 (pt) | 2022-01-11 |
BR122021004646B1 (pt) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112012025307B1 (pt) | Método de interpolar uma imagem, equipamento para interpolar uma imagem, e meio de gravação legível por computador | |
JP7335315B2 (ja) | 画像予測方法および関連装置 | |
ES2701978T3 (es) | Procedimiento de decodificación usando un filtro de interpolación | |
JP2023179682A (ja) | 隣接サンプル減少を伴う線形またはアフィン変換を使用するイントラ予測 | |
WO2012161444A2 (ko) | 화면 내 예측 방법 및 장치 | |
BR112013000554A2 (pt) | método para interpolar imagem, e aparelho para interpolar imagem | |
BR122013019016A2 (pt) | método de decodificação de uma imagem | |
BR112014009433B1 (pt) | Método de decodificação de vídeo | |
BR112012017406B1 (pt) | Método para codificar uma imagem, aparelho para codificar uma imagem, método para decodificar uma imagem, aparelho para decodificar uma imagem, e mídia de gravação legível de computador | |
BR122013019725A2 (pt) | aparelho para decodificar imagens | |
BR122021004637B1 (pt) | Aparelho para interpolar uma imagem para inter-predição | |
JP5202558B2 (ja) | イントラ予測装置、符号化器、復号器及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B350 | Update of information on the portal [chapter 15.35 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 05/04/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |