BR112017001100B1 - METHOD AND APPARATUS FOR DERIVING MOTION VECTOR FOR BLOCKS OF AN IMAGE - Google Patents

METHOD AND APPARATUS FOR DERIVING MOTION VECTOR FOR BLOCKS OF AN IMAGE Download PDF

Info

Publication number
BR112017001100B1
BR112017001100B1 BR112017001100-0A BR112017001100A BR112017001100B1 BR 112017001100 B1 BR112017001100 B1 BR 112017001100B1 BR 112017001100 A BR112017001100 A BR 112017001100A BR 112017001100 B1 BR112017001100 B1 BR 112017001100B1
Authority
BR
Brazil
Prior art keywords
block
sub
motion
current
affine
Prior art date
Application number
BR112017001100-0A
Other languages
Portuguese (pt)
Other versions
BR112017001100A2 (en
BR112017001100A8 (en
Inventor
Han Huang
Original Assignee
Hfi Innovation Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/CN2014/082523 external-priority patent/WO2016008157A1/en
Application filed by Hfi Innovation Inc filed Critical Hfi Innovation Inc
Publication of BR112017001100A2 publication Critical patent/BR112017001100A2/en
Publication of BR112017001100A8 publication Critical patent/BR112017001100A8/en
Publication of BR112017001100B1 publication Critical patent/BR112017001100B1/en

Links

Abstract

MÉTODO DE DERIVAÇÃO DE VETOR DE MOVIMENTO PARA CODIFICAÇÃO DE VÍDEO. São divulgados um método e um aparelho para derivar um vetor de movimento de sub-bloco para o sub-bloco corrente com base em uma função de modelo de movimento dependendo da localização do sub-bloco corrente. O vetor de movimento do sub-bloco derivado é então usado para codificar ou decodificar o sub-bloco. A função de modelo de movimento pode corresponder a uma função afim de modelo de movimento ou a uma função bilinear de modelo de movimento. Em uma modalidade, um novo modo de Fusão pode ser usado para aplicar uma predição de um bloco corrente por aplicação de predição com base em sub-blocos, usando o vetor de movimento de sub-bloco derivado da função de modelo de movimento. Em uma outra modalidade, um modo de inter-predição adicional pode ser usado para aplicar a predição de um bloco corrente por aplicação de predição com base em sub-blocos usando o vetor de movimento de sub-bloco derivado da função do modelo de movimento.MOTION VECTOR DERIVATION METHOD FOR VIDEO CODING. A method and apparatus for deriving a sub-block motion vector for the current sub-block based on a motion model function depending on the location of the current sub-block are disclosed. The motion vector of the derived sub-block is then used to encode or decode the sub-block. The motion model function can correspond to an affine motion model function or a bilinear motion model function. In one embodiment, a new Fusion mode may be used to apply a prediction of a current block by applying prediction based on sub-blocks, using the sub-block motion vector derived from the motion model function. In another embodiment, an additional inter-prediction mode can be used to apply the prediction of a current block by applying prediction based on sub-blocks using the sub-block motion vector derived from the motion model function.

Description

REFERÊNCIA CRUZADA A PEDIDOS CORRELATOSCROSS REFERENCE TO RELATED ORDERS

[001]A presente invenção reivindica prioridade ao pedido de patente PCT No. PCT/CN2014/082523, depositado em 18 de julho de 2014. O pedido de patente PCT é pelo presente integralmente incorporado ao presente documento a título de referência.[001] The present invention claims priority to PCT patent application No. PCT/CN2014/082523, filed on July 18, 2014. The PCT patent application is hereby fully incorporated into this document by way of reference.

CAMPO TÉCNICOTECHNICAL FIELD

[002]A presente invenção refere-se a uma codificação de vídeo. Mais especificamente, a presente invenção refere-se a uma derivação de vetor de movimento de um sub-bloco com base em uma função de modelo de movimento para a codificação de vídeo.[002] The present invention relates to video coding. More specifically, the present invention relates to a motion vector derivation of a sub-block based on a motion model function for video coding.

ANTECEDENTESBACKGROUND

[003]A estimativa de movimento é uma técnica de codificação inter-frame eficaz para explorar a redundância temporal nas sequências de vídeo. A codificação inter-frame com compensação de movimento tem sido amplamente utilizada em várias normas de codificação de vídeo internacionais. A estimativa de movimento adotada em vários padrões de codificação é frequentemente uma técnica baseada em blocos, em que as informações de movimento, tais como o modo de codificação e o vetor de movimento são determinadas para cada macrobloco ou bloco de configuração semelhante. Além disso, a intracodificação é também aplicada de modo adaptativo, sendo a imagem processada sem referência a qualquer outra imagem. Os resíduos inter-preditos ou intra- preditos geralmente são tratados posteriormente por transformação, quantização e codificação de entropia para gerar uma corrente de bits de vídeo comprimido.[003] Motion estimation is an effective inter-frame coding technique for exploiting temporal redundancy in video sequences. Motion-compensated inter-frame coding has been widely used in several international video coding standards. Motion estimation adopted in various coding standards is often a block-based technique, where motion information such as coding mode and motion vector are determined for each macroblock or block of similar configuration. Furthermore, intracoding is also applied adaptively, with the image being processed without reference to any other image. The inter-predicted or intra-predicted residues are usually further treated by transformation, quantization and entropy coding to generate a compressed video bitstream.

[004]A comparação de blocos é um meio eficiente para se determinar o deslocamento entre as duas imagens temporais, onde o movimento do conteúdo entre duas imagens temporais é determinado em uma base de bloco por bloco. A estimativa de movimento baseada em blocos tem sido usada em padrões de codificação como a Codificação Avançada de Vídeo (Advanced Video Coding (AVC)/H.264) e a nova Codificação de Vídeo de Alta Eficiência (High Efficiency Video Coding (HEVC)), por exemplo. Em HEVC, por exemplo, a predição de movimento é realizada com base em uma unidade de predição (PU). O deslocamento entre os dois blocos correspondentes em duas imagens temporais é definido como sendo o vetor de movimento (MV). Na codificação de vídeo em 3D, se a imagem de referência for uma imagem codificada de um ponto de vista diferente, o deslocamento é chamado de vetor de disparidade (DV). Sem se desviar da generalidade, na presente invenção, o deslocamento pode ser referido a um MV.[004] Block comparison is an efficient means of determining the displacement between two temporal images, where the movement of content between two temporal images is determined on a block-by-block basis. Block-based motion estimation has been used in coding standards such as Advanced Video Coding (AVC)/H.264 and the new High Efficiency Video Coding (HEVC) , for example. In HEVC, for example, motion prediction is performed based on a prediction unit (PU). The displacement between the two corresponding blocks in two temporal images is defined as the motion vector (MV). In 3D video coding, if the reference image is an image encoded from a different point of view, the offset is called a disparity vector (DV). Without deviating from the generality, in the present invention, the displacement can be referred to as an MV.

[005]A pressuposição da compensação de movimento baseada em blocos é que todos os píxels dentro de um bloco sofrem o mesmo deslocamento e têm o mesmo MV. No entanto, em uma sequência de vídeo típica, tal movimento de translação dificilmente pode descrever com precisão o movimento real complexo no conteúdo. Portanto, a estimativa de movimento baseada em blocos não pode capturar movimentos complexos, como a rotação, a aproximação, e a deformação de objetos em movimento. É muito desejável se desenvolver uma estimativa de movimento que seja capaz de derivar informações de movimento para unidades de vídeo inferiores a um bloco inteiro.[005] The assumption of block-based motion compensation is that all pixels within a block experience the same displacement and have the same MV. However, in a typical video sequence, such translational motion can hardly accurately describe the actual complex motion in the content. Therefore, block-based motion estimation cannot capture complex motions such as rotation, approach, and deformation of moving objects. It is very desirable to develop a motion estimate that is capable of deriving motion information for video units smaller than an entire block.

SUMÁRIOSUMMARY

[006]São divulgados um método e um aparelho para derivar um vetor de movimento de sub-bloco para o sub-bloco corrente dentro de um bloco corrente baseado em uma função de modelo de movimento dependendo da localização do sub- bloco corrente. O vetor de movimento de sub-bloco derivado é então usado para a codificação ou decodificação do sub- bloco. A função de modelo de movimento pode corresponder a uma função afim de modelo de movimento ou a uma função bilinear de modelo de movimento.[006] A method and apparatus for deriving a sub-block motion vector for the current sub-block within a current block based on a motion model function depending on the location of the current sub-block are disclosed. The derived sub-block motion vector is then used for encoding or decoding the sub-block. The motion model function can correspond to an affine motion model function or a bilinear motion model function.

[007]Quando a função de modelo de movimento corresponde à função afim de modelo de movimento representado por F(x, y) = a x x + b x y + e, e em que (x, y) é a localização de sub-bloco corrente e a, b e e são parâmetros do modelo afins associados à função afim de modelo de movimento. Quando o tamanho do bloco corrente for MxN, três vetores de movimento de parâmetros afins, MV_0, MV_1 e MV_2 são determinados para os locais (0,0), (H,0) e (0,N) respectivamente. Neste caso, os parâmetros afins do modelo são determinados de acordo com e = MV_0, a = (MV_1 - MV_0)/M e b = (MV_2 - MV_0)/N, e em que M e N são números inteiros positivos.[007] When the motion model function corresponds to the affine motion model function represented by F(x, y) = a x x + b x y + e, and where (x, y) is the current sub-block location and a, b and e are parameters of the affine model associated with the affine motion model function. When the current block size is MxN, three motion vectors with related parameters, MV_0, MV_1 and MV_2, are determined for locations (0,0), (H,0) and (0,N) respectively. In this case, the model's affine parameters are determined according to e = MV_0, a = (MV_1 - MV_0)/M and b = (MV_2 - MV_0)/N, and where M and N are positive integers.

[008]Os três vetores de movimento de parâmetros afins podem ser derivados com base em blocos codificados vizinhos do bloco corrente. Neste caso pode ser habilitado um modo afim de Fusão usando os três vetores de movimento de parâmetros afins, e os três vetores de movimento de parâmetros afins são inseridos em uma lista de candidatos de Fusão para a codificação ou decodificação do bloco corrente. No modo afim de Fusão, um vetor de movimento de sub-bloco é derivado para cada sub-bloco do bloco corrente com base na função afim do modelo de movimento e os três vetores de movimento de parâmetros afins. Além disso, cada sub-bloco é predito como utilizando o vetor de movimento sub-bloco, se o modo de impressão em série afim for utilizado para o bloco corrente. A sintaxe de elemento de alto nível pode ser sinalizada no conjunto de parâmetros de sequência (SPS), no conjunto de parâmetros de vídeo (VPS), no conjunto de parâmetros de imagem (PPS) ou no cabeçalho de segmento para indicar se o modo afim de Fusão está habilitado. O bloco corrente pode corresponder a uma unidade de predição (PU) e o modo afim de Fusão pode ser habilitado somente quando a PU pertence a um conjunto de tipos de partição de PU selecionado, em que o conjunto de tipos de partição de PU selecionado consiste em um ou mais tipos de partição de PU selecionados de {2Nx2N, 2NxN, Nx2N, 2NxnU, 2NxnD, nLx2N, nRx2N}. Um elemento de sintaxe pode ser sinalizado para o bloco corrente para indicar se o modo afim de Fusão é utilizado para o bloco corrente. Um segundo elemento de sintaxe para posições dos três vetores de parâmetros de movimento afins na lista de candidatos de Fusão pode ser sinalizado. O elemento de sintaxe também pode ser derivado implicitamente de um lado do decodificador. O elemento de sintaxe pode ser implicitamente derivado de acordo com seleções de modos de codificação, por exemplo, de acordo com os parâmetros de movimento de blocos vizinhos do bloco corrente, ou de acordo com parâmetros de movimento de blocos de referência do bloco corrente.[008] The three motion vectors of related parameters can be derived based on coded blocks neighboring the current block. In this case, an affine Fusion mode can be enabled using the three affine parameter motion vectors, and the three affine parameter motion vectors are inserted into a list of Fusion candidates for encoding or decoding the current block. In Fusion affine mode, a sub-block motion vector is derived for each sub-block of the current block based on the affine function of the motion model and the three affine parameter motion vectors. Furthermore, each sub-block is predicted to use the sub-block motion vector if the affine merge mode is used for the current block. High-level element syntax can be flagged in the sequence parameter set (SPS), video parameter set (VPS), picture parameter set (PPS), or segment header to indicate whether the affine mode Fusion is enabled. The current block can correspond to a prediction unit (PU) and the affine Fusion mode can be enabled only when the PU belongs to a selected PU partition type set, of which the selected PU partition type set consists on one or more PU partition types selected from {2Nx2N, 2NxN, Nx2N, 2NxnU, 2NxnD, nLx2N, nRx2N}. A syntax element can be flagged for the current block to indicate whether the related Fusion mode is used for the current block. A second syntax element for positions of the three affine motion parameter vectors in the Fusion candidate list can be flagged. The syntax element can also be derived implicitly from one side of the decoder. The syntax element may be implicitly derived according to coding mode selections, for example, according to the movement parameters of neighboring blocks of the current block, or according to movement parameters of reference blocks of the current block.

[009]Em uma outra modalidade, um ou mais dos três vetores de movimento, MV_0, MV_1 e MV_2 pode ser determinado por refinação respectiva de um ou mais preditores de MV para formar um ou mais vetores de movimento refinados utilizando-se uma ou mais diferenças de vetores de movimento (MVDs) transmitidas. Se for habilitado um modo de inter-predição adicional, um vetor de movimento de sub-bloco pode ser derivado para cada sub-bloco do bloco corrente com base na função de modelo de movimento e os três vetores de movimento depois de um ou mais dos três vetores de movimento que estiver sendo refinado. Cada sub- bloco é, então, predito utilizando-se um vetor de movimento de sub-bloco, se o modo de inter-predição adicional for utilizado para o bloco corrente. Um elemento de sintaxe pode ser sinalizado para o bloco corrente para indicar se o modo de inter-predição adicional é utilizado para o bloco corrente. O elemento de sintaxe pode ser sinalizado depois de um segundo elemento de sintaxe para um sinalizador de Fusão para o bloco corrente em uma corrente de bits, em que o sinalizador de Fusão indica se o bloco corrente foi codificado utilizando-se um modo de Fusão. O elemento de sintaxe pode também ser derivado implicitamente de um lado do decodificador.[009] In another embodiment, one or more of the three motion vectors, MV_0, MV_1 and MV_2 can be determined by respectively refining one or more MV predictors to form one or more refined motion vectors using one or more transmitted motion vector differences (MVDs). If an additional inter-prediction mode is enabled, a sub-block motion vector can be derived for each sub-block of the current block based on the motion model function and the three motion vectors after one or more of the three motion vectors being refined. Each sub-block is then predicted using a sub-block motion vector, if the additional inter-prediction mode is used for the current block. A syntax element may be flagged for the current block to indicate whether additional inter-prediction mode is used for the current block. The syntax element may be signaled after a second syntax element to a Fusion flag for the current block in a bitstream, where the Fusion flag indicates whether the current block was encoded using a Fusion mode. The syntax element can also be implicitly derived from one side of the decoder.

[0010]Quando um vetor de movimento de sub-bloco for derivado utilizando-se a função de modelo de movimento, o vetor de movimento de sub-bloco derivado pode ser quantizado com uma precisão de 1/4, 1/8, 1/12, 1/16 ou 1/32 de píxel. Quando o bloco corrente corresponde a uma unidade de predição (PU), o tamanho da sub-bloco pode ser de 4x4, 8x8 ou 16x16.[0010] When a sub-block motion vector is derived using the motion model function, the derived sub-block motion vector can be quantized with an accuracy of 1/4, 1/8, 1/ 12, 1/16 or 1/32 pixel. When the current block corresponds to a prediction unit (PU), the size of the sub-block can be 4x4, 8x8 or 16x16.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0011]A Figura 1 ilustra um exemplo de derivação de vetor de movimento de sub-bloco para um sub-bloco com base em uma função de modelo de movimento de acordo com uma modalidade da presente invenção, sendo o tamanho do bloco NxN.[0011] Figure 1 illustrates an example of deriving a sub-block motion vector for a sub-block based on a motion model function in accordance with an embodiment of the present invention, the block size being NxN.

[0012]A Figura 2 ilustra um fluxograma exemplar para um sistema de codificação de vídeo incorporando uma derivação de vetor de movimento de sub-bloco com base em uma função de modelo de movimento de acordo com uma modalidade da presente invenção.[0012] Figure 2 illustrates an exemplary flowchart for a video coding system incorporating a sub-block motion vector derivation based on a motion model function in accordance with an embodiment of the present invention.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[0013]A descrição que segue é da melhor modalidade da invenção. Esta descrição é dada com a finalidade de ilustrar os princípios gerais da invenção e não deve ser considerada como uma limitação. O âmbito da invenção será mais bem determinado consultando-se as reivindicações anexas.[0013] The following description is of the best embodiment of the invention. This description is given for the purpose of illustrating the general principles of the invention and should not be considered as a limitation. The scope of the invention will be best determined by referring to the appended claims.

[0014]Para proporcionar uma melhor descrição de movimento para um bloco, modalidades de acordo com a presente invenção dividem um bloco corrente (uma unidade de predição (PU), por exemplo, em HEVC) em sub-blocos (sub-PU, por exemplo). Um vetor de movimento (a que se refere também como “vetor de movimento (MV) de sub-bloco derivado”) é derivado para cada sub-bloco de acordo com um modelo de movimento. Por exemplo, cada PU pode ser dividida em várias sub-PUs e o MV para cada sub-PU é derivado de acordo com uma função de modelo de movimento F (x, y), em que (x,y) é a localização do sub-PU e F é uma função que representa o modelo de movimento.[0014] To provide a better description of movement for a block, embodiments according to the present invention divide a current block (a prediction unit (PU), e.g., in HEVC) into sub-blocks (sub-PU, e.g. example). A motion vector (also referred to as a “derived sub-block motion vector (MV)”) is derived for each sub-block according to a motion model. For example, each PU can be divided into multiple sub-PUs and the MV for each sub-PU is derived according to a motion model function F(x,y), where (x,y) is the location of the sub-PU and F is a function that represents the movement model.

[0015]Em uma modalidade, o vetor de movimento de sub- bloco derivado, MV_cur para uma sub-PU é derivado por um modelo afim de movimento: MV_cur = a*x+b*y+e, (1) em que (x,y) é a localização do sub-PU e os três parâmetros a, b e e são os parâmetros afins do modelo. Uma vez que MV_cur corresponde ao vetor de movimento de sub- bloco derivado, e x e y são unidades escalares que representam as posições horizontal e vertical de uma sub- PU, a, b e e são vetores tendo as mesmas dimensões que o vetor de movimento (ou seja, são bidimensionais). A Figura 1 ilustra um exemplo de modelo de movimento afim para uma sub-PU (120) em uma PU (110), de acordo com uma modalidade da presente invenção. O tamanho para a PU (110) é NxN e a sub-PU (120) corrente está localizada na posição (x,y) no presente exemplo. No entanto, a PU na outra modalidade também pode ser retangular, tal como MxN em que M e N são números inteiros positivos. A localização da sub-PU (120) pode corresponder ao canto superior esquerdo de coordenadas da sub-PU (120). No entanto, outras localizações (o ponto central, por exemplo) da sub-PU (120) também podem ser utilizadas como a localização de sub-PU.[0015] In one embodiment, the derived sub-block motion vector, MV_cur for a sub-PU is derived by an affine motion model: MV_cur = a*x+b*y+e, (1) where ( x,y) is the location of the sub-PU and the three parameters a, b and e are the related parameters of the model. Since MV_cur corresponds to the derived subblock motion vector, and x and y are scalar units representing the horizontal and vertical positions of a subPU, a, b, and e are vectors having the same dimensions as the motion vector (i.e., are two-dimensional). Figure 1 illustrates an example of an affine motion model for a sub-PU (120) in a PU (110), in accordance with an embodiment of the present invention. The size for the PU (110) is NxN and the current sub-PU (120) is located at position (x,y) in the present example. However, the PU in the other embodiment can also be rectangular, such as MxN where M and N are positive integers. The location of the sub-PU (120) may correspond to the upper left coordinates of the sub-PU (120). However, other locations (the center point, for example) of the sub-PU (120) can also be used as the sub-PU location.

[0016]No modelo de movimento afim, conforme foi mencionado acima, os três vetores a, b e e têm que ser determinados para se obter as informações de movimento para blocos de imagens granulares (isto é, sub-PU (120)). Em uma modalidade, os parâmetros afins são representados por três MVs (também denominados como três vetores de movimento de parâmetros afins) designados como MV_0, MV_1 e MV_2 em locais (0,0), (n,0) e (0,N) respectivamente e N é um número inteiro positivo. Em seguida, o vetor de movimento de sub- bloco derivado, MV_cur é derivado de acordo com: MV_cur = MV_0+x*(MV_1-MV_0)/N+y*(MV_2-MV_0)/N. (2)[0016] In the affine motion model, as mentioned above, the three vectors a, b and e have to be determined to obtain motion information for granular image blocks (i.e., sub-PU (120)). In one embodiment, the affine parameters are represented by three MVs (also referred to as three affine parameter motion vectors) designated as MV_0, MV_1 and MV_2 at locations (0,0), (n,0) and (0,N) respectively and N is a positive integer. Then, the derived subblock motion vector, MV_cur is derived according to: MV_cur = MV_0+x*(MV_1-MV_0)/N+y*(MV_2-MV_0)/N. (two)

[0017]Em outras palavras, os três parâmetros afins de modelo correspondentes com a equação acima são: a = (MV_1-MV_0)/N, b = (MV_2-MV_0)/N, e e = MV_0.[0017] In other words, the three model-related parameters corresponding to the above equation are: a = (MV_1-MV_0)/N, b = (MV_2-MV_0)/N, and e = MV_0.

[0018]Embora o exemplo acima demonstre a derivação dos três parâmetros para um modelo afim de PU de NxN, a derivação dos três parâmetros de modelo afins para outros tamanhos de PU pode ser feita de forma semelhante. Se o tamanho de PU for MxN, por exemplo, o parâmetro de vetor para a pode ser calculado como sendo: a = (MV_1-MV_0)/M e os parâmetros afins do modelo para b e e continuam iguais ao acima.[0018] Although the example above demonstrates the derivation of the three parameters for an NxN PU affine model, the derivation of the three affine model parameters for other PU sizes can be done in a similar way. If the PU size is MxN, for example, the vector parameter for a can be calculated as: a = (MV_1-MV_0)/M and the related model parameters for b and e remain the same as above.

[0019]Os três vetores de movimento de parâmetros afins, MV_0, MV_1 e MV_2 podem ser derivados com base em blocos codificados vizinhos. Deve ser observado que o número e a localização dos vetores de movimento de parâmetros afins na modalidade anterior são dados para fins de ilustração somente, não sendo o presente pedido de patente limitado a eles.[0019] The three motion vectors of related parameters, MV_0, MV_1 and MV_2 can be derived based on neighboring coded blocks. It should be noted that the number and location of motion vectors of related parameters in the above embodiment are given for illustration purposes only, and the present patent application is not limited to them.

[0020]Em uma outra modalidade, o vetor de movimento de uma sub-PU (isto é, MV_cur) é derivado pelo modelo de movimento bilinear. O modelo bilinear precisa de quatro parâmetros, a, b, c e d. O componente X (isto é, MV_x) do vetor de movimento para um sub-bloco no ponto (x,y) do bloco corrente, por exemplo, pode ser derivado de acordo com um modelo de movimento bilinear como sendo a*(N-x)*(N- y)+b*x*(N-y)+c*y*(N-x)+d*x*y, onde o tamanho do bloco é NxN. De modo análogo, para o componente Y (isto é, MV_y) do vetor de movimento para o sub-bloco no ponto (x,y) pode ser derivado usando-se quatro parâmetros. Os parâmetros do modelo de movimento bilinear podem ser derivados a partir de blocos codificados vizinhos.[0020] In another embodiment, the motion vector of a sub-PU (i.e., MV_cur) is derived by the bilinear motion model. The bilinear model needs four parameters, a, b, c and d. The X component (i.e. MV_x) of the motion vector for a sub-block at point (x,y) of the current block, for example, can be derived according to a bilinear motion model as being a*(N-x) *(N- y)+b*x*(N-y)+c*y*(N-x)+d*x*y, where the block size is NxN. Similarly, the Y component (i.e. MV_y) of the motion vector for the sub-block at point (x,y) can be derived using four parameters. The parameters of the bilinear motion model can be derived from neighboring coded blocks.

[0021]Como mencionado anteriormente, as informações de movimento derivadas de sub-PU podem ser usadas para a estimativa de movimento/compensação para derivar resíduos de predição para codificação ou decodificação. A derivação de vetor de movimento para blocos de imagens mais granulares (sub-PU, por exemplo), utilizando uma função de modelo de movimento pode ser aplicada a um novo modo de Fusão (a que se refere também como “modo de Fusão afim”). Em um modo de Fusão convencional, um bloco corrente compartilha as informações de movimento de um bloco vizinho. Um preditor de vetor de movimento do bloco corrente é selecionado de uma lista de candidatos de Fusão, que inclui um conjunto de candidatos dentre blocos vizinhos no sentido espacial, temporal ou visual. Para o novo modo de Fusão, os três vetores de movimento de parâmetros afins podem ser obtidos com base em blocos vizinhos. Os três vetores de movimento de parâmetros afins podem ser adicionados à lista de candidatos de Fusão como um candidato de Fusão adicional. O novo modo de Fusão pode ser aplicado para tipo simétrico de partição de PU como 2Nx2N, 2NxN, Nx2N ou quaisquer outras partições de PU (as partições 2NxnU, 2NxnD, nLx2N e nRx2N às quais se refere como partição de movimento assimétricas (AMP), por exemplo, em HEVC). Alternativamente, o novo modo de Fusão pode ser aplicado apenas para o tipo de partição de PU 2Nx2N. Em uma outra modalidade, o novo modo de Fusão é aplicado apenas para tipos de partição de PU 2Nx2N, 2NxN e Nx2N. Em ainda outra modalidade, o novo candidato de Fusão é aplicado apenas para um conjunto de tipos específicos de partição de PU. Quando o novo modo de Fusão for selecionado para um bloco (uma PU, por exemplo), são derivados vetores de movimento para sub-PUs da PU de acordo com uma função de modelo de movimento, conforme já descrito. Cada sub-PU é então predita de acordo com um sub-bloco de vetor de movimento correspondente.[0021] As mentioned previously, sub-PU derived motion information can be used for motion estimation/compensation to derive prediction residuals for encoding or decoding. Motion vector derivation for more granular image blocks (sub-PU, for example) using a motion model function can be applied to a new Fusion mode (also referred to as “affine Fusion mode”). ). In a conventional Fusion mode, a current block shares the movement information of a neighboring block. A motion vector predictor of the current block is selected from a list of Fusion candidates, which includes a set of candidates from neighboring blocks in spatial, temporal or visual sense. For the new Fusion mode, the three motion vectors of related parameters can be obtained based on neighboring blocks. The three motion vectors of related parameters can be added to the Fusion candidate list as an additional Fusion candidate. The new Fusion mode can be applied to symmetric type of PU partition such as 2Nx2N, 2NxN, Nx2N or any other PU partitions (the 2NxnU, 2NxnD, nLx2N and nRx2N partitions which are referred to as asymmetric moving partition (AMP), e.g. in HEVC). Alternatively, the new Merge mode can only be applied to the 2Nx2N PU partition type. In another embodiment, the new Merge mode is applied only to PU partition types 2Nx2N, 2NxN and Nx2N. In yet another embodiment, the new Fusion candidate is applied only to a set of specific PU partition types. When the new Fusion mode is selected for a block (a PU, for example), motion vectors for sub-PUs of the PU are derived according to a motion model function, as already described. Each sub-PU is then predicted according to a corresponding motion vector sub-block.

