BR112018000085B1 - METHOD AND APPARATUS FOR IMAGE PREDICTION AND COMPUTER READABLE MEDIA - Google Patents
METHOD AND APPARATUS FOR IMAGE PREDICTION AND COMPUTER READABLE MEDIA Download PDFInfo
- Publication number
- BR112018000085B1 BR112018000085B1 BR112018000085-0A BR112018000085A BR112018000085B1 BR 112018000085 B1 BR112018000085 B1 BR 112018000085B1 BR 112018000085 A BR112018000085 A BR 112018000085A BR 112018000085 B1 BR112018000085 B1 BR 112018000085B1
- Authority
- BR
- Brazil
- Prior art keywords
- pixel
- pixel unit
- phase
- precision
- unit
- Prior art date
Links
Abstract
MÉTODO DE PREVISÃO DE IMAGEM E APARELHO DE PREVISÃO DE IMAGEM. Trata-se de um método de previsão de imagem e um aparelho relacionado. O método de previsão de imagem inclui: determinar vetores de movimento de W pontos de controle em um bloco de imagem atual; obter, por meio de cálculo, vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle, em que a precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel, a precisão de um vetor de movimento que é obtido por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel, as P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual, e N é maior que n; e realizar a filtragem de interpolação em um pixel de uma unidade de pixel de referência correspondente, em uma imagem de referência, de cada uma das P unidades de pixel utilizandose um filtro de interpolação com uma fase de Q, para obter um valor de (...).IMAGE PREDICTION METHOD AND IMAGE PREDICTION APPARATUS. It is an image prediction method and a related device. The image prediction method includes: determining motion vectors of W control points in a current image block; obtain, through calculation, motion vectors of P pixel units of the current image block using a motion model and the motion vectors of the W control points, where the precision of the determined motion vectors of the W points of control is 1/n of the pixel precision, the precision of a motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of the pixel precision, the P pixel units are some or all of the pixel units of the current image block, and N is greater than n; and performing interpolation filtering on a pixel of a corresponding reference pixel unit, in a reference image, of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a value of (. ..).
Description
[001] A presente invenção refere-se ao campo de codificação de vídeo e decodificação de vídeo e, especificamente, a um método de previsão de imagem e um dispositivo relacionado.[001] The present invention relates to the field of video coding and video decoding and specifically to an image prediction method and a related device.
[002] Com o desenvolvimento de uma tecnologia de coleção optoeletrônica e uma exigência crescente para um vídeo digital de alta definição, um volume de dados de vídeo se torna cada vez maior. A largura de banda de transmissão heterogênea limitada e aplicações de vídeo diversificadas impõem uma exigência maior à eficiência de conversão em código de vídeo. Nesse caso, o padrão de conversão em código de vídeo de alta eficiência (HEVC) começa a ser formulado, conforme exigido.[002] With the development of optoelectronic collection technology and an increasing requirement for high-definition digital video, a volume of video data becomes increasingly larger. Limited heterogeneous transmission bandwidth and diverse video applications place greater demands on video code conversion efficiency. In this case, the High Efficiency Video Code (HEVC) conversion standard begins to be formulated as required.
[003] Um princípio básico de compressão de conversão em código de vídeo é a utilização da correlação entre um domínio de espaço, um domínio de tempo e uma palavra de código para eliminar o máximo possível a redundância. Presentemente, uma maneira comum compreende utilizar uma estrutura de conversão em código de vídeo híbrida baseada em bloco para implementar a compressão de conversão em código de vídeo por meio de etapas, tais como previsão (incluindo previsão intraquadro e previsão interquadro), transformação, quantização e conversão em código de entropia. Essa estrutura de conversão em código é eficaz, e a estrutura de conversão em código de vídeo híbrida baseada em bloco também é utilizada para HEVC.[003] A basic principle of video code conversion compression is the use of correlation between a space domain, a time domain and a codeword to eliminate redundancy as much as possible. At present, a common way comprises using a block-based hybrid video code conversion framework to implement video code conversion compression through steps such as prediction (including intra-frame prediction and inter-frame prediction), transformation, quantization and conversion to entropy code. This code-to-code structure is effective, and the block-based hybrid video code-to-code structure is also used for HEVC.
[004] Em vários esquemas de codificação/decodificação de vídeo, a estimação de movimento/compensação de movimento é uma tecnologia-chave que afeta o desempenho de codificação/decodificação. Em diversos esquemas de codificação de vídeo/decodificação existentes, assume-se, em geral, que um movimento de um objeto atende a uma exigência de um modelo de movimento translacional, e várias partes do objeto inteiro estão em um mesmo movimento. Um algoritmo de estimação de movimento/compensação de movimento existente é basicamente um algoritmo de compensação de movimento baseada em bloco com base em um modelo de movimento translacional (Em inglês: translational motion model). A previsão interquadro existente é principalmente uma previsão de compensação de movimento baseada em bloco (em inglês: motion compensation) com base em um modelo de movimento translacional. Alguns modelos de movimento não translacional (por exemplo, um modelo de movimento de função afim) projetados para movimentos não translacionais emergem gradualmente.[004] In various video encoding/decoding schemes, motion estimation/motion compensation is a key technology that affects encoding/decoding performance. In several existing video encoding/decoding schemes, it is generally assumed that a movement of an object meets a requirement of a translational movement model, and several parts of the entire object are in the same movement. An existing motion estimation/motion compensation algorithm is basically a block-based motion compensation algorithm based on a translational motion model. The existing interframe prediction is mainly a block-based motion compensation prediction based on a translational motion model. Some non-translational motion models (e.g., an affine function motion model) designed for non-translational motions gradually emerge.
[005] Em um mecanismo de previsão baseado em um modelo de movimento de função afim, vetores de movimento de baixa precisão de dois pontos de controle em um bloco de imagem atual e o modelo de movimento de função afim podem ser utilizados para se realizar a previsão de valor de pixel na técnica anterior, de modo a obter um valor de pixel previsto de baixa precisão do bloco de imagem atual. Durante um processo da previsão de valor de pixel, um filtro de interpolação precisa ser utilizado para se realizar uma operação de filtragem de interpolação. A precisão do valor de pixel previsto obtido do bloco de imagem atual é igual à precisão dos vetores de movimento dos dois pontos de controle. Se um valor de pixel previsto de maior precisão do bloco de imagem atual precisar ser obtido, um filtro de interpolação bilinear é adicionalmente exigido para se realizar a filtragem de interpolação secundária no valor de pixel previsto de precisão mais baixa do bloco de imagem atual.[005] In a prediction engine based on an affine function motion model, low-precision motion vectors of two control points in a current image block and the affine function motion model can be used to perform the pixel value prediction in the prior art so as to obtain a low-precision predicted pixel value of the current image block. During a pixel value prediction process, an interpolation filter needs to be used to perform an interpolation filtering operation. The accuracy of the predicted pixel value obtained from the current image block is equal to the accuracy of the motion vectors of the two control points. If a higher precision predicted pixel value of the current image block needs to be obtained, a bilinear interpolation filter is additionally required to perform secondary interpolation filtering on the lower precision predicted pixel value of the current image block.
[006] Na técnica anterior, se os vetores de movimento de precisão mais baixa dos dois pontos de controle e o modelo de movimento de função afim forem utilizados para se obter o valor de pixel previsto de precisão mais alta do bloco de imagem atual, pelo menos duas operações de filtragem de interpolação precisam ser realizadas (uma quantidade relativamente grande de caches intermediários e operações de memória é exigida para cada operação de filtragem de interpolação). Como resultado, uma quantidade relativamente grande de caches intermediários e operações de memória pode ser exigida durante um processo de previsão de imagem inteiro, e a complexidade de cálculo se torna relativamente alta.[006] In the prior art, if the lower precision motion vectors of the two control points and the affine function motion model are used to obtain the highest precision predicted pixel value of the current image block, at least At least two interpolation filtering operations need to be performed (a relatively large number of intermediate caches and memory operations are required for each interpolation filtering operation). As a result, a relatively large amount of intermediate caches and memory operations may be required during an entire image prediction process, and the calculation complexity becomes relatively high.
[007] As modalidades da presente invenção fornecem um método de previsão de imagem e um dispositivo relacionado, de modo a reduzir uma quantidade de caches intermediários e operações de memória que é exigida para a filtragem de interpolação durante um processo de previsão de imagem, e reduzir a complexidade de cálculo durante o processo de previsão de imagem.[007] Embodiments of the present invention provide an image prediction method and a related device, so as to reduce an amount of intermediate caches and memory operations that is required for interpolation filtering during an image prediction process, and reduce the calculation complexity during the image prediction process.
[008] Um primeiro aspecto das modalidades da presente invenção fornece um método de previsão de imagem que inclui: determinar vetores de movimento de W pontos de controle em um bloco de imagem atual; obter, por meio de cálculo, vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle, em que a precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel, as P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual, o vetor de movimento de cada uma das P unidades de pixel é utilizado para determinar uma unidade de pixel de referência correspondente, em uma imagem de referência, de uma unidade de pixel correspondente, W, n, e N são números inteiros maiores que 1, N é maior que n, e P é um número inteiro positivo; e realizar a filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando- se um filtro de interpolação com uma fase de Q, para obter um valor de pixel previsto de cada uma das P unidades de pixel, em que Q é um número inteiro maior que n.[008] A first aspect of embodiments of the present invention provides an image prediction method that includes: determining motion vectors of W control points in a current image block; obtain, through calculation, motion vectors of P pixel units of the current image block using a motion model and the motion vectors of the W control points, where the precision of the determined motion vectors of the W points of control is 1/n of the pixel precision, the precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of the pixel precision, the P pixel units are some or all of the pixel units of the current image block, the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit, in a reference image, from a corresponding pixel unit, W, n, and N are integers greater than 1, N is greater than n, and P is a positive integer; and performing interpolation filtering on a pixel of the corresponding reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a predicted pixel value of each of the P pixel units, where Q is an integer greater than n.
[009] Com referência ao primeiro aspecto, em uma primeira implementação possível do primeiro aspecto, um valor de N é um valor fixo predefinido, e Q é menor ou igual a N.[009] With reference to the first aspect, in a first possible implementation of the first aspect, a value of N is a predefined fixed value, and Q is less than or equal to N.
[010] Com referência ao primeiro aspecto ou à primeira implementação possível do primeiro aspecto, em uma segunda implementação possível do primeiro aspecto, um componente horizontal ou um componente vertical de um dos vetores de movimento dos W pontos de controle é amplificado N vezes no modelo de movimento utilizando-se N, ou uma diferença de componente entre vetores de movimento de quaisquer dois dentre os W pontos de controle é amplificada N vezes no modelo de movimento utilizando-se N.[010] With reference to the first aspect or the first possible implementation of the first aspect, in a second possible implementation of the first aspect, a horizontal component or a vertical component of one of the motion vectors of the W control points is amplified N times in the model of motion using N, or a component difference between motion vectors of any two of the W control points is amplified N times in the motion model using N.
[011] Com referência ao primeiro aspecto, à primeira implementação possível do primeiro aspecto ou à segunda implementação possível do primeiro aspecto, em uma terceira implementação possível do primeiro aspecto, a realização da filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q inclui: obter, por meio de cálculo, uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; determinar, com base na fase de cada unidade de pixel, o filtro de interpolação com a fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e realizar a filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel correspondente.[011] With reference to the first aspect, the first possible implementation of the first aspect or the second possible implementation of the first aspect, in a third possible implementation of the first aspect, performing interpolation filtering on a pixel of the corresponding reference pixel unit , in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q includes: obtaining, through calculation, a phase of each of the P pixel units using the vector of movement of each of the P pixel units; determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the corresponding pixel unit.
[012] Com referência à terceira implementação possível do primeiro aspecto, em uma quarta implementação possível do primeiro aspecto, a obtenção, por meio de cálculo, de uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, a fase de cada uma das P unidades de pixel de acordo com a fórmula a seguir utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, X' representa uma fase horizontal de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, Y' representa uma fase vertical da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[012] With reference to the third possible implementation of the first aspect, in a fourth possible implementation of the first aspect, obtaining, through calculation, a phase of each of the P pixel units using the motion vector of each one of the P pixel units includes: obtaining, through calculation, the phase of each of the P pixel units according to the following formula using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, X' represents a horizontal phase of a pixel unit with coordinates of (x, y) in the current image block, Y' represents a vertical phase of the unit pixel with the coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y ) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[013] Com referência à terceira implementação possível do primeiro aspecto ou à quarta implementação possível do primeiro aspecto, em uma quinta implementação possível do primeiro aspecto, a fase inclui uma fase horizontal e uma fase vertical; e a determinação, com base na fase de cada unidade de pixel, do filtro de interpolação com a fase de Q que corresponde à unidade de pixel inclui: determinar, com base na fase horizontal de cada unidade de pixel, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel correspondente; e determinar, com base na fase vertical de cada unidade de pixel, um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical.[013] With reference to the third possible implementation of the first aspect or the fourth possible implementation of the first aspect, in a fifth possible implementation of the first aspect, the phase includes a horizontal phase and a vertical phase; and determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the pixel unit includes: determining, based on the horizontal phase of each pixel unit, a horizontal interpolation filter with a phase of Q corresponding to the corresponding pixel unit; and determining, based on the vertical phase of each pixel unit, a vertical interpolation filter with a phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase, and A filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase.
[014] Com referência à quinta implementação possível do primeiro aspecto, em uma sexta implementação possível do primeiro aspecto, a realização da filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando- se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel inclui: realizar a filtragem de interpolação horizontal em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel i utilizando- se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel i, para obter um resultado de filtragem de interpolação horizontal; e realizar a filtragem de interpolação vertical no resultado de filtragem de interpolação horizontal utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel i, para obter um valor de pixel previsto da unidade de pixel i, em que a unidade de pixel i é qualquer uma dentre as P unidades de pixel; ou realizar a filtragem de interpolação vertical em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel j utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um resultado de filtragem de interpolação vertical; e realizar a filtragem de interpolação horizontal no resultado de filtragem de interpolação vertical utilizando-se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um valor de pixel previsto da unidade de pixel j, em que a unidade de pixel j é qualquer uma dentre as P unidades de pixel.[014] With reference to the fifth possible implementation of the first aspect, in a sixth possible implementation of the first aspect, performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using- if the interpolation filter determined with the phase of Q corresponding to the pixel unit includes: performing horizontal interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a pixel unit i using- if a horizontal interpolation filter is determined with a phase of Q corresponding to pixel unit i, to obtain a horizontal interpolation filtering result; and performing vertical interpolation filtering on the horizontal interpolation filtering result using a vertical interpolation filter determined with a phase of Q corresponding to pixel unit i, to obtain a predicted pixel value of pixel unit i, in that pixel unit i is any one of P pixel units; or perform vertical interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a pixel unit j using a vertical interpolation filter determined with a phase of Q that corresponds to the pixel unit j, to obtain a vertical interpolation filtering result; and performing horizontal interpolation filtering on the vertical interpolation filtering result using a determined horizontal interpolation filter with a phase of Q corresponding to pixel unit j, to obtain a predicted pixel value of pixel unit j, in that pixel unit j is any one of P pixel units.
[015] Com referência a qualquer um dentre o primeiro aspecto e da primeira à sexta implementações possíveis do primeiro aspecto, em uma sétima implementação possível do primeiro aspecto, o modelo de movimento é um modelo de movimento translacional, um modelo de movimento de função afim, um modelo de movimento rotacional, um modelo de movimento parabólico, um modelo de movimento cisalhante, um modelo de movimento de ampliação, um modelo de movimento perspectivo ou um modelo de movimento bilinear.[015] With reference to any one of the first aspect and the first to sixth possible implementations of the first aspect, in a seventh possible implementation of the first aspect, the motion model is a translational motion model, an affine function motion model , a rotational motion model, a parabolic motion model, a shear motion model, a widening motion model, a perspective motion model, or a bilinear motion model.
[016] Com referência a qualquer um dentre o primeiro aspecto e da primeira à sétima implementações possíveis do primeiro aspecto, em uma oitava implementação possível do primeiro aspecto, o modelo de movimento é representado conforme a seguir quando W é igual a 2: ou , em que L representa uma largura ou uma altura do bloco de imagem atual, (v0x,v0y) e (v1x,v1y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de dois pontos de controle, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[016] With reference to any one of the first aspect and the first to seventh possible implementations of the first aspect, in an eighth possible implementation of the first aspect, the motion model is represented as follows when W is equal to 2: or , where L represents a width or a height of the current image block, (v0x,v0y) and (v1x,v1y) represent motion vectors, whose precision is 1/n of the pixel precision, of two control points, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector , whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[017] Com referência a qualquer um dentre o primeiro aspecto e da primeira à sétima implementações possíveis do primeiro aspecto, em uma nona implementação possível do primeiro aspecto, o modelo de movimento é representado conforme a seguir quando W é igual a 3: ou em que vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, (v0x,v0y) , (v1x,v1y) , e (v2x,v2y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de três pontos de controle, w representa uma largura do bloco de imagem atual, e h representa uma altura do bloco de imagem atual.[017] With reference to any one of the first aspect and the first to seventh possible implementations of the first aspect, in a ninth possible implementation of the first aspect, the motion model is represented as follows when W is equal to 3: or where vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, vNy represents a vertical component of the vector movement, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, (v0x,v0y) , (v1x,v1y) , and (v2x,v2y) ) represent motion vectors, whose precision is 1/n of the pixel precision, of three control points, w represents a width of the current image block, and h represents a height of the current image block.
[018] Com referência a qualquer um dentre o primeiro aspecto e da primeira à nona implementações possíveis do primeiro aspecto, em uma décima implementação possível do primeiro aspecto, os vetores de movimento dos W pontos de controle são previstos com base em um vetor de movimento, cuja precisão é 1/n da precisão de pixel, de um bloco de imagem codificado ou um bloco de imagem decodificado que circunda o bloco de imagem atual.[018] With reference to any one of the first aspect and the first to ninth possible implementations of the first aspect, in a tenth possible implementation of the first aspect, the motion vectors of the W control points are predicted based on a motion vector , whose precision is 1/n of the pixel precision, of an encoded image block or a decoded image block surrounding the current image block.
[019] Com referência a qualquer um dentre o primeiro aspecto e da primeira à décima implementações possíveis do primeiro aspecto, em uma décima primeira implementação possível do primeiro aspecto, o método de previsão de imagem é aplicado a um processo de codificação de vídeo ou aplicado a um processo de decodificação de vídeo.[019] With reference to any one of the first aspect and the first to tenth possible implementations of the first aspect, in an eleventh possible implementation of the first aspect, the image prediction method is applied to a video coding process or applied to a video decoding process.
[020] Um segundo aspecto das modalidades da presente invenção fornece um aparelho de previsão de imagem que inclui: uma primeira unidade de determinação, configurada para determinar vetores de movimento de W pontos de controle em um bloco de imagem atual; uma unidade de cálculo, configurada para obter, por meio de cálculo, vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle, em que a precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel, as P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual, o vetor de movimento de cada uma das P unidades de pixel é utilizado para determinar uma unidade de pixel de referência correspondente, em uma imagem de referência, de uma unidade de pixel correspondente, W, n, e N são números inteiros maiores que 1, N é maior que n, e P é um número inteiro positivo; e uma unidade de filtragem de interpolação, configurada para realizar a filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando- se um filtro de interpolação com uma fase de Q, para obter um valor de pixel previsto de cada uma das P unidades de pixel, em que Q é um número inteiro maior que n.[020] A second aspect of embodiments of the present invention provides an image prediction apparatus that includes: a first determination unit, configured to determine motion vectors of W control points in a current image block; a calculation unit, configured to obtain, through calculation, motion vectors of P pixel units of the current image block using a motion model and the motion vectors of W control points, where the accuracy of determined motion vectors of the W control points is 1/n of the pixel precision, the precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of the pixel precision , the P pixel units are some or all of the pixel units of the current image block, the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit, in a reference image, of a corresponding pixel unit, W, n, and N are integers greater than 1, N is greater than n, and P is a positive integer; and an interpolation filtering unit configured to perform interpolation filtering on one pixel of the corresponding reference pixel unit in the reference image of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a predicted pixel value from each of the P pixel units, where Q is an integer greater than n.
[021] Com referência ao segundo aspecto, em uma primeira implementação possível do segundo aspecto, um valor de N é um valor fixo predefinido, e Q é menor ou igual a N.[021] With reference to the second aspect, in a first possible implementation of the second aspect, a value of N is a predefined fixed value, and Q is less than or equal to N.
[022] Com referência ao segundo aspecto ou à primeira implementação possível do segundo aspecto, em uma segunda implementação possível do segundo aspecto, um componente horizontal ou um componente vertical de um dos vetores de movimento dos W pontos de controle é amplificado N vezes no modelo de movimento utilizando-se N, ou uma diferença de componente entre vetores de movimento de quaisquer dois dentre os W pontos de controle é amplificada N vezes no modelo de movimento utilizando-se N.[022] With reference to the second aspect or the first possible implementation of the second aspect, in a second possible implementation of the second aspect, a horizontal component or a vertical component of one of the motion vectors of the W control points is amplified N times in the model of motion using N, or a component difference between motion vectors of any two of the W control points is amplified N times in the motion model using N.
[023] Com referência ao segundo aspecto, à primeira implementação possível do segundo aspecto ou à segunda implementação possível do segundo aspecto, a unidade de filtragem de interpolação é configurada especificamente para: obter, por meio de cálculo, uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; determinar, com base na fase de cada unidade de pixel, o filtro de interpolação com a fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e realizar a filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel correspondente.[023] With reference to the second aspect, the first possible implementation of the second aspect, or the second possible implementation of the second aspect, the interpolation filtering unit is specifically configured to: obtain, by means of calculation, one phase of each of the P pixel units using the motion vector of each of the P pixel units; determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the corresponding pixel unit.
[024] Com referência à terceira implementação possível do segundo aspecto, em uma quarta implementação possível do segundo aspecto, em um aspecto da obtenção, por meio de cálculo, de uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel, a unidade de filtragem de interpolação é especificamente configurada para obter, por meio de cálculo, a fase de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, X' representa uma fase horizontal de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, Y' representa uma fase vertical da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[024] With reference to the third possible implementation of the second aspect, in a fourth possible implementation of the second aspect, in an aspect of obtaining, through calculation, a phase of each of the P pixel units using the vector of movement of each of the P pixel units, the interpolation filtering unit is specifically configured to obtain, through calculation, the phase of each of the P pixel units, according to the following formula, using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, X' represents a horizontal phase of a pixel unit with coordinates of (x, y) in the current image block, Y' represents a vertical phase of the unit pixel with the coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y ) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[025] Com referência à terceira implementação possível do segundo aspecto ou à quarta implementação possível do segundo aspecto, em uma quinta implementação possível do segundo aspecto, a fase inclui uma fase horizontal e uma fase vertical; e em um aspecto da determinação, com base na fase de cada unidade de pixel, do filtro de interpolação com a fase de Q que corresponde à unidade de pixel correspondente, a unidade de filtragem de interpolação é configurada especificamente para: determinar, com base na fase horizontal de cada unidade de pixel, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel correspondente; e determinar, com base na fase vertical de cada unidade de pixel, um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical.[025] With reference to the third possible implementation of the second aspect or the fourth possible implementation of the second aspect, in a fifth possible implementation of the second aspect, the phase includes a horizontal phase and a vertical phase; and in one aspect of determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the corresponding pixel unit, the interpolation filter unit is specifically configured to: determine, based on the horizontal phase of each pixel unit, a horizontal interpolation filter with a Q phase that corresponds to the corresponding pixel unit; and determining, based on the vertical phase of each pixel unit, a vertical interpolation filter with a phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase, and A filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase.
[026] Com referência à quinta implementação possível do segundo aspecto, em uma sexta implementação possível do segundo aspecto, em um aspecto da realização da filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel correspondente, a unidade de filtragem de interpolação é configurada especificamente para: realizar a filtragem de interpolação horizontal em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel i utilizando-se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel i, para obter um resultado de filtragem de interpolação horizontal; e realizar a filtragem de interpolação vertical no resultado de filtragem de interpolação horizontal utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel i, para obter um valor de pixel previsto da unidade de pixel i, em que a unidade de pixel i é qualquer uma dentre as P unidades de pixel; ou a unidade de filtragem de interpolação é configurada especificamente para: realizar a filtragem de interpolação vertical em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel j utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um resultado de filtragem de interpolação vertical; e realizar a filtragem de interpolação horizontal no resultado de filtragem de interpolação vertical utilizando-se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um valor de pixel previsto da unidade de pixel j, em que a unidade de pixel j é qualquer uma dentre as P unidades de pixel.[026] With reference to the fifth possible implementation of the second aspect, in a sixth possible implementation of the second aspect, in an aspect of performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel using the interpolation filter determined with the phase of Q that corresponds to the corresponding pixel unit, the interpolation filter unit is specifically configured to: perform horizontal interpolation filtering on a pixel of a corresponding reference pixel unit , in the reference image, of a pixel unit i using a horizontal interpolation filter determined with a phase of Q corresponding to the pixel unit i, to obtain a horizontal interpolation filtering result; and performing vertical interpolation filtering on the horizontal interpolation filtering result using a vertical interpolation filter determined with a phase of Q corresponding to pixel unit i, to obtain a predicted pixel value of pixel unit i, in that pixel unit i is any one of P pixel units; or the interpolation filtering unit is specifically configured to: perform vertical interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a pixel unit j using a determined vertical interpolation filter with a phase of Q corresponding to pixel unit j, to obtain a vertical interpolation filtering result; and performing horizontal interpolation filtering on the vertical interpolation filtering result using a determined horizontal interpolation filter with a phase of Q corresponding to pixel unit j, to obtain a predicted pixel value of pixel unit j, in that pixel unit j is any one of P pixel units.
[027] Com referência a qualquer um dentre o segundo aspecto e da primeira à sexta implementações possíveis do segundo aspecto, em uma sétima implementação possível do segundo aspecto, o modelo de movimento é um modelo de movimento translacional, um modelo de movimento de função afim, um modelo de movimento rotacional, um modelo de movimento de ampliação, um modelo de movimento parabólico, um modelo de movimento cisalhante, um modelo de movimento perspectivo ou um modelo de movimento bilinear.[027] With reference to any one of the second aspect and the first to sixth possible implementations of the second aspect, in a seventh possible implementation of the second aspect, the motion model is a translational motion model, an affine function motion model , a rotational motion model, a magnifying motion model, a parabolic motion model, a shear motion model, a perspective motion model, or a bilinear motion model.
[028] Com referência a qualquer um dentre o segundo aspecto e da primeira à sétima implementações possíveis do segundo aspecto, em uma oitava implementação possível do segundo aspecto, o modelo de movimento é representado conforme a seguir quando W é igual a 2: ou , em que L representa uma largura ou uma altura do bloco de imagem atual, (V0X,V0y) e (V1X,V1y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de dois pontos de controle, VNX representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, e VNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[028] With reference to any one of the second aspect and the first to seventh possible implementations of the second aspect, in an eighth possible implementation of the second aspect, the motion model is represented as follows when W is equal to 2: or , where L represents a width or a height of the current image block, (V0X,V0y) and (V1X,V1y) represent motion vectors, whose precision is 1/n of the pixel precision, of two control points, VNX represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, and VNy represents a vertical component of the motion vector , whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[029] Com referência a qualquer um dentre o segundo aspecto e da primeira à sétima implementações possíveis do segundo aspecto, em uma nona implementação possível do segundo aspecto, o modelo de movimento é representado conforme a seguir quando W é igual a 3: ou em que vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, (v0x,v0y) , (v1x,v1y) , e (v2x,v2y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de três pontos de controle, w representa uma largura do bloco de imagem atual, e h representa uma altura do bloco de imagem atual.[029] With reference to any one of the second aspect and the first to seventh possible implementations of the second aspect, in a ninth possible implementation of the second aspect, the motion model is represented as follows when W is equal to 3: or where vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, vNy represents a vertical component of the vector movement, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, (v0x,v0y) , (v1x,v1y) , and (v2x,v2y) ) represent motion vectors, whose precision is 1/n of the pixel precision, of three control points, w represents a width of the current image block, and h represents a height of the current image block.
[030] Com referência a qualquer um dentre o segundo aspecto e da primeira à nona implementações possíveis do segundo aspecto, em uma décima implementação possível do segundo aspecto, os vetores de movimento dos W pontos de controle são previstos com base em um vetor de movimento, cuja precisão é 1/n da precisão de pixel, de um bloco de imagem codificado ou um bloco de imagem decodificado que circunda o bloco de imagem atual.[030] With reference to any one of the second aspect and the first to ninth possible implementations of the second aspect, in a tenth possible implementation of the second aspect, the motion vectors of the W control points are predicted based on a motion vector , whose precision is 1/n of the pixel precision, of an encoded image block or a decoded image block surrounding the current image block.
[031] Com referência a qualquer um dentre o segundo aspecto e da primeira à décima implementações possíveis do segundo aspecto, em uma décima primeira implementação possível do segundo aspecto, o aparelho de previsão de imagem é aplicado a um aparelho de codificação de vídeo ou o aparelho de previsão de imagem é aplicado a um aparelho de decodificação de vídeo.[031] With reference to any one of the second aspect and the first to tenth possible implementations of the second aspect, in an eleventh possible implementation of the second aspect, the image prediction apparatus is applied to a video coding apparatus or the image prediction apparatus is applied to a video decoding apparatus.
[032] Uma modalidade da presente invenção fornece adicionalmente um aparelho de previsão de imagem, que inclui um processador e uma memória. O aparelho de previsão de imagem pode incluir adicionalmente, por exemplo, uma interface de rede. A memória é configurada para armazenar uma instrução, o processador é configurado para executar a instrução, e a interface de rede é configurada para se comunicar, sob o controle do processador, com outro dispositivo.[032] An embodiment of the present invention further provides an image prediction apparatus, which includes a processor and a memory. The image prediction apparatus may additionally include, for example, a network interface. The memory is configured to store an instruction, the processor is configured to execute the instruction, and the network interface is configured to communicate, under the control of the processor, with another device.
[033] Por exemplo, o processador é configurado para: determinar vetores de movimento de W pontos de controle em um bloco de imagem atual; obter, por meio de cálculo, vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle, em que a precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel, as P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual, o vetor de movimento de cada uma das P unidades de pixel é utilizado para determinar uma unidade de pixel de referência correspondente, em uma imagem de referência, de uma unidade de pixel correspondente, W, n, e N são números inteiros maiores que 1, N é maior que n, e P é um número inteiro positivo; e realizar a filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q, para obter um valor de pixel previsto de cada uma das P unidades de pixel, em que Q é um número inteiro maior que n.[033] For example, the processor is configured to: determine motion vectors of W control points in a current image block; obtain, through calculation, motion vectors of P pixel units of the current image block using a motion model and the motion vectors of the W control points, where the precision of the determined motion vectors of the W points of control is 1/n of the pixel precision, the precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of the pixel precision, the P pixel units are some or all of the pixel units of the current image block, the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit, in a reference image, from a corresponding pixel unit, W, n, and N are integers greater than 1, N is greater than n, and P is a positive integer; and performing interpolation filtering on a pixel of the corresponding reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a predicted pixel value of each of the P pixel units, where Q is an integer greater than n.
[034] Além disso, uma modalidade da presente invenção fornece adicionalmente uma mídia de armazenamento legível por computador. A mídia de armazenamento legível por computador armazena código de programa para a previsão de imagem. O código de programa inclui uma instrução para executar um método de previsão de imagem.[034] Furthermore, an embodiment of the present invention additionally provides a computer-readable storage medium. Computer-readable storage media stores program code for image prediction. The program code includes an instruction to perform an image prediction method.
[035] Pode-se compreender que, no método de previsão de imagem fornecido nas modalidades da presente invenção, o vetor de movimento, cuja precisão é 1/N da precisão de pixel, de cada unidade de pixel do bloco de imagem atual é obtido por meio de cálculo utilizando-se o modelo de movimento e os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos W pontos de controle, em que N é maior que n. Em outras palavras, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada unidade de pixel do bloco de imagem atual é maior que a precisão dos vetores de movimento determinados dos W pontos de controle. O vetor de movimento de precisão mais alta é obtido primeiro. Portanto, o vetor de movimento de precisão mais alta de cada unidade de pixel do bloco de imagem atual é utilizado para determinar a unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual, e a filtragem de interpolação é realizada no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual utilizando-se o filtro de interpolação com a fase de Q (Q é maior que n), para obter o valor de pixel previsto de cada unidade de pixel do bloco de imagem atual. Pode-se compreender que a maneira anteriormente mencionada auxilia na redução de uma quantidade de vezes exigidas de filtragem de interpolação para se obter, por meio de previsão, o valor de pixel previsto de precisão mais alta do bloco de imagem atual (por exemplo, um processo intermediário para se obter um valor de pixel previsto de precisão mais baixa realizando-se uma filtragem de interpolação de precisão mais baixa pode não ser exigido), de modo a reduzir uma quantidade de caches intermediários e operações de memória que são exigidos para a filtragem de interpolação durante um processo de previsão de imagem, e reduzir a complexidade de cálculo durante o processo de previsão de imagem.[035] It can be understood that, in the image prediction method provided in the embodiments of the present invention, the motion vector, whose precision is 1/N of the pixel precision, of each pixel unit of the current image block is obtained through calculation using the movement model and the movement vectors, whose precision is 1/n of the pixel precision, of the W control points, where N is greater than n. In other words, the precision of the motion vector that is obtained through calculation and that belongs to each pixel unit of the current image block is greater than the precision of the motion vectors determined from the W control points. The highest precision motion vector is obtained first. Therefore, the highest precision motion vector of each pixel unit of the current image block is used to determine the corresponding reference pixel unit, in the reference image, of each pixel unit of the current image block, and the Interpolation filtering is performed on the corresponding reference pixel unit pixel in the reference image of each pixel unit of the current image block using the interpolation filter with the phase of Q (Q is greater than n), to obtain the predicted pixel value of each pixel unit of the current image block. It can be understood that the aforementioned manner assists in reducing a number of required times of interpolation filtering to obtain, through prediction, the highest precision predicted pixel value of the current image block (e.g., a intermediate process to obtain a lower precision predicted pixel value (performing lower precision interpolation filtering may not be required), so as to reduce the amount of intermediate caches and memory operations that are required for filtering interpolation during an image prediction process, and reduce the calculation complexity during the image prediction process.
[036] Para descrever as soluções técnicas nas modalidades da presente invenção de modo mais claro, a seguir descreve-se brevemente os desenhos anexos exigidos para descrever as modalidades. Certamente, os desenhos anexos na descrição a seguir mostram meramente algumas modalidades da presente invenção, e os indivíduos de habilidade comum na técnica podem ainda obter outros desenhos a partir desses desenhos anexos sem o auxílio de esforços criativos.[036] To describe the technical solutions in the embodiments of the present invention more clearly, the following briefly describes the attached drawings required to describe the embodiments. Of course, the attached drawings in the following description merely show some embodiments of the present invention, and individuals of ordinary skill in the art can still obtain other drawings from these attached drawings without the aid of creative efforts.
[037] A Figura 1-a e a Figura 1-b são diagramas esquemáticos de vários tipos de divisão de um bloco de imagem de acordo com uma modalidade da presente invenção.[037] Figure 1-a and Figure 1-b are schematic diagrams of various types of division of an image block according to an embodiment of the present invention.
[038] A Figura 2-a é um fluxograma esquemático de um método de previsão de imagem de acordo com uma modalidade da presente invenção.[038] Figure 2-a is a schematic flowchart of an image prediction method according to an embodiment of the present invention.
[039] A Figura 2-b é um diagrama esquemático de previsão de vetores de movimento de pontos de controle de acordo com uma modalidade da presente invenção.[039] Figure 2-b is a schematic diagram of predicting control point movement vectors according to an embodiment of the present invention.
[040] A Figura 3-a é um fluxograma esquemático de outro método de previsão de imagem de acordo com uma modalidade da presente invenção.[040] Figure 3-a is a schematic flowchart of another image prediction method in accordance with an embodiment of the present invention.
[041] A Figura 3-b é um diagrama esquemático de uma localização de pixel inteiro uma localização de subpixel de acordo com uma modalidade da presente invenção.[041] Figure 3-b is a schematic diagram of an entire pixel location and a subpixel location in accordance with an embodiment of the present invention.
[042] A Figura 4 é um fluxograma esquemático de outro método de previsão de imagem de acordo com uma modalidade da presente invenção.[042] Figure 4 is a schematic flowchart of another image prediction method in accordance with an embodiment of the present invention.
[043] A Figura 5 é um diagrama esquemático de um aparelho de previsão de imagem de acordo com uma modalidade da presente invenção.[043] Figure 5 is a schematic diagram of an image prediction apparatus in accordance with an embodiment of the present invention.
[044] A Figura 6 é um diagrama esquemático de outro aparelho de previsão de imagem de acordo com uma modalidade da presente invenção.[044] Figure 6 is a schematic diagram of another image prediction apparatus in accordance with an embodiment of the present invention.
[045] As modalidades da presente invenção fornecem um método de previsão de imagem e um dispositivo relacionado, de modo a reduzir uma quantidade de caches intermediários e operações de memória que é exigida para a filtragem de interpolação durante um processo de previsão de imagem, e reduzir a complexidade de cálculo durante o processo de previsão de imagem.[045] Embodiments of the present invention provide an image prediction method and a related device, so as to reduce an amount of intermediate caches and memory operations that is required for interpolation filtering during an image prediction process, and reduce the calculation complexity during the image prediction process.
[046] No relatório descritivo, nas reivindicações e nos desenhos anexos da presente invenção, os termos "primeiro", "segundo", "terceiro" e assim por diante são destinados a distinguir entre diferentes objetos, mas não indicam uma ordem específica. Além disso, os termos "que inclui", "que compreende" e qualquer outra variante dos mesmos são destinados a cobrir uma inclusão não exclusiva. Por exemplo, um processo, um método, um sistema, um produto ou um dispositivo que inclui uma série de etapas ou unidades não é limitado às etapas ou unidades listadas, mas, opcionalmente, inclui adicionalmente uma etapa ou unidade não listada, ou, opcionalmente, inclui adicionalmente outra etapa ou unidade inerente ao processo, ao método, ao produto ou ao dispositivo.[046] In the specification, claims and accompanying drawings of the present invention, the terms "first", "second", "third" and so on are intended to distinguish between different objects, but do not indicate a specific order. Furthermore, the terms "including", "comprising" and any other variant thereof are intended to cover a non-exclusive inclusion. For example, a process, method, system, product, or device that includes a series of steps or units is not limited to the listed steps or units, but optionally additionally includes an unlisted step or unit, or optionally , additionally includes another step or unit inherent to the process, method, product or device.
[047] A seguir descreve-se primeiro, brevemente, alguns conceitos que podem ser relacionados às modalidades da presente invenção.[047] Below, we first briefly describe some concepts that can be related to the modalities of the present invention.
[048] Na maioria das estruturas de conversão em código, uma sequência de vídeo inclui uma série de imagens, uma imagem é adicionalmente dividia em fatias, e uma fatia é adicionalmente dividida em blocos. A conversão em código de vídeo é baseada em uma unidade de um bloco, e o processamento de conversão em código pode começar a ser realizado em uma localização de uma aresta esquerda superior de uma imagem e, então, realizado linha por linha da esquerda para a direita e do topo para o fundo. Em alguns padrões de conversão em código de vídeo novos, um conceito do bloco é adicionalmente estendido. No padrão H.264, um macrobloco (MB) é descrito, e o MB pode ser adicionalmente dividido em múltiplas partições de previsão que podem ser utilizadas para a conversão em código preditiva. No padrão HEVC, os conceitos básicos de uma unidade de conversão em código (CU), uma unidade de previsão (PU), uma unidade de transformada (TU) e semelhantes são utilizados. Múltiplos tipos de unidades são obtidos por meio de divisão de função, e são descritas utilizando-se uma nova estrutura baseada em árvore nova. Por exemplo, a CU pode ser dividida em CUs menores, de acordo com uma árvore quaternária, e uma CU menor pode continuar a ser mais dividida para formar uma estrutura de árvore quaternária. As estruturas de árvore da PU e da TU são semelhantes àquela da CU. A CU, a PU e a TU essencialmente pertencem, todas, ao conceito do bloco. De modo semelhante a um macrobloco MB ou um bloco de conversão em código, a CU é uma unidade básica para se dividir e codificar uma imagem de conversão em código. A PU é uma unidade básica para a conversão em código preditiva, e pode corresponde a uma partição de previsão. De acordo com um modo de divisão, a CU é adicionalmente dividida em múltiplas PUs. A TU é uma unidade básica para se transformar um valor residual previsto, e pode corresponde a um bloco de transformada. No padrão de conversão em código de vídeo de alta eficiência (em inglês: high efficiency video coding, abreviado HEVC), a CU, a PU e a TU podem ser referidas coletivamente como um bloco em árvore de conversão em código (em inglês: coding tree block, CTB for short) e semelhantes.[048] In most code conversion frameworks, a video sequence includes a series of images, an image is further divided into slices, and a slice is further divided into blocks. Video code conversion is based on a one-block unit, and code conversion processing may begin at a location on an upper left edge of an image and then be performed line by line from left to right. right and from top to bottom. In some new video code conversion standards, a block concept is further extended. In the H.264 standard, a macroblock (MB) is described, and the MB can be further divided into multiple prediction partitions that can be used for predictive code conversion. In the HEVC standard, the basic concepts of a code conversion unit (CU), a prediction unit (PU), a transform unit (TU), and the like are used. Multiple types of units are obtained through function division, and are described using a new tree-based structure. For example, the CU can be divided into smaller CUs according to a quaternary tree, and a smaller CU can continue to be further divided to form a quaternary tree structure. The tree structures of PU and TU are similar to that of CU. CU, PU and TU essentially all belong to the block concept. Similar to a MB macroblock or a code block, the CU is a basic unit for dividing and encoding a code image. The PU is a basic unit for conversion into predictive code, and may correspond to a prediction partition. According to a division mode, the CU is further divided into multiple PUs. The TU is a basic unit for transforming a predicted residual value, and can correspond to a transform block. In the high efficiency video coding (HEVC) standard, the CU, PU, and TU can be collectively referred to as a block coding tree. tree block, CTB for short) and the like.
[049] No padrão HEVC, a unidade de conversão em código pode incluir quatro níveis de tamanho: 64 x 64, 32 x 32, 16 x 16, e 8 x 8. Cada nível da unidade de conversão em código pode ser dividido em unidades de previsão de diferentes tamanhos, de acordo com a previsão intraquadro e a previsão interquadro. Por exemplo, conforme mostrado na Figura 1-a e na Figura 1-b, a Figura 1-a mostra um modo de divisão de unidade de previsão que corresponde à previsão intraquadro, e a Figura 1-b mostra vários modos de divisão de unidade de previsão que correspondem à previsão interquadro.[049] In the HEVC standard, the code conversion unit can include four size levels: 64 x 64, 32 x 32, 16 x 16, and 8 x 8. Each level of the code conversion unit can be divided into units of different sizes according to intra-frame forecast and inter-frame forecast. For example, as shown in Figure 1-a and Figure 1-b, Figure 1-a shows a prediction unit division mode that corresponds to intra-frame prediction, and Figure 1-b shows several prediction unit division modes forecast that correspond to the interframe forecast.
[050] Durante um processo de desenvolvimento e evolução de uma tecnologia de conversão em código de vídeo, os versados em conversão em código de vídeo percebem vários métodos para utilizar a correlação espacial-temporal entre blocos codificados/decodificados adjacentes para aprimorar a eficiência de conversão em código. No padrão H.264/conversão em código de vídeo avançada (em inglês: advanced video coding, abreviada AVC), um modo de omissão (skip mode) e um modo direto (direct mode) se tornam meios eficazes para aprimorar a eficiência de conversão em código. Em um caso de uma taxa de bits baixa, uma quantidade de blocos que utilizam os dois modos de conversão em código representa mais da metade dos blocos em uma sequência de conversão em código inteira. Quando o modo de omissão é utilizado, um vetor de movimento de um bloco de imagem atual pode ser obtido por meio de derivação utilizando-se um vetor de movimento circundante contanto que uma marcação de modo de omissão seja transferida em um fluxo de bits, e um valor de um bloco de referência é utilizado diretamente como um valor de reconstrução do bloco de imagem atual, de acordo com o vetor de movimento. Alternativamente, quando o modo direto é utilizado, um codificador pode obter, por meio de derivação, um vetor de movimento de um bloco de imagem atual utilizando-se um vetor de movimento circundante, utilizar diretamente um valor de um bloco de referência como um valor previsto do bloco de imagem atual, de acordo com o vetor de movimento, e realizar a conversão em código preditiva no bloco de imagem atual em um lado de codificador utilizando- se o valor previsto. Presentemente, alguns meios de conversão em código novos são utilizados no padrão de conversão em código de vídeo de alta eficiência mais recente (em inglês: high efficiency video coding, abreviada HEVC), para aprimorar adicionalmente o desempenho da conversão em código de vídeo. Um modo de conversão em código mesclada e um modo de previsão de vetor de movimento avançada (AMVP) são dos meios de previsão interquadro importantes. No modo de conversão em código mesclada, as informações de movimento (incluindo um vetor de movimento (MV), uma direção de previsão, um índice de quadro de referência e semelhantes) de um bloco convertido em código que circunda um bloco de conversão em código atual são utilizadas para formar um conjunto de informações de movimento candidatas. As informações de movimento candidatas com a maior eficiência de conversão em código podem ser selecionadas, por meio de comparação, como as informações de movimento do bloco de conversão em código atual. A conversão em código preditiva é realizada no bloco de conversão em código atual utilizando- se um valor previsto, encontrado em um quadro de referência, do bloco de conversão em código atual. Além disso, um valor de índice que realiza a indexação de um bloco convertido em código circundante específica do qual as informações de movimento são selecionadas pode ser gravado em um fluxo de bits. Quando o modo de previsão de vetor de movimento avançada é utilizado, um vetor de movimento de um bloco convertido em código circundante é utilizado como um valor previsto de um vetor de movimento de um bloco de conversão em código atual, um vetor de movimento com a maior eficiência de conversão em código pode ser selecionado para prever o vetor de movimento do bloco de conversão em código atual, e um valor de índice que indica a seleção de um vetor de movimento circundante específico pode ser gravado em um fluxo de bits de vídeo.[050] During a process of development and evolution of a video code conversion technology, those skilled in video code conversion realize various methods to utilize the spatio-temporal correlation between adjacent encoded/decoded blocks to improve conversion efficiency. in code. In the H.264/advanced video coding (abbreviated AVC) standard, a skip mode and a direct mode become effective means of improving conversion efficiency in code. In a low bitrate case, a number of blocks using both hardcode modes represents more than half of the blocks in an entire hardcode sequence. When the skip mode is used, a motion vector of a current image block can be obtained by derivation using a surrounding motion vector as long as a skip mode marking is transferred in a bit stream, and a value from a reference block is directly used as a reconstruction value of the current image block according to the motion vector. Alternatively, when direct mode is used, an encoder can derive, by derivation, a motion vector from a current image block using a surrounding motion vector, directly use a value from a reference block as a predicted value of the current image block according to the motion vector, and perform predictive code conversion on the current image block on an encoder side using the predicted value. At present, some new code conversion means are used in the latest high efficiency video coding (HEVC) standard to further improve the performance of video code conversion. A merged code conversion mode and an advanced motion vector prediction (AMVP) mode are important interframe prediction means. In merged hardcode mode, motion information (including a motion vector (MV), a prediction direction, a reference frame index, and the like) of a hardcoded block surrounding a hardcoded block current are used to form a set of candidate motion information. The candidate motion information with the highest code conversion efficiency can be selected, through comparison, as the motion information of the current code block. Predictive code conversion is performed in the current code block using a predicted value, found in a frame of reference, from the current code block. Additionally, an index value that performs indexing of a specific surrounding code-converted block from which motion information is selected can be written to a bit stream. When the advanced motion vector prediction mode is used, a motion vector of a block converted to surrounding code is used as a predicted value of a motion vector of a block converted to current code, a motion vector with the higher code conversion efficiency can be selected to predict the motion vector of the current code block, and an index value indicating the selection of a specific surrounding motion vector can be written to a video bit stream.
[051] A seguir continua-se a descrever as soluções técnicas das modalidades da presente invenção.[051] Below we continue to describe the technical solutions of the embodiments of the present invention.
[052] A seguir descreve-se, primeiro, o método de previsão de imagem fornecido nas modalidades da presente invenção. O método de previsão de imagem fornecido nas modalidades da presente invenção é executado por um aparelho de codificação de vídeo ou um aparelho de decodificação de vídeo. O aparelho de codificação de vídeo ou o aparelho de decodificação de vídeo pode ser qualquer aparelho que precisa emitir ou armazenar um vídeo, por exemplo, um computador do tipo notebook, um computador do tipo tablet, um computador de uso pessoal, um telefone móvel, um servidor de vídeo ou outro dispositivo.[052] The following first describes the image prediction method provided in embodiments of the present invention. The image prediction method provided in embodiments of the present invention is performed by a video encoding apparatus or a video decoding apparatus. The video encoding device or video decoding device can be any device that needs to output or store a video, for example, a notebook computer, a tablet computer, a personal computer, a mobile phone, a video server or other device.
[053] Em uma modalidade do método de previsão de imagem fornecido na presente invenção, o método de previsão de imagem pode incluir: determinar vetores de movimento de W pontos de controle em um bloco de imagem atual; obter, por meio de cálculo, vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle, em que a precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel, as P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual, o vetor de movimento de cada uma das P unidades de pixel é utilizado para determinar uma unidade de pixel de referência correspondente, em uma imagem de referência, de uma unidade de pixel correspondente, W, n, e N são números inteiros maiores que 1, N é maior que n, e P é um número inteiro positivo; e realizar a filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q, para obter um valor de pixel previsto de cada uma das P unidades de pixel, em que Q é um número inteiro maior que n.[053] In one embodiment of the image prediction method provided in the present invention, the image prediction method may include: determining motion vectors of W control points in a current image block; obtain, through calculation, motion vectors of P pixel units of the current image block using a motion model and the motion vectors of the W control points, where the precision of the determined motion vectors of the W points of control is 1/n of the pixel precision, the precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of the pixel precision, the P pixel units are some or all of the pixel units of the current image block, the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit, in a reference image, from a corresponding pixel unit, W, n, and N are integers greater than 1, N is greater than n, and P is a positive integer; and performing interpolation filtering on a pixel of the corresponding reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a predicted pixel value of each of the P pixel units, where Q is an integer greater than n.
[054] Referindo-se à Figura 2-a, a Figura 2-a é um fluxograma esquemático de um método de previsão de imagem de acordo com uma modalidade da presente invenção. Em um exemplo mostrado na Figura 2-a, o método de previsão de imagem fornecido nessa modalidade da presente invenção pode incluir as etapas a seguir.[054] Referring to Figure 2-a, Figure 2-a is a schematic flowchart of an image prediction method in accordance with an embodiment of the present invention. In an example shown in Figure 2-a, the image prediction method provided in this embodiment of the present invention may include the following steps.
[055] 201. Determinar vetores de movimento de W pontos de controle em um bloco de imagem atual.[055] 201. Determine motion vectors of W control points in a current image block.
[056] 202. Obter, por meio de cálculo, vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle.[056] 202. Obtain, through calculation, movement vectors of P pixel units of the current image block using a movement model and the movement vectors of W control points.
[057] As P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual.[057] P pixel units are some or all of the pixel units of the current image block.
[058] Um vetor de movimento de cada uma das P unidades de pixel é utilizado para determinar uma unidade de pixel de referência correspondente, em uma imagem de referência, de uma unidade de pixel correspondente. Portanto, o vetor de movimento de cada uma das P unidades de pixel pode ser utilizado para determinar a unidade de pixel de referência correspondente, na imagem de referência, da unidade de pixel correspondente.[058] A motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit, in a reference image, from a corresponding pixel unit. Therefore, the motion vector of each of the P pixel units can be used to determine the corresponding reference pixel unit, in the reference image, of the corresponding pixel unit.
[059] A precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel.[059] The precision of the movement vectors determined from the W control points is 1/n of the pixel precision.
[060] A precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel.[060] The precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of the pixel precision.
[061] W, n, e N são números inteiros maiores que 1.[061] W, n, and N are integers greater than 1.
[062] N é maior que n. P é um número inteiro positivo.[062] N is greater than n. P is a positive integer.
[063] Devido ao fato de N ser maior que n, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é mais alta que a precisão dos vetores de movimento determinados dos W pontos de controle. Ou seja, os vetores de movimento de precisão mais alta das P unidades de pixel do bloco de imagem atual são obtidos.[063] Due to the fact that N is greater than n, the precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is higher than the precision of the motion vectors determined from the W control points. That is, the highest precision motion vectors of the P pixel units of the current image block are obtained.
[064] Em algumas implementações possíveis da presente invenção, os vetores de movimento dos W pontos de controle são previstos com base em um vetor de movimento, cuja precisão é 1/n da precisão de pixel, de um bloco de imagem codificado ou um bloco de imagem decodificado que circunda o bloco de imagem atual.[064] In some possible implementations of the present invention, the motion vectors of the W control points are predicted based on a motion vector, the precision of which is 1/n of the pixel precision, of a coded image block or a block decoded image block surrounding the current image block.
[065] Em um exemplo mostrado na Figura 2-b, os W pontos de controle incluem um ponto de controle LT, um ponto de controle RT, e um ponto de controle LB. Um vetor de movimento do ponto de controle LT pode ser previsto com base nos vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos blocos de imagem A, B e C. Um vetor de movimento do ponto de controle RT pode ser previsto com base nos vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos blocos de imagem D e E. Um vetor de movimento do ponto de controle LB pode ser previsto com base nos vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos blocos de imagem F e G.[065] In an example shown in Figure 2-b, the W control points include an LT control point, an RT control point, and an LB control point. An LT control point motion vector can be predicted based on the motion vectors, whose precision is 1/n of the pixel precision, of image blocks A, B, and C. An RT control point motion vector can be predicted based on the motion vectors, whose precision is 1/n of the pixel precision, of image blocks D and E. A motion vector of control point LB can be predicted based on the motion vectors, whose precision is 1/n of pixel precision, of image blocks F and G.
[066] Em algumas implementações possíveis da presente invenção, quando os vetores de movimento dos W pontos de controle são baseados em valores previstos, a precisão dos valores previstos também é 1/n da precisão de pixel, e as diferenças entre os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos pontos de controle e os valores previstos correspondentes podem ser gravados em um fluxo de bits.[066] In some possible implementations of the present invention, when the motion vectors of the W control points are based on predicted values, the precision of the predicted values is also 1/n of the pixel precision, and the differences between the motion vectors , whose precision is 1/n of the pixel precision, the control points and corresponding predicted values can be written to a bit stream.
[067] Em algumas implementações possíveis da presente invenção, o modelo de movimento pode ser, por exemplo, um modelo de movimento translacional, um modelo de movimento de função afim, um modelo de movimento rotacional, um modelo de movimento parabólico, um modelo de movimento cisalhante, um modelo de movimento de ampliação, um modelo de movimento perspectivo ou um modelo de movimento bilinear.[067] In some possible implementations of the present invention, the motion model may be, for example, a translational motion model, an affine function motion model, a rotational motion model, a parabolic motion model, a shear motion, a magnifying motion model, a perspective motion model, or a bilinear motion model.
[068] 203. Realizar a filtragem de interpolação em um pixel de uma unidade de pixel de referência, em uma imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q, para obter um valor de pixel previsto de cada uma das P unidades de pixel.[068] 203. Perform interpolation filtering on a pixel of a reference pixel unit, in a reference image, of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a predicted pixel value of each of the P pixel units.
[069] Q é um número inteiro maior que n.[069] Q is an integer greater than n.
[070] Em algumas implementações possíveis da presente invenção, um valor de N pode ser um valor fixo predefinido, e Q pode ser menor ou igual a N. Quando o valor de N pode ser um valor fixo predefinido, o mesmo indica que a precisão dos vetores de movimento, obtida por meio de cálculo utilizando-se o modelo de movimento e os vetores de movimento dos W pontos de controle, das P unidades de pixel do bloco de imagem atual é relacionado de modo desnecessário a um tamanho do bloco de imagem atual. Em outras palavras, por exemplo, com base na solução dessa modalidade, o valor de pixel previsto com uma precisão fixa predefinida pode ser obtido sem um processo intermediário para obter um valor de pixel previsto de precisão mais baixa realizando-se a filtragem de interpolação de precisão mais baixa.[070] In some possible implementations of the present invention, a value of N may be a predefined fixed value, and Q may be less than or equal to N. When the value of N may be a predefined fixed value, it indicates that the accuracy of the motion vectors, obtained through calculation using the motion model and the motion vectors of the W control points, of the P pixel units of the current image block is unnecessarily related to a size of the image block current. In other words, for example, based on the solution of this embodiment, the predicted pixel value with a predefined fixed precision can be obtained without an intermediate process to obtain a predicted pixel value of lower precision by performing interpolation filtering. lower accuracy.
[071] Por exemplo, W pode ser igual a 2, 3, 4, 5, 6, 8, ou outro valor.[071] For example, W can be equal to 2, 3, 4, 5, 6, 8, or another value.
[072] Por exemplo, P pode ser igual a 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64, ou outro valor.[072] For example, P may be equal to 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64, or another value.
[073] Por exemplo, Q pode ser igual a 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, ou outro valor.[073] For example, Q may be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, or another value.
[074] Por exemplo, N pode ser igual a 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, ou outro valor.[074] For example, N may be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, or another value.
[075] Por exemplo, n pode ser igual a 8, 2, 4, ou outro valor.[075] For example, n can be equal to 8, 2, 4, or another value.
[076] Em algumas implementações possíveis da presente invenção, N pode ser uma potência integral de 2 ou, certamente, N pode ser outro número inteiro positivo.[076] In some possible implementations of the present invention, N may be an integral power of 2 or, certainly, N may be another positive integer.
[077] Uma unidade de pixel nas modalidades da presente invenção pode incluir um ou mais pixels. Por exemplo, a unidade de pixel pode ser um bloco de pixel de 2 x 2, um bloco de pixel de 2 x 1, um bloco de pixel de 2 x 1, um bloco de pixel de 4 x 4 ou um bloco de pixel de 4 x 2.[077] A pixel unit in embodiments of the present invention may include one or more pixels. For example, the pixel unit may be a 2x2 pixel block, a 2x1 pixel block, a 2x1 pixel block, a 4x4 pixel block, or a 2x1 pixel block. 4 x 2.
[078] Um ponto de controle nas modalidades da presente invenção pode incluir um ou mais pixels. Por exemplo, o ponto de controle pode ser um bloco de pixel de 2 x 2, um bloco de pixel de 2 x 1, um bloco de pixel de 2 x 1, um bloco de pixel de 4 x 4 ou um bloco de pixel de 4 x 2.[078] A control point in embodiments of the present invention may include one or more pixels. For example, the control point can be a 2x2 pixel block, a 2x1 pixel block, a 2x1 pixel block, a 4x4 pixel block, or a 2x1 pixel block. 4 x 2.
[079] Pode-se compreender a partir daquilo mencionado anteriormente que, no método de previsão de imagem fornecido nessa modalidade, o vetor de movimento, cuja precisão é 1/N da precisão de pixel, de cada unidade de pixel do bloco de imagem atual é obtido por meio de cálculo utilizando-se o modelo de movimento e os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos W pontos de controle, em que N é maior que n. Em outras palavras, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada unidade de pixel do bloco de imagem atual é mais alta que a precisão dos vetores de movimento determinados dos W pontos de controle. O vetor de movimento de precisão mais alta é obtido primeiro. Portanto, o vetor de movimento de precisão mais alta de cada unidade de pixel do bloco de imagem atual é utilizado para determinar a unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual, e a filtragem de interpolação é realizada no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual utilizando-se o filtro de interpolação com a fase de Q (Q é maior que n), para obter o valor de pixel previsto de cada unidade de pixel do bloco de imagem atual. Pode-se compreender que a maneira anteriormente mencionada auxilia na redução de uma quantidade de filtragem de interpolação exigida para se obter, por meio de previsão, o valor de pixel previsto de precisão mais alta do bloco de imagem atual (por exemplo, um processo intermediário para se obter o valor de pixel previsto de precisão mais baixa realizando-se uma filtragem de interpolação de precisão mais baixa pode não ser exigido), de modo a reduzir uma quantidade de caches intermediários e operações de memória que são exigidos para a filtragem de interpolação durante um processo de previsão de imagem, e reduzir a complexidade de cálculo durante o processo de previsão de imagem.[079] It can be understood from the aforementioned that in the image prediction method provided in this embodiment, the motion vector, whose precision is 1/N of the pixel precision, of each pixel unit of the current image block is obtained through calculation using the motion model and motion vectors, whose precision is 1/n of the pixel precision, of the W control points, where N is greater than n. In other words, the precision of the motion vector that is obtained through calculation and that belongs to each pixel unit of the current image block is higher than the precision of the motion vectors determined from the W control points. The highest precision motion vector is obtained first. Therefore, the highest precision motion vector of each pixel unit of the current image block is used to determine the corresponding reference pixel unit, in the reference image, of each pixel unit of the current image block, and the Interpolation filtering is performed on the corresponding reference pixel unit pixel in the reference image of each pixel unit of the current image block using the interpolation filter with the phase of Q (Q is greater than n), to obtain the predicted pixel value of each pixel unit of the current image block. It can be understood that the aforementioned manner assists in reducing an amount of interpolation filtering required to obtain, through prediction, the highest precision predicted pixel value of the current image block (e.g., an intermediate process to obtain the lower precision predicted pixel value performing lower precision interpolation filtering may not be required), so as to reduce the amount of intermediate caches and memory operations that are required for interpolation filtering during an image prediction process, and reduce the calculation complexity during the image prediction process.
[080] Em algumas implementações possíveis da presente invenção, um componente horizontal ou um componente vertical de um dos vetores de movimento dos W pontos de controle é amplificado N vezes no modelo de movimento utilizando-se N, ou uma diferença de componente entre vetores de movimento de quaisquer dois dentre os W pontos de controle é amplificada N vezes no modelo de movimento utilizando-se N.[080] In some possible implementations of the present invention, a horizontal component or a vertical component of one of the motion vectors of the W control points is amplified N times in the motion model using N, or a component difference between control vectors Motion of any two of the W control points is amplified N times in the motion model using N.
[081] Por exemplo, em algumas implementações possíveis da presente invenção, o modelo de movimento pode ser representado, conforme a seguir, quando W é igual a 2: ou em que L representa uma largura ou uma altura do bloco de imagem atual, (v0x,v0y) e (v1x,v1y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de dois pontos de controle, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[081] For example, in some possible implementations of the present invention, the movement model can be represented, as follows, when W is equal to 2: or where L represents a width or a height of the current image block, (v0x,v0y) and (v1x,v1y) represent motion vectors, whose precision is 1/n of the pixel precision, of two control points, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[082] Como outro exemplo, em algumas implementações possíveis da presente invenção, o modelo de movimento pode ser representado, conforme a seguir, quando W é igual a 3: ou em que vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, (v0x,v0y) , (v1x,v1y) , e (v2x,v2y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de três pontos de controle, w representa uma largura do bloco de imagem atual, e h representa uma altura do bloco de imagem atual.[082] As another example, in some possible implementations of the present invention, the movement model can be represented, as follows, when W is equal to 3: or where vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, vNy represents a vertical component of the vector movement, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, (v0x,v0y) , (v1x,v1y) , and (v2x,v2y) ) represent motion vectors, whose precision is 1/n of the pixel precision, of three control points, w represents a width of the current image block, and h represents a height of the current image block.
[083] Os exemplos supracitados são descritos utilizando- se o modelo de movimento de função afim. Quando um modelo de movimento translacional, um modelo de movimento rotacional, um modelo de movimento cisalhante, um modelo de movimento de ampliação, um modelo de movimento perspectivo, um modelo de movimento parabólico, um modelo de movimento bilinear ou semelhante é utilizado, pode-se fazer referência aos exemplos supracitados. Os detalhes não serão descritos novamente no presente documento.[083] The aforementioned examples are described using the affine function movement model. When a translational motion model, a rotational motion model, a shear motion model, a widening motion model, a perspective motion model, a parabolic motion model, a bilinear motion model, or the like is used, it may be reference to the examples mentioned above. Details will not be described again in this document.
[084] Por exemplo, uma forma de representação geral de um modelo de movimento pode ser conforme a seguir: , em que a precisão de um vetor de movimento (vix,viy) de um ponto de controle é 1/n da precisão de pixel, e para equilibrar um efeito e sobrecarga de bits, um valor de n pode ser ajustado para 4; N pode representar uma fase predefinida de um filtro; representa valores de coordenada de qualquer unidade de pixel em um bloco de imagem; e vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[084] For example, a general representation of a movement model may be as follows: , where the precision of a motion vector (vix,viy) of a control point is 1/n of the pixel precision, and to balance an effect and bit overhead, a value of n can be set to 4; N can represent a predefined phase of a filter; represents coordinate values of any pixel unit in an image block; and vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, and vNy represents a vertical component of the vector movement, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[085] Opcionalmente, em algumas implementações possíveis da presente invenção, a determinação da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel pode incluir: obter, por meio de cálculo, uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; e pesquisar, utilizando-se o vetor de movimento de cada uma das P unidades de pixel, a imagem de referência para uma unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel, em que a unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel e que é encontrada na imagem de referência é a unidade de pixel de referência, na imagem de referência, de cada uma das P unidades de pixel.[085] Optionally, in some possible implementations of the present invention, determining the corresponding reference pixel unit, in the reference image, of each of the P pixel units using the motion vector of each of the P units of pixel may include: obtaining, by calculation, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units; and searching, using the motion vector of each of the P pixel units, the reference image for a reference pixel unit that corresponds to the entire pixel location of each of the P pixel units, wherein the unit of reference pixel that corresponds to the entire pixel location of each of the P pixel units and that is found in the reference image is the reference pixel unit, in the reference image, of each of the P pixel units.
[086] Especificamente, por exemplo, uma localização de pixel inteiro de uma unidade de pixel i pode ser obtida por meio de cálculo utilizando-se um vetor de movimento da unidade de pixel i das P unidades de pixel, e a imagem de referência pode ser pesquisada, utilizando-se o vetor de movimento da unidade de pixel i, para uma unidade de pixel de referência que corresponde à localização de pixel inteiro da unidade de pixel i, em que a unidade de pixel de referência que corresponde à localização de pixel inteiro da unidade de pixel i e que é encontrada na imagem de referência é uma unidade de pixel de referência, na imagem de referência, da unidade de pixel i. A unidade de pixel i pode ser qualquer uma dentre as P unidades de pixel. Por exemplo, a unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel pode ser determinada de acordo com um modo semelhante àquele da determinação da unidade de pixel de referência, na imagem de referência, da unidade de pixel i.[086] Specifically, for example, an integer pixel location of a pixel unit i can be obtained by calculating using a motion vector of the pixel unit i of the P pixel units, and the reference image can be searched, using the motion vector of pixel unit i, for a reference pixel unit that corresponds to the integer pixel location of pixel unit i, where the reference pixel unit that corresponds to the pixel location integer of pixel unit i and which is found in the reference image is a reference pixel unit, in the reference image, of pixel unit i. Pixel unit i can be any one of P pixel units. For example, the corresponding reference pixel unit in the reference image of each of the P pixel units may be determined in a manner similar to that of determining the reference pixel unit in the reference image of the P pixel unit. of pixel i.
[087] Em algumas implementações possíveis da presente invenção, a obtenção, por meio de cálculo, de uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, a localização de pixel inteiro de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, (xInt, yInt) representa coordenadas de localização de pixel inteiro de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[087] In some possible implementations of the present invention, obtaining, through calculation, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units includes: obtain, through calculation, the entire pixel location of each of the P pixel units, according to the following formula, using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, (xInt, yInt) represents integer pixel location coordinates of a pixel unit with coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the (x, y) coordinates in the current image block.
[088] Em algumas implementações possíveis da presente invenção, a realização da filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q inclui: obter, por meio de cálculo, uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; determinar, com base na fase de cada unidade de pixel, o filtro de interpolação com a fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e realizar a filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel correspondente.[088] In some possible implementations of the present invention, performing interpolation filtering on a pixel of the corresponding reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q includes: obtaining, through calculation, a phase of each of the P pixel units using the motion vector of each of the P pixel units; determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the corresponding pixel unit.
[089] Especificamente, por exemplo, uma fase da unidade de pixel i pode ser obtida por meio de cálculo utilizando- se o vetor de movimento da unidade de pixel i das P unidades de pixel; um filtro de interpolação com uma fase de Q que corresponde à unidade de pixel i pode ser determinado com base na fase da unidade de pixel i, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e a filtragem de interpolação pode ser realizada em um pixel da unidade de pixel de referência correspondente, na imagem de referência, da unidade de pixel i utilizando- se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel i. A unidade de pixel i pode ser qualquer uma dentre as P unidades de pixel. Por exemplo, a filtragem de interpolação pode ser realizada em cada uma das P unidades de pixel de acordo com um modo semelhante àquele da realização da filtragem de interpolação na unidade de pixel i.[089] Specifically, for example, a phase of pixel unit i can be obtained by calculation using the motion vector of pixel unit i of P pixel units; an interpolation filter with a phase of Q corresponding to pixel unit i can be determined based on the phase of pixel unit i, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and interpolation filtering can be performed on a pixel of the corresponding reference pixel unit, in the reference image, of pixel unit i using the interpolation filter determined with the phase of Q that corresponds to pixel unit i. Pixel unit i can be any one of P pixel units. For example, interpolation filtering may be performed on each of P pixel units in a manner similar to that of performing interpolation filtering on pixel unit i.
[090] Em algumas implementações possíveis da presente invenção, a obtenção, por meio de cálculo, de uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, a fase de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, X' representa uma fase horizontal de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, Y' representa uma fase vertical da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[090] In some possible implementations of the present invention, obtaining, through calculation, a phase of each of the P pixel units using the motion vector of each of the P pixel units includes: obtaining, by means of calculation, the phase of each of the P pixel units, according to the following formula, using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, X' represents a horizontal phase of a pixel unit with coordinates of (x, y) in the current image block, Y' represents a vertical phase of the unit pixel with the coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y ) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[091] Opcionalmente, em algumas implementações possíveis da presente invenção, a fase inclui uma fase horizontal e uma fase vertical; e a determinação, com base na fase de cada unidade de pixel, do filtro de interpolação com a fase de Q que corresponde à unidade de pixel inclui: determinar, com base na fase horizontal de cada unidade de pixel, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel correspondente; e determinar, com base na fase vertical de cada unidade de pixel, um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical.[091] Optionally, in some possible implementations of the present invention, the phase includes a horizontal phase and a vertical phase; and determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the pixel unit includes: determining, based on the horizontal phase of each pixel unit, a horizontal interpolation filter with a phase of Q corresponding to the corresponding pixel unit; and determining, based on the vertical phase of each pixel unit, a vertical interpolation filter with a phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase, and A filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase.
[092] Especificamente, por exemplo, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel i pode ser determinado com base em uma fase horizontal da unidade de pixel i, e um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel i pode ser determinado com base em uma fase vertical da unidade de pixel i, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal da unidade de pixel i, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical da unidade de pixel i. A unidade de pixel i pode ser qualquer uma dentre as P unidades de pixel. Por exemplo, o filtro de interpolação com a fase de Q que corresponde a cada uma dentre as P unidades de pixel pode ser determinado de acordo com um modo semelhante àquele da determinação do filtro de interpolação com a fase de Q que corresponde à unidade de pixel i.[092] Specifically, for example, a horizontal interpolation filter with a phase of Q corresponding to pixel unit i can be determined based on a horizontal phase of pixel unit i, and a vertical interpolation filter with a phase of Q corresponding to pixel unit i can be determined based on a vertical phase of pixel unit i, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase of pixel unit i, and a filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase of pixel unit i. Pixel unit i can be any one of P pixel units. For example, the interpolation filter with the Q phase corresponding to each of the P pixel units can be determined in a manner similar to that of determining the interpolation filter with the Q phase corresponding to the pixel unit. i.
[093] Opcionalmente, em algumas implementações possíveis da presente invenção, a realização da filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel inclui: realizar a filtragem de interpolação horizontal no pixel da unidade de pixel de referência correspondente, na imagem de referência, da unidade de pixel i utilizando-se o filtro de interpolação horizontal determinado com a fase de Q que corresponde à unidade de pixel i, para obter um resultado de filtragem de interpolação horizontal; e realizar a filtragem de interpolação vertical no resultado de filtragem de interpolação horizontal utilizando-se o filtro de interpolação vertical determinado com a fase de Q que corresponde à unidade de pixel i, para obter um valor de pixel previsto da unidade de pixel i, em que a unidade de pixel i é qualquer uma dentre as P unidades de pixel; ou realizar a filtragem de interpolação vertical em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel j utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um resultado de filtragem de interpolação vertical; e realizar a filtragem de interpolação horizontal no resultado de filtragem de interpolação vertical utilizando-se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um valor de pixel previsto da unidade de pixel j, em que a unidade de pixel j é qualquer uma dentre as P unidades de pixel.[093] Optionally, in some possible implementations of the present invention, performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the pixel unit includes: performing horizontal interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of pixel unit i using the horizontal interpolation filter determined with the phase of Q which corresponds to pixel unit i, to obtain a horizontal interpolation filtering result; and performing vertical interpolation filtering on the horizontal interpolation filtering result using the vertical interpolation filter determined with the phase of Q corresponding to pixel unit i, to obtain a predicted pixel value of pixel unit i, in that pixel unit i is any one of P pixel units; or perform vertical interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a pixel unit j using a vertical interpolation filter determined with a phase of Q that corresponds to the pixel unit j, to obtain a vertical interpolation filtering result; and performing horizontal interpolation filtering on the vertical interpolation filtering result using a determined horizontal interpolation filter with a phase of Q corresponding to pixel unit j, to obtain a predicted pixel value of pixel unit j, in that pixel unit j is any one of P pixel units.
[094] Além disso, se uma unidade de pixel tiver apenas uma fase (ou seja, tem apenas uma fase horizontal ou uma fase vertical), a filtragem de interpolação precisa ser realizada em um pixel de uma unidade de pixel de referência da unidade de pixel apenas uma vez, para se obter um valor de pixel previsto da unidade de pixel.[094] Additionally, if a pixel unit has only one phase (i.e., has only one horizontal phase or one vertical phase), interpolation filtering needs to be performed on one pixel of a reference pixel unit of the pixel only once, to obtain a predicted pixel value from the pixel unit.
[095] Opcionalmente, em algumas implementações possíveis da presente invenção, a determinação dos vetores de movimento de W pontos de controle em um bloco de imagem atual inclui: determinar os W pontos de controle no bloco de imagem atual, e determinar um conjunto de unidades de informações de movimento candidatas que corresponde à cada um dentre os W pontos de controle, em que o conjunto de unidades de informações de movimento candidatas que corresponde à cada ponto de controle inclui pelo menos uma unidade de informações de movimento candidatas; determinar um conjunto de unidades de informações de movimento combinadas e que inclui W unidades de informações de movimento, em que cada unidade de informações de movimento no conjunto de unidades de informações de movimento combinadas e é selecionada a partir de pelo menos algumas unidades de informações de movimento no conjunto de unidades de informações de movimento candidatas que corresponde à cada um dentre os W pontos de controle, e cada unidade de informações de movimento combinadas no conjunto de unidades de informações de movimento combinadas e inclui um vetor de movimento; e realizar a previsão ou a estimação de movimento em W vetores de movimento no conjunto de unidades de informações de movimento combinadas e para obter os vetores de movimento dos W pontos de controle, ou utilizar os W vetores de movimento incluídos no conjunto de unidades de informações de movimento combinadas e como os vetores de movimento dos W pontos de controle.[095] Optionally, in some possible implementations of the present invention, determining the motion vectors of W control points in a current image block includes: determining the W control points in the current image block, and determining a set of units of candidate motion information corresponding to each of the W control points, wherein the set of candidate motion information units corresponding to each control point includes at least one candidate motion information unit; determine a set of combined motion information units and which includes W motion information units, wherein each motion information unit in the set of combined motion information units and is selected from at least some motion information units. movement in the set of candidate motion information units corresponding to each of the W control points, and each combined motion information unit in the set of combined motion information units and includes a motion vector; and perform motion prediction or estimation on W motion vectors in the set of combined motion information units and to obtain the motion vectors of the W control points, or use the W motion vectors included in the set of information units combined motion vectors and as the motion vectors of the W control points.
[096] Em algumas implementações possíveis da presente invenção, a precisão de cada vetor de movimento no conjunto de unidades de informações de movimento candidatas pode ser 1/n da precisão de pixel.[096] In some possible implementations of the present invention, the precision of each motion vector in the set of candidate motion information units may be 1/n of the pixel precision.
[097] O método de previsão de imagem pode ser aplicado a um processo de codificação de vídeo, ou o método de previsão de imagem pode ser aplicado a um processo de decodificação de vídeo.[097] The image prediction method can be applied to a video coding process, or the image prediction method can be applied to a video decoding process.
[098] Para se compreender melhor as soluções técnicas das modalidades da presente invenção, a seguir fornece-se descrições a partir das perspectivas de um lado de codificador e de um lado de decodificador utilizando-se exemplos.[098] To better understand the technical solutions of the embodiments of the present invention, the following descriptions are provided from the perspectives of an encoder side and a decoder side using examples.
[099] A seguir descreve-se primeiro uma solução a partir de uma perspectiva de um lado de codificador.[099] The following first describes a solution from an encoder-side perspective.
[100] Referindo-se à Figura 3-a, a Figura 3-a é um fluxograma esquemático de outro método de previsão de imagem de acordo com outra modalidade da presente invenção. Em um exemplo mostrado na Figura 3-a, o outro método de previsão de imagem fornecido na outra modalidade da presente invenção pode incluir as etapas a seguir.[100] Referring to Figure 3-a, Figure 3-a is a schematic flowchart of another image prediction method in accordance with another embodiment of the present invention. In an example shown in Figure 3-a, the other image prediction method provided in the other embodiment of the present invention may include the following steps.
[101] 301. Um aparelho de codificação de vídeo determina W pontos de controle em um bloco de imagem atual.[101] 301. A video coding apparatus determines W control points in a current image block.
[102] 302. O aparelho de codificação de vídeo determina vetores de movimento dos W pontos de controle.[102] 302. The video coding apparatus determines motion vectors of the W control points.
[103] A determinação, através do aparelho de codificação de vídeo, dos vetores de movimento dos W pontos de controle pode incluir: determinar um conjunto de unidades de informações de movimento candidatas que corresponde à cada um dentre os W pontos de controle, em que a unidade de informações de movimento candidatas que corresponde à cada conjunto de pontos de controle inclui pelo menos uma unidade de informações de movimento candidatas; determinar um conjunto de unidades de informações de movimento combinadas e que inclui W unidades de informações de movimento, em que cada unidade de informações de movimento no conjunto de unidades de informações de movimento combinadas e é selecionada a partir de pelo menos algumas unidades de informações de movimento no conjunto de unidades de informações de movimento candidatas que corresponde à cada um dentre os W pontos de controle, e cada unidade de informações de movimento combinadas no conjunto de unidades de informações de movimento combinadas e inclui um vetor de movimento; e realizar a previsão ou a estimação de movimento em W vetores de movimento no conjunto de unidades de informações de movimento combinadas e para obter os vetores de movimento dos W pontos de controle, ou utilizar W vetores de movimento incluídos no conjunto de unidades de informações de movimento combinadas e como os vetores de movimento dos W pontos de controle.[103] Determining, through the video coding apparatus, the motion vectors of the W control points may include: determining a set of candidate motion information units that correspond to each of the W control points, wherein the candidate motion information unit corresponding to each set of control points includes at least one candidate motion information unit; determine a set of combined motion information units and which includes W motion information units, wherein each motion information unit in the set of combined motion information units and is selected from at least some motion information units. movement in the set of candidate motion information units corresponding to each of the W control points, and each combined motion information unit in the set of combined motion information units and includes a motion vector; and perform motion prediction or estimation on W motion vectors in the set of combined motion information units and to obtain the motion vectors of W control points, or use W motion vectors included in the set of motion information units combined motion and as the motion vectors of the W control points.
[104] Em algumas implementações possíveis da presente invenção, a precisão de cada vetor de movimento no conjunto de unidades de informações de movimento candidatas pode ser 1/n da precisão de pixel.[104] In some possible implementations of the present invention, the precision of each motion vector in the set of candidate motion information units may be 1/n of the pixel precision.
[105] 303. O aparelho de codificação de vídeo obtém, por meio de cálculo, os vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle.[105] 303. The video coding apparatus obtains, through calculation, the motion vectors of P pixel units of the current image block using a motion model and the motion vectors of W control points.
[106] P é um número inteiro positivo, e W e N são números inteiros maiores que 1.[106] P is a positive integer, and W and N are integers greater than 1.
[107] As P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual.[107] P pixel units are some or all of the pixel units of the current image block.
[108] Um vetor de movimento de cada uma das P unidades de pixel é utilizado para determinar uma unidade de pixel de referência correspondente, em uma imagem de referência, de uma unidade de pixel correspondente. Portanto, o vetor de movimento de cada uma das P unidades de pixel pode ser utilizado para determinar a unidade de pixel de referência correspondente, na imagem de referência, da unidade de pixel correspondente.[108] A motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit, in a reference image, from a corresponding pixel unit. Therefore, the motion vector of each of the P pixel units can be used to determine the corresponding reference pixel unit, in the reference image, of the corresponding pixel unit.
[109] A precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel.[109] The precision of the motion vectors determined from the W control points is 1/n of the pixel precision.
[110] A precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel.[110] The precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of the pixel precision.
[111] W, n, e N são números inteiros maiores que 1.[111] W, n, and N are integers greater than 1.
[112] N é maior que n. P é um número inteiro positivo.[112] N is greater than n. P is a positive integer.
[113] Devido ao fato de N ser maior que n, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é maior que a precisão dos vetores de movimento determinados dos W pontos de controle. Ou seja, os vetores de movimento de precisão mais alta das P unidades de pixel do bloco de imagem atual são obtidos.[113] Due to the fact that N is greater than n, the precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is greater than the precision of the motion vectors determined from the W points of control. That is, the highest precision motion vectors of the P pixel units of the current image block are obtained.
[114] Em algumas implementações possíveis da presente invenção, os vetores de movimento dos W pontos de controle são previstos com base em um vetor de movimento, cuja precisão é 1/n da precisão de pixel, de um bloco de imagem codificado ou um bloco de imagem decodificado que circunda o bloco de imagem atual.[114] In some possible implementations of the present invention, the motion vectors of the W control points are predicted based on a motion vector, the precision of which is 1/n of the pixel precision, of a coded image block or a decoded image block surrounding the current image block.
[115] Em algumas implementações possíveis da presente invenção, quando os vetores de movimento dos W pontos de controle são baseados em valores previstos, a precisão dos valores previstos também é 1/n da precisão de pixel, e as diferenças entre os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos pontos de controle e os valores previstos correspondentes podem ser gravados em um fluxo de bits. De modo correspondente, os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos W pontos de controle podem ser obtidos, por meio de previsão, em um lado de decodificador utilizando-se a diferença prevista entre os W vetores de movimento e o vetor de movimento previsto e utilizando-se o vetor de movimento, cuja precisão é 1/n da precisão de pixel, do bloco de imagem decodificado que circunda o bloco de imagem atual, em que a diferença prevista é obtida a partir do fluxo de bits.[115] In some possible implementations of the present invention, when the motion vectors of the W control points are based on predicted values, the precision of the predicted values is also 1/n of the pixel precision, and the differences between the motion vectors , whose precision is 1/n of the pixel precision, the control points and corresponding predicted values can be written to a bit stream. Correspondingly, the motion vectors, whose precision is 1/n of the pixel precision, of the W control points can be obtained, through prediction, on a decoder side using the predicted difference between the W control vectors. motion and the predicted motion vector and using the motion vector, whose precision is 1/n of the pixel precision, of the decoded image block surrounding the current image block, where the predicted difference is obtained from the bit stream.
[116] Em algumas implementações possíveis da presente invenção, o modelo de movimento pode ser, por exemplo, um modelo de movimento translacional, um modelo de movimento de função afim, um modelo de movimento rotacional, um modelo de movimento parabólico, um modelo de movimento cisalhante, um modelo de movimento de ampliação, um modelo de movimento perspectivo ou um modelo de movimento bilinear.[116] In some possible implementations of the present invention, the motion model may be, for example, a translational motion model, an affine function motion model, a rotational motion model, a parabolic motion model, a shear motion, a magnifying motion model, a perspective motion model, or a bilinear motion model.
[117] Por exemplo, em algumas implementações possíveis da presente invenção, o modelo de movimento pode ser representado, conforme a seguir, quando W é igual a 2: ou , em que L representa uma largura ou uma altura do bloco de imagem atual, (v0x,v0y) e (v1x,v1y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de dois pontos de controle, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[117] For example, in some possible implementations of the present invention, the motion model can be represented as follows when W is equal to 2: or , where L represents a width or a height of the current image block, (v0x,v0y) and (v1x,v1y) represent motion vectors, whose precision is 1/n of the pixel precision, of two control points, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector , whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[118] Como outro exemplo, em algumas implementações possíveis da presente invenção, o modelo de movimento pode ser representado, conforme a seguir, quando W é igual a 3: ou em que vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, (v0x,v0y) , (v1x,v1y) , e (v2x,v2y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de três pontos de controle, w representa uma largura do bloco de imagem atual, e h representa uma altura do bloco de imagem atual.[118] As another example, in some possible implementations of the present invention, the motion model can be represented, as follows, when W is equal to 3: or where vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, vNy represents a vertical component of the vector movement, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, (v0x,v0y) , (v1x,v1y) , and (v2x,v2y) ) represent motion vectors, whose precision is 1/n of the pixel precision, of three control points, w represents a width of the current image block, and h represents a height of the current image block.
[119] Os exemplos supracitados são descritos utilizando- se o modelo de movimento de função afim. Quando um modelo de movimento translacional, um modelo de movimento rotacional, um modelo de movimento cisalhante, um modelo de movimento de ampliação, um modelo de movimento perspectivo, um modelo de movimento parabólico, um modelo de movimento bilinear ou semelhante é utilizado, pode-se fazer referência aos exemplos supracitados. Os detalhes não serão descritos novamente no presente documento.[119] The aforementioned examples are described using the affine function movement model. When a translational motion model, a rotational motion model, a shear motion model, a widening motion model, a perspective motion model, a parabolic motion model, a bilinear motion model, or the like is used, it may be reference to the examples mentioned above. Details will not be described again in this document.
[120] 304. O aparelho de codificação de vídeo determina uma unidade de pixel de referência correspondente, em uma imagem de referência, de cada uma das P unidades de pixel utilizando-se um vetor de movimento de cada uma das P unidades de pixel.[120] 304. The video coding apparatus determines a corresponding reference pixel unit, in a reference image, from each of the P pixel units using a motion vector from each of the P pixel units.
[121] Opcionalmente, em algumas implementações possíveis da presente invenção, a determinação de uma unidade de pixel de referência correspondente, em uma imagem de referência, de cada uma das P unidades de pixel utilizando-se um vetor de movimento de cada uma das P unidades de pixel pode incluir: obter, por meio de cálculo, uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; e pesquisar, utilizando-se o vetor de movimento de cada uma das P unidades de pixel, a imagem de referência para uma unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel, em que a unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel e que é encontrada na imagem de referência é a unidade de pixel de referência, na imagem de referência, de cada uma das P unidades de pixel.[121] Optionally, in some possible implementations of the present invention, determining a corresponding reference pixel unit, in a reference image, of each of the P pixel units using a motion vector of each of the P pixel units may include: obtaining, by calculation, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units; and searching, using the motion vector of each of the P pixel units, the reference image for a reference pixel unit that corresponds to the entire pixel location of each of the P pixel units, wherein the unit of reference pixel that corresponds to the entire pixel location of each of the P pixel units and that is found in the reference image is the reference pixel unit, in the reference image, of each of the P pixel units.
[122] Especificamente, por exemplo, uma localização de pixel inteiro de uma unidade de pixel i pode ser obtida por meio de cálculo utilizando-se um vetor de movimento da unidade de pixel i das P unidades de pixel, e a imagem de referência pode ser pesquisada, utilizando-se o vetor de movimento da unidade de pixel i, para uma unidade de pixel de referência que corresponde à localização de pixel inteiro da unidade de pixel i, em que a unidade de pixel de referência que corresponde à localização de pixel inteiro da unidade de pixel i e que é encontrada na imagem de referência é uma unidade de pixel de referência, na imagem de referência, da unidade de pixel i. A unidade de pixel i pode ser qualquer uma dentre as P unidades de pixel. Por exemplo, a unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel pode ser determinada de acordo com um modo semelhante àquele da determinação da unidade de pixel de referência, na imagem de referência, da unidade de pixel i.[122] Specifically, for example, an integer pixel location of pixel unit i can be obtained by calculation using a motion vector of pixel unit i of P pixel units, and the reference image can be searched, using the motion vector of pixel unit i, for a reference pixel unit that corresponds to the integer pixel location of pixel unit i, where the reference pixel unit that corresponds to the pixel location integer of pixel unit i and which is found in the reference image is a reference pixel unit, in the reference image, of pixel unit i. Pixel unit i can be any one of P pixel units. For example, the corresponding reference pixel unit in the reference image of each of the P pixel units may be determined in a manner similar to that of determining the reference pixel unit in the reference image of the P pixel unit. of pixel i.
[123] Em algumas implementações possíveis da presente invenção, a obtenção, por meio de cálculo, de uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, a localização de pixel inteiro de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, (xInt, yInt) representa coordenadas de localização de pixel inteiro de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[123] In some possible implementations of the present invention, obtaining, by calculation, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units includes: obtain, through calculation, the entire pixel location of each of the P pixel units, according to the following formula, using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, (xInt, yInt) represents integer pixel location coordinates of a pixel unit with coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the (x, y) coordinates in the current image block.
[124] Por exemplo, referindo-se à Figura 3-b, as caixas quadradas na Figura 3-b representam pixels em localizações de pixel inteiro adjacentes a uma localização atual, e os triângulos representam subpixels.[124] For example, referring to Figure 3-b, the square boxes in Figure 3-b represent pixels at full-pixel locations adjacent to a current location, and the triangles represent subpixels.
[125] 305. O aparelho de codificação de vídeo realiza a filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q, para obter um valor de pixel previsto de cada uma das P unidades de pixel.[125] 305. The video coding apparatus performs interpolation filtering on one pixel of the corresponding reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a predicted pixel value from each of the P pixel units.
[126] Q é um número inteiro maior que n.[126] Q is an integer greater than n.
[127] Em algumas implementações possíveis da presente invenção, um valor de N pode ser um valor fixo predefinido, e Q pode ser maior ou igual a N. Quando o valor de N pode ser um valor fixo predefinido, o mesmo indica que a precisão dos vetores de movimento, obtida por meio de cálculo utilizando-se o modelo de movimento e os vetores de movimento dos W pontos de controle, das P unidades de pixel do bloco de imagem atual é relacionado de modo desnecessário a um tamanho do bloco de imagem atual. Em outras palavras, por exemplo, com base na solução dessa modalidade, o valor de pixel previsto com uma precisão fixa predefinida pode ser obtido sem um processo intermediário para obter um valor de pixel previsto de precisão mais baixa realizando-se a filtragem de interpolação de precisão mais baixa.[127] In some possible implementations of the present invention, a value of N may be a predefined fixed value, and Q may be greater than or equal to N. When the value of N may be a predefined fixed value, it indicates that the accuracy of the motion vectors, obtained through calculation using the motion model and the motion vectors of the W control points, of the P pixel units of the current image block is unnecessarily related to a size of the image block current. In other words, for example, based on the solution of this embodiment, the predicted pixel value with a predefined fixed precision can be obtained without an intermediate process to obtain a predicted pixel value of lower precision by performing interpolation filtering. lower accuracy.
[128] Por exemplo, W pode ser igual a 2, 3, 4, 5, 6, 8, ou outro valor.[128] For example, W may be equal to 2, 3, 4, 5, 6, 8, or another value.
[129] Por exemplo, P pode ser igual a 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64, ou outro valor.[129] For example, P may be equal to 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64, or another value.
[130] Por exemplo, Q pode ser igual a 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, ou outro valor.[130] For example, Q may be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, or another value.
[131] Por exemplo, N pode ser igual a 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, ou outro valor.[131] For example, N may be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, or another value.
[132] Por exemplo, n pode ser igual a 8, 2, 4, ou outro valor.[132] For example, n can be equal to 8, 2, 4, or another value.
[133] Em algumas implementações possíveis da presente invenção, N pode ser uma potência integral de 2 ou, certamente, N pode ser outro número inteiro positivo.[133] In some possible implementations of the present invention, N may be an integral power of 2 or, certainly, N may be another positive integer.
[134] Em algumas implementações possíveis da presente invenção, a realização da filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q inclui: obter, por meio de cálculo, uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; determinar, com base na fase de cada unidade de pixel, o filtro de interpolação com a fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e realizar a filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel correspondente.[134] In some possible implementations of the present invention, performing interpolation filtering on a pixel of the corresponding reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q includes: obtaining, through calculation, a phase of each of the P pixel units using the motion vector of each of the P pixel units; determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the corresponding pixel unit.
[135] Especificamente, por exemplo, uma fase da unidade de pixel i pode ser obtida por meio de cálculo utilizando- se o vetor de movimento da unidade de pixel i das P unidades de pixel; um filtro de interpolação com uma fase de Q que corresponde à unidade de pixel i pode ser determinado com base na fase da unidade de pixel i, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e a filtragem de interpolação pode ser realizada em um pixel da unidade de pixel de referência correspondente, na imagem de referência, da unidade de pixel i utilizando- se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel i. A unidade de pixel i pode ser qualquer uma dentre as P unidades de pixel. Por exemplo, a filtragem de interpolação pode ser realizada em cada uma das P unidades de pixel de acordo com um modo semelhante àquele da realização da filtragem de interpolação na unidade de pixel i.[135] Specifically, for example, a phase of pixel unit i can be obtained by calculation using the motion vector of pixel unit i of P pixel units; an interpolation filter with a phase of Q corresponding to pixel unit i can be determined based on the phase of pixel unit i, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and interpolation filtering can be performed on a pixel of the corresponding reference pixel unit, in the reference image, of pixel unit i using the interpolation filter determined with the phase of Q that corresponds to pixel unit i. Pixel unit i can be any one of P pixel units. For example, interpolation filtering may be performed on each of P pixel units in a manner similar to that of performing interpolation filtering on pixel unit i.
[136] Em algumas implementações possíveis da presente invenção, a obtenção, por meio de cálculo, de uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, a fase de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, X' representa uma fase horizontal de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, Y' representa uma fase vertical da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[136] In some possible implementations of the present invention, obtaining, by calculation, a phase of each of the P pixel units using the motion vector of each of the P pixel units includes: obtaining, by means of calculation, the phase of each of the P pixel units, according to the following formula, using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, X' represents a horizontal phase of a pixel unit with coordinates of (x, y) in the current image block, Y' represents a vertical phase of the unit pixel with the coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y ) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[137] Opcionalmente, em algumas implementações possíveis da presente invenção, a fase inclui uma fase horizontal e uma fase vertical; e a determinação, com base na fase de cada unidade de pixel, do filtro de interpolação com a fase de Q que corresponde à unidade de pixel inclui: determinar, com base na fase horizontal de cada unidade de pixel, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel correspondente; e determinar, com base na fase vertical de cada unidade de pixel, um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical.[137] Optionally, in some possible implementations of the present invention, the phase includes a horizontal phase and a vertical phase; and determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the pixel unit includes: determining, based on the horizontal phase of each pixel unit, a horizontal interpolation filter with a phase of Q corresponding to the corresponding pixel unit; and determining, based on the vertical phase of each pixel unit, a vertical interpolation filter with a phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase, and A filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase.
[138] Especificamente, por exemplo, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel i pode ser determinado com base em uma fase horizontal da unidade de pixel i, e um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel i pode ser determinado com base em uma fase vertical da unidade de pixel i, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal da unidade de pixel i, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical da unidade de pixel i. A unidade de pixel i pode ser qualquer uma dentre as P unidades de pixel. Por exemplo, o filtro de interpolação com a fase de Q que corresponde a cada uma dentre as P unidades de pixel pode ser determinado de acordo com um modo semelhante àquele da determinação do filtro de interpolação com a fase de Q que corresponde à unidade de pixel i.[138] Specifically, for example, a horizontal interpolation filter with a phase of Q corresponding to pixel unit i can be determined based on a horizontal phase of pixel unit i, and a vertical interpolation filter with a phase of Q corresponding to pixel unit i can be determined based on a vertical phase of pixel unit i, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase of pixel unit i, and a filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase of pixel unit i. Pixel unit i can be any one of P pixel units. For example, the interpolation filter with the Q phase corresponding to each of the P pixel units can be determined in a manner similar to that of determining the interpolation filter with the Q phase corresponding to the pixel unit. i.
[139] Opcionalmente, em algumas implementações possíveis da presente invenção, a realização da filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel inclui: realizar a filtragem de interpolação horizontal no pixel da unidade de pixel de referência correspondente, na imagem de referência, da unidade de pixel i utilizando-se o filtro de interpolação horizontal determinado com a fase de Q que corresponde à unidade de pixel i, para obter um resultado de filtragem de interpolação horizontal; e realizar a filtragem de interpolação vertical no resultado de filtragem de interpolação horizontal utilizando-se o filtro de interpolação vertical determinado com a fase de Q que corresponde à unidade de pixel i, para obter um valor de pixel previsto da unidade de pixel i, em que a unidade de pixel i é qualquer uma dentre as P unidades de pixel; ou realizar a filtragem de interpolação vertical em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel j utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um resultado de filtragem de interpolação vertical; e realizar a filtragem de interpolação horizontal no resultado de filtragem de interpolação vertical utilizando-se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um valor de pixel previsto da unidade de pixel j, em que a unidade de pixel j é qualquer uma dentre as P unidades de pixel.[139] Optionally, in some possible implementations of the present invention, performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the pixel unit includes: performing horizontal interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of pixel unit i using the horizontal interpolation filter determined with the phase of Q which corresponds to pixel unit i, to obtain a horizontal interpolation filtering result; and performing vertical interpolation filtering on the horizontal interpolation filtering result using the vertical interpolation filter determined with the phase of Q corresponding to pixel unit i, to obtain a predicted pixel value of pixel unit i, in that pixel unit i is any one of P pixel units; or perform vertical interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a pixel unit j using a vertical interpolation filter determined with a phase of Q that corresponds to the pixel unit j, to obtain a vertical interpolation filtering result; and performing horizontal interpolation filtering on the vertical interpolation filtering result using a determined horizontal interpolation filter with a phase of Q corresponding to pixel unit j, to obtain a predicted pixel value of pixel unit j, in that pixel unit j is any one of P pixel units.
[140] Além disso, se uma unidade de pixel tiver apenas uma fase (ou seja, tem apenas uma fase horizontal ou uma fase vertical), a filtragem de interpolação precisa ser realizada em um pixel de uma unidade de pixel de referência da unidade de pixel apenas uma vez, para se obter um valor de pixel previsto da unidade de pixel.[140] Additionally, if a pixel unit has only one phase (i.e., has only one horizontal phase or one vertical phase), interpolation filtering needs to be performed on one pixel of a reference pixel unit of the pixel only once, to obtain a predicted pixel value from the pixel unit.
[141] 306. O aparelho de codificação de vídeo pode obter um valor residual previsto do bloco de imagem atual utilizando-se os valores de pixel originais das P unidades de pixel e os valores de pixel previstos das P unidades de pixel do bloco de imagem atual, e o aparelho de codificação de vídeo pode gravar o valor residual previsto do bloco de imagem atual em um fluxo de bits de vídeo.[141] 306. The video coding apparatus may obtain a predicted residual value of the current image block using the original pixel values of the P pixel units and the predicted pixel values of the P pixel units of the image block current, and the video encoding apparatus can record the predicted residual value of the current image block into a video bit stream.
[142] Pode-se compreender a partir daquilo mencionado anteriormente que, na solução dessa modalidade, o aparelho de codificação de vídeo obtém, por meio de cálculo, o vetor de movimento, cuja precisão é 1/N da precisão de pixel, de cada unidade de pixel do bloco de imagem atual utilizando- se o modelo de movimento e os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos W pontos de controle, em que N é maior que n. Em outras palavras, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada unidade de pixel do bloco de imagem atual é mais alta que a precisão dos vetores de movimento determinados dos W pontos de controle. O vetor de movimento de precisão mais alta é obtido primeiro. Portanto, o vetor de movimento de precisão mais alta de cada unidade de pixel do bloco de imagem atual é utilizado para determinar a unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual, e a filtragem de interpolação é realizada no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual utilizando-se o filtro de interpolação com a fase de Q (Q é maior que n), para obter o valor de pixel previsto de cada unidade de pixel do bloco de imagem atual. Pode-se compreender que a maneira anteriormente mencionada auxilia na redução de uma quantidade de vezes exigida de filtragem de interpolação exigida para se obter, por meio de previsão, o valor de pixel previsto de precisão mais alta do bloco de imagem atual (por exemplo, um processo intermediário para se obter o valor de pixel previsto de precisão mais baixa realizando-se uma filtragem de interpolação de precisão mais baixa pode não ser exigido), de modo a reduzir uma quantidade de caches intermediários e operações de memória que são exigidos para a filtragem de interpolação durante um processo de previsão de imagem, e reduzir a complexidade de cálculo durante o processo de previsão de imagem.[142] It can be understood from what was previously mentioned that, in the solution of this modality, the video coding device obtains, through calculation, the motion vector, whose precision is 1/N of the pixel precision, of each pixel unit of the current image block using the motion model and motion vectors, whose precision is 1/n of the pixel precision, of the W control points, where N is greater than n. In other words, the precision of the motion vector that is obtained through calculation and that belongs to each pixel unit of the current image block is higher than the precision of the motion vectors determined from the W control points. The highest precision motion vector is taken first. Therefore, the highest precision motion vector of each pixel unit of the current image block is used to determine the corresponding reference pixel unit, in the reference image, of each pixel unit of the current image block, and the Interpolation filtering is performed on the corresponding reference pixel unit pixel in the reference image of each pixel unit of the current image block using the interpolation filter with the phase of Q (Q is greater than n), to obtain the predicted pixel value of each pixel unit of the current image block. It can be understood that the aforementioned manner assists in reducing a required amount of interpolation filtering times required to obtain, through prediction, the highest precision predicted pixel value of the current image block (e.g. an intermediate process to obtain the lower precision predicted pixel value and performing lower precision interpolation filtering may not be required), so as to reduce the amount of intermediate caches and memory operations that are required for the interpolation filtering during an image prediction process, and reduce the calculation complexity during the image prediction process.
[143] A seguir descreve-se uma solução a partir de uma perspectiva de um lado de decodificador.[143] The following describes a solution from a decoder side perspective.
[144] Referindo-se à Figura 4, a Figura 4 é um fluxograma esquemático de outro método de previsão de imagem de acordo com outra modalidade da presente invenção. Em um exemplo mostrado na Figura 4, o outro método de previsão de imagem fornecido na outra modalidade da presente invenção pode incluir as etapas a seguir.[144] Referring to Figure 4, Figure 4 is a schematic flowchart of another image prediction method in accordance with another embodiment of the present invention. In an example shown in Figure 4, the other image prediction method provided in the other embodiment of the present invention may include the following steps.
[145] 401. Um aparelho de decodificação de vídeo determina W pontos de controle em um bloco de imagem atual.[145] 401. A video decoding apparatus determines W control points in a current image block.
[146] 402. O aparelho de decodificação de vídeo determina vetores de movimento dos W pontos de controle.[146] 402. The video decoding apparatus determines motion vectors of the W control points.
[147] A determinação, através do aparelho de decodificação de vídeo, dos vetores de movimento dos W pontos de controle pode incluir: determinar um conjunto de unidades de informações de movimento candidatas que corresponde à cada um dentre os W pontos de controle, em que o conjunto de unidades de informações de movimento candidatas que corresponde à cada ponto de controle inclui pelo menos uma unidade de informações de movimento candidatas; determinar um conjunto de unidades de informações de movimento combinadas e que inclui W unidades de informações de movimento, em que cada unidade de informações de movimento no conjunto de unidades de informações de movimento combinadas e é selecionada a partir de pelo menos algumas unidades de informações de movimento no conjunto de unidades de informações de movimento candidatas que corresponde à cada um dentre os W pontos de controle, e cada unidade de informações de movimento combinadas no conjunto de unidades de informações de movimento combinadas e inclui um vetor de movimento; e realizar a previsão ou a estimação de movimento em W vetores de movimento no conjunto de unidades de informações de movimento combinadas e para obter os vetores de movimento dos W pontos de controle, ou utilizar W vetores de movimento incluídos no conjunto de unidades de informações de movimento combinadas e como os vetores de movimento dos W pontos de controle.[147] Determining, through the video decoding apparatus, the motion vectors of the W control points may include: determining a set of candidate motion information units that correspond to each of the W control points, wherein the set of candidate motion information units corresponding to each control point includes at least one candidate motion information unit; determine a set of combined motion information units and which includes W motion information units, wherein each motion information unit in the set of combined motion information units and is selected from at least some motion information units. movement in the set of candidate motion information units corresponding to each of the W control points, and each combined motion information unit in the set of combined motion information units and includes a motion vector; and perform motion prediction or estimation on W motion vectors in the set of combined motion information units and to obtain the motion vectors of W control points, or use W motion vectors included in the set of motion information units combined motion and as the motion vectors of the W control points.
[148] Em algumas implementações possíveis da presente invenção, a precisão de cada vetor de movimento no conjunto de unidades de informações de movimento candidatas pode ser 1/n da precisão de pixel.[148] In some possible implementations of the present invention, the precision of each motion vector in the set of candidate motion information units may be 1/n of the pixel precision.
[149] 403. O aparelho de decodificação de vídeo obtém, por meio de cálculo, os vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle.[149] 403. The video decoding apparatus obtains, through calculation, the motion vectors of P pixel units of the current image block using a motion model and the motion vectors of W control points.
[150] P é um número inteiro positivo, e W e N são números inteiros maiores que 1.[150] P is a positive integer, and W and N are integers greater than 1.
[151] As P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual.[151] P pixel units are some or all of the pixel units of the current image block.
[152] Um vetor de movimento de cada uma das P unidades de pixel é utilizado para determinar uma unidade de pixel de referência correspondente, em uma imagem de referência, de uma unidade de pixel correspondente. Portanto, o vetor de movimento de cada uma das P unidades de pixel pode ser utilizado para determinar a unidade de pixel de referência correspondente, na imagem de referência, da unidade de pixel correspondente.[152] A motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit, in a reference image, from a corresponding pixel unit. Therefore, the motion vector of each of the P pixel units can be used to determine the corresponding reference pixel unit, in the reference image, of the corresponding pixel unit.
[153] A precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel.[153] The precision of the motion vectors determined from the W control points is 1/n of the pixel precision.
[154] A precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel.[154] The precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of the pixel precision.
[155] W, n, e N são números inteiros maiores que 1.[155] W, n, and N are integers greater than 1.
[156] N é maior que n. P é um número inteiro positivo.[156] N is greater than n. P is a positive integer.
[157] Devido ao fato de N ser maior que n, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é maior que a precisão dos vetores de movimento determinados dos W pontos de controle. Ou seja, os vetores de movimento de precisão mais alta das P unidades de pixel do bloco de imagem atual são obtidos.[157] Due to the fact that N is greater than n, the precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is greater than the precision of the motion vectors determined from the W points of control. That is, the highest precision motion vectors of the P pixel units of the current image block are obtained.
[158] Em algumas implementações possíveis da presente invenção, os vetores de movimento dos W pontos de controle são previstos com base em um vetor de movimento, cuja precisão é 1/n da precisão de pixel, de um bloco de imagem codificado ou um bloco de imagem decodificado que circunda o bloco de imagem atual, em que n é um número inteiro positivo, e n é menor que N.[158] In some possible implementations of the present invention, the motion vectors of the W control points are predicted based on a motion vector, the precision of which is 1/n of the pixel precision, of a coded image block or a decoded image block surrounding the current image block, where n is a positive integer, and n is less than N.
[159] Em algumas implementações possíveis da presente invenção, quando os vetores de movimento dos W pontos de controle são baseados em valores previstos, a precisão dos valores previstos também é 1/n da precisão de pixel, e as diferenças entre os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos pontos de controle e os valores previstos correspondentes podem ser gravados em um fluxo de bits.[159] In some possible implementations of the present invention, when the motion vectors of the W control points are based on predicted values, the precision of the predicted values is also 1/n of the pixel precision, and the differences between the motion vectors , whose precision is 1/n of the pixel precision, the control points and corresponding predicted values can be written to a bit stream.
[160] Em algumas implementações possíveis da presente invenção, o modelo de movimento pode ser, por exemplo, um modelo de movimento translacional, um modelo de movimento de função afim, um modelo de movimento rotacional, um modelo de movimento parabólico, um modelo de movimento cisalhante, um modelo de movimento de ampliação, um modelo de movimento perspectivo ou um modelo de movimento bilinear.[160] In some possible implementations of the present invention, the motion model may be, for example, a translational motion model, an affine function motion model, a rotational motion model, a parabolic motion model, a shear motion, a magnifying motion model, a perspective motion model, or a bilinear motion model.
[161] Por exemplo, em algumas implementações possíveis da presente invenção, o modelo de movimento pode ser representado, conforme a seguir, quando W é igual a 2: ou , em que L representa uma largura ou uma altura do bloco de imagem atual, (v0x,v0y) e (v1x,v1y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de dois pontos de controle, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[161] For example, in some possible implementations of the present invention, the motion model can be represented as follows when W is equal to 2: or , where L represents a width or a height of the current image block, (v0x,v0y) and (v1x,v1y) represent motion vectors, whose precision is 1/n of the pixel precision, of two control points, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector , whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[162] Como outro exemplo, em algumas implementações possíveis da presente invenção, o modelo de movimento pode ser representado, conforme a seguir, quando W é igual a 3: ou em que imagem atual, (v0x,v0y) , (v1x,v1y) , e (v2x,v2y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de três pontos de controle, w representa uma largura do bloco de imagem atual, e h representa uma altura do bloco de imagem atual.[162] As another example, in some possible implementations of the present invention, the motion model can be represented, as follows, when W is equal to 3: or where current image, (v0x,v0y) , (v1x,v1y) , and (v2x,v2y) represent motion vectors, whose precision is 1/n of the pixel precision, of three control points, w represents a width of the current image block, eh represents a height of the current image block.
[163] Os exemplos supracitados são descritos utilizando- se o modelo de movimento de função afim. Quando um modelo de movimento translacional, um modelo de movimento rotacional, um modelo de movimento cisalhante, um modelo de movimento de ampliação, um modelo de movimento perspectivo, um modelo de movimento parabólico, um modelo de movimento bilinear ou semelhante é utilizado, pode-se fazer referência aos exemplos supracitados. Os detalhes não serão descritos novamente no presente documento.[163] The aforementioned examples are described using the affine function movement model. When a translational motion model, a rotational motion model, a shear motion model, a widening motion model, a perspective motion model, a parabolic motion model, a bilinear motion model, or the like is used, it may be reference to the examples mentioned above. Details will not be described again in this document.
[164] 404. O aparelho de decodificação de vídeo determina uma unidade de pixel de referência correspondente, em uma imagem de referência, de cada uma das P unidades de pixel utilizando-se um vetor de movimento de cada uma das P unidades de pixel.[164] 404. The video decoding apparatus determines a corresponding reference pixel unit, in a reference image, from each of the P pixel units using a motion vector from each of the P pixel units.
[165] Opcionalmente, em algumas implementações possíveis da presente invenção, a determinação da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel pode incluir: obter, por meio de cálculo, uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; e pesquisar, utilizando-se o vetor de movimento de cada uma das P unidades de pixel, a imagem de referência para uma unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel, em que a unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel e que é encontrada na imagem de referência é a unidade de pixel de referência, na imagem de referência, de cada uma das P unidades de pixel.[165] Optionally, in some possible implementations of the present invention, determining the corresponding reference pixel unit, in the reference image, of each of the P pixel units using the motion vector of each of the P units of pixel may include: obtaining, by calculation, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units; and searching, using the motion vector of each of the P pixel units, the reference image for a reference pixel unit that corresponds to the entire pixel location of each of the P pixel units, wherein the unit of reference pixel that corresponds to the entire pixel location of each of the P pixel units and that is found in the reference image is the reference pixel unit, in the reference image, of each of the P pixel units.
[166] Especificamente, por exemplo, uma localização de pixel inteiro de uma unidade de pixel i pode ser obtida por meio de cálculo utilizando-se um vetor de movimento da unidade de pixel i das P unidades de pixel, e a imagem de referência pode ser pesquisada, utilizando-se o vetor de movimento da unidade de pixel i, para uma unidade de pixel de referência que corresponde à localização de pixel inteiro da unidade de pixel i, em que a unidade de pixel de referência que corresponde à localização de pixel inteiro da unidade de pixel i e que é encontrada na imagem de referência é uma unidade de pixel de referência, na imagem de referência, da unidade de pixel i. A unidade de pixel i pode ser qualquer uma dentre as P unidades de pixel. Por exemplo, a unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel pode ser determinada de acordo com um modo semelhante àquele da determinação da unidade de pixel de referência, na imagem de referência, da unidade de pixel i.[166] Specifically, for example, an integer pixel location of pixel unit i can be obtained by calculation using a motion vector of pixel unit i of P pixel units, and the reference image can be searched, using the motion vector of pixel unit i, for a reference pixel unit that corresponds to the integer pixel location of pixel unit i, where the reference pixel unit that corresponds to the pixel location integer of pixel unit i and which is found in the reference image is a reference pixel unit, in the reference image, of pixel unit i. Pixel unit i can be any one of P pixel units. For example, the corresponding reference pixel unit in the reference image of each of the P pixel units may be determined in a manner similar to that of determining the reference pixel unit in the reference image of the P pixel unit. of pixel i.
[167] Em algumas implementações possíveis da presente invenção, a obtenção, por meio de cálculo, de uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, a localização de pixel inteiro de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, (xInt, yInt) representa coordenadas de localização de pixel inteiro de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[167] In some possible implementations of the present invention, obtaining, by calculation, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units includes: obtain, through calculation, the entire pixel location of each of the P pixel units, according to the following formula, using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, (xInt, yInt) represents integer pixel location coordinates of a pixel unit with coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the (x, y) coordinates in the current image block.
[168] 405. O aparelho de decodificação de vídeo realiza a filtragem de interpolação em um pixel da unidade de pixel de referência, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q, para obter um valor de pixel previsto de cada uma das P unidades de pixel.[168] 405. The video decoding apparatus performs interpolation filtering on one pixel of the reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a predicted pixel value from each of the P pixel units.
[169] Q é um número inteiro maior que n.[169] Q is an integer greater than n.
[170] Em algumas implementações possíveis da presente invenção, um valor de N pode ser um valor fixo predefinido, e Q pode ser maior ou igual a N. Quando o valor de N pode ser um valor fixo predefinido, o mesmo indica que a precisão dos vetores de movimento, obtida por meio de cálculo utilizando-se o modelo de movimento e os vetores de movimento dos W pontos de controle, das P unidades de pixel do bloco de imagem atual é relacionado de modo desnecessário a um tamanho do bloco de imagem atual. Em outras palavras, por exemplo, com base na solução dessa modalidade, o valor de pixel previsto com uma precisão fixa predefinida pode ser obtido sem um processo intermediário para obter um valor de pixel previsto de precisão mais baixa realizando-se a filtragem de interpolação de precisão mais baixa.[170] In some possible implementations of the present invention, a value of N may be a predefined fixed value, and Q may be greater than or equal to N. When the value of N may be a predefined fixed value, it indicates that the accuracy of the motion vectors, obtained through calculation using the motion model and the motion vectors of the W control points, of the P pixel units of the current image block is unnecessarily related to a size of the image block current. In other words, for example, based on the solution of this embodiment, the predicted pixel value with a predefined fixed precision can be obtained without an intermediate process to obtain a predicted pixel value of lower precision by performing interpolation filtering. lower accuracy.
[171] Por exemplo, W pode ser igual a 2, 3, 4, 5, 6, 8, ou outro valor.[171] For example, W may be equal to 2, 3, 4, 5, 6, 8, or another value.
[172] Por exemplo, P pode ser igual a 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64, ou outro valor.[172] For example, P may be equal to 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64, or another value.
[173] Por exemplo, Q pode ser igual a 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, ou outro valor.[173] For example, Q may be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, or another value.
[174] Por exemplo, N pode ser igual a 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, ou outro valor.[174] For example, N may be equal to 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64, or another value.
[175] Por exemplo, n pode ser igual a 8, 2, 4, ou outro valor.[175] For example, n can be equal to 8, 2, 4, or another value.
[176] Em algumas implementações possíveis da presente invenção, N pode ser uma potência integral de 2 ou, certamente, N pode ser outro número inteiro positivo.[176] In some possible implementations of the present invention, N may be an integral power of 2 or, certainly, N may be another positive integer.
[177] Em algumas implementações possíveis da presente invenção, a realização da filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q inclui: obter, por meio de cálculo, uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; determinar, com base na fase de cada unidade de pixel, o filtro de interpolação com a fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e realizar a filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel correspondente.[177] In some possible implementations of the present invention, performing interpolation filtering on a pixel of the corresponding reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q includes: obtaining, through calculation, a phase of each of the P pixel units using the motion vector of each of the P pixel units; determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the corresponding pixel unit.
[178] Especificamente, por exemplo, uma fase da unidade de pixel i pode ser obtida por meio de cálculo utilizando- se o vetor de movimento da unidade de pixel i das P unidades de pixel; um filtro de interpolação com uma fase de Q que corresponde à unidade de pixel i pode ser determinado com base na fase da unidade de pixel i, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e a filtragem de interpolação pode ser realizada em um pixel da unidade de pixel de referência correspondente, na imagem de referência, da unidade de pixel i utilizando- se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel i. A unidade de pixel i pode ser qualquer uma dentre as P unidades de pixel. Por exemplo, a filtragem de interpolação pode ser realizada em cada uma das P unidades de pixel de acordo com um modo semelhante àquele da realização da filtragem de interpolação na unidade de pixel i.[178] Specifically, for example, a phase of pixel unit i can be obtained by calculating using the motion vector of pixel unit i of P pixel units; an interpolation filter with a phase of Q corresponding to pixel unit i can be determined based on the phase of pixel unit i, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and interpolation filtering can be performed on a pixel of the corresponding reference pixel unit, in the reference image, of pixel unit i using the interpolation filter determined with the phase of Q that corresponds to pixel unit i. Pixel unit i can be any one of P pixel units. For example, interpolation filtering may be performed on each of P pixel units in a manner similar to that of performing interpolation filtering on pixel unit i.
[179] Em algumas implementações possíveis da presente invenção, a obtenção, por meio de cálculo, de uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, a fase de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, X' representa uma fase horizontal de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, Y' representa uma fase vertical da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[179] In some possible implementations of the present invention, obtaining, by calculation, a phase of each of the P pixel units using the motion vector of each of the P pixel units includes: obtaining, by means of calculation, the phase of each of the P pixel units, according to the following formula, using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, X' represents a horizontal phase of a pixel unit with coordinates of (x, y) in the current image block, Y' represents a vertical phase of the unit pixel with the coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y ) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[180] Opcionalmente, em algumas implementações possíveis da presente invenção, a fase inclui uma fase horizontal e uma fase vertical; e a determinação, com base na fase de cada unidade de pixel, do filtro de interpolação com a fase de Q que corresponde à unidade de pixel inclui: determinar, com base na fase horizontal de cada unidade de pixel, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel correspondente; e determinar, com base na fase vertical de cada unidade de pixel, um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical.[180] Optionally, in some possible implementations of the present invention, the phase includes a horizontal phase and a vertical phase; and determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the pixel unit includes: determining, based on the horizontal phase of each pixel unit, a horizontal interpolation filter with a phase of Q corresponding to the corresponding pixel unit; and determining, based on the vertical phase of each pixel unit, a vertical interpolation filter with a phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase, and A filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase.
[181] Especificamente, por exemplo, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel i pode ser determinado com base em uma fase horizontal da unidade de pixel i, e um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel i pode ser determinado com base em uma fase vertical da unidade de pixel i, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal da unidade de pixel i, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical da unidade de pixel i. A unidade de pixel i pode ser qualquer uma dentre as P unidades de pixel. Por exemplo, o filtro de interpolação com a fase de Q que corresponde a cada uma dentre as P unidades de pixel pode ser determinado de acordo com um modo semelhante àquele da determinação do filtro de interpolação com a fase de Q que corresponde à unidade de pixel i.[181] Specifically, for example, a horizontal interpolation filter with a phase of Q corresponding to pixel unit i can be determined based on a horizontal phase of pixel unit i, and a vertical interpolation filter with a phase of Q corresponding to pixel unit i can be determined based on a vertical phase of pixel unit i, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase of pixel unit i, and a filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase of pixel unit i. Pixel unit i can be any one of P pixel units. For example, the interpolation filter with the Q phase corresponding to each of the P pixel units can be determined in a manner similar to that of determining the interpolation filter with the Q phase corresponding to the pixel unit. i.
[182] Opcionalmente, em algumas implementações possíveis da presente invenção, a realização da filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel inclui: realizar a filtragem de interpolação horizontal no pixel da unidade de pixel de referência correspondente, na imagem de referência, da unidade de pixel i utilizando-se o filtro de interpolação horizontal determinado com a fase de Q que corresponde à unidade de pixel i, para obter um resultado de filtragem de interpolação horizontal; e realizar a filtragem de interpolação vertical no resultado de filtragem de interpolação horizontal utilizando-se o filtro de interpolação vertical determinado com a fase de Q que corresponde à unidade de pixel i, para obter um valor de pixel previsto da unidade de pixel i, em que a unidade de pixel i é qualquer uma dentre as P unidades de pixel; ou realizar a filtragem de interpolação vertical em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel j utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um resultado de filtragem de interpolação vertical; e realizar a filtragem de interpolação horizontal no resultado de filtragem de interpolação vertical utilizando-se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um valor de pixel previsto da unidade de pixel j, em que a unidade de pixel j é qualquer uma dentre as P unidades de pixel.[182] Optionally, in some possible implementations of the present invention, performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the pixel unit includes: performing horizontal interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of pixel unit i using the horizontal interpolation filter determined with the phase of Q which corresponds to pixel unit i, to obtain a horizontal interpolation filtering result; and performing vertical interpolation filtering on the horizontal interpolation filtering result using the vertical interpolation filter determined with the phase of Q corresponding to pixel unit i, to obtain a predicted pixel value of pixel unit i, in that pixel unit i is any one of P pixel units; or perform vertical interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a pixel unit j using a vertical interpolation filter determined with a phase of Q that corresponds to the pixel unit j, to obtain a vertical interpolation filtering result; and performing horizontal interpolation filtering on the vertical interpolation filtering result using a determined horizontal interpolation filter with a phase of Q corresponding to pixel unit j, to obtain a predicted pixel value of pixel unit j, in that pixel unit j is any one of P pixel units.
[183] Além disso, se uma unidade de pixel tiver apenas uma fase (ou seja, tem apenas uma fase horizontal ou uma fase vertical), a filtragem de interpolação precisa ser realizada em um pixel de uma unidade de pixel de referência da unidade de pixel apenas uma vez, para se obter um valor de pixel previsto da unidade de pixel.[183] Additionally, if a pixel unit has only one phase (i.e., has only one horizontal phase or one vertical phase), interpolation filtering needs to be performed on one pixel of a reference pixel unit of the pixel only once, to obtain a predicted pixel value from the pixel unit.
[184] 406. O aparelho de decodificação de vídeo reconstrói o bloco de imagem atual utilizando-se um valor de pixel previsto do bloco de imagem atual e um valor residual previsto, em um fluxo de bits de vídeo, do bloco de imagem atual.[184] 406. The video decoding apparatus reconstructs the current image block using a predicted pixel value from the current image block and a predicted residual value, in a video bit stream, from the current image block.
[185] Pode-se compreender a partir daquilo mencionado anteriormente que, na solução dessa modalidade, o aparelho de decodificação de vídeo obtém, por meio de cálculo, o vetor de movimento, cuja precisão é 1/N da precisão de pixel, de cada unidade de pixel do bloco de imagem atual utilizando- se o modelo de movimento e os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos W pontos de controle, em que N é maior que n. Em outras palavras, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada unidade de pixel do bloco de imagem atual é mais alta que a precisão dos vetores de movimento determinados dos W pontos de controle. O vetor de movimento de precisão mais alta é obtido primeiro. Portanto, o vetor de movimento de precisão mais alta de cada unidade de pixel do bloco de imagem atual é utilizado para determinar a unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual, e a filtragem de interpolação é realizada no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual utilizando-se o filtro de interpolação com a fase de Q (Q é maior que n), para obter o valor de pixel previsto de cada unidade de pixel do bloco de imagem atual. Pode-se compreender que a maneira anteriormente mencionada auxilia na redução de uma quantidade de vezes exigida de filtragem de interpolação exigida para se obter, por meio de previsão, o valor de pixel previsto de precisão mais alta do bloco de imagem atual (por exemplo, um processo intermediário para se obter o valor de pixel previsto de precisão mais baixa realizando-se uma filtragem de interpolação de precisão mais baixa pode não ser exigido), de modo a reduzir uma quantidade de caches intermediários e operações de memória que são exigidos para a filtragem de interpolação durante um processo de previsão de imagem, e reduzir a complexidade de cálculo durante o processo de previsão de imagem.[185] It can be understood from what was previously mentioned that, in the solution of this modality, the video decoding device obtains, through calculation, the motion vector, whose precision is 1/N of the pixel precision, of each pixel unit of the current image block using the motion model and motion vectors, whose precision is 1/n of the pixel precision, of the W control points, where N is greater than n. In other words, the precision of the motion vector that is obtained through calculation and that belongs to each pixel unit of the current image block is higher than the precision of the motion vectors determined from the W control points. The highest precision motion vector is taken first. Therefore, the highest precision motion vector of each pixel unit of the current image block is used to determine the corresponding reference pixel unit, in the reference image, of each pixel unit of the current image block, and the Interpolation filtering is performed on the corresponding reference pixel unit pixel in the reference image of each pixel unit of the current image block using the interpolation filter with the phase of Q (Q is greater than n), to obtain the predicted pixel value of each pixel unit of the current image block. It can be understood that the aforementioned manner assists in reducing a required amount of interpolation filtering times required to obtain, through prediction, the highest precision predicted pixel value of the current image block (e.g. an intermediate process to obtain the lower precision predicted pixel value and performing lower precision interpolation filtering may not be required), so as to reduce the amount of intermediate caches and memory operations that are required for the interpolation filtering during an image prediction process, and reduce the calculation complexity during the image prediction process.
[186] A seguir descreve-se, utilizando-se exemplos, algumas implementações específicas possíveis da determinação de um conjunto de unidades de informações de movimento combinadas e que inclui W unidades de informações de movimento nas modalidades supracitadas.[186] The following describes, using examples, some possible specific implementations of determining a set of combined motion information units that includes W motion information units in the aforementioned modalities.
[187] A determinação de um conjunto de unidades de informações de movimento combinadas e que inclui W unidades de informações de movimento pode incluir: determinar, a partir de A conjuntos de unidade de informações de movimento combinadas candidatas, o conjunto de unidades de informações de movimento combinadas e que inclui as W unidades de informações de movimento, em que cada unidade de informações de movimento incluída em cada um dentre os A conjuntos de unidade de informações de movimento combinadas candidatas é selecionada a partir de pelo menos algumas unidades de informações de movimento, em conformidade com uma condição de restrição, em um conjunto de unidades de informações de movimento candidatas que corresponde à cada um dentre os W pontos de controle, A é um número inteiro positivo, os A conjuntos de unidade de informações de movimento combinadas candidatas são diferentes uns dos outros, e cada um dentre os A conjuntos de unidade de informações de movimento combinadas candidatas inclui W unidades de informações de movimento.[187] Determining a set of combined motion information units and including W motion information units may include: determining, from A candidate combined motion information unit sets, the set of motion information units combined motion information units and including the W motion information units, wherein each motion information unit included in each of the A candidate combined motion information unit sets is selected from at least some motion information units , in accordance with a constraint condition, in a set of candidate motion information units corresponding to each of the W control points, A is a positive integer, the A sets of candidate combined motion information units are different from each other, and each of the A candidate combined motion information unit sets includes W motion information units.
[188] Opcionalmente, em algumas implementações possíveis da presente invenção, os A conjuntos de unidade de informações de movimento combinadas candidatas satisfazem pelo menos uma dentre uma primeira condição, uma segunda condição, uma terceira condição, uma quarta condição ou uma quinta condição.[188] Optionally, in some possible implementations of the present invention, the candidate combined motion information unit sets satisfy at least one of a first condition, a second condition, a third condition, a fourth condition, or a fifth condition.
[189] A primeira condição inclui: Um modo de movimento, indicado por uma unidade de informações de movimento em qualquer um dentre os A conjuntos de unidade de informações de movimento combinadas candidatas, do bloco de imagem atual é um movimento não translacional.[189] The first condition includes: A motion mode, indicated by a motion information unit in any of the A candidate combined motion information unit sets, of the current image block is a non-translational motion.
[190] A segunda condição inclui: As direções de previsão que correspondem à duas unidades de informações de movimento em qualquer um dentre os A conjuntos de unidade de informações de movimento combinadas candidatas são iguais.[190] The second condition includes: The prediction directions that correspond to two motion information units in any of the candidate combined motion information unit sets are equal.
[191] A terceira condição inclui: Os índices de quadro de referência que correspondem à duas unidades de informações de movimento em qualquer um dentre os A conjuntos de unidade de informações de movimento combinadas candidatas são iguais.[191] The third condition includes: Reference frame indices corresponding to two motion information units in any of the candidate combined motion information unit sets are equal.
[192] A quarta condição inclui: Um valor absoluto de uma diferença entre componentes horizontais de vetores de movimento de duas unidades de informações de movimento em qualquer um dentre os A conjuntos de unidade de informações de movimento combinadas candidatas é menor ou igual a um limiar de componente horizontal, ou um valor absoluto de uma diferença entre componentes horizontais de um vetor de movimento de um ponto de controle Z e um vetor de movimento de uma unidade de informações de movimento em qualquer um dentre os A conjuntos de unidade de informações de movimento combinadas candidatas é menor ou igual a um limiar de componente horizontal, em que o ponto de controle Z do bloco de imagem atual é diferente de qualquer um dentre os W pontos de controle.[192] The fourth condition includes: An absolute value of a difference between horizontal components of motion vectors of two motion information units in any of the candidate combined motion information unit sets is less than or equal to a threshold of horizontal component, or an absolute value of a difference between horizontal components of a motion vector of a control point Z and a motion vector of a motion information unit in any of the A motion information unit sets combined candidates is less than or equal to a horizontal component threshold, where the Z control point of the current image block is different from any of the W control points.
[193] A quinta condição inclui: Um valor absoluto de uma diferença entre componentes verticais de vetores de movimento de duas unidades de informações de movimento em qualquer um dentre os A conjuntos de unidade de informações de movimento combinadas candidatas é menor ou igual a um limiar de componente vertical, ou um valor absoluto de uma diferença entre componentes verticais de um vetor de movimento de um ponto de controle Z e um vetor de movimento de qualquer unidade de informações de movimento em um dentre os A conjuntos de unidade de informações de movimento combinadas candidatas é menor ou igual a um limiar de componente vertical, em que o ponto de controle Z do bloco de imagem atual é diferente de qualquer um dentre os W pontos de controle.[193] The fifth condition includes: An absolute value of a difference between vertical components of motion vectors of two motion information units in any of the A candidate combined motion information unit sets is less than or equal to a threshold of vertical component, or an absolute value of a difference between vertical components of a motion vector of a Z control point and a motion vector of any motion information unit in one of the A combined motion information unit sets candidates is less than or equal to a vertical component threshold, where the Z control point of the current image block is different from any of the W control points.
[194] Opcionalmente, em algumas implementações possíveis da presente invenção, a determinação, a partir de A conjuntos de unidade de informações de movimento combinadas candidatas através do aparelho de codificação/decodificação de vídeo, do conjunto de unidades de informações de movimento combinadas e que inclui as W unidades de informações de movimento pode incluir: determinar, a partir dos A conjuntos de unidade de informações de movimento combinadas candidatas e com base em distorção ou um custo de taxa-distorção, o conjunto de unidades de informações de movimento combinadas e que inclui os W vetores de movimento.[194] Optionally, in some possible implementations of the present invention, determining, from A candidate combined motion information unit sets via the video encoding/decoding apparatus, the set of combined motion information units and which includes the W motion information units may include: determining, from the A candidate combined motion information unit sets and based on distortion or a rate-distortion cost, the set of combined motion information units and that includes the W motion vectors.
[195] Opcionalmente, o custo de taxa-distorção que corresponde ao conjunto de unidades de informações de movimento combinadas e é menor ou igual a um custo de taxa- distorção que corresponde a qualquer conjunto de unidades de informações de movimento combinadas, diferente do conjunto de unidades de informações de movimento combinadas e, nos A conjuntos de unidade de informações de movimento combinadas candidatas.[195] Optionally, the rate-distortion cost that corresponds to the set of combined motion information units and is less than or equal to a rate-distortion cost that corresponds to any set of combined motion information units other than the set of combined motion information units and, in the A sets of candidate combined motion information units.
[196] Opcionalmente, a distorção que corresponde ao conjunto de unidades de informações de movimento combinadas e é menor ou igual à distorção que corresponde a qualquer conjunto de unidades de informações de movimento combinadas, diferente do conjunto de unidades de informações de movimento combinadas e, nos A conjuntos de unidade de informações de movimento combinadas candidatas.[196] Optionally, the distortion that corresponds to the set of combined motion information units and is less than or equal to the distortion that corresponds to any set of combined motion information units other than the set of combined motion information units and, nos A unit sets of candidate combined motion information.
[197] Um custo de taxa-distorção que corresponde a um conjunto de unidades de informações de movimento combinadas candidatas dos A conjuntos de unidade de informações de movimento combinadas candidatas (por exemplo, o conjunto de unidades de informações de movimento combinadas e dos A conjuntos de unidade de informações de movimento combinadas candidatas) pode ser, por exemplo, um custo de taxa-distorção que corresponde a um valor de pixel previsto que pertence a um bloco de imagem (por exemplo, o bloco de imagem atual) e que é obtido por meio da previsão de valor de pixel realizada no bloco de imagem utilizando-se o conjunto de unidades de informações de movimento combinadas candidatas (por exemplo, o conjunto de unidades de informações de movimento combinadas e).[197] A rate-distortion cost that corresponds to a set of candidate combined motion information units of the A candidate combined motion information unit sets (e.g., the set of combined motion information units and of the A sets unit of candidate combined motion information) can be, for example, a rate-distortion cost that corresponds to a predicted pixel value that belongs to an image block (e.g., the current image block) and that is obtained through pixel value prediction performed on the image block using the set of candidate combined motion information units (e.g., the set of combined motion information units and).
[198] A distorção que corresponde a um conjunto de unidades de informações de movimento combinadas candidatas dos A conjuntos de unidade de informações de movimento combinadas candidatas (por exemplo, o conjunto de unidades de informações de movimento combinadas e dos A conjuntos de unidade de informações de movimento combinadas candidatas) pode ser, por exemplo, a distorção entre um valor de pixel original de um bloco de imagem (por exemplo, o bloco de imagem atual) e um valor de pixel previsto que pertence ao bloco de imagem e que é obtido por meio de previsão de valor de pixel realizada no bloco de imagem utilizando-se o conjunto de unidades de informações de movimento combinadas candidatas (por exemplo, o conjunto de unidades de informações de movimento combinadas e) (ou seja, a distorção entre um valor de pixel original e um valor de pixel previsto que pertencem ao bloco de imagem).[198] The distortion corresponding to a set of candidate combined motion information units of the A candidate combined motion information unit sets (e.g., the set of combined motion information units and of the A candidate combined motion information unit sets candidate combined motion values) can be, for example, the distortion between an original pixel value of an image block (e.g. the current image block) and a predicted pixel value that belongs to the image block and which is obtained through pixel value prediction performed on the image block using the set of candidate combined motion information units (e.g., the set of combined motion information units and) (i.e., the distortion between a value original pixel value and a predicted pixel value that belong to the image block).
[199] Em algumas implementações possíveis da presente invenção, a distorção entre um valor de pixel original de um bloco de imagem (por exemplo, o bloco de imagem atual) e um valor de pixel previsto que pertence ao bloco de imagem e que é obtido por meio da previsão de valor de pixel realizada no bloco de imagem utilizando-se um conjunto de unidades de informações de movimento combinadas candidatas (por exemplo, o conjunto de unidades de informações de movimento combinadas e) pode ser, especificamente, por exemplo, uma soma dos quadrados das diferenças (SSD), uma soma de diferenças absolutas (SAD), uma soma de diferenças, ou outro valor paramétrico de distorção que possa medir a distorção, entre o valor de pixel original do bloco de imagem (por exemplo, o bloco de imagem atual) e o valor de pixel previsto que pertence ao bloco de imagem e que é obtido por meio da previsão de valor de pixel realizada no bloco de imagem utilizando-se o conjunto de unidades de informações de movimento combinadas candidatas (por exemplo, o conjunto de unidades de informações de movimento combinadas e).[199] In some possible implementations of the present invention, the distortion between an original pixel value of an image block (e.g., the current image block) and a predicted pixel value that belongs to the image block and that is obtained through pixel value prediction performed on the image block using a set of candidate combined motion information units (e.g., the set of combined motion information units and) may specifically be, e.g., a sum of squares of differences (SSD), a sum of absolute differences (SAD), a sum of differences, or other parametric distortion value that can measure distortion, between the original pixel value of the image block (for example, the current image block) and the predicted pixel value that belongs to the image block and which is obtained through the pixel value prediction performed on the image block using the set of candidate combined motion information units (e.g. , the set of combined motion information units e).
[200] A seguir descreve-se, utilizando-se exemplos, alguns modos possíveis de se determinar W pontos de controle em um bloco de imagem atual.[200] The following describes, using examples, some possible ways of determining W control points in a current image block.
[201] Opcionalmente, em algumas implementações possíveis da presente invenção, os W pontos de controle incluem W pontos de controle de um ponto de controle superior esquerdo, um ponto de controle superior direito, um ponto de controle inferior esquerdo, e um ponto de controle central a1 no bloco de imagem atual.[201] Optionally, in some possible implementations of the present invention, the W control points include W control points of an upper left control point, an upper right control point, a lower left control point, and a control point center a1 in the current image block.
[202] O ponto de controle superior esquerdo no bloco de imagem atual é um vértice superior esquerdo do bloco de imagem atual ou de um bloco de pixel, no bloco de imagem atual, que inclui um vértice superior esquerdo do bloco de imagem atual. O ponto de controle inferior esquerdo no bloco de imagem atual é um vértice inferior esquerdo do bloco de imagem atual ou de um bloco de pixel, no bloco de imagem atual, que inclui um vértice inferior esquerdo do bloco de imagem atual. O ponto de controle superior direito no bloco de imagem atual é um vértice superior direito do bloco de imagem atual ou de um bloco de pixel, no bloco de imagem atual, que inclui um vértice superior direito do bloco de imagem atual. O ponto de controle central a1 do bloco de imagem atual é um pixel central do bloco de imagem atual ou de um bloco de pixel, no bloco de imagem atual, que inclui um pixel central do bloco de imagem atual.[202] The top-left control point in the current image block is a top-left vertex of the current image block or a pixel block, in the current image block, that includes a top-left vertex of the current image block. The bottom-left control point in the current image block is a bottom-left vertex of the current image block or a pixel block, in the current image block, that includes a bottom-left vertex of the current image block. The top-right control point in the current image block is a top-right vertex of the current image block or a pixel block, in the current image block, that includes a top-right vertex of the current image block. The center control point a1 of the current image block is a center pixel of the current image block or a pixel block, in the current image block, that includes a center pixel of the current image block.
[203] Opcionalmente, em algumas implementações possíveis da presente invenção, um conjunto de unidades de informações de movimento candidatas que corresponde ao ponto de controle superior esquerdo no bloco de imagem atual inclui uma unidade de informações de movimento de x1 unidades de pixel. As x1 unidades de pixel incluem pelo menos uma unidade de pixel (por exemplo, blocos de imagem A, B, e C na Figura 2-b) espacialmente adjacentes ao ponto de controle superior esquerdo no bloco de imagem atual e/ou pelo menos uma unidade de pixel temporalmente adjacente ao ponto de controle superior esquerdo no bloco de imagem atual, em que x1 é um número inteiro positivo.[203] Optionally, in some possible implementations of the present invention, a set of candidate motion information units corresponding to the upper left control point in the current image block includes a motion information unit of x1 pixel units. The x1 pixel units include at least one pixel unit (e.g., image blocks A, B, and C in Figure 2-b) spatially adjacent to the upper left control point in the current image block and/or at least one pixel unit temporally adjacent to the top left control point in the current image block, where x1 is a positive integer.
[204] Por exemplo, as x1 unidades de pixel podem incluir pelo menos um dentre os seguintes: uma unidade de pixel, em um quadro de vídeo temporalmente adjacente a um quadro de vídeo ao qual o bloco de imagem atual pertence, cuja localização é a mesma que aquela do ponto de controle superior esquerdo no bloco de imagem atual; uma unidade de pixel que está espacialmente adjacente ao bloco de imagem atual e que se encontra à esquerda do mesmo; uma unidade de pixel que está espacialmente adjacente ao bloco de imagem atual e que se encontra no lado superior esquerdo do mesmo; ou uma unidade de pixel que está espacialmente adjacente ao bloco de imagem atual e que se encontra em um lado superior do mesmo.[204] For example, the x1 pixel units may include at least one of the following: a pixel unit, in a video frame temporally adjacent to a video frame to which the current image block belongs, whose location is the same as that of the upper left control point in the current image block; a pixel unit that is spatially adjacent to the current image block and located to the left thereof; a pixel unit that is spatially adjacent to the current image block and located on the upper left side thereof; or a pixel unit that is spatially adjacent to the current image block and that lies on an upper side thereof.
[205] Opcionalmente, em algumas implementações possíveis da presente invenção, um conjunto de unidades de informações de movimento candidatas que corresponde ao ponto de controle superior direito no bloco de imagem atual inclui uma unidade de informações de movimento de x2 unidades de pixel. As x2 unidades de pixel incluem pelo menos uma unidade de pixel (por exemplo, os blocos de imagem E e D na Figura 2-b) espacialmente adjacente ao ponto de controle superior direito no bloco de imagem atual e/ou pelo menos uma unidade de pixel temporalmente adjacente ao ponto de controle superior direito no bloco de imagem atual, em que x2 é um número inteiro positivo.[205] Optionally, in some possible implementations of the present invention, a set of candidate motion information units corresponding to the upper right control point in the current image block includes a motion information unit of x2 pixel units. The x2 pixel units include at least one pixel unit (e.g., image blocks E and D in Figure 2-b) spatially adjacent to the upper right control point in the current image block and/or at least one unit of pixel temporally adjacent to the top-right control point in the current image block, where x2 is a positive integer.
[206] Por exemplo, as x2 unidades de pixel podem incluir pelo menos um dentre os seguintes: uma unidade de pixel, em um quadro de vídeo temporalmente adjacente a um quadro de vídeo ao qual o bloco de imagem atual pertence, cuja localização é a mesma que aquela do ponto de controle superior direito no bloco de imagem atual; uma unidade de pixel que está espacialmente adjacente ao bloco de imagem atual e que se encontra à direita do mesmo; uma unidade de pixel que está espacialmente adjacente ao bloco de imagem atual e que se encontra no lado superior direito do mesmo; ou uma unidade de pixel que está espacialmente adjacente ao bloco de imagem atual e que se encontra em um lado superior do mesmo.[206] For example, the x2 pixel units may include at least one of the following: a pixel unit, in a video frame temporally adjacent to a video frame to which the current image block belongs, whose location is the same as that of the upper right control point in the current image block; a pixel unit that is spatially adjacent to the current image block and located to the right thereof; a pixel unit that is spatially adjacent to the current image block and located on the upper right side thereof; or a pixel unit that is spatially adjacent to the current image block and that lies on an upper side thereof.
[207] Opcionalmente, em algumas implementações possíveis da presente invenção; um conjunto de unidades de informações de movimento candidatas que corresponde ao ponto de controle inferior esquerdo no bloco de imagem atual inclui uma unidade de informações de movimento de x3 unidades de pixel. As x3 unidades de pixel incluem pelo menos uma unidade de pixel espacialmente adjacente ao ponto de controle inferior esquerdo no bloco de imagem atual e/ou pelo menos uma unidade de pixel temporalmente adjacente ao ponto de controle inferior esquerdo no bloco de imagem atual, em que x3 é um número inteiro positivo.[207] Optionally, in some possible implementations of the present invention; a set of candidate motion information units corresponding to the lower left control point in the current image block includes a motion information unit of x3 pixel units. The x3 pixel units include at least one pixel unit spatially adjacent to the lower left control point in the current image block and/or at least one pixel unit temporally adjacent to the lower left control point in the current image block, wherein x3 is a positive integer.
[208] Por exemplo, as x3 unidades de pixel podem incluir pelo menos um dentre os seguintes: uma unidade de pixel, em um quadro de vídeo temporalmente adjacente a um quadro de vídeo ao qual o bloco de imagem atual pertence, cuja localização é a mesma que aquela do ponto de controle inferior esquerdo no bloco de imagem atual; uma unidade de pixel que está espacialmente adjacente ao bloco de imagem atual e que se encontra à esquerda do mesmo; uma unidade de pixel que está espacialmente adjacente ao bloco de imagem atual e que se encontra no lado inferior esquerdo do mesmo; ou uma unidade de pixel que está espacialmente adjacente ao bloco de imagem atual e que se encontra em um lado inferior do mesmo.[208] For example, the x3 pixel units may include at least one of the following: a pixel unit, in a video frame temporally adjacent to a video frame to which the current image block belongs, whose location is the same as that of the lower left control point in the current image block; a pixel unit that is spatially adjacent to the current image block and located to the left thereof; a pixel unit that is spatially adjacent to the current image block and located on the lower left side thereof; or a pixel unit that is spatially adjacent to the current image block and that lies on a lower side thereof.
[209] Opcionalmente, em algumas implementações possíveis da presente invenção, um conjunto de unidades de informações de movimento candidatas que corresponde ao ponto de controle central a1 do bloco de imagem atual inclui uma unidade de informações de movimento de x5 unidades de pixel. Uma dentre as x5 unidades de pixel é uma unidade de pixel a2.[209] Optionally, in some possible implementations of the present invention, a set of candidate motion information units corresponding to the central control point a1 of the current image block includes a motion information unit of x5 pixel units. One of the x5 pixel units is an a2 pixel unit.
[210] Uma localização do ponto de controle central a1 em um quadro de vídeo ao qual o bloco de imagem atual pertence é a mesma que uma localização da unidade de pixel a2 em um quadro de vídeo adjacente ao quadro de vídeo ao qual o bloco de imagem atual pertence, em que x5 é um número inteiro positivo.[210] A location of the central control point a1 in a video frame to which the current image block belongs is the same as a location of the pixel unit a2 in a video frame adjacent to the video frame to which the current image block belongs. current image belongs, where x5 is a positive integer.
[211] As tabelas a seguir listam uma correspondência entre uma fase de uma unidade de pixel e um coeficiente de filtragem.[211] The following tables list a correspondence between a phase of a pixel unit and a filtering coefficient.
[212] A Tabela 1 lista uma correspondência entre um coeficiente de filtragem de um filtro de interpolação de 64 fases com um fator de escala de ganho de 256 e uma fase de uma unidade de pixel.[212] Table 1 lists a correspondence between a filtering coefficient of a 64-phase interpolation filter with a gain scaling factor of 256 and a phase of a pixel unit.
[213] A Tabela 2 lista uma correspondência entre um coeficiente de filtragem de um filtro de interpolação de 64 fases com um fator de escala de ganho de 64 e uma fase de uma unidade de pixel. TABELA 1 TABELA 2 [213] Table 2 lists a correspondence between a filtering coefficient of a 64-phase interpolation filter with a gain scaling factor of 64 and a phase of a pixel unit. TABLE 1 TABLE 2
[214] Por exemplo, quando uma fase horizontal de uma unidade de pixel é x = 12, se um filtro de interpolação de 64 fases com um fator de escala de ganho de 256 for utilizado, um resultado de filtragem de interpolação horizontal S pode ser representado conforme a seguir: [214] For example, when a horizontal phase of a pixel unit is x = 12, if a 64-phase interpolation filter with a gain scaling factor of 256 is used, a horizontal interpolation filter result S can be represented as follows:
[215] Um valor de pixel previsto da unidade de pixel pode ser obtido utilizando-se o resultado de filtragem de interpolação horizontal S, em que o deslocamento pode ser qualquer número inteiro.[215] A predicted pixel value of the pixel unit can be obtained using the horizontal interpolation filtering result S, where the offset can be any integer.
[216] A seguir utiliza-se alguns dados de teste para apresentar os efeitos técnicos das soluções das modalidades da presente invenção.[216] Below, some test data is used to present the technical effects of the solutions of the embodiments of the present invention.
[217] A Tabela 3 e a Tabela 4 fornecem um contraste de alguns desempenhos de teste entre uma solução convencional e as soluções das modalidades da presente invenção. A Tabela 3 lista o desempenho de teste da solução convencional, e a Tabela 4 lista o desempenho de teste de soluções de algumas das modalidades da presente invenção. TABELA 3 TABELA 4 [217] Table 3 and Table 4 provide a contrast of some test performances between a conventional solution and solutions of embodiments of the present invention. Table 3 lists the test performance of the conventional solution, and Table 4 lists the test performance of solutions of some of the embodiments of the present invention. TABLE 3 TABLE 4
[218] Pode-se compreende a partir do contraste entre as duas tabelas supracitadas que as soluções técnicas das modalidades da presente invenção têm um grande aprimoramento no desempenho de codificação e decodificação em comparação com a técnica anterior.[218] It can be understood from the contrast between the two aforementioned tables that the technical solutions of the embodiments of the present invention have a great improvement in coding and decoding performance compared to the prior art.
[219] A seguir fornece-se adicionalmente um aparelho relacionado configurado para implementar as soluções supracitadas.[219] The following additionally provides a related apparatus configured to implement the aforementioned solutions.
[220] Referindo-se à Figura 5, uma modalidade da presente invenção fornece um aparelho de previsão de imagem 500, que pode incluir uma primeira unidade de determinação 510, uma unidade de cálculo 520 e uma unidade de filtragem de interpolação 540.[220] Referring to Figure 5, an embodiment of the present invention provides an image prediction apparatus 500, which may include a first determination unit 510, a calculation unit 520, and an interpolation filtering unit 540.
[221] A primeira unidade de determinação 510 é configurada para determinar vetores de movimento de W pontos de controle em um bloco de imagem atual.[221] The first determination unit 510 is configured to determine motion vectors of W control points in a current image block.
[222] A unidade de cálculo 520 é configurada para obter, por meio de cálculo, vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle, em que a precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel, e as P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual.[222] The calculation unit 520 is configured to obtain, by calculation, motion vectors of P pixel units of the current image block using a motion model and the motion vectors of W control points, in whereas the precision of the motion vectors determined from the W control points is 1/n of the pixel precision, the precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of pixel precision, and P pixel units are some or all of the pixel units of the current image block.
[223] O vetor de movimento de cada uma das P unidades de pixel é utilizado para determinar uma unidade de pixel de referência correspondente, em uma imagem de referência, de uma unidade de pixel correspondente. W, n, e N são números inteiros maiores que 1. N é maior que n. P é um número inteiro positivo.[223] The motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit, in a reference image, from a corresponding pixel unit. W, n, and N are integers greater than 1. N is greater than n. P is a positive integer.
[224] A unidade de filtragem de interpolação 540 é configurada para realizar a filtragem de interpolação em um pixel da unidade de pixel de referência, na imagem de referência, de cada uma das P unidades de pixel utilizando- se um filtro de interpolação com uma fase de Q, para obter um valor de pixel previsto de cada uma das P unidades de pixel.[224] The interpolation filtering unit 540 is configured to perform interpolation filtering on one pixel of the reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a predicted pixel value from each of the P pixel units.
[225] O aparelho de previsão de imagem 500 pode incluir adicionalmente uma segunda unidade de determinação 530, configurada para determinar a unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel.[225] The image prediction apparatus 500 may additionally include a second determination unit 530 configured to determine the corresponding reference pixel unit, in the reference image, of each of the P pixel units using the movement of each of the P pixel units.
[226] Opcionalmente, em algumas implementações possíveis da presente invenção, um valor de N é um valor fixo predefinido, e Q é menor ou igual a N.[226] Optionally, in some possible implementations of the present invention, a value of N is a predefined fixed value, and Q is less than or equal to N.
[227] Opcionalmente, em algumas implementações possíveis da presente invenção, um componente horizontal ou um componente vertical de um dos vetores de movimento dos W pontos de controle é amplificado N vezes no modelo de movimento utilizando-se N, ou uma diferença de componente entre vetores de movimento de quaisquer dois dentre os W pontos de controle é amplificada N vezes no modelo de movimento utilizando-se N.[227] Optionally, in some possible implementations of the present invention, a horizontal component or a vertical component of one of the motion vectors of the W control points is amplified N times in the motion model using N, or a component difference between motion vectors of any two of the W control points is amplified N times in the motion model using N.
[228] Opcionalmente, em algumas implementações possíveis da presente invenção,[228] Optionally, in some possible implementations of the present invention,
[229] A segunda unidade de determinação 530 é configurada especificamente para: obter, por meio de cálculo, uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; e pesquisar, utilizando-se o vetor de movimento de cada uma das P unidades de pixel, a imagem de referência para uma unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel, em que a unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel e que é encontrada na imagem de referência é a unidade de pixel de referência, na imagem de referência, de cada uma das P unidades de pixel.[229] The second determination unit 530 is specifically configured to: obtain, by calculation, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units; and searching, using the motion vector of each of the P pixel units, the reference image for a reference pixel unit that corresponds to the entire pixel location of each of the P pixel units, wherein the unit of reference pixel that corresponds to the entire pixel location of each of the P pixel units and that is found in the reference image is the reference pixel unit, in the reference image, of each of the P pixel units.
[230] Opcionalmente, em algumas implementações possíveis da presente invenção, em um aspecto da obtenção, por meio de cálculo, de uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel, a segunda unidade de determinação 530 é configurada especificamente para: obter, por meio de cálculo, a localização de pixel inteiro de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, (xInt, yInt) representa coordenadas de localização de pixel inteiro de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[230] Optionally, in some possible implementations of the present invention, in an aspect of obtaining, by calculation, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units, the second determining unit 530 is specifically configured to: obtain, by means of calculation, the entire pixel location of each of the P pixel units, according to the following formula, using the vector of movement of each of the P pixel units: where M equals log2N when N is an integral power of 2, (xInt, yInt) represents integer pixel location coordinates of a pixel unit with coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the (x, y) coordinates in the current image block.
[231] Opcionalmente, em algumas implementações possíveis da presente invenção; a unidade de filtragem de interpolação é configurada especificamente para: obter, por meio de cálculo, uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; determinar, com base na fase de cada unidade de pixel, o filtro de interpolação com a fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e realizar a filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel correspondente.[231] Optionally, in some possible implementations of the present invention; the interpolation filtering unit is specifically configured to: obtain, by calculation, a phase of each of the P pixel units using the motion vector of each of the P pixel units; determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the corresponding pixel unit.
[232] Opcionalmente, em algumas implementações possíveis da presente invenção, em um aspecto da obtenção, por meio de cálculo, de uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel, a unidade de filtragem de interpolação é especificamente configurada para obter, por meio de cálculo, a fase de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, X' representa uma fase horizontal de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, Y' representa uma fase vertical da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[232] Optionally, in some possible implementations of the present invention, in an aspect of obtaining, by means of calculation, a phase of each of the P pixel units using the motion vector of each of the P pixel units , the interpolation filtering unit is specifically configured to obtain, through calculation, the phase of each of the P pixel units, according to the following formula, using the motion vector of each of the P units pixel: where M equals log2N when N is an integral power of 2, X' represents a horizontal phase of a pixel unit with coordinates of (x, y) in the current image block, Y' represents a vertical phase of the unit pixel with the coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y ) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[233] Opcionalmente, em algumas implementações possíveis da presente invenção, a fase inclui uma fase horizontal e uma fase vertical; e em um aspecto da determinação, com base na fase de cada unidade de pixel, do filtro de interpolação com a fase de Q que corresponde à unidade de pixel correspondente, a unidade de filtragem de interpolação é configurada especificamente para: determinar, com base na fase horizontal de cada unidade de pixel, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel correspondente; e determinar, com base na fase vertical de cada unidade de pixel, um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical.[233] Optionally, in some possible implementations of the present invention, the phase includes a horizontal phase and a vertical phase; and in one aspect of determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the corresponding pixel unit, the interpolation filter unit is specifically configured to: determine, based on the horizontal phase of each pixel unit, a horizontal interpolation filter with a Q phase that corresponds to the corresponding pixel unit; and determining, based on the vertical phase of each pixel unit, a vertical interpolation filter with a phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase, and A filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase.
[234] Opcionalmente, em algumas implementações possíveis da presente invenção, em um aspecto da realização da filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com az fase de Q que corresponde à unidade de pixel correspondente, a unidade de filtragem de interpolação é configurada especificamente para: realizar a filtragem de interpolação horizontal em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel i utilizando- se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel i, para obter um resultado de filtragem de interpolação horizontal; e realizar a filtragem de interpolação vertical no resultado de filtragem de interpolação horizontal utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel i, para obter um valor de pixel previsto da unidade de pixel i, em que a unidade de pixel i é qualquer uma dentre as P unidades de pixel; ou realizar a filtragem de interpolação vertical em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel j utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um resultado de filtragem de interpolação vertical; e realizar a filtragem de interpolação horizontal no resultado de filtragem de interpolação vertical utilizando-se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um valor de pixel previsto da unidade de pixel j, em que a unidade de pixel j é qualquer uma dentre as P unidades de pixel.[234] Optionally, in some possible implementations of the present invention, in an aspect of performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the determined interpolation filter with the z phase of Q corresponding to the corresponding pixel unit, the interpolation filtering unit is specifically configured to: perform horizontal interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a unit of pixel i using a horizontal interpolation filter determined with a phase of Q corresponding to the unit of pixel i, to obtain a horizontal interpolation filter result; and performing vertical interpolation filtering on the horizontal interpolation filtering result using a vertical interpolation filter determined with a phase of Q corresponding to pixel unit i, to obtain a predicted pixel value of pixel unit i, in that pixel unit i is any one of P pixel units; or perform vertical interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a pixel unit j using a vertical interpolation filter determined with a phase of Q that corresponds to the pixel unit j, to obtain a vertical interpolation filtering result; and performing horizontal interpolation filtering on the vertical interpolation filtering result using a determined horizontal interpolation filter with a phase of Q corresponding to pixel unit j, to obtain a predicted pixel value of pixel unit j, in that pixel unit j is any one of P pixel units.
[235] Opcionalmente, em algumas implementações possíveis da presente invenção, o modelo de movimento é um modelo de movimento translacional, um modelo de movimento de função afim, um modelo de movimento rotacional, um modelo de movimento de ampliação, um modelo de movimento parabólico, um modelo de movimento cisalhante, um modelo de movimento perspectivo ou um modelo de movimento bilinear.[235] Optionally, in some possible implementations of the present invention, the motion model is a translational motion model, an affine function motion model, a rotational motion model, a magnification motion model, a parabolic motion model , a shear motion model, a perspective motion model, or a bilinear motion model.
[236] Opcionalmente, em algumas implementações possíveis da presente invenção, o modelo de movimento é representado conforme a seguir quando W é igual a 2: ou , em que L representa uma largura ou uma altura do bloco de imagem atual, (v0x ,v0y) e (v1x,v1y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de dois pontos de controle, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[236] Optionally, in some possible implementations of the present invention, the motion model is represented as follows when W is equal to 2: or , where L represents a width or a height of the current image block, (v0x ,v0y) and (v1x,v1y) represent motion vectors, whose precision is 1/n of the pixel precision, of two control points, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector , whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[237] Opcionalmente, em algumas implementações possíveis da presente invenção; o modelo de movimento é representado conforme a seguir quando W é igual a 3: ou em que vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, (v0x,v0y) , (v1x,v1y) , e (v2x,v2y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de três pontos de controle, w representa uma largura do bloco de imagem atual, e h representa uma altura do bloco de imagem atual.[237] Optionally, in some possible implementations of the present invention; The motion model is represented as follows when W equals 3: or where vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, vNy represents a vertical component of the vector movement, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, (v0x,v0y) , (v1x,v1y) , and (v2x,v2y) ) represent motion vectors, whose precision is 1/n of the pixel precision, of three control points, w represents a width of the current image block, and h represents a height of the current image block.
[238] Opcionalmente, em algumas implementações possíveis da presente invenção, os vetores de movimento dos W pontos de controle são previstos com base em um vetor de movimento, cuja precisão é 1/n da precisão de pixel, de um bloco de imagem codificado ou um bloco de imagem decodificado que circunda o bloco de imagem atual.[238] Optionally, in some possible implementations of the present invention, the motion vectors of the W control points are predicted based on a motion vector, the precision of which is 1/n of the pixel precision, of a coded image block or a decoded image block that surrounds the current image block.
[239] Opcionalmente, em algumas implementações possíveis da presente invenção, o aparelho de previsão de imagem 500 é aplicado a um aparelho de codificação de vídeo, ou o aparelho de previsão de imagem 500 é aplicado a um aparelho de decodificação de vídeo.[239] Optionally, in some possible implementations of the present invention, the image prediction apparatus 500 is applied to a video coding apparatus, or the image prediction apparatus 500 is applied to a video decoding apparatus.
[240] Pode-se compreender que as funções dos módulos funcionais do aparelho de previsão de imagem 500 nessa modalidade podem ser implementadas especificamente de acordo com os métodos nas modalidades de método supracitadas. Para um processo de implementação específico do aparelho de previsão de imagem 500, pode-se fazer referência a descrições relacionadas nas modalidades de método supracitadas. Os detalhes não serão descritos novamente no presente documento. O aparelho de previsão de imagem 500 pode ser qualquer aparelho que precise emitir ou reproduzir um vídeo, por exemplo, um computador do tipo notebook, a computador do tipo tablet, um computador de uso pessoal, um telefone móvel ou outro dispositivo.[240] It can be understood that the functions of the functional modules of the image prediction apparatus 500 in this embodiment can be implemented specifically in accordance with the methods in the aforementioned method embodiments. For a specific implementation process of the image prediction apparatus 500, reference may be made to related descriptions in the aforementioned method embodiments. Details will not be described again in this document. The image prediction device 500 can be any device that needs to output or play a video, for example, a notebook computer, a tablet computer, a personal computer, a mobile phone or other device.
[241] Pode-se compreender que, nessa modalidade, o aparelho de previsão de imagem 500 obtém, por meio de cálculo, o vetor de movimento, cuja precisão é 1/N da precisão de pixel, de cada unidade de pixel do bloco de imagem atual utilizando-se o modelo de movimento e os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos W pontos de controle, em que N é maior que n. Em outras palavras, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada unidade de pixel do bloco de imagem atual é mais alta que a precisão dos vetores de movimento determinados dos W pontos de controle. O vetor de movimento de precisão mais alta é obtido primeiro. Portanto, o vetor de movimento de precisão mais alta de cada unidade de pixel do bloco de imagem atual é utilizado para determinar a unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual, e a filtragem de interpolação é realizada no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual utilizando-se o filtro de interpolação com a fase de Q (Q é maior que n), para obter o valor de pixel previsto de cada unidade de pixel do bloco de imagem atual. Pode-se compreender que a maneira anteriormente mencionada auxilia na redução de uma quantidade de vezes exigidas de filtragem de interpolação para se obter, por meio de previsão, o valor de pixel previsto de precisão mais alta do bloco de imagem atual (por exemplo, um processo intermediário para se obter um valor de pixel previsto de precisão mais baixa realizando-se uma filtragem de interpolação de precisão mais baixa pode não ser exigido), de modo a reduzir uma quantidade de caches intermediários e operações de memória que são exigidos para a filtragem de interpolação durante um processo de previsão de imagem, e reduzir a complexidade de cálculo durante o processo de previsão de imagem.[241] It can be understood that, in this embodiment, the image prediction apparatus 500 obtains, through calculation, the motion vector, the precision of which is 1/N of the pixel precision, of each pixel unit of the block of current image using the motion model and motion vectors, whose precision is 1/n of the pixel precision, of the W control points, where N is greater than n. In other words, the precision of the motion vector that is obtained through calculation and that belongs to each pixel unit of the current image block is higher than the precision of the motion vectors determined from the W control points. The highest precision motion vector is obtained first. Therefore, the highest precision motion vector of each pixel unit of the current image block is used to determine the corresponding reference pixel unit, in the reference image, of each pixel unit of the current image block, and the Interpolation filtering is performed on the corresponding reference pixel unit pixel in the reference image of each pixel unit of the current image block using the interpolation filter with the phase of Q (Q is greater than n), to obtain the predicted pixel value of each pixel unit of the current image block. It can be understood that the aforementioned manner assists in reducing a number of required times of interpolation filtering to obtain, through prediction, the highest precision predicted pixel value of the current image block (e.g., a intermediate process to obtain a lower precision predicted pixel value (performing lower precision interpolation filtering may not be required), so as to reduce the amount of intermediate caches and memory operations that are required for filtering interpolation during an image prediction process, and reduce the calculation complexity during the image prediction process.
[242] Referindo-se à Figura 6, a Figura 6 é um diagrama de bloco estrutural de um aparelho de previsão de imagem 600 de acordo com outra modalidade da presente invenção. O aparelho de previsão de imagem 600 pode incluir pelo menos um processador 601, uma memória 605 e pelo menos um barramento de comunicações 602. O barramento de comunicações 602 é configurado para implementar uma conexão e uma comunicação entre os componentes.[242] Referring to Figure 6, Figure 6 is a structural block diagram of an image prediction apparatus 600 in accordance with another embodiment of the present invention. The image prediction apparatus 600 may include at least one processor 601, a memory 605, and at least one communications bus 602. The communications bus 602 is configured to implement a connection and communication between the components.
[243] O aparelho de previsão de imagem 600 pode incluir opcionalmente include menos uma interface de rede 604 e/ou uma interface de usuário 603. A interface de usuário 603 pode incluir uma tela (por exemplo, dispositivo de geração de imagens holográficas, um tubo de raios catódicos ou um projetor), um dispositivo apontador (por exemplo, um mouse, um trackball, um painel sensível ao toque ou uma tela sensível ao toque), uma câmera e/ou um aparelho de captação de som ou semelhantes.[243] The image prediction apparatus 600 may optionally include a network interface 604 and/or a user interface 603. The user interface 603 may include a screen (e.g., holographic imaging device, a cathode ray tube or a projector), a pointing device (e.g. a mouse, a trackball, a touch panel or a touch screen), a camera and/or a sound pickup device or the like.
[244] A memória 605 pode incluir uma memória somente de leitura e uma memória de acesso aleatório e fornecer uma instrução e dados para o processador 601. Uma parte da memória 605 pode incluir adicionalmente uma memória de acesso aleatório não volátil.[244] Memory 605 may include a read-only memory and a random access memory and provide an instruction and data to the processor 601. A portion of the memory 605 may additionally include a non-volatile random access memory.
[245] Em algumas implementações, a memória 605 armazena os seguintes elementos: um módulo executável ou uma estrutura de dados, seus subconjuntos ou seus conjuntos estendidos; e a memória 605 inclui: um sistema operacional 6051, que inclui vários programas de sistema, e configurado para implementar vários serviços básicos e operar tarefas baseadas em hardware; e um módulo de programa aplicativo 6052, que inclui vários programas aplicativos, e configurado para implementar vários serviços de aplicativo.[245] In some implementations, memory 605 stores the following elements: an executable module or data structure, subsets thereof, or extended sets thereof; and memory 605 includes: an operating system 6051, which includes various system programs, and configured to implement various basic services and operate hardware-based tasks; and an application program module 6052, which includes various application programs, and configured to implement various application services.
[246] Nessa modalidade da presente invenção, invocando- se o programa ou a instrução que está armazenada na memória 605, o processador 601 é configurado para: determinar vetores de movimento de W pontos de controle em um bloco de imagem atual; obter, por meio de cálculo, vetores de movimento de P unidades de pixel do bloco de imagem atual utilizando-se um modelo de movimento e os vetores de movimento dos W pontos de controle, em que a precisão dos vetores de movimento determinados dos W pontos de controle é 1/n da precisão de pixel, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada uma das P unidades de pixel é 1/N da precisão de pixel, as P unidades de pixel são algumas ou todas as unidades de pixel do bloco de imagem atual, o vetor de movimento de cada uma das P unidades de pixel é utilizado para determinar uma unidade de pixel de referência correspondente, em uma imagem de referência, de uma unidade de pixel correspondente, W, n, e N são números inteiros maiores que 1, N é maior que n, e P é um número inteiro positivo; e realizar a filtragem de interpolação em um pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q, para obter um valor de pixel previsto de cada uma das P unidades de pixel, em que Q é um número inteiro maior que n.[246] In this embodiment of the present invention, by invoking the program or instruction that is stored in memory 605, the processor 601 is configured to: determine movement vectors of W control points in a current image block; obtain, through calculation, motion vectors of P pixel units of the current image block using a motion model and the motion vectors of the W control points, where the precision of the determined motion vectors of the W points of control is 1/n of the pixel precision, the precision of the motion vector that is obtained through calculation and that belongs to each of the P pixel units is 1/N of the pixel precision, the P pixel units are some or all of the pixel units of the current image block, the motion vector of each of the P pixel units is used to determine a corresponding reference pixel unit, in a reference image, from a corresponding pixel unit, W, n, and N are integers greater than 1, N is greater than n, and P is a positive integer; and performing interpolation filtering on a pixel of the corresponding reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q, to obtain a predicted pixel value of each of the P pixel units, where Q is an integer greater than n.
[247] Opcionalmente, em algumas implementações possíveis da presente invenção, um valor de N é um valor fixo predefinido, e Q é menor ou igual a N.[247] Optionally, in some possible implementations of the present invention, a value of N is a predefined fixed value, and Q is less than or equal to N.
[248] Opcionalmente, em algumas implementações possíveis da presente invenção, um componente horizontal ou um componente vertical de um dos vetores de movimento dos W pontos de controle é amplificado N vezes no modelo de movimento utilizando-se N, ou uma diferença de componente entre vetores de movimento de quaisquer dois dentre os W pontos de controle é amplificada N vezes no modelo de movimento utilizando-se N.[248] Optionally, in some possible implementations of the present invention, a horizontal component or a vertical component of one of the motion vectors of the W control points is amplified N times in the motion model using N, or a component difference between motion vectors of any two of the W control points is amplified N times in the motion model using N.
[249] Opcionalmente, em algumas implementações possíveis da presente invenção, a determinação, através do processador, de uma unidade de pixel de referência correspondente, em uma imagem de referência, de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; e pesquisar, utilizando-se o vetor de movimento de cada uma das P unidades de pixel, a imagem de referência para uma unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel, em que a unidade de pixel de referência que corresponde à localização de pixel inteiro de cada uma das P unidades de pixel e que é encontrada na imagem de referência é a unidade de pixel de referência, na imagem de referência, de cada uma das P unidades de pixel.[249] Optionally, in some possible implementations of the present invention, determining, through the processor, a corresponding reference pixel unit, in a reference image, of each of the P pixel units using the motion vector of each of the P pixel units includes: obtaining, by calculation, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units; and searching, using the motion vector of each of the P pixel units, the reference image for a reference pixel unit that corresponds to the entire pixel location of each of the P pixel units, wherein the unit of reference pixel that corresponds to the entire pixel location of each of the P pixel units and that is found in the reference image is the reference pixel unit, in the reference image, of each of the P pixel units.
[250] Opcionalmente, em algumas implementações possíveis da presente invenção, a obtenção, por meio de cálculo através do processador, de uma localização de pixel inteiro de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, a localização de pixel inteiro de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, (xInt, yInt) representa coordenadas de localização de pixel inteiro de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[250] Optionally, in some possible implementations of the present invention, obtaining, by means of calculation through the processor, an integer pixel location of each of the P pixel units using the motion vector of each of the P pixel units includes: obtaining, through calculation, the entire pixel location of each of the P pixel units, according to the following formula, using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, (xInt, yInt) represents integer pixel location coordinates of a pixel unit with coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the (x, y) coordinates in the current image block.
[251] Opcionalmente, em algumas implementações possíveis da presente invenção, a realização, através do processador, da filtragem de interpolação em um pixel da unidade de pixel de referência, na imagem de referência, de cada uma das P unidades de pixel utilizando-se um filtro de interpolação com uma fase de Q inclui: obter, por meio de cálculo, uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel; determinar, com base na fase de cada unidade de pixel, o filtro de interpolação com a fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação corresponde à fase; e realizar a filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel correspondente.[251] Optionally, in some possible implementations of the present invention, performing, through the processor, interpolation filtering on a pixel of the reference pixel unit, in the reference image, of each of the P pixel units using an interpolation filter with a phase of Q includes: obtaining, by calculation, a phase of each of the P pixel units using the motion vector of each of the P pixel units; determining, based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the interpolation filter corresponds to the phase; and performing interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation filter determined with the phase of Q that corresponds to the corresponding pixel unit.
[252] Opcionalmente, em algumas implementações possíveis da presente invenção, a obtenção, por meio de cálculo através do processador, de uma fase de cada uma das P unidades de pixel utilizando-se o vetor de movimento de cada uma das P unidades de pixel inclui: obter, por meio de cálculo, a fase de cada uma das P unidades de pixel, de acordo com a fórmula a seguir, utilizando-se o vetor de movimento de cada uma das P unidades de pixel: em que M é igual a log2N quando N é uma potência integral de 2, X' representa uma fase horizontal de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, Y' representa uma fase vertical da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[252] Optionally, in some possible implementations of the present invention, obtaining, through calculation through the processor, a phase of each of the P pixel units using the motion vector of each of the P pixel units includes: obtaining, through calculation, the phase of each of the P pixel units, according to the following formula, using the motion vector of each of the P pixel units: where M equals log2N when N is an integral power of 2, X' represents a horizontal phase of a pixel unit with coordinates of (x, y) in the current image block, Y' represents a vertical phase of the unit pixel with the coordinates of (x, y) in the current image block, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y ) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[253] Opcionalmente, em algumas implementações possíveis da presente invenção, a fase inclui uma fase horizontal e uma fase vertical; e a determinação, através do processador e com base na fase de cada unidade de pixel, do filtro de interpolação com a fase de Q que corresponde à unidade de pixel inclui: determinar, com base na fase horizontal de cada unidade de pixel, um filtro de interpolação horizontal com uma fase de Q que corresponde à unidade de pixel correspondente; e determinar, com base na fase vertical de cada unidade de pixel, um filtro de interpolação vertical com uma fase de Q que corresponde à unidade de pixel correspondente, em que um coeficiente de filtragem utilizado pelo filtro de interpolação horizontal corresponde à fase horizontal, e um coeficiente de filtragem utilizado pelo filtro de interpolação vertical corresponde à fase vertical.[253] Optionally, in some possible implementations of the present invention, the phase includes a horizontal phase and a vertical phase; and determining, via the processor and based on the phase of each pixel unit, the interpolation filter with the phase of Q that corresponds to the pixel unit includes: determining, based on the horizontal phase of each pixel unit, a filter horizontal interpolation with a Q phase that corresponds to the corresponding pixel unit; and determining, based on the vertical phase of each pixel unit, a vertical interpolation filter with a phase of Q that corresponds to the corresponding pixel unit, wherein a filtering coefficient used by the horizontal interpolation filter corresponds to the horizontal phase, and A filtering coefficient used by the vertical interpolation filter corresponds to the vertical phase.
[254] Opcionalmente, em algumas implementações possíveis da presente invenção, a realização, através do processador, da filtragem de interpolação no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel utilizando-se o filtro de interpolação determinado com a fase de Q que corresponde à unidade de pixel inclui: realizar a filtragem de interpolação horizontal em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel i utilizando- se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel i, para obter um resultado de filtragem de interpolação horizontal; e realizar a filtragem de interpolação vertical no resultado de filtragem de interpolação horizontal utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel i, para obter um valor de pixel previsto da unidade de pixel i, em que a unidade de pixel i é qualquer uma dentre as P unidades de pixel; ou realizar a filtragem de interpolação vertical em um pixel de uma unidade de pixel de referência correspondente, na imagem de referência, de uma unidade de pixel j utilizando-se um filtro de interpolação vertical determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um resultado de filtragem de interpolação vertical; e realizar a filtragem de interpolação horizontal no resultado de filtragem de interpolação vertical utilizando-se um filtro de interpolação horizontal determinado com uma fase de Q que corresponde à unidade de pixel j, para obter um valor de pixel previsto da unidade de pixel j, em que a unidade de pixel j é qualquer uma dentre as P unidades de pixel.[254] Optionally, in some possible implementations of the present invention, performing, through the processor, interpolation filtering on the pixel of the corresponding reference pixel unit, in the reference image, of each pixel unit using the interpolation determined with the phase of Q that corresponds to the pixel unit includes: performing horizontal interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a pixel unit i using a horizontal interpolation determined with a phase of Q corresponding to pixel unit i, to obtain a horizontal interpolation filtering result; and performing vertical interpolation filtering on the horizontal interpolation filtering result using a vertical interpolation filter determined with a phase of Q corresponding to pixel unit i, to obtain a predicted pixel value of pixel unit i, in that pixel unit i is any one of P pixel units; or perform vertical interpolation filtering on a pixel of a corresponding reference pixel unit, in the reference image, of a pixel unit j using a vertical interpolation filter determined with a phase of Q that corresponds to the pixel unit j, to obtain a vertical interpolation filtering result; and performing horizontal interpolation filtering on the vertical interpolation filtering result using a determined horizontal interpolation filter with a phase of Q corresponding to pixel unit j, to obtain a predicted pixel value of pixel unit j, in that pixel unit j is any one of P pixel units.
[255] Opcionalmente, em algumas implementações possíveis da presente invenção, o modelo de movimento é um modelo de movimento translacional, um modelo de movimento de função afim, um modelo de movimento rotacional, um modelo de movimento parabólico, um modelo de movimento cisalhante, um modelo de movimento de ampliação, um modelo de movimento perspectivo, ou um modelo de movimento bilinear.[255] Optionally, in some possible implementations of the present invention, the motion model is a translational motion model, an affine function motion model, a rotational motion model, a parabolic motion model, a shear motion model, a magnification motion model, a perspective motion model, or a bilinear motion model.
[256] Opcionalmente, em algumas implementações possíveis da presente invenção, o modelo de movimento é representado conforme a seguir quando W é igual a 2: ou em que L representa uma largura ou uma altura do bloco de imagem atual, (v0x,v0y) e (v1x,v1y) representam vetores de movimento, cuja precisão é 1/n da precisão de pixel, de dois pontos de controle, vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, e vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de (x, y) no bloco de imagem atual.[256] Optionally, in some possible implementations of the present invention, the motion model is represented as follows when W is equal to 2: or where L represents a width or a height of the current image block, (v0x,v0y) and (v1x,v1y) represent motion vectors, whose precision is 1/n of the pixel precision, of two control points, vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, and vNy represents a vertical component of the motion vector, whose precision is 1/N of the pixel precision, of the pixel unit with the coordinates of (x, y) in the current image block.
[257] Opcionalmente, em algumas implementações possíveis da presente invenção; ou em que vNx representa um componente horizontal de um vetor de movimento, cuja precisão é 1/N da precisão de pixel, de uma unidade de pixel com coordenadas de (x, y) no bloco de imagem atual, vNy representa um componente vertical do vetor de movimento, cuja precisão é 1/N da precisão de pixel, da unidade de pixel com as coordenadas de imagem atual, (v0x,v0y) , (v1x,v1y) , e (v2x,v2y) de movimento, cuja precisão é 1/n da precisão de pixel, de três pontos de controle, w representa uma largura do bloco de imagem atual, e h representa uma altura do bloco de imagem atual.[257] Optionally, in some possible implementations of the present invention; or where vNx represents a horizontal component of a motion vector, whose precision is 1/N of the pixel precision, of a pixel unit with coordinates of (x, y) in the current image block, vNy represents a vertical component of the vector of motion, whose precision is 1/N of the pixel precision, of the pixel unit with the current image coordinates, (v0x,v0y) , (v1x,v1y) , and (v2x,v2y) of motion, whose precision is 1 /n of pixel precision, of three control points, w represents a width of the current image block, and h represents a height of the current image block.
[258] Opcionalmente, em algumas implementações possíveis da presente invenção, os vetores de movimento dos W pontos de controle são previstos com base em um vetor de movimento, cuja precisão é 1/n da precisão de pixel, de um bloco de imagem codificado ou um bloco de imagem decodificado que circunda o bloco de imagem atual.[258] Optionally, in some possible implementations of the present invention, the motion vectors of the W control points are predicted based on a motion vector, the precision of which is 1/n of the pixel precision, of a coded image block or a decoded image block that surrounds the current image block.
[259] Opcionalmente, em algumas implementações possíveis da presente invenção, um valor de N é um valor fixo predefinido.[259] Optionally, in some possible implementations of the present invention, a value of N is a predefined fixed value.
[260] Opcionalmente, em algumas implementações possíveis da presente invenção, o aparelho de previsão de imagem 600 é aplicado a um aparelho de codificação de vídeo, ou o aparelho de previsão de imagem 600 é aplicado a um aparelho de decodificação de vídeo.[260] Optionally, in some possible implementations of the present invention, the image prediction apparatus 600 is applied to a video coding apparatus, or the image prediction apparatus 600 is applied to a video decoding apparatus.
[261] Pode-se compreender que as funções dos módulos funcionais do aparelho de previsão de imagem 600 nessa modalidade podem ser implementadas especificamente de acordo com os métodos nas modalidades de método supracitadas. Para um processo de implementação específico do aparelho de previsão de imagem 600, pode-se fazer referência a descrições relacionadas nas modalidades de método supracitadas. Os detalhes não serão descritos novamente no presente documento. O aparelho de previsão de imagem 600 pode ser qualquer aparelho que precise emitir ou reproduzir um vídeo, por exemplo, um computador do tipo notebook, a computador do tipo tablet, um computador de uso pessoal, um telefone móvel ou outro dispositivo.[261] It can be understood that the functions of the functional modules of the image prediction apparatus 600 in this embodiment can be implemented specifically in accordance with the methods in the aforementioned method embodiments. For a specific implementation process of the image prediction apparatus 600, reference may be made to related descriptions in the aforementioned method embodiments. Details will not be described again in this document. The image prediction device 600 can be any device that needs to output or play a video, for example, a notebook computer, a tablet computer, a personal computer, a mobile phone or other device.
[262] Pode-se compreender que, no método de previsão de imagem fornecido nessa modalidade, o aparelho de previsão de imagem 600 obtém, por meio de cálculo, o vetor de movimento, cuja precisão é 1/N da precisão de pixel, de cada unidade de pixel do bloco de imagem atual utilizando-se o modelo de movimento e os vetores de movimento, cuja precisão é 1/n da precisão de pixel, dos W pontos de controle, em que N é maior que n. Em outras palavras, a precisão do vetor de movimento que é obtida por meio de cálculo e que pertence a cada unidade de pixel do bloco de imagem atual é mais alta que a precisão dos vetores de movimento determinados dos W pontos de controle. O vetor de movimento de precisão mais alta é obtido primeiro. Portanto, o vetor de movimento de precisão mais alta de cada unidade de pixel do bloco de imagem atual é utilizado para determinar a unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual, e a filtragem de interpolação é realizada no pixel da unidade de pixel de referência correspondente, na imagem de referência, de cada unidade de pixel do bloco de imagem atual utilizando-se o filtro de interpolação com a fase de Q (Q é maior que n), para obter o valor de pixel previsto de cada unidade de pixel do bloco de imagem atual. Pode-se compreender que a maneira anteriormente mencionada auxilia na redução de uma quantidade de vezes exigidas de filtragem de interpolação para se obter, por meio de previsão, o valor de pixel previsto de precisão mais alta do bloco de imagem atual (por exemplo, um processo intermediário para se obter um valor de pixel previsto de precisão mais baixa realizando-se uma filtragem de interpolação de precisão mais baixa pode não ser exigido), de modo a reduzir uma quantidade de caches intermediários e operações de memória que são exigidos para a filtragem de interpolação durante um processo de previsão de imagem, e reduzir a complexidade de cálculo durante o processo de previsão de imagem.[262] It can be understood that, in the image prediction method provided in this embodiment, the image prediction apparatus 600 obtains, through calculation, the motion vector, the accuracy of which is 1/N of the pixel accuracy, of each pixel unit of the current image block using the motion model and motion vectors, whose precision is 1/n of the pixel precision, of the W control points, where N is greater than n. In other words, the precision of the motion vector that is obtained through calculation and that belongs to each pixel unit of the current image block is higher than the precision of the motion vectors determined from the W control points. The highest precision motion vector is taken first. Therefore, the highest precision motion vector of each pixel unit of the current image block is used to determine the corresponding reference pixel unit, in the reference image, of each pixel unit of the current image block, and the Interpolation filtering is performed on the pixel of the corresponding reference pixel unit in the reference image of each pixel unit of the current image block using the interpolation filter with the phase of Q (Q is greater than n), to obtain the predicted pixel value of each pixel unit of the current image block. It can be understood that the aforementioned manner assists in reducing a number of required times of interpolation filtering to obtain, through prediction, the highest precision predicted pixel value of the current image block (e.g., a intermediate process to obtain a lower precision predicted pixel value (performing lower precision interpolation filtering may not be required), so as to reduce the amount of intermediate caches and memory operations that are required for filtering interpolation during an image prediction process, and reduce the calculation complexity during the image prediction process.
[263] Nas modalidades supracitadas, a descrição de cada modalidade tem respectivos focos. Para uma parte que não é descrita em detalhes em uma modalidade, pode-se fazer referência a descrições relacionadas em outras modalidades.[263] In the aforementioned modalities, the description of each modality has respective focuses. For a part that is not described in detail in one embodiment, reference may be made to related descriptions in other embodiments.
[264] Em várias modalidades fornecidas neste pedido, deve-se compreender que o aparelho revelado pode ser implementado de outros modos. Por exemplo, as modalidades de aparelho descritas são meramente exemplos. Por exemplo, a divisão de unidades é meramente uma divisão de função lógica e pode ser outra divisão em uma implementação real. Por exemplo, uma pluralidade de unidades ou componentes pode ser combinada ou integrado em outro sistema, ou alguns recursos podem ser ignorados ou não realizados. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou conexões de comunicação exibidos ou discutidos podem ser implementados com o uso de algumas interfaces. Os acoplamentos indiretos ou as conexões de comunicação entre os aparelhos ou as unidades podem ser implementados de modo eletrônico ou de outros modos.[264] In various embodiments provided in this application, it is to be understood that the disclosed apparatus may be implemented in other ways. For example, the apparatus embodiments described are merely examples. For example, unit division is merely a logical function division and may be another division in a real implementation. For example, a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not realized. Furthermore, the mutual couplings or direct couplings or communication connections shown or discussed can be implemented using some interfaces. Indirect couplings or communication connections between devices or units can be implemented electronically or in other ways.
[265] As unidades descritas como partes separadas podem ou não ser separadas fisicamente, e as partes exibidas como unidades podem ou não ser unidades físicas, podem estar localizadas em uma posição, ou podem estar distribuídas em uma pluralidade de unidades de rede. Algumas ou todas as unidades podem ser selecionados de acordo com exigências reais para se alcançar os objetivos das soluções das modalidades.[265] Units described as separate parts may or may not be physically separated, and parts shown as units may or may not be physical units, may be located in one position, or may be distributed across a plurality of network units. Some or all units can be selected according to actual requirements to achieve the objectives of the modalities solutions.
[266] Além disso, as modalidades funcionais nas modalidades da presente invenção podem ser integradas em uma unidade de processamento, ou cada uma das unidades pode existir fisicamente sozinha, ou pelo menos duas unidades podem ser integrados em uma unidade. A unidade integrada pode ser implementada em uma forma de hardware, ou pode ser implementada em uma forma de uma unidade funcional de software.[266] Furthermore, the functional embodiments in the embodiments of the present invention can be integrated into a processing unit, or each of the units can physically exist alone, or at least two units can be integrated into one unit. The integrated unit may be implemented in a hardware form, or it may be implemented in a software functional unit form.
[267] Quando a unidade integrada for implementada na forma de uma unidade funcional de software e comercializada ou utilizada como um produto independente, a unidade integrada pode ser armazenada em uma mídia de armazenamento legível por computador. Com base em tal compreensão, as soluções técnicas da presente invenção essencialmente, ou a parte que contribui para a técnica anterior, ou todas ou uma parte das soluções técnicas podem ser implementadas em uma forma de produto de software. O produto de software de computador é armazenado em uma mídia de armazenamento e inclui várias instruções para instruir um dispositivo de computador (que pode ser um computador de uso pessoal, um servidor, um dispositivo de rede ou semelhantes) para realizar todas ou parte das etapas dos métodos descritos nas modalidades da presente invenção. A mídia de armazenamento supracitada inclui: qualquer mídia que possa armazenar código de programa, tal como uma unidade flash de USB, uma memória somente de leitura (ROM, Read-Only Memory), a memória de acesso aleatório (RAM, Random Access Memory), um disco rígido removível, um disco magnético ou um disco óptico.[267] When the integrated unit is implemented in the form of a software functional unit and marketed or used as a stand-alone product, the integrated unit may be stored on a computer-readable storage medium. Based on such an understanding, the technical solutions of the present invention essentially, or the part contributing to the prior art, or all or a part of the technical solutions can be implemented in a software product form. The computer software product is stored on a storage medium and includes various instructions for instructing a computer device (which may be a personal computer, a server, a network device, or the like) to perform all or part of the steps of the methods described in embodiments of the present invention. The aforementioned storage media includes: any media that can store program code, such as a USB flash drive, read-only memory (ROM), random access memory (RAM) , a removable hard disk, a magnetic disk, or an optical disk.
[268] As modalidades supracitadas são destinadas meramente a descrever as soluções técnicas da presente invenção, mas não a limitar a presente invenção. Embora a presente invenção tenha sido descrita em detalhes com referência às modalidades supracitadas, os indivíduos de habilidade comum na técnica devem compreender que podem ainda realizar modificações às soluções técnicas descritas nas modalidades supracitadas ou realizar substituições equivalentes a alguns recursos técnicos das mesmas, sem se afastar do escopo das soluções técnicas das modalidades da presente invenção.[268] The aforementioned embodiments are intended merely to describe the technical solutions of the present invention, but not to limit the present invention. Although the present invention has been described in detail with reference to the aforementioned embodiments, individuals of ordinary skill in the art should understand that they may still make modifications to the technical solutions described in the aforementioned embodiments or make equivalent substitutions for some technical features thereof, without departing from of the scope of the technical solutions of the embodiments of the present invention.
Claims (37)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510391765.7 | 2015-07-03 | ||
CN201510391765.7A CN106331722B (en) | 2015-07-03 | 2015-07-03 | Image prediction method and relevant device |
PCT/CN2016/087750 WO2017005128A1 (en) | 2015-07-03 | 2016-06-29 | Image prediction method and related device |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112018000085A2 BR112018000085A2 (en) | 2018-08-28 |
BR112018000085B1 true BR112018000085B1 (en) | 2023-08-22 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7558352B2 (en) | Image prediction method and related device | |
JP6689499B2 (en) | Image prediction method and related apparatus | |
JP7313816B2 (en) | Image prediction method and related device | |
BR122020019754B1 (en) | IMAGE PREDICTION METHOD AND RELATED APPARATUS, DECODER AND COMPUTER READABLE STORAGE MEDIUM | |
BR112018000085B1 (en) | METHOD AND APPARATUS FOR IMAGE PREDICTION AND COMPUTER READABLE MEDIA | |
BR112017007399B1 (en) | IMAGE PREDICTION METHOD AND RELATED DEVICE | |
BR122023012613B1 (en) | IMAGE PREDICTION METHOD AND RELATED DEVICE |