BR122021005436B1 - Aparelho para compensação de movimento - Google Patents

Aparelho para compensação de movimento Download PDF

Info

Publication number
BR122021005436B1
BR122021005436B1 BR122021005436-3A BR122021005436A BR122021005436B1 BR 122021005436 B1 BR122021005436 B1 BR 122021005436B1 BR 122021005436 A BR122021005436 A BR 122021005436A BR 122021005436 B1 BR122021005436 B1 BR 122021005436B1
Authority
BR
Brazil
Prior art keywords
unit
encoding
interpolation
pel
filter
Prior art date
Application number
BR122021005436-3A
Other languages
English (en)
Inventor
Alexander Alshin
Elena Alshina
Jianle Chen
Woo-jin Han
Nikolay Shlyakhov
Yoon-mi HONG
Original Assignee
Samsung Electronics Co., Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co., Ltd filed Critical Samsung Electronics Co., Ltd
Publication of BR122021005436B1 publication Critical patent/BR122021005436B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • G06F17/175Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Television Systems (AREA)

Abstract

É fornecido um método para interpolar uma imagem determinando coeficientes de filtro de interpolação. Um método para interpolar uma imagem em contrapartida a suavização inclui diferentemente selecionar um filtro de interpolação com base em uma localização de interpolação de unidade sub-pel e uma suavidade dentre filtros de interpolação para gerar pelo menos um valor de pixel de unidade sub-pel localizado entre pixels de unidade inteira de pel; e gerar o pelo menos um valor de pixel de unidade sub-pel interpolando valores de pixel dos pixels de unidade interia de pel utilizando o filtro de interpolação selecionado.

Description

CAMPO TÉCNICO
[0001] A presente invenção se refere à codificação de predição utilizando compensação de movimento.
FUNDAMENTOS DA TÉCNICA
[0002] Nos métodos de codificação e de decodificação de imagem, típicos, para codificar uma imagem, uma ilustração é dividida em macro blocos. Após isso, codificação de predição é realizada em cada macro bloco mediante uso de predição inter, ou predição intra.
[0003] Predição inter se refere a um método de compactar uma imagem mediante remoção de redundância temporal entre imagens e seu exemplo representativo é a codificação de estimação de movimento. Na codificação de estimação de movimento, cada bloco de uma ilustração atual é predito mediante uso de pelo menos uma ilustração de referência. Um bloco de referência que é mais similar a um bloco atual é encontrado em uma faixa de busca predeterminada mediante uso de uma função de avaliação predeterminada.
[0004] Um bloco atual é predito com base em um bloco de referência, e um bloco residual obtido mediante subtração a partir do bloco atual de um bloco de predição gerado como um resultado de predição é codificado. Nesse caso, para realizar com mais exatidão a predição, a interpolação é realizada em uma faixa de busca de ilustração de referência, pixels de unidade sub-pel menores do que pixels de unidade pel de número inteiro são gerados, e a predição inter é realizada nos pixels de unidade sub-pel gerados.
REVELAÇÃO DA INVENÇÃO PROBLEMA TÉCNICO
[0005] A presente invenção provê um método e aparelho para determinar coeficientes de filtro de interpolação, apropriados em contrapartida às características de imagem de modo a gerar um pixel de unidade sub-pel mediante interpolação de pixels de unidade inteira de pel.
SOLUÇÃO TÉCNICA
[0006] De acordo com um aspecto da presente invenção, é provido um método de interpolar uma imagem em contrapartida à suavização, o método incluindo selecionar de forma diferente um filtro de interpolação com base em um local de interpolação de unidade sub-pel e uma suavidade dentre os filtros de interpolação para gerar pelo menos um valor de pixel de unidade sub-pel entre pixels de unidade inteira de pel; e gerar o pelo menos um valor de pixel de unidade sub-pel mediante interpolação de valores de pixel dos pixels de unidade inteira de pel mediante uso do filtro de interpolação selecionado.
EFEITOS VANTAJOSOS
[0007] Quando um vídeo é codificado e decodificado, como uma imagem de alta qualidade é gerada mediante interpolação de um quadro de referência e estimação e compensação de movimento são realizadas com base na imagem de alta qualidade, a exatidão da predição inter pode ser aumentada. Além disso, como um filtro de interpolação de suavização é usado para reduzir os componentes de alta frequência em um resultado de interpolação e, assim, um resultado de interpolação mais suave é obtido, os componentes de alta frequência podem ser removidos e a eficiência da codificação de imagem e da decodificação de imagem pode ser aperfeiçoada.
BREVE DESCRIÇÃO DOS DESENHOS
[0008] A Figura 1 é um diagrama de blocos de um aparelho de interpolação de imagem de acordo com uma modalidade da presente invenção;
[0009] A Figura 2 é um diagrama para descrever uma relação entre uma unidade inteira de pel e uma unidade sub-pel;
[00010] A Figura 3 é um diagrama ilustrando pixels adjacentes de unidade inteira de pel a serem referidas de modo a determinar um valor de pixel de unidade sub-pel, de acordo com uma modalidade da presente invenção;
[00011] As Figuras 4A a 4C são diagramas ilustrando exemplos de pixels de unidade inteira de pel a serem referidas de modo a se determinar um valor de pixel de unidade sub-pel, de acordo com uma modalidade da presente invenção;
[00012] A Figura 5 é um gráfico de um parâmetro de suavização de um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção;
[00013] A Figura 6 é um gráfico de uma função spline utilizável por um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção;
[00014] A Figura 7 é um fluxograma de um método de interpolação de imagem de acordo com uma modalidade da presente invenção;
[00015] As Figuras 8A a 8C são tabelas mostrando coeficientes de filtro dos filtros de interpolação de 12 derivações determinados com base em um parâmetro de suavização e um local de interpolação, de acordo com as modalidades da presente invenção;
[00016] As Figuras 9A a 9C são tabelas mostrando coeficientes de filtro dos filtros de interpolação de 6 derivações determinados com base em um parâmetro de suavização e um local de interpolação, de acordo com as modalidades da presente invenção;
[00017] A Figura 10 é uma tabela mostrando os coeficientes de filtro dos filtros de interpolação de 6 derivações determinados para pixels de croma com base em um parâmetro de suavização e um local de interpolação, de acordo com uma modalidade da presente invenção;
[00018] A Figura 11 é uma tabela mostrando coeficientes de filtro dos filtros de interpolação de suavização determinados de forma diferente com base em um componente de cor e um local de interpolação de imagem, de acordo com uma modalidade da presente invenção;
[00019] As Figuras 12A a 12C são tabelas mostrando os coeficientes de filtro dos filtros de interpolação de suavização com base em um local de interpolação de imagem e um fator de escala, de acordo com as modalidades da presente invenção;
[00020] A Figura 13A é um diagrama de blocos de um aparelho de codificação de vídeo utilizando um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção;
[00021] A Figura 13B é um diagrama de blocos de um aparelho de codificação de vídeo utilizando um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção;
[00022] A Figura 14A é um fluxograma de um método de codificação de imagem utilizando um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção;
[00023] A Figura 14B é um fluxograma de um método de decodificação de imagem utilizando um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção;
[00024] A Figura 15 é um diagrama para descrever um conceito de unidades de codificação de acordo com uma modalidade da presente invenção;
[00025] A Figura 16 é um diagrama de blocos de um codificador de imagem com base nas unidades de codificação, de acordo com uma modalidade da presente invenção;
[00026] A Figura 17 é um diagrama de blocos de um decodificador de imagem com base nas unidades de codificação, de acordo com uma modalidade da presente invenção;
[00027] A Figura 18 é um diagrama ilustrando unidades de codificação mais profundas de acordo com as profundidades, e partições, de acordo com uma modalidade da presente invenção;
[00028] A Figura 19 é um diagrama para descrever uma relação entre uma unidade de codificação e unidades de transformação, de acordo com uma modalidade da presente invenção;
[00029] A Figura 20 é um diagrama para descrever informação de codificação das unidades de codificação correspondendo a uma profundidade codificada, de acordo com uma modalidade da presente invenção;
[00030] A Figura 21 é um diagrama de unidades de codificação mais profundas de acordo com as profundidades, de acordo com uma modalidade da presente invenção;
[00031] As Figuras 22 a 24 são diagramas para descrever uma relação entre as unidades de codificação, unidades de predição, e unidades de transformação, de acordo com uma modalidade da presente invenção;
[00032] A Figura 25 é um diagrama para descrever uma relação entre uma unidade de codificação, uma unidade de predição ou uma partição, e uma unidade de transformação, de acordo com uma informação de modo de codificação da Tabela 1;
[00033] A Figura 26 é um fluxograma de um método de codificação de vídeo utilizando um filtro de interpolação de suavização com base nas unidades de codificação tendo uma estrutura de árvore, de acordo com uma modalidade da presente invenção; e
[00034] A Figura 27 é um fluxograma de um método de decodificação de vídeo utilizando um filtro de interpolação de suavização com base nas unidades de codificação tendo uma estrutura de árvore, de acordo com uma modalidade da presente invenção.
MELHOR MODO PARA REALIZAÇÃO DA INVENÇÃO
[00035] De acordo com um aspecto da presente invenção, é provido um método de interpolar uma imagem em contrapartida à suavização, o método incluindo selecionar de forma diferente um filtro de interpolação com base em um local de interpolação de unidade sub-pel e uma suavização dentre os filtros de interpolação para gerar um valor de pixel de unidade sub-pel localizado entre pixels de unidade inteira de pel; e gerar o pelo menos um valor de pixel de unidade sub-pel mediante interpolação de valores de pixel dos pixels de unidade inteira de pel mediante uso do filtro de interpolação selecionado.
[00036] O filtro de interpolação pode incluir coeficientes de filtro para transformar os pixels de unidade inteira de pel com base em uma pluralidade de funções básicas e transformando inversamente uma pluralidade de coeficientes geradores como um resultado da transformação.
[00037] O filtro de interpolação pode incluir os coeficientes de filtro tendo a suavidade determinada com base em uma distância entre o local de interpolação e os pixels de unidade inteira de pel. Os filtros de interpolação podem incluir coeficientes de filtro tendo a suavidade determinada com base em uma distância entre o local de interpolação e os pixels de unidade inteira de pel adjacentes ao local de interpolação.
[00038] Para interpolar os pixels de unidade inteira de pel em um domínio espacial, o filtro de interpolação pode incluir coeficientes de filtro obtidos mediante combinação de um filtro para realizar transformação e transformação inversa usando a pluralidade de funções básicas, e uma função de janela, e a função de janela pode ser simétrica com relação ao local de interpolação.
[00039] Para interpolar os pixels de unidade inteira de pel em um domínio espacial, o filtro de interpolação pode incluir coeficientes de filtro obtidos mediante combinação de um filtro para realizar transformação e transformação inversa utilizando uma pluralidade de funções básicas, e um parâmetro de suavização, e o parâmetro de suavização pode controlar pelo menos uma de uma velocidade de suavização e uma faixa de suavização.
[00040] O filtro de interpolação pode incluir coeficientes de filtro com base em uma função spline. O filtro de interpolação pode incluir coeficientes de filtro para maximizar uma resposta de baixa frequência do filtro de interpolação com base em uma função polinomial.
[00041] A seleção do filtro de interpolação pode incluir a seleção de um filtro de interpolação incluindo coeficientes de filtro escalados para números inteiros, dentre os filtros de interpolação, e a geração do pelo menos um valor de pixel de unidade sub-pel pode incluir a normalização do pelo menos um valor de pixel de unidade sub-pel gerado mediante uso do filtro de interpolação selecionado, com base em um fator de escala.
[00042] A seleção do filtro de interpolação pode incluir selecionar de forma diferente um filtro de interpolação com base nas características de pixel dentre os filtros de interpolação, e geração do pelo menos um valor de pixel de unidade sub-pel pode incluir a geração de pelo menos um valor de pixel de unidade sub-pel mediante uso do filtro de interpolação diferentemente selecionado com base nas características de pixel.
[00043] De acordo com outro aspecto da presente invenção, é provido um aparelho para interpolar uma imagem em contrapartida à suavização, o aparelho incluindo um seletor de filtro para selecionar de forma diferente um filtro de interpolação com base em um local de interpolação de unidade sub-pel e uma suavidade dentre os filtros de interpolação para gerar pelo menos um valor de pixel de unidade sub-pel localizado entre pixels de unidade inteira de pel; e um interpolador para gerar o pelo menos um valor de pixel de unidade sub-pel mediante interpolação de valores de pixel dos pixels de unidade inteira de pel mediante uso do filtro de interpolação selecionado.
[00044] De acordo com outro aspecto da presente invenção, é provido um método de interpolar uma imagem em contrapartida de um componente de cor, o método incluindo selecionar de forma diferente um filtro de interpolação com base em um local de interpolação de unidade sub-pel e um componente de cor de um pixel atual dentre os filtros de interpolação para gerar pelo menos um valor de pixel de unidade sub-pel localizado entre os pixels de unidade inteira de pel; e gerar o pelo menos um valor de pixel de unidade sub-pel mediante interpolação de valores de pixel dos pixels de unidade inteira de pel mediante uso do filtro de interpolação selecionado.
[00045] A seleção do filtro de interpolação pode incluir, para interpolar um pixel croma, selecionar um filtro de interpolação tendo uma suavidade mais forte do que aquela de um filtro de interpolação para um pixel luma, dentre os filtros de interpolação.
[00046] O filtro de interpolação tendo a suavidade mais forte do que aquela do filtro de interpolação para um pixel luma pode ser um de um filtro incluindo coeficientes de filtro para suavizar os pixels de unidade inteira de pel, transformar os pixels de unidade inteira de pel suavizados mediante uso de uma pluralidade de funções básicas, e transformar inversamente vários coeficientes gerados como um resultado da transformação; um filtro obtido mediante combinação dos coeficientes de filtro para realizar transformação e transformação inversa mediante uso da pluralidade de funções básicas, e coeficientes de função de janela para realizar filtração passa-baixa; um filtro incluindo coeficientes de filtro para suavizar mais intensamente os pixels de unidade inteira de pel, limítrofes com base em uma condição limítrofe de uma função spline; e um filtro incluindo coeficientes de filtro para maximizar uma resposta de baixa frequência de um filtro de interpolação com base em uma função polinomial.
[00047] De acordo com outro aspecto da presente invenção, é provido um aparelho para interpolar uma imagem em contrapartida de um componente de cor, o aparelho incluindo um seletor de filtro para selecionar diferentemente um filtro de interpolação com base em um local de interpolação de unidade sub-pel e um componente de cor de um pixel atual dentre os filtros de interpolação para gerar pelo menos um valor de pixel de unidade sub-pel localizado entre os pixels de unidade inteira de pel; e um interpolador para gerar o pelo menos um valor de pixel de unidade sub-pel mediante interpolação dos valores de pixel dos pixels de unidade inteira de pel mediante uso do filtro de interpolação selecionado.
[00048] De acordo com outro aspecto da presente invenção, é provido um codificador de vídeo utilizando um filtro de interpolação de imagem, o codificador de vídeo incluindo um codificador para selecionar diferentemente um filtro de interpolação com base em um local de interpolação de unidade sub-pel e uma suavidade dentre os filtros de interpolação armazenados no codificador de vídeo; com relação a cada bloco de uma ilustração de entrada, realizar codificação de predição para gerar pelo menos um valor de pixel de unidade sub-pel mediante interpolação de valores de pixel dos pixels de unidade inteira de pel mediante uso do filtro de interpolação selecionado, e realizar transformação e quantização em um resultado de predição da codificação de predição; uma unidade de saída para produzir um fluxo de bits gerado mediante realização de codificação de entropia em coeficientes de transformação quantizados e informação de codificação; e um meio de armazenamento para armazenar os coeficientes de filtro dos filtros de interpolação.
[00049] De acordo com outro aspecto da presente invenção, é provido um decodificador de vídeo utilizando um filtro de interpolação de imagem, o decodificador de vídeo incluindo um receptor e extrator para receber um fluxo de bits codificado de um vídeo e extrair informação de codificação e dados codificados de uma imagem do vídeo mediante realização de decodificação de entropia e análise do fluxo de bits; um decodificador para realizar quantização inversa e transformação inversa nos coeficientes de transformação quantizados dos dados codificados de um bloco atual das imagens, selecionando diferentemente um filtro de interpolação com base em um local de interpolação de unidade sub-pel e uma suavidade dentre os filtros de interpolação armazenados no decodificador de vídeo; realizando decodificação de predição para gerar pelo menos um valor de pixel de unidade sub-pel mediante interpolação de valores de pixel dos pixels de unidade inteira de pel mediante uso do filtro de interpolação selecionado, e reconstruindo a ilustração; e um meio de armazenamento para armazenar os coeficientes de filtro dos filtros de interpolação.
[00050] De acordo com outro aspecto da presente invenção, é provido um meio de gravação legível por computador tendo gravado no mesmo um programa de computador para executar o método acima.
MODO PARA A INVENÇÃO
[00051] Na descrição seguinte, uma “imagem” pode se referir de forma abrangente a uma imagem em movimento tal como um vídeo, assim como uma imagem estática.
[00052] Interpolação de imagem considerando a suavização, de acordo com uma modalidade da presente invenção, é revelada com referência às Figuras 1 a 12C. Além disso, codificação e decodificação de vídeo utilizando filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção, são revelados com referência às Figuras 13A a 27. Especificamente, codificação e decodificação de vídeo utilizando um filtro de interpolação de suavização com base nas unidades de codificação tendo uma estrutura de árvore, de acordo com uma modalidade da presente invenção, são reveladas com referência às Figuras 15 a 27.
[00053] A interpolação de imagem considerando suavização, e um filtro de interpolação de suavização; de acordo com as modalidades da presente invenção; serão descritos agora em detalhe com referência às Figuras 1 a 12C.
[00054] A Figura 1 é um diagrama de blocos de um aparelho de interpolação de imagem 10 de acordo com uma modalidade da presente invenção.
[00055] aparelho de interpolação de imagem 10 considerando suavização inclui um seletor de filtro 12 e um interpolador 14. Operações do seletor de filtro 12 e do interpolador 14 do aparelho de interpolação de imagem 10 podem ser controladas de forma cooperativa mediante um processador de codificação de vídeo, uma unidade de processamento central (CPU), e um processador gráfico.
[00056] aparelho de interpolação de imagem 10 pode receber uma imagem de entrada e pode gerar valores de pixel de unidade sub-pel mediante interpolação de pixels de unidade inteira de pel. A imagem de entrada pode ser uma sequência de ilustrações, uma ilustração, um quadro, ou blocos de um vídeo.
[00057] seletor de filtro 12 pode selecionar diferentemente um filtro de interpolação para gerar pelo menos um valor de pixel de unidade sub-pel localizado entre unidades inteiras de pel, com base em um local de interpolação de unidade sub-pel e uma suavidade.
[00058] interpolador 14 pode interpolar pixels de unidade inteira de pel adjacentes ao local de interpolação de unidade sub-pel mediante uso do filtro de interpolação selecionado pelo seletor de filtro 12, desse modo gerando valores de pixel de unidade sub-pel. Filtração de interpolação dos pixels de unidade inteira de pel para gerar valores de pixel de unidade sub-pel pode incluir filtração de interpolação de valores de pixel de referência de unidade inteira de pel incluindo pixels de unidade inteira de pel adjacentes ao local de interpolação de unidade sub-pel em uma região suportada pelo filtro de interpolação.
[00059] Um filtro de interpolação de acordo com uma modalidade pode incluir coeficientes de filtro para transformar pixels de referência de unidade inteira de pel com base em uma pluralidade de funções básicas, e para transformar inversamente uma pluralidade de coeficientes gerados como um resultado de transformação.
[00060] O filtro de interpolação pode ser um filtro unidimensional ou um filtro bidimensional. Se o filtro de interpolação selecionado for um filtro unidimensional, o interpolador 14 pode realizar seqüencialmente a filtração mediante uso de filtros de interpolação unidimensionais em duas ou mais direções, gerando assim um valor atual de pixel de unidade sub-pel.
[00061] Um filtro de interpolação de suavização de acordo com uma modalidade pode ter uma suavidade determinada com base em uma distância entre um local de interpolação e pixels de unidade inteira de pel.
[00062] Um filtro de interpolação de acordo com uma modalidade pode incluir diferentes coeficientes de filtro com base em um local de interpolação de unidade sub-pel e uma suavidade. Em seguida, um filtro de interpolação determinado em contrapartida a um local de interpolação de unidade sub-pel e uma suavidade é referido como um filtro de interpolação de suavização.
[00063] Um filtro de interpolação de suavização de acordo com uma modalidade pode ter uma suavidade determinada com base em uma distância entre um local de interpolação e pixels de unidade inteira de pel adjacentes ao local de interpolação.
[00064] Além disso, o filtro de interpolação de suavização pode incluir coeficientes de filtro para suavizar mais intensamente os pixels de referência de unidade inteira de pel afastados do local de interpolação.
[00065] Para interpolar os pixels de unidade inteira de pel em um domínio espacial, o filtro de interpolação de suavização pode ser obtido mediante combinação de coeficientes de filtro para realizar transformação e transformação inversa mediante uso de uma pluralidade de funções básicas, e coeficientes de função de janela para realizar filtração passa-baixa.
[00066] Uma função de janela de acordo com uma modalidade pode ser simétrica com relação a um local de interpolação. O filtro de interpolação de suavização obtido mediante combinação dos coeficientes de filtro para realizar transformação e transformação inversa e coeficientes de função de janela para realizar filtração passa-baixa podem incluir coeficientes de filtro para proporcionar um peso grande a um pixel de referência de unidade inteira de pel próximo ao local de interpolação e proporcionar um peso pequeno a um pixel de referência de unidade inteira de pel afastado do local de interpolação.
[00067] O filtro de interpolação de suavização pode incluir coeficientes de filtro para suavizar pixels de referência de unidade inteira de pel transformando os pixels de referência de unidade inteira de pel suavizados mediante uso de uma pluralidade de funções básicas, e transformar inversamente uma pluralidade de coeficientes gerados como um resultado da transformação.
[00068] O filtro de interpolação de suavização é um filtro de interpolação em um domínio espacial, e pode incluir coeficientes de filtro obtidos mediante combinação de um filtro de interpolação para realizar transformação e transformação inversa, e um parâmetro de suavização. O parâmetro de suavização pode controlar pelo menos uma de uma velocidade de suavização e uma faixa de suavização.
[00069] O filtro de interpolação de suavização pode incluir coeficientes de filtro baseados em uma função spline. Isto é, uma função de base de transformação e transformação inversa para determinar coeficientes de filtro de interpolação pode ser uma função spline. Para obter um resultado de interpolação mais suave, o filtro de interpolação de suavização pode incluir coeficientes de filtro determinados mediante uso de uma função spline.
[00070] De acordo com uma modalidade, um filtro de interpolação de suavização com base em uma função spline pode incluir coeficientes de filtro para suavizar mais intensamente pixels de referência de unidade inteira de pel, limítrofes com base em uma condição limítrofe da função spline.
[00071] De acordo com outra modalidade, se uma função de base de transformação e transformação inversa for uma função polinomial, um filtro de interpolação de suavização pode incluir coeficientes de filtro para maximizar uma resposta de baixa frequência de um filtro de interpolação com base na função polinomial.
[00072] Um filtro de interpolação de suavização de acordo com uma modalidade pode incluir diferentes coeficientes de filtro com base em um comprimento de filtro assim como um local de interpolação de unidade sub-pel e uma suavidade.
[00073] Além disso, o filtro de interpolação de suavização pode incluir diferentes coeficientes de filtro com base em um fator de escala de um resultado de interpolação assim como um local de interpolação de unidade sub-pel, uma suavidade e um comprimento de filtro. O seletor de filtro 12 pode selecionar um filtro de interpolação de suavização incluindo coeficientes de filtro escalados para números inteiros. O interpolador 14 normaliza os valores de pixel gerados mediante uso do filtro de interpolação de suavização selecionado pelo seletor de filtro 12.
[00074] Além disso, o seletor de filtro 12 pode selecionar diferentemente um filtro de interpolação com base nas características de pixel. O interpolador 14 pode gerar valores de pixel de unidade sub-pel mediante uso do filtro de interpolação selecionado diferentemente com base nas características de pixel.
[00075] O filtro de interpolação selecionável pelo seletor de filtro 12 pode incluir um filtro de interpolação de suavização e um filtro de interpolação geral que não considera a suavização. Assim, com base nas características de imagem, o seletor de filtro 12 pode selecionar um filtro de interpolação geral que não considera de forma alguma a suavização.
[00076] Por exemplo, de acordo com outra modalidade, o aparelho de interpolação de imagem 10 pode realizar interpolação de imagem mediante uso de diferentes filtros de interpolação de acordo com os componentes de cor.
[00077] De acordo com outra modalidade, o seletor de filtro 12 pode selecionar diferentemente um filtro de interpolação com base no local de interpolação de unidade sub-pel e um componente de cor de um pixel atual. De acordo com outra modalidade, o interpolador 14 pode interpolar pixels de unidade inteira de pel mediante uso do filtro de interpolação selecionado, gerando assim pelo menos um valor de pixel de unidade sub-pel.
[00078] Por exemplo, o seletor de filtro 12 pode determinar diferentemente um filtro de interpolação para um componente de luma e um filtro de interpolação para um componente croma.
[00079] Para interpolar um pixel croma, o seletor de filtro 12 pode selecionar um filtro de interpolação de suavização tendo uma suavidade mais intensa do que aquela de um filtro de interpolação para um pixel luma.
[00080] Por exemplo, para interpolar um pixel croma, um filtro de interpolação incluindo coeficientes de filtro determinados com base em uma função spline ou um filtro de interpolação incluindo coeficientes de filtro determinados com base em uma função polinomial pode ser selecionado. Os coeficientes de filtro determinados com base em uma função spline podem suavizar mais intensamente os pixels de unidade inteira de pel limítrofes com base em uma condição limítrofe da função spline. O filtro de interpolação determinado com base em uma função polinomial pode incluir coeficientes de filtro para maximizar uma resposta de baixa frequência.
[00081] Além disso, para interpolar um pixel croma, um filtro de interpolação incluindo coeficientes de filtro determinados com base em um parâmetro de suavização tendo uma suavidade mais intensa do que aquela de um filtro de interpolação para um pixel luma, ou um filtro de interpolação incluindo coeficientes de filtro combinados com uma função janela para remover mais componentes de alta frequência do que um filtro de interpolação para um pixel luma pode ser selecionado.
[00082] Para obter um resultado de interpolação suave de um componente croma, um filtro de interpolação de suavização obtido mediante combinação de coeficientes de filtro para realizar transformação e transformação inversa com base em uma pluralidade de funções de base, e coeficientes de função janela para realizar filtração passa-baixa pode ser selecionado.
[00083] A interpolação de imagem é usada para transformar uma imagem de baixa qualidade em uma imagem de alta qualidade, para transformar uma imagem entrelaçada em uma imagem progressiva, ou para amostrar ascendentemente uma imagem de baixa qualidade par uma imagem de alta qualidade. Além disso, quando um aparelho de codificação de vídeo codifica uma imagem, um estimador de movimento e compensador podem realizar predição inter mediante uso de um quadro de referência interpolado. A exatidão de predição inter pode ser aumentada mediante interpolação de um quadro de referência para gerar uma imagem de alta qualidade, e realizar estimação e compensação de movimento com base na imagem de alta qualidade. Similarmente, quando um aparelho de decodificação de imagem decodifica uma imagem, um compensador de movimento pode realizar compensação de movimento mediante uso de um quadro de referência interpolado, aumentando assim a exatidão de predição inter.
[00084] Além disso, o filtro de interpolação de suavização usado pelo aparelho de interpolação de imagem 10 pode obter um resultado de interpolação suave mediante redução de componentes de alta frequência em um resultado de interpolação utilizando um filtro de interpolação. Como os componentes de alta frequência reduzem a eficiência de compactação de imagem, a eficiência de codificação e decodificação de imagem também pode ser aperfeiçoada mediante realização de interpolação de imagem de suavidade ajustável.
[00085] A Figura 2 é um diagrama para descrever uma relação entre uma unidade inteira de pel e uma unidade sub-pel.
[00086] Com referência à Figura 2, o aparelho de interpolação de imagem 10 gera valores de pixel de locais “X” mediante interpolação de valores de pixel de unidade inteira de pel de locais “0” de um bloco predeterminado 20 em um domínio espacial. Os valores de pixel dos locais “X” são valores de pixel de unidade sub-pel de locais de interpolação determinados por αx e αy. Embora a Figura 2 ilustre que o bloco predeterminado 20 é um bloco 4x4, será facilmente entendido por aqueles de conhecimento comum na técnica que o tamanho de bloco não é limitado a 4x4 e pode ser maior ou menor do que 4x4.
[00087] No processamento de vídeo, um vetor de movimento é usado para realizar compensação de movimento e predição em uma imagem atual. Com base na codificação de predição, uma imagem previamente decodificada é referida de modo a predizer uma imagem atual, e um vetor de movimento indica um ponto predeterminado de uma imagem de referência. Portanto, um vetor de movimento indica uma unidade inteira de pel de uma imagem de referência.
[00088] Contudo, um pixel a ser referido por uma imagem atual pode estar localizado entre pixels de unidade inteira de pel de uma imagem de referência. Tal local é referido como um local de unidade sub-pel. Como um pixel não existe em um local de unidade sub-pel, um valor de pixel de unidade sub-pel é meramente predito mediante uso de valores de pixel de unidade inteira de pel. Em outras palavras, um valor de pixel de unidade sub-pel é estimado mediante interpolação de pixels de unidade inteira de pel.
[00089] Um método de interpolar pixels de unidade inteira de pel será descrito agora em detalhe com referência às Figuras 3, e 4A a 4C.
[00090] A Figura 3 é um diagrama ilustrando pixels adjacentes de unidade inteira de pel a serem referidos de modo a se determinar um valor de pixel de unidade sub-pel, de acordo com uma modalidade da presente invenção.
[00091] Com referência à Figura 3, o aparelho de interpolação de imagem 10 gera um valor de pixel de unidade sub-pel 35 de um local de interpolação mediante interpolação de valores de pixel de unidade inteira de pel 31 e 33 em um domínio espacial. O local de interpolação é determinado por α.
[00092] As Figuras 4A a 4C são diagramas ilustrando exemplos de pixels de unidade inteira de pel a serem referidos de modo a determinar um valor de pixel de unidade sub-pel, de acordo com uma modalidade da presente invenção.
[00093] Com referência à Figura 4A, para gerar o valor de pixel de unidade sub-pel 35 mediante interpolação dos dois valores de pixel de unidade inteira de pel 31 e 33, diversos valores de pixels de unidade inteira de pel adjacentes 37 e 39 incluindo os valores de pixel de unidade inteira de pel 31 e 33, são utilizados. Em outras palavras, os pixels de ordem 0 e o 1° pixel podem ser interpolados mediante realização de filtração de interpolação unidimensional em valores de pixel 2M a partir de um valor de pixel -(M-1)° até um valor de pixel M°.
[00094] Além disso, embora a Figura 4A ilustre que valores de pixel em uma direção horizontal são interpoladas, filtração de interpolação unidimensional pode ser realizada mediante uso de valores de pixel em uma direção vertical ou diagonal.
[00095] Com referência à Figura 4B, um valor de pixel P(α) de um local de interpolação α pode ser gerado mediante interpolação dos pixels P0 41 e P1 43 que são adjacentes um ao outro em uma direção vertical. Quando as Figuras 4A e 4B são comparadas, seus métodos de filtração de interpolação são similares e a única diferença entre os mesmos é que os valores de pixel 47 e 49 alinhados em uma direção vertical são interpolados na Figura 4B enquanto que os valores de pixel 37 e 39 alinhados em uma direção horizontal são interpolados na Figura 4A.
[00096] Com referência à Figura 4C, similarmente, um valor de pixel 44 do local de interpolação α é gerado mediante interpolação de dois valores de pixel adjacentes 40 e 42. A única diferença a partir da Figura 4A é que os valores de pixel 46 e 48 alinhados em uma direção diagonal são usados em vez dos valores de pixel 37 e 39 alinhados em uma direção horizontal.
[00097] Além das direções mostradas nas Figuras 4A a 4C, filtração de interpolação unidimensional pode ser realizada em várias direções.
[00098] Filtração de interpolação pode ser realizada para interpolar pixels de unidade inteira de pel para gerar um valor de pixel de unidade sub-pel. A filtração de interpolação pode ser representada pela seguinte equação.
Figure img0001
[00099] Um valor de pixel p(x) é gerado mediante realização de interpolação com base em um produto de pontos de um vetor P de pixels de referência de unidade inteira de pel 2M {pm}={p- M+1, p-M+2, ..., p0, p1, ..., pM} e um vetor f(x) de coeficientes de filtro {fm}={f-M+1, f-M+2, ..., f0, f1, ..., fM}. Como um coeficiente de filtro f(α) varia com base no local de interpolação α e um valor de pixel p(α) obtido mediante realização de interpolação é determinado com base no coeficiente de filtro f(α), um filtro de interpolação selecionado, isto é, o coeficiente de filtro determinado f(x) influencia muito o desempenho da filtração de interpolação.
[000100] Interpolação de imagem utilizando transformação e transformação inversa com base em funções de base, e um método de determinar um filtro de interpolação serão descritos agora em detalhe.
[000101] Um filtro de interpolação utilizando transformação e transformação inversa inicialmente transforma os valores de pixel mediante uso de uma pluralidade de funções de base tendo diferentes componentes de frequência. A transformação pode incluir todos os tipos de transformação a partir dos valores de pixel em um domínio espacial em coeficientes em um domínio de transformação, e pode ser transformação discreta de cosseno (DCT). Valores de pixel de unidade inteira de pel são transformados mediante uso de uma pluralidade de funções de base. Um valor de pixel pode ser um valor de pixel luma ou um valor de pixel croma. Funções de base não são limitadas às funções de base específicas e podem incluir todas as funções de base para transformar valores de pixel em um domínio espacial em valores de pixel em um domínio de transformação. Por exemplo, uma função de base pode ser uma função de cosseno ou de seno para realizar DCT e DCT inversa (IDCT). Alternativamente, várias funções de base tal como uma função spline e uma função polinomial podem ser usadas. Além disso, DCT pode ser DCT modificado (MDCT) ou MDCT com janelamento.
[000102] O filtro de interpolação utilizando transformação e transformação inversa muda as fases das funções de base usadas para realizar transformação e transforma inversamente os valores de uma pluralidade de coeficientes gerados mediante uso das funções de base de fase mudada, isto é, valores em um domínio de transformação. Como um resultado de transformação inversa, valores de pixel em um domínio espacial são produzidos e os valores produzidos podem ser valores de pixel de um local de interpolação.
Coeficientes de Filtro utilizando Transformação Ortogonal e Transformação Inversa com base em Funções de Base Ortogonais
[000103] Um caso quando o interpolador 14 realiza filtração de interpolação utilizando transformação e transformação inversa com base nas funções de base ortogonais, será descrito agora em detalhe. Especificamente, DCT é descrito como um exemplo da transformação.
[000104] Por exemplo, com referência à Figura 4A, para gerar o valor de pixel de unidade sub-pel 35 mediante interpolação de dois valores de pixel de unidade inteira de pel 31 e 33, mediante uso de uma pluralidade de valores de pixels adjacentes de unidade inteira de pel 37 e 39 incluindo os valores de pixel de unidade inteira de pel 31 e 33, os pixels de ordem 0 e os primeiros pixels podem ser interpolados mediante realização de DCT unidimensional em valores de pixel 2M a partir de um valor de pixel -(M-1)° até um valor de pixel M°, e realizando IDCT unidimensional com base em funções de base de fase mudada.
[000105] O interpolador 14 inicialmente realiza DCT unidimensional em valores de pixel de unidade inteira de pel. DCT unidimensional pode ser realizado conforme representado na Equação 1. Equação 1
Figure img0002
p(l) representa os valores de pixel 37 e 39 a partir de um valor de pixel -(M-1)° até um valor de pixel M°; e Ck representa uma pluralidade de coeficientes em um domínio de frequência, que são gerados mediante realização de DCT unidimensional nos valores de pixel 37 e 39. Nesse caso, k é um número inteiro positivo que satisfaz à condição acima da Equação 1.
[000106] Após o DCT unidimensional ser realizado nos valores de pixel 37 e 39 mediante uso da Equação 1, o interpolador 14 realiza transformação inversa nos coeficientes conforme representado na Equação 2. Equação 2
Figure img0003
α representa um local de interpolação entre dois valores de pixel conforme ilustrado na Figura 13, e pode ter diversos valores fracionários tais como 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, etc. O valor fracionário não é limitado a um valor específico, e α pode ser um valor real em vez de um valor fracionário. P(α) representa o valor de pixel de unidade sub-pel 35 do local de interpolação α, o qual é gerado como um resultado IDCT unidimensional.
[000107] Quando a Equação 2 é comparada com a Equação 1, a fase de uma função de cosseno que é uma função de base usada para realizar IDCT é determinada com base em um número fracionário α em vez de um número inteiro l, e assim é diferente da fase de uma função de base usada para realizar DCT unidimensional. Em outras palavras, a fase de cada função de base usada para realizar transformação inversa, isto é, uma função de cosseno, é mudada com base em 2α . Se o interpolador 14 realiza IDCT com base nas funções de cosseno de fase mudada de acordo com a Equação 2, o valor de pixel de unidade sub-pel 35 do local de interpolação α, isto é, P(α), é gerado.
[000108] DCT de acordo com a Equação 1 é expresso por uma equação de matriz representada na Equação 3. Equação 3
Figure img0004
[000109] Aqui, C é uma matriz 2Mx1 dos coeficientes 2M descritos acima em relação à Equação 1, e REF é uma matriz 2Mx1 dos valores de pixel de unidade inteira de pel, isto é, P- (M-1), ... PM valores de pixel, descritos acima em relação à Equação 1. O número de valores de pixel de unidade inteira de pel usados para realizar interpolação, isto é, 2M, se refere ao número de derivações de um filtro de interpolação unidimensional. D é uma matriz quadrada para realizar DCT unidimensional e pode ser definida conforme representado na Equação 4. Equação 4
Figure img0005
k e l são números inteiros que satisfazem às condições acima, e Dkl se refere a uma fileira k e uma coluna l da matriz quadrada D para realizar DCT na Equação 3. M é o mesmo que aquele da Equação 3.
[000110] IDCT utilizando uma pluralidade de funções de base de fase mudada de acordo com a Equação 2 é expresso por uma equação de matriz representada na Equação 5. Equação 5
Figure img0006
[000111] Aqui, P(α) é o mesmo que aquele da Equação 2, e W(a) é uma matriz 1x2M para realizar IDCT unidimensional mediante uso de uma pluralidade de funções de base de fase mudada e pode ser definido como representado na Equação 6. Equação 6
Figure img0007
k é um número inteiro que satisfaz à condição acima, e Wk(α) se refere a uma coluna k da matriz W(α) descrita acima em relação à Equação 5. Um filtro F(a) para realizar DCT unidimensional e IDCT unidimensional utilizando uma pluralidade de funções de base de fase mudada de acordo com as Equações 3 e 5 podem ser definidos como representado na Equação 7. Equação 7
Figure img0008
k e l são números inteiros que satisfazem às condições acima, Fl(a) se refere a uma coluna l de F(α), e W(a) e D são idênticos àqueles da Equação 3.
[000112] Para gerar valores de pixel de unidade sub-pel intensamente suavizados, o interpolador 14 pode mudar um filtro de interpolação usado para realizar transformação e transformação inversa com base em uma função de base.
[000113] Um caso quando uma função janela é usada; um caso quando vários parâmetros de suavização são usados; um caso quando uma função spline é usada como uma função de base; e um caso quando uma função polinomial é usada como uma função de base para determinar diversos filtros de interpolação de suavização; serão descritos seqüencialmente, agora, em detalhe.
Filtro de Interpolação de Suavização utilizando Função Janela
[000114] Um método de suavizar os coeficientes de filtro de interpolação mediante uso de uma função janela será descrito agora em detalhe.
[000115] Uma função janela pode incluir uma função janela de hamming, uma função janela de cosseno, uma função janela exponencial, uma função janela hamming, uma função janela Blackman, e uma função janela triângulo. Embora os casos quando filtros de interpolação com base em transformação e transformação inversa sejam suavizados mediante uso de certas funções de janela sejam descritos abaixo para conveniência de explanação, será facilmente entendidos por aqueles de conhecimento comum na técnica que, além das funções de janela descritas, outras funções de janela tendo respostas de frequência similar também podem ser usadas.
[000116] Os coeficientes de janela com base em uma função de janela hamming satisfazem à Equação 24. Equação 8
Figure img0009
[000117] Em várias funções de janela incluindo a função de janela hamming, uma entrada n é simétrica com referência a N/2 e uma resposta de frequência é similar àquela de um filtro passa-baixa. Dentre as entradas de uma função janela, apenas uma entrada coberta por uma janela formada pela função janela pode ser produzida. Um tamanho de janela N pode ser estabelecido como um número inteiro positivo maior do que o comprimento de um filtro de interpolação original. Por exemplo, para aplicar uma função janela a um filtro de interpolação para gerar um pixel de unidade sub-pel tal como 1/2 ou 1/4 de pixel, o local central da função janela pode ser movido em 1/2 ou 1/4 pixel. Isto é, como o local central da função janela é movido para um local de interpolação, a função janela pode ser simétrica com relação ao local de interpolação.
[000118] Por exemplo, as Equações 9 e 10 mostram respectivamente coeficientes de janela de funções de janela hamming para filtros de interpolação de unidade pel de 1/2 e de unidade pel de 1/4, respectivamente. Equação 9
Figure img0010
Equação 10
Figure img0011
[000119] A Equação 11 mostra seqüencialmente os coeficientes de janela de uma função janela hamming, uma função janela de cosseno e uma função janela exponencial como funções de janela para filtros de interpolação, os quais são generalizados com base em um local de interpolação de unidade sub-pel α. Equação 11
Figure img0012
[000120] Mediante combinação dos coeficientes de janela de acordo com a Equação 11 com um filtro de interpolação original fk(α), coeficientes de filtro de interpolação de suavização podem ser determinados de acordo com a Equação 12. Equação 12
Figure img0013
[000121] Como um filtro de interpolação de suavização é determinado mediante uso de uma função janela, um peso de um coeficiente de filtro de interpolação pode ser ajustado com base na distância entre um pixel de referência de unidade inteira de pel e um local de interpolação. Por exemplo, um filtro de interpolação de suavização pode ser determinado de tal modo que, por intermédio de uma função janela, dentre os coeficientes de filtro de um filtro de interpolação, um coeficiente de filtro para um pixel de referência de unidade inteira de pel localizado distante a partir de um local de interpolação é muito mudado e um coeficiente de filtro para um pixel de referência de unidade inteira de pel localizado próximo ao local de interpolação não é muito mudado.
[000122] Além disso, se um filtro de interpolação de suavização for determinado mediante uso de uma função janela, a filtração de interpolação pode ser realizada após os pixels de referência de unidade inteira e pel serem suavizados. Pixels de referência de unidade inteira de pel introduzidos Ref={p-M+1, p-M+2, ..., p0, p1, ..., pM} podem incluir ruído ou podem ser danificados devido a um erro tal como um erro de quantização. Como tal, se os pixels de referência de unidade inteira de pel forem suavizados antes de a filtração de interpolação ser realizada, o aparelho de interpolação de imagem 10 pode aperfeiçoar um efeito de interpolação.
Filtro de Interpolação de Suavização utilizando Dois Parâmetros
[000123] Um filtro de interpolação de suavização pode determinar a suavidade dos coeficientes de filtro com base em dois parâmetros. Os coeficientes de filtro de interpolação de suavização de unidade sub-pel obtidos mediante combinação de uma matriz de suavização S e coeficientes de filtro de interpolação com base em transformação e transformação inversa satisfazem à Equação 13. Equação 13
Figure img0014
[000124] A Equação 14 mostra um exemplo da matriz de suavização S. Equação 14
Figure img0015
[000125] A matriz de suavização S de acordo com a Equação 14 é uma matriz de diagonal-3. Em outras palavras, dentre os componentes da matriz de suavização S, componentes exceto os componentes em uma linha diagonal central e em duas linhas diagonais correspondendo uma à outra e adjacentes à linha diagonal central são todos 0.
[000126] Na matriz de suavização S, uma suavidade ai pode ser determinada independentemente da distância (i-α) a partir dos pixels de unidade inteira de pel a serem interpolados. Nesse caso, a suavização com base na matriz de suavização S pode ser referida como suavização uniforme.
[000127] Além disso, na matriz de S, a suavização ai pode variar com base em um índice l de um local de pixel de unidade inteira de pel. Nesse caso, suavização com base na matriz de suavização S pode ser referida como suavização não uniforme. Por exemplo, a suavidade ai pode satisfazer à Equação 15. Equação 15
Figure img0016
[000128] Um índice positivo l pode aumentar um efeito de suavização se a distância entre um local de interpolação e um pixel de referência de unidade inteira de pel for grande. Consequentemente, o índice positivo l pode controlar a velocidade de suavização com base na distância entre um local de interpolação e um pixel de referência de unidade inteira de pel. Um parâmetro de suavização β pode controlar a faixa de suavização em torno de um local de interpolação.
[000129] Se o parâmetro de suavização β for menor do que 0, a matriz de suavização S de acordo com a Equação 13 pode ser mudada para um filtro de aguçamento. Consequentemente, se a matriz de suavização S, que é menor do que 0, for combinada com um filtro de interpolação utilizando transformação e transformação inversa, um filtro para amplificar os componentes de alta frequência pode ser gerado.
[000130] Para realizar predição de unidade sub-pel, o aparelho de interpolação de imagem 10 pode usar dados de coeficiente de filtro de interpolação de suavização previamente armazenados na memória.
[000131] A Figura 5 é um gráfico 50 de um fator de suavização baseado em um parâmetro de suavização β de um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção.
[000132] Primeira e segunda curva, 52 e 54, mostra um fator de suavização para suavizar um filtro de interpolação com base em transformação discreta. Se m for grande, isto é, se a distância a partir dos pixels de unidade inteira de pel a serem interpolados for aumentada, o fator de suavização está próximo de 0.
[000133] Aqui, em comparação com a segunda curva 54 em um caso quando o parâmetro de suavização β é grande, a primeira curva 52 em um caso quando parâmetro de suavização β é pequeno tem uma largura relativamente grande do fator de suavização. Em outras palavras, se o parâmetro de suavização β do filtro de interpolação de suavização for grande, componentes de baixa frequência podem ser principalmente filtrados e assim valores de pixel de unidade sub-pel suavizados relativamente de forma intensa podem ser gerados. Se o parâmetro de suavização β do filtro de interpolação de suavização for relativamente pequeno, componentes de frequência relativamente elevada podem permanecer e ser interpolados e assim os valores de pixel de unidade sub-pel podem ser gerados.
[000134] Para determinar os coeficientes de filtro de um filtro de interpolação de suavização, o aparelho de interpolação de imagem 10 pode usar uma função spline ou uma função polinomial como uma função de base assim como uma função de base ortogonal.
Filtro de Interpolação de Suavização baseado em Função Spline
[000135] O aparelho de interpolação de imagem 10 pode determinar os coeficientes de filtro de um filtro de interpolação de suavização com base em uma função spline.
[000136] Além disso, para suavizar um resultado de interpolação, o aparelho de interpolação de imagem 10 pode usar uma função spline tendo uma condição limítrofe. Em mais detalhe, por exemplo, se a interpolação spline polinomial tendo uma variável p for usado para formar um filtro de interpolação utilizando m pixels de unidade inteira pel pm (M é um número inteiro igual ou maior do que 2), para permitir que a variável p tenha uma suavidade máxima em uma faixa de 3<p<M+1 e para permitir um valor spline, isto é, um valor de resultado de interpolação seja infinitamente suave em um pixel (-M+2)° e um pixel (M-1)°, (p-1) condições adicionais podem ser estabelecidas. Essas condições adicionais são referidas como condições limítrofes not-a-knot ou condições limítrofes de Boor.
[000137] Um resultado de interpolação utilização coeficientes de filtro de interpolação com base em uma função spline pode ser representado como uma soma ponderada calculada mediante uso da Equação 16. Equação 16
Figure img0017
[000138] Pixels de entrada pm são pixels de referência de unidade inteira de pel, e um conjunto {pm} de pixels de entrada nos quais a faixa de m é [-M+1, M] (isto é, -M+1<m<M) é introduzido. Uma função spline S(x) corresponde aos valores de pixel gerados como um resultado de interpolação. fm(x) é um meio de interpolação spline cardinal e corresponde aos coeficientes de filtro com base em uma função spline cardinal. fm(x) podem ser valores de função spline cardinal tendo a mesma condição limítrofe e tendo valores apenas em locais de pixel de referência de unidade inteira de pel (isto é, -M+1<m<M, m é um número inteiro).
[000139] coeficiente de filtro fm(x) pode ser determinado mediante uso da equação 17. Equação 17
Figure img0018
[000140] Quando k é um número inteiro em uma faixa de 0 < k < 2M-2, o coeficiente de filtro spline fm(x) pode ser determinado em cada número inteiro m em uma faixa de [-M+1+k, -M+k+2], isto é, a partir de (-M+1+k) até (-M+k+2). Na Equação 17, um ak coeficiente
Figure img0019
- pode ser determinado com base na Equação 18. Equação 18
Figure img0020
[000141] Para interpolação de unidade sub-pel um filtro de resposta de impulso finito (FIR) incluindo coeficientes de filtro spline fm(α) de acordo com um local de interpolação α pode ser calculado previamente e armazenado, e um valor de pixel de unidade sub-pel em um local de interpolação α entre um pixel de ordem 0° e um primeiro pixel pode ser gerado mediante realização de filtração de interpolação utilizando o filtro FIR incluindo os coeficientes de filtro spline fm(α) no pixel de referência de unidade inteira de pel pm.
[000142] A Figura 6 é um gráfico de uma função spline 60 utilizável por um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção.
[000143] Com referência à Figura 6, com base em uma função spline tendo uma variável p de 3, três curvas de meio de interpolação spline f-2(x) 61, f-1(x) 62, e f0(x) 63 para 2M=6, isto é, um filtro de interpolação de 6 derivações, são ilustrados. Por exemplo, os coeficientes de filtro de interpolação para gerar valores de pixel de unidade sub-pel que satisfaçam α=1/4 podem ser determinados como f-2(1/4) 64, f-1(1/4) 65, e f0(1/4) 66 nas curvas de meios de interpolação spline f-2(x) 61, f-1(x) 62, e f0(x) 63.
Filtro de Interpolação de Suavização com base na Função Polinomial
[000144] O aparelho de interpolação de imagem 10 pode determinar coeficientes de filtro de um filtro de interpolação de suavização com base em uma função polinomial.
[000145] Uma função de interpolação polinomial incluindo coeficientes de filtro de interpolação {fk} com base em uma função polinomial pode ser representada com base em uma função polinomial como uma função de base mediante uso da Equação 19. O número inteiro k é definido dentro de uma faixa de -M+1 < k < M. Equação 19
Figure img0021
[000146] Além disso, para suavizar um resultado de interpolação, o aparelho de interpolação de imagem 10 pode determinar coeficientes de filtro otimizados para uma faixa de baixa frequência dentre os coeficientes de filtro de interpolação {fk} com base em uma função polinomial. Por exemplo, se uma frequência o for 0, os coeficientes de filtro {fk} determinados quando um valor de função de uma função de interpolação polinomial e valores de função de derivadas da função de interpolação polinomial são idênticos, podem ser determinados como coeficientes de filtro de interpolação otimizados para uma faixa de baixa frequência. Como tal, conforme representado na Equação 20, como uma função para o número inteiro k, funções lineares 2M para coeficientes de filtro 2M {fk} (2M é uma incógnita) podem ser obtidos. Equação 20
Figure img0022
[000147] Soluções das funções lineares da Equação 20 podem ser calculadas mediante uso de uma função polinomial de Newton. A Equação 21 representa coeficientes de filtro 2M {fk} calculados como soluções das funções lineares da Equação 20. Equação 21
Figure img0023
[000148] Um filtro de interpolação incluindo os coeficientes de filtro {fk} determinados com base na função polinomial de Newton das Equações 20 e 21 tem uma resposta máxima em uma faixa de baixa frequência, um resultado de interpolação mais intensamente suavizado pode ser obtido mediante uso de valores de pixel utilizando esse filtro de interpolação. Consequentemente, um filtro de interpolação incluindo os coeficientes de filtro determinados com base em uma função polinomial como uma função de base pode ser selecionado como um filtro de interpolação de suavização.
[000149] Como tal, o aparelho de interpolação de imagem 10 pode gerar pixels de interpolação mais intensamente suavizados mediante seleção de um filtro de interpolação de suavização incluindo os coeficientes de filtro de interpolação baseados em uma função polinomial. Particularmente, como os pixels croma têm componentes fortes de alta frequência, para gerar valores de pixel de unidade sub-pel de pixels croma de unidade inteira de pel, um filtro de interpolação de suavização incluindo coeficientes de filtro de interpolação com base em uma função polinomial podem ser usados.
Coeficientes de Filtro de Interpolação para Interpolação Escalonada
[000150] Vários métodos de geração de filtro de interpolação de suavização de acordo com as modalidades da presente invenção se baseiam em uma pressão aritmética para gerar um número de ponto flutuante em vez de um número inteiro, e valores absolutos de coeficientes de filtro não são normalmente maiores do que 1. Especificamente, um resultado de cálculo de um número real em vez de um número inteiro pode ser gerado por um local de interpolação de unidade sub-pel a.
[000151] A eficiência do cálculo baseado em número inteiro é maior do que aquela do cálculo baseado em ponto flutuante. Como tal, o aparelho de interpolação de imagem 10 pode aperfeiçoar a eficiência de cálculo de filtração de interpolação mediante escalonamento dos coeficientes de filtro para números inteiros mediante uso de um fator de escala. Além disso, como uma profundidade de bit de valores de pixel é aumentada, a exatidão da filtração de interpolação também pode ser aperfeiçoada.
[000152] O aparelho de interpolação de imagem 10 pode multiplicar os coeficientes de filtro fm(a) por intermédio de um valor predeterminado, e pode realizar interpolação de imagem mediante uso de coeficientes de filtro grandes Fm(a). Por exemplo, os coeficientes de filtro Fm(a) podem ser escalados a partir dos coeficientes de filtro fm(a) conforme representado na Equação 22. Equação 22
Figure img0024
[000153] Para eficiência de cálculo, o fator de escala pode estar na forma de 2n. n pode ser 0 ou um número inteiro positivo. O resultado da filtração de interpolação utilizando coeficientes de filtro escalados por 2n pode ter uma profundidade de bit escalonada por n bits em comparação com um resultado obtido mediante uso de coeficientes originais de filtro.
[000154] Filtração de interpolação de cálculo de número inteiro utilizando os coeficientes de filtro escalados Fm(a) pode satisfazer à Equação 23. Em outras palavras, após a filtração de interpolação ser realizada mediante uso dos coeficientes de filtro escalados Fm(a), a profundidade de bits escalados tem que ser reconstruída para uma profundidade de bits original. Equação 23
Figure img0025
Nesse caso, um deslocamento pode ser de 2n-1.
[000155] Em outras palavras, como um resultado de filtração escalonada utilizando um filtro de interpolação de suavização escalonada tem que ser reduzido por um fator de escala, isto é, 2n de modo a ser reconstruído para bits originais, uma profundidade de bits do resultado de filtração escalonado pode ser reduzida por n bits.
[000156] Se filtração de interpolação de duas etapas for realizada mediante realização de uma filtração de interpolação unidimensional em uma direção horizontal e realizando filtração de interpolação unidimensional em uma direção vertical, uma redução pode ser feita por um total de 2n bits. Consequentemente, se um primeiro filtro de interpolação unidimensional for escalonado por n1 bits e um segundo filtro de interpolação unidimensional for escalonado por n2 bits, após a filtração de interpolação de duas etapas ser realizada mediante uso do primeiro e do segundo filtro de interpolação unidimensional, uma redução pode ser feita por intermédio de uma soma de n1 e n2, isto é, 2n bits. O primeiro filtro de interpolação unidimensional pode ser um filtro de interpolação que não é escalonado.
[000157] Como uma soma dos coeficientes de filtro de suavização fm(α) é 1, Equação 24
Figure img0026
uma condição para normalizar os coeficientes de filtro de suavização escalados Fm(α) do filtro de interpolação escalonado precisa satisfazer à Equação 25. Equação 25
Figure img0027
[000158] Contudo, a condição de normalização de acordo com a Equação 25 pode causar um erro de arredondamento. O aparelho de interpolação de imagem 10 pode arredondar os coeficientes de filtro escalados Fm(α) com base na condição de normalização de acordo com a Equação 19. Para a normalização, alguns dos coeficientes de filtro escalados Fm(α) podem ser ajustados dentro de uma faixa predeterminada de valores originais. Por exemplo, alguns dos coeficientes de filtro escalados Fm(α) podem ser ajustados dentro de uma faixa de ±1 para corrigir um erro de arredondamento.
[000159] Vários filtros de interpolação de suavização e coeficientes de filtro são descritos acima. Especificamente, como uma função para determinar os coeficientes de filtro de um filtro de interpolação de suavização, uma função janela, uma função spline, uma função polinomial, etc. pode ser usada. Para um filtro de interpolação de suavização, uma resposta de frequência de uma função pode variar com base em uma frequência, mas um ganho de filtro da resposta de frequência da função pode estar próximo de 1. Consequentemente, o aparelho de interpolação de imagem 10 pode determinar os coeficientes de filtro mediante uso de uma função tendo um ganho de filtro do qual uma resposta de frequência é mais próxima de 1 mesmo quando uma frequência varia, e pode selecionar um filtro de interpolação de suavização incluindo os coeficientes de filtro.
[000160] A Figura 7 é um fluxograma de um método de interpolação de imagem de acordo com uma modalidade da presente invenção.
[000161] Na operação 71, um filtro de interpolação é selecionado diferentemente com base em um local de interpolação de unidade sub-pel e uma suavidade dentre os filtros de interpolação para gerar ao menos um valor de pixel de unidade sub-pel localizado entre os pixels de unidade inteira de pel de uma imagem. Uma suavidade do filtro de interpolação pode ser determinada com base em uma distância entre um local de interpolação e unidade inteiras de pel.
[000162] Um filtro de interpolação de acordo com uma modalidade pode ser um filtro incluindo coeficientes de filtro para realizar transformação e transformação inversa com base em uma pluralidade de funções de base. Um filtro de interpolação de suavização de acordo com uma modalidade pode incluir pelo menos um de um filtro de interpolação combinado com uma função janela, um filtro de interpolação baseado em uma pluralidade de parâmetros de suavização, um filtro de interpolação baseado em um parâmetro de suavização, um filtro de interpolação spline, e um filtro de interpolação de função polinomial.
[000163] Para realizar filtração mediante uso de um filtro de interpolação de suavização, os coeficientes de filtro podem ser determinados para suavizar mais intensamente os pixels de referência de unidade inteira de pel afastadas de um local de interpolação.
[000164] Na operação 73, pelo menos um valor de pixel de unidades sub-pel é gerado mediante interpolação de valores de pixel dos pixels de unidade inteira de pel mediante uso do filtro de interpolação selecionado na operação 71.
[000165] Dentre os filtros de interpolação, se um filtro de interpolação incluindo coeficientes de filtro escalados para números inteiros for selecionado, os valores de pixel gerados mediante uso do filtro de interpolação podem ser normalizados com base em um fator de escala.
[000166] De acordo com uma modalidade, um filtro de interpolação pode ser selecionado diferentemente com base nas características dos pixels a serem interpolados, e valores de pixel de unidade sub-pel podem ser gerados mediante uso do filtro de interpolação selecionado.
[000167] Vários exemplos de coeficientes de filtro de um filtro de interpolação determinado em consideração de um local de interpolação de unidade sub-pel e uma suavidade serão descritos agora com referência às Figuras 8A a 12C.
[000168] As Figuras 8A a 8C são tabelas mostrando coeficientes de filtro dos filtros de interpolação de 12 derivações determinados com base em um parâmetro de suavização e um local de interpolação, de acordo com as modalidades da presente invenção.
[000169] Com referência às Figuras 9A a 8C, dentre os filtros de interpolação descritos acima com base em transformação ortogonal, para realizar transformação ortogonal e transformação inversa após suavização, os pixels de referência de unidade inteira de pel como descrito acima em relação à Figura 5, coeficientes de filtro de um filtro de interpolação de suavização obtido mediante combinação de uma matriz de suavização e um filtro de interpolação baseado em uma transformação ortogonal são mostrados.
[000170] As Figuras 8A a 8C mostram vários filtros de interpolação incluindo diferentes coeficientes de filtro à medida que um parâmetro de suavização β varia como 0, 0,002, 0,004, 0,006, 0,008, 0,010, 0,012, 0,014, 0,016, 0,018 e 0.020, e um local de interpolação α varia como 1/8, 1/4, 3/8, 1/2, 5/8, 3/4 e 7/8.
[000171] Por exemplo, na tabela da Figura 8A, se o parâmetro de suavização β for 0,002 e o local de interpolação α for 1/8, um filtro incluindo os coeficientes de filtro {fm}, por exemplo, {f-11, f-10, f-9, f-8, f-7, f-6, f-5, f-4, f-3, f-2,f-1, f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12}, determinado como {-1, 4, -7, 12, -24, 246, 37, -16, 9, -5, 3, -1} pode ser selecionado como um filtro de interpolação.
[000172] As Figuras 9A a 9C são tabelas mostrando coeficientes de filtro dos filtros de interpolação de 6 derivações determinados com base em um parâmetro de suavização e um local de interpolação, de acordo com as modalidades da presente invenção.
[000173] Embora os coeficientes de filtro das Figuras 8A a 8C sejam 12 coeficientes de filtro de um filtro de interpolação de 12 derivações dentre os filtros de interpolação de suavização obtidos mediante combinação de uma matriz de suavização e um filtro de interpolação de transformação ortogonal, as Figuras 9A a 9C mostram 6 coeficientes de filtro de um filtro de interpolação de 6 derivações. Nas Figuras 8A a 8C, e 9A a 9C, vários filtros de interpolação de suavização incluindo diferentes coeficientes de filtro com base no parâmetro de suavização β e o local de interpolação α podem ser mostrados.
[000174] Os coeficientes de filtro mostrados nas Figuras 9A a 8C, e 9A a 9C são coeficientes escalados em um fator de escala de 256(=28) com base na filtração de interpolação escalonada e então arredondados.
[000175] Nas Figuras 8A a 8C e 9A a 9C, quando o local de interpolação α é constante e o parâmetro de suavização β é aumentado, um coeficiente de filtro fm pode ser relativamente pequeno.
[000176] Além disso, quando o parâmetro de suavização β é constante e o local de interpolação α está afastado a partir de 1/2, se m do coeficiente de filtro fm estiver afastado de m=0 em direção a m=-M+1 ou m=M, o coeficiente de filtro fm pode ser relativamente pequeno em comparação com f0. O coeficiente de filtro fm próximo a m=0 pode ser relativamente grande.
[000177] Consequentemente, quando o parâmetro de suavização β é aumentado, se o local de interpolação α estiver afastado a partir de 1/2, isto é, próximo a pixel de unidade inteira de pel, um filtro de interpolação mais aguçado, isto é, um filtro de interpolação de menos suavização, pode ser selecionado.
[000178] Como um filtro de interpolação de acordo com uma modalidade é um filtro simétrico refletivo inversamente, um coeficiente de filtro fm(α) de um local de interpolação (1-α) pode ser determinado mediante uso do coeficiente de filtro fm(α) do local de interpolação α. Por exemplo, na Figura 9A, dentre os coeficientes de filtro {fm} tendo o parâmetro de suavização β=0.002, os coeficientes de filtro {fm(3/8)} do local de interpolação α=3/8 e os coeficientes de filtro {fm(5/8)} do local de interpolação α=1-3/8=5/8 são comparados como mostrados abaixo. {fm(3/8)} = { 11, -42, 196, 117, -35, 10 }, {fm(5/8)} = { 10, -35, 117, 196, -42, 11 }
[000179] Isto é, é mostrado que os coeficientes de filtro {fm(3/8)}quando m = -2, -1, 0 são idênticos aos coeficientes de filtro {fm(5/8)} quando m = 3, 2, 1, e os coeficientes de filtro {fm(3/8)} quando m = 3, 2, 1 são idênticos aos coeficientes de filtro {fm(5/8)} quando m = -2, -1, 0. Consequentemente, nas tabelas das Figuras 10 a 12C, embora apenas os coeficientes de filtro de interpolação fm(α) em um caso quando o local de interpolação é menor do que ou igual a 1/2 são mostrados, será facilmente entendido por aqueles de conhecimento comum na técnica que os coeficientes de filtro de interpolação fm(α) em um caso quando o local de interpolação é maior do que 1/2 também podem ser determinados.
[000180] A Figura 10 é uma tabela mostrando os coeficientes de filtro dos filtros de interpolação de 6 derivações determinados para pixels croma com base em um parâmetro de suavização e um local de interpolação, de acordo com uma modalidade da presente invenção.
[000181] O aparelho de interpolação de imagem 10 pode selecionar diferentemente um filtro de interpolação com base nas características de imagem. Por exemplo, se um filtro de interpolação de suavização obtido mediante combinação de uma matriz de suavização e um filtro de interpolação de transformação ortogonal for determinado, um parâmetro de suavização pode variar com base nas características de imagem.
[000182] Por exemplo, como os pixels croma são amostrados descendentemente com base em um formato de cor de 4:2:0, os pixels croma têm menos componentes de baixa frequência em comparação com os pixels luma. Nesse caso, com referência à Figura 10, independentemente de um filtro de interpolação para pixels luma, apenas um filtro de interpolação para pixels croma pode ser adicionalmente selecionado. Vários coeficientes de filtro dos filtros de interpolação selecionados diferentemente com base em um componente de cor serão descritos agora com referência à Figura 11.
[000183] A Figura 11 é uma tabela mostrando os coeficientes de filtro dos filtros de interpolação de suavização determinados diferentemente com base em um componente de cor e um local de interpolação de imagem, de acordo com uma modalidade da presente invenção.
[000184] Com referência à Figura 11, vários filtros de interpolação de suavização incluindo diferentes coeficientes de filtro como um número de derivações de filtro 2M, um local de interpolação α, e um componente de cor L(luma)/C(croma) varia. Os coeficientes de filtro da Figura 11 são coeficientes escalados em um fator de escala de 256(=28) e arredondados. Conforme descrito acima, com base nas características refletivas inversas dos coeficientes de filtro de interpolação, apenas um caso quando o local de interpolação α é menor do que ou igual a 1/2 é mostrado.
[000185] Similarmente as Figuras 8A a 10, um resultado da comparação dos coeficientes de filtro para um componente croma e coeficientes de filtro para um componente de luma é similar a um resultado da comparação dos coeficientes de filtro em um caso quando um parâmetro de suavização β é grande e os coeficientes de filtro em um caso quando o parâmetro de suavização β é pequeno.
[000186] As Figuras 12A a 12C são tabelas mostrando coeficientes de filtro dos filtros de interpolação de suavização com base em um local de interpolação de imagem e um fator de escala, de acordo com as modalidades da presente invenção.
[000187] As Figuras 12A a 12C mostram vários exemplos modificados dos coeficientes de filtro dos filtros de interpolação de suavização, os quais são escalados, arredondados, e normalizados à medida que um fator de escala de 2n varia como 512, 256, 128 e 64, e o número de derivações de filtro de um filtro de interpolação e um local de interpolação α variam.
[000188] Especificamente, na Figura 12C, os coeficientes de filtro de interpolação para interpolar unidades de pixel 1/8 podem ser úteis para realizar compensação de movimento em pixels croma. Contudo, como a qualidade de imagem dos pixels croma, que é visualmente reconhecida pelas pessoas, é menos crucial em comparação com os pixels luma, devido a uma derivação de filtro relativamente curta, por exemplo, 4 derivações, e uma profundidade de bits baixa, um filtro de interpolação de suavização tendo um fator de escala de 25 também pode ser usado.
[000189] Os coeficientes de filtro mostrados nas Figuras 9A a 12C são apenas partes de vários exemplos, e será facilmente entendido por aqueles de conhecimento comum na técnica que os coeficientes de filtro dos filtros de interpolação considerando a suavização, de acordo com as modalidades da presente invenção, podem ser modificados com base nos vários fatores incluindo um local de interpolação, um parâmetro de suavização, uma função janela, uma função spline, uma função polinomial, um fator de escala e arredondamento.
[000190] Codificação e decodificação de vídeo usando um filtro de interpolação de suavização, de acordo com as modalidades da presente invenção, são descritas abaixo com referência às Figuras 13A a 27. A codificação e a decodificação de vídeo com base nas unidades de codificação tendo uma estrutura de árvore, de acordo com as modalidades da presente invenção, são descritas abaixo com referência às Figuras 15 a 25. Os métodos de codificação e de decodificação de vídeo utilizando um filtro de interpolação de suavização, de acordo com as modalidades da presente invenção, são descritos abaixo com referência às Figuras 26 e 27.
[000191] Quando várias operações são realizadas nos dados de imagem, os dados de imagem podem ser divididos em grupos de dados e a mesma operação pode ser realizada nos dados do mesmo grupo de dados. Na descrição a seguir, um grupo de dados formado de acordo com um padrão predeterminado é referido como uma “unidade de dados”, de uma operação é realizada em cada “unidade de dados” mediante uso de dados incluídos na unidade de dados.
Codificação e Decodificação de Vídeo utilizando Filtro de Interpolação de Suavização
[000192] A Figura 13A é um diagrama de blocos de um aparelho de codificação de vídeo 100 utilizando um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção.
[000193] As operações de um codificador 120 e de uma unidade de saída 130 do aparelho de codificação de vídeo 100 podem ser controladas de forma cooperativa mediante um processador de codificação de vídeo, uma CPU, e um processador gráfico.
[000194] Para codificar uma imagem atual de um vídeo de entrada, o aparelho de codificação de vídeo 100 divide a imagem atual em unidades de dados tendo um tamanho predeterminado e codifica cada unidade de dados.
[000195] Por exemplo, a imagem atual inclui pixels em um domínio espacial. Para codificar pixels espacialmente adjacentes da imagem atual ao mesmo tempo, a imagem atual pode ser dividida em grupos de pixels tendo um tamanho predeterminado de tal modo que pixels adjacentes dentro de uma faixa predeterminada formam um grupo. Mediante realização de uma série de operações de codificação nos pixels dos grupos de pixels divididos, a imagem atual pode ser codificada.
[000196] Como os dados iniciais de uma imagem a ser codificada são valores de pixel no domínio espacial, cada grupo de pixels pode ser usado como uma unidade de dados a ser codificada. Além disso, quando coeficientes de transformação em um domínio de transformação são gerados mediante realização de transformação para codificação de vídeo em valores de pixel do grupo de pixels no domínio espacial, os coeficientes de transformação são incluídos em grupos de coeficientes tendo o mesmo tamanho que os grupos de pixels no domínio espacial. Consequentemente, um grupo de coeficientes dos coeficientes de transformação no domínio de transformação também pode ser usado como uma unidade de dados para codificar uma imagem.
[000197] Consequentemente, no domínio espacial e no domínio de transformação, um grupo de dados tendo um tamanho predeterminado pode ser usado como uma unidade de dados a ser codificada. Nesse caso, o tamanho de uma unidade de dados pode ser definido como o número de peças de dados incluídas na unidade de dados. Por exemplo, o número de pixels no domínio espacial ou o número de coeficientes de transformação no domínio de transformação pode representar o tamanho de uma unidade de dados.
[000198] Um método de codificação ou características de codificação de uma unidade de dados atual pode ser determinado com relação a cada grupo de dados de qualquer nível de dados dentre uma unidade de dados, uma fatia, uma imagem, e uma sequência de imagens de um vídeo que devem ser atualmente codificados.
[000199] O aparelho de codificação de vídeo 100 pode codificar uma imagem atual mediante realização de codificação de predição incluindo predição inter e predição intra, transformação, quantização e codificação de entropia em cada unidade de dados.
[000200] Com base na predição inter, para estimar um valor de pixel atual com referência a um valor de pixel de uma imagem temporalmente anterior ou subsequente, dados residuais entre um valor de pixel de uma região de referência de uma imagem de referência e um valor de pixel, de uma imagem atual, e os dados de referência indicando o valor de pixel referido, podem ser determinados.
[000201] Para realizar com maior exatidão a predição inter, o aparelho de codificação de vídeo 100 pode determinar os dados residuais e os dados de referência mediante uso de um valor de pixel de unidade sub-pel. Para realizar predição inter de unidade sub-pel, o aparelho de codificação de vídeo 100 pode determinar um valor de pixel de unidade sub-pel localizado entre pixels de unidade inteira de pel adjacentes mediante interpolação dos pixels de unidade inteira de pel, adjacentes.
[000202] Além disso, o valor de pixel de unidade sub-pel pode ser gerado mediante realização de filtração de interpolação em dois ou mais pixels de referência de unidade inteira de pel incluindo os pixels adjacentes de unidade inteira de pel. Os pixels de referência para realizar filtração de interpolação podem ser pixels de uma imagem de referência.
[000203] Para realizar eficientemente interpolação de imagem, o aparelho de codificação de vídeo 100 pode determinar seletivamente os coeficientes de filtro de interpolação. O codificador 120 pode incluir o aparelho de interpolação de imagem 10 ilustrado na Figura 1. Em outras palavras, para realizar predição inter de unidade sub-pel, o codificador 120 pode gerar um valor de pixel de unidade sub-pel mediante uso de um filtro de interpolação incluindo os coeficientes de filtro determinados pelo aparelho de interpolação de imagem 10 com base em transformação e transformação inversa.
[000204] Para realizar eficientemente filtração de interpolação, o aparelho de codificação de vídeo 100 pode previamente armazenar coeficientes de filtro de interpolação na memória. De acordo com um local de interpolação, uma suavidade, o número de derivações de filtro, uma profundidade de bit, um fator de escala, e uma função de base de filtração de interpolação com base na transformação podem ser armazenados na memória do aparelho de codificação de vídeo 100.
[000205] Por exemplo, pelo menos um de (i) coeficientes de filtro de unidade pel de 1/4 de 8 derivações {-1, 4, -10, 57, 19, -7, 3, -1} tendo um fator de escala de 26, (ii) coeficientes de filtro de unidade pel de 1/2 de 8 derivações {-1, 4, -11, 40, 40, -11, 4, -1} tendo um fator de escala de 26, (iii) coeficientes de filtro de unidade pel de 1/8 de 4 derivações {-3, 60, 8, -1} tendo um fator de escala de 26, (iv) coeficientes de filtro de unidade pel de 1/4 de 4 derivações {-4, 54, 16, -2} tendo um fator de escala de 26, (v) coeficientes de filtro de unidade pel de 3/8 de 4 derivações {-5, 46, 27, -4} tendo um fator de escala de 26, e (vi) coeficientes de filtro de unidade pel de 1/2 de 4 derivações {-4, 36, 36, -4} tendo um fator de escala de 26 podem ser armazenados na memória e podem ser usados para realizar filtração de interpolação de suavização.
[000206] Além dos coeficientes de filtro mencionados acima, coeficientes de filtro de interpolação de suavização que podem ser modificados com base em diversas funções de base e funções de janela como mostrado nas Figuras 9A a 9C podem ser usados para realizar filtração de interpolação.
[000207] Se filtração de interpolação for realizada mediante uso dos coeficientes de filtro armazenados na memória, uma velocidade de cálculo de predição inter pode ser aperfeiçoada.
[000208] Dentre uma pluralidade de filtros de interpolação, o codificador 120 pode selecionar e usar um filtro de interpolação de suavização desejado para realizar predição inter com base em um local de interpolação de unidade sub-pel α e uma suavidade. Além disso, um filtro de interpolação de suavização apropriado para um pixel atual pode ser determinado com base no número de derivações de filtro, uma profundidade de bits, um fator de escala, etc.
[000209] O codificador 20 pode determinar um filtro de interpolação com base nas características de imagem. Por exemplo, o codificador 120 pode determinar diferentes filtros de interpolação com base nos componentes de cor dos pixels. Por exemplo, um filtro de interpolação para pixels luma e um filtro de interpolação para pixels croma podem ser selecionados separadamente e assim os valores de pixel de unidade sub-pel podem ser individualmente gerados mediante realização de filtração de interpolação.
[000210] Um vídeo pode ser codificado mediante realização de predição inter com base na interpolação de unidade sub-pel, predição intra, transformação, e quantização.
[000211] A unidade de saída 130 pode codificar e produzir informação de codificação e pode produzir dados de imagem codificados. Como a informação de codificação, informação sobre o filtro de interpolação selecionado pode ser codificada adicionalmente. Em outras palavras, informação sobre um filtro de interpolação usado para realizar codificação de predição de unidade sub-pel pode ser codificada. Por exemplo, um decodificador tem que saber sobre um filtro de interpolação usado para codificar uma imagem para decodificar a imagem mediante uso do mesmo filtro de interpolação usado no processo de codificação. Para isso, a informação indicando o filtro de interpolação usado pode ser codificado em conjunto com a imagem. Contudo, se um filtro for selecionado com base em um resultado de codificação anterior, isto é, contexto, informação sobre o filtro selecionado pode não ser adicionalmente codificada.
[000212] A unidade de saída 130 pode realizar codificação de entropia na informação de codificação e dados de imagem codificados e pode produzir um fluxo de bits.
[000213] A Figura 13B é um diagrama de blocos de um aparelho de decodificação de vídeo 200 utilizando um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção.
[000214] O aparelho de decodificação de vídeo 200 inclui um receptor e extrator 220 e um decodificador 230. As operações do receptor e extrator 220 e do decodificador 230 do aparelho de decodificação de vídeo 200 podem ser controlados de forma cooperativa por intermédio de um processador de decodificação de vídeo, um processador gráfico, e uma CPU.
[000215] Para reconstruir uma imagem a partir de um fluxo de bits, o aparelho de decodificação de vídeo 200 pode decodificar os dados de imagem codificados do fluxo de bits mediante realização de operações incluindo decodificação de entropia, quantização inversa, transformação inversa, predição inter/compensação, e predição intra/compensação.
[000216] O receptor e extrator 220 recebe, e analisa, um fluxo de bits de um vídeo codificado. O receptor e o extrator 220 podem extrair os dados codificados de cada unidade de dados de uma imagem atual, e codificar informação incluindo a informação sobre um método de codificação a ser usado para decodificar os dados codificados, a partir do fluxo de bits analisado.
[000217] Se a informação de codificação incluir informação de filtro de interpolação, o decodificador 230 pode ler informação sobre um filtro de interpolação usado para realizar predição intra de unidade sub-pel a partir da informação de filtro de interpolação, e pode realizar compensação de movimento mediante uso do filtro de interpolação usado em um processo de codificação.
[000218] O decodificador 230 pode decodificar os dados de imagem codificados mediante realização de várias operações de decodificação tal como decodificação de entropia, quantização inversa, transformação inversa, predição inter/compensação, e predição intra/compensação em uma imagem codificada de acordo com os vários métodos de decodificação determinados com base na informação sobre um modo de codificação.
[000219] Para realizar compensação de movimento, uma região de referência de uma imagem de referência que é temporalmente anterior ou subsequente a uma imagem atual, pode ser determinada mediante uso de dados de referência, e um valor de pixel da região de referência e os dados residuais podem ser combinados para reconstruir um valor de pixel atual.
[000220] Se os dados residuais e os dados de referência forem determinados com base nos pixels interpolados em uma unidade de subpixel em um processo de codificação, o decodificador 230 também pode realizar compensação de movimento com base nos pixels interpolados em uma unidade de subpixel. Para realizar compensação de movimento de unidade de subpixel, o decodificador 230 pode gerar um valor de pixel de unidade sub- pel mediante interpolação de pixels de unidade inteira de pel, adjacentes da imagem de referência. O valor de pixel de unidade sub-pel pode ser gerado mediante realização de filtração de interpolação em dois ou mais pixels de referência de unidade inteira de pel incluindo os pixels adjacentes de unidade inteira de pel.
[000221] Para realizar eficientemente informação de imagem, o aparelho de decodificação de vídeo 200 pode determinar seletivamente os coeficientes de filtro de interpolação. O decodificador 230 pode incluir o aparelho de interpolação de imagem 10 ilustrado na Figura 1. Em outras palavras, para realizar compensação de movimento de unidade sub-pel, decodificador 230 pode gerar o valor de pixel de unidade sub- pel mediante uso de um filtro de interpolação com base na transformação.
[000222] Para realizar eficientemente filtração de interpolação, o aparelho de decodificação de vídeo 200 pode armazenar previamente os coeficientes de filtro de interpolação selecionáveis de forma variada em memória de acordo com um local de interpolação, uma suavidade, o número de derivações de filtro, uma profundidade de bits, um fator de escala e uma função de base de filtração de interpolação com base na transformação.
[000223] Conforme descrito acima, por exemplo, pelo menos um de (i) coeficientes de filtro de unidade pel de 1/4 de 8 derivações {-1, 4, -10, 57, 19, -7, 3, -1} tendo um fator de escala de 26, (ii) coeficientes de filtro de unidade pel de 1/2 de 8 derivações {-1, 4, -11, 40, 40, -11, 4, -1} tendo um fator de escala de 26, (iii) coeficientes de filtro de unidade pel de 1/8 de 4 derivações {-3, 60, 8, -1} tendo um fator de escala de 26, (iv) coeficientes de filtro de unidade pel de 1/4 de 4 derivações {-4, 54, 16, -2} tendo um fator de escala de 26, (v) coeficientes de filtro de unidade pel de 3/8 de 4 derivações {-5, 46, 27, -4} tendo um fator de escala de 26, e (vi) coeficientes de filtro de unidade pel de 1/2 de 4 derivações {-4, 36, 36, -4} tendo um fator de escala de 26 podem ser armazenados em memória e podem ser usados para realizar filtração de interpolação de suavização. Além dos coeficientes de filtro mencionados acima, coeficientes de filtro de interpolação de suavização que podem ser modificados de acordo com diversas funções de base e funções de janela como mostrado nas Figuras 8A a 12C podem ser usados para realizar filtração de interpolação de suavização.
[000224] Dentre uma pluralidade de filtros de interpolação, o decodificador 230 pode selecionar e usar um filtro de interpolação apropriado para um pixel atual para realizar compensação de movimento de unidade sub-pel de acordo com um local de interpolação de unidade sub-pel α, o número de derivações de filtro, uma profundidade de bits, um fator de escala, etc.
[000225] Além disso, o decodificador 230 pode determinar um filtro de interpolação de suavização com base nas características de imagem. Por exemplo, diferentes filtros de interpolação podem ser determinados de acordo com os componentes de cor dos pixels, filtração de interpolação para pixels luma e filtração de interpolação para pixels croma podem ser realizadas separadamente, e assim os valores de pixel de unidade sub-pel interpolados podem ser individualmente gerados.
[000226] Consequentemente, o decodificador 230 pode reconstruir os dados em um domínio espacial mediante realização de quantização inversa/transformação inversa, e pode reconstruir os valores de pixel em uma imagem atual mediante realização de predição intra e compensação de movimento com base em interpolação de unidade sub-pel assim como interpolação de unidade inteira de pel. Se imagens forem reconstruídas, um vídeo pode ser decodificado.
[000227] A Figura 14A é um fluxograma de um método de codificação de imagem utilizando um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção.
[000228] Na operação 1410, para codificar uma imagem atual de um vídeo de entrada, é realizada codificação de predição utilizando interpolação de unidade sub-pel. Um filtro de interpolação é selecionado diferentemente com base em um local de interpolação de unidade sub-pel e uma suavidade dentre os filtros de interpolação para gerar um valor de pixel de unidade sub-pel. A suavidade do filtro de interpolação pode ser determinada com base na distância entre um local de interpolação e unidades inteiras de pel.
[000229] O valor de pixel de unidade sub-pel pode ser gerado mediante realização de filtração de interpolação em dois ou mais pixels de referência de unidade inteira de pel de uma imagem de referência. Dados residuais e dados de referência são determinados mediante uso do valor gerado de pixel de unidade sub-pel gerada, desse modo realizando codificação de predição.
[000230] Para realizar eficientemente interpolação de imagem, os coeficientes de filtro de interpolação podem ser determinados seletivamente. Dentre os coeficientes de filtro de interpolação previamente armazenados na memória, um filtro de interpolação desejado pode ser selecionado com base em um local de interpolação de unidade sub-pel, uma suavidade, um número de derivações de filtro, uma profundidade de bits, um fator de escala, uma função de base de filtração de interpolação com base na transformação, e um componente de cor, e interpolação pode ser realizada para gerar o valor de pixel de unidade sub-pel.
[000231] Na operação 1420, transformação e quantização são realizadas em um resultado de predição inter com base na interpolação de unidade sub-pel, e predição intra.
[000232] Na operação 1430, um fluxo de bits pode ser produzido mediante realização de codificação de entropia na informação de codificação e dados de imagem codificados na forma de coeficientes de transformação quantizados. A informação de codificação pode incluir informação sobre um filtro de interpolação usado para realizar codificação de predição de unidade sub-pel.
[000233] A Figura 14B é um fluxograma de um método de decodificação de imagem utilizando um filtro de interpolação de suavização, de acordo com uma modalidade da presente invenção.
[000234] Na operação 1450, um fluxo de bits de um vídeo codificado é recebido, decodificado por entropia e analisado para extrair coeficientes de transformação quantizados e codificar informação de uma imagem atual a partir do fluxo de bits.
[000235] Se a informação de codificação incluir informação sobre um filtro de interpolação, o tipo de um filtro de interpolação exigido pode ser lido a partir da informação.
[000236] Na operação 1460, de acordo com vários métodos de decodificação determinados com base em um modo de codificação lido a partir da informação de codificação, quantização inversa e transformação inversa são realizadas nos coeficientes de transformação quantizados, e dados residuais são adicionais, desse modo reconstruindo os dados em um domínio espacial.
[000237] Na operação 1470, dados de imagem codificados podem ser decodificados mediante realização de várias operações de decodificação tal como compensação de movimento e predição intra com base no modo de codificação.
[000238] Especificamente, se dados residuais codificados e dados de referência forem extraídos com base nos pixels interpolados em uma unidade sub-pel, compensação de movimento pode ser realizada com base nos pixels interpolados em uma unidade sub-pel. Dentre os filtros de interpolação para gerar um valor de pixel de unidade sub-pel, um filtro de interpolação é selecionado diferentemente com base em um local de interpolação de unidade sub-pel e uma suavidade.
[000239] Para realizar eficientemente interpolação de imagem, coeficientes de filtro de interpolação podem ser determinados seletivamente. Dentre os coeficientes de filtro de interpolação previamente armazenados na memória, um filtro de interpolação desejado pode ser selecionado de acordo com um local de interpolação de unidade sub-pel, uma suavidade, um número de derivações de filtro, uma profundidade de bits, um fator de escala, uma função de base de filtração de interpolação com base na transformação, e um componente de cor, e a interpolação pode ser realizada para gerar o valor de pixel de unidade sub-pel. Como a compensação de movimento é realizada nos pixels interpolados mediante uso dos coeficientes de filtro interpolados previamente armazenados na memória, a velocidade de cálculo pode ser aumentada.
[000240] Uma imagem de referência e uma região de referência são determinadas mediante uso dos dados de referência, e o valor de pixel de unidade sub-pel pode ser gerado mediante realização de filtração de interpolação em dois ou mais pixels de referência de unidade inteira de pel da estrutura de referência. Compensação de movimento pode ser realizada mediante combinação do valor de pixel de unidade sub-pel gerado e os dados residuais, e assim a decodificação de predição pode ser realizada.
[000241] Na operação 1480, uma imagem atual é reconstruída mediante uso dos valores de pixel obtidos mediante realização de decodificação de predição, e assim um vídeo é decodificado.
Codificação e Decodificação de Vídeo utilizando Interpolação de Suavização com base em Unidades de Codificação tendo Estruturas de Árvore
[000242] Aparelhos de codificação e decodificação de vídeo utilizando um filtro de interpolação de suavização baseado em unidades de codificação tendo uma estrutura de árvore, e métodos de codificação e decodificação de vídeo correspondendo aos aparelhos de codificação e decodificação de vídeo, de acordo com as modalidades da presente invenção, serão descritos agora em detalhe com referência às Figuras 13 a 27.
[000243] O aparelho de codificação de vídeo 100 pode codificar um vídeo com base nas unidades de codificação e unidades de transformação tendo uma estrutura de árvore.
[000244] Uma imagem atual de um vídeo pode ser dividida com base em uma unidade de codificação máxima para a imagem atual. Se a imagem atual for maior do que a unidade de codificação máxima, dados de imagem da imagem atual podem ser divididos em pelo menos uma unidade de codificação máxima. A unidade de codificação máxima pode ser uma unidade de dados tendo um tamanho de 32x32, 64x64, 128x128, 256x256, etc., em que um formato da unidade de dados é um quadrado tendo uma largura em comprimento em quadrados de 2. O codificador 120 pode codificar os dados de imagem de cada uma de pelo menos uma unidade de codificação máxima.
[000245] Uma unidade de codificação de acordo com uma modalidade da presente invenção pode ser caracterizada por um tamanho e uma profundidade máxima. A profundidade denota o número de vezes em que a unidade de codificação é dividida espacialmente a partir da unidade de codificação máxima, e à medida que a profundidade aumenta, as unidades de codificação mais profundas de acordo com as profundidades podem ser divididas a partir da unidade de codificação máxima para uma unidade de codificação mínima. Uma profundidade da unidade de codificação máxima é uma profundidade mais elevada e uma profundidade da unidade de codificação mínima é uma profundidade mais inferior. Como um tamanho de uma unidade de codificação correspondendo a cada profundidade diminui à medida que a profundidade da unidade de codificação máxima se aprofunda, uma unidade de codificação correspondendo a uma profundidade superior pode incluir uma pluralidade de unidades de codificação correspondendo a profundidades inferiores.
[000246] Conforme descrito acima, os dados de imagem da imagem atual são divididos em unidades de codificação máxima de acordo com o tamanho máximo da unidade de codificação, e cada uma das unidades de codificação máxima pode incluir unidades de codificação mais profundas que são divididas de acordo com as profundidades. Como a unidade de codificação máxima de acordo com uma modalidade da presente invenção é dividida de acordo com as profundidades, os dados de imagem de um domínio espacial incluídos na unidade de codificação máxima podem ser classificados hierarquicamente de acordo com as profundidades.
[000247] Uma profundidade máxima e um tamanho máximo de uma unidade de codificação, que limitam o número total de vezes em que uma altura e uma largura da unidade de codificação máxima são divididas hierarquicamente, podem ser predeterminados.
[000248] O codificador 120 codifica pelo menos uma região dividida obtida mediante divisão de uma região da unidade de codificação máxima de acordo com as profundidades, e determina a profundidade para produzir dados de imagem finalmente codificados de acordo com pelo menos uma região dividida. Em outras modalidades, o codificador 120 determina uma profundidade codificada mediante codificação dos dados de imagem nas unidades de codificação mais profundas de acordo com as profundidades, de acordo com a unidade de codificação máxima da imagem atual, e selecionando uma profundidade tendo o menor erro de codificação.
[000249] O codificador 120 pode produzir os dados de imagem codificados da unidade de codificação correspondendo à profundidade codificada determinada. Além disso, o codificador 120 pode transmitir informação sobre a profundidade codificada determinada para a unidade de saída 130 de tal modo que a informação sobre a profundidade codificada pode ser codificada como informação de codificação.
[000250] Os dados de imagem na unidade de codificação máxima são codificados com base nas unidades de codificação mais profundas correspondendo a pelo menos uma profundidade igual ou abaixo da profundidade máxima, e os resultados da codificação dos dados de imagem são comparados com base em cada uma das unidades de codificação mais profundas. Uma profundidade tendo o erro de codificação mínimo pode ser selecionada após comparação dos erros de codificação das unidades de codificação mais profundas. Pelo menos uma profundidade codificada pode ser selecionada para cada unidade de codificação máxima.
[000251] O tamanho da unidade de codificação máxima é dividido à medida que uma unidade de codificação é dividida hierarquicamente de acordo com as profundidades, e à medida que aumenta o número de unidades de codificação. Além disso, mesmo se as unidades de codificação corresponderem à mesma profundidade em uma unidade de codificação máxima, é determinado se deve ser dividida cada uma das unidades de codificação correspondendo à mesma profundidade para uma profundidade inferior mediante medição de um erro de codificação dos dados de imagem de cada unidade de codificação, separadamente. Consequentemente, mesmo quando os dados de imagem são incluídos em uma unidade de codificação máxima, os dados de imagem são divididos em regiões de acordo com as profundidades e os erros de codificação podem diferir de acordo com as regiões em uma unidade de codificação máxima, e assim as profundidades codificadas podem diferir de acordo com as regiões nos dados de imagem. Assim, uma ou mais profundidades codificadas podem ser determinadas em uma unidade de codificação máxima, e os dados de imagem da unidade de codificação máxima podem ser divididos de acordo com as unidades de codificação de pelo menos uma profundidade codificada.
[000252] Consequentemente, o codificador 120 pode determinar unidades de codificação tendo uma estrutura de árvore incluída na unidade de codificação máxima. As “unidades de codificação tendo uma estrutura de árvore” de acordo com uma modalidade da presente invenção incluem unidades de codificação correspondendo a uma profundidade determinada para ser a profundidade codificada, dentre todas as unidades de codificação mais profunda incluídas na unidade de codificação máxima. Uma unidade de codificação de uma profundidade codificada pode ser determinada hierarquicamente de acordo com as profundidades na mesma região da unidade de codificação máxima, e podem ser determinadas independentemente em diferentes regiões. Similarmente, uma profundidade codificada em uma região atual pode ser determinada independentemente a partir de uma profundidade codificada em outra região.
[000253] Uma profundidade máxima de acordo com uma modalidade da presente invenção é um índice relacionado ao número de vezes que a divisão é realizada a partir de uma unidade de codificação máxima para uma unidade de codificação mínima. Uma primeira profundidade máxima de acordo com uma modalidade da presente invenção pode denotar o número total de vezes em que a divisão é realizada a partir da unidade de codificação máxima para a unidade de codificação mínima. Uma segunda profundidade máxima de acordo com uma modalidade da presente invenção pode denotar o número total de níveis de profundidade a partir da unidade de codificação máxima para a unidade de codificação mínima. Por exemplo, quando uma profundidade da unidade de codificação máxima é de 0, uma profundidade de uma unidade de codificação, na qual a unidade de codificação máxima é dividida uma vez, pode ser ajustada para 1, e uma profundidade de uma unidade de codificação, na qual a unidade de codificação máxima dividida duas vezes, pode ser ajustada para 2. Aqui, se a unidade de codificação mínima for uma unidade de codificação na qual a unidade de codificação máxima é dividida quatro vezes, 5 níveis de profundidade, de profundidade 0, 1, 2, 3 e 4 existem, e assim a primeira profundidade máxima pode ser ajustada para 4, e a segunda profundidade máxima pode ser ajustada para 5.
[000254] A codificação de predição, e a transformação, podem ser realizadas de acordo com a unidade de codificação máxima. A codificação de predição e a transformação também são realizadas com base nas unidades de codificação mais profundas de acordo com uma profundidade igual ou uma profundidade menor do que a profundidade máxima, de acordo com a unidade de codificação máxima.
[000255] Como o número de unidades de codificação mais profunda aumenta sempre que a unidade de codificação máxima é dividida de acordo com as profundidades, a codificação incluindo a codificação de predição e a transformação é realizada em todas as unidades de codificação mais profunda geradas à medida que aumenta a profundidade. Para conveniência de descrição, a codificação de predição e a transformação serão descritas agora com base na unidade de codificação de uma profundidade atual, em uma unidade de codificação máxima.
[000256] O aparelho de codificação de vídeo 100 pode selecionar de forma variada um tamanho ou formato de uma unidade de dados para codificar os dados de imagem. Para codificar os dados de imagem, operações tal como codificação de predição, transformação, e codificação de entropia, são realizadas, e dessa vez, a mesma unidade de dados pode ser usada para todas as operações ou unidades de dados diferentes podem ser usadas para cada operação.
[000257] Por exemplo, o aparelho de codificação de vídeo 100 pode selecionar não apenas uma unidade de codificação para codificar os dados de imagem, mas também uma unidade de dados diferente da unidade de codificação de modo a realizar a codificação de predição nos dados de imagem na unidade de codificação.
[000258] Para realizar codificação de predição na unidade de codificação máxima, a codificação de predição pode ser realizada com base em uma unidade de codificação correspondendo a uma profundidade codificada, isto é, com base em uma unidade de codificação que não mais é dividida em unidades de codificação correspondendo a uma profundidade inferior. Em seguida, a unidade de codificação que não é mais dividida e se torna uma unidade básica para codificação de predição será referida agora como uma “unidade de predição”. Uma partição obtida mediante divisão da unidade de predição pode incluir uma unidade de predição ou uma unidade de dados obtida mediante divisão de pelo menos uma de uma altura e uma largura da unidade de predição.
[000259] Por exemplo, quando uma unidade de codificação de 2Nx2N (onde N é um número inteiro positivo) não é mais dividida e se torna uma unidade de predição de 2Nx2N, um tamanho de uma partição pode ser 2Nx2N, 2NxN, Nx2N, ou NxN. Exemplos de um tipo de partição incluem partições simétricas que são obtidas mediante divisão simétrica de uma altura ou largura da unidade de predição, partições obtidas mediante divisão assimétrica da altura ou largura da unidade de predição, tal como 1:n ou n:1, partições que são obtidas mediante divisão geométrica da unidade de predição, e partições tendo formatos arbitrários.
[000260] Um modo de predição da unidade de predição pode ser pelo menos um de um modo intra, um modo inter, e um modo de salto. Por exemplo, o modo intra ou o modo inter pode ser realizado na partição de 2Nx2N, 2NxN, Nx2N ou NxN. Além disso, o modo de salto pode ser realizado apenas na partição de 2Nx2N. A codificação é realizada independentemente em uma unidade de predição em uma unidade de codificação, desse modo selecionando um modo de predição tendo um erro de codificação mínimo.
[000261] O aparelho de codificação de vídeo 100 também pode realizar a transformação nos dados de imagem em uma unidade de codificação com base não apenas na unidade de codificação para codificar os dados de imagem, mas também com base em uma unidade de dados que é diferente da unidade de codificação.
[000262] Para realizar a transformação na unidade de codificação, a transformação pode ser realizada com base em uma unidade de transformação tendo um tamanho menor do que ou igual à unidade de codificação. Por exemplo, a unidade de transformação para a transformação pode incluir uma unidade de dados para um modo intra e uma unidade de dados para um modo inter.
[000263] Similarmente à unidade de codificação, a unidade de transformação na unidade de codificação pode ser dividida de forma recursiva em regiões de tamanhos menores, de modo que a unidade de transformação pode ser determinada independentemente em unidades de regiões. Assim, os dados residuais na unidade de codificação podem ser divididos de acordo com as unidades de transformação tendo a estrutura de árvore de acordo com as profundidades de transformação.
[000264] Uma profundidade de transformação indicando o número de vezes em que a divisão é realizada para alcançar a unidade de transformação mediante divisão da altura e largura da unidade de codificação, também pode ser estabelecida na unidade de transformação. Por exemplo, em uma unidade de codificação atual de 2Nx2N, uma profundidade de transformação pode ser de 0 quando o tamanho de uma unidade de transformação também for 2Nx2N, pode ser de 1 quando o tamanho da unidade de transformação for de NxN, e pode ser de 2 quando o tamanho da unidade de transformação for N/2xN/2. Em outras palavras, unidades de transformação tendo uma estrutura de árvore podem ser estabelecidas de acordo com as profundidades de transformação.
[000265] Informação de codificação de acordo com uma profundidade codificada requer não apenas informação sobre a profundidade codificada, mas também informação sobre codificação de predição e transformação. Consequentemente, o codificador 120 não apenas determina uma profundidade codificada tendo um erro de codificação mínimo, mas também determina um tipo de partição em uma unidade de predição, um modo de predição de acordo com as unidades de predição, e um tamanho de uma unidade de transformação para transformação. Para predição inter, a informação de codificação de acordo com uma profundidade codificada pode incluir informação relacionada à filtração de interpolação para interpolar unidades sub-pel.
[000266] Além disso, o codificador 120 pode realizar transformação mediante uso de unidades de transformação tendo uma estrutura de árvore para codificar as unidades de codificação, com base em um nível de divisão máximo das unidades de transformação, o qual é ajustado previamente e de forma restritiva em cada unidade de codificação máxima ou em uma unidade de codificação atual.
[000267] Em cada uma das unidades de codificação mais profunda de acordo com as profundidades, uma unidade de transformação básica tendo um tamanho menor do que ou igual a uma unidade de codificação pode ser dividida hierarquicamente em unidades de transformação ou profundidades de transformação inferiores. As unidades de transformação tendo uma estrutura de árvore podem incluir uma unidade de transformação básica tendo um tamanho máximo que é atualmente permitido, e unidades de transformação de nível inferior em relação a um nível de divisão máximo que é permitido para as unidades de codificação.
[000268] Após realizar a transformação em cada nível de acordo com uma profundidade de transformação em uma unidade de codificação atual, o codificador 120 pode determinar unidades de transformação tendo uma estrutura de árvore, as quais são independentes das unidades de transformação de regiões adjacentes e a partir de uma estrutura hierárquica entre unidades de transformação na mesma região de acordo com as profundidades de transformação.
[000269] Em outras palavras, unidades de transformação tendo uma estrutura de árvore podem ser determinadas mediante realização de transformação em cada unidades de codificação mediante uso de unidades de transformação de tamanhos diversos e então comparando os resultados da transformação. Embora uma unidade de codificação esteja sendo determinada, uma unidade de transformação para transformar a unidade de codificação pode ser determinado. Sempre que as unidades de codificação de acordo com cada uma ou mais profundidades são codificadas, as unidades de transformação de acordo com cada uma ou mais profundidades de transformação podem ser usadas para realizar a transformação.
[000270] Uma unidade de transformação tendo um erro de codificação mínimo tem que ser determinada para cada unidade de codificação. Para determinar uma profundidade de transformação tendo um erro de codificação mínimo em uma unidade de transformação, erros de codificação podem ser medidos e comparados em todas as unidades de transformação mais profundas de acordo com as profundidades. Uma unidade de transformação pode ser determinada como uma unidade para minimizar um erro de transformação de uma unidade de codificação.
[000271] Consequentemente, como uma combinação de uma unidade de codificação mais profunda e uma unidade de transformação mais profunda de acordo com as profundidades, a qual tem um erro de codificação mínimo, é determinado individualmente em cada região de uma unidade de codificação máxima, unidades de codificação tendo uma estrutura de árvore e unidades de transformação tendo uma estrutura de árvore podem ser determinadas.
[000272] Métodos de determinar unidades de codificação tendo uma estrutura de árvore, partições, e unidades de transformação tendo uma estrutura de árvore em uma unidade de codificação máxima, de acordo com as modalidades da presente invenção, serão descritos em detalhe posteriormente com referência às Figuras 15 a 25.
[000273] O codificador 120 pode medir um erro de codificação de unidades de codificação mais profunda de acordo com as profundidades mediante uso de otimização de distorção de taxa com base em multiplicadores Lagrangianos.
[000274] O aparelho de codificação de vídeo 100 pode produzir os dados de imagem da unidade de codificação máxima, os quais são codificados com base na pelo menos uma profundidade codificada determinada pelo codificador 120, e informação sobre um modo de codificação de acordo com a profundidade codificada, que é codificada pela unidade de saída 130, na forma de um fluxo de bits.
[000275] A informação sobre o modo de codificação de unidades de codificação mais profundas de acordo com as profundidades, que é determinada como uma imagem é codificada com base nas unidades de codificação, unidades de predição, e unidades de transformação tendo uma estrutura de árvore, podem ser incluídas em um cabeçalho, um conjunto de parâmetros de sequência (SPS), ou um conjunto de parâmetros de imagem (PPS) de um fluxo de bits.
[000276] Os dados de imagem codificados podem ser obtidos mediante codificação de dados residuais de uma imagem.
[000277] A informação sobre o modo de codificação de acordo com a profundidade codificada pode incluir informação sobre a profundidade codificada, sobre o tipo de partição na unidade de predição, o modo de predição, e o tamanho da unidade de transformação.
[000278] A informação sobre a profundidade codificada pode ser definida pelo uso de informação dividida de acordo com as profundidades, que representa se a codificação é realizada em unidades de codificação de uma profundidade inferior em vez de uma profundidade atual. Se a profundidade atual da unidade de codificação atual for a profundidade codificada, os dados de imagem na unidade de codificação atual são codificados e produzidos, e assim a informação dividida pode ser definida não para dividir a unidade de codificação atual para uma profundidade menor. Alternativamente, se a profundidade atual da unidade de codificação atual não for a profundidade codificada, a codificação é realizada na unidade de codificação da profundidade inferior, e assim a informação dividida pode ser definida para dividir a unidade de codificação atual para obter as unidades de codificação da profundidade inferior.
[000279] Se a profundidade atual não for a profundidade codificada, a codificação é realizada na unidade de codificação que é dividida para unidade de codificação da profundidade inferior. Como existe pelo menos uma unidade de codificação da profundidade inferior em uma unidade de codificação da profundidade atual, a codificação é realizada repetidamente em cada unidade de codificação da profundidade inferior, e assim a codificação pode ser realizada de forma recursiva para as unidades de codificação tendo a mesma profundidade.
[000280] Como as unidades de codificação tendo uma estrutura de árvore são determinadas para uma unidade de codificação máxima, e informação sobre pelo menos um modo de codificação é determinada para uma unidade de codificação de uma profundidade codificada, a informação sobre pelo menos um modo de codificação pode ser determinada para uma unidade de codificação máxima. Além disso, uma profundidade codificada dos dados de imagem da unidade de codificação máxima pode ser diferente de acordo com os locais, visto que os dados de imagem são divididos hierarquicamente de acordo com as profundidades, e assim a informação sobre o percurso codificado e o modo de codificação podem ser ajustados para os dados de imagem.
[000281] Consequentemente, a unidade de saída 130 pode atribuir informação de codificação sobre um percurso codificado correspondente e um modo de codificação para pelo menos uma da unidade de codificação, unidade de predição, e um modo de codificação para ao menos uma da unidade de codificação, unidade de predição, e uma unidade mínima incluída na unidade de codificação máxima.
[000282] A unidade mínima de acordo com uma modalidade da presente invenção é uma unidade de dados retangular obtida mediante divisão da unidade de codificação mínima constituindo a profundidade mais baixa por 4. Alternativamente, a unidade mínima pode ser uma unidade de dados retangular máxima que pode ser incluída em todas as unidades de codificação, unidades de predição, unidades de partição e unidades de transformação incluídas na unidade de codificação máxima.
[000283] Por exemplo, a informação de codificação produzida através da unidade de saída 130 pode ser classificada em informação de codificação de acordo com as unidades de codificação, e informação de codificação de acordo com as unidades de predição. A informação de codificação de acordo com as unidades de codificação pode incluir a informação sobre o modo de predição e sobre o tamanho das partições. A informação de codificação de acordo com as unidades de predição pode incluir informação sobre uma direção estimada de um modo inter, em relação a um índice de imagem de referência do modo inter, em relação a um vetor de movimento, em relação a um componente croma de um modo intra, e em relação a um método de interpolação do modo intra.
[000284] Informação sobre um tamanho máximo da unidade de codificação definido de acordo com as imagens, fatias, ou GOPs, e informação sobre uma profundidade máxima pode ser inserida em um cabeçalho, um SPS, ou um PPS de um fluxo de bits.
[000285] No aparelho de codificação de vídeo 100, a unidade de codificação mais profunda pode ser uma unidade de codificação obtida mediante divisão de uma altura ou largura de uma unidade de codificação de uma profundidade superior, que está uma camada acima, por dois. Em outras palavras, quando o tamanho da unidade de codificação da profundidade atual é 2Nx2N, o tamanho da unidade de codificação da profundidade inferior é NxN. Além disso, a unidade de codificação da profundidade atual tendo o tamanho de 2Nx2N pode incluir no máximo 4 das unidades de codificação da profundidade inferior.
[000286] Consequentemente, o aparelho de codificação de vídeo 100 pode formar as unidades de codificação tendo a estrutura de árvore mediante determinação das unidades de codificação tendo um formato ótimo e um tamanho ótimo para cada unidade de codificação máxima, com base no tamanho da unidade de codificação máxima e profundidade máxima determinada considerando-se as características da imagem atual. Além disso, como a codificação pode ser realizada em cada unidade de codificação máxima mediante uso de qualquer um dos vários modos de predição e transformações, um modo de codificação ótima pode ser determinado considerando as características da unidade de codificação de vários tamanhos de imagem.
[000287] Assim, se uma imagem tendo alta resolução ou grande quantidade de dados for codificada em um macro bloco convencional, um número de macro blocos por imagem aumenta excessivamente. Consequentemente, um número de peças de informação compactada gerados para cada macro bloco aumenta, e assim é difícil transmitir a informação compactada e diminui a eficiência de compactação de dados. Contudo, mediante uso do aparelho de codificação de vídeo 100, a eficiência de compactação de imagem pode ser aumentada uma vez que uma unidade de codificação é ajustada enquanto considerando as características de uma imagem enquanto aumentando o tamanho máximo de uma unidade de codificação enquanto considerando um tamanho da imagem.
[000288] A unidade de saída 130 pode codificar e emitir informação de codificação indicado um método de codificação usado para codificar um vídeo com base nas unidades de codificação tendo uma estrutura de árvore e unidades de transformação tendo uma estrutura de árvore. A informação de codificação pode incluir informação sobre vários modos de codificação das unidades de codificação correspondendo a uma profundidade codificada, e informação sobre a profundidade codificada.
[000289] Definições de vários termos, tal como uma unidade de codificação, uma profundidade, uma unidade de predição, uma unidade de transformação e informação sobre vários modos de codificação, para diversas operações do aparelho de decodificação de vídeo 200, são idênticas àquelas descritas com referência ao aparelho de codificação de vídeo 100.
[000290] O receptor 210 recebe um fluxo de bits de um vídeo codificado. O receptor e o extrator 220 analisam o fluxo de bits recebido. O receptor e o extrator 220 extraem os dados de imagem codificados para cada unidade de codificação a partir do fluxo de bits analisado, em que as unidades de codificação têm uma estrutura de árvore de acordo com cada unidade de codificação máxima, e produz os dados de imagem extraídos para o decodificador 230. O receptor e extrator 220 podem extrair informação sobre um tamanho máximo de uma unidade de codificação de uma imagem atual, a partir de um cabeçalho, de um SPS, ou de um PPS sobre a imagem atual.
[000291] Além disso, o receptor e o extrator 220 podem extrair informação de codificação sobre as unidades de codificação tendo uma estrutura de árvore de acordo com cada unidade de codificação máxima a partir do fluxo de bits analisado. A informação sobre uma profundidade codificada e um modo de codificação é extraída a partir da informação de codificação. A informação extraída sobre a profundidade codificada e o modo de codificação é emitida para o decodificador 230. Em outras palavras, os dados de imagem em um fluxo de bits podem ser divididos em unidade de codificação máxima de modo que o decodificador 230 pode decodificar os dados de imagem para cada unidade de codificação máxima.
[000292] A informação sobre a profundidade codificada e o modo de codificação de acordo com a unidade de codificação máxima pode ser estabelecida para informação sobre pelo menos uma unidade de codificação correspondendo à profundidade codificada, e informação sobre um modo de codificação pode incluir informação sobre um tipo de partição de uma unidade de codificação correspondente que corresponde à profundidade codificada, em relação ao modo de predição, e a um tamanho de uma unidade de transformação. Para predição inter, informação relacionada à filtração de interpolação para interpolar unidades sub-pel pode ser extraída a partir da informação de codificação de acordo com uma profundidade codificada. Além disso, a informação de divisão de acordo com as profundidades pode ser extraída como a informação sobre a profundidade codificada.
[000293] A informação sobre a profundidade codificada e o modo de codificação de acordo com cada unidade de codificação máxima extraída pelo receptor e extrator 220 é informação sobre uma profundidade codificada e um modo de codificação determinado para gerar um erro de codificação mínimo quando um codificador, tal como o aparelho de codificação de vídeo 100, realiza repetidamente a codificação para cada unidade de codificação mais profunda de acordo com as profundidades em conformidade com cada unidade de codificação máxima. Consequentemente, o aparelho de decodificação de vídeo 200 pode reconstruir uma imagem mediante decodificação dos dados de imagem de acordo com uma profundidade codificada e um modo de codificação que gera o erro de codificação mínimo.
[000294] Como a informação de codificação sobre a profundidade codificada, e o modo de codificação, podem ser atribuídos a uma unidade de dados predeterminada dentre uma unidade de codificação correspondente, uma unidade de predição, e uma unidade mínima, o receptor e extrator 220 pode extrair a informação sobre a profundidade codificada e o modo de codificação de acordo com as unidades de dados predeterminadas. As unidades de dados predeterminadas para os quais a mesma informação sobre a profundidade codificada e o modo de codificação são atribuídos pode ser deduzida como sendo as unidades de dados incluídas na mesma unidade de codificação máxima.
[000295] O decodificador 230 pode determinar pelo menos uma profundidade codificada de uma unidade de codificação máxima mediante uso de informação dividida de acordo com as profundidades. Se a informação de divisão representar que dados de imagem não mais são divididos na profundidade atual, a profundidade atual é a profundidade codificada. Consequentemente, o decodificador 230 pode decodificar os dados de imagem codificados de pelo menos uma unidade de codificação correspondendo a cada profundidade codificada na unidade de codificação máxima atual mediante uso da informação sobre o tipo de partição da unidade de predição, o modo de predição, e o tamanho da unidade de transformação para cada unidade de codificação correspondendo à profundidade codificada, e emitir os dados de imagem da unidade de codificação máxima atual.
[000296] Em outras palavras, unidades de dados contendo a informação de codificação incluindo a mesma informação de divisão podem ser agrupadas mediante observação do conjunto de informações de codificação atribuído para a unidade de dados predeterminada dentre a unidade de codificação, a unidade de predição e a unidade mínima, e as unidades de dados agrupadas podem ser consideradas como sendo uma unidade de dados a ser decodificada pelo decodificador 230 no mesmo modo de codificação.
[000297] decodificador 230 pode reconstruir a imagem atual mediante decodificação dos dados de imagem codificados em cada unidade de codificação máxima com base na informação sobre a profundidade codificada e o modo de codificação de acordo com as unidades de codificação máxima. O tipo de partição, o modo de predição, e a unidade de transformação podem ser lidos como o modo de codificação para cada unidade de codificação dentre as unidades de codificação tendo a estrutura de árvore incluída em cada unidade de codificação máxima. Um processo de decodificação pode incluir uma predição incluindo predição intra e compensação de movimento e uma transformação inversa.
[000298] decodificador 230 pode realizar predição intra ou compensação de movimento de acordo com uma partição e um modo de predição de cada unidade de codificação com base na informação sobre o tipo de partição e o modo de predição da unidade de predição das unidades de codificação tendo uma estrutura de árvore.
[000299] Além disso, o decodificador 230 pode ler a estrutura das unidades de transformação tendo uma estrutura de árvore e pode realizar transformação inversa em cada unidade de codificação com base nas unidades de transformação.
[000300] O equipamento de decodificação de vídeo 90 pode obter informação sobre ao menos uma unidade de codificação que gera o erro de codificação mínimo quando a codificação é realizada de forma recursiva para cada unidade de codificação máxima, e pode usar a informação para decodificar a imagem atual. Em outras palavras, as unidades de codificação tendo a estrutura de árvore determinada para ser a unidade de codificação ótima em cada unidade de codificação máxima podem ser decodificadas. Além disso, o tamanho máximo da unidade de codificação é determinado considerando a resolução e uma quantidade de dados de imagem.
[000301] Consequentemente, mesmo se os dados de imagem tiverem elevada resolução e uma grande quantidade de dados, os dados de imagem podem ser decodificados eficientemente e restaurados mediante uso de um tamanho de uma unidade de codificação e de um modo de codificação, os quais são determinados de forma adaptativa de acordo com as características dos dados de imagem, mediante uso de informação sobre um modo de codificação ótimo recebido a partir de um codificador.
[000302] A Figura 15 é um diagrama para descrever um conceito das unidades de codificação hierárquicas de acordo com uma modalidade exemplar.
[000303] Um tamanho de uma unidade de codificação pode ser expresso em largura x altura, e pode ser 64x64, 32x32, 16x16 e 8x8. Uma unidade de codificação de 64x64 pode ser dividida em partições de 64x64, 64x32, 32x64 ou 32x32, e uma unidade de codificação de 32x32 pode ser dividida em partições de 32x32, 32x16, 16x32, ou 16x16, uma unidade de codificação de 16x16 pode ser dividida em partições de 16x16, 16x8, 8x16 ou 8x8, e uma unidade de codificação de 8x8 pode ser dividida em partições de 8x8, 8x4, 4x8 ou 4x4.
[000304] Nos dados de vídeo 310, uma resolução é de 1920x1080, um tamanho máximo de uma unidade de codificação é de 64, e uma profundidade máxima é de 2. Nos dados de vídeo 320, uma resolução é de 1920x1080, um tamanho máximo de codificação é de 64, e uma profundidade máxima é de 3. Nos dados de vídeo 330, uma resolução é de 352x288, um tamanho máximo de uma unidade de codificação é de 16, e uma profundidade máxima é de 1. A profundidade máxima mostrada na Figura 15 denota um número total de divisões a partir de uma unidade de codificação máxima para uma unidade de decodificação mínima.
[000305] Se uma resolução for elevada ou se uma quantidade de dados for grande, um tamanho máximo de uma unidade de codificação pode ser tão grande de modo a não apenas aumentar a eficiência de codificação, mas também refletir de forma exata as características de uma imagem. Consequentemente, o tamanho máximo da unidade de codificação dos dados de vídeo 310 e 320 tendo a resolução mais alta do que os dados de vídeo 330 pode ser de 64.
[000306] Como a profundidade máxima dos dados de vídeo 310 é de 2, as unidades de codificação 315 dos dados de vídeo 310 podem incluir uma unidade de codificação máxima tendo um tamanho de eixo longo de 64, e unidades de codificação tendo tamanhos de eixo longos de 32 e 16 uma vez que as profundidades são aprofundadas para duas camadas mediante divisão duas vezes da unidade de codificação máxima. Entretanto, como a profundidade máxima dos dados de vídeo 330 é de 1, as unidades de codificação 335 dos dados de vídeo 330 podem incluir uma unidade de codificação máxima tendo um tamanho de eixo longo de 16, e unidades de codificação tendo um tamanho de eixo longo de 8 uma vez que as profundidades são aprofundadas para uma camada mediante divisão uma vez da unidade de codificação máxima.
[000307] Como a profundidade máxima dos dados de vídeo 320 é de 3, as unidades de codificação 325 dos dados de vídeo 320 podem incluir uma unidade de codificação máxima tendo um tamanho de eixo longo de 64, e unidades de codificação tendo tamanhos de eixo longo de 32, 16 e 8 uma vez que as profundidades são aprofundadas para 3 camadas mediante divisão da unidade de codificação máxima três vezes. À medida que a profundidade é aprofundada, informação detalhada pode ser expressa com exatidão.
[000308] A Figura 16 é um diagrama de blocos de um codificador de imagem 400 com base nas unidades de codificação, de acordo com uma modalidade exemplar.
[000309] O codificador de imagem 400 realiza operações do determinador de unidade de codificação 120 do equipamento de codificação de vídeo 100 para codificar os dados de imagem. Em outras palavras, um preditor intra 410 realiza predição intra nas unidades de codificação em um modo intra, dentre um quadro atual 405, e um estimador de movimento 420 e um compensador de movimento 425 realiza estimação inter e compensação de movimento nas unidades de codificação em um modo inter dentre o quadro atual 405 mediante uso do quadro atual 405, e um quadro de referência 495.
[000310] Para realizar com exatidão estimação de movimento mediante uso de pixels de referência em unidades sub-pel, o estimador de movimento 420 e o compensador de movimento 425 podem gerar pixels em unidades sub-pel mediante interpolação de pixels em unidades inteiras de pel. Um filtro de interpolação para gerar pixels em unidades sub-pel pode ser o filtro de interpolação de suavização descrito acima em relação às Figuras 1 e 13A.
[000311] Dados emitidos a partir do preditor intra 410, do estimador de movimento 420, e do compensador de movimento 425 são emitidos como um coeficiente de transformação quantizado através do transformador 430 e de um quantizador 440. O coeficiente de transformação quantizado é restaurado como dados em um domínio espacial através de um quantizador inverso 460 e um transformador inverso 470, e os dados restaurados no domínio espacial são emitidos como o quadro de referência 495 após ser pós-processado através de uma unidade de desblocagem 480 e uma unidade de filtração de laço 490. O coeficiente de transformação quantizado pode ser emitido como um fluxo de bits 455 através de um codificador de entropia 450.
[000312] Para que o codificador de imagem 400 seja aplicado no equipamento de codificação de vídeo 100, todos os elementos do codificador de imagem 400, isto é, o preditor intra 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 inverso 470, a unidade de desblocagem 480, e a unidade de filtração de laço 490 realizam operações com base em cada unidade de codificação dentre unidades de codificação tendo uma estrutura de árvore enquanto considerando a profundidade máxima de cada unidade de codificação máxima.
[000313] Especificamente, o preditor intra 410, o estimador de movimento 420, e o compensador de movimento 425 determinam partições e um modo de predição de cada unidade de codificação dentre as unidades de codificação tendo uma estrutura de árvore enquanto considerando o tamanho máximo e a profundidade máxima de uma unidade de codificação máxima atual, e o transformador 430 determina o tamanho da unidade de transformação em cada unidade de codificação dentre as unidades de codificação tendo uma estrutura de árvore.
[000314] A Figura 17 é um diagrama de blocos de um decodificador de imagem 500 com base nas unidades de codificação, de acordo com uma modalidade exemplar.
[000315] Um analisador 510 analisa os dados de imagem codificados a serem decodificados e informação sobre a codificação exigida para decodificação a partir de um fluxo de bits 505. Os dados de imagem codificados são emitidos como dados quantizados inversos através de um decodificador de entropia 520 e um quantizador inverso 530, e os dados quantizados inversos são restaurados para dados de imagem em um domínio espacial através de um transformador inverso 540.
[000316] Um preditor intra 550 realiza predição intra nas unidades de codificação em um modo intra com relação aos dados de imagem no domínio espacial, e um compensador de movimento 560 realiza compensação de movimento nas unidades de codificação em um modo inter, mediante uso de um quadro de referência 585.
[000317] Para realizar com exatidão a estimação de movimento mediante uso de pixels de referência em unidades sub-pel, o compensador de movimento 560 pode gerar pixels em unidades sub-pel mediante interpolação de pixels em unidades inteiras de pel. Um filtro de interpolação para gerar pixels em unidades sub-pel pode ser o filtro de interpolação de suavização descrito acima em relação às Figuras 2 e 13B.
[000318] Os dados de imagem no domínio espacial, os quais passaram através do preditor intra 550 e do compensador de movimento 560, podem ser emitidos como um quadro restaurado 595 após serem pós-processados através de uma unidade de desblocagem 570 e uma unidade de filtração de laço 580. Além disso, os dados de imagem que são pós-processados através da unidade de desblocagem 570 e da unidade de filtração de laço 580 podem ser emitidos como o quadro de referência 585.
[000319] Para decodificar os dados de imagem no decodificador 95 do equipamento de decodificação de vídeo 90, o decodificador de imagem 500 pode realizar as operações que são executadas após o analisador 510.
[000320] Para que o decodificador de imagem 500 seja aplicado no equipamento de decodificação de vídeo 200, todos os elementos do decodificador de imagem 500, isto é, o analisador 510, o decodificador de entropia 520, o quantizador inverso 530, o transformador inverso 540, o preditor intra 550, o compensador de movimento 560, a unidade de desblocagem 570, e a unidade de filtração de laço 580 realizam operações com base nas unidades de codificação tendo uma estrutura de árvore para cada unidade de codificação máxima.
[000321] Especificamente, a predição intra 550 e o compensador de movimento 560 realizam operações com base nas partições e em um modo de predição para cada uma das unidades de codificação tendo uma estrutura de árvore, e o transformador inverso 540 realiza operações com base em um tamanho de uma unidade de transformação para cada unidade de codificação.
[000322] A Figura 18 é um diagrama ilustrando unidades de codificação mais profunda de acordo com as profundidades, e partições, de acordo com uma modalidade exemplar.
[000323] O equipamento de codificação de vídeo 100 e o equipamento de decodificação de vídeo 200 utilizam unidades de codificação hierárquicas de modo a considerar as características de uma imagem. Uma altura máxima, uma largura máxima, e uma profundidade máxima das unidades de codificação podem ser determinadas de forma adaptativa de acordo com as características da imagem, ou podem ser ajustadas de forma diferente por um usuário. Tamanhos de unidades de codificação mais profundas, de acordo com as profundidades, podem ser determinados de acordo com o tamanho máximo predeterminado da unidade de codificação.
[000324] Em uma estrutura hierárquica 600 das unidades de codificação, de acordo com uma modalidade exemplar, a altura máxima e a largura máxima das unidades de codificação são individualmente de 64, e a profundidade máxima é de 4. Como uma profundidade é aprofundada ao longo de um eixo vertical da estrutura hierárquica 600, uma altura e uma largura da unidade de codificação mais profunda são individualmente divididas. Além disso, uma unidade de predição e as partições, que são as bases para codificação de predição de cada unidade de codificação mais profunda, são mostradas ao longo de um eixo horizontal da estrutura hierárquica 600.
[000325] Em outras palavras, uma unidade de codificação 610 é uma unidade de codificação máxima na estrutura hierárquica 600, em que uma profundidade é de 0 e um tamanho, isto é, uma altura por largura, é de 64x64. A profundidade é aprofundada ao longo do eixo vertical, e existe uma unidade de codificação 620, tendo um tamanho de 32x32, e uma profundidade de 1; uma unidade de codificação 630, tendo um tamanho de 16x16, e uma profundidade de 2; uma unidade de codificação 640, tendo um tamanho de 8x8, e uma profundidade de 3; e uma unidade de codificação 650, tendo um tamanho de 4x4, e uma profundidade de 4. A unidade de codificação 650 tendo o tamanho de 4x4 e a profundidade de 4 é uma unidade de codificação mínima.
[000326] A unidade de predição e as partições de uma unidade de codificação são arranjadas ao longo do eixo horizontal de acordo com cada profundidade. Em outras palavras, se a unidade de codificação 610, tendo o tamanho de 64x64, e a profundidade de 0, for uma unidade de predição, a unidade de predição pode ser dividida em partições incluídas na unidade de codificação 610, isto é, uma partição 610 tendo um tamanho de 64x64, partições 612 tendo o tamanho de 64x32, partições 614 tendo o tamanho de 32x64, ou partições 616 tendo o tamanho de 32x32.
[000327] Similarmente, uma unidade de predição da unidade de codificação 620 tendo o tamanho de 32x32 e a profundidade de 1 pode ser dividida em partições incluídas na unidade de codificação 620, isto é, uma partição 620 tendo um tamanho de 32x32, partições 622 tendo um tamanho de 32x16, partições 624 tendo um tamanho de 16x32, e partições 626 tendo um tamanho de 16x16.
[000328] Similarmente, uma unidade de predição da unidade de codificação 630 tendo o tamanho de 16x16 e a profundidade de 2 pode ser dividida em partições incluídas na unidade de codificação 630, isto é, uma partição tendo um tamanho de 16x16 incluída na unidade de codificação 630, partições 632 tendo um tamanho de 16x8, partições 634 tendo um tamanho de 8x16, e partições 636 tendo um tamanho de 8x8.
[000329] Similarmente, uma unidade de predição da unidade de codificação 640 tendo o tamanho de 8x8 e a profundidade de 3 pode ser dividida em partições incluídas na unidade de codificação 640, isto é, uma partição tendo um tamanho de 8x8 incluída na unidade de codificação 640, partições 642 tendo um tamanho de 8x4, partições 644 tendo um tamanho de 4x8, e partições 646 tendo um tamanho de 4x4.
[000330] Para determinar a pelo menos uma profundidade codificada das unidades de codificação constituindo a unidade de codificação máxima 610, a unidade de decodificação 11 do aparelho de codificação de vídeo 10 realiza codificação para as unidades de codificação correspondendo a cada profundidade incluída na unidade de codificação máxima 610.
[000331] Um número de unidades de codificação mais profunda, de acordo com as profundidades incluindo dados na mesma faixa e no mesmo tamanho, aumenta à medida que é aprofundada a profundidade. Por exemplo, quatro unidades de codificação correspondendo a uma profundidade de 2 são exigidas para cobrir os dados que são incluídos em uma unidade de codificação correspondendo a uma profundidade de 1. Consequentemente, para comparar os resultados de codificação dos mesmos dados de acordo com as profundidades, a unidade de codificação correspondendo à profundidade de 1; e quatro unidades de codificação correspondendo à profundidade de 2; são individualmente codificadas.
[000332] Para realizar a codificação para cada profundidade, um erro de codificação mínimo pode ser selecionado para a profundidade atual mediante realização de codificação para cada unidade de predição nas unidades de codificação correspondendo à profundidade atual, ao longo do eixo horizontal da estrutura hierárquica 600. Alternativamente, o erro de codificação mínimo pode ser pesquisado mediante comparação dos erros de codificação mínimos de acordo com as profundidades, mediante realização de codificação para cada profundidade à medida que a profundidade é aprofundada ao longo do eixo vertical da estrutura hierárquica 600. Uma profundidade e uma partição tendo o erro de codificação mínimo na unidade de codificação 610 podem ser selecionadas como a profundidade codificada e um tipo de partição da unidade de codificação 610.
[000333] A Figura 19 é um diagrama para descrever uma relação entre uma unidade de codificação 710 e uma unidade de transformação 720, de acordo com uma modalidade da presente invenção.
[000334] O aparelho de codificação de vídeo 100 ou o aparelho de decodificação de vídeo 200 de acordo com uma modalidade pode codificar ou decodificar uma imagem de acordo com as unidades de codificação tendo tamanhos menores do que ou iguais a uma unidade de codificação máxima para cada unidade de codificação máxima. Tamanhos de unidades de transformação para transformação durante codificação podem ser selecionados com base nas unidades de dados que não são maiores do que uma unidade de codificação correspondente.
[000335] Por exemplo, no aparelho de codificação de vídeo 100 ou 200, ou o aparelho de decodificação de vídeo 200, se um tamanho da unidade de codificação 710 é de 64x64, a transformação pode ser realizada mediante uso das unidades de transformação 720 tendo um tamanho de 32x32.
[000336] Além disso, os dados da unidade de codificação 710 tendo o tamanho de 64x64 podem ser codificados mediante realização da transformação em cada uma das unidades de transformação tendo o tamanho de 32x32, 16x16, 8x8, e 4x4, que são menores do que 64x64, e então uma unidade de transformação tendo o erro de codificação mínimo pode ser selecionada.
[000337] A Figura 20 é um diagrama para descrever informação de codificação das unidades de codificação correspondendo a uma profundidade codificada, de acordo com uma modalidade da presente invenção.
[000338] A unidade de saída 130 do aparelho de codificação de vídeo 100 pode codificar e transmitir informação 800 sobre um tipo de partição, informação 810 sobre um modo de predição, e informação 820 sobre um tamanho de uma unidade de transformação para cada unidade de codificação correspondendo a uma profundidade codificada, como informação sobre um modo de codificação.
[000339] A informação 800 indica informação sobre um formato de uma partição obtida mediante divisão de uma unidade de predição de uma unidade de codificação atual, em que a partição é uma unidade de dados para codificação de predição da unidade de codificação atual. Por exemplo, uma unidade de codificação atual CU_0 tendo um tamanho de 2Nx2N pode ser dividida em qualquer uma de uma partição 802 tendo um tamanho de 2Nx2N, uma partição 804 tendo um tamanho de 2NxN, uma partição de 806 tendo um tamanho de Nx2N, e uma partição 808 tendo um tamanho de NxN. Aqui, a informação 800 sobre um tipo de partição é estabelecida para indicar uma da partição 804 tendo um tamanho de 2NxN, a partição 806 tendo um tamanho de Nx2N, e a partição 808 tendo um tamanho de NxN.
[000340] A informação 810 indica um modo de predição de cada partição. Por exemplo, a informação 810 pode indicar um modo de codificação de predição realizado em uma partição indicada pela informação 800, isto é, um modo intra 812, um modo inter 814, ou um modo de salto 816.
[000341] A informação 820 indica uma unidade de transformação para ser baseada em quando a transformação é realizada em uma unidade de codificação atual. Por exemplo, a unidade de transformação pode ser uma primeira unidade de transformação intra 822, uma segunda unidade de intra transformação 824, uma primeira unidade de inter transformação 826, ou uma segunda unidade de intra transformação 828.
[000342] O receptor e o extrator 220 do aparelho de decodificação de vídeo 200 podem extrair e usar a informação 800, 810 e 820 para decodificação, de acordo com cada unidade de codificação mais profunda.
[000343] A Figura 21 é um diagrama de unidades de codificação mais profunda de acordo com as profundidades, de acordo com uma modalidade exemplar.
[000344] Informação de divisão pode ser usada para indicar uma mudança de uma profundidade. A informação de divisão indica se uma unidade de codificação de uma profundidade atual é dividida em unidades de codificação de uma profundidade inferior.
[000345] Uma unidade de predição 910 para codificação de predição de uma unidade de codificação 900 tendo uma profundidade de 0 e um tamanho de 2N_0x2N_0 pode incluir partições de um tipo de partição 912 tendo um tamanho de 2N_0x2N_0, um tipo de partição 914 tendo um tamanho de 2N_0xN_0, um tipo de partição 916 tendo um tamanho de N_0x2N_0, e um tipo de partição 918 tendo um tamanho de N_0xN_0. A Figura 9 ilustra apenas os tipos de partição 912 a 918 que são obtidos mediante divisão simétrica da unidade de predição 910, porém um tipo de partição não é limitado a isso, e as partições da unidade de predição 910 podem incluir partições assimétricas, partições tendo um formato predeterminado e partições tendo um formato geométrico.
[000346] A codificação de predição é realizada de forma repetida em uma partição tendo um tamanho de 2N_0x2N_0, duas partições tendo um tamanho de 2N_0xN_0, duas partições tendo um tamanho de N_0x2N_0, e quatro partições tendo um tamanho de N_0xN_0, de acordo com cada tipo de partição. A codificação de predição em um modo intra e em um modo inter pode ser realizada nas partições tendo os tamanhos de 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 e N_0xN_0. A codificação de predição em um modo de salto é realizada apenas na partição tendo o tamanho de 2N_0x2N_0.
[000347] Erros de codificação incluindo a codificação de predição nos tipos de partição 912 a 918 são comparados, e o erro de codificação mínimo é determinado entre os tipos de partição. Se um erro de codificação for menor em um dos tipos de partição 912 a 916, a unidade de predição 910 pode não ser dividida em uma profundidade inferior.
[000348] Se o erro de codificação for o menor no tipo de partição 918, uma profundidade é mudada de 0 para 1 para dividir o tipo de partição 918 na operação 920, e a codificação é realizada repetidamente nas unidades de codificação 930 tendo uma profundidade de 2 e um tamanho de N_0xN_0 para procurar um erro de codificação mínimo.
[000349] Uma unidade de predição 940 para codificação de predição da unidade de codificação 930 tendo uma profundidade de 1 e um tamanho de 2N_1x2N_1(=N_0xN_0) pode incluir partições de um tipo de partição 942 tendo um tamanho de 2N_1x2N_1, um tipo de partição 944 tendo um tamanho de 2N_1xN_1, um tipo de partição 946 tendo um tamanho de N_1x2N_1, e um tipo de partição 948 tendo um tamanho de N_1xN_1.
[000350] Se um erro de codificação for o menor no tipo de partição 948, uma profundidade é mudada de 1 para 2 para dividir o tipo de partição 948 na operação 950, e a codificação é realizada repetidamente nas unidades de codificação 960, as quais têm uma profundidade de 2 e um tamanho de N_2xN_2 para procurar um erro de codificação mínimo.
[000351] Quando uma profundidade máxima é d, a operação de divisão de acordo com cada profundidade pode ser realizada até quando uma profundidade se tornar d-1; e a informação de divisão pode ser codificada até quando uma profundidade for uma de 0 a d-2. Em outras palavras, quando a codificação é realizada até quando a profundidade é d-1 após uma unidade de codificação correspondendo a uma profundidade de d-2 ser dividida na operação 970, uma unidade de predição 990 para codificação de predição de uma unidade de codificação 980 tendo uma profundidade de d-1 e um tamanho de 2N_(d-1)x2N_(d- 1) pode incluir partições de um tipo de partição 992 tendo um tamanho de 2N_(d-1)x2N_(d-1), um tipo de partição 994 tendo um tamanho de 2N_(d-1)xN_(d-1), um tipo de partição 996 tendo um tamanho de N_(d-1)x2N_(d-1), um tipo de partição 998 tendo um tamanho de N_(d-1)xN_(d-1).
[000352] Codificação de predição pode ser realizada repetidamente em uma partição tendo um tamanho de 2N_(d- 1)x2N_(d-1), duas partições tendo um tamanho de 2N_(d-1)xN_(d- 1), duas partições tendo um tamanho de N_(d-1)x2N_(d-1), quatro partições tendo um tamanho de N_(d-1)xN_(d-1) dentre os tipos de partição 992 a 998 para procurar um tipo de partição tendo um erro de codificação mínimo.
[000353] Mesmo quando o tipo de partição 998 tem o erro de codificação mínimo, como uma profundidade máxima é d, uma unidade de codificação CU_(d-1), tendo uma profundidade de d-1 não mais é dividida para uma profundidade inferior, e uma profundidade codificada para as unidades de codificação constituindo uma unidade de codificação máxima atual 900 é determinada para ser d-1 e um tipo de partição da unidade de codificação máxima atual 900 pode ser determinada para ser N_(d-1)xN_(d-1). Além disso, como a profundidade máxima é d e uma unidade de codificação mínima 980 tendo a profundidade mais baixa de d-1 não mais é dividida para uma profundidade inferior, a informação de divisão para a unidade de codificação mínima 980 não é estabelecida.
[000354] A unidade de dados 999 pode ser uma unidade mínima para a unidade de codificação máxima atual. Uma unidade mínima de acordo com uma modalidade exemplar pode ser uma unidade de dados retangular obtida mediante divisão de uma unidade de codificação mínima 980 por 4. Mediante realização da codificação repetidamente, o equipamento de codificação de vídeo 100 pode selecionar uma profundidade tendo o erro de codificação mínimo mediante comparação dos erros de codificação de acordo com as profundidades da unidade de codificação 900 para determinar uma profundidade codificada, e estabelecer um tipo de partição correspondente e um modo de predição como um modo de codificação da profundidade codificada.
[000355] Como tal, os erros de codificação mínimos de acordo com as profundidades são comparados em todas as profundidades de 1 a d, e a profundidade tendo o menor erro de codificação pode ser determinada como uma profundidade codificada. A profundidade codificada, o tipo de partição da unidade de predição, e o modo de predição podem ser codificados e transmitidos como informação sobre um modo de codificação. Além disso, como uma unidade de codificação é dividida a partir de uma profundidade de 0 até uma profundidade codificada, apenas a informação de divisão da profundidade codificada é ajustada para 0, e a informação de divisão das profundidades excluindo a profundidade codificada é ajustada para 1.
[000356] O receptor e o extrator 220 do aparelho de decodificação de vídeo 200 podem extrair e usar a informação sobre a profundidade codificada e a unidade de predição da unidade de codificação 900 para decodificar a partição 912. O aparelho de decodificação de vídeo 200 pode determinar uma profundidade, na qual a informação dividida é 0, como uma profundidade codificada mediante uso da informação dividida de acordo com as profundidades, e usar a informação sobre um modo de codificação da profundidade correspondente para decodificação.
[000357] As Figuras 22 a 24 são diagramas para descrever uma relação entre as unidades de codificação 1010, unidades de predição 1060, e unidades de transformação 1070, de acordo com uma modalidade exemplar.
[000358] As unidades de codificação 1010 são unidades de codificação que têm uma estrutura de árvore, correspondendo às profundidades codificadas determinadas pelo aparelho de codificação de vídeo 100, em uma unidade de codificação máxima. As unidades de predição 1060 são partições das unidades de predição de cada uma das unidades de codificação 1010, e as unidades de transformação 1070 são unidades de transformação de cada uma das unidades de codificação 1010.
[000359] Quando uma profundidade de uma unidade de codificação máxima é 0 nas unidades de codificação 1010, as profundidades das unidades de codificação 1012 e 1054 são 1, as profundidades das unidades de codificação 1014, 1016, 1018, 1028, 1050, e 1052 são 2, as profundidades das unidades de decodificação 1020, 1022, 1024, 1026, 1030, 1032 e 1048 são 3, e as profundidades das unidades de codificação 1040, 1042, 1044 e 1046 são 4.
[000360] Nas unidades de predição 1060, algumas unidades de codificação 1014, 1016, 1022, 1032, 1048, 1050, 1052, 1054 são obtidas mediante divisão das unidades de codificação nas unidades de codificação 1010. Em outras palavras, tipos de partição nas unidades de codificação 1014, 1022, 1050, e 1054 têm um tamanho de 2NxN, os tipos de partição nas unidades de codificação 1016, 1048 e 1052 têm um tamanho de Nx2N, e um tipo de partição da unidade de codificação 1032 tem um tamanho de NxN. As unidades de predição e partições das unidades de codificação 1010 são menores do que ou iguais a cada unidade de codificação.
[000361] Transformação ou transformação inversa é realizada nos dados de imagem da unidade de codificação 1052 nas unidades de transformação 1070 em uma unidade de dados que é menor do que a unidade de codificação 1052. Além disso, as unidades de codificação 1014, 1016, 1022, 1032, 1048, 1050 e 1052 nas unidades de transformação 1070 são diferentes daquelas nas unidades de predição 1060 em termos de tamanhos e formatos. Em outras palavras, os aparelhos de codificação e decodificação de vídeo 100 e 200 podem realizar predição intra, estimação de movimento, compensação de movimento, transformação, e transformação inversa individualmente em uma unidade de dados na mesma unidade de codificação.
[000362] Consequentemente, a codificação é realizada de forma recursiva em cada uma das unidades de codificação tendo uma estrutura hierárquica em cada região de uma unidade de codificação máxima para determinar uma unidade de codificação ótima, e assim unidades de codificação que têm uma estrutura de árvore recursiva podem ser obtidas. A informação de codificação pode incluir informação dividida sobre uma unidade de codificação, informação sobre um tipo de partição, informação sobre um modo de predição, e informação sobre um tamanho de uma unidade de transformação. A Tabela 1 mostra a informação de codificação que pode ser estabelecida pelos aparelhos de codificação de vídeo e de decodificação de vídeo 100 e 200. Tabela 1
Figure img0028
[000363] A unidade de saída 130 do aparelho de codificação de vídeo 100 pode emitir a informação de codificação sobre as unidades de codificação tendo uma estrutura de árvore, e o receptor e extrator 220, do aparelho de decodificação de vídeo 200, pode extrair a informação de codificação sobre as unidades de codificação tendo uma estrutura de árvore a partir de um fluxo de bits recebido.
[000364] A informação de divisão indica se uma unidade de codificação atual é dividida em unidades de codificação de uma profundidade inferior. Se a informação dividida de uma profundidade atual d for 0, uma profundidade, na qual uma unidade de codificação atual não mais é dividida em uma profundidade inferior, é uma profundidade codificada, e assim a informação sobre um tipo de partição, o modo de predição, e um tamanho de uma unidade de transformação, pode ser definida para a profundidade codificada. Se a unidade de codificação atual for dividida adicionalmente de acordo com a informação dividida, a codificação é realizada independentemente em quatro unidades de codificação divididas de uma profundidade inferior.
[000365] Um modo de predição pode ser um de: um modo intra, um modo inter, e um modo de salto. O intra-modo e o inter-modo podem ser definidos em todos os tipos de partição, e o modo de salto é definido apenas em um tipo de partição tendo um tamanho de 2Nx2N.
[000366] A informação sobre o tipo de partição pode indicar tipos de partição simétrica tendo tamanhos de 2Nx2N, 2NxN, Nx2N, e NxN, que são obtidos mediante divisão de forma simétrica de uma altura ou de uma largura de uma unidade de predição, e tipos de partição assimétrica tendo tamanhos de 2NxnU, 2NxnD, nLx2N e nRx2N, os quais são obtidos mediante divisão de forma assimétrica da altura ou largura da unidade de predição. Os tipos de partição assimétrica tendo os tamanhos de 2NxnU e 2NxnD podem ser obtidos respectivamente mediante divisão da altura da unidade de predição em 1:3 e 3:1, e os tipos de partição assimétrica tendo os tamanhos de nLx2N e nRx2N podem ser obtidos respectivamente mediante divisão da largura da unidade de predição em 1:3 e 3:1.
[000367] O tamanho da unidade de transformação pode ser ajustado para ser de dois tipos no modo intra e de dois tipos no modo inter. Em outras palavras, se a informação dividida da unidade de transformação for 0, o tamanho da unidade de transformação pode ser 2Nx2N, que é o tamanho da unidade de codificação atual. Se informação dividida da unidade de transformação for 1, as unidades de transformação podem ser obtidas mediante divisão da unidade de codificação atual. Além disso, se um tipo de divisão da unidade de codificação atual tendo o tamanho de 2Nx2N for um tipo de partição assimétrica, um tamanho de uma unidade de transformação pode ser NxN, e se o tipo de partição da unidade de codificação atual for um tipo de partição assimétrica, o tamanho da unidade de transformação pode ser N/2xN/2.
[000368] A informação de codificação sobre as unidades de codificação tendo uma estrutura de árvore pode incluir ao menos uma de uma unidade de codificação correspondendo a uma profundidade codificada, uma unidade de predição, e uma unidade mínima. A unidade de codificação correspondendo à profundidade codificada pode incluir ao menos uma de uma unidade de predição e uma unidade mínima contendo a mesma informação de codificação.
[000369] Consequentemente é determinado se as unidades de dados adjacentes são incluídas na mesma unidade de codificação correspondendo à profundidade codificada mediante comparação da informação de codificação das unidades de dados adjacentes. Além disso, uma unidade de codificação correspondente que corresponde a uma profundidade codificada é determinada mediante uso da informação de codificação de uma unidade de dados, e assim uma distribuição das profundidades codificadas em uma unidade de codificação máxima pode ser determinada.
[000370] Consequentemente, se uma unidade de codificação atual for predita com base na informação de codificação das unidades de dados adjacentes, informação de codificação das unidades de dados em unidades de codificação mais profunda adjacentes à unidade de codificação atual pode ser diretamente consultada e utilizada.
[000371] Alternativamente, se uma unidade de codificação atual for predita com base na informação de codificação das unidades de dados adjacentes, as unidades de dados adjacentes à unidade de codificação atual são procuradas utilizando-se a informação de codificação das unidades de dados, e as unidades de codificação adjacentes procuradas podem ser referidas para predição da unidade de codificação atual.
[000372] A Figura 25 é um diagrama para descrever uma relação entre uma unidade de codificação, uma unidade de predição ou uma partição, e uma unidade de transformação, de acordo com a informação de modo de codificação da Tabela 1.
[000373] A unidade de codificação máxima 1300 inclui unidades de codificação 1302 1304, 1306, 1312, 1314, 1316 e 1318 de profundidades codificadas. Aqui, como a unidade de codificação 1318 é uma unidade de codificação de uma profundidade codificada, a informação dividida pode ser ajustada para 0. A informação sobre um tipo de partição da unidade de codificação 1318 tendo um tamanho de 2Nx2N pode ser ajustada para ser um de: um tipo de partição 1322 tendo um tamanho de 2Nx2N, um tipo de partição 1324 tendo um tamanho de 2NxN, um tipo de partição 1326 tendo um tamanho de Nx2N, um tipo de partição 328 tendo um tamanho de NxN, um tipo de partição 1332 tendo um tamanho de 2NxnU, um tipo de partição 1334 tendo um tamanho de 2NxnD, um tipo de partição 1336 tendo um tamanho de nLx2N, e um tipo de partição 1338 tendo um tamanho de nRx2N.
[000374] Uma informação de divisão de unidade de transformação (sinalizador de tamanho TU) é um tipo de índice de transformação; um tamanho de uma unidade de transformação correspondendo a um índice de transformação pode ser modificado de acordo com um tipo de unidade de predição ou um tipo de partição de uma unidade de codificação.
[000375] Por exemplo, quando o tipo de partição é ajustado para ser simétrico, isto é, o tipo de partição 1322 (2Nx2N), 1324(2NxN), 1326 (Nx2N) ou 1328 (NxN), uma unidade de transformação 1342 tendo um tamanho de 2Nx2N é estabelecido se informação dividida (sinalizador de tamanho TU) de uma unidade de transformação é 0, e uma unidade de transformação 1344 tendo um tamanho de NxN é estabelecido se informação de divisão (sinalizador de tamanho TU) de uma unidade de transformação for 1.
[000376] Quando o tipo de partição é estabelecido como sendo assimétrico, isto é, o tipo de partição 1332 (2NxnU), 1334 (2NxnD), 1336 (nLx2N) ou 1338 (nRx2N), uma unidade de transformação 1352 tendo um tamanho de 2Nx2N é estabelecido se um sinalizador de tamanho TU for 0, e uma unidade de transformação 1354 tendo um tamanho de N/2xN/2 é estabelecido se um sinalizador de tamanho TU for 1.
[000377] Com referência à Figura 21, o sinalizador de tamanho TU é um sinalizador tendo um valor de 0 ou 1, porém o sinalizador de tamanho TU não é limitado a 1 bit, e a unidade de transformação pode ser dividida de forma hierárquica tendo uma estrutura de árvore enquanto o sinalizador de tamanho TU aumenta a partir de 0. O sinalizador de tamanho TU pode ser usado como um exemplo de um índice de transformação.
[000378] Nesse caso, o tamanho de uma unidade de transformação que foi efetivamente usada pode ser expresso mediante uso de um indicador de tamanho TU de uma unidade de transformação, de acordo com uma modalidade exemplar, em conjunto com um tamanho máximo e um tamanho mínimo da unidade de transformação. De acordo com uma modalidade exemplar, o equipamento de codificação de vídeo 80 é capaz de codificar informação de tamanho de unidade de transformação máximo, informação de tamanho de unidade de transformação mínimo, e um indicador de tamanho TU máximo. O resultado da codificação da informação de tamanho de unidade de transformação máximo, informação de tamanho de unidade de transformação mínimo, e o indicador de tamanho TU máximo podem ser inseridos em um SPS. De acordo com uma modalidade exemplar, o equipamento de codificação de vídeo 200 pode decodificar vídeo mediante uso da informação de tamanho de unidade de transformação máximo, da informação de tamanho de unidade de transformação mínima, e do indicador de tamanho TU máximo.
[000379] Por exemplo, (a) se o tamanho de uma unidade de codificação atual for 64x64 e um tamanho de unidade de transformação máximo for 32x32, então o tamanho de uma unidade de transformação pode ser 32x32 quando um indicador de tamanho TU é 0, pode ser 16x16 quando o indicador de tamanho TU for 1, e pode ser 8x8 quando o indicador de tamanho TU for 2.
[000380] Como outro exemplo, (b) se o tamanho da unidade de codificação atual for 32x32 e um tamanho de unidade de transformação mínimo for 32x32, então o tamanho da unidade de transformação pode ser 32x32 quando o indicador de tamanho TU for 0. Aqui, o indicador de tamanho TU não pode ser ajustado para um valor diferente de 0, uma vez que o tamanho da unidade de transformação não pode ser menor do que 32x32.
[000381] Como outro exemplo, (c) se o tamanho da unidade de codificação atual for 64x64 e um indicador de tamanho TU máximo for 1, então o indicador de tamanho TU pode ser 0 ou 1. Aqui, o indicador de tamanho TU não pode ser ajustado para um valor diferente de 0 ou 1.
[000382] Assim, se for definido que o indicador de tamanho TU máximo é "MaxTransformSizeIndex", um tamanho de unidade de transformação mínimo é "MinTransformSize", e um tamanho de unidade de transformação é "RootTuSize" quando o indicador de tamanho TU for 0, então um tamanho de unidade de transformação mínimo atual "CurrMinTuSize" que pode ser determinado em uma unidade de codificação atual, pode ser definido pela Equação (1): Equação 1 CurrMinTuSize=max(MinTransformSize, RootTuSize/ (2AMaxTransformSizeIndex))
[000383] Em comparação com o tamanho de unidade de transformação mínimo atual "CurrMinTuSize" que pode ser determinado na unidade de codificação atual, um tamanho de unidade de transformação "RootTuSize" quando o indicador de tamanho TU é 0, pode denotar um tamanho de unidade de transformação máximo que pode ser selecionado no sistema. Na Equação (1), "RootTuSize(2AMaxTransformSizeIndex)" denota um tamanho de unidade de transformação quando o tamanho de unidade de transformação "RootTuSize", quando o indicador de tamanho TU for 0, é dividido o número de vezes correspondendo ao indicador de tamanho TU máximo, e "MintransformSize" denota um tamanho de transformação mínimo. Assim, um valor menor dentre "RootTuSize/(2AMaxTransformSizeIndex)" e "MinTransformSize" pode ser o tamanho de unidade de transformação mínimo atual "CurrMinTuSize" que pode ser determinado na unidade de codificação atual.
[000384] De acordo com uma modalidade exemplar, o tamanho de unidade de transformação máximo RootTuSize pode variar de acordo com o tipo de modo de predição.
[000385] Por exemplo, se um modo de predição atual for um modo inter, então RootTuSize pode ser determinado mediante uso da Equação (2) abaixo. Na Equação (2), "MaxTransformSize" denota um tamanho de unidade de transformação máximo, e "PUSize" denota um tamanho de unidade de predição atual. Equação 2 RootTuSize = min(MaxTransformSize, PUSize)
[000386] Isto é, se o modo de predição atual for o modo inter, o tamanho de unidade de transformação "RootTuSize" quando o indicador de tamanho TU for 0, pode ser um valor menor entre o tamanho de unidade de transformação máximo e o tamanho de unidade de predição atual.
[000387] Se um modo de predição de uma unidade de partição atual for um modo intra, "RootTuSize" pode ser determinado mediante uso da Equação (3) abaixo. Na Equação (3), "PartitionSize" denota o tamanho da unidade de partição atual. Equação 3 RootTuSize = min(MaxTransformSize, PartitionSize)
[000388] Isto é, se o modo de predição atual for o modo intra, o tamanho de unidade de transformação "RootTuSize" quando o indicador de tamanho TU for 0 pode ser um valor menor entre o tamanho de unidade de transformação máximo e o tamanho da unidade de partição atual.
[000389] Contudo, o tamanho de unidade de transformação máximo atual que varia de acordo com o tipo de um modo de predição em uma unidade de partição, o tamanho de unidade de transformação de raiz "RootTuSize", é apenas um exemplo e a presente invenção não é limitado a ele.
[000390] A Figura 26 é um fluxograma de um método de codificação de vídeo utilizando um filtro de interpolação de suavização com base nas unidades de codificação tendo uma estrutura de árvore, de acordo com uma modalidade da presente invenção.
[000391] Na operação 2610, para codificar uma imagem atual de um vídeo de entrada, a imagem atual é dividida em pelo menos uma unidade de codificação máxima. Cada uma da pelo menos uma região de divisão, que é obtida mediante divisão de uma região de cada unidade de codificação máxima de acordo com as profundidades, pode ser codificada. Para codificar cada região de divisão de acordo com as profundidades, transformação e quantização são realizadas em um resultado de predição inter, com base na interpolação de unidade sub-pel, e predição intra.
[000392] Aqui, uma profundidade de divisão para produzir um resultado de codificação final de acordo com a pelo menos uma região de divisão pode ser determinada mediante comparação dos resultados de codificação das regiões de divisão de acordo com as profundidades, e unidades de codificação incluídas em uma unidade de codificação máxima atual e tendo uma estrutura de árvore podem ser determinadas. Como as unidades de codificação tendo uma estrutura de árvore, as unidades de transformação tendo uma estrutura de árvore podem ser determinadas. Em outras palavras, como um resultado de codificação de uma imagem, como as unidades de codificação determinadas tendo uma estrutura de árvore, um resultado de codificação das unidades de transformação tendo uma estrutura de árvore pode ser produzido como dados codificados da imagem.
[000393] Predição inter pode ser realizada em cada unidade de predição ou partição da unidade de codificação. Movimento de uma unidade de predição atual ou partição pode ser predito com referência aos pixels gerados mediante realização de interpolação de unidade sub-pel. Dentre os filtros de interpolação para gerar um valor de pixel de unidade sub-pel, um filtro de interpolação é selecionado diferentemente com base em um local de interpolação de unidade sub-pel e uma suavidade. Em ordem para realizar eficientemente interpolação de imagem, coeficientes de filtro de interpolação podem ser determinados seletivamente.
[000394] Dentre os coeficientes de filtro de interpolação previamente armazenados na memória, um filtro de interpolação desejado pode ser selecionado de acordo com um local de interpolação de unidade sub-pel, uma suavidade, o número de derivações de filtro, uma profundidade de bits, um fator de escala, uma função de base de filtração de interpolação com base na transformação, e um componente de cor, e interpolação pode ser realizada para gerar o valor de pixel da unidade sub- pel.
[000395] Na operação 2620, os dados de imagem obtidos como o resultado de codificação final de acordo com pelo menos uma região de divisão de cada unidade de codificação máxima, e informação sobre a profundidade codificada e o modo de codificação são produzidos como um fluxo de bits.
[000396] A informação sobre o modo de codificação pode incluir informação sobre a profundidade codificada ou informação de divisão, informação sobre um tipo de partição de uma unidade de predição, informação sobre um modo de predição e informação sobre uma estrutura de árvore de unidades de transformação. A informação de codificação pode incluir informação sobre um filtro de interpolação usado para realizar codificação de predição de unidade sub-pel. A informação codificada sobre o modo de codificação pode ser transmitida para um aparelho de decodificação em conjunto com os dados de imagem codificados.
[000397] A Figura 27 é um fluxograma de um método de decodificação de vídeo utilizando um filtro de interpolação de suavização com base nas unidades de codificação tendo uma estrutura de árvore, de acordo com uma modalidade da presente invenção.
[000398] Na operação 2710, um fluxo de bits de um vídeo codificado é recebido e analisado.
[000399] Na operação 2720, dados de imagem codificados de uma imagem atual atribuída a uma unidade de codificação máxima, e informação sobre uma profundidade codificada e um modo de codificação de acordo com as unidades de codificação máxima são extraídos a partir do fluxo de bits analisado. Informação sobre um filtro de interpolação exigido para realizar compensação de movimento de unidade sub-pel pode ser extraída da informação de codificação.
[000400] Informação sobre a profundidade codificada e o modo de codificação pode ser extraída da informação de codificação. De acordo com a informação sobre a profundidade codificada e o modo de codificação, uma unidade de codificação máxima pode ser dividida em unidades de codificação tendo uma estrutura de árvore. Além disso, de acordo com a informação sobre uma estrutura de árvore das unidades de transformação incluídas na informação extraída, unidades de transformação tendo uma estrutura de árvore de acordo com as profundidades de transformação nas unidades de codificação podem ser determinadas.
[000401] Na operação 2730, mediante uso da informação sobre a profundidade codificada e o modo de codificação de acordo com cada unidade de codificação máxima, dados de imagem de cada unidade de codificação máxima podem ser decodificados com base nas unidades de codificação tendo uma estrutura de árvore, unidades de predição, e as unidades de transformação tendo uma estrutura de árvore. Como uma unidade de codificação atual é decodificada com base na informação sobre a profundidade codificada e o modo de codificação, uma unidade de codificação atual pode ser transformada inversamente mediante uso de uma unidade de transformação determinada dentre as unidades de transformação tendo uma estrutura de árvore.
[000402] Dados de imagem codificados podem ser decodificados mediante realização de várias operações de decodificação tal como compensação de movimento e predição intra em cada unidade de predição ou partição da unidade de codificação com base no modo de codificação.
[000403] Especificamente, se dados residuais codificados e dados de referência forem extraídos com base nos pixels interpolados em uma unidade sub-pel, compensação de movimento em uma unidade de predição atual ou em uma partição atual pode ser realizada com base nos pixels interpolados nas unidades sub-pel. Dentre os filtros de interpolação para gerar um valor de pixel de unidade sub-pel, um filtro de interpolação pode ser selecionado diferentemente com base em um local de interpolação de unidade sub-pel e uma suavidade.
[000404] Para realizar eficientemente interpolação de imagem, os coeficientes de filtro de interpolação podem ser determinados seletivamente. Dentre os coeficientes de filtro de interpolação previamente armazenados na memória, um filtro de interpolação desejado pode ser selecionado de acordo com um local de interpolação de unidade sub-pel, uma suavidade, o número de derivações de filtro, uma profundidade de bits, um fator de escala, uma função de base de filtração de interpolação com base na transformação, e um componente de cor, e a interpolação pode ser realizada para gerar o valor de pixel de unidade sub-pel.
[000405] Uma imagem de referência e uma região de referência são determinadas mediante uso dos dados de referência, e o valor de pixel de unidade sub-pel pode ser gerado mediante realização de filtração de interpolação em dois ou mais pixels de referência de unidade inteira de pel da imagem de referência. Compensação de movimento pode ser realizada na unidade de predição atual ou na partição atual mediante combinação do valor gerado de pixel de unidade sub-pel e os dados residuais, e assim a decodificação predição pode ser realizada.
[000406] Como cada unidade de codificação máxima é decodificada, dados de imagem em um domínio espacial podem ser reconstruídos, e uma imagem e um vídeo que é uma sequência de imagens podem ser reconstruídos. O vídeo reconstruído pode ser reproduzido por intermédio de um aparelho de reprodução, pode ser armazenado em um meio de armazenamento, ou pode ser transmitido em uma rede.
[000407] As modalidades exemplares da presente invenção podem ser gravadas como programas de computador e podem ser implementadas em computadores digitais de uso comum que executam programas utilizando um meio de gravação legível por computador. Exemplos do meio de gravação legível por computador incluem meios de armazenamento magnético (por exemplo, ROM, disquetes, discos rígidos, etc.) e meios óticos de gravação (por exemplo, CD-ROMs ou DVDs).
[000408] Embora modalidades exemplares tenham sido particularmente mostradas e descritas acima, será entendido por aqueles de conhecimento comum na técnica que diversas alterações na 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. As modalidades exemplares devem ser consideradas apenas em um sentido descritivo e não com propósitos de limitação. Portanto, o escopo da invenção é definido não pela descrição detalhada das modalidades exemplares, mas pelas reivindicações anexas, e todas as diferenças dentro do escopo serão consideradas como incluídas no presente conceito inventivo.

Claims (1)

1. APARELHO PARA COMPENSAÇÃO DE MOVIMENTO, o aparelho caracterizado pelo fato de que compreende: um seletor de filtro que é configurado para selecionar um filtro de 8 derivações para interpolação de amostras luma; e um interpolador que é configurado para determinar, em uma imagem de referência luma, um bloco de referência luma para predição de um bloco atual, usando um vetor de movimento luma do bloco atual, e gerar uma amostra luma de uma localização 1/2-pixel incluída no bloco de referência luma mediante aplicar o filtro de 8 derivações às amostras luma de uma localização de pixel inteiro da imagem de referência luma, em que o seletor de filtro seleciona um filtro para interpolação de amostras croma, o interpolador determina, em uma imagem de referência croma, um bloco de referência croma para predição do bloco atual, mediante usar um vetor de movimento croma do bloco atual e mediante gerar uma amostra croma de localização 1/2- pixel incluída no bloco de referência croma mediante aplicar o filtro às amostras croma de uma localização de pixel inteiro da imagem de referência croma, o filtro de 8 derivações compreende oito coeficientes de filtro para gerar a amostra luma da localização de 1/2 pixel, que são {-1, 4, -11, 40, 40, -11, 4, -1}.
BR122021005436-3A 2010-09-30 2011-09-30 Aparelho para compensação de movimento BR122021005436B1 (pt)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US38826410P 2010-09-30 2010-09-30
US61/388,264 2010-09-30
US201061426479P 2010-12-22 2010-12-22
US61/426,479 2010-12-22
US201161431909P 2011-01-12 2011-01-12
US61/431,909 2011-01-12
US201161450775P 2011-03-09 2011-03-09
US61/450,775 2011-03-09
PCT/KR2011/007220 WO2012044105A2 (ko) 2010-09-30 2011-09-30 평활화 보간 필터를 이용하여 영상을 보간하는 방법 및 그 장치

Publications (1)

Publication Number Publication Date
BR122021005436B1 true BR122021005436B1 (pt) 2022-08-23

Family

ID=45893683

Family Applications (2)

Application Number Title Priority Date Filing Date
BR122020014075-5A BR122020014075B1 (pt) 2010-09-30 2011-09-30 Método de compensação de movimento
BR122021005436-3A BR122021005436B1 (pt) 2010-09-30 2011-09-30 Aparelho para compensação de movimento

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR122020014075-5A BR122020014075B1 (pt) 2010-09-30 2011-09-30 Método de compensação de movimento

Country Status (18)

Country Link
US (5) US9124902B2 (pt)
EP (7) EP2860980B1 (pt)
JP (7) JP5654685B2 (pt)
KR (7) KR101452861B1 (pt)
CN (6) CN104994381B (pt)
BR (2) BR122020014075B1 (pt)
CY (4) CY1119447T1 (pt)
DK (4) DK2996335T3 (pt)
ES (4) ES2640666T3 (pt)
HR (4) HRP20170917T1 (pt)
HU (4) HUE037725T2 (pt)
LT (4) LT2953355T (pt)
MX (5) MX2013003606A (pt)
PL (4) PL2860980T3 (pt)
PT (4) PT2996335T (pt)
RS (3) RS56473B1 (pt)
SI (4) SI2860980T1 (pt)
WO (1) WO2012044105A2 (pt)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011121716A1 (ja) * 2010-03-30 2011-10-06 株式会社 東芝 動画像符号化方法、復号化方法、符号化装置および復号化装置
KR101682147B1 (ko) * 2010-04-05 2016-12-05 삼성전자주식회사 변환 및 역변환에 기초한 보간 방법 및 장치
JP5977235B2 (ja) * 2010-07-09 2016-08-24 サムスン エレクトロニクス カンパニー リミテッド 映像補間方法
JP5665508B2 (ja) * 2010-11-30 2015-02-04 キヤノン株式会社 画像処理装置及び方法、並びにプログラム及び記憶媒体
US9264725B2 (en) 2011-06-24 2016-02-16 Google Inc. Selection of phase offsets for interpolation filters for motion compensation
JP5886953B2 (ja) * 2011-06-28 2016-03-16 サムスン エレクトロニクス カンパニー リミテッド 非対称形の補間フィルタを利用して、映像を補間する方法及びその装置
KR101956284B1 (ko) * 2011-06-30 2019-03-08 엘지전자 주식회사 보간 방법 및 이를 이용한 예측 방법
US9883203B2 (en) * 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
DE102011119177A1 (de) * 2011-11-23 2013-05-23 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Verfahren zum Erstellen eines ersten Parametersatzes
JP5911166B2 (ja) * 2012-01-10 2016-04-27 シャープ株式会社 画像処理装置、画像処理方法、画像処理プログラム、撮像装置、及び画像表示装置
US8675102B2 (en) * 2012-06-08 2014-03-18 Apple Inc. Real time denoising of video
US20140078394A1 (en) * 2012-09-17 2014-03-20 General Instrument Corporation Selective use of chroma interpolation filters in luma interpolation process
WO2014107066A1 (ko) * 2013-01-04 2014-07-10 삼성전자 주식회사 위상차를 고려한 영상 업샘플링을 이용하는 스케일러블 비디오 부호화 방법 및 장치, 스케일러블 비디오 복호화 방법 및 장치
AU2014227060B2 (en) * 2013-03-07 2017-04-06 Japan Oil, Gas And Metals National Corporation Image processing device, method for image processing, and image processing program
DE102013219737B4 (de) 2013-09-30 2019-05-09 Siemens Healthcare Gmbh Angiographisches Untersuchungsverfahren eines Gefäßsystems
JP2015144423A (ja) * 2013-12-25 2015-08-06 三星電子株式会社Samsung Electronics Co.,Ltd. 画像符号化装置、画像復号化装置、それらの方法、プログラム及び画像処理システム
WO2015149699A1 (en) * 2014-04-01 2015-10-08 Mediatek Inc. Method of adaptive interpolation filtering in video coding
KR102440941B1 (ko) 2015-03-03 2022-09-05 삼성전자주식회사 이미지 처리 정보에 따라 크기와 방향을 갖는 초기 위상을 계산할 수 있는 이미지 처리 장치들
KR102402671B1 (ko) 2015-09-09 2022-05-26 삼성전자주식회사 보간 필터의 연산 복잡도를 조절할 수 있는 영상 처리 장치, 영상 보간 방법 및 영상 부호화 방법
GB201516670D0 (en) * 2015-09-21 2015-11-04 Taranis Visual Method and system for interpolating data
CN108028937B (zh) 2015-09-25 2020-07-24 华为技术有限公司 视频运动补偿装置和方法
RU2696309C1 (ru) * 2015-09-25 2019-08-01 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ компенсации движения видео
WO2017052405A1 (en) * 2015-09-25 2017-03-30 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
AU2015410095C1 (en) 2015-09-25 2020-01-16 Huawei Technologies Co., Ltd. Adaptive sharpening filter for predictive coding
CN107925772B (zh) * 2015-09-25 2020-04-14 华为技术有限公司 利用可选插值滤波器进行视频运动补偿的装置和方法
MX2018006091A (es) 2015-11-17 2018-11-09 Awei Tech Co Ltd Metodo y aparato para filtracion adaptativa de muestras para codificacion de video.
US10009622B1 (en) 2015-12-15 2018-06-26 Google Llc Video coding with degradation of residuals
CN116074532A (zh) 2016-02-01 2023-05-05 Oppo广东移动通信有限公司 预测图像生成装置、运动图像解码装置、以及运动图像编码装置
KR20180042899A (ko) * 2016-10-19 2018-04-27 디지털인사이트 주식회사 적응적 보간 필터를 사용하는 비디오 코딩 방법 및 장치
WO2018097700A1 (ko) * 2016-11-28 2018-05-31 한국전자통신연구원 필터링을 위한 방법 및 장치
CN116320494A (zh) 2016-11-28 2023-06-23 韩国电子通信研究院 用于滤波的方法和装置
WO2018132150A1 (en) * 2017-01-13 2018-07-19 Google Llc Compound prediction for video coding
CN110583021B (zh) * 2017-01-31 2023-06-02 夏普株式会社 用于执行平面帧内预测视频编码的系统和方法
US10499078B1 (en) * 2017-02-07 2019-12-03 Google Llc Implicit motion compensation filter selection
KR102511546B1 (ko) * 2017-02-24 2023-03-17 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10440396B2 (en) * 2017-03-28 2019-10-08 Qualcomm Incorporated Filter information sharing among color components
JP6981811B2 (ja) 2017-08-25 2021-12-17 株式会社ニューフレアテクノロジー パターン検査装置及びパターン検査方法
WO2019065537A1 (ja) * 2017-09-28 2019-04-04 シャープ株式会社 動き補償フィルタ装置、画像復号装置および動画像符号化装置
SG11202003260WA (en) * 2017-11-07 2020-05-28 Huawei Tech Co Ltd Interpolation filter for an inter prediction apparatus and method for video coding
KR102424189B1 (ko) * 2018-02-14 2022-07-21 후아웨이 테크놀러지 컴퍼니 리미티드 적응형 보간 필터
US20190273946A1 (en) * 2018-03-05 2019-09-05 Markus Helmut Flierl Methods and Arrangements for Sub-Pel Motion-Adaptive Image Processing
WO2019190342A1 (en) 2018-03-29 2019-10-03 Huawei Technologies Co., Ltd Image processing apparatus and method
TWI677233B (zh) * 2018-08-02 2019-11-11 瑞昱半導體股份有限公司 決定濾波器係數的方法
SG11202103441TA (en) * 2018-10-06 2021-05-28 Huawei Tech Co Ltd Method and apparatus for intra prediction using an interpolation filter
AU2020235190B2 (en) 2019-03-08 2023-06-01 Beijing Bytedance Network Technology Co., Ltd. Constraints on model-based reshaping in video processing
BR112021019260A2 (pt) 2019-03-28 2021-11-30 Huawei Tech Co Ltd Método e aparelho para suavização intra
CN117528068A (zh) 2019-04-18 2024-02-06 北京字节跳动网络技术有限公司 视频编解码中的跨分量模式中的选择性使用
EP3935855A4 (en) 2019-04-23 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. METHOD OF CROSS-COMPONENT DEPENDENCE REDUCTION
EP3949395A4 (en) 2019-05-08 2022-06-29 Beijing Bytedance Network Technology Co., Ltd. Conditions for applicability of cross-component coding
CN117478908A (zh) 2019-06-22 2024-01-30 北京字节跳动网络技术有限公司 色度残差缩放的语法元素
CN110351482A (zh) * 2019-06-25 2019-10-18 杭州汇萃智能科技有限公司 图像预处理装置、方法和一种相机
JP7460748B2 (ja) 2019-07-07 2024-04-02 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのシグナリング
JP6797247B2 (ja) * 2019-07-10 2020-12-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオ動き補償用の装置および方法
JP2022548521A (ja) * 2019-09-23 2022-11-21 アリババ グループ ホウルディング リミテッド 参照ダウンサンプリングありの動き補償補間のためのフィルタ
US20210176486A1 (en) * 2019-12-09 2021-06-10 Alibaba Group Holding Limited Methods and apparatuses for motion compensation
EP4128755A4 (en) * 2020-04-29 2023-09-06 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR INTERPOLATION FILTERING UNDERSAMPLING
US20240171757A1 (en) * 2021-03-31 2024-05-23 Telefonaktiebolaget Lm Ericsson (Publ) Smooth surface prediction
US20230179763A1 (en) * 2021-12-06 2023-06-08 Tencent America LLC Interpolation Filters for Adaptive Motion Vector Difference Resolution
WO2023200135A1 (ko) * 2022-04-15 2023-10-19 현대자동차주식회사 크로마 성분에 대한 개선된 인루프필터를 이용하는 비디오 코딩을 위한 방법 및 장치

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07266331A (ja) * 1994-03-30 1995-10-17 Hitachi Chem Co Ltd 単結晶の切断方法
JP3637740B2 (ja) * 1997-08-25 2005-04-13 三菱住友シリコン株式会社 ワイヤソーおよびインゴット切断方法
JP3075269B2 (ja) 1998-10-13 2000-08-14 セイコーエプソン株式会社 画像データ補間方法、画像データ補間装置および画像データ補間プログラムを記録した媒体
US6768817B1 (en) 1999-09-03 2004-07-27 Truong, T.K./ Chen, T.C. Fast and efficient computation of cubic-spline interpolation for data compression
JP2003509748A (ja) * 1999-09-03 2003-03-11 チェン,ティー.シー. データ圧縮のための3次スプライン補間の高速で効率のよい計算方法
DE10055286A1 (de) * 2000-11-08 2002-05-23 Freiberger Compound Mat Gmbh Vorrichtung und Verfahren zum Trennen von Werkstoffen
DE10122628B4 (de) * 2001-05-10 2007-10-11 Siltronic Ag Verfahren zum Abtrennen von Scheiben von einem Werkstück
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
SG140441A1 (en) * 2003-03-17 2008-03-28 St Microelectronics Asia Decoder and method of decoding using pseudo two pass decoding and one pass encoding
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
KR101038822B1 (ko) 2003-09-07 2011-06-03 마이크로소프트 코포레이션 인터레이스형 비디오의 코딩 및 디코딩
US8165389B2 (en) 2004-03-15 2012-04-24 Microsoft Corp. Adaptive interpolation with artifact reduction of images
US7502505B2 (en) 2004-03-15 2009-03-10 Microsoft Corporation High-quality gradient-corrected linear interpolation for demosaicing of color images
US7623575B2 (en) * 2005-01-05 2009-11-24 Lsi Corporation Method and apparatus for sub-pixel motion compensation
KR20070055212A (ko) 2005-11-25 2007-05-30 삼성전자주식회사 프레임 보간장치, 프레임 보간방법 및 움직임 신뢰성평가장치
CN100566413C (zh) * 2006-06-05 2009-12-02 华为技术有限公司 一种自适应插值处理方法及编解码模块
US9014280B2 (en) 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
JP2008118447A (ja) 2006-11-06 2008-05-22 Canon Inc 画像形成装置及び画像形成方法ならびにそのプログラム
CN101212672B (zh) * 2006-12-30 2011-01-05 安凯(广州)微电子技术有限公司 视频内容自适应的亚像素插值方法和装置
KR101369746B1 (ko) * 2007-01-22 2014-03-07 삼성전자주식회사 적응적 보간 필터를 이용한 영상 부호화, 복호화 방법 및장치
EP2048886A1 (en) * 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
KR101418116B1 (ko) * 2007-10-24 2014-07-09 고려대학교 산학협력단 프레임 보간 장치 및 그를 포함한 프레임 속도 상향 변환장치
JP4988627B2 (ja) * 2008-03-05 2012-08-01 ルネサスエレクトロニクス株式会社 フィルタ演算器及び動き補償装置
CN102057680A (zh) * 2008-07-04 2011-05-11 株式会社东芝 运动图像编码/解码方法和装置
US8610673B2 (en) * 2008-12-03 2013-12-17 Microsoft Corporation Manipulation of list on a multi-touch display
US8761268B2 (en) * 2009-04-06 2014-06-24 Intel Corporation Selective local adaptive wiener filter for video coding and decoding
WO2011086672A1 (ja) * 2010-01-13 2011-07-21 株式会社 東芝 動画像符号化装置および復号装置
JP5977235B2 (ja) * 2010-07-09 2016-08-24 サムスン エレクトロニクス カンパニー リミテッド 映像補間方法
US20120134425A1 (en) * 2010-11-29 2012-05-31 Faouzi Kossentini Method and System for Adaptive Interpolation in Digital Video Coding
PL2658263T3 (pl) * 2010-12-22 2023-03-13 Lg Electronics Inc. Sposób predykcji wewnątrzramkowej i urządzenie wykorzystujące ten sposób
US20120230423A1 (en) * 2011-03-10 2012-09-13 Esenlik Semih Line memory reduction for video coding and decoding

Also Published As

Publication number Publication date
KR20150041763A (ko) 2015-04-17
CN103238320A (zh) 2013-08-07
ES2646306T3 (es) 2017-12-13
LT2860980T (lt) 2017-07-10
HUE037725T2 (hu) 2018-09-28
DK2953355T3 (da) 2017-06-26
EP4318277A3 (en) 2024-02-28
PT2996336T (pt) 2017-09-22
CY1119203T1 (el) 2018-02-14
JP2015188261A (ja) 2015-10-29
US9179167B2 (en) 2015-11-03
JP2013542666A (ja) 2013-11-21
RS56359B1 (sr) 2017-12-29
US20150237358A1 (en) 2015-08-20
HRP20171386T1 (hr) 2017-11-03
DK2996336T3 (en) 2017-10-02
KR101658808B1 (ko) 2016-09-22
CN103238320B (zh) 2016-06-01
PL2996336T3 (pl) 2017-11-30
KR20140146560A (ko) 2014-12-26
DK2996335T3 (da) 2017-11-20
JP6902937B2 (ja) 2021-07-14
CN105049843B (zh) 2018-02-06
PT2953355T (pt) 2017-06-26
EP2996335B1 (en) 2017-11-01
CY1119447T1 (el) 2018-03-07
KR20150041762A (ko) 2015-04-17
CN105072443A (zh) 2015-11-18
LT2953355T (lt) 2017-07-10
KR101452861B1 (ko) 2014-10-27
HUE036401T2 (hu) 2018-07-30
PL2953355T3 (pl) 2017-12-29
JP2017188943A (ja) 2017-10-12
US9124902B2 (en) 2015-09-01
PT2996335T (pt) 2017-11-14
LT2996336T (lt) 2017-09-25
RS56176B1 (sr) 2017-11-30
EP2624558A4 (en) 2015-03-25
KR20150041761A (ko) 2015-04-17
MX336877B (es) 2016-02-04
PL2996335T3 (pl) 2018-02-28
EP2953355A1 (en) 2015-12-09
MX339849B (es) 2016-06-15
EP2996335A1 (en) 2016-03-16
US20150237359A1 (en) 2015-08-20
CN104994381B (zh) 2019-01-04
MX2013003606A (es) 2013-04-24
HRP20170981T1 (hr) 2017-09-22
KR20120034057A (ko) 2012-04-09
KR101657537B1 (ko) 2016-09-19
CN105049844A (zh) 2015-11-11
SI2860980T1 (sl) 2017-08-31
CN104980738B (zh) 2017-04-12
JP2015188260A (ja) 2015-10-29
EP3276961A1 (en) 2018-01-31
ES2640666T3 (es) 2017-11-03
KR101658807B1 (ko) 2016-09-22
JP2015165726A (ja) 2015-09-17
US20150245058A1 (en) 2015-08-27
EP2624558A2 (en) 2013-08-07
PL2860980T3 (pl) 2017-09-29
EP2996336A1 (en) 2016-03-16
US20130182780A1 (en) 2013-07-18
CY1119672T1 (el) 2018-04-04
EP4318277A2 (en) 2024-02-07
US9253507B2 (en) 2016-02-02
US9118933B1 (en) 2015-08-25
EP2860980B1 (en) 2017-06-28
JP2015165727A (ja) 2015-09-17
JP2015057919A (ja) 2015-03-26
EP2996336B1 (en) 2017-09-13
WO2012044105A3 (ko) 2012-06-07
HRP20170917T1 (hr) 2017-09-22
SI2996335T1 (sl) 2017-12-29
EP2953355B1 (en) 2017-06-14
HRP20171672T1 (hr) 2018-01-12
US9277247B2 (en) 2016-03-01
HUE034477T2 (en) 2018-02-28
KR101539235B1 (ko) 2015-07-27
BR122020014075B1 (pt) 2023-11-28
RS56473B1 (sr) 2018-01-31
SI2996336T1 (sl) 2017-10-30
CY1119450T1 (el) 2018-03-07
KR101658806B1 (ko) 2016-09-22
PT2860980T (pt) 2017-07-12
US20150237357A1 (en) 2015-08-20
KR20140122215A (ko) 2014-10-17
EP2860980A1 (en) 2015-04-15
ES2630107T3 (es) 2017-08-18
SI2953355T1 (sl) 2017-07-31
MX339848B (es) 2016-06-15
ES2629870T3 (es) 2017-08-16
LT2996335T (lt) 2017-11-27
KR20140096004A (ko) 2014-08-04
CN105072443B (zh) 2018-07-27
WO2012044105A2 (ko) 2012-04-05
CN105049843A (zh) 2015-11-11
CN105049844B (zh) 2017-07-28
JP5654685B2 (ja) 2015-01-14
KR101707610B1 (ko) 2017-02-16
CN104980738A (zh) 2015-10-14
CN104994381A (zh) 2015-10-21
DK2860980T3 (en) 2017-07-17
HUE035494T2 (en) 2018-05-02
MX339850B (es) 2016-06-15

Similar Documents

Publication Publication Date Title
BR122021005436B1 (pt) Aparelho para compensação de movimento
BR122021004604B1 (pt) Aparelho para decodificar vídeo para predição intra de uma imagem usando compensação de movimento mediante usar um filtro de interpolação, método de codificação de vídeo para predição intra uma imagem usando compensação de movimento usando um filtro de interpolação, e aparelho para codificar vídeo para predição intra de uma imagem usando compensação de movimento mediante uso de um filtro de interpolação
PT2804383E (pt) Método e dispositivo para codificar vídeo, e método e dispositivo para descodificar vídeo
BR122021005437B1 (pt) Método para compensação de movimento
BR112013007203B1 (pt) Método de compensação de movimento

Legal Events

Date Code Title Description
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 30/09/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.