[0022]Em uma modalidade, um elemento de sintaxe para indicar se o novo modo de Fusão é permitido (isto é, habilitado) para dados de vídeo associados podem ser sinalizadas em um nível de sequência tal como um conjunto de parâmetros de sequência (SPS), um nível de vídeo, tal como um conjunto de parâmetros de vídeo (VPS), um nível de imagem, tal como um conjunto de parâmetros de imagem (PPS) ou um conjunto de parâmetros adaptativos (APS), ou um nível de segmento tal como o cabeçalho de segmento. Quando o novo modo de Fusão é habilitado, a posição dos três vetores de movimento de parâmetros afins pode ser fixada em 0, 1, e 2 (isto é, nas três principais posições na lista de Fusão) na lista de candidatos de Fusão. A posição 0 refere-se a uma posição inicial (ou seja, a primeira) na lista de candidatos. As posições dos vetores de movimento de parâmetros afins também podem ser sinalizadas usando-se um elemento de sintaxe em um nível de sequência, tal como um conjunto de parâmetros de sequência (SPS), um nível de vídeo, tal como um conjunto de parâmetros de vídeo (VPS), um nível de imagem, tal como um conjunto de parâmetros de imagem (PPS) ou o conjunto de parâmetros adaptativos (APS), ou um nível de segmento como o cabeçalho de segmento.[0022] In one embodiment, a syntax element to indicate whether the new Fusion mode is allowed (i.e., enabled) for associated video data may be signaled at a sequence level such as a sequence parameter set (SPS ), a video level, such as a video parameter set (VPS), an image level, such as a picture parameter set (PPS) or an adaptive parameter set (APS), or a segment level such as the segment header. When the new Fusion mode is enabled, the position of the three motion vectors of related parameters can be fixed to 0, 1, and 2 (that is, the top three positions in the Fusion list) in the Fusion candidate list. position 0 refers to an initial position (i.e. the first) in the list of candidates. The positions of related parameter motion vectors can also be signaled using a syntax element at a sequence level, such as a sequence parameter set (SPS), a video level, such as a video (VPS), an image level such as a picture parameter set (PPS) or adaptive parameter set (APS), or a segment level such as the segment header.

[0023]A posição dos vetores de movimento de parâmetros afins também pode ser derivada implicitamente de um lado do decodificador. A posição dos vetores de movimento de parâmetros afins, por exemplo, pode ser implicitamente derivada de acordo com seleções de modos de codificação, com os parâmetros de movimento das PUs vizinhas do bloco corrente, ou com os parâmetros de movimento dos blocos de referência do bloco corrente.[0023] The position of motion vectors of related parameters can also be implicitly derived from one side of the decoder. The position of the motion vectors of related parameters, for example, can be implicitly derived according to coding mode selections, the motion parameters of the neighboring PUs of the current block, or the motion parameters of the block's reference blocks. chain.

[0024]Conforme já mencionado, os vetores de movimento utilizados como os vetores de movimento de parâmetros afins podem ser calculados para os locais respectivos, podendo também ser derivados com base nas informações de movimento de blocos vizinhos do bloco corrente. Em uma outra modalidade, os vetores de movimento utilizados como os vetores de movimento de parâmetros afins podem ser refinados com base na diferença de vetor de movimento (MVD) transmitida onde a MVD corresponde à diferença entre um vetor de movimento e um vetor de movimento preditivo. Além disso, um ou mais dos vetores de movimento utilizados como parâmetro de parâmetro de movimento afim podem ser refinados de acordo com a MVD.[0024] As already mentioned, the motion vectors used as the motion vectors of related parameters can be calculated for the respective locations, and can also be derived based on the motion information of neighboring blocks of the current block. In another embodiment, the motion vectors used as the motion vectors of related parameters can be refined based on the transmitted motion vector difference (MVD) where the MVD corresponds to the difference between a motion vector and a predictive motion vector. . Furthermore, one or more of the motion vectors used as a parameter of affine motion parameter can be refined according to the MVD.

[0025]Os vetores de movimento de parâmetros afins podem ser utilizados em um modo de inter-predição adicional, em que, pelo menos, um vetor de movimento de parâmetro afim foi refinado de acordo com a MVD. Em outras palavras, se o modo de inter-predição adicional for utilizado para o bloco corrente (uma PU, por exemplo), cada sub-PU no bloco corrente pode ser predita utilizando-se o vetor de movimento de sub-bloco correspondente, sendo o vetor de movimento de sub-bloco correspondente derivado com base em um ou mais vetores de movimento de parâmetros refinados afins.[0025] The affine parameter motion vectors can be used in an additional inter-prediction mode, in which at least one affine parameter motion vector has been refined according to the MVD. In other words, if the additional inter-prediction mode is used for the current block (a PU, for example), each sub-PU in the current block can be predicted using the corresponding sub-block motion vector, being the corresponding sub-block motion vector derived based on one or more affine refined parameter motion vectors.

[0026]Em um sistema de codificação que permite que os vetores de movimento de parâmetros afins refinados sejam usados como um outro modo de inter-predição, um sinalizador pode ser utilizado para indicar se o modo de inter-predição adicional está habilitado ou não. Este sinalizador pode ser utilizado após o sinalizador de Fusão para o bloco corrente em uma corrente de bits, indicando o sinalizador se o bloco corrente está codificado utilizando um modo de Fusão. O elemento de sintaxe é sinalizado, por exemplo, no conjunto de parâmetros de sequência (SPS), no conjunto de parâmetros de vídeo (VPS), conjunto de parâmetros de imagem (PPS), no conjunto de parâmetros adaptativos (APS) ou no cabeçalho de segmento para indicar se o modo de inter-predição adicional está habilitado ou não. O elemento de sintaxe também pode ser derivado implicitamente de um lado do decodificador. O elemento de sintaxe pode ser implicitamente derivado, por exemplo, de acordo com as seleções de modos de codificação, com os parâmetros de movimento de blocos vizinhos do bloco corrente, ou com parâmetros de movimento de blocos de referência do bloco corrente.[0026] In a coding system that allows the motion vectors of refined affine parameters to be used as another inter-prediction mode, a flag can be used to indicate whether the additional inter-prediction mode is enabled or not. This flag can be used after the Fusion flag for the current block in a bitstream, the flag indicating whether the current block is encoded using a Fusion mode. The syntax element is signaled, for example, in the parameter set of sequence (SPS), video parameter set (VPS), picture parameter set (PPS), adaptive parameter set (APS), or segment header to indicate whether additional inter-prediction mode is enabled or no. The syntax element can also be derived implicitly from one side of the decoder. The syntax element may be implicitly derived, for example, according to coding mode selections, movement parameters of neighboring blocks of the current block, or movement parameters of reference blocks of the current block.

[0027]Conforme mostrado na equação (1), o vetor de movimento de sub-bloco derivado pode ser um número fracionário. De acordo com uma modalidade, o sub-bloco de vetor de movimento derivado é quantizado para uma precisão de 1/4, 1/8, 1/12, 1/16 ou 1/32 de píxel. Em uma modalidade, sub-blocos consecutivos com o mesmo vetor de movimento de sub-bloco são fundidos em um sub-bloco maior para a compensação de movimento.[0027]As shown in equation (1), the derived sub-block motion vector can be a fractional number. According to one embodiment, the derived motion vector subblock is quantized to an accuracy of 1/4, 1/8, 1/12, 1/16, or 1/32 of a pixel. In one embodiment, consecutive subblocks with the same subblock motion vector are merged into a larger subblock for motion compensation.

[0028]Os blocos aos quais se refere na descrição acima podem corresponder a unidades de predição (PUs), usadas no padrão de Codificação de Vídeo de Alta Eficiência (HEVC). Neste caso, o tamanho de sub-bloco (isto é, da sub-PU) pode corresponder a 4x4, 8x8 ou 16x16.[0028] The blocks referred to in the description above may correspond to prediction units (PUs), used in the High Efficiency Video Coding (HEVC) standard. In this case, the sub-block size (that is, the sub-PU) can correspond to 4x4, 8x8 or 16x16.

[0029]No presente pedido, as informações de movimento para as unidades de vídeo (sub-PU, por exemplo) mais granular do que um bloco inteiro deve resultar em uma descrição de movimento mais precisa para o bloco do que a estimativa de movimento convencional para a totalidade do bloco.[0029] In the present application, motion information for the video units (sub-PU, for example) more granular than an entire block should result in a more accurate motion description for the block than conventional motion estimation. for the entire block.

[0030]Figura 2 ilustra um fluxograma exemplar para um sistema de codificação de vídeo incorporando derivação de vetor de movimento de sub-bloco utilizando uma função de modelo de movimento de acordo com uma modalidade da presente invenção. Os dados de entrada associados com um bloco corrente são recebidos como mostrado na etapa 210. Os dados de entrada associados com o bloco corrente podem ser acessados a partir de meios, tais como uma RAM ou DRAM em um sistema. Os dados de entrada associados com o bloco corrente também podem ser recebidos diretamente de um processador (tal como de uma unidade central de processamento, de um controlador ou de um processador de sinal digital). De um lado do codificador, os dados de entrada correspondem aos dados de píxels a serem codificados. No lado do decodificador, os dados de entrada correspondem a dados codificados a serem decodificados. Um sub-bloco corrente localizado em uma localização sub-bloco corrente no bloco corrente é determinado na etapa 220. Um vetor de movimento de sub-bloco derivado para o sub-bloco corrente é calculado com base em uma função de modelo de movimento dependendo localização do sub-bloco corrente na etapa 230. O sub-bloco corrente é então codificado ou decodificado usando o sub-bloco de vetor de movimento derivado para o sub-bloco corrente na etapa 240.[0030] Figure 2 illustrates an exemplary flowchart for a video coding system incorporating sub-block motion vector derivation using a motion model function in accordance with an embodiment of the present invention. Input data associated with a current block is received as shown in step 210. Input data associated with the current block can be accessed from media such as a RAM or DRAM in a system. The input data associated with the current block may also be received directly from a processor (such as a central processing unit, a controller, or a digital signal processor). On one side of the encoder, the input data corresponds to the pixel data to be encoded. On the decoder side, input data corresponds to encoded data to be decoded. A current sub-block located at a current sub-block location in the current block is determined in step 220. A derived sub-block motion vector for the current sub-block is calculated based on a motion model function depending on location. of the current sub-block in step 230. The current sub-block is then encoded or decoded using the motion vector sub-block derived for the current sub-block in step 240.

[0031]O fluxograma exemplar mostrado na Figura 2 tem a finalidade de ilustração. Os versados na técnica poderão rearranjar, combinar as etapas ou dividir uma etapa para a prática da presente invenção sem que haja desvio do espírito da presente invenção.[0031] The exemplary flowchart shown in Figure 2 is for illustration purposes. Those skilled in the art may rearrange, combine steps or divide a step for practicing the present invention without deviating from the spirit of the present invention.

[0032]A descrição acima é apresentada para permitir que os versados na técnica coloquem em prática a presente invenção, tal como foi proposto no contexto de uma aplicação particular e de suas exigências. Diversas modificações para as modalidades descritas serão evidentes para os versados na técnica, e os princípios gerais definidos aqui podem ser aplicados a outras modalidades. Portanto, a presente invenção não se destina a ser limitada às modalidades específicas mostradas e descritas, mas deve ser dado o mais vasto âmbito consistente com os princípios e características inovadoras aqui descritos. Na descrição detalhada acima, são ilustrados diversos detalhes específicos, de modo a proporcionar uma compreensão total da presente invenção. No entanto, deve ficar subentendido pelos versados na técnica como a presente invenção pode ser implementada.[0032] The above description is presented to allow those skilled in the art to put into practice the present invention, as proposed in the context of a particular application and its requirements. Various modifications to the described embodiments will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the specific embodiments shown and described, but should be given the broadest scope consistent with the principles and innovative features described herein. In the above detailed description, several specific details are illustrated in order to provide a full understanding of the present invention. However, it should be understood by those skilled in the art how the present invention may be implemented.

[0033]A modalidade da presente invenção, conforme descrito acima, pode ser implementada em diversos hardwares, códigos de software, ou em uma combinação dos dois. Uma modalidade da presente invenção pode, por exemplo, consistir em um circuito integrado em um chip ou programa de compressão de vídeo integrado no código de software de compressão de vídeo para executar o processamento aqui descrito. Uma modalidade da presente invenção pode também consistir no código de programa a ser executado em um Processador de Sinal Digital (DSP) para executar o processamento aqui descrito. A presente invenção pode também envolver um número de funções a serem executadas por um processador de computador, um processador de sinal digital, um microprocessador, ou arranjo de portas programável em campo (FPGA). Esses processadores podem ser configurados para executar tarefas específicas de acordo com a invenção, por meio da execução de código de software de leitura ótica ou código de firmware que define os métodos específicos incorporados à presente invenção. O código de software ou código de firmware podem ser desenvolvidos em diferentes linguagens de programação e formatos ou estilos diferentes. O código de software também pode ser compilado para diferentes plataformas alvo. No entanto, diferentes formatos de códigos, estilos e linguagens de códigos de software e outros meios de código de configuração para a execução das tarefas de acordo com a invenção não deverá se desviar do espírito e do âmbito da invenção.[0033] The embodiment of the present invention, as described above, can be implemented on various hardware, software codes, or a combination of the two. An embodiment of the present invention may, for example, consist of an integrated circuit on a video compression chip or program integrated into the video compression software code to perform the processing described herein. An embodiment of the present invention may also consist of program code to be executed in a Digital Signal Processor (DSP) to perform the processing described herein. The present invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA). These processors can be configured to perform specific tasks in accordance with the invention by executing optical scanning software code or firmware code that defines the specific methods embodied in the present invention. Software code or firmware code can be developed in different programming languages and different formats or styles. Software code can also be compiled for different target platforms. However, different code formats, software code styles and languages, and other means of configuring code for performing tasks in accordance with the invention shall not deviate from the spirit and scope of the invention.

[0034]A presente invenção pode ser implementada em outras formas específicas sem se afastar do seu espírito ou características essenciais. Os exemplos descritos devem ser considerados em todos os aspectos apenas como ilustrativos e não restritivos. O âmbito da invenção é, portanto, indicado pelas reivindicações anexas e não pela descrição anterior. Todas as mudanças que incidirem no significado e alcance de equivalência das reivindicações devem ser abrangidos pelo seu âmbito.[0034] The present invention can be implemented in other specific forms without departing from its spirit or essential characteristics. The examples described should be considered in all respects as illustrative and not restrictive only. The scope of the invention is therefore indicated by the appended claims and not by the previous description. All changes that affect the meaning and scope of equivalence of the claims must be covered by its scope.

Claims (17)

1. Método de derivação de informações de movimento para blocos de uma imagem, CARACTERIZADO pelo fato de que compreende: receber dados de entrada (210) associados com um bloco corrente (110); determinar (220) um sub-bloco corrente (120) localizado em uma localização do sub-bloco corrente dentro do bloco corrente (110); derivar uma lista de candidatos de Fusão com base em blocos vizinhos espaciais e temporais do bloco corrente; derivar uma pluralidade de vetores de parâmetro de movimento afim; adicionar a pluralidade de vetores de parâmetro de movimento afim em uma posição predeterminada da lista de candidatos de Fusão; calcular (230) um vetor de movimento de sub-bloco derivado para o sub-bloco corrente (120) com base em uma função de modelo de movimento afim de acordo com a localização do sub-bloco corrente, em que a função de modelo de movimento é representada por F(x,y)=axx+bxy+e, e em que (x,y) é o local do sub-bloco corrente e a, b e e são parâmetros do modelo afins associados com a função afim do modelo de movimento e são determinados com base na pluralidade de vetores de parâmetro de movimento afim; e codificar ou decodificar (240) o sub-bloco corrente (120) utilizando o vetor de movimento do sub-bloco derivado para o sub-bloco corrente.1. Method of deriving movement information for blocks of an image, CHARACTERIZED by the fact that it comprises: receiving input data (210) associated with a current block (110); determining (220) a current sub-block (120) located at a location of the current sub-block within the current block (110); derive a list of Fusion candidates based on spatial and temporal neighboring blocks of the current block; deriving a plurality of affine motion parameter vectors; adding the plurality of affine motion parameter vectors at a predetermined position of the Fusion candidate list; calculate (230) a derived sub-block motion vector for the current sub-block (120) based on an affine motion model function according to the location of the current sub-block, wherein the movement is represented by F(x,y)=axx+bxy+e, and where (x,y) is the location of the current sub-block and a, b and e are parameters of the affine model associated with the affine function of the model. motion and are determined based on the plurality of affine motion parameter vectors; and encoding or decoding (240) the current sub-block (120) using the motion vector from the derived sub-block to the current sub-block. 2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o bloco corrente tem um tamanho de bloco de MxN, e a pluralidade de vetores de parâmetro de movimento afim são três vetores de movimento de parâmetros afins, MV_0, MV_1 e MV_2 determinados para localizações (0, 0), (M, 0) e (0, N) respectivamente, e os parâmetros de modelos afins são determinados de acordo com e = MV_0, a = (MV_1 - MV_0)/M e b = (MV_2 - MV_0)/N, e em que M e N são números inteiros positivos.2. Method, according to claim 1, CHARACTERIZED by the fact that the current block has a block size of MxN, and the plurality of affine motion parameter vectors are three affine parameter motion vectors, MV_0, MV_1 and MV_2 determined for locations (0, 0), (M, 0) and (0, N) respectively, and the parameters of affine models are determined according to e = MV_0, a = (MV_1 - MV_0)/M and b = ( MV_2 - MV_0)/N, and where M and N are positive integers. 3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que os três vetores de movimento de parâmetros afins são derivados com base nos blocos codificados vizinhos do bloco corrente (110).3. Method, according to claim 2, CHARACTERIZED by the fact that the three movement vectors of related parameters are derived based on the neighboring coded blocks of the current block (110). 4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que um vetor de movimento de sub-bloco é derivado para cada sub-bloco do bloco corrente (110) com base na função afim de modelo de movimento e os três vetores de movimento de parâmetros afins, e em que cada sub-bloco é predito usando um vetor de movimento de sub-bloco se for usado para o bloco corrente (110) o modo afim de Fusão.4. Method, according to claim 3, CHARACTERIZED by the fact that a sub-block motion vector is derived for each sub-block of the current block (110) based on the motion model affine function and the three vectors of motion of affine parameters, and wherein each sub-block is predicted using a sub-block motion vector if the affine mode of Fusion is used for the current block (110). 5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que um ou mais elementos de sintaxe são utilizados para indicar se o modo afim de Fusão está habilitado.5. Method, according to claim 4, CHARACTERIZED by the fact that one or more syntax elements are used to indicate whether the Fusion related mode is enabled. 6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o modo afim de Fusão é habilitado apenas para os blocos da imagem pertencente a um conjunto de tipos de partição de PU selecionados, em que o conjunto de tipos de partição de PU selecionados consiste em um ou mais tipos de partição de PU selecionados de {2N*2N, 2N*N, N*2N, 2NxnU, 2NxnD, nLx2N, nRx2N}.6. Method, according to claim 5, CHARACTERIZED by the fact that the affine Fusion mode is enabled only for the image blocks belonging to a set of selected PU partition types, wherein the set of PU partition types Selected PU consists of one or more PU partition types selected from {2N*2N, 2N*N, N*2N, 2NxnU, 2NxnD, nLx2N, nRx2N}. 7. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que um ou mais elementos de sintaxe são derivados implicitamente de um lado do decodificador.7. Method, according to claim 5, CHARACTERIZED by the fact that one or more syntax elements are implicitly derived from one side of the decoder. 8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que um ou mais elementos de sintaxe é implicitamente derivado de acordo com seleções de modos de codificação, com parâmetros de movimento de blocos vizinhos do bloco corrente (110) ou com parâmetros de movimento de blocos de referência do bloco corrente (110).8. Method, according to claim 7, CHARACTERIZED by the fact that one or more syntax elements are implicitly derived according to coding mode selections, with movement parameters of neighboring blocks of the current block (110) or with parameters movement of reference blocks of the current block (110). 9. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que um ou mais dos três vetores de movimento de parâmetros afins, MV_0, MV_1 e MV_2 são determinados por refinação de respectivos um ou mais preditores de MV para formar um ou mais vetores de movimento refinados utilizando uma ou mais diferenças de vetores de movimento (MVDs) transmitidas.9. Method, according to claim 2, CHARACTERIZED by the fact that one or more of the three motion vectors of related parameters, MV_0, MV_1 and MV_2 are determined by refining respective one or more MV predictors to form one or more refined motion vectors using one or more transmitted motion vector differences (MVDs). 10. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que, se for habilitado um modo de inter-predição adicional, um vetor de movimento de sub-bloco é derivado para cada sub-bloco do bloco corrente com base na função de modelo de movimento e nos três vetores de movimento de parâmetros afins após um ou mais dos três vetores de movimento de parâmetros afins terem sido refinados, e cada sub-bloco está predito utilizando este sub-bloco de vetor de movimento, se for utilizado para o bloco corrente o modo de inter-predição adicional (110).10. Method according to claim 9, CHARACTERIZED by the fact that, if an additional inter-prediction mode is enabled, a sub-block motion vector is derived for each sub-block of the current block based on the function model model and the three related parameter motion vectors after one or more of the three related parameter motion vectors have been refined, and each sub-block is predicted using this motion vector sub-block, if used to the current block the additional inter-prediction mode (110). 11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que um elemento de sintaxe é usado para indicar se o modo de inter-predição adicional está habilitado ou não.11. Method, according to claim 10, CHARACTERIZED by the fact that a syntax element is used to indicate whether the additional inter-prediction mode is enabled or not. 12. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o elemento de sintaxe é sinalizado depois de um segundo elemento de sintaxe para sinalizador de Fusão para o bloco corrente em uma corrente de bits e, em que o sinalizador de Fusão indica se o bloco corrente (110) é codificado utilizando-se um modo de Fusão.12. Method, according to claim 11, CHARACTERIZED by the fact that the syntax element is signaled after a second syntax element for Fusion flag for the current block in a bit stream and, wherein the Fusion flag indicates whether the current block (110) is encoded using a Fusion mode. 13. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o elemento de sintaxe é derivado implicitamente de um lado do decodificador.13. Method, according to claim 11, CHARACTERIZED by the fact that the syntax element is implicitly derived from one side of the decoder. 14. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o elemento de sintaxe é implicitamente derivado de acordo com seleções de modo de codificação, de acordo com os parâmetros de movimento de blocos vizinhos do bloco corrente, ou de acordo com os parâmetros de movimento de blocos de referência do bloco corrente (110).14. Method according to claim 13, CHARACTERIZED by the fact that the syntax element is implicitly derived according to encoding mode selections, according to the movement parameters of neighboring blocks of the current block, or according to the reference block movement parameters of the current block (110). 15. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o sub-bloco de vetor de movimento derivado é quantizado para uma precisão de 1/4, 1/8, 1/12, 1/16 ou 1/32 de píxel.15. Method according to claim 2, CHARACTERIZED by the fact that the derived motion vector sub-block is quantized to an accuracy of 1/4, 1/8, 1/12, 1/16 or 1/32 of pixels. 16. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o bloco corrente (110) corresponde a uma unidade de predição (PU) e o tamanho de sub-bloco (120) corresponde a 4x4, 8x8 ou 16x16.16. Method, according to claim 1, CHARACTERIZED by the fact that the current block (110) corresponds to a prediction unit (PU) and the sub-block size (120) corresponds to 4x4, 8x8 or 16x16. 17. Aparelho para derivação de informações de movimento para blocos de uma imagem, CARACTERIZADO pelo fato de que compreende um ou mais circuitos eletrônicos configurados para: receber dados de entrada associados com um bloco corrente (110); determinar um sub-bloco corrente (120) localizado em um local sub-bloco corrente dentro do bloco corrente (110); derivar uma lista de candidatos de Fusão com base em blocos vizinhos espaciais e temporais do bloco corrente (110); derivar uma pluralidade de vetores de parâmetro de movimento afim; adicionar a pluralidade de vetores de parâmetro de movimento afim em uma posição predeterminada da lista de candidatos de Fusão; calcular um vetor de movimento sub-bloco derivado para o sub-bloco corrente com base em uma função de modelo de movimento afim de acordo com a localização sub-bloco corrente, em que a função de modelo de movimento é representada por F(x,y)=a*x+bxy+e, e em que Xx,y) é o local do sub-bloco corrente e a, b e e são parâmetros do modelo afins associados com a função afim do modelo de movimento e são determinados com base na pluralidade de vetores de parâmetro de movimento afim; e codificar ou decodificar o sub-bloco corrente (120) utilizando o vetor de movimento sub-bloco derivado para o sub-bloco corrente (120).17. Apparatus for deriving motion information for blocks of an image, CHARACTERIZED by the fact that it comprises one or more electronic circuits configured to: receive input data associated with a current block (110); determining a current sub-block (120) located at a current sub-block location within the current block (110); deriving a list of Fusion candidates based on spatial and temporal neighboring blocks of the current block (110); deriving a plurality of affine motion parameter vectors; adding the plurality of affine motion parameter vectors at a predetermined position of the Fusion candidate list; calculate a derived sub-block motion vector for the current sub-block based on an affine motion model function according to the current sub-block location, where the motion model function is represented by F(x, y)=a*x+bxy+e, and where Xx,y) is the location of the current sub-block and a, b and e are parameters of the affine model associated with the affine function of the motion model and are determined based on plurality of affine motion parameter vectors; and encoding or decoding the current sub-block (120) using the derived sub-block motion vector for the current sub-block (120).
BR112017001100-0A 2014-07-18 2015-07-15 METHOD AND APPARATUS FOR DERIVING MOTION VECTOR FOR BLOCKS OF AN IMAGE BR112017001100B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/CN2014/082523 WO2016008157A1 (en) 2014-07-18 2014-07-18 Methods for motion compensation using high order motion model
CNPCT/CN2014/082523 2014-07-18
PCT/CN2015/084042 WO2016008408A1 (en) 2014-07-18 2015-07-15 Method of motion vector derivation for video coding

Publications (3)

Publication Number Publication Date
BR112017001100A2 BR112017001100A2 (en) 2018-07-10
BR112017001100A8 BR112017001100A8 (en) 2022-11-08
BR112017001100B1 true BR112017001100B1 (en) 2023-08-22

Family

ID=

Similar Documents

Publication Publication Date Title
US11109052B2 (en) Method of motion vector derivation for video coding
US20240283940A1 (en) Inter-Prediction Mode Based Image Processing Method, and Apparatus Therefor
JP6689499B2 (en) Image prediction method and related apparatus
CN110249628B (en) Video encoder and decoder for predictive partitioning
BR112020015246A2 (en) accessible hardware restricted motion vector refinement
BR112021002967A2 (en) affine motion prediction
BR112020014654A2 (en) Affine motion compensation in video encoding
US20180242004A1 (en) Inter prediction mode-based image processing method and apparatus therefor
WO2019244118A1 (en) Component-dependent sub-block dividing
BR112021000698A2 (en) MIXING CANDIDATES WITH MULTIPLE HYPOTHESES
WO2016055001A1 (en) Method of block vector clipping and coding for screen content coding and video coding
BR112020020976A2 (en) IMPLIED TRANSFORM ADJUSTMENTS
BR122015013889B1 (en) APPARATUS TO DECODE AN IMAGE
BR112013022641B1 (en) METHOD TO DERIVE A CANDIDATE MOVEMENT PREDICTION VECTOR
US10735726B2 (en) Apparatuses and methods for encoding and decoding a video coding block of a video signal
WO2014008817A1 (en) Method and apparatus of inter-view sub-partition prediction in 3d video coding
BR112020003938A2 (en) motion compensation at a finer precision than the motion vector differential
WO2018219938A1 (en) Method and apparatus for low-complexity bi-directional intra prediction in video encoding and decoding
WO2020173477A1 (en) Regression-based motion vector field based sub-block motion vector derivation
US10298951B2 (en) Method and apparatus of motion vector prediction
KR20200015783A (en) Intra prediction mode based image processing method and apparatus therefor
CN110944203A (en) Motion vector plane mode at block level
CN110832854B (en) Method and apparatus for intra prediction using interpolation
WO2018219925A1 (en) Method and apparatus for signalling bi-directional intra prediction in video encoding and decoding
CN113302935A (en) End motion refinement in video encoding/decoding systems