[go: up one dir, main page]

BR112013007203B1 - MOTION COMPENSATION METHOD - Google Patents

MOTION COMPENSATION METHOD Download PDF

Info

Publication number
BR112013007203B1
BR112013007203B1 BR112013007203-2A BR112013007203A BR112013007203B1 BR 112013007203 B1 BR112013007203 B1 BR 112013007203B1 BR 112013007203 A BR112013007203 A BR 112013007203A BR 112013007203 B1 BR112013007203 B1 BR 112013007203B1
Authority
BR
Brazil
Prior art keywords
unit
coding
interpolation
transformation
filter
Prior art date
Application number
BR112013007203-2A
Other languages
Portuguese (pt)
Other versions
BR112013007203A8 (en
BR112013007203A2 (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.
Priority to BR122020014075-5A priority Critical patent/BR122020014075B1/en
Priority claimed from PCT/KR2011/007220 external-priority patent/WO2012044105A2/en
Publication of BR112013007203A2 publication Critical patent/BR112013007203A2/en
Publication of BR112013007203A8 publication Critical patent/BR112013007203A8/en
Publication of BR112013007203B1 publication Critical patent/BR112013007203B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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
    • 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

Abstract

MÉTODO E APARELHO PARA INTERPOLAR UMA IMAGEM EM CONTRAPARTIDA A SUAVIZAÇÃO E MEIO DE GRAVAÇÃO LEGÍVEL POR COMPUTADOR É 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.METHOD AND APPARATUS FOR INTERPOLATING AN IMAGE AGAINST THE SMOOTHING AND COMPUTER READABLE RECORDING MEDIA A method for interpolating an image by determining interpolation filter coefficients is provided. A method for interpolating an image in contrast to smoothing includes differently selecting an interpolation filter based on a sub-pel unit interpolation location and a smoothness among interpolation filters to generate at least one localized sub-pel unit pixel value. between pixels of entire pel unit; and generating the at least one sub-pel unit pixel value by interpolating pixel values of the sub-pel unit pixels using the selected interpolation filter.

Description

CAMPO TÉCNICOTECHNICAL FIELD

[0001] A presente invenção se refere à codificação de predição utilizando compensação de movimento.[0001] The present invention relates to predictive coding using motion compensation.

FUNDAMENTOS DA TÉCNICAFUNDAMENTALS OF THE TECHNIQUE

[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.[0002] In typical image encoding and decoding methods, to encode an image, an illustration is divided into macro blocks. After that, prediction coding is performed in each macro block using inter prediction, or intra prediction.

[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.[0003] Inter prediction refers to a method of compressing an image by removing temporal redundancy between images and its representative example is motion estimation coding. In motion estimation coding, each block of a current illustration is predicted using at least one reference illustration. A reference block that is most similar to a current block is found in a predetermined search range using a predetermined evaluation function.

[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.[0004] A current block is predicted based on a reference block, and a residual block obtained by subtracting from the current block a prediction block generated as a prediction result is encoded. In this case, to more accurately perform prediction, interpolation is performed on a reference illustration search range, sub-pel unit pixels smaller than integer pel unit pixels are generated, and inter prediction is performed in the generated sub-pel unit pixels.

REVELAÇÃO DA INVENÇÃO PROBLEMA TÉCNICODISCLOSURE OF THE INVENTION TECHNICAL PROBLEM

[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.[0005] The present invention provides a method and apparatus for determining interpolation filter coefficients, appropriate in response to image characteristics in order to generate a sub-pel unit pixel by interpolating entire pel unit pixels.

SOLUÇÃO TÉCNICATECHNICAL SOLUTION

[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.[0006] In accordance with one aspect of the present invention, there is provided a method of interpolating an image in return for smoothing, the method including differently selecting an interpolation filter based on a sub-pel unit interpolation location and a smoothing among the interpolation filters to generate at least one sub-pel unit pixel value between whole pel unit pixels; and generating the at least one sub-pel unit pixel value by interpolating pixel values of the entire pel unit pixels using the selected interpolation filter.

EFEITOS VANTAJOSOSADVANTAGEOUS EFFECTS

[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.[0007] When a video is encoded and decoded, as a high-quality image is generated by interpolating a reference frame and motion estimation and compensation are performed based on the high-quality image, the accuracy of inter prediction can be increased . Furthermore, as a smoothing interpolation filter is used to reduce high-frequency components in an interpolation result and thus a smoother interpolation result is obtained, high-frequency components can be removed and coding efficiency image and image decoding can be improved.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[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;[0008] Figure 1 is a block diagram of an image interpolation apparatus in accordance with an embodiment of the present invention;

[0009] A Figura 2 é um diagrama para descrever uma relação entre uma unidade inteira de pel e uma unidade sub-pel;[0009] Figure 2 is a diagram for describing a relationship between an entire pel unit and a sub-pel unit;

[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;[00010] Figure 3 is a diagram illustrating adjacent whole pel unit pixels to be referenced in order to determine a sub-pel unit pixel value, in accordance with an embodiment of the present invention;

[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;[00011] Figures 4A to 4C are diagrams illustrating examples of whole pel unit pixels to be referred to in order to determine a sub-pel unit pixel value, in accordance with an embodiment of the present invention;

[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;[00012] Figure 5 is a graph of a smoothing parameter of a smoothing interpolation filter, in accordance with an embodiment of the present invention;

[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;[00013] Figure 6 is a graph of a spline function usable by a smoothing interpolation filter, in accordance with an embodiment of the present invention;

[00014] A Figura 7 é um fluxograma de um método de interpolação de imagem de acordo com uma modalidade da presente invenção;[00014] Figure 7 is a flowchart of an image interpolation method in accordance with an embodiment of the present invention;

[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;[00015] Figures 8A to 8C are tables showing filter coefficients of 12-lead interpolation filters determined based on a smoothing parameter and an interpolation location, in accordance with embodiments of the present invention;

[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;[00016] Figures 9A to 9C are tables showing filter coefficients of 6-lead interpolation filters determined based on a smoothing parameter and an interpolation location, in accordance with embodiments of the present invention;

[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;[00017] Figure 10 is a table showing the filter coefficients of 6-lead interpolation filters determined for chroma pixels based on a smoothing parameter and an interpolation location, in accordance with an embodiment of the present invention;

[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;[00018] Figure 11 is a table showing filter coefficients of the smoothing interpolation filters determined differently based on a color component and an image interpolation location, in accordance with an embodiment of the present invention;

[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;[00019] Figures 12A to 12C are tables showing the filter coefficients of smoothing interpolation filters based on an image interpolation location and a scale factor, in accordance with embodiments of the present invention;

[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;[00020] Figure 13A is a block diagram of a video coding apparatus using a smoothing interpolation filter, in accordance with an embodiment of the present invention;

[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;[00021] Figure 13B is a block diagram of a video coding apparatus using a smoothing interpolation filter, in accordance with an embodiment of the present invention;

[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;[00022] Figure 14A is a flowchart of an image coding method using a smoothing interpolation filter, in accordance with an embodiment of the present invention;

[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;[00023] Figure 14B is a flowchart of an image decoding method using a smoothing interpolation filter, in accordance with an embodiment of the present invention;

[00024] A Figura 15 é um diagrama para descrever um conceito de unidades de codificação de acordo com uma modalidade da presente invenção;[00024] Figure 15 is a diagram for describing a concept of coding units according to an embodiment of the present invention;

[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;[00025] Figure 16 is a block diagram of an image encoder based on coding units, according to an embodiment of the present invention;

[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;[00026] Figure 17 is a block diagram of an image decoder based on coding units, according to an embodiment of the present invention;

[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;[00027] Figure 18 is a diagram illustrating deeper coding units according to depths, and partitions, according to an embodiment of the present invention;

[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;[00028] Figure 19 is a diagram for describing a relationship between a coding unit and transformation units, in accordance with an embodiment of the present invention;

[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;[00029] Figure 20 is a diagram for describing coding information of coding units corresponding to a coded depth, in accordance with an embodiment of the present invention;

[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;[00030] Figure 21 is a diagram of deeper coding units according to depths, according to an embodiment of the present invention;

[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;[00031] Figures 22 to 24 are diagrams for describing a relationship between coding units, prediction units, and transformation units, in accordance with an embodiment of the present invention;

[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;[00032] Figure 25 is a diagram for describing a relationship between a coding unit, a prediction unit or a partition, and a transformation unit, according to a coding mode information from Table 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[00033] Figure 26 is a flowchart of a video coding method using a smoothing interpolation filter based on coding units having a tree structure, in accordance with an embodiment of the present invention; It is

[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.[00034] Figure 27 is a flowchart of a video decoding method using a smoothing interpolation filter based on coding units having a tree structure, in accordance with an embodiment of the present invention.

MELHOR MODO PARA REALIZAÇÃO DA INVENÇÃOBEST MODE FOR CARRYING OUT THE INVENTION

[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.[00035] In accordance with one aspect of the present invention, there is provided a method of interpolating an image in return for smoothing, the method including differently selecting an interpolation filter based on a sub-pel unit interpolation location and a smoothing between the interpolation filters to generate a sub-pel unit pixel value located between whole pel unit pixels; and generating the at least one sub-pel unit pixel value by interpolating pixel values of the entire pel unit pixels using the selected interpolation filter.

[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.[00036] The interpolation filter may include filter coefficients for transforming the entire pel unit pixels based on a plurality of basic functions and inversely transforming a plurality of generating coefficients as a result of the transformation.

[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.[00037] The interpolation filter may include filter coefficients having the smoothness determined based on a distance between the interpolation location and the entire pel unit pixels. The interpolation filters may include filter coefficients having smoothness determined based on a distance between the interpolation location and the entire pel unit pixels adjacent to the interpolation location.

[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.[00038] To interpolate the entire pel unit pixels in a spatial domain, the interpolation filter may include filter coefficients obtained by combining a filter for performing transformation and inverse transformation using the plurality of basic functions, and a window function , and the window function can be symmetric with respect to the interpolation location.

[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.[00039] To interpolate the entire pel unit pixels in a spatial domain, the interpolation filter may include filter coefficients obtained by combining a filter for performing transformation and inverse transformation using a plurality of basic functions, and a smoothing parameter , and the smoothing parameter can control at least one of a smoothing speed and a smoothing range.

[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.[00040] The interpolation filter may include filter coefficients based on a spline function. The interpolation filter may include filter coefficients to maximize a low frequency response of the interpolation filter based on a polynomial function.

[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.[00041] Selection of the interpolation filter may include selecting an interpolation filter including filter coefficients scaled to integers, from among the interpolation filters, and generating the at least one sub-pel unit pixel value may include normalizing the at least one sub-pel unit pixel value generated using the selected interpolation filter, based on a scale factor.

[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.[00042] Selection of the interpolation filter may include differently selecting an interpolation filter based on pixel characteristics among the interpolation filters, and generating the at least one sub-pel unit pixel value may include generating at least one sub-pel unit pixel value using the differently selected interpolation filter based on the pixel characteristics.

[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.[00043] In accordance with another aspect of the present invention, there is provided an apparatus for interpolating an image in return for smoothing, the apparatus including a filter selector for differently selecting an interpolation filter based on a unit interpolation location. sub-pel and a smoothness among the interpolation filters to generate at least one sub-pel unit pixel value located between whole pel unit pixels; and an interpolator for generating the at least one sub-pel unit pixel value by interpolating pixel values of the entire pel unit pixels using the selected interpolation filter.

[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.[00044] According to another aspect of the present invention, there is provided a method of interpolating an image in return for a color component, the method including differently selecting an interpolation filter based on a sub-unit interpolation location. pel and a color component of a current pixel among the interpolation filters to generate at least one sub-pel unit pixel value located between the whole pel unit pixels; and generating the at least one sub-pel unit pixel value by interpolating pixel values of the entire pel unit pixels using the selected interpolation filter.

[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.[00045] Selection of the interpolation filter may include, to interpolate a chroma pixel, selecting an interpolation filter having a stronger smoothness than that of an interpolation filter for a luma pixel, among the interpolation filters.

[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.[00046] The interpolation filter having stronger smoothness than that of the interpolation filter for a luma pixel may be one of a filter including filter coefficients for smoothing the entire pel unit pixels, transforming the entire pel unit pixels. pel smoothed by using a plurality of basic functions, and inversely transforming various coefficients generated as a result of the transformation; a filter obtained by combining filter coefficients to perform transformation and inverse transformation by using the plurality of basic functions, and window function coefficients to perform low-pass filtering; a filter including filter coefficients for further smoothing the boundary whole pel unit pixels based on a boundary condition of a spline function; and a filter including filter coefficients for maximizing a low frequency response of an interpolation filter based on a polynomial function.

[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.[00047] In accordance with another aspect of the present invention, there is provided an apparatus for interpolating an image in return for a color component, the apparatus including a filter selector for differentially selecting an interpolation filter based on an interpolation location of sub-pel unit and a color component of a current pixel among the interpolation filters to generate at least one sub-pel unit pixel value located between the entire pel unit pixels; and an interpolator for generating the at least one sub-pel unit pixel value by interpolating the pixel values of the entire pel unit pixels using the selected interpolation filter.

[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.[00048] According to another aspect of the present invention, there is provided a video encoder utilizing an image interpolation filter, the video encoder including an encoder for differentially selecting an interpolation filter based on a subunit interpolation location. -pel and a smoothness among the interpolation filters stored in the video encoder; with respect to each block of an input illustration, perform predictive coding to generate at least one sub-pel unit pixel value by interpolating pixel values of the entire pel unit pixels using the selected interpolation filter, and perform transformation and quantization on a prediction result of the prediction coding; an output unit for producing a bit stream generated by performing entropy coding on quantized transformation coefficients and coding information; and a storage means for storing the filter coefficients of the interpolation filters.

[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.[00049] According to another aspect of the present invention, there is provided a video decoder using an image interpolation filter, the video decoder including a receiver and extractor for receiving an encoded bit stream from a video and extracting coding information. and encoded data from a video image by performing entropy decoding and bit stream analysis; a decoder to perform inverse quantization and inverse transformation on the quantized transformation coefficients of the encoded data of a current block of the images, differently selecting an interpolation filter based on a sub-pel unit interpolation location and a smoothness among the interpolation filters stored in the video decoder; performing predictive decoding to generate at least one sub-pel unit pixel value by interpolating pixel values of the entire pel unit pixels using the selected interpolation filter, and reconstructing the illustration; and a storage means for storing the filter coefficients of the interpolation filters.

[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.[00050] According to another aspect of the present invention, a computer readable recording medium is provided having recorded thereon a computer program for carrying out the above method.

MODO PARA A INVENÇÃOMODE FOR INVENTION

[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.[00051] In the following description, an “image” can broadly refer to a moving image such as a video, as well as a still image.

[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.[00052] Image interpolation considering smoothing, according to an embodiment of the present invention, is disclosed with reference to Figures 1 to 12C. Furthermore, encoding and decoding video using a smoothing interpolation filter, in accordance with an embodiment of the present invention, is disclosed with reference to Figures 13A to 27. Specifically, encoding and decoding video using a smoothing interpolation filter based in coding units having a tree structure, in accordance with an embodiment of the present invention, are disclosed with reference to Figures 15 to 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.[00053] Image interpolation considering smoothing, and a smoothing interpolation filter; in accordance with embodiments of the present invention; will now be described in detail with reference to Figures 1 to 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.[00054] Figure 1 is a block diagram of an image interpolation apparatus 10 in accordance with an embodiment of the present invention.

[00055] O 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.[00055] The image interpolation apparatus 10 considering smoothing includes a filter selector 12 and an interpolator 14. Operations of the filter selector 12 and the interpolator 14 of the image interpolation apparatus 10 can be controlled cooperatively by means of a processing processor. video encoding, a central processing unit (CPU), and a graphics processor.

[00056] O 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.[00056] The image interpolation apparatus 10 may receive an input image and may generate sub-pel unit pixel values by interpolating entire pel unit pixels. The input image can be a sequence of illustrations, an illustration, a frame, or blocks of a video.

[00057] O 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.[00057] Filter selector 12 may differentially select an interpolation filter to generate at least one sub-pel unit pixel value located between whole pel units, based on a sub-pel unit interpolation location and a smoothness .

[00058] O 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.[00058] The interpolator 14 may interpolate entire pel unit pixels adjacent to the sub-pel unit interpolation location using the interpolation filter selected by filter selector 12, thereby generating sub-pel unit pixel values. Interpolation filtering of pel integer unit pixels to generate sub-pel unit pixel values may include interpolation filtering of pel integer unit reference pixel values including pel integer unit pixels adjacent to the unit interpolation location sub-pel in a region supported by the interpolation filter.

[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.[00059] An interpolation filter according to one embodiment may include filter coefficients for transforming entire pel unit reference pixels based on a plurality of basic functions, and for inversely transforming a plurality of coefficients generated as a result of transformation .

[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.[00060] The interpolation filter can be a one-dimensional filter or a two-dimensional filter. If the selected interpolation filter is a one-dimensional filter, the interpolator 14 may sequentially perform filtering using one-dimensional interpolation filters in two or more directions, thereby generating a current sub-pel unit pixel value.

[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.[00061] A smoothing interpolation filter according to an embodiment may have a smoothness determined based on a distance between an interpolation location and entire pel unit pixels.

[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.[00062] An interpolation filter according to one embodiment may include different filter coefficients based on a sub-pel unit interpolation location and a smoothness. Next, an interpolation filter determined in contrast to a sub-pel unit interpolation location and a smoothness is referred to as a smoothing interpolation filter.

[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.[00063] A smoothing interpolation filter according to one embodiment may have a smoothness determined based on a distance between an interpolation location and whole pel unit pixels adjacent to the interpolation location.

[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.[00064] Additionally, the smoothing interpolation filter may include filter coefficients to more heavily smooth entire pel unit reference pixels away from the interpolation location.

[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.[00065] To interpolate the entire pel unit pixels in a spatial domain, the smoothing interpolation filter can be obtained by combining filter coefficients to perform transformation and inverse transformation by using a plurality of basic functions, and coefficients of window function to perform low-pass filtration.

[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.[00066] A window function according to an embodiment may be symmetric with respect to an interpolation location. The smoothing interpolation filter obtained by combining the filter coefficients for performing transformation and inverse transformation and window function coefficients for performing low-pass filtering may include filter coefficients for providing a large weight to an integer unit reference pixel. pel near the interpolation location and provide a small weight to an entire pel unit reference pixel away from the interpolation location.

[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.[00067] The smoothing interpolation filter may include filter coefficients for smoothing whole pel unit reference pixels by transforming the smoothed whole pel unit reference pixels using a plurality of basic functions, and inversely transforming a plurality of coefficients generated as a result of the transformation.

[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.[00068] The smoothing interpolation filter is an interpolation filter in a spatial domain, and may include filter coefficients obtained by combining an interpolation filter to perform transformation and inverse transformation, and a smoothing parameter. The smoothing parameter can control at least one of a smoothing speed and a smoothing range.

[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.[00069] The smoothing interpolation filter may include filter coefficients based on a spline function. That is, a base transformation and inverse transformation function for determining interpolation filter coefficients can be a spline function. To obtain a smoother interpolation result, the smoothing interpolation filter can include filter coefficients determined using a spline function.

[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.[00070] According to one embodiment, a smoothing interpolation filter based on a spline function may include filter coefficients to more intensely smooth boundary entire pel unit reference pixels based on a boundary condition of the spline function.

[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.[00071] According to another embodiment, if a transform basis and inverse transform function is a polynomial function, a smoothing interpolation filter may include filter coefficients to maximize a low frequency response of an interpolation filter based on the polynomial function.

[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.[00072] A smoothing interpolation filter according to one embodiment may include different filter coefficients based on a filter length as well as a sub-pel unit interpolation location and a smoothness.

[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.[00073] Furthermore, the smoothing interpolation filter may include different filter coefficients based on a scale factor of an interpolation result as well as a sub-pel unit interpolation location, a smoothness, and a filter length. The filter selector 12 can select a smoothing interpolation filter including filter coefficients scaled to integers. The interpolator 14 normalizes the pixel values generated using the smoothing interpolation filter selected by the filter selector 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.[00074] Additionally, the filter selector 12 can differently select an interpolation filter based on pixel characteristics. The interpolator 14 may generate sub-pel unit pixel values using the interpolation filter selected differently based on the pixel characteristics.

[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.[00075] The interpolation filter selectable by filter selector 12 may include a smoothing interpolation filter and a general interpolation filter that does not consider smoothing. Thus, based on image characteristics, the filter selector 12 can select a general interpolation filter that does not consider smoothing at all.

[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.[00076] For example, according to another embodiment, the image interpolation apparatus 10 can perform image interpolation using different interpolation filters according to the color components.

[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.[00077] According to another embodiment, the filter selector 12 may differentially select an interpolation filter based on the sub-pel unit interpolation location and a color component of a current pixel. According to another embodiment, the interpolator 14 may interpolate entire pel unit pixels using the selected interpolation filter, thereby generating at least one sub-pel unit pixel value.

[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.[00078] For example, the filter selector 12 may differently determine an interpolation filter for a luma component and an interpolation filter for a chroma component.

[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.[00079] To interpolate a chroma pixel, the filter selector 12 may select a smoothing interpolation filter having a more intense smoothness than that of an interpolation filter for a luma pixel.

[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.[00080] For example, to interpolate a chroma pixel, an interpolation filter including filter coefficients determined based on a spline function or an interpolation filter including filter coefficients determined based on a polynomial function can be selected. Filter coefficients determined based on a spline function can more heavily smooth bordering whole pel unit pixels based on a boundary condition of the spline function. The interpolation filter determined based on a polynomial function may include filter coefficients to maximize a low frequency response.

[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.[00081] Furthermore, to interpolate a chroma pixel, an interpolation filter including filter coefficients determined based on a smoothing parameter having greater smoothness than that of an interpolation filter for a luma pixel, or a smoothing filter interpolation including filter coefficients combined with a window function to remove more high-frequency components than an interpolation filter for a luma pixel can be selected.

[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.[00082] To obtain a smooth interpolation result of a chroma component, a smoothing interpolation filter obtained by combining filter coefficients to perform transformation and inverse transformation based on a plurality of basis functions, and window function coefficients to perform low-pass filtration can be selected.

[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.[00083] Image interpolation is used to transform a low-quality image into a high-quality image, to transform an interlaced image into a progressive image, or to up-sample a low-quality image to a high-quality image. Furthermore, when a video coding apparatus encodes an image, a motion estimator and compensator may perform interprediction using an interpolated reference frame. Inter prediction accuracy can be increased by interpolating a reference frame to generate a high-quality image, and performing motion estimation and compensation based on the high-quality image. Similarly, when an image decoding apparatus decodes an image, a motion compensator can perform motion compensation using an interpolated reference frame, thereby increasing interprediction accuracy.

[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.[00084] Furthermore, the smoothing interpolation filter used by the image interpolation apparatus 10 can obtain a smooth interpolation result by reducing high-frequency components in an interpolation result using an interpolation filter. As high-frequency components reduce image compression efficiency, image coding and decoding efficiency can also be improved by performing adjustable smoothness image interpolation.

[00085] A Figura 2 é um diagrama para descrever uma relação entre uma unidade inteira de pel e uma unidade sub-pel.[00085] Figure 2 is a diagram for describing a relationship between an entire pel unit and a sub-pel unit.

[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 ax e ay. 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.[00086] Referring to Figure 2, the image interpolation apparatus 10 generates pixel values from locations “X” by interpolating entire pel unit pixel values from locations “0” of a predetermined block 20 in a spatial domain. . The pixel values of the “X” locations are sub-pel unit pixel values of interpolation locations determined by ax and ay. Although Figure 2 illustrates that the predetermined block 20 is a 4x4 block, it will be readily understood by those of ordinary skill in the art that the block size is not limited to 4x4 and may be larger or smaller than 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.[00087] In video processing, a motion vector is used to perform motion compensation and prediction on a current image. Based on predictive coding, a previously decoded image is referred to as predicting a current image, and a motion vector indicates a predetermined point of a reference image. Therefore, a motion vector indicates an entire unit of pel from a reference image.

[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.[00088] However, a pixel to be referred to by a current image may be located between entire pel unit pixels of a reference image. Such a location is referred to as a sub-pel unit location. Since a pixel does not exist at a sub-pel unit location, a sub-pel unit pixel value is merely predicted using entire pel unit pixel values. In other words, a sub-pel unit pixel value is estimated by interpolating entire pel unit pixels.

[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.[00089] A method of interpolating entire pel unit pixels will now be described in detail with reference to Figures 3, and 4A to 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.[00090] Figure 3 is a diagram illustrating adjacent full-pel unit pixels to be referenced in order to determine a sub-pel unit pixel value, in accordance with an embodiment of the present invention.

[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 a.[00091] Referring to Figure 3, the image interpolation apparatus 10 generates a sub-pel unit pixel value 35 from an interpolation location by interpolating integer pel unit pixel values 31 and 33 in a spatial domain. . The interpolation location is determined by a.

[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.[00092] Figures 4A to 4C are diagrams illustrating examples of whole pel unit pixels to be referred to in order to determine a sub-pel unit pixel value, in accordance with an embodiment of the present invention.

[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°.[00093] Referring to Figure 4A, to generate the sub-pel unit pixel value 35 by interpolating the two whole-pel unit pixel values 31 and 33, several adjacent whole-pel unit pixel values 37 and 39 including pel integer unit pixel values 31 and 33, are used. In other words, pixels of order 0 and the 1st pixel can be interpolated by performing one-dimensional interpolation filtering on 2M pixel values from a pixel value -(M-1)° to a pixel value 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.[00094] Furthermore, although Figure 4A illustrates that pixel values in a horizontal direction are interpolated, one-dimensional interpolation filtering can be performed by using pixel values in a vertical or diagonal direction.

[00095] Com referência à Figura 4B, um valor de pixel P(a) de um local de interpolação a 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.[00095] Referring to Figure 4B, a pixel value P(a) of an interpolation location a can be generated by interpolating pixels P0 41 and P1 43 that are adjacent to each other in a vertical direction. When Figures 4A and 4B are compared, their interpolation filtering methods are similar and the only difference between them is that pixel values 47 and 49 aligned in a vertical direction are interpolated in Figure 4B while pixel values 37 and 39 aligned in a horizontal direction are interpolated in Figure 4A.

[00096] Com referência à Figura 4C, similarmente, um valor de pixel 44 do local de interpolação a é 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.[00096] Referring to Figure 4C, similarly, a pixel value 44 of the interpolation location a is generated by interpolating two adjacent pixel values 40 and 42. The only difference from Figure 4A is that the pixel values 46 and 48 aligned in a diagonal direction are used instead of pixel values 37 and 39 aligned in a horizontal direction.

[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.[00097] In addition to the directions shown in Figures 4A to 4C, one-dimensional interpolation filtering can be performed in various directions.

[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. [00098] Interpolation filtering can be performed to interpolate entire pel unit pixels to generate a sub-pel unit pixel value. Interpolation filtering can be represented by the following equation.

[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(a) varia com base no local de interpolação a e um valor de pixel p(a) obtido mediante realização de interpolação é determinado com base no coeficiente de filtro f(a), um filtro de interpolação selecionado, isto é, o coeficiente de filtro determinado f(x) influencia muito o desempenho da filtração de interpolação.[00099] A pixel value p(x) is generated by performing interpolation based on a dot product of a vector P of integer unit reference pixels of pel 2M {pm}={p- M+1, p -M+2, ..., p0, p1, ..., pM} and a vector f(x) of filter coefficients {fm}={f-M+1, f-M+2, ... , f0, f1, ..., fM}. Since a filter coefficient f(a) varies based on the interpolation location a and a pixel value p(a) obtained by performing interpolation is determined based on the filter coefficient f(a), a selected interpolation filter, i.e. is, the determined filter coefficient f(x) greatly influences the performance of interpolation filtration.

[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.[000100] Image interpolation using transformation and inverse transformation based on basis functions, and a method of determining an interpolation filter will now be described in detail.

[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.[000101] An interpolation filter using transformation and inverse transformation initially transforms pixel values using a plurality of basis functions having different frequency components. The transformation may include all types of transformation from pixel values in a spatial domain to coefficients in a transformation domain, and may be discrete cosine transformation (DCT). Pel integer unit pixel values are transformed using a plurality of basis functions. A pixel value can be a luma pixel value or a chroma pixel value. Basis functions are not limited to specific basis functions and can include all basis functions for transforming pixel values in a spatial domain to pixel values in a transform domain. For example, a basis function can be a cosine or sine function to perform DCT and inverse DCT (IDCT). Alternatively, several basis functions such as a spline function and a polynomial function can be used. Furthermore, DCT can be modified DCT (MDCT) or windowed MDCT.

[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.[000102] The interpolation filter using transformation and inverse transformation changes the phases of the basis functions used to perform transformation and inversely transforms the values of a plurality of coefficients generated using the phase-shifted basis functions, that is, values into a transformation domain. As a result of inverse transformation, pixel values in a spatial domain are produced, and the produced values may be pixel values of an interpolation location.

Coeficientes de Filtro utilizando Transformação Ortogonal e Transformação Inversa com base em Funções de Base OrtogonaisFilter Coefficients using Orthogonal Transformation and Inverse Transformation based on Orthogonal Basis Functions

[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.[000103] A case when the interpolator 14 performs interpolation filtering using transformation and inverse transformation based on orthogonal basis functions will now be described in detail. Specifically, DCT is described as an example of the transformation.

[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.[000104] For example, with reference to Figure 4A, to generate the sub-pel unit pixel value 35 by interpolating two entire pel unit pixel values 31 and 33, by using a plurality of adjacent pixel values of pel integer units 37 and 39 including the pel integer unit pixel values 31 and 33, the order 0 pixels and the first pixels can be interpolated by performing one-dimensional DCT on 2M pixel values from a value of pixel -(M-1)° up to a pixel value M°, and performing one-dimensional IDCT based on phase-shifted basis functions.

[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. 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.[000105] Interpolator 14 initially performs one-dimensional DCT on whole pel unit pixel values. One-dimensional DCT can be performed as represented in Equation 1. p(l) represents pixel values 37 and 39 from a pixel value -(M-1)° to a pixel value M°; and Ck represents a plurality of coefficients in a frequency domain, which are generated by performing one-dimensional DCT on pixel values 37 and 39. In this case, k is a positive integer that satisfies the above condition of Equation 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. a 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 a pode ser um valor real em vez de um valor fracionário. P(a) representa o valor de pixel de unidade sub-pel 35 do local de interpolação a , o qual é gerado como um resultado IDCT unidimensional.[000106] After the one-dimensional DCT is performed on pixel values 37 and 39 using Equation 1, interpolator 14 performs inverse transformation on the coefficients as represented in Equation 2. a represents an interpolation location between two pixel values as illustrated in Figure 13, and can have several fractional values such as 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7 /8, 1/16, etc. Fractional value is not limited to a specific value, and can be an actual value rather than a fractional value. P(a) represents the sub-pel 35 unit pixel value of the interpolation location a, which is generated as a one-dimensional IDCT result.

[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 a 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 2a . 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 a, isto é, P(a), é gerado.[000107] When Equation 2 is compared with Equation 1, the phase of a cosine function that is a basis function used to perform IDCT is determined based on a fractional number a instead of an integer l, and so is different from the phase of a basis function used to perform one-dimensional DCT. In other words, the phase of each basis function used to perform inverse transformation, that is, a cosine function, is changed based on 2a. If the interpolator 14 performs IDCT based on the phase-shifted cosine functions according to Equation 2, the sub-pel unit pixel value 35 of the interpolation location a, i.e., P(a), is generated.

[000108] DCT de acordo com a Equação 1 é expresso por uma equação de matriz representada na Equação 3. [000108] DCT according to Equation 1 is expressed by a matrix equation represented in Equation 3.

[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. 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.[000109] Here, C is a 2Mx1 matrix of the 2M coefficients described above in relation to Equation 1, and REF is a 2Mx1 matrix of the pel integer unit pixel values, that is, P-(M-1), .. PM pixel values, described above in relation to Equation 1. The number of pel integer unit pixel values used to perform interpolation, that is, 2M, refers to the number of taps of a one-dimensional interpolation filter. D is a square matrix for performing one-dimensional DCT and can be defined as represented in Equation 4. kel are integers that satisfy the above conditions, and Dkl refers to a row k and a column l of the square matrix D to perform DCT in Equation 3. M is the same as that in Equation 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. [000110] IDCT using a plurality of phase-shifted basis functions according to Equation 2 is expressed by a matrix equation represented in Equation 5.

[000111] Aqui, P(a) é 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. k é um número inteiro que satisfaz à condição acima, e Wk(a) se refere a uma coluna k da matriz W(a) 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. k e l são números inteiros que satisfazem às condições acima, Fl(a) se refere a uma coluna l de F(a), e W(a) e D são idênticos àqueles da Equação 3.[000111] Here, P(a) is the same as that of Equation 2, and W(a) is a 1x2M matrix for performing one-dimensional IDCT by using a plurality of phase-shifted basis functions and can be defined as represented in Equation 6. k is an integer that satisfies the above condition, and Wk(a) refers to a column k of the matrix W(a) described above with respect to Equation 5. A filter F(a) to perform one-dimensional DCT and one-dimensional IDCT using a plurality of phase basis functions changed according to Equations 3 and 5 can be defined as represented in Equation 7. kel are integers that satisfy the above conditions, Fl(a) refers to a column l of F(a), and W(a) and D are identical to those in Equation 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.[000112] To generate intensely smoothed sub-pel unit pixel values, the interpolator 14 may change an interpolation filter used to perform transformation and inverse transformation based on a basis function.

[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.[000113] A case when a window function is used; a case when several smoothing parameters are used; a case when a spline function is used as a base function; and a case when a polynomial function is used as a basis function to determine various smoothing interpolation filters; will now be described sequentially in detail.

Filtro de Interpolação de Suavização utilizando Função JanelaSmoothing Interpolation Filter using Window Function

[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.[000114] A method of smoothing interpolation filter coefficients using a window function will now be described in detail.

[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.[000115] A window function may include a hamming window function, a cosine window function, an exponential window function, a hamming window function, a Blackman window function, and a triangle window function. Although the cases when transform-based and inverse-transform interpolation filters are smoothed through use of certain window functions are described below for convenience of explanation, it will be readily understood by those of ordinary skill in the art that, in addition to the described window functions, other window functions having similar frequency responses can also be used.

[000116] Os coeficientes de janela com base em uma função de janela hamming satisfazem à Equação 24. [000116] Window coefficients based on a hamming window function satisfy Equation 24.

[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.[000117] In various window functions including the hamming window function, an input n is symmetric with reference to N/2 and a frequency response is similar to that of a low-pass filter. Among the inputs of a window function, only one input covered by a window formed by the window function can be produced. A window size N can be set as a positive integer greater than the length of an original interpolation filter. For example, to apply a window function to an interpolation filter to generate a sub-pel unit pixel such as 1/2 or 1/4 pixel, the center location of the window function can be moved by 1/2 or 1/ 4 pixels. That is, because the center location of the window function is moved to an interpolation location, the window function can be symmetric with respect to the interpolation location.

[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. [000118] For example, Equations 9 and 10 respectively show window coefficients of hamming window functions for 1/2 pel unit and 1/4 pel unit interpolation filters, respectively.

[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 a. [000119] Equation 11 sequentially shows the window coefficients of a hamming window function, a cosine window function and an exponential window function as window functions for interpolation filters, which are generalized based on a unit interpolation location sub-pel a.

[000120] Mediante combinação dos coeficientes de janela de acordo com a Equação 11 com um filtro de interpolação original fk(a)rcoeficientes de filtro de interpolação de suavização podem ser determinados de acordo com a Equação 12. [000120] By combining the window coefficients according to Equation 11 with an original interpolation filter fk(a)r smoothing interpolation filter coefficients can be determined according to Equation 12.

[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.[000121] As a smoothing interpolation filter is determined using a window function, a weight of an interpolation filter coefficient can be adjusted based on the distance between an entire pel unit reference pixel and an interpolation location . For example, a smoothing interpolation filter may be determined such that, through a window function, among the filter coefficients of an interpolation filter, a filter coefficient for an entire pel unit reference pixel located far from an interpolation location is changed much, and a filter coefficient for an entire pel unit reference pixel located close to the interpolation location is not changed much.

[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.[000122] Furthermore, if a smoothing interpolation filter is determined using a window function, the interpolation filtering can be performed after the integer and pel unit reference pixels are smoothed. Introduced pel whole unit reference pixels Ref={p-M+1, p-M+2, ..., p0, p1, ..., pM} may include noise or may be damaged due to such an error as a quantization error. As such, if the entire pel unit reference pixels are smoothed before interpolation filtering is performed, the image interpolation apparatus 10 can enhance an interpolation effect.

Filtro de Interpolação de Suavização utilizando Dois ParâmetrosSmoothing Interpolation Filter using Two Parameters

[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. [000123] A smoothing interpolation filter can determine the smoothness of filter coefficients based on two parameters. The sub-pel unit smoothing interpolation filter coefficients obtained by combining a smoothing matrix S and transform-based and inverse-transform interpolation filter coefficients satisfy Equation 13.

[000124] A Equação 14 mostra um exemplo da matriz de suavização S. [000124] Equation 14 shows an example of the smoothing matrix S.

[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.[000125] The smoothing matrix S according to Equation 14 is a diagonal-3 matrix. In other words, among the components of the smoothing matrix S, components except the components on a central diagonal line and on two diagonal lines corresponding to each other and adjacent to the central diagonal line are all 0.

[000126] Na matriz de suavização S, uma suavidade ai pode ser determinada independentemente da distância (i-a) 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.[000126] In the smoothing matrix S, a smoothness ai can be determined independently of the distance (i-a) from the entire pel unit pixels to be interpolated. In this case, smoothing based on the smoothing matrix S can be referred to as uniform smoothing.

[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. [000127] Furthermore, in the matrix of S, the smoothing ai may vary based on an index l of an entire pel unit pixel location. In this case, smoothing based on the smoothing matrix S can be referred to as non-uniform smoothing. For example, the smoothness ai may satisfy Equation 15.

[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.[000128] A positive index l can increase a smoothing effect if the distance between an interpolation location and an entire pel unit reference pixel is large. Consequently, the positive index l can control the speed of smoothing based on the distance between an interpolation location and an entire pel unit reference pixel. A smoothing parameter ß can control the range of smoothing around an interpolation location.

[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.[000129] If the smoothing parameter ß is less than 0, the smoothing matrix S according to Equation 13 can be changed to a sharpening filter. Consequently, if the smoothing matrix S, which is less than 0, is combined with an interpolation filter using transformation and inverse transformation, a filter for amplifying high-frequency components can be generated.

[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.[000130] To perform sub-pel unit prediction, the image interpolation apparatus 10 may use smoothing interpolation filter coefficient data previously stored in memory.

[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.[000131] Figure 5 is a graph 50 of a smoothing factor based on a smoothing parameter ß of a smoothing interpolation filter, in accordance with an embodiment of the present invention.

[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.[000132] First and second curves, 52 and 54, show a smoothing factor for smoothing a discrete transformation-based interpolation filter. If m is large, that is, if the distance from the integer pel unit pixels to be interpolated is increased, the smoothing factor is close to 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.[000133] Here, compared to the second curve 54 in a case when the smoothing parameter ß is large, the first curve 52 in a case when the smoothing parameter ß is small has a relatively large width of the smoothing factor. In other words, if the smoothing parameter ß of the smoothing interpolation filter is large, low-frequency components can be mostly filtered out and thus relatively heavily smoothed sub-pel unit pixel values can be generated. If the smoothing parameter ß of the smoothing interpolation filter is relatively small, relatively high frequency components can remain and be interpolated and thus sub-pel unit pixel values can be generated.

[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.[000134] To determine the filter coefficients of a smoothing interpolation filter, the image interpolation apparatus 10 may use a spline function or a polynomial function as a basis function as well as an orthogonal basis function.

Filtro de Interpolação de Suavização baseado em Função SplineSmoothing Interpolation Filter based on Spline Function

[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.[000135] The image interpolation apparatus 10 can determine the filter coefficients of a smoothing interpolation filter based on a spline function.

[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.[000136] Furthermore, to smooth an interpolation result, the image interpolation apparatus 10 may use a spline function having a boundary condition. In more detail, for example, if polynomial spline interpolation having a variable p is used to form an interpolation filter using m integer unit pixels pel pm (M is an integer equal to or greater than 2), to allow the variable p has a maximum smoothness in a range of 3<p<M+1 and to allow a spline value, that is, an interpolation result value to be infinitely smooth in one pixel (-M+2)° and one pixel ( M-1)°, (p-1) additional conditions may be established. These additional conditions are referred to as not-a-knot boundary conditions or Boor boundary conditions.

[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. [000137] An interpolation result using interpolation filter coefficients based on a spline function can be represented as a weighted sum calculated using Equation 16.

[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).[000138] Input pixels pm are pel integer unit reference pixels, and a set {pm} of input pixels in which the range of m is [-M+1, M] (i.e. -M+1 <m<M) is entered. A spline function S(x) corresponds to the pixel values generated as a result of interpolation. fm(x) is a means of cardinal spline interpolation and corresponds to filter coefficients based on a cardinal spline function. fm(x) can be cardinal spline function values having the same boundary condition and having values only at pel integer unit reference pixel locations (i.e. -M+1<m<M, m is an integer) .

[000139] O coeficiente de filtro fm(x) pode ser determinado mediante uso da equação 17. [000139] The filter coefficient fm(x) can be determined using equation 17.

[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 ok coeficiente m pode ser determinado com base na Equação 18. [000140] When k is an integer in a range of 0 < k < 2M-2, the spline filter coefficient fm(x) can be determined at each integer m in a range of [-M+1+k, -M+k+2], that is, from (-M+1+k) to (-M+k+2). In Equation 17, an ok coefficient m can be determined based on Equation 18.

[000141] Para interpolação de unidade sub-pel um filtro de resposta de impulso finito (FIR) incluindo coeficientes de filtro spline fm(a) de acordo com um local de interpolação a pode ser calculado previamente e armazenado, e um valor de pixel de unidade sub-pel em um local de interpolação a 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(a) no pixel de referência de unidade inteira de pel pm.[000141] For sub-pel unit interpolation a finite impulse response (FIR) filter including spline filter coefficients fm(a) according to an interpolation location a can be calculated in advance and stored, and a pixel value of sub-pel unit at an interpolation location a between a pixel of order 0° and a first pixel can be generated by performing interpolation filtering using the FIR filter including the spline filter coefficients fm(a) in the unit reference pixel entire 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.[000142] Figure 6 is a graph of a spline function 60 usable by a smoothing interpolation filter, in accordance with an embodiment of the present invention.

[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 a=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.[000143] With reference to Figure 6, based on a spline function having a variable p of 3, three spline interpolation medium curves f-2(x) 61, f-1(x) 62, and f0(x) 63 for 2M=6, i.e. a 6-lead interpolation filter, are illustrated. For example, the interpolation filter coefficients for generating sub-pel unit pixel values that satisfy a=1/4 can be determined as f-2(1/4) 64, f-1(1/4) 65, and f0(1/4) 66 in the spline interpolation means curves f-2(x) 61, f-1(x) 62, and f0(x) 63.

[000144] Filtro de Interpolação de Suavização com base na Função Polinomial[000144] Smoothing Interpolation Filter based on Polynomial Function

[000145] 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] The image interpolation apparatus 10 can determine filter coefficients of a smoothing interpolation filter based on a polynomial function.

[000146] 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. [000146] A polynomial interpolation function including interpolation filter coefficients {fk} based on a polynomial function can be represented based on a polynomial function as a basis function using Equation 19. The integer k is defined in from a range of -M+1 < k < M.

[000147] 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. [000147] Furthermore, to smooth an interpolation result, the image interpolation apparatus 10 may determine optimized filter coefficients for a low frequency range from among the interpolation filter coefficients {fk} based on a polynomial function. For example, if a frequency is 0, the filter coefficients {fk} determined when a function value of a polynomial interpolation function and function values of derivatives of the polynomial interpolation function are identical can be determined as filter coefficients interpolation systems optimized for a low frequency range. As such, as represented in Equation 20, as a function for the integer k, 2M linear functions for 2M filter coefficients {fk} (2M is an unknown) can be obtained.

[000148] 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. [000148] Solutions of the linear functions of Equation 20 can be calculated using a Newton polynomial function. Equation 21 represents 2M filter coefficients {fk} calculated as solutions of the linear functions of Equation 20.

[000149] 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] An interpolation filter including the filter coefficients {fk} determined based on the Newton polynomial function of Equations 20 and 21 has a maximum response in a low frequency range, a more intensely smoothed interpolation result can be obtained by use of pixel values using this interpolation filter. Consequently, an interpolation filter including filter coefficients determined based on a polynomial function as a basis function can be selected as a smoothing interpolation filter.

[000150] 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.[000150] As such, the image interpolation apparatus 10 can generate more intensely smoothed interpolation pixels by selecting a smoothing interpolation filter including interpolation filter coefficients based on a polynomial function. Particularly, as chroma pixels have strong high-frequency components, to generate sub-pel unit pixel values from whole pel unit chroma pixels, a smoothing interpolation filter including interpolation filter coefficients based on a polynomial function can be used.

Coeficientes de Filtro de Interpolação para Interpolação EscalonadaInterpolation Filter Coefficients for Scaled Interpolation

[000151] 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] Various smoothing interpolation filter generation methods in accordance with embodiments of the present invention rely on an arithmetic pressure to generate a floating point number rather than an integer, and absolute values of filter coefficients are not typically greater than 1. Specifically, a calculation result of a real number rather than an integer can be generated by a local sub-pel unit interpolation.

[000152] 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] The efficiency of integer-based calculation is greater than that of floating-point-based calculation. As such, the image interpolation apparatus 10 can improve the interpolation filtering calculation efficiency by scaling the filter coefficients to integers using a scaling factor. Furthermore, as a bit depth of pixel values is increased, the accuracy of interpolation filtering can also be improved.

[000153] 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. [000153] The image interpolation apparatus 10 can multiply the filter coefficients fm(a) by a predetermined value, and can perform image interpolation using large filter coefficients Fm(a). For example, the filter coefficients Fm(a) can be scaled from the filter coefficients fm(a) as represented in Equation 22.

[000154] 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] For calculation efficiency, the scale factor can be in the form of 2n. n can be 0 or a positive integer. The result of interpolation filtering using filter coefficients scaled by 2n may have a bit depth scaled by n bits compared to a result obtained using original filter coefficients.

[000155] 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. Nesse caso, um deslocamento pode ser de 2n-1.[000155] Integer calculation interpolation filtering using the scaled filter coefficients Fm(a) can satisfy Equation 23. In other words, after interpolation filtering is performed using the scaled filter coefficients Fm(a), the scaled bit depth has to be rebuilt to an original bit depth. In this case, an offset could be 2n-1.

[000156] 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] In other words, as a step filtering result using a step smoothing interpolation filter has to be reduced by a scale factor, i.e., 2n in order to be reconstructed to original bits, a bit depth of the result Stepped filtering can be reduced by n bits.

[000157] 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] If two-step interpolation filtering is performed by performing one-dimensional interpolation filtering in a horizontal direction and performing one-dimensional interpolation filtering in a vertical direction, a reduction can be made by a total of 2n bits. Consequently, if a first one-dimensional interpolation filter is scaled by n1 bits and a second one-dimensional interpolation filter is scaled by n2 bits, after two-step interpolation filtering is performed using the first and second one-dimensional interpolation filters, a reduction can be done through a sum of n1 and n2, that is, 2n bits. The first one-dimensional interpolation filter may be an interpolation filter that is not scaled.

[000158] Como uma soma dos coeficientes de filtro de suavização fm(a) é 1, filtro de suavização escalados Fm(a) do filtro de interpolação escalonado precisa satisfazer à Equação 25. [000158] As a sum of the smoothing filter coefficients fm(a) is 1, scaled smoothing filter Fm(a) of the scaled interpolation filter must satisfy Equation 25.

[000159] 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(a) 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(a) podem ser ajustados dentro de uma faixa predeterminada de valores originais. Por exemplo, alguns dos coeficientes de filtro escalados Fm(a) podem ser ajustados dentro de uma faixa de ±1 para corrigir um erro de arredondamento.[000159] However, the normalization condition according to Equation 25 may cause a rounding error. The image interpolation apparatus 10 may round the scaled filter coefficients Fm(a) based on the normalization condition according to Equation 19. For normalization, some of the scaled filter coefficients Fm(a) may be adjusted within a predetermined range of original values. For example, some of the scaled filter coefficients Fm(a) can be adjusted within a range of ±1 to correct for a rounding error.

[000160] 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] Various smoothing interpolation filters and filter coefficients are described above. Specifically, as a function to determine the filter coefficients of a smoothing interpolation filter, a window function, a spline function, a polynomial function, etc. can be used. For a smoothing interpolation filter, a frequency response of a function may vary based on a frequency, but a filter gain of the function's frequency response may be close to 1. Consequently, the image interpolation apparatus 10 may determine the filter coefficients by using a function having a filter gain of which a frequency response is closest to 1 even when a frequency varies, and can select a smoothing interpolation filter including the filter coefficients.

[000161] A Figura 7 é um fluxograma de um método de interpolação de imagem de acordo com uma modalidade da presente invenção.[000161] Figure 7 is a flowchart of an image interpolation method in accordance with an embodiment of the present invention.

[000162] 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] In operation 71, an interpolation filter is selected differently based on a sub-pel unit interpolation location and a smoothness among the interpolation filters to generate at least one sub-pel unit pixel value located between the entire pel unit pixels of an image. An interpolation filter smoothness can be determined based on a distance between an interpolation location and entire pel units.

[000163] 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] An interpolation filter according to one embodiment may be a filter including filter coefficients for performing transformation and inverse transformation based on a plurality of basis functions. A smoothing interpolation filter according to an embodiment may include at least one of an interpolation filter combined with a window function, an interpolation filter based on a plurality of smoothing parameters, an interpolation filter based on a smoothing parameter , a spline interpolation filter, and a polynomial function interpolation filter.

[000164] 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] To perform filtering using a smoothing interpolation filter, filter coefficients can be determined to more intensely smooth entire pel unit reference pixels away from an interpolation location.

[000165] 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] In operation 73, at least one pixel value of sub-pel units is generated by interpolating pixel values of the entire pel unit pixels using the interpolation filter selected in operation 71.

[000166] 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] Among the interpolation filters, if an interpolation filter including filter coefficients scaled to integers is selected, the pixel values generated using the interpolation filter can be normalized based on a scaling factor.

[000167] 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] According to one embodiment, an interpolation filter can be selected differently based on the characteristics of the pixels to be interpolated, and sub-pel unit pixel values can be generated using the selected interpolation filter.

[000168] 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] Various examples of filter coefficients of an interpolation filter determined in consideration of a sub-pel unit interpolation location and a smoothness will now be described with reference to Figures 8A to 12C.

[000169] 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] Figures 8A to 8C are tables showing filter coefficients of 12-lead interpolation filters determined based on a smoothing parameter and an interpolation location, in accordance with embodiments of the present invention.

[000170] 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] With reference to Figures 9A to 8C, among the interpolation filters described above based on orthogonal transformation, to perform orthogonal transformation and inverse transformation after smoothing, the whole pel unit reference pixels as described above in relation to Figure 5, filter coefficients of a smoothing interpolation filter obtained by combining a smoothing matrix and an interpolation filter based on an orthogonal transformation are shown.

[000171] 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 a varia como 1/8, 1/4, 3/8, 1/2, 5/8, 3/4 e 7/8.[000171] Figures 8A to 8C show various interpolation filters including different filter coefficients as a smoothing parameter ß varies as 0, 0.002, 0.004, 0.006, 0.008, 0.010, 0.012, 0.014, 0.016, 0.018 and 0.020, and an interpolation location varies it as 1/8, 1/4, 3/8, 1/2, 5/8, 3/4, and 7/8.

[000172] Por exemplo, na tabela da Figura 8A, se o parâmetro de suavização ß for 0,002 e o local de interpolação a 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] For example, in the table of Figure 8A, if the smoothing parameter ß is 0.002 and the interpolation location a is 1/8, a filter including the filter coefficients {fm}, for example, {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}, determined as {-1, 4, -7, 12, -24, 246, 37, -16, 9, -5, 3, -1} can be selected as an interpolation filter.

[000173] 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] Figures 9A to 9C are tables showing filter coefficients of 6-lead interpolation filters determined based on a smoothing parameter and an interpolation location, in accordance with embodiments of the present invention.

[000174] 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 a podem ser mostrados.[000174] Although the filter coefficients of Figures 8A to 8C are 12 filter coefficients of a 12-lead interpolation filter among the smoothing interpolation filters obtained by combining a smoothing matrix and an orthogonal transformation interpolation filter, Figures 9A to 9C show 6 filter coefficients of a 6-lead interpolation filter. In Figures 8A to 8C, and 9A to 9C, various smoothing interpolation filters including different filter coefficients based on the smoothing parameter ß and the interpolation location a can be shown.

[000175] 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] The filter coefficients shown in Figures 9A to 8C, and 9A to 9C are coefficients scaled by a scale factor of 256(=28) based on scaled interpolation filtering and then rounded.

[000176] Nas Figuras 8A a 8C e 9A a 9C, quando o local de interpolação a é constante e o parâmetro de suavização ß é aumentado, um coeficiente de filtro fm pode ser relativamente pequeno.[000176] In Figures 8A to 8C and 9A to 9C, when the interpolation location a is constant and the smoothing parameter ß is increased, a filter coefficient fm can be relatively small.

[000177] Além disso, quando o parâmetro de suavização ß é constante e o local de interpolação a 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] Furthermore, when the smoothing parameter ß is constant and the interpolation location a is away from 1/2, if m of the filter coefficient fm is away from m=0 towards m=-M+1 or m=M, the filter coefficient fm may be relatively small compared to f0. The filter coefficient fm near m=0 can be relatively large.

[000178] Consequentemente, quando o parâmetro de suavização ß é aumentado, se o local de interpolação a 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] Consequently, when the smoothing parameter ß is increased, if the interpolation location a is away from 1/2, that is, close to the whole pel unit pixel, a sharper interpolation filter, that is , a less smoothing interpolation filter, can be selected.

[000179] Como um filtro de interpolação de acordo com uma modalidade é um filtro simétrico refletivo inversamente, um coeficiente de filtro fm(a) de um local de interpolação (1-a) pode ser determinado mediante uso do coeficiente de filtro fm(a) do local de interpolação a. 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 a=3/8 e os coeficientes de filtro {fm(5/8)} do local de interpolação a=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] As an interpolation filter according to one embodiment is an inversely reflective symmetric filter, a filter coefficient fm(a) of an interpolation location (1-a) can be determined using the filter coefficient fm(a ) from the interpolation location a. For example, in Figure 9A, among the filter coefficients {fm} having the smoothing parameter ß=0.002, the filter coefficients {fm(3/8)} of the interpolation location a=3/8 and the filter coefficients {fm(5/8)} from the interpolation location a=1-3/8=5/8 are compared as shown below. {fm(3/8)} = { 11, -42, 196, 117, -35, 10 }, {fm(5/8)} = { 10, -35, 117, 196, -42, 11 }

[000180] 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(a) 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(a) em um caso quando o local de interpolação é maior do que 1/2 também podem ser determinados.[000180] That is, it is shown that the filter coefficients {fm(3/8)} when m = -2, -1, 0 are identical to the filter coefficients {fm(5/8)} when m = 3, 2, 1, and the filter coefficients {fm(3/8)} when m = 3, 2, 1 are identical to the filter coefficients {fm(5/8)} when m = -2, -1, 0. Consequently, in the tables of Figures 10 to 12C, although only the interpolation filter coefficients fm(a) in a case when the interpolation location is less than or equal to 1/2 are shown, it will be readily understood by those of knowledge It is common in the art that the interpolation filter coefficients fm(a) in a case when the interpolation location is greater than 1/2 can also be determined.

[000181] 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] Figure 10 is a table showing the filter coefficients of 6-lead interpolation filters determined for chroma pixels based on a smoothing parameter and an interpolation location, in accordance with an embodiment of the present invention.

[000182] 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] The image interpolation apparatus 10 may differently select an interpolation filter based on image characteristics. For example, if a smoothing interpolation filter obtained by combining a smoothing matrix and an orthogonal transform interpolation filter is determined, a smoothing parameter may vary based on image characteristics.

[000183] 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] For example, because chroma pixels are down-sampled based on a 4:2:0 color format, chroma pixels have fewer low-frequency components compared to luma pixels. In this case, with reference to Figure 10, regardless of an interpolation filter for luma pixels, only an interpolation filter for chroma pixels can be additionally selected. Various filter coefficients of interpolation filters selected differently based on a color component will now be described with reference to Figure 11.

[000184] 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] Figure 11 is a table showing the filter coefficients of the smoothing interpolation filters determined differently based on a color component and an image interpolation location, in accordance with an embodiment of the present invention.

[000185] 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 a, 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 a é menor do que ou igual a 1/2 é mostrado.[000185] Referring to Figure 11, various smoothing interpolation filters including different filter coefficients such as a number of filter taps 2M, an interpolation location a, and a color component L(luma)/C(chroma) varies . The filter coefficients in Figure 11 are coefficients scaled to a scale factor of 256(=28) and rounded. As described above, based on the inverse reflective characteristics of interpolation filter coefficients, only one case when the interpolation location a is less than or equal to 1/2 is shown.

[000186] 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] Similarly to Figures 8A to 10, a result of comparing filter coefficients for a chroma component and filter coefficients for a luma component is similar to a result of comparing filter coefficients in a case when a smoothing parameter ß is large and the filter coefficients in a case when the smoothing parameter ß is small.

[000187] 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] Figures 12A to 12C are tables showing filter coefficients of smoothing interpolation filters based on an image interpolation location and a scale factor, in accordance with embodiments of the present invention.

[000188] 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 a variam.[000188] Figures 12A to 12C show several modified examples of the filter coefficients of the smoothing interpolation filters, which are scaled, rounded, and normalized as a scale factor of 2n varies such as 512, 256, 128, and 64 , and the number of filter taps of an interpolation filter and an interpolation location vary a.

[000189] 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] Specifically, in Figure 12C, interpolation filter coefficients for interpolating 1/8 pixel units may be useful for performing motion compensation on chroma pixels. However, as the image quality of chroma pixels, which is visually recognized by people, is less crucial compared to luma pixels due to a relatively short filter lead, e.g. 4 leads, and a low bit depth, a smoothing interpolation filter having a scale factor of 25 can also be used.

[000190] 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] The filter coefficients shown in Figures 9A to 12C are only parts of several examples, and it will be readily understood by those of ordinary skill in the art that the filter coefficients of interpolation filters considering smoothing, in accordance with the embodiments of the present invention, can be modified based on various factors including an interpolation location, a smoothing parameter, a window function, a spline function, a polynomial function, a scale factor and rounding.

[000191] 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] Video coding and decoding using a smoothing interpolation filter, in accordance with embodiments of the present invention, are described below with reference to Figures 13A to 27. Video coding and decoding based on coding units having a tree structure, in accordance with embodiments of the present invention, are described below with reference to Figures 15 to 25. Methods of encoding and decoding video using a smoothing interpolation filter, in accordance with embodiments of the present invention , are described below with reference to Figures 26 and 27.

[000192] 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] When various operations are performed on image data, the image data can be divided into data groups and the same operation can be performed on data in the same data group. In the following description, a group of data formed according to a predetermined pattern is referred to as a “data unit”, and an operation is performed on each “data unit” using data included in the data unit. Video Encoding and Decoding using Smoothing Interpolation Filter

[000193] 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] Figure 13A is a block diagram of a video coding apparatus 100 using a smoothing interpolation filter, in accordance with an embodiment of the present invention.

[000194] 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] The operations of an encoder 120 and an output unit 130 of the video coding apparatus 100 can be cooperatively controlled by a video coding processor, a CPU, and a graphics processor.

[000195] 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] To encode a current image from an input video, the video encoding apparatus 100 divides the current image into data units having a predetermined size and encodes each data unit.

[000196] 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] For example, the current image includes pixels in a spatial domain. To encode spatially adjacent pixels of the current image at the same time, the current image can be divided into groups of pixels having a predetermined size such that adjacent pixels within a predetermined range form a group. By performing a series of encoding operations on the pixels of the divided pixel groups, the current image can be encoded.

[000197] 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] Since the initial data of an image to be encoded are pixel values in the spatial domain, each group of pixels can be used as a data unit to be encoded. Furthermore, when transformation coefficients in a transformation domain are generated by performing transformation for video coding on pixel values of the pixel group in the spatial domain, the transformation coefficients are included in groups of coefficients having the same size as the groups of pixels in the spatial domain. Consequently, a group of coefficients of the transformation coefficients in the transformation domain can also be used as a data unit to encode an image.

[000198] 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] Consequently, in the spatial domain and the transformation domain, a group of data having a predetermined size can be used as a data unit to be encoded. In this case, the size of a data unit can be defined as the number of pieces of data included in the data unit. For example, the number of pixels in the spatial domain or the number of transformation coefficients in the transformation domain can represent the size of a data unit.

[000199] 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] An encoding method or encoding characteristics of a current data unit may be determined with respect to each group of data of any data level among a data unit, a slice, an image, and a sequence of images of a video that must be currently encoded.

[000200] 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] The video coding apparatus 100 can encode a current image by performing predictive coding including inter-prediction and intra-prediction, transformation, quantization, and entropy coding on each data unit.

[000201] 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] Based on inter prediction, to estimate a current pixel value with reference to a pixel value of a temporally previous or subsequent image, residual data between a pixel value of a reference region of a reference image and a pixel value of a current image and reference data indicating said pixel value can be determined.

[000202] 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] To perform inter prediction more accurately, the video coding apparatus 100 can determine residual data and reference data using a sub-pel unit pixel value. To perform inter-sub-pel unit prediction, the video coding apparatus 100 may determine a sub-pel unit pixel value located between adjacent whole-pel unit pixels by interpolating the adjacent whole-pel unit pixels.

[000203] 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] Furthermore, the sub-pel unit pixel value may be generated by performing interpolation filtering on two or more whole-pel unit reference pixels including the adjacent whole-pel unit pixels. The reference pixels for performing interpolation filtering can be pixels from a reference image.

[000204] 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] To efficiently perform image interpolation, the video coding apparatus 100 can selectively determine the interpolation filter coefficients. The encoder 120 may include the image interpolation apparatus 10 illustrated in Figure 1. In other words, to perform inter-sub-pel unit prediction, the encoder 120 may generate a sub-pel unit pixel value through use of a filter. of interpolation including the filter coefficients determined by the image interpolation apparatus 10 based on transformation and inverse transformation.

[000205] 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] To efficiently perform interpolation filtering, the video coding apparatus 100 may previously store interpolation filter coefficients in memory. According to an interpolation location, a smoothness, the number of filter taps, a bit depth, a scale factor, and a transformation-based interpolation filtering base function can be stored in the memory of the encoding apparatus. of video 100.

[000206] 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] For example, at least one of (i) 8-lead 1/4 pel unit filter coefficients {-1, 4, -10, 57, 19, -7, 3, -1} having a factor of 26, (ii) 8-lead 1/2 pel unit filter coefficients {-1, 4, -11, 40, 40, -11, 4, -1} having a scaling factor of 26, (iii) 4-lead 1/8 pel unit filter coefficients {-3, 60, 8, -1} having a scaling factor of 26, (iv) 1/4 pel unit filter coefficients of 4 leads {-4, 54, 16, -2} having a scale factor of 26, (v) 4-lead 3/8 pel unit filter coefficients {-5, 46, 27, -4} having a factor scale factor of 26, and (vi) 4-lead 1/2 pel unit filter coefficients {-4, 36, 36, -4} having a scale factor of 26 may be stored in memory and may be used to perform smoothing interpolation filtering.

[000207] 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] In addition to the filter coefficients mentioned above, smoothing interpolation filter coefficients that can be modified based on various basis functions and window functions as shown in Figures 9A to 9C can be used to perform interpolation filtering.

[000208] 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] If interpolation filtering is performed using the filter coefficients stored in memory, an inter-prediction calculation speed can be improved.

[000209] 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 a 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] Among a plurality of interpolation filters, the encoder 120 may select and use a desired smoothing interpolation filter to perform inter-prediction based on a sub-pel unit interpolation location and a smoothness. Additionally, an appropriate smoothing interpolation filter for a current pixel can be determined based on the number of filter taps, a bit depth, a scaling factor, etc.

[000210] 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] Encoder 20 may determine an interpolation filter based on image characteristics. For example, the encoder 120 may determine different interpolation filters based on the color components of the pixels. For example, an interpolation filter for luma pixels and an interpolation filter for chroma pixels can be selected separately and thus sub-pel unit pixel values can be individually generated by performing interpolation filtering.

[000211] 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 video can be encoded by performing inter prediction based on sub-pel unit interpolation, intra prediction, transformation, and quantization.

[000212] 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] The output unit 130 can encode and output coding information and can output encoded image data. Like the encoding information, information about the selected interpolation filter can be additionally encoded. In other words, information about an interpolation filter used to perform sub-pel unit prediction coding may be encoded. For example, a decoder must know about an interpolation filter used to encode an image in order to decode the image using the same interpolation filter used in the encoding process. To do this, information indicating the interpolation filter used can be encoded together with the image. However, if a filter is selected based on a previous encoding result, i.e., context, information about the selected filter may not be additionally encoded.

[000213] 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] The output unit 130 can perform entropy coding on the coding information and coded image data and can produce a bit stream.

[000214] 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] Figure 13B is a block diagram of a video decoding apparatus 200 using a smoothing interpolation filter, in accordance with an embodiment of the present invention.

[000215] 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] The video decoding apparatus 200 includes a receiver and extractor 220 and a decoder 230. The operations of the receiver and extractor 220 and the decoder 230 of the video decoding apparatus 200 can be controlled cooperatively through a processor video decoding system, a graphics processor, and a CPU.

[000216] 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] To reconstruct an image from a bit stream, the video decoding apparatus 200 may decode the encoded image data from the bit stream by performing operations including entropy decoding, inverse quantization, inverse transformation, inter prediction. /compensation, and intra/compensation prediction.

[000217] 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] The receiver and extractor 220 receives, and analyzes, a bit stream of an encoded video. The receiver and extractor 220 can extract the encoded data from each data unit of a current image, and encode information including information about an encoding method to be used to decode the encoded data, from the analyzed bit stream.

[000218] 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] If the coding information includes interpolation filter information, the decoder 230 may read information about an interpolation filter used to perform intra-subunit prediction from the interpolation filter information, and may perform interpolation compensation. movement through the use of the interpolation filter used in a coding process.

[000219] 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] The decoder 230 can decode the encoded image data by performing various decoding operations such as entropy decoding, inverse quantization, inverse transformation, inter/compensation prediction, and intra/compensation prediction on a coded image according to the various decoding methods determined based on information about an encoding mode.

[000220] 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] To perform motion compensation, a reference region of a reference image that is temporally prior or subsequent to a current image may be determined using reference data, and a pixel value of the reference region and the Residual data can be combined to reconstruct a current pixel value.

[000221] 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] If residual data and reference data are determined based on the interpolated pixels in a subpixel unit in an encoding process, the decoder 230 may also perform motion compensation based on the interpolated pixels in a subpixel unit. To perform subpixel unit motion compensation, decoder 230 may generate a subpixel unit pixel value by interpolating adjacent whole pel unit pixels of the reference image. The sub-pel unit pixel value may be generated by performing interpolation filtering on two or more whole-pel unit reference pixels including the adjacent whole-pel unit pixels.

[000222] 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] To efficiently realize image information, the video decoding apparatus 200 can selectively determine the interpolation filter coefficients. Decoder 230 may include the image interpolation apparatus 10 illustrated in Figure 1. In other words, to perform sub-pel unit motion compensation, decoder 230 may generate the sub-pel unit pixel value through use of a filter. interpolation based on transformation.

[000223] 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] To efficiently perform interpolation filtering, the video decoding apparatus 200 may pre-store variously selectable interpolation filter coefficients in memory according to an interpolation location, a smoothness, the number of filter taps, a bit depth, a scale factor, and a transformation-based interpolation filtering base function.

[000224] 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] As described above, for example, at least one of (i) 8-lead 1/4 pel unit filter coefficients {-1, 4, -10, 57, 19, -7, 3, -1 } having a scaling factor of 26, (ii) 8-lead 1/2 pel unit filter coefficients {-1, 4, -11, 40, 40, -11, 4, -1} having a scaling factor scale of 26, (iii) 4-lead 1/8 pel unit filter coefficients {-3, 60, 8, -1} having a scaling factor of 26, (iv) pel unit filter coefficients of 1 /4 4-lead {-4, 54, 16, -2} having a scale factor of 26, (v) 4-lead 3/8 pel unit filter coefficients {-5, 46, 27, -4 } having a scale factor of 26, and (vi) 4-lead 1/2 pel unit filter coefficients {-4, 36, 36, -4} having a scale factor of 26 may be stored in memory and can be used to perform smoothing interpolation filtering. In addition to the filter coefficients mentioned above, smoothing interpolation filter coefficients that can be modified according to various basis functions and window functions as shown in Figures 8A to 12C can be used to perform smoothing interpolation filtering.

[000225] 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 a, o número de derivações de filtro, uma profundidade de bits, um fator de escala, etc.[000225] Among a plurality of interpolation filters, the decoder 230 may select and use an interpolation filter appropriate for a current pixel to perform sub-pel unit motion compensation according to a sub-pel unit interpolation location. , the number of filter taps, a bit depth, a scaling factor, etc.

[000226] 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] Additionally, decoder 230 may determine a smoothing interpolation filter based on image characteristics. For example, different interpolation filters can be determined according to the color components of pixels, interpolation filtering for luma pixels and interpolation filtering for chroma pixels can be performed separately, and thus the interpolated sub-pel unit pixel values can be individually generated.

[000227] 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] Accordingly, the decoder 230 can reconstruct the data in a spatial domain by performing inverse quantization/inverse transformation, and can reconstruct the pixel values in a current image by performing intra prediction and motion compensation based on interpolation of sub-pel unit as well as whole pel unit interpolation. If images are reconstructed, a video can be decoded.

[000228] 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] Figure 14A is a flowchart of an image coding method using a smoothing interpolation filter, in accordance with an embodiment of the present invention.

[000229] 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] In operation 1410, to encode a current image from an input video, predictive coding is performed using sub-pel unit interpolation. An interpolation filter is selected differently based on a sub-pel unit interpolation location and a smoothness among the interpolation filters to generate a sub-pel unit pixel value. The smoothness of the interpolation filter can be determined based on the distance between an interpolation location and entire pel units.

[000230] 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] The sub-pel unit pixel value can be generated by performing interpolation filtering on two or more entire pel unit reference pixels of a reference image. Residual data and reference data are determined using the generated sub-pel unit pixel value, thereby realizing prediction coding.

[000231] 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] To efficiently perform image interpolation, the interpolation filter coefficients can be determined selectively. Among the interpolation filter coefficients previously stored in memory, a desired interpolation filter can be selected based on a sub-pel unit interpolation location, a smoothness, a number of filter taps, a bit depth, a factor scale, a base interpolation filtering function based on the transformation, and a color component, and interpolation can be performed to generate the sub-pel unit pixel value.

[000232] 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] In operation 1420, transformation and quantization are performed on an inter prediction result based on sub-pel unit interpolation, and intra prediction.

[000233] 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] In operation 1430, a bit stream can be produced by performing entropy coding on the coding information and image data encoded in the form of quantized transformation coefficients. The coding information may include information about an interpolation filter used to perform sub-pel unit prediction coding.

[000234] 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] Figure 14B is a flowchart of an image decoding method using a smoothing interpolation filter, in accordance with an embodiment of the present invention.

[000235] 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] In operation 1450, a bitstream of an encoded video is received, entropy decoded, and analyzed to extract quantized transformation coefficients and encode information of a current image from the bitstream.

[000236] 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] If the coding information includes information about an interpolation filter, the type of an interpolation filter required can be read from the information.

[000237] 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] In operation 1460, according to various decoding methods determined based on a coding mode read from the coding information, inverse quantization and inverse transformation are performed on the quantized transformation coefficients, and residual data is additional, thereby mode by reconstructing the data in a spatial domain.

[000238] 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] In operation 1470, encoded image data can be decoded by performing various decoding operations such as motion compensation and intra prediction based on the encoding mode.

[000239] 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] Specifically, if encoded residual data and reference data are extracted based on the interpolated pixels in a sub-pel unit, motion compensation can be performed based on the interpolated pixels in a sub-pel unit. Among the interpolation filters to generate a sub-pel unit pixel value, an interpolation filter is selected differently based on a sub-pel unit interpolation location and a smoothness.

[000240] 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] To efficiently perform image interpolation, interpolation filter coefficients can be determined selectively. Among the interpolation filter coefficients previously stored in memory, a desired interpolation filter can be selected according to a sub-pel unit interpolation location, a smoothness, a number of filter taps, a bit depth, a factor scale, an interpolation filtering base function based on the transformation, and a color component, and interpolation can be performed to generate the sub-pel unit pixel value. Since motion compensation is performed on the interpolated pixels using the interpolated filter coefficients previously stored in memory, the calculation speed can be increased.

[000241] 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] A reference image and a reference region are determined using the reference data, and the sub-pel unit pixel value can be generated by performing interpolation filtering on two or more whole unit reference pixels of the reference structure. Motion compensation can be performed by combining the generated sub-pel unit pixel value and the residual data, and thus prediction decoding can be performed.

[000242] 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.[000242] In operation 1480, a current image is reconstructed using the pixel values obtained by performing predictive decoding, and thus a video is decoded.

Codificação e Decodificação de Vídeo utilizando Interpolação de Suavização com base em Unidades de Codificação tendo Estruturas de ÁrvoreVideo Coding and Decoding using Smoothing Interpolation based on Coding Units having Tree Structures

[000243] 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] Video encoding and decoding apparatus using a smoothing interpolation filter based on coding units having a tree structure, and video encoding and decoding methods corresponding to the video encoding and decoding apparatus, in accordance with the Embodiments of the present invention will now be described in detail with reference to Figures 13 to 27.

[000244] 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] The video coding apparatus 100 can encode a video based on coding units and transformation units having a tree structure.

[000245] 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] A current image of a video can be divided based on a maximum coding unit for the current image. If the current image is larger than the maximum coding unit, image data of the current image may be divided into at least one maximum coding unit. The maximum coding unit may be a data unit having a size of 32x32, 64x64, 128x128, 256x256, etc., wherein a format of the data unit is a square having a width in length in squares of 2. The encoder 120 may encode the image data of each of at least one maximum encoding unit.

[000246] 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] A coding unit according to an embodiment of the present invention can be characterized by a maximum size and depth. Depth denotes the number of times the coding unit is spatially divided from the maximum coding unit, and as the depth increases, the deeper coding units according to the depths can be divided from the maximum coding unit. from maximum encoding to a minimum encoding unit. A maximum coding unit depth is a higher depth and a minimum coding unit depth is a lower depth. As a size of a coding unit corresponding to each depth decreases as the depth of the maximum coding unit deepens, a coding unit corresponding to a higher depth may include a plurality of coding units corresponding to lower depths.

[000247] 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] As described above, the image data of the current image is divided into maximum coding units according to the maximum size of the coding unit, and each of the maximum coding units may include deeper coding units that are divided according to the depths. As the maximum coding unit according to an embodiment of the present invention is divided according to depths, image data of a spatial domain included in the maximum coding unit can be hierarchically classified according to depths.

[000248] 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] A maximum depth and a maximum size of a coding unit, which limit the total number of times a height and a width of the maximum coding unit are hierarchically divided, can be predetermined.

[000249] 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] Encoder 120 encodes at least one split region obtained by dividing a region of the maximum coding unit according to depths, and determines the depth to produce image data finally encoded according to at least one split region. In other embodiments, the encoder 120 determines a coded depth by encoding the image data into the deepest coding units according to the depths, according to the maximum coding unit of the current image, and selecting a depth having the smallest error of codification.

[000250] 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] The encoder 120 may output the encoded image data from the encoding unit corresponding to the determined encoded depth. Furthermore, the encoder 120 can transmit information about the determined encoded depth to the output unit 130 such that the encoded depth information can be encoded as coding information.

[000251] 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] The image data in the maximum coding unit is encoded based on the deepest coding units corresponding to at least a depth equal to or below the maximum depth, and the results of encoding the image data are compared based on each one of the deepest coding units. A depth having the minimum coding error can be selected after comparing the coding errors of the deeper coding units. At least one encoded depth can be selected for each maximum encoding unit.

[000252] 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] The size of the maximum coding unit is divided as a coding unit is divided hierarchically according to depths, and as the number of coding units increases. Furthermore, even if the coding units correspond to the same depth at a maximum coding unit, it is determined whether to divide each of the coding units corresponding to the same depth to a lower depth by measuring a coding error of the coding data. image of each coding unit separately. Consequently, even when image data is included in a maximum coding unit, the image data is divided into regions according to depths, and coding errors may differ according to the regions in a maximum coding unit, and thus the encoded depths may differ according to regions in the image data. Thus, one or more coded depths can be determined in a maximum coding unit, and the image data of the maximum coding unit can be divided according to the coding units of at least one coded depth.

[000253] 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] Accordingly, encoder 120 can determine coding units having a tree structure included in the maximum coding unit. "Coding units having a tree structure" according to an embodiment of the present invention include coding units corresponding to a depth determined to be the coded depth, among all the deepest coding units included in the maximum coding unit. A coding unit of a coded depth can be determined hierarchically according to the depths in the same region of the maximum coding unit, and can be determined independently in different regions. Similarly, a depth encoded in a current region can be determined independently from a depth encoded in another region.

[000254] 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 maximum depth according to an embodiment of the present invention is an index related to the number of times the division is performed from a maximum coding unit to a minimum coding unit. A first maximum depth according to an embodiment of the present invention may denote the total number of times the division is performed from the maximum coding unit to the minimum coding unit. A second maximum depth according to an embodiment of the present invention may denote the total number of depth levels from the maximum coding unit to the minimum coding unit. For example, when a maximum coding unit depth is 0, a depth of a coding unit, in which the maximum coding unit is divided once, can be set to 1, and a depth of a coding unit, in which the maximum coding unit is divided twice, can be set to 2. Here, if the minimum coding unit is a coding unit in which the maximum coding unit is divided four times, 5 levels deep, from depth 0 , 1, 2, 3 and 4 exist, and so the first maximum depth can be set to 4, and the second maximum depth can be set to 5.

[000255] 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] Prediction coding and transformation can be performed according to the maximum coding unit. Predictive coding and transformation are also performed based on the deepest coding units according to a depth equal to or a depth less than the maximum depth according to the maximum coding unit.

[000256] 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] As the number of deeper coding units increases whenever the maximum coding unit is divided according to depths, coding including prediction coding and transformation is performed on all deeper coding units generated at as the depth increases. For convenience of description, prediction coding and transformation will now be described based on the coding unit of a current depth, in a maximum coding unit.

[000257] 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] The video encoding apparatus 100 may variously select a size or format of a data unit for encoding the image data. To encode the image data, operations such as prediction coding, transformation, and entropy coding are performed, and this time, the same data unit can be used for all operations or different data units can be used for each. operation.

[000258] 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] For example, the video coding apparatus 100 may select not only a coding unit to encode the image data, but also a data unit other than the coding unit in order to perform predictive coding on the image data. image in the encoding unit.

[000259] 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] To perform prediction coding at the maximum coding unit, prediction coding can be performed based on a coding unit corresponding to a coded depth, that is, based on a coding unit that is no longer divided into coding units corresponding to a lower depth. Then, the coding unit that is no longer divided and becomes a basic unit for prediction coding will now be referred to as a “prediction unit”. A partition obtained by dividing the prediction unit may include a prediction unit or a data unit obtained by dividing at least one of a height and a width of the prediction unit.

[000260] 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] For example, when a 2Nx2N coding unit (where N is a positive integer) is no longer divided and becomes a 2Nx2N prediction unit, a partition size may be 2Nx2N, 2NxN, Nx2N, or NxN. Examples of a partition type include symmetric partitions that are obtained by symmetrically dividing a height or width of the prediction unit, partitions obtained by asymmetric division of the height or width of the prediction unit, such as 1:n or n:1, partitions which are obtained by geometric division of the prediction unit, and partitions having arbitrary formats.

[000261] 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] A prediction mode of the prediction unit can be at least one of an intra mode, an inter mode, and a skip mode. For example, intra mode or inter mode can be realized in the partition of 2Nx2N, 2NxN, Nx2N or NxN. Furthermore, jump mode can be performed only on the 2Nx2N partition. Coding is performed independently in a prediction unit in a coding unit, thereby selecting a prediction mode having a minimum coding error.

[000262] 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] The video encoding apparatus 100 may also perform transformation on the image data into a coding unit based not only on the coding unit for encoding the image data, but also based on a data unit that is different from the encoding unit.

[000263] 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] To perform the transformation in the coding unit, the transformation can be performed based on a transformation unit having a size less than or equal to the coding unit. For example, the transformation unit for the transformation may include a data unit for an intra mode and a data unit for an inter mode.

[000264] 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] Similar to the coding unit, the transformation unit in the coding unit can be recursively divided into regions of smaller sizes, so that the transformation unit can be independently determined into region units. Thus, the residual data in the coding unit can be divided according to the transformation units having the tree structure according to the transformation depths.

[000265] 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] A transformation depth indicating the number of times division is performed to reach the transformation unit by dividing the height and width of the coding unit can also be established in the transformation unit. For example, in a current encoding unit of 2Nx2N, a transformation depth may be 0 when the size of a transformation unit is also 2Nx2N, may be 1 when the size of the transformation unit is NxN, and may be of 2 when the size of the transformation unit is N/2xN/2. In other words, transformation units having a tree structure can be established according to transformation depths.

[000266] 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] Coding information according to a coded depth requires not only information about the coded depth, but also information about prediction and transformation coding. Accordingly, the encoder 120 not only determines a coded depth having a minimum coding error, but also determines a partition type in a prediction unit, a prediction mode according to the prediction units, and a size of a prediction unit. transformation to transformation. For inter prediction, the coding information according to a coded depth may include information related to interpolation filtering to interpolate sub-pel units.

[000267] 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] Furthermore, the encoder 120 can perform transformation using transformation units having a tree structure for encoding the coding units, based on a maximum division level of the transformation units, which is adjusted in advance and accordingly. restrictively in each maximum coding unit or in a current coding unit.

[000268] 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] In each of the deeper coding units according to the depths, a basic transformation unit having a size less than or equal to a coding unit can be hierarchically divided into lower transformation units or transformation depths. Transformation units having a tree structure may include a basic transformation unit having a maximum size that is currently allowed, and lower level transformation units with respect to a maximum division level that is allowed for the encoding units.

[000269] 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] After performing the transformation at each level according to a transformation depth in a current coding unit, the encoder 120 can determine transformation units having a tree structure, which are independent of the transformation units of adjacent regions and based on a hierarchical structure between transformation units in the same region according to the transformation depths.

[000270] 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] In other words, transformation units having a tree structure can be determined by performing transformation on each coding unit using transformation units of different sizes and then comparing the results of the transformation. Although a coding unit is being determined, a transformation unit to transform the coding unit can be determined. Whenever coding units according to each one or more depths are encoded, transformation units according to each one or more transformation depths can be used to perform the transformation.

[000271] 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] A transformation unit having a minimum coding error must be determined for each coding unit. To determine a transformation depth having a minimum coding error in a transformation unit, coding errors can be measured and compared across all deeper transformation units according to the depths. A transformation unit can be determined as a unit to minimize a transformation error of a coding unit.

[000272] 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] Consequently, as a combination of a deeper coding unit and a deeper transformation unit according to the depths, which has a minimum coding error, is determined individually in each region of a maximum coding unit, coding units having a tree structure and transformation units having a tree structure can be determined.

[000273] 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] Methods of determining coding units having a tree structure, partitions, and transformation units having a tree structure into a maximum coding unit, in accordance with embodiments of the present invention, will be described in detail later with reference to Figures 15 to 25.

[000274] 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] Encoder 120 can measure a coding error of deeper coding units according to depths using rate distortion optimization based on Lagrangian multipliers.

[000275] 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] The video coding apparatus 100 can output the image data of the maximum coding unit, which is coded based on at least one coded depth determined by the coder 120, and information about a coding mode in accordance with the encoded depth, which is encoded by the output unit 130, in the form of a bit stream.

[000276] 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] Information about the coding mode of deeper coding units according to depths, which is determined how an image is coded based on coding units, prediction units, and transformation units having a tree structure , can be included in a header, a sequence parameter set (SPS), or a picture parameter set (PPS) of a bitstream.

[000277] Os dados de imagem codificados podem ser obtidos mediante codificação de dados residuais de uma imagem.[000277] Encoded image data can be obtained by encoding residual data of an image.

[000278] 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] Information about the coding mode according to the coded depth may include information about the coded depth, about the type of partition in the prediction unit, the prediction mode, and the size of the transformation unit.

[000279] 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] The encoded depth information can be defined by using information divided according to depths, which represents whether coding is performed in coding units of a lower depth rather than a current depth. If the current depth of the current coding unit is the coded depth, the image data in the current coding unit is coded and output, and thus the split information can be set not to split the current coding unit to a smaller depth. Alternatively, if the current depth of the current coding unit is not the coded depth, coding is performed at the coding unit of the lower depth, and thus the split information can be set to divide the current coding unit to obtain the coding units from the lower depth.

[000280] 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] If the current depth is not the encoded depth, encoding is performed in the encoding unit that is divided to the encoding unit of the lower depth. Since there is at least one bottom-depth coding unit in a current depth coding unit, coding is performed repeatedly in each bottom-depth coding unit, and thus coding can be performed recursively for the coding units having the same depth.

[000281] 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] As coding units having a tree structure are determined to a maximum coding unit, and information about at least one coding mode is determined to a coding unit of a coded depth, information about at least one coding mode coding unit can be determined for a maximum coding unit. Furthermore, a coded depth of the image data of the maximum coding unit may be different according to the locations, since the image data is divided hierarchically according to the depths, and thus the information about the coded path and the mode encoding can be adjusted for the image data.

[000282] 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] Accordingly, the output unit 130 can assign coding information about a corresponding coded path and a coding mode to at least one of the coding unit, prediction unit, and a coding mode to at least one of the coding, prediction unit, and a minimum unit included in the maximum coding unit.

[000283] 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] The minimum unit according to an embodiment of the present invention is a rectangular data unit obtained by dividing the minimum coding unit constituting the lowest depth by 4. Alternatively, the minimum unit may be a maximum rectangular data unit that can be included in all coding units, prediction units, partition units, and transformation units included in the maximum coding unit.

[000284] 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] For example, the coding information produced through the output unit 130 can be classified into coding information according to coding units, and coding information according to prediction units. The coding information according to the coding units may include information about the prediction mode and the size of the partitions. The coding information according to the prediction units may include information about an estimated direction of an inter-mode, relative to an inter-mode reference image index, relative to a motion vector, relative to a chroma component. in an intra mode, and in relation to an intra mode interpolation method.

[000285] 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] Information about a maximum coding unit size defined according to images, slices, or GOPs, and information about a maximum depth can be inserted into a header, an SPS, or a PPS of a bit stream.

[000286] 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] In the video coding apparatus 100, the deepest coding unit may be a coding unit obtained by dividing a height or width of a coding unit of a higher depth, which is one layer above, by two. In other words, when the coding unit size of the current depth is 2Nx2N, the coding unit size of the lower depth is NxN. Furthermore, the coding unit of the current depth having the size of 2Nx2N can include a maximum of 4 of the coding units of the lower depth.

[000287] 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] Accordingly, the video coding apparatus 100 can form the coding units having the tree structure by determining the coding units having an optimal format and an optimal size for each maximum coding unit, based on the size of the unit maximum encoding and maximum depth determined considering the characteristics of the current image. Furthermore, since coding can be performed on each maximum coding unit using any of several prediction modes and transformations, an optimal coding mode can be determined by considering the coding unit characteristics of various image sizes.

[000288] 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] Thus, if an image having high resolution or large amount of data is encoded in a conventional macro block, a number of macro blocks per image increases excessively. Consequently, a number of pieces of compressed information generated for each macro block increases, and thus it is difficult to transmit the compressed information and the efficiency of data compression decreases. However, by using video coding apparatus 100, image compression efficiency can be increased once a coding unit is adjusted while considering the characteristics of an image while increasing the maximum size of a coding unit while considering a image size.

[000289] 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] The output unit 130 can encode and output coding information indicating a coding method used to encode a video based on coding units having a tree structure and transformation units having a tree structure. The coding information may include information about various coding modes of the coding units corresponding to a coded depth, and information about the coded depth.

[000290] 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] Definitions of various terms, such as a coding unit, a depth, a prediction unit, a transformation unit, and information about various coding modes, for various operations of the video decoding apparatus 200, are identical to those described with reference to video coding apparatus 100.

[000291] 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] Receiver 210 receives a bit stream of an encoded video. The receiver and extractor 220 analyze the received bit stream. The receiver and extractor 220 extract the encoded image data for each coding unit from the analyzed bit stream, wherein the coding units have a tree structure according to each maximum coding unit, and output the image data. image extracted to the decoder 230. The receiver and extractor 220 can extract information about a maximum size of a coding unit of a current image, from a header, an SPS, or a PPS about the current image.

[000292] 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] Furthermore, the receiver and extractor 220 can extract coding information about the coding units having a tree structure according to each maximum coding unit from the analyzed bit stream. Information about a coded depth and a coding mode is extracted from the coding information. The extracted information about the encoded depth and encoding mode is output to the decoder 230. In other words, the image data in a bit stream can be divided into maximum coding unit so that the decoder 230 can decode the data of image for each maximum coding unit.

[000293] 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] Information about the encoded depth and the encoding mode according to the maximum coding unit can be set to information about at least one coding unit corresponding to the encoded depth, and information about a coding mode can include information about a partition type of a corresponding coding unit that corresponds to the coded depth, relative to the prediction mode, and a size of a transformation unit. For inter prediction, information related to interpolation filtering to interpolate sub-pel units can be extracted from the coding information according to a coded depth. Furthermore, the division information according to depths can be extracted as the encoded depth information.

[000294] 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] Information about the coded depth and the coding mode according to each maximum coding unit extracted by the receiver and extractor 220 is information about a coded depth and a coding mode determined to generate a minimum coding error when an encoder , such as video coding apparatus 100, repeatedly performs coding for each deepest coding unit according to the depths in accordance with each maximum coding unit. Accordingly, the video decoding apparatus 200 can reconstruct an image by decoding the image data according to a coded depth and a coding mode that generates the minimum coding error.

[000295] 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] As the coding information about the coded depth, and the coding mode, can be assigned to a predetermined data unit among a corresponding coding unit, a prediction unit, and a minimum unit, the receiver and extractor 220 can extract the information about the encoded depth and encoding mode according to the predetermined data units. The predetermined data units to which the same information about the coded depth and the coding mode are assigned can be deduced to be the data units included in the same maximum coding unit.

[000296] 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] Decoder 230 can determine at least one encoded depth of a maximum coding unit using information divided according to depths. If the split information represents that image data is no longer split at the current depth, the current depth is the encoded depth. Accordingly, decoder 230 may decode image data encoded from at least one coding unit corresponding to each depth encoded in the current maximum coding unit by using information about the partition type of the prediction unit, the prediction mode, and the size of the transformation unit for each coding unit corresponding to the coded depth, and output the image data of the current maximum coding unit.

[000297] 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] In other words, data units containing coding information including the same division information can be grouped by observing the set of coding information assigned to the predetermined data unit among the coding unit, the prediction unit and the minimum unit, and the grouped data units can be considered to be one data unit to be decoded by decoder 230 in the same encoding mode.

[000298] O 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] The decoder 230 can reconstruct the current image by decoding the image data encoded in each maximum coding unit based on information about the encoded depth and the coding mode according to the maximum coding units. The partition type, prediction mode, and transformation unit can be read as the coding mode for each coding unit among the coding units having the tree structure included in each maximum coding unit. A decoding process may include a prediction including intra prediction and motion compensation and an inverse transformation.

[000299] O 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] The decoder 230 may perform intra prediction or motion compensation according to a partition and a prediction mode of each coding unit based on information about the partition type and the prediction mode of the prediction unit of the coding units. encoding having a tree structure.

[000300] 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] Furthermore, the decoder 230 can read the structure of the transformation units having a tree structure and can perform inverse transformation on each coding unit based on the transformation units.

[000301] 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] The video decoding equipment 90 can obtain information about at least one coding unit that generates the minimum coding error when coding is performed recursively for each maximum coding unit, and can use the information to decode the current image. In other words, coding units having the tree structure determined to be the optimal coding unit in each maximum coding unit can be decoded. Furthermore, the maximum size of the encoding unit is determined by considering the resolution and an amount of image data.

[000302] 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] Consequently, even if the image data has high resolution and a large amount of data, the image data can be efficiently decoded and restored using a size of a coding unit and a coding mode, which are determined adaptively according to the characteristics of the image data, using information about an optimal coding mode received from an encoder.

[000303] A Figura 15 é um diagrama para descrever um conceito das unidades de codificação hierárquicas de acordo com uma modalidade exemplar.[000303] Figure 15 is a diagram for describing a concept of hierarchical coding units according to an exemplary embodiment.

[000304] 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] A size of a coding unit can be expressed in width x height, and can be 64x64, 32x32, 16x16 and 8x8. A 64x64 encoding unit can be divided into 64x64, 64x32, 32x64, or 32x32 partitions, and a 32x32 encoding unit can be divided into 32x32, 32x16, 16x32, or 16x16 partitions, a 16x16 encoding unit can be divided into 16x16, 16x8, 8x16, or 8x8 partitions, and an 8x8 encoding unit can be divided into 8x8, 8x4, 4x8, or 4x4 partitions.

[000305] 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] In video data 310, a resolution is 1920x1080, a maximum size of a coding unit is 64, and a maximum depth is 2. In video data 320, a resolution is 1920x1080, a maximum size of encoding is 64, and a maximum depth is 3. In 330 video data, a resolution is 352x288, a maximum size of an encoding unit is 16, and a maximum depth is 1. The maximum depth shown in Figure 15 denotes a total number of divisions from a maximum encoding unit to a minimum decoding unit.

[000306] 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] If a resolution is high or if an amount of data is large, a maximum size of a coding unit can be so large as to not only increase coding efficiency, but also accurately reflect the characteristics of a image. Accordingly, the maximum coding unit size of video data 310 and 320 having higher resolution than video data 330 may be 64.

[000307] 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] Since the maximum depth of video data 310 is 2, coding units 315 of video data 310 may include a maximum coding unit having a long axis size of 64, and coding units having long axis sizes longs of 32 and 16 since the depths are deepened to two layers by dividing the maximum coding unit twice. However, because the maximum depth of the video data 330 is 1, the coding units 335 of the video data 330 may include a maximum coding unit having a long axis size of 16, and coding units having a long axis size long of 8 since the depths are deepened to a layer by dividing once from the maximum coding unit.

[000308] 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] Since the maximum depth of video data 320 is 3, coding units 325 of video data 320 may include a maximum coding unit having a long axis size of 64, and coding units having long axis sizes long of 32, 16 and 8 as the depths are deepened to 3 layers by dividing the maximum coding unit three times. As the depth is deepened, detailed information can be expressed accurately.

[000309] 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] Figure 16 is a block diagram of an image encoder 400 based on coding units, according to an exemplary embodiment.

[000310] 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] The image encoder 400 performs operations of the coding unit determiner 120 of the video coding equipment 100 to encode the image data. In other words, an intra predictor 410 performs intra prediction on the coding units in an intra mode, within a current frame 405, and a motion estimator 420 and a motion compensator 425 perform inter estimation and motion compensation on the coding units in an intra mode. an inter mode within the current frame 405 using the current frame 405, and a reference frame 495.

[000311] 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] To accurately perform motion estimation using reference pixels in sub-pel units, the motion estimator 420 and motion compensator 425 can generate pixels in sub-pel units by interpolating pixels in whole pel units. . An interpolation filter for generating pixels in sub-pel units may be the smoothing interpolation filter described above in relation to Figures 1 and 13A.

[000312] 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] Data output from the intra predictor 410, the motion estimator 420, and the motion compensator 425 is output as a quantized transformation coefficient through the transformer 430 and a quantizer 440. The quantized transformation coefficient is restored as data in a spatial domain through an inverse quantizer 460 and an inverse transformer 470, and the restored data in the spatial domain is output as the reference frame 495 after being post-processed through a deblocking unit 480 and a filtering unit. loop 490. The quantized transformation coefficient may be output as a bit stream 455 through an entropy encoder 450.

[000313] 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] In order for the image encoder 400 to be applied to the video coding equipment 100, all elements of the image encoder 400, i.e., the intra predictor 410, the motion estimator 420, the motion compensator 425, the transformer 430, the quantizer 440, the entropy encoder 450, the inverse quantizer 460, the inverse transformer 470, the deblocking unit 480, and the loop filtering unit 490 perform operations based on each coding unit among coding units having a tree structure while considering the maximum depth of each maximum coding unit.

[000314] 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] Specifically, the intra predictor 410, the motion estimator 420, and the motion compensator 425 determine partitions and a prediction mode of each coding unit among the coding units having a tree structure while considering the maximum size and the maximum depth of a current maximum coding unit, and the transformer 430 determines the size of the transformation unit in each coding unit among the coding units having a tree structure.

[000315] 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] Figure 17 is a block diagram of an image decoder 500 based on coding units, according to an exemplary embodiment.

[000316] 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] An analyzer 510 analyzes the encoded image data to be decoded and information about the encoding required for decoding from a bit stream 505. The encoded image data is output as inverse quantized data through an entropy decoder 520 and an inverse quantizer 530, and the inverse quantized data is restored to image data in a spatial domain through an inverse transformer 540.

[000317] 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] An intra predictor 550 performs intra prediction on the coding units in an intra mode with respect to image data in the spatial domain, and a motion compensator 560 performs motion compensation on the coding units in an inter mode, using a 585 reference frame.

[000318] 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] To accurately perform motion estimation using reference pixels in sub-pel units, the motion compensator 560 can generate pixels in sub-pel units by interpolating pixels in whole pel units. An interpolation filter for generating pixels in sub-pel units may be the smoothing interpolation filter described above in relation to Figures 2 and 13B.

[000319] 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] The image data in the spatial domain, which has passed through the intra predictor 550 and the motion compensator 560, can be output as a restored frame 595 after being post-processed through an unblocking unit 570 and a deblocking unit 570. loop filtering 580. Furthermore, image data that is post-processed through the deblocking unit 570 and the loop filtering unit 580 can be output as the reference frame 585.

[000320] 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] To decode the image data in the decoder 95 of the video decoding equipment 90, the image decoder 500 may perform the operations that are performed after the analyzer 510.

[000321] 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] For the image decoder 500 to be applied to the video decoding equipment 200, all elements of the image decoder 500, i.e., the analyzer 510, the entropy decoder 520, the inverse quantizer 530, the inverse transformer 540, the intra predictor 550, the motion compensator 560, the deblocking unit 570, and the loop filtering unit 580 perform operations based on the coding units having a tree structure for each maximum coding unit.

[000322] 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] Specifically, the intra prediction 550 and the motion compensator 560 perform operations based on the partitions and a prediction mode for each of the coding units having a tree structure, and the inverse transformer 540 performs operations based on a size of one transformation unit for each encoding unit.

[000323] 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] Figure 18 is a diagram illustrating deeper coding units according to depths, and partitions, according to an exemplary embodiment.

[000324] 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] The video coding equipment 100 and the video decoding equipment 200 use hierarchical coding units in order to consider the characteristics of an image. A maximum height, a maximum width, and a maximum depth of the coding units can be determined adaptively according to the characteristics of the image, or can be adjusted differently by a user. Deeper coding unit sizes, depending on the depths, can be determined according to the predetermined maximum coding unit size.

[000325] 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] In a hierarchical structure 600 of coding units, according to an exemplary embodiment, the maximum height and maximum width of the coding units are individually 64, and the maximum depth is 4. As a depth is deepened to Along a vertical axis of the hierarchical structure 600, a height and a width of the deepest coding unit are individually divided. Furthermore, a prediction unit and partitions, which are the bases for prediction coding of each deeper coding unit, are shown along a horizontal axis of the hierarchical structure 600.

[000326] 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] In other words, a coding unit 610 is a maximum coding unit in the hierarchical structure 600, where a depth is 0 and a size, that is, a height by width, is 64x64. The depth is deepened along the vertical axis, and there is an encoding unit 620, having a size of 32x32, and a depth of 1; a coding unit 630, having a size of 16x16, and a depth of 2; a coding unit 640, having a size of 8x8, and a depth of 3; and a coding unit 650 having a size of 4x4 and a depth of 4. The coding unit 650 having a size of 4x4 and a depth of 4 is a minimum coding unit.

[000327] 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] The prediction unit and partitions of a coding unit are arranged along the horizontal axis according to each depth. In other words, if the coding unit 610, having the size of 64x64, and the depth of 0, is a prediction unit, the prediction unit can be divided into partitions included in the coding unit 610, that is, a partition 610 partitions having a size of 64x64, 612 partitions having a size of 64x32, 614 partitions having a size of 32x64, or 616 partitions having a size of 32x32.

[000328] 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] Similarly, a prediction unit of the coding unit 620 having the size of 32x32 and the depth of 1 can be divided into partitions included in the coding unit 620, that is, a partition 620 having a size of 32x32, partitions 622 having a size of 32x16, 624 partitions having a size of 16x32, and 626 partitions having a size of 16x16.

[000329] 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] Similarly, a prediction unit of the coding unit 630 having the size of 16x16 and the depth of 2 can be divided into partitions included in the coding unit 630, that is, a partition having a size of 16x16 included in the coding unit 630. encoding 630, partitions 632 having a size of 16x8, partitions 634 having a size of 8x16, and partitions 636 having a size of 8x8.

[000330] 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] Similarly, a prediction unit of the coding unit 640 having the size of 8x8 and the depth of 3 can be divided into partitions included in the coding unit 640, that is, a partition having a size of 8x8 included in the coding unit 640. encoding 640, partitions 642 having a size of 8x4, partitions 644 having a size of 4x8, and partitions 646 having a size of 4x4.

[000331] 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] To determine the at least one coded depth of the coding units constituting the maximum coding unit 610, the decoding unit 11 of the video coding apparatus 10 performs coding for the coding units corresponding to each depth included in the coding unit. maximum encoding 610.

[000332] 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] A number of deeper coding units, according to the depths including data in the same range and the same size, increases as the depth is deepened. For example, four coding units corresponding to a depth of 2 are required to cover the data that is included in one coding unit corresponding to a depth of 1. Consequently, to compare the results of coding the same data according to the depths , the coding unit corresponding to depth 1; and four coding units corresponding to depth 2; are individually coded.

[000333] 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] To perform coding for each depth, a minimum coding error can be selected for the current depth by performing coding for each prediction unit in the coding units corresponding to the current depth, along the horizontal axis of the hierarchical structure 600 Alternatively, the minimum coding error can be searched for by comparing the minimum coding errors according to the depths, by performing coding for each depth as the depth is deepened along the vertical axis of the hierarchical structure 600. A depth and a partition having the minimum coding error in the coding unit 610 can be selected as the coded depth and a partition type of the coding unit 610.

[000334] 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] Figure 19 is a diagram for describing a relationship between a coding unit 710 and a transformation unit 720, in accordance with an embodiment of the present invention.

[000335] 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] The video encoding apparatus 100 or the video decoding apparatus 200 in accordance with one embodiment may encode or decode an image according to the encoding units having sizes less than or equal to a maximum encoding unit for each maximum coding unit. Transformation unit sizes for transformation during encoding can be selected based on data units that are not larger than a corresponding encoding unit.

[000336] 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] For example, in the video coding apparatus 100 or 200, or the video decoding apparatus 200, if a size of the coding unit 710 is 64x64, the transformation can be carried out using the transformation units 720 having a size of 32x32.

[000337] 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] Furthermore, data from the encoding unit 710 having the size of 64x64 can be encoded by performing transformation in each of the transformation units having the size of 32x32, 16x16, 8x8, and 4x4, which are smaller than 64x64, and then a transformation unit having the minimum coding error can be selected.

[000338] 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] Figure 20 is a diagram for describing coding information of coding units corresponding to a coded depth, in accordance with an embodiment of the present invention.

[000339] 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] The output unit 130 of the video encoding apparatus 100 can encode and transmit information 800 about a partition type, information 810 about a prediction mode, and information 820 about a size of a transformation unit for each processing unit. encoding corresponding to an encoded depth, as information about an encoding mode.

[000340] 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] Information 800 indicates information about a format of a partition obtained by dividing a prediction unit from a current coding unit, wherein the partition is a data unit for prediction coding of the current coding unit. For example, a current coding unit CU_0 having a size of 2Nx2N can be divided into any of a partition 802 having a size of 2Nx2N, a partition 804 having a size of 2NxN, an 806 partition having a size of Nx2N, and an 808 partition having a size of NxN. Here, information 800 about a partition type is established to indicate one of the partition 804 having a size of 2NxN, the partition 806 having a size of Nx2N, and the partition 808 having a size of NxN.

[000341] 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] Information 810 indicates a prediction mode for each partition. For example, information 810 may indicate a prediction coding mode performed on a partition indicated by information 800, that is, an intra mode 812, an inter mode 814, or a skip mode 816.

[000342] 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] Information 820 indicates a transformation unit to be based on when the transformation is performed on a current coding unit. For example, the transformation unit may be a first intra transformation unit 822, a second intra transformation unit 824, a first inter transformation unit 826, or a second intra transformation unit 828.

[000343] 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] The receiver and extractor 220 of the video decoding apparatus 200 can extract and use information 800, 810 and 820 for decoding, according to each deeper coding unit.

[000344] A Figura 21 é um diagrama de unidades de codificação mais profunda de acordo com as profundidades, de acordo com uma modalidade exemplar.[000344] Figure 21 is a diagram of deeper coding units according to depths, according to an exemplary embodiment.

[000345] 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] Division information can be used to indicate a change in depth. The division information indicates whether a coding unit of a current depth is divided into coding units of a lower depth.

[000346] 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 prediction unit 910 for predictive coding of a coding unit 900 having a depth of 0 and a size of 2N_0x2N_0 may include partitions of a partition type 912 having a size of 2N_0x2N_0, a partition type 914 having a size of 2N_0xN_0, a partition type 916 having a size of N_0x2N_0, and a partition type 918 having a size of N_0xN_0. Figure 9 illustrates only the partition types 912 to 918 that are obtained by symmetric division of the prediction unit 910, but a partition type is not limited thereto, and the partitions of the prediction unit 910 may include asymmetric partitions, partitions having a predetermined shape and partitions having a geometric shape.

[000347] 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] Predictive coding is performed repeatedly on one partition having a size of 2N_0x2N_0, two partitions having a size of 2N_0xN_0, two partitions having a size of N_0x2N_0, and four partitions having a size of N_0xN_0, according to each partition type. Predictive coding in an intra mode and an inter mode can be performed on partitions having the sizes of 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 and N_0xN_0. Predictive coding in a skip mode is performed only on the partition having the size of 2N_0x2N_0.

[000348] 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] Coding errors including prediction coding in partition types 912 to 918 are compared, and the minimum coding error is determined across partition types. If a coding error is minor in one of the partition types 912 to 916, the prediction unit 910 may not be partitioned to a lower depth.

[000349] 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] If the encoding error is the smallest in partition type 918, a depth is changed from 0 to 1 to divide partition type 918 in operation 920, and encoding is performed repeatedly in encoding units 930 having a depth of 2 and a size of N_0xN_0 to look for a minimum coding error.

[000350] 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] A prediction unit 940 for prediction coding of the coding unit 930 having a depth of 1 and a size of 2N_1x2N_1(=N_0xN_0) may include partitions of a partition type 942 having a size of 2N_1x2N_1, a partition type 944 having a size of 2N_1xN_1, a partition type 946 having a size of N_1x2N_1, and a partition type 948 having a size of N_1xN_1.

[000351] 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] If a coding error is the smallest in partition type 948, a depth is changed from 1 to 2 for dividing partition type 948 in operation 950, and coding is performed repeatedly in coding units 960, which have a depth of 2 and a size of N_2xN_2 to look for a minimum coding error.

[000352] 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] When a maximum depth is d, the division operation according to each depth can be carried out until when a depth becomes d-1; and division information can be encoded even when a depth is one of 0 to d-2. In other words, when coding is performed up to when the depth is d-1 after a coding unit corresponding to a depth of d-2 is divided in operation 970, a prediction unit 990 for prediction coding of a coding unit 980 having a depth of d-1 and a size of 2N_(d-1)x2N_(d-1) may include partitions of a partition type 992 having a size of 2N_(d-1)x2N_(d-1), a partition type 994 having a size of 2N_(d-1)xN_(d-1), a partition type 996 having a size of N_(d-1)x2N_(d-1), a partition type 998 having a size of N_(d-1)xN_(d-1).

[000353] 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] Predictive coding can be performed repeatedly on a partition having a size of 2N_(d- 1)x2N_(d-1), two partitions having a size of 2N_(d-1)xN_(d- 1), two partitions having a size of N_(d-1)x2N_(d-1), four partitions having a size of N_(d-1)xN_(d-1) among partition types 992 to 998 to search for a partition type having minimal coding error.

[000354] 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] Even when partition type 998 has the minimum coding error, as a maximum depth is d, a CU_(d-1) coding unit having a depth of d-1 is no longer partitioned to a lower depth , and a coded depth for the coding units constituting a current maximum coding unit 900 is determined to be d-1 and a partition type of the current maximum coding unit 900 may be determined to be N_(d-1)xN_( d-1). Furthermore, since the maximum depth is d and a minimum coding unit 980 having the lowest depth of d-1 is no longer split to a lower depth, splitting information for the minimum coding unit 980 is not established.

[000355] 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] Data unit 999 may be a minimum unit for the current maximum coding unit. A minimum unit according to an exemplary embodiment may be a rectangular data unit obtained by dividing a minimum coding unit 980 by 4. By performing coding repeatedly, video coding equipment 100 may select a depth having the error of minimum coding by comparing the coding errors according to the depths of the coding unit 900 to determine a coded depth, and establishing a corresponding partition type and a prediction mode as a coding mode of the coded depth.

[000356] 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] As such, the minimum coding errors according to the depths are compared at all depths from 1 to d, and the depth having the smallest coding error can be determined as a coded depth. The encoded depth, the prediction unit partition type, and the prediction mode can be encoded and transmitted as information about a coding mode. Furthermore, as a coding unit is divided from a depth of 0 to a coded depth, only the division information of the coded depth is set to 0, and the division information of depths excluding the coded depth is set to 1. .

[000357] 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] The receiver and extractor 220 of the video decoding apparatus 200 may extract and use information about the encoded depth and prediction unit of the coding unit 900 to decode the partition 912. The video decoding apparatus 200 may determining a depth, in which the divided information is 0, as an encoded depth using the information divided according to the depths, and using the information about an encoding mode of the corresponding depth for decoding.

[000358] 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] Figures 22 to 24 are diagrams for describing a relationship between coding units 1010, prediction units 1060, and transformation units 1070, according to an exemplary embodiment.

[000359] 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] The coding units 1010 are coding units that have a tree structure, corresponding to the coded depths determined by the video coding apparatus 100, in a maximum coding unit. The prediction units 1060 are partitions of the prediction units of each of the coding units 1010, and the transformation units 1070 are transformation units of each of the coding units 1010.

[000360] 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] When a depth of a maximum coding unit is 0 in coding units 1010, the depths of coding units 1012 and 1054 are 1, the depths of coding units 1014, 1016, 1018, 1028, 1050, and 1052 are 2, the depths of the decoding units 1020, 1022, 1024, 1026, 1030, 1032, and 1048 are 3, and the depths of the encoding units 1040, 1042, 1044, and 1046 are 4.

[000361] 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] In prediction units 1060, some coding units 1014, 1016, 1022, 1032, 1048, 1050, 1052, 1054 are obtained by dividing the coding units into coding units 1010. In other words, partition types in the coding units 1014, 1022, 1050, and 1054 have a size of 2NxN, the partition types in coding units 1016, 1048, and 1052 have a size of Nx2N, and a partition type of coding unit 1032 has a size of NxN. The prediction units and partitions of the coding units 1010 are less than or equal to each coding unit.

[000362] 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] Transformation or inverse transformation is performed on the image data of the coding unit 1052 in the transformation units 1070 into a data unit that is smaller than the coding unit 1052. Additionally, the coding units 1014, 1016, 1022, 1032, 1048, 1050 and 1052 in the transformation units 1070 are different from those in the prediction units 1060 in terms of sizes and shapes. In other words, video encoding and decoding apparatus 100 and 200 can perform intra prediction, motion estimation, motion compensation, transformation, and inverse transformation individually on a data unit in the same coding unit.

[000363] 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 [000363] Consequently, coding is performed recursively in each of the coding units having a hierarchical structure in each region of a maximum coding unit to determine an optimal coding unit, and thus coding units having a structure of recursive tree can be obtained. The coding information may include partition information about a coding unit, information about a partition type, information about a prediction mode, and information about a size of a transformation unit. Table 1 shows the coding information that can be established by video encoding and video decoding apparatus 100 and 200. Table 1

[000364] 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] The output unit 130 of the video coding apparatus 100 can output the coding information about the coding units having a tree structure, and the receiver and extractor 220 of the video decoding apparatus 200 can extract the coding information about the coding units having a tree structure from a received bit stream.

[000365] 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] Division information indicates whether a current coding unit is divided into coding units of a lower depth. If the split information of a current depth d is 0, a depth, in which a current coding unit is no longer split at a lower depth, is an encoded depth, and thus the information about a partition type, the prediction mode , and a size of one transformation unit, can be set to the encoded depth. If the current coding unit is further divided according to the split information, coding is carried out independently into four split coding units of a lower depth.

[000366] 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 prediction mode can be one of: an intra mode, an inter mode, and a jump mode. Intra-mode and inter-mode can be set on all partition types, and skip mode is only set on a partition type having a size of 2Nx2N.

[000367] 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] The partition type information may indicate symmetric partition types having sizes of 2Nx2N, 2NxN, Nx2N, and NxN, which are obtained by symmetrically dividing a height or a width of a prediction unit, and asymmetric partition types having sizes of 2NxnU, 2NxnD, nLx2N and nRx2N, which are obtained by asymmetrically dividing the height or width of the prediction unit. The asymmetric partition types having the sizes of 2NxnU and 2NxnD can be obtained respectively by dividing the height of the prediction unit into 1:3 and 3:1, and the asymmetric partition types having the sizes of nLx2N and nRx2N can be obtained respectively by dividing the width of the prediction unit into 1:3 and 3:1.

[000368] 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] The size of the transformation unit can be adjusted to be of two types in intra mode and two types in inter mode. In other words, if the split information of the transformation unit is 0, the size of the transformation unit can be 2Nx2N, which is the size of the current coding unit. If split information of the transformation unit is 1, the transformation units can be obtained by dividing the current coding unit. Furthermore, if a division type of the current coding unit having the size of 2Nx2N is an asymmetric partition type, a size of a transformation unit may be NxN, and if the partition type of the current coding unit is a type of asymmetric partition, the size of the transformation unit can be N/2xN/2.

[000369] 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] The coding information about the coding units having a tree structure may include at least one of a coding unit corresponding to a coded depth, a prediction unit, and a minimum unit. The coding unit corresponding to the coded depth may include at least one of a prediction unit and a minimum unit containing the same coding information.

[000370] 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] Consequently, it is determined whether adjacent data units are included in the same coding unit corresponding to the coded depth by comparing the coding information of adjacent data units. Furthermore, a corresponding coding unit corresponding to a coded depth is determined using the coding information of a data unit, and thus a distribution of the coded depths in a maximum coding unit can be determined.

[000371] 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] Consequently, if a current coding unit is predicted based on the coding information of adjacent data units, coding information of data units in deeper coding units adjacent to the current coding unit can be directly queried and used .

[000372] 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] Alternatively, if a current coding unit is predicted based on the coding information of adjacent data units, the data units adjacent to the current coding unit are searched using the coding information of the data units, and the searched adjacent coding units can be referred to for prediction of the current coding unit.

[000373] 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] Figure 25 is a diagram for describing a relationship between a coding unit, a prediction unit or a partition, and a transformation unit, in accordance with the coding mode information of Table 1.

[000374] 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] The maximum coding unit 1300 includes coding units 1302 1304, 1306, 1312, 1314, 1316 and 1318 of coded depths. Here, as the coding unit 1318 is a coding unit of a coded depth, the split information can be set to 0. Information about a partition type of the coding unit 1318 having a size of 2Nx2N can be set to be a of: a partition type 1322 having a size of 2Nx2N, a partition type 1324 having a size of 2NxN, a partition type 1326 having a size of Nx2N, a partition type 328 having a size of NxN, a partition type 1332 having a size of 2NxnU, a partition type 1334 having a size of 2NxnD, a partition type 1336 having a size of nLx2N, and a partition type 1338 having a size of nRx2N.

[000375] 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] A transformation unit division information (TU size flag) is a type of transformation index; a size of a transformation unit corresponding to a transformation index can be modified according to a prediction unit type or a partition type of a coding unit.

[000376] 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] For example, when the partition type is set to be symmetric, that is, the partition type 1322 (2Nx2N), 1324(2NxN), 1326 (Nx2N) or 1328 (NxN), a transformation unit 1342 having a size of 2Nx2N is established if split information (TU size flag) of a transformation unit is 0, and a transformation unit 1344 having a size of NxN is established if split information (TU size flag) of a transformation is 1.

[000377] 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] When the partition type is established as being asymmetric, that is, the partition type 1332 (2NxnU), 1334 (2NxnD), 1336 (nLx2N) or 1338 (nRx2N), a transformation unit 1352 having a size of 2Nx2N is established if a TU size flag is 0, and a transformation unit 1354 having a size of N/2xN/2 is established if a TU size flag is 1.

[000378] 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] Referring to Figure 21, the TU size flag is a flag having a value of 0 or 1, but the TU size flag is not limited to 1 bit, and the transformation unit can be divided hierarchically having a tree structure while the TU size flag increases from 0. The TU size flag can be used as an example of a transformation index.

[000379] 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] In this case, the size of a transformation unit that was actually used can be expressed using a size indicator TU of a transformation unit, according to an exemplary embodiment, together with a maximum size and a size minimum of the transformation unit. According to an exemplary embodiment, video coding equipment 80 is capable of encoding maximum transformation unit size information, minimum transformation unit size information, and a maximum TU size indicator. The result of encoding the maximum transformation unit size information, minimum transformation unit size information, and the maximum TU size indicator can be input into an SPS. According to an exemplary embodiment, video coding equipment 200 can decode video using the maximum transformation unit size information, the minimum transformation unit size information, and the maximum TU size indicator.

[000380] 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] For example, (a) if the size of a current encoding unit is 64x64 and a maximum transformation unit size is 32x32, then the size of a transformation unit can be 32x32 when a TU size indicator is 0 , can be 16x16 when the TU size indicator is 1, and can be 8x8 when the TU size indicator is 2.

[000381] 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] As another example, (b) if the current encoding unit size is 32x32 and a minimum transformation unit size is 32x32, then the transformation unit size can be 32x32 when the TU size indicator is 0. Here, the TU size indicator cannot be set to a value other than 0, since the size of the transformation unit cannot be smaller than 32x32.

[000382] 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] As another example, (c) if the current coding unit size is 64x64 and a maximum TU size indicator is 1, then the TU size indicator can be 0 or 1. Here, the TU size indicator does not can be set to a value other than 0 or 1.

[000383] 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): [000383] Thus, if it is defined that the maximum TU size indicator is "MaxTransformSizeIndex", a minimum transformation unit size is "MinTransformSize", and a transformation unit size is "RootTuSize" when the TU size indicator is 0, then a current minimum transformation unit size "CurrMinTuSize" that can be determined in a current coding unit, can be defined by Equation (1):

[000384] 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] Compared to the current minimum transformation unit size "CurrMinTuSize" that can be determined in the current coding unit, a transformation unit size "RootTuSize" when the TU size indicator is 0, can denote a size of maximum transformation unit that can be selected in the system. In Equation (1), "RootTuSize(2AMaxTransformSizeIndex)" denotes a transformation unit size when the transformation unit size "RootTuSize", when the TU size indicator is 0, is divided the number of times corresponding to the size indicator Maximum TU, and "MintransformSize" denotes a minimum transform size. Thus, a smaller value between "RootTuSize/(2AMaxTransformSizeIndex)" and "MinTransformSize" can be the current minimum transformation unit size "CurrMinTuSize" that can be determined in the current encoding unit.

[000385] 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] According to an exemplary embodiment, the maximum RootTuSize transformation unit size may vary according to the type of prediction mode.

[000386] 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. [000386] For example, if a current prediction mode is an inter mode, then RootTuSize can be determined using Equation (2) below. In Equation (2), "MaxTransformSize" denotes a maximum transformation unit size, and "PUSize" denotes a current prediction unit size.

[000387] 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] That is, if the current prediction mode is inter mode, the "RootTuSize" transformation unit size when the TU size indicator is 0 may be a smaller value between the maximum transformation unit size and the current prediction unit size.

[000388] 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. [000388] If a prediction mode of a current partition unit is an intra mode, "RootTuSize" can be determined using Equation (3) below. In Equation (3), "PartitionSize" denotes the size of the current partition unit.

[000389] 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] That is, if the current prediction mode is intra mode, the "RootTuSize" transformation unit size when the TU size indicator is 0 may be a smaller value between the maximum transformation unit size and the size of the current partition drive.

[000390] 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] However, the current maximum transformation unit size that varies depending on the type of a prediction mode in a partition unit, the root transformation unit size "RootTuSize", is only an example and the present invention is not limited to it.

[000391] 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] Figure 26 is a flowchart of a video coding method using a smoothing interpolation filter based on coding units having a tree structure, in accordance with an embodiment of the present invention.

[000392] 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] In operation 2610, to encode a current image from an input video, the current image is divided into at least one maximum coding unit. Each of the at least one division region, which is obtained by dividing a region of each maximum coding unit according to the depths, can be encoded. To encode each division region according to the depths, transformation and quantization are performed on a result of inter prediction, based on sub-pel unit interpolation, and intra prediction.

[000393] 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] Here, a splitting depth for producing a final coding result according to the at least one splitting region can be determined by comparing the coding results of the splitting regions according to the depths, and coding units included. in a current maximum coding unit and having a tree structure can be determined. As coding units having a tree structure, transformation units having a tree structure can be determined. In other words, as a coding result of an image, such as the determined coding units having a tree structure, a coding result of the transformation units having a tree structure can be produced as coded image data.

[000394] 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] Inter prediction can be performed on each prediction unit or partition of the coding unit. Movement of a current prediction unit or partition can be predicted with reference to pixels generated by performing sub-pel unit interpolation. Among the interpolation filters to generate a sub-pel unit pixel value, an interpolation filter is selected differently based on a sub-pel unit interpolation location and a smoothness. In order to efficiently perform image interpolation, interpolation filter coefficients can be determined selectively.

[000395] 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] Among the interpolation filter coefficients previously stored in memory, a desired interpolation filter can be selected according to a sub-pel unit interpolation location, a smoothness, the number of filter taps, a bit depth , a scale factor, a transformation-based interpolation filtering base function, and a color component, and interpolation can be performed to generate the pixel value of the sub-pel unit.

[000396] 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] In operation 2620, image data obtained as the final coding result according to at least one division region of each maximum coding unit, and information about the coded depth and coding mode are output as a stream of bits.

[000397] 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] Coding mode information may include information about encoded depth or division information, information about a partition type of a prediction unit, information about a prediction mode, and information about a tree structure of prediction units. transformation. The coding information may include information about an interpolation filter used to perform sub-pel unit prediction coding. The encoded information about the encoding mode can be transmitted to a decoding apparatus together with the encoded image data.

[000398] 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] Figure 27 is a flowchart of a video decoding method using a smoothing interpolation filter based on coding units having a tree structure, in accordance with an embodiment of the present invention.

[000399] Na operação 2710, um fluxo de bits de um vídeo codificado é recebido e analisado.[000399] In operation 2710, a bit stream of an encoded video is received and analyzed.

[000400] 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] In operation 2720, encoded image data of a current image assigned to a maximum coding unit, and information about a coded depth and a coding mode according to the maximum coding units are extracted from the bit stream analyzed. Information about an interpolation filter required to perform sub-pel unit motion compensation can be extracted from the coding information.

[000401] 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] Information about the encoded depth and the encoding mode can be extracted from the encoding information. According to the information about the coding depth and coding mode, a maximum coding unit can be divided into coding units having a tree structure. Furthermore, according to the information about a tree structure of the transformation units included in the extracted information, transformation units having a tree structure according to the transformation depths in the coding units can be determined.

[000402] 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] In operation 2730, by using information about the coded depth and the coding mode according to each maximum coding unit, image data of each maximum coding unit can be decoded based on the coding units having a structure tree structure, prediction units, and transformation units having a tree structure. As a current coding unit is decoded based on information about the encoded depth and coding mode, a current coding unit can be transformed inversely by using a transformation unit determined from among the transformation units having a tree structure.

[000403] 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] Coded image data can be decoded by performing various decoding operations such as motion compensation and intra prediction on each prediction unit or partition of the coding unit based on the coding mode.

[000404] 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] Specifically, if coded residual data and reference data are extracted based on the interpolated pixels in a sub-pel unit, motion compensation in a current prediction unit or a current partition can be performed based on the interpolated pixels in the sub-pel units. Among the interpolation filters for generating a sub-pel unit pixel value, an interpolation filter can be selected differently based on a sub-pel unit interpolation location and a smoothness.

[000405] 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] To efficiently perform image interpolation, the interpolation filter coefficients can be determined selectively. Among the interpolation filter coefficients previously stored in memory, a desired interpolation filter can be selected according to a sub-pel unit interpolation location, a smoothness, the number of filter taps, a bit depth, a factor scale, an interpolation filtering base function based on the transformation, and a color component, and interpolation can be performed to generate the sub-pel unit pixel value.

[000406] 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] A reference image and a reference region are determined using the reference data, and the sub-pel unit pixel value can be generated by performing interpolation filtering on two or more whole unit reference pixels of the reference image. Motion compensation can be performed on the current prediction unit or current partition by combining the generated sub-pel unit pixel value and the residual data, and thus prediction decoding can be performed.

[000407] 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 each maximum coding unit is decoded, image data in a spatial domain can be reconstructed, and an image and a video that is a sequence of images can be reconstructed. The reconstructed video can be played back through a playback device, can be stored on a storage medium, or can be transmitted over a network.

[000408] 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] Exemplary embodiments of the present invention can be recorded as computer programs and can be implemented on commonly used digital computers that execute programs using a computer-readable recording medium. Examples of computer-readable recording media include magnetic storage media (e.g., ROM, floppy disks, hard drives, etc.) and optical recording media (e.g., CD-ROMs or DVDs).

[000409] 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.[000409] Although exemplary embodiments have been particularly shown and described above, it will be understood by those of ordinary skill in the art that various changes in form and details can be made thereto without departing from the essence and scope of the inventive concept as defined by the appended claims. . Exemplary embodiments should be considered only in a descriptive sense and not for limiting purposes. Therefore, the scope of the invention is defined not by the detailed description of the exemplary embodiments, but by the appended claims, and all differences within the scope will be considered to be included in the present inventive concept.

Claims (2)

1. MÉTODO DE COMPENSAÇÃO DE MOVIMENTO, o método caracterizado por compreender: 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; gerar uma amostra luma de uma localização de 1/2 pixel no bloco de referência luma mediante aplicar um filtro de interpolação de 8 derivações às amostras luma de uma localização de pixel integral da imagem de referência luma; determinar, em uma imagem de referência croma, um bloco de referência croma para predição de um bloco atual, usando um vetor de movimento croma do bloco atual; e gerar uma amostra croma de uma localização de 1/2 pixel no bloco de referência croma, aplicando um filtro de interpolação a amostras croma de uma localização de pixel integral da imagem de referência croma; em que o filtro de interpolação 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}.1. MOTION COMPENSATION METHOD, the method characterized by comprising: determining, in a luma reference image, a luma reference block for predicting a current block, using a luma movement vector of the current block; generating a luma sample from a 1/2 pixel location in the luma reference block by applying an 8-lead interpolation filter to the luma samples from an integral pixel location of the luma reference image; determining, in a chroma reference image, a chroma reference block for predicting a current block, using a chroma motion vector of the current block; and generating a chroma sample from a 1/2 pixel location in the chroma reference block by applying an interpolation filter to chroma samples from an integral pixel location of the chroma reference image; wherein the 8-lead interpolation filter comprises eight filter coefficients to generate the luma sample from the 1/2 pixel location which are {-1, 4, -11, 40, 40, -11, 4, -1}. 2. MÉTODO, de acordo com a reivindicação 1, caracterizado por a geração da amostra luma compreende escalonar a amostra luma gerada pela aplicação do filtro de 8 derivações usando um fator de escalonamento luma de 64 a fim de reconstruir uma profundidade de bits da amostra luma.2. METHOD according to claim 1, characterized in that generating the luma sample comprises scaling the luma sample generated by applying the 8-lead filter using a luma scaling factor of 64 in order to reconstruct a bit depth of the luma sample .
BR112013007203-2A 2010-09-30 2011-09-30 MOTION COMPENSATION METHOD BR112013007203B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
BR122020014075-5A BR122020014075B1 (en) 2010-09-30 2011-09-30 MOTION COMPENSATION METHOD

Applications Claiming Priority (8)

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
US61/450,775 2011-03-09
PCT/KR2011/007220 WO2012044105A2 (en) 2010-09-30 2011-09-30 Method and device for interpolating images by using a smoothing interpolation filter

Publications (3)

Publication Number Publication Date
BR112013007203A2 BR112013007203A2 (en) 2016-06-14
BR112013007203A8 BR112013007203A8 (en) 2020-10-06
BR112013007203B1 true BR112013007203B1 (en) 2023-09-12

Family

ID=

Similar Documents

Publication Publication Date Title
BR122020014075B1 (en) MOTION COMPENSATION METHOD
BR122021004604B1 (en) APPARATUS TO DECODE VIDEO FOR INTRA PREDICTION OF AN IMAGE USING MOTION COMPENSATION BY USING AN INTERPOLATION FILTER, VIDEO ENCODING METHOD FOR INTRA PREDICTION OF AN IMAGE USING MOTION COMPENSATION USING AN INTERPOLATION FILTER, AND APPARATUS TO ENCODE VIDEO FOR INTRA PICTURE PREDICTION AN IMAGE USING MOTION COMPENSATION BY USING AN INTERPOLATION FILTER
BR112013007203B1 (en) MOTION COMPENSATION METHOD
BR122021005437B1 (en) METHOD FOR MOTION COMPENSATION