BR112021007949A2 - sistema e método de fácil utilização com hardware e software para refinamento de vetor de movimento do lado do decodificador com correção por pixel baseada em fluxo óptico bipreditivo no lado do decodificador para compensação de movimento bipreditivo - Google Patents

sistema e método de fácil utilização com hardware e software para refinamento de vetor de movimento do lado do decodificador com correção por pixel baseada em fluxo óptico bipreditivo no lado do decodificador para compensação de movimento bipreditivo Download PDF

Info

Publication number
BR112021007949A2
BR112021007949A2 BR112021007949-1A BR112021007949A BR112021007949A2 BR 112021007949 A2 BR112021007949 A2 BR 112021007949A2 BR 112021007949 A BR112021007949 A BR 112021007949A BR 112021007949 A2 BR112021007949 A2 BR 112021007949A2
Authority
BR
Brazil
Prior art keywords
interpolation
samples
motion vector
target sub
prediction
Prior art date
Application number
BR112021007949-1A
Other languages
English (en)
Inventor
Sriram Sethuraman
Jeeva Raj A
Sagar Kotecha
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021007949A2 publication Critical patent/BR112021007949A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

SISTEMA E MÉTODO DE FÁCIL UTILIZAÇÃO COM HARDWARE E SOFTWARE PARA REFINAMENTO DE VETOR DE MOVIMENTO DO LADO DO DECODIFICADOR COM CORREÇÃO POR PIXEL BASEADA EM FLUXO ÓPTICO BIPREDITIVO NO LADO DO DECODIFICADOR PARA COMPENSAÇÃO DE MOVIMENTO BIPREDITIVO. A presente invenção refere-se a método de predição inter, sistema e dispositivos (codificador, decodificador e produto de computador), compreendendo: selecionar amostras de referência baseada em informação de movimento de bloco de imagem corrente; derivar primeiras amostras interpoladas (pai) via primeira interpolação em relação à seleção; derivar vetor de movimento delta (d em n.i.) para subunidade de predição alvo, PU, via Refinamento de Vetor de Movimento, MVR, (d em n.i.), baseado nas pmi, onde a sub-PU alvo está no bloco de imagem corrente; derivar vetores de fluxo de matriz de pixels 4 x 4 via Fluxo óptico Bipreditivo, BPOF, para cada matriz de pixels M x M na sub-PU alvo baseado nas pai e no vetor de movimento delta (d em n.i.), M inteiro positivo, e o tamanho da matriz de pixels M x M (< sub-PU alvo); derivar segundas amostras interpoladas (sai) via segunda interpolação relativa às amostras; calcular pelo menos um parâmetro de correção para a sub-PU alvo baseado nos vetores de fluxo da matriz de pixels M x M, nas pai e sai; e executar bipredição baseada nas segundas amostras interpoladas e no pelo menos um parâmetro de correção.

Description

Relatório Descritivo da Patente de Invenção para "SISTEMA E MÉTODO DE FÁCIL UTILIZAÇÃO COM HARDWARE E
SOFTWARE PARA REFINAMENTO DE VETOR DE MOVIMENTO DO LADO DO DECODIFICADOR COM CORREÇÃO POR PIXEL BASEADA EM FLUXO ÓPTICO BIPREDITIVO NO LADO DO DECODIFICADOR PARA COMPENSAÇÃO DE MOVIMENTO BIPREDITIVO". CAMPO TÉCNICO
[001] A presente invenção refere-se geralmente ao campo de processamento de imagem e mais particularmente com técnicas de predição inter.
ANTECEDENTES DA INVENÇÃO
[002] Na compactação de vídeo, a predição inter é um processo utilizando amostras reconstruídas de imagens de referência anteriormente decodificadas por especificar vetores de movimento relativos a um bloco corrente. Estes vetores de movimento podem ser codificados como um resíduo da predição por utilizar preditores de vetor de movimento espaciais ou temporais. Os vetores de movimento podem estar na precisão de subpixel. De modo a derivar o subpixel, valores de pixel precisos na predição de quadros de referência para o bloco corrente são derivados como uma combinação ponderada de dois blocos de predição derivados utilizando dois vetores de movimento a partir de duas áreas da imagem de referência. Neste caso, em adição aos vetores de movimento, os índices de referência para as imagens de referência a partir das quais os dois blocos de predição são derivados também precisam ser codificados. Os vetores de movimento para o bloco corrente também podem ser derivados através de um processo de mesclagem onde vetores de movimento e índices de referência espacialmente vizinhos são herdados sem codificação de quaisquer resíduos de vetor de movimento. Em adição aos vizinhos espaciais, vetores de movimento de quadros de referência anteriormente codificados também são armazenados e utilizados como opções de mesclagem temporal com dimensionamento apropriado dos vetores de movimento para cuidar da distância até os quadros de referência em relação à distância até os quadros de referência para o bloco corrente.
[003] A invenção se relaciona com padronização de codificação de vídeo versátil que foi anteriormente orientada como um Modelo Exploratório Conjunto (JEM) dentro da Equipe Conjunta de Exploração de Vídeo que é um trabalho conjunto entre Q16 do VCEG e MPEG (SC29/WG11). O documento JVET-G1001 e outra técnica anterior se relacionando com refinamento de vetor de movimento no lado do decodificador e derivação de vetor de movimento no lado do decodificador podem ser utilizados para obter uma lista de documentos e patentes de contribuição relacionados com esta invenção.
[004] Vários métodos foram propostos para executar um refinamento ou derivação de vetor de movimento no lado do decodificador de modo que os bits de codificação residuais do vetor de movimento possam ser ainda reduzidos.
[005] Uma classe de métodos, chamados de métodos de correspondência de gabarito (TM), utiliza uma região em formato de L adjacente ao bloco corrente (como apresentado na Figura 1) que já foi reconstruída, chamada de gabarito, e identifica uma melhor região em formato de L correspondente (utilizando funções de custo tal como a soma de diferenças absolutas ou a soma com média removida de diferenças absolutas) em cada quadro de referência utilizando vários candidatos a vetor de movimento espacial e temporal adequadamente dimensionados. Então, centralizado no melhor candidato à correspondência, refinamento adicional é executado dentro de alguma distância de refinamento ao redor deste centro. No lado do codificador, o custo otimizado pela distorção de taxa é calculado para decidir entre uni-predição (isto é, predição utilizando a melhor referência correspondente) e bipredição (isto é, predição derivada por calcular a média das duas melhores referências correspondentes principais).
[006] Outra classe de métodos, chamada de métodos de correspondência bilateral (BM), a informação de movimento da unidade de codificação (CU) corrente é derivada no lado do decodificador por obter um conjunto de candidatos a vetor de movimento e encontrar a correspondência mais próxima entre o bloco com movimento compensado utilizando um candidato a vetor de movimento e o bloco com movimento compensado obtido a partir de outra referência por simetricamente espelhar o candidato a vetor de movimento baseado nas proporções de distância temporal (e arredondando para a precisão mais próxima de vetor de movimento utilizada para compensação de movimento) entre o quadro corrente e duas imagens de referência utilizadas para bipredição (observe que os termos "imagem" e "quadro" são utilizados de forma intercambiável neste documento). Isto é apresentado na Figura 2. Sob a suposição de trajetória de movimento contínuo, os vetores de movimento MV0 e MV1 apontando para dois blocos de referência devem ser proporcionais às distâncias temporais, isto é, TD0 e TD1, entre a imagem corrente e as duas imagens de referência. Quando a imagem corrente está temporariamente entre as duas imagens de referência e a distância temporal a partir da imagem corrente até as duas imagens de referência é a mesma, a correspondência bilateral se torna compensação de movimento (MC) bidirecional baseada em espelho.
[007] Após identificar o melhor candidato a vetor de movimento correspondente entre um conjunto de candidatos normativos, um refinamento local é executado dentro de uma faixa de refinamentos ao redor do candidato a vetor de movimento na primeira referência e no candidato a vetor de movimento temporariamente dimensionamento baseado nas proporções de distância temporal na segunda referência de uma maneira tal que a posições de pesquisa correspondente utilizada para a avaliação de função de custo sempre estão relacionadas umas com as outras pela proporção de distância temporal.
[008] Em algumas modalidades, de modo a reduzir a complexidade da interpolação com movimento compensado, a interpolação bilinear é executada durante o refinamento e a MC exata final utilizando um filtro de interpolação baseado em transformada de Cosseno Discreta (DCTIF) é feita após o refinamento.
[009] No modo de mesclagem com correspondência bilateral, a bipredição é sempre aplicada desde que a informação de movimento de uma CU é derivada baseada na correspondência mais próxima entre dois blocos ao longo da trajetória de movimento da CU corrente em duas imagens de referência diferentes.
[0010] Um modo de mesclagem explícito para indicar a mesclagem de correspondência de gabarito ou a mesclagem de correspondência bilateral pode ser sinalizado para diferenciar estes modos de um modo de mesclagem preestabelecido que não requer qualquer derivação de vetor de movimento no lado do decodificador.
[0011] Em algumas modalidades, as distâncias temporais são ignoradas e a correspondência bilateral é executada com vetores de movimento iguais e opostos nos quadros de referência passado e futuro, respectivamente.
[0012] Em algumas modalidades, nenhum índice de mesclagem é sinalizado enquanto em outras modalidades, para simplificar a complexidade do decodificador para executar várias compensações de movimento, um índice de mesclagem explícito é sinalizado.
[0013] Em uma variação do modo de correspondência bilateral, um gabarito bilateralmente com a média calculada é primeiro criado utilizando os blocos de predição nas referências L0 e L1 obtidas a partir do índice de mesclagem explicitamente sinalizado e a correspondência é executada em relação a este gabarito. O gabarito é atualizado se existir qualquer movimento. Além disso, em algumas modalidades, o refinamento é executado em uma referência e o vetor de movimento na outra referência é obtido através do espelhamento deste vetor de movimento refinado. O refinamento alterna entre as duas referências até que a posição central tenha o menor erro ou o número máximo de repetições ser alcançado.
[0014] Em alguns dos métodos de refinamento, um refinamento em nível de CU é primeiro executado. Então, uma avaliação de vários candidatos em nível de sub-CU é executada junto com os MVs refinados em nível de CU como candidatos. Opcionalmente, cada sub- CU pode executar seu próprio refinamento com respeito ao melhor candidato correspondente.
[0015] A soma de diferenças absolutas ou a soma de diferenças absolutas com média removida é utilizada como a função de custo correspondente para medir o nível de alinhamento entre o patch de referência L0 e o patch de referência L1. Algumas funções de custo utilizam uma distância de refinamento de vetor de movimento a partir do início da posição de refinamento como um termo de viés.
[0016] Dada que a derivação ou o processo de refinamento no lado do decodificador, por exemplo, como na Figura 3, é implicitamente executado, o codificador precisa executar estas etapas exatamente da mesma maneira que o decodificador de modo que a reconstrução no lado do codificador corresponda à reconstrução no lado do decodificador.
[0017] Somente amostras luma tipicamente são utilizadas durante o refinamento ou processo de derivação de vetor de movimento no lado do decodificador. Entretanto, a crominância também tem o movimento compensado utilizado os vetores de movimento de refinamento final (adequadamente dimensionadas para levar em consideração quais amostragens descendentes croma) como utilizado para a compensação de movimento luma. Fluxo Óptico Bipreditivo
[0018] O fluxo óptico bipreditivo (BPOF) é um refinamento de movimento no lado do decodificador na direção da amostra que é executado na parte de cima da compensação de movimento na direção de bloco para bipredição. O refinamento de movimento em nível de amostra não utiliza sinalização. (k )
[0019] Deixe I ser o valor luma a partir da referência k (k = 0, 1) (k ) (k ) após a compensação de movimento do bloco, e I x , I y serem os (k ) componentes horizontal e vertical do gradiente I , respectivamente.
[0020] Assumindo que o fluxo óptico é válido, o campo de vetor de movimento (v x , v y ) é dado por uma Equação (1.13) (k ) (k ) (k ) I t + v x I x + v y I y = 0 (1.13)
[0021] Combinar esta equação de fluxo óptico com a interpolação de Hermite para a trajetória de movimento de cada amostra resulta em um polinômio de terceira ordem único que corresponde a ambos os (k ) (k ) valores de função I (k ) e às derivadas I x , I y nas extremidades. O valor deste polinômio em t = 0 é a predição BPOF: ( pred BIO = 1 2  I (0 ) +I (1 ) + v x 2   1 I( (1 ) x −  0 I (0 ) ) (  x + v y 2   1 I (1 ) y −  0 I (0 ) y )) (1.14)
[0022] Aqui, 0 e 1 denotam as distâncias até os quadros de referência como apresentado na Figura 4. As distâncias 0 e 1 são 0 calculadas baseadas na POC para Ref(0) e Ref(1): = POC (corrente) – POC(Ref0), 1 = POC(Ref1) – POC(corrente). Se ambas as predições ocorrerem a partir da mesma direção de tempo (ambas a partir do passado ou ambas a partir do futuro), então os sinais são  0 1  0 diferentes (isto é, ). Neste caso, BPOF é aplicada somente se a  0  1 predição não for a partir do mesmo momento de tempo (isto é, ), ambas as regiões de referência possuem movimento diferente de zero  0 ( MVx 0 , MVy 0 , MVx 1 , MVy 1 ) e os vetores de movimento do bloco são = MVy = − 0 1 proporcionais à distância de tempo ( MVx 0 MVx 1 0 MVy 1 )
[0023] O campo de vetor de movimento (v x , vy ) é determinado por minimizar a diferença  entre valores nos pontos A e B (interseção de trajetória de movimento e planos de quadro de referência). O modelo utiliza somente o primeiro termo linear de uma expansão de Taylor local para :  = I ( (0 ) −I (1 ) 0 ( + v x  1I (1 ) x +  0 I (0 ) ) ( x + v y  1I (1 ) y +  0 I (0 ) y )) (1.15)
[0024] Todos os valores na Equação (1.15) dependem das localizações de amostra (i', j'), que forma omitidas a partir da notação até agora. Assumindo que o movimento é consistente na área circundante local, minimizamos  dentro da janela quadrada (2M + 1) x (2M + 1)  centralizada no ponto correntemente predito (i, j), onde M é igual a 2: (v x , v y ) = arg min   i , j ' 2 v x ,v y i  , j  (1.16)
[0025] Para este problema de otimização, o desenvolvimento corrente utiliza uma abordagem de menores quadrados simplificada fazendo primeiro uma minimização na direção vertical e então na direção horizontal. Isto resulta em (1.18) onde,
 ( ) (1 ) (0 ) 2 s1 = 1 I x +  0 I x i ,j    (I )( I ( ) ) (1 ) (0 ) (0 ) x +  0 I 1 s3 = −I 1 x i ,j    ( )( ) (1 ) (0 ) (1 ) (0 ) s2 = 1 I x +  0 I x  1I y +  0 I y i ,j    ( ) (1 ) (0 ) 2 s5 = 1 I y +  0 I y i ,j    (I )( I ( ) ) (1 ) (0 ) (0 ) y +  0 I 1 s6 = −I 1 y i ,j   (1.19)
[0026] De modo a evitar divisão por zero ou um valor muito pequeno, parâmetros de regularização r e m são introduzidos na Equação (1.17) e (1.18).
(1.20) (1.21)
[0027] Aqui, d é a profundidade de bit das amostras de vídeo.
[0028] Em algumas modalidades, a divisão é executada utilizando um deslocamento para a direita com um valor calculado como a posição da posição de bit mais significativo no denominador.
[0029] Com o BPOF, é possível que o campo de movimento possa ser refinado para cada amostra, mas para reduzir a complexidade computacional, o projeto baseado em bloco do BPOF pode ser utilizado. O refinamento de movimento é calculado baseado em um bloco 4 x 4. No BPOF baseado em bloco, os valores de sn na Equação (1.19) de todas as amostras em um bloco 4 x 4 são agregados, e então, os valores agregados de sn são utiliza\dos para derivar deslocamentos de vetor de movimento do BPOF para o bloco 4 x 4. A fórmula seguinte baseada nos mínimos quadrados é utilizada para derivação BPOF baseado em bloco:
 (  I ) (1 ) (0 ) 2 s 1,bk =  1 x +  0 I x ( x ,y )b k i ,j  ( x ,y )  (I )( I ( ) ) (1 ) (0 ) (0 )  x +  0 I 1 s 3 ,bk = −I 1 x ( x ,y )b k i  ,j    (  I )( ) (1 ) (0 ) (1 ) (0 ) s 2 ,bk =  1 x +  0 I  x  1 I y +  0 I y ( x ,y )b k i  ,j    ( ) (1 ) (0 ) 2 s 5 ,bk =  1 I y +  0 I y ( x ,y )b k i  ,j    (I )( I ( ) ) (1 ) (0 ) (0 )  y +  0 I 1 s 6 ,bk = − I 1 y ( x ,y )b k i  ,j   (1.22) onde bk denota o conjunto de amostras pertencendo ao k- ésimo bloco 4 x 4 do bloco predito. Sn na Equação (1.17) e (1.18) são substituídos por ((sn,bk) >> 4) para derivar os deslocamentos de vetor de movimento associados.
[0030] De modo a manter o acesso à memória para o BPOF igual para a compensação de movimento bipreditiva normal, todos os valores de predição e de gradientes, são calculados somente para posições dentro do bloco corrente. Para calcular gradientes de posições dentro de um bloco corrente que requerem valores de amostra fora de um bloco corrente, a interpolação bilinear ou valores de amostra da grade de inteiros mais próximos são utilizados em algumas modalidades. No desenvolvimento corrente, valores de fora do bloco são estabelecidos para serem iguais ao valor disponível mais próximo dentro do bloco. Por exemplo, isto pode ser implementado como enchimento, como apresentado na Figura 5.
[0031] Em alguns casos, o deslocamento de MV calculado através do BPOF pode não ser confiável devido a ruído ou movimento irregular. Portanto, no BPOF, a magnitude do deslocamento do MV é limitada a um valor limite thBPOF. O valor limite é determinado baseado em se as imagens de referência na imagem corrente são todas a partir de uma direção ou não. Por exemplo, os deslocamentos de MV tipicamente são limitados dentro de +/-1 a distância do pixel inteiro em abas as direções horizontal e vertical.
[0032] Em algumas modalidades, gradientes para BPOF são calculados ao mesmo tempo com a interpolação de compensação de movimento utilizando operações consistentes com o processo de compensação de movimento HEVC (FIR 2D separável). A entrada para esta FIR 2D separável é a mesma amostra de quadro de referência que para o processo de compensação de movimento e a posição fracionária (fracX, fracY) de acordo com a parte fracionária do vetor de movimento do bloco. No caso de gradiente horizontal , o sinal é primeiro interpolado verticalmente utilizando BPOFflterS correspondendo à posição fracionária fracY com o deslocamento de retirada de dimensionamento d-8, então, o filtro de gradiente BPOFfilterG é aplicado na direção horizontal correspondendo à posição fracionária fracX com o deslocamento de retirada de dimensionamento por 18-d. No caso de gradiente vertical , o filtro de gradiente é primeiro aplicado verticalmente utilizando BPOFfilterG correspondendo à posição fracionária fracY com o deslocamento de retirada de dimensionamento d-8, e então, o deslocamento de sinal é executado utilizando BPOFfilterS na direção horizontal correspondendo à posição fracionária fracX com deslocamento de retirada de dimensionamento por 18-d. O comprimento do filtro de interpolação para BPOFfilterG de cálculo de gradientes e BPOFfilterF de deslocamento de sinal é mais curto (6 derivações) de modo a manter complexidade razoável. A Tabela 1.4 apresenta os filtros utilizados para cálculo de gradientes para diferentes posições fracionária de vetor de movimento de bloco no BPOF. A Tabela 1.5 apresenta os filtros de interpolação utilizados para geração de sinal de predição em BPOF.
Tabela 1.4 Posição Fracionária Filtro de Interpolação para gradiente de Pixel (BIOfilterG) Tabela 1.5 Posição Fracionária Filtro de Interpolação para sinal de de Pixel predição (BIOfilterS)
[0033] Em algumas outras modalidades, o gradiente é calculado após a interpolação com movimento compensado 2D separável nas direções horizontal e vertical utilizando um filtro simples [-1 0 1].
[0034] No desenvolvimento corrente, o BPOF é aplicado para todos os modos bipreditos (exceto para casos de modo de mesclagem afim, com movimento compensado bipreditivo ponderado, e temporal avançado baseado em sub-bloco) quando as duas predições são a partir de diferentes imagens de referência. Para um sub-bloco 4 x 4 e utilizando posições de amostra 6 x 6, as equações 1.22 irão requerer as seguintes precisões intermediárias: • I(k corresponde às amostras de bloco predito não limitadas após a interpolação com movimento compensado 2-D separável baseado na parte fracionária do vetor de movimento mantida em uma profundidade de bit intermediária de 14 (em VVC) e com um deslocamento de -8192 aplicado para melhor utilizar a faixa dinâmica do número com 14 bits sinalizado. Por consequência, o termo de diferença irá possuir precisão de 15 bits. • e correspondem aos gradientes horizontal e vertical calculados a partir de I(k) pela aplicação de um filtro [-1 0 1] na direções horizontal e vertical, respctivamente, e por conseqUência, estará na precisão de 15 bits. • Na adoção corrente, as distâncias temporais para os dois quadros de referência a partir do quadro corrente, e , são assumidas como sendo iguais. A soma de e e a soma de e que são utilizadas na Equação 1.22 serãpo na precisão de 16 bits. • Por consequência, os termos de produto podem possuir precisão de bit de (16 + 15) ou (16 + 16) e a acumulação através de posições de amostra 6 x 6 para um dado sub-bloco 4 x 4 irá requerer acumuladores de 32 + 6 = 38 bits.
[0035] Na recente adoção para o padrão de Codificação Versátil de Vídeo, as seguintes simplificações normativas para a profundidade de bit intermediária foram feitas de modo a evitar exceder acumuladores de 32 bits e também facilitar operações de vários dados em instrução única (SIMD) de 32 bits: • I(k) são deslocados a direita por 6 bits antes de sua subtração e a quantidade subtraída estará na precisão de 9 bits • e são deslocados para a direita por 4 bits primeiro para levá-los à precisão de 11 bits • A soma de gradientes horizontais e a soma de termos de gradientes verticais são calculadas utilizando gradientes com precisão de 11 bits e as somas calculadas são ainda deslocadas para a direita por 3 bits para fazer com que os termos somados tenham precisão de 9 bits • Os termos do produto são então calculados como multiplicações de 9 bits x 9 bits produzindo saída de 18 bits que são acumulados em um acumulador de 24 bits. • As quantidades acumuladas de 24 bits são então utilizadas para calcular o vetor de fluxo (novamente sem exceder um valor intermediário de 27 bits) e o vetor de fluxo ( ) é representado em 5 bits (isto é, cada componente é um valor entre -8 e 8) • Enquanto aplicando a correção BPOF em nível de um pixelo, os valores de gradiente intermediários horizontal e vertical de 11 bits são utilizados para obter a diferença de 12 bits dos gradientes horizontais e a diferença dos gradientes verticais que são então respectivamente multiplicados por e , adicionados (o que pode cruzar a faixa de 16 bits) e então deslocados para baixo por 1 sem arredondamento, e então adicionados para valores de bloco preditos sem limite com o termo de deslocamento. Assim, no SIMD em software, as operações são executadas na precisão de 32 bits até que o deslocamento para a direita final leve os mesmos para a profundidade de bit de amostra e então as amostras são empacotadas. Assim, a taxa de rendimento SIMD durante a aplicação de correção é ruim. Atualmente, o BPOF é desativado durante a bipredição ponderada e ativado somente durante o cálculo de mídia bipreditiva normal.
[0036] Tipicamente, os vetores de movimento não são atualizadoatualizados no caso de BPOF com os deslocamentos estimados e as predições de componente croma não são ajustadas baseado nos deslocamento estimados.
Combinação de DMVR e BPOF
[0037] Desde que os requerimentos de memória interna para o refinamento dependem diretamente do tamanho do bloco no qual o refinamento é executado, algumas modalidades DMVR forçam a divisão de unidades de codificação de tamanho maior do que uma contagem de pixel em subunidades de predição (sub-PUs) que não excedem uma dada refinement_sub_PU-width predeterminada e uma dada refinement_sub_PU-height predeterminada.
[0038] Uma combinação direta de DMVR (enquanto aqui e no dito a seguir o termo DMVR é utilizado, é desnecessário dizer que o refinamento de vetor de movimento no lado do codificado também está compreendido) com BPOF é obtida por primeiro executar refinamento preciso de MV no lado do decodificador em relação à distância em número inteiro ou em subpixel em um nível de sub-PU, em que DMVR de sub-PU é executada utilizando uma interpolação 2-D separável mais simples (por exemplo, amostras de grade de números inteiros, interpolação bilinear em uma precisão especificada em subpixel que pode estar na mesma precisão em subpixel que a interpolação final com movimento compensado ou em uma precisão reduzida em subpixel). Uma vez que o vetor de movimento refinado seja conhecido para a sub-PU, a interpolação com movimento compensado baseada em DCTIF 2-D separável é executada. Em HEVC e nos padrões da versão preliminar VVC, DCTIF de 8 ou 7 derivações é empregada para MC de luminância dependendo da fase de subpixel. Após amostras interpoladas por DCTIF a partir da interpolação vertical (que segue a interpolação horizontal normativamente) se tornarem disponíveis, valores de amostra e gradientes de amostra são calculados utilizando o vetor de fluxo óptico bipreditivo que é determinado em um nível por pixel ou em um sub-bloco m x n com a sub-PU como descrito anteriormente. Baseado neste vetor de fluxo óptico para o pixel ou sub-bloco e nos valores de amostra e nos gradientes de amostra, a média bipreditiva convencional é atualizada com um termo de correção como descrito anteriormente.
[0039] Por consequência, o início da interpolação baseada em DCTIF para uma sub-PU tem que aguardar que a DMVR de sub-PU seja completada. O início do cálculo do vetor de fluxo óptico tem que aguardar que a interpolação vertical DCTIF de sub-PU comece a ficar disponível, o que somente é possível após o número de derivações do filtro DCTIF de fileiras horizontalmente interpoladas ser produzido.
[0040] Em vista do dito acima, um objetivo subjacente da presente invenção é proporcionar técnicas para predição inter em que o tempo e a carga geral de processamento e a necessidade de capacidade de memória possam ser reduzidos se comparado com a técnica corrente.
SUMÁRIO DA INVENÇÃO
[0041] O objetivo mencionado acima é endereçado pelas reivindicações anexas. É proporcionado um método de predição inter, compreendendo: selecionar amostras de referência baseado na informação de movimento de um bloco de imagem corrente de uma imagem corrente; derivar primeiras amostras interpoladas por executar uma primeira interpolação em relação às amostras de referência selecionadas; derivar um vetor de movimento delta de distância em número inteiro para uma subunidade de predição alvo, PU, por executar Refinamento de Vetor de Movimento, MVR, de distância em número inteiro, baseado nas primeiras amostras interpoladas, em que a sub-PU alvo está no bloco de imagem corrente; derivar vetores de fluxo de matriz de pixels M x M (M sendo um número inteiro, por exemplo, M = 4) por executar Fluxo óptico
Bipreditivo, BPOF, para cada matriz de pixels M x M na sub-PU alvo baseado nas primeiras amostras interpoladas e no vetor de movimento delta de distância em número inteiro, em que M é um número inteiro positivo, e o tamanho da matriz de pixels M x M é menor do que o tamanho da sub-PU alvo; derivar segundas amostras interpoladas por executar uma segunda interpolação em relação às amostras de referência; computar pelo menos um parâmetro de correção para a sub-PU alvo baseado nos vetores de fluxo da matriz de pixels M x M, nas primeiras amostras interpoladas e nas segunda amostras interpoladas; e executar bipredição baseado nas segundas amostras interpoladas e no pelo menos um parâmetro de correção.
[0042] Pela combinação assim especificada de derivação, cálculo e das etapas do método de bipredição, a carga computacional como um todo e o tempo computacional necessário para codificação baseada na predição inter podem ser significativamente reduzidos se comparado com as técnicas conhecidas na técnica corrente.
[0043] A informação de movimento pode compreender um vetor de movimento em um nível de bloco de Árvore de Codificação ou em um nível de unidade de dados de Fluxo de Informações Virtual. Além disso, a informação de movimento pode compreender índices de referência que são úteis para facilitar a seleção da imagem de referência apropriada.
[0044] A segunda interpolação do método da invenção pode ser executada utilizando um vetor de movimento do bloco de imagem corrente e o vetor de movimento delta de distância em número inteiro derivado para a sub-PU alvo. O vetor de movimento de um sub-bloco é derivado baseado em um vetor de movimento inicial do bloco corrente e em um deslocamento apropriado. O MV inicial pode não apontar para uma localização de pixel em número inteiro, mas o deslocamento será um delta de distância inter de modo que quando o deslocamento é adicionado para o vetor de movimento inicial, se chega a uma posição de pixel em número inteiro.
[0045] O pelo menos um parâmetro de correção mencionado acima para a sub-PU alvo utilizada para a predição bipreditiva pode ser calculado a partir de gradientes de amostra calculados para amostras da sub-PU alvo. Desse modo, a bipredição convencional, por exemplo, baseada na correspondência de gabarito ou bilateral, somente pode ser aprimorada com respeito à precisão da imagem de predição.
[0046] Particularmente, a bipredição empregando o parâmetro de correção pode compreender gerar uma primeira imagem de predição utilizando o parâmetro de correção baseado em uma primeira imagem de referência L0 e gerar uma segunda imagem de predição utilizando o parâmetro de correção baseado em uma segunda imagem de referência L1.
[0047] De acordo com uma modalidade, as amostras da grade de números inteiros das amostras de referência são armazenadas em uma primeira memória, e as primeiras amostras interpoladas são armazenadas em uma segunda memória que é diferente da primeira memória, por exemplo, uma memória cache, de modo que as primeiras amostras interpoladas possam ser prontamente recuperadas em diferentes etapas de processamento onde seja necessário.
[0048] Nas modalidades descritas acima, a segunda interpolação pode ser executada por um filtro de interpolação separável. Tal tipo de filtros pode permitir uma interpolação relativamente rápida e precisa.
[0049] Nas modalidades descritas acima do método da invenção, antes de calcular o pelo menos um parâmetro de correção para a sub- PU alvo, pode compreender:
derivar gradientes de amostra de limite horizontal nas posições de amostra de limite esquerdo e direito da sub-PU alvo e gradientes de amostra de limite vertical nas posições de amostra de limite de parte de cima e de parte de baixo da sub-PU alvo baseado nas primeiras amostras interpoladas.
[0050] Os gradientes de amostra de limite horizontal e vertical podem ser colocados em memória temporária em alguma memória interna de modo a serem utilizados durante a correção baseada em gradiente de bipredição. O pelo menos um parâmetro de correção para a sub-PU alvo pode ser calculado baseado nos gradientes de amostra de limite horizontal e nos gradientes de amostra de limite vertical. Particularmente, os gradientes de amostra de limite horizontal e os gradientes de amostra de limite vertical podem ser derivados após a execução do refinamento de vetor de movimento de modo a reduzir a memória e carga computacional como um todo.
[0051] A primeira interpolação mencionada acima pode ser uma interpolação bilinear e/ou a segunda interpolação mencionada acima pode ser uma interpolação de transformada de Cosseno Discreta menos simples/onerosa.
[0052] O objetivo mencionado acima também é endereçado por proporcionar um método de predição inter, compreendendo: selecionar amostras de referência baseado na informação de movimento de um bloco de imagem corrente de uma imagem corrente; derivar amostras interpoladas por executar uma interpolação (por exemplo, executada por um filtro de interpolação separável) em relação às amostras de referência selecionadas; calcular custos do Refinamento de Vetor de Movimento, MVR, de distância em número inteiro, baseado nas amostras interpoladas;
determinar um vetor de movimento delta de distância em número inteiro baseado nos custos do MVR de distância em número inteiro; derivar vetores de fluxo de matriz de pixels M x M (M sendo um número inteiro, por exemplo, M = 4) por executar Fluxo óptico Bipreditivo, BPOF, para cada matriz de pixels M x M em uma subunidade de predição, PU, alvo, baseado nas amostras interpoladas e no vetor de movimento delta de distância em número inteiro, em que M é um número inteiro positivo, e M x M é menor do que o tamanho da sub-PU em que a sub-PU alvo está no bloco de imagem corrente; calcular pelo menos um parâmetro de correção para a sub- PU alvo baseado nos vetores de fluxo da matriz de pixels M x M e nas amostras interpoladas; e executar bipredição baseado nas amostras interpoladas e no pelo menos um parâmetro de correção.
[0053] Pela combinação assim especificada de derivação, cálculo e etapas do método de bipredição, a carga computacional como um todo e o tempo computacional necessários para codificação baseado em predição inter também podem ser significativamente reduzidos se comparado com as técnicas conhecidas na técnica corrente.
[0054] Como nas modalidades anteriormente descritas, a informação de movimento pode compreender um vetor de movimento em um nível de bloco de Árvore de Codificação ou em um nível de unidade de dados de Fluxo de Informações Virtual e pode compreender índices de referência.
[0055] O pelo menos um parâmetro de correção para a sub-PU alvo pode ser calculado a partir de gradientes de amostra calculados para amostras na sub-PU alvo. Como nas modalidades anteriormente descritas, a execução da bipredição pode compreender gerar uma primeira imagem de predição utilizando o parâmetro de correção baseado em uma primeira imagem de referência L0 e gerar uma segunda imagem de predição utilizando o parâmetro de correção baseado em uma segunda imagem de referência L1.
[0056] O parâmetro de correção para a sub-PU alvo pode ser calculado baseado nos gradientes de limite. Assim, o método pode compreender, antes de calcular o pelo menos um parâmetro de correção para a sub-PU alvo, derivar gradientes de limite da sub-PU alvo baseado nas amostras interpoladas antes de calcular o pelo menos um parâmetro de correção para a sub-PU alvo.
[0057] A interpolação utilizada neste método proporcionado pode ser uma interpolação bilinear ou interpolação de transformada de Cosseno Discreta. Além disso, a primeira e últimas N fileiras das amostras de interpolação podem ser determinadas utilizando um mesmo primeiro método de interpolação, e as fileiras das amostras de interpolação, exceto para a primeira e últimas N fileiras, podem ser determinadas utilizando um mesmo segundo método de interpolação. N pode ser 3, por exemplo. O primeiro método de interpolação pode ser uma interpolação de transformada de Cosseno Discreta ou interpolação bilinear e o segundo método de interpolação pode ser uma interpolação de transformada de Cosseno Discreta.
[0058] O objetivo mencionado acima também é endereçado pelo aprovisionamento de outro método de predição inter, compreendendo as etapas de: selecionar amostras de referência pela informação de movimento de um bloco de imagem corrente de uma imagem corrente; derivar amostras interpoladas para uma subunidade de predição alvo, PU, do bloco de imagem corrente por executar uma primeira interpolação em relação a tais amostras de referência das amostras de referência selecionadas, cujas posições correspondem ao vetor de movimento, MV, delta zero, na faixa de refinamento do MV para o bloco de imagem corrente, e por executar uma segunda interpolação em relação a tais amostras de referência das amostras de referência selecionadas cujas posições não correspondem ao MV delta zero na faixa de refinamento do MV para o bloco de imagem corrente; calcular os custos do Refinamento de Vetor de Movimento, MVR, de distância em número inteiro baseado nas amostras interpoladas; calcular um vetor de movimento delta de distância em número inteiro baseado nos custos calculados do MVR de distância em número inteiro; determinar um vetor de movimento delta de precisão em subpixel ao redor do vetor de movimento delta de distância em número inteiro determinado utilizando os custos calculados de MVR de distância em número inteiro; derivar vetores de fluxo de matriz de pixels M x M (M sendo um número inteiro, por exemplo, M = 4) por executar Fluxo óptico Bipreditivo, BPOF, para cada bloco luma M x M de amostras na sub=PU alvo baseado nas amostras interpoladas na posição de vetor de movimento delta zero, em que M é um número inteiro positivo, e M x M é menor do que o tamanho da sub-PU, e em que a sub-PU alvo está no bloco de imagem corrente; determinar se a predição inter luma para a sub-PU alvo é executada utilizando o vetor de movimento delta determinado para a sub-PU alvo ou os vetores BPOF derivados para cada bloco luma M x M de amostras na sub-PU alvo; calcular pelo menos um parâmetro de correção para a sub- PU alvo baseado nos vetores de fluxo de matriz de pixels M x M e nas amostras interpoladas no caso em que a predição inter luma para a sub-PU alvo é determinada como sendo executada utilizando vetores BPOF derivados;
calcular pelo menos um parâmetro de correção para a sub- PU alvo baseado no vetor de movimento delta determinado no caso em que a predição inter luma para uma sub-PU alvo é determinada como sendo executada utilizando o vetor de movimento delta determinado; e executar bipredição baseado nas amostras interpoladas e no pelo menos um parâmetro de correção.
[0059] Pela combinação assim especificada de derivação, cálculo e etapas do método de bipredição deste outro método proporcionado, a carga computacional e o tempo computacional como um todo necessários para codificação baseada na predição inter também podem ser significativamente reduzidos se comparado com as técnicas conhecidas na técnica anterior.
[0060] Além disso, neste outro método proporcionado, o pelo menos um parâmetro de correção para a sub-PU alvo pode ser calculado a partir de gradientes de amostra calculados para amostras da sub-PU alvo. Novamente, a execução da bipredição pode compreender gerar uma primeira imagem de predição utilizando o parâmetro de correção baseado em uma primeira imagem de referência L0 e gerar uma segunda imagem de predição utilizando o parâmetro de correção baseado em uma segunda imagem de referência L1.
[0061] A segunda interpolação pode ser executada por um filtro de interpolação separável e/ou a primeira interpolação pode ser uma interpolação de Transformada de Cosseno Discreta. A segunda interpolação pode ser interpolação bilinear ou de Transformada de Cosseno Discreta.
[0062] Este outro método proporcionado executa predição inter luma para a sub-PU alvo utilizando vetor de movimento delta para a sub-PU alvo ou vetores BPOF para cada bloco luma M x M de amostras na sub-PU alvo. Desse modo, a predição inter concreta pode ser escolhida baseado em um compromisso entre carga/sobrecarga computacional e precisão da imagem de predição resultante a partir do procedimento de predição inter. Experimentos e experiência adquirida durante aplicações práticas têm apresentado que pode ser adequado executar a predição inter luma para a sub-PU alvo utilizando os vetores BPOF derivados para cada bloco luma M x M de amostras na sub-PU alvo quando a condição particular se mantém. Por exemplo, pode ser determinado que a predição inter luma para a sub-PU alvo seja executada utilizando vetores BPOF derivados para cada bloco luma M x M de amostras na sub-PU alvo, quando uma ou mais das seguintes condições são satisfeitas: a) o melhor custo de vetor de movimento delta de distância em número inteiro é um vetor zero; b) o custo de MVR do vetor de movimento delta zero menos o melhor custo é menor do que um limite predeterminado; e c) a variância da distância Euclidiana ou de Manhattan de vetores BPOF através de todos os blocos 3 4 x 4 de amostras luma dentro de uma sub-PU alvo excede um limite predeterminado.
[0063] Todas as modalidades descritas acima dos métodos da invenção podem ser utilizadas para codificação, isto é, codificação e decodificação, de imagens de vídeo de sequências de vídeo. Assim, os métodos seguintes também são proporcionados neste documento:
[0064] Um método para codificar imagens de vídeo compreendendo receber as imagens de vídeo, aplicar o método de predição inter de qualquer uma das modalidades descritas acima para blocos das imagens de vídeo e codificar a imagens de vídeo baseado na bipredição executada e um método para decodificar imagens de vídeo codificadas compreendendo receber as imagens de vídeo codificadas, aplicar o método de predição inter de qualquer uma das modalidades descritas acima para blocos de imagens de vídeo codificadas e decodificar as imagens de vídeo codificadas baseado na bipredição executada.
[0065] Além disso, um codificador ou decodificador compreendendo sistema de circuitos de processamento para realizar o método de acordo com qualquer uma das modalidades descritas acima é proporcionado.
[0066] Particularmente, é proporcionado um codificador ou decodificador, compreendendo um ou mais processadores e um meio de armazenamento não temporário legível por computador acoplado com os processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador ou decodificador para realizar o método de acordo com qualquer uma das modalidades descritas acima.
[0067] Além disso, um produto de programa de computador compreendendo um código de programa para executar o método de acordo com qualquer uma das modalidades descritas acima é proporcionado.
BREVE DESCRIÇÃO DE DESENHOS ACOMPANHANTES
[0068] Figura 1: Ilustração de Derivação de Vetor de Movimento no Lado do Decodificador baseado em correspondência de gabarito;
[0069] Figura 2: Ilustração de Derivação de Vetor de Movimento no Lado do Decodificador baseado em correspondência bilateral;
[0070] Figura 3: Ilustração de Refinamento de Vetor de Movimento no Lado do Decodificador baseado em correspondência de gabarito bilateral;
[0071] Figura 4: Ilustração de Fluxo Óptico Bipreditivo;
[0072] Figura 5: Ilustração de derivação de valores de amostra e de valores de gradiente de amostra fora do bloco corrente;
[0073] Figura 6: Diagrama de blocos do sistema de coexistência DMVR + BPOF para a modalidade 1;
[0074] Figura 7: Diagrama de blocos do sistema BPOF para CUs que não são DMVR para a modalidade 1;
[0075] Figura 8: Diagrama de blocos do sistema de coexistência DMVR + BPOF para a modalidade 1;
[0076] Figura 9: Diagrama de blocos do sistema de coexistência DMVR + BPOF para a modalidade 2;
[0077] Figura 10: Diagrama de blocos do sistema BPOF para CUs que não são DMVR para a modalidade 2;
[0078] Figura 11: Ilustração de DMVR com correção baseada em gradiente para subfluxo de pixels (sem BPOF em nível 4 x 4);
[0079] Figura 12: Diagrama de blocos para modalidade 3;
[0080] Figura 13: Diagrama de tempo para modalidade 3;
[0081] Figura 14: Ilustração de uma modalidade de um codificador ou decodificador
DESCRIÇÃO DETALHADA DA INVENÇÃO
[0082] Como descrito acima, uma combinação objetiva de refinamento de vetor de movimento no lado do decodificador (ou seja, utilizando correspondência bilateral simétrica) com correção por pixel baseada em fluxo óptico bipreditivo no lado do decodificador para cada amostra de forma bipreditiva com movimento compensado envolve uma dependência entre determinação de distância expressão em número inteiro ou número inteiro com vetor de movimento de refinamento de distância em subpixel e início de interpolação baseada em DCTIF horizontal. Similarmente, o início de estimativa de fluxo óptico bipreditivo possui uma dependência em relação à primeira fileira interpolada baseada em DCTIF vertical. A primeira dependência pode ser endereçada por configurar um fluxo de informações de granularidade de sub-PU de modo que quando DMVR (novamente é observado que o refinamento de vetor de movimento DMVR no lado do codificador também está compreendido) trabalha em relação a uma dada sub-PU, DCTIF pode ser executada em uma sub-PU anterior para a qual o DMVR já foi completado (ou foi determinado como não sendo aplicável).
[0083] Dado que pode existir considerável sobreposição entre as amostras requeridas para compensação de movimento de diferentes blocos de unidade de predição ou de codificação que estão adjacentes uns aos outros, uma cache de pré-busca tipicamente é empregada nos projetos de hardware para deterministicamente trazer as amostras requeridas para compensação de movimento. Nas implementações por software, as caches do processador automaticamente proporcionam localidade espacial de referência. Estas caches de pré- busca tendem a ser mais rápidas para acesso do que a memória externa, mas mais lentas para acessar do que as memórias de linha internas utilizadas em projetos de hardware. Por consequência, é preferível para esta cache de pré-busca não ser acessada várias vezes para o mesmo conjunto de amostras. Por consequência, com um fluxo de informações em nível de sub-PU, os requerimentos de memória interna aumentam para colocar em memória temporária as amostras da grade de números inteiros para DCTIF eventual para evitar acessar a cache de pré-busca novamente para linhas que já foram acessadas para DMVR. Com interpolação baseada em DMVR e DCTIF horizontal funcionando em diferentes sub-PUs, a memória interna precisa se tornar 4*(sPUw + N_TAPS_DCTIF – 1 + 2*(S+1))*(sPUh + 2*(S+1)) através das duas referências e das duas sub-PUs, em que sPUw e sPUh são a largura e a altura de uma sub- PU (com a granularidade escolhida), N_TAPS_DCTIF indica o número de derivações de filtro utilizadas para interpolação baseada em DCTIF, e S representa a faixa de refinamento DMVR ao redor do vetor de movimento de mesclagem, e o 1 adicional provém das necessidades de BPOF.
[0084] À medida que N_TAPS_DCTIF aumenta, dado que a interpolação baseada em DCTIF vertical precisa ser normativamente executada antes da interpolação baseada em DCTIF vertical, a interpolação baseada em DCTIF vertical não pode iniciar até que o número N_TAPS_DCTIF de fileiras interpoladas baseado em DCTIF horizontal seja produzido. É preferível a partir de um ponto de vista de tempo como um todo (ou latência do fluxo de informações) executar alguns cálculos de BPOF durante este tempo, o que simultaneamente não é possível à medida que o BPOF é executado em amostras interpoladas baseado em DCTIF vertical. Dado o requerimento de cálculo de gradiente na direção vertical, 3 fileiras verticalmente interpoladas são requeridas para o cálculo de gradiente vertical iniciar. Dado o fluxo de informações em nível de sub-PU, de modo a manter a memória interna mínima, o BPOF também precisa acontecer em nível de uma sub-PU. A determinação de vetor de fluxo para sub-blocos 4 x 4 de uma sub-PU requer multiplicações 5*(sPUw+2)*(sPUh+2) 9 bits x 9bits. O número de acumulações de termo de produto será NUM_4x4_PER_SUB_PU*36, onde NUM_4x4_PER_SUB_PU é o número de blocos 4 x 4 por sub-PU. Desde que o cálculo do termo de correção requer gradientes horizontal e vertical, é imperativo que os gradientes de amostra horizontal e vertical de L0 e L1 (em profundidade de 15 bits) sejam armazenados em um armazenamento temporário ou que as amostras interpoladas de pré-calculo de média não limitadas em profundidade de bits intermediária (de 14) sejam armazenadas em uma memória temporária até que o cálculo de correção possa iniciar com a disponibilidade do vetor de fluxo calculado em nível 4 x 4. Para melhor temporização, enquanto a estimativa de fluxo óptico para uma fileira de blocos 4 x 4 dentro de uma sub-PU acontece, a correção baseada em vetor de fluxo e gradiente será calculada para uma fileira anterior de blocos 4 x 4 dentro da sub-PU. Isto implica que o armazenamento de gradiente ou o armazenamento de amostra interpolada de pré-cálculo de média não limitada terá que ser para pelo menos 8 fileiras em cada referência. Deve ser observado que na ausência de BPOF, o cálculo de média bipreditivo poderia ter sido executado em uma base de fileira por fileira assim que uma fileira de amostras verticalmente interpoladas a partir de cada referência se tornasse disponível. Por consequência, é desejável reduzir a carga da memória interna.
[0085] O BPOF na ausência de DMVR correntemente assume que dentro de uma unidade de codificação, amostras interpoladas baseado em DCTIF estão disponíveis fora de um dado 4 x 4 contanto que estas amostras adicionais se situem dentro da unidade de codificação. Em outras palavras, para o cálculo de gradiente para posições dentro do 4 x 4, amostras interpoladas baseado em DCTIF em 6 x 6 são requeridas. Similarmente, para uma sub-PU, amostras interpoladas baseado em DCTIF em (sPUw + 2) x (sPUh + 2) são requeridas. Isto iria requerer DCTIF preparar o fluxo de informações da sub-PU por inicialmente produzir duas fileiras e duas colunas sempre que o tamanho da unidade de codificação for maior do que o tamanho da sub-PU. Isto também aumenta os requerimentos de memória interna à medida que 2*128*2*2 amostras de referência interpoladas de pré-cálculo de média podem ter que ser mantidas no pior caso. Alternativamente, economizar memória interna requer que cada sub-PU produza (sPUw + 2) x (sPUh + 2) de saída interpolada baseada em DCTIF, o que para uma sub-PU 16 x 16 resulta em aumento de ~25% na carga de trabalho de interpolação. Por consequência, é desejável evitar este aumento na demanda por memória interna ou o aumento na contagem de portas devido ao aumento de 25% na carga de trabalho de interpolação.
[0086] Sempre que o MV delta preciso em subpixel é empregado pelo DMVR, cada sub-PU pode potencialmente possuir diferentes deslocamentos de fase em subpixel nas direções horizontal e vertical. Por consequência, cada sub-PU precisa executar interpolação baseada em DCTIF separável 2-D independente. Apesar de isto estar bem abaixo da complexidade de interpolação DCTIF de pior caso para todas as sub-PUs bipreditas 4 x 4 como encontrado para sub-CUs afins em VVC, os requerimentos médios de energia no hardware ou os requerimentos médios de processamento no software aumentam significativamente com DCTIF em nível de sub-PU. Além disso, desde que o BPOF na presença de DMVR com MV delta preciso em subpixel é forçado a obter amostras adicionais fora da sub-PU que são requeridas para o cálculo de gradiente para posições dentro da sub- PU utilizando algum método de interpolação (por exemplo, DCTIF, interpolação bilinear, ou amostra de grade mais próxima de número inteiro), executar estas interpolações também aumenta os requerimentos médios de energia para hardware e os requerimentos médios de processamento no software. Por consequência, é desejável que a necessidade de um aumento na energia média no hardware ou dos requerimentos médios de processamento em software possam ser evitados.
[0087] A presente invenção proporciona um sistema e método para endereçar/mitigar um ou mais dos problemas listados acima por (a) manter acessos à cache de pré-busca em um nível próximo do que será sem DMVR, (b) evitar uma memória interna aumentada, (c) reduzir o tempo necessário para executar cálculos, (d) evitar uma contagem de portas aumentada, (e) evitar uma energia média aumentada em hardware ou aumento nos requerimentos médios de processamento em software, e (f) evitar uma ausência de cordialidade SIMD.
[0088] A invenção aprimora a simultaneidade de diferentes processamentos. Em uma modalidade, a compensação de movimento bilinear executada para DMVR é utilizada também para calcular os vetores de fluxo óptico em nível de bloco 4 x 4. Isto permite que todos os cálculos relacionados com vetor de fluxo sejam executados simultaneamente com a compensação de movimento baseada em DCTIF, assim aprimorando o tempo geral para a compensação de movimento. Em outra modalidade, a compensação de movimento baseada em DCTIF é executada primeiro com amostras adicionais para refinamento calculado usando compensação de movimento bilinear. Isto permite que o DMVR seja executado em um fluxo de informações em nível de fileira à medida que cada linha interpolada baseado em DCTIF vertical se torna disponível. A complexidade da interpolação bilinear normalmente executada para toda a faixa de refinamento é reduzida pelo compartilhamento das amostras interpoladas baseado em DCTIF para uma parte central, assim, reduzindo a contagem de portas em hardware ou operações em software. O requerimento de memória interna também é reduzido nesta modalidade à medida que amostras de grade de números inteiros acessadas a partir da cache de pré-busca não precisam ser mantidas além de 2 estágios de sub-PU.
[0089] Em modalidade que requerem que DMVR e BPOF coexistam simultaneamente para uma unidade de código, o MV delta de precisão em subpixel a partir do DMVR é desabilitado de modo que em unidades de codificação maiores que forma divididas à força em sub-PUs, a reutilização de memórias temporárias de linha interpoladas horizontalmente e interpoladas verticalmente se torna possível. Em software, isto permite que o DCTIF seja executado em nível de unidade de codificação para produzir (CU_w + 4) x (CU_h + 4) amostras, o que é menos computacionalmente oneroso que executar DCTIF em um nível de sub-CU.
[0090] Em algumas modalidades onde o MV delta com precisão em subpixel no DMVR está disponível, a correção baseada em BPOF é substituída por uma correção baseada em gradiente utilizando o vetor de fluxo em subpixel obtido a partir do DMVR. Por calcular o vetor de fluxo em subpixel utilizando uma superfície de erro paramétrico obtida utilizando valores de custo de distância baseada em números inteiros, as operações em nível de pixel relacionadas com o cálculo do vetor de fluxo são evitadas neste caso.
[0091] Em algumas modalidades, para aprimorar o tempo geral, os cálculos de vetor de fluxo utilizando BPOF são executados sem depender do MV delta a partir do DMVR. Uma lógica de decisão é introduzida para decidir se a predição inter luma irá utilizar correção baseada em gradiente nas posições de MV delta determinadas por DMVR ou a correção calculada utilizando vetores de fluxo óptico baseados em BPOF. Os MVs delta baseados em DMVR são utilizados para atualizar os MVs refinados independente da decisão acima e a mesma é utilizada para executar MV croma em nível de sub-PU.
[0092] Em unidades de codificação onde BPOF é aplicado, mas DMVR não é aplicado, um, tamanho de sub-PU normativo é definido (o qual de preferência é o mesmo que o tamanho de sub-PU utilizado no caso de DMVR com BPOF) de modo que gradientes de amostra em posições dentro da sub-PU que requerem amostras fora da sub-PU são obtidos utilizando a mesma interpolação que é executada para DMVR.
[0093] Em algumas modalidades, a interpolação utilizada para DMVR é adaptada baseado no tamanho da unidade de codificação de modo que tamanhos de unidade de codificação acima de um limite pré-determinado para largura de unidade de codificação, altura de unidade de codificação e tamanho de unidade de codificação utilizam o próprio DCTIF através de toda a faixa de refinamento enquanto as unidades de codificação restantes utilizam uma interpolação mais simples para as amostras adicionais requeridas para refinamento ou para toda a faixa de refinamento.
[0094] Dado que o refinamento/derivação de vetor de movimento no lado do decodificador é um aspecto normativo de um sistema de codificação, o codificador também irá ter que executar a mesma operação de pesquisa de refinamento de modo a não ter que se deslocar entre a reconstrução do codificador e a reconstrução do decodificador. Por consequência, todos os aspectos de todas as modalidades são aplicáveis para ambos os sistemas de codificação e de decodificação.
[0095] Na correspondência de gabarito, o movimento de refinamento acontece somente na referência iniciando a partir do centro com precisão em subpixel que é derivado baseado no índice de mesclagem explicitamente sinalizado ou nas avaliações de custo implicitamente diretas.
[0096] Na correspondência bilateral (com ou sem gabarito com média calculada), o refinamento inicia nas referências L0 e L1 iniciando a partir dos respectivos centros com precisão em subpixel que são derivados baseado no índice de mesclagem explicitamente sinalizado ou nas avalições de custo implicitamente diretas. Modalidade 1
[0097] Nesta modalidade, o DMVR e a determinação de vetor de fluxo óptico bipreditiva em nível 4 x 4 utilizam o mesmo esquema de interpolação. Uma modalidade de amostra disto é ilustrada na Figura 6, em que a interpolação bilinear é empregada como apresentado no Bloco 601. 601 acessa amostras a partir de uma memória temporária de pré-busca M601 que é assumida como busca de amostras de referência utilizando os vetores de movimento não refinados em um nível de bloco de árvore de codificação ou em um nível de unidade de dados de fluxo de informações virtual (VPDU). As amostras interpoladas bilineares são armazenadas na memória temporária interna M602 e acessadas pelo bloco de processamento 602 que executa DMVR de distância em número inteiro com respeito aos centros de MV de mesclagem em L0 e L1 para uma dada sub-PU para produzir um MV delta de distância em número inteiro.
O bloco 603 que executa estimativa de vetor de fluxo óptico bipreditiva para cada 4 x 4 com a dada sub-PU também acessa M602 iniciando no deslocamento proporcionado pelo MV delta de distância em número inteiro para a sub-CU.
Deve ser observado que a interpolação comum também pode ser interpolação baseada em DCTIF.
No caso em que a interpolação comum não é interpolação baseada em DCTIF, a Figura 6 apresenta o resto das dependências.
As amostras da grade de números inteiros acessadas durante a interpolação que não é DCTIF são colocadas em memória temporária na memória interna M603 para evitar acessar estas amostras a partir da cache de pré-busca novamente.
O estágio de interpolação horizontal do DCTIF (604) produz sua saída em uma memória temporária de linha M604. O estágio de interpolação vertical (605) então consume a partir destas memórias temporárias de linha para produzir uma nova linha de interpolação vertical.
Os gradientes horizontais no limite esquerdo e direito da sub-PU e os gradientes verticais no limite de parte de cima e de parte de baixo da sub-PU (após considerar o deslocamento de distância em número inteiro a partir do DMVR) são colocados em memória temporária na memória interna M605. À medida que cada fileira verticalmente interpolada da sub-PU se torna disponível, a correção baseada em gradiente é aplicada por utilizar o vetor de fluxo calculado para cada bloco 4 x 4 dentro da sub-PU em 606. O conteúdo de M605 é utilizado para obter os gradientes de posições dentro da sub-PU que requerem amostras fora da sub-PU.
Utilizando a correção calculada, a amostra bipredita final com correção é produzida em 607. O processamento das linhas L0 e L1 em 604, 605 e 606 é assumido como sendo executado simultaneamente ou de uma maneira intercalada de modo que 607 pode completar uma fileira em um tempo.
[0098] A Tabela 1 ilustra o nível de simultaneidade que esta modalidade proporciona. Os blocos funcionais principais são apresentados através das colunas e os diferentes estágios relacionados com tempo são apresentados nas fileiras. Pode ser visto a partir da tabela que os estágios T1, T3 e T6 se relacionam com manipular o aumento ou a diminuição e, por consequência, são muito menores do que os estágios T2, T4 e T5 que manipulam o estado estacionário para um ou mais blocos funcionais. Pode ser visto que T2 oferece simultaneidade entre interpolação para DMVR e os cálculos de custo para DMVR. T4 oferece simultaneidade entre o cálculo de vetor de fluxo para blocos 4 x 4 de uma sub-PU e a preparação da interpolação baseada em DCTIF horizontal. T5 oferece simultaneidade entre a interpolação baseada em DCTIF vertical e a aplicação da correção baseada em gradiente para produzir uma fileira de bipredição final com correção.
MC bilinear Determinação de MV de Estimativa de MC utilizando Cálculo de média Estágio para refinamento com distância Vetor de DCTIF separável 2- bipreditivo com refinamento em número inteiro Fluxo óptico D correção baseada em Bipreditiva gradiente e fluxo T1 Primeiras 5 fileiras de saída de interpolação bilinear em L0 e L1 T2 Próximas Cálculo de atualização de (sPUh-1) custo DMVR em nível de fileiras de fileira através de todas as saída de posições de pesquisa para interpolação (sPUh-1) fileiras bilinear em L0 e L1 T3 Últimos Cálculos de atualização de custo DMVR em nível de fileira através de todas as posições de pesquisa + Melhor determinação de custo de distância em número inteiro T4 Determina- Primeiras 8 (ou 7) ção de vetor fileiras do DCTIF de fluxo para horizontal para sub- todos os PU em L0 e L1 + blocos 4 x 4 Primeira fileira de dentro da DCTIF vertical em sub-PU L0 e L1 T5 DCTIF horizontal + Feito para (sPUh-1) DCTIF vertical para fileiras (sPUh-1) fileiras T6 Feito para última fileira de sPU
Tabela-1: Tabela de simultaneidade através de diferentes blocos funcionais da Modalidade 1. Observação: T1, T3, T6 são relativamente menores em tempo do que os estágios T2, T4, T5 que permitem simultaneidade através de pelo menos 2 blocos funcionais
[0099] A Figura 7 ilustra como BPOF é aplicado para unidades de codificação que não aplicam DMVR. As unidades de memória M701, M702, M703, M704 e M705 são similares em funcionalidade a M601, M602, M603, M604 e M605, respectivamente. As unidades de processa- mento 701, 702, 703, 704, 705 e 706 são similares em funcionalidade a 601, 603, 604, 605, 606 e 607, respectivamente. Desde que DMVR não é executado, os tamanhos de bloco envolvidos não são depen- dentes do parâmetro de faixa de refinamento DMVR S. Entretanto, a mesma metodologia como no caso de DMVR é empregada para harmo- nizar as implementações de hardware e de software através das unida- des de codificação que empregam DMVR e não empregam DMVR.
[00100] A Figura 8 ilustra como o DMVR é executado para unidades de codificação que não empregam BPOF. As unidades de memória M801, M802, M803, M804, e M805 são similares em funcionalidade a M601, M602, M603, M604, e M605, respectivamente. As unidades de processamento 801, 802, 804, 805, 806, e 807 são similares em funcionalidade a 601, 602, 604, 605, 606, e 607, respectivamente. A unidade de processamento 803 difere de 603 pelo fato de que ela calcula o vetor de fluxo com precisão em subpixel para toda a sub-PU utilizando superfície de erro paramétrico modelada utilizando os custos de posição de distância em número inteiro avaliados em 802.
[00101] Nos sistemas e métodos da Figura 6 e da Figura 8, se o MV delta com precisão de subpixel estiver disponível, ele é utilizado para atualizar o MV refinado para a sub-PU de modo que o MV refinado pode ser utilizado para predição de MV espacial (na mesclagem ou AMVP), para desagrupar determinação de potência, e como preditor de vetor de movimento temporal para unidades de acesso futuras na ordem de codificação. O MV refinado atualizado com MV delta em subpixel também é utilizado para compensação de movimento croma das partes croma correspondendo à sub-PU luma.
[00102] A vantagem principal da modalidade 1 é aprimorar a simultaneidade através dos diferentes estágios de processamento de modo que a latência do fluxo de informações como um todo possa ser reduzida em implementações de hardware. Especificamente, por calcular o vetor de fluxo utilizando a mesma interpolação utilizada para DMVR, o cálculo do vetor de fluxo pode acontecer simultaneamente com a interpolação baseada em DCTIF. Similarmente, a correção baseada em gradiente pode ser aplicada simultaneamente com a produção da interpolação baseada em DCTIF. Isto também reduz o tempo médio de processamento em implementações de software por permitir a compensação de movimento para a compensação de movimento baseada em refinamento e DCTIF ser executada em relação a toda a unidade de codificação luma ao invés de requerer compensação de movimento em nível de sub-CU. Isto se torna possível por desativar a parte do MV delta com precisão em subpixel para luma. Os acessos à cache de pré-busca no pior caso são mantidos quase no mesmo nível que sem DMVR e/ou BPOF. O impacto sobre a eficiência de codificação é mantido mínimo.
[00103] Nesta modalidade, é divulgado um sistema e método para compartilhar o mesmo método de interpolação através da estimativa de vetor DMVR e BPOF. Um sistema e método para processamento simultâneo de estimativa de vetor BPOF e interpolação baseada em DCTIF é divulgado. Um sistema e método para reduzir complexidade computacional do software por desativar o MV delta com precisão em subpixel para luma, para ainda utilizando o MV delta com precisão em subpixel para atualizar o MB refinado por sub-PU e MC croma, é utilizado. Modalidade 2
[00104] Nesta modalidade, a compensação de movimento para refinamento utiliza amostras interpoladas baseado em DCTIF para a parte central da faixa de refinamento (isto é, para um pior tamanho de unidade de codificação correspondendo ao MV delta zero) enquanto as amostras adicionais ao redor destas amostras centrais que são requeridas para DMVR e BPOF são obtidas utilizando DCTIF ou um esquema de interpolação mais simples.
Isto é ilustrado na Figura 9. O bloco 901 executa interpolação horizontal por acessar amostras a partir da memória temporária de pré-busca M901 que são assumidas como amostras de referência de busca utilizando os vetores de movimento não refinados em um nível de bloco de árvore de codificação ou em um nível de unidade de dados de fluxo de informações virtual (VPDU). A interpolação horizontal produz um número de amostras sPUw interpoladas baseado em DCTIF dependente da fase do subpixel em cada fileira e três amostras interpoladas esquerdas e direitas da fileira são produzidas utilizando DCTIF ou uma interpolação mais simples (tal como interpolação bilinear na mesma precisão em subpixel ou precisão em subpixel reduzida, amostras de grade de números inteiros mais próximos, etc.). Estas são armazenadas na unidade de memória temporária de linha M902. O bloco de interpolação vertical 902 acessa a partir de M902 para produzir amostras verticalmente interpoladas onde a primeira e a última três fileiras são produzidas utilizando DCTIF ou uma interpolação mais simples enquanto o número de fileiras sPUh centrais são produzidas utilizando interpolação baseada em DCTIF baseada na fase do subpixel.
Estas amostras verticalmente interpoladas são armazenadas em uma memória temporária interna M903. Os cálculos de custo de DMVR de distância em número inteiro são executados em 904 por acessar M903. Deve ser observado que os cálculos de custo em nível de fileira podem ser executados assim que uma nova fileira esteja disponível para uma dada posição de pesquisa para reduzir a latência do DMVR.
Quando o cálculo de custo é atualizado para todas as fileiras de todas as posições de pesquisa para DMVR, o MV delta de distância em número inteiro é determinado em 905 por encontrar o menor custo entre todas as posições e utilizando a distância desta posição a partir do centro de pesquisa como o MV delta de distância em número inteiro. Uma vez que o MV delta de distância em número inteiro é determinado, um MV delta com precisão de subpixel opcional pode ser determinado utilizando avaliação explícita ou através de ajuste baseado em superfície de erro paramétrico para os custos de distância em número inteiro determinados em 904 e passados para
905. O bloco 906 acessa M903 para acessar valores de amostra em deslocamentos de distância em número inteiro determinados em 905 e calcula os gradientes de amostra requeridos para calcular o vetor de fluxo óptico para cada bloco 4 x 4 dentro de cada sub-PU. Uma vez que o vetor de fluxo óptico para um dado bloco 4 x 4 com a sub-PU é determinado em 906, as correções em nível de bloco são calculadas em 907 por acessar M903 e por utilizar o vetor de fluxo óptico calculado. 906 pode calcular novamente os gradientes utilizando os valores de amostra acessados a partir de M903 ao invés de requerer 906 para armazenar valores de gradiente. Os valores de amostras de bipredição finais são calculados em 908 por acessar os valores de amostra em M903 e os valores de correção passados a partir de 907.
[00105] A Tabela 2 ilustra o nível de simultaneidade nesta modalidade através das diferentes unidades funcionais. Os blocos funcionais principais são apresentados através das colunas e dos diferentes os diferentes estágios relacionados com tempo são apresentados nas fileiras. Pode ser visto a partir da tabela que os estágios T2 e T4 permitem simultaneidade. Especificamente, durante T2, a interpolação e os cálculos de custo DMVR acontecem simultaneamente. Durante T4, a estimativa de fluxo óptico e a correção baseada em vetor de fluxo e gradiente são o fluxo de informações nas fileiras de blocos 4 x 4. Em unidades de codificação maiores que possuem várias sub-PUs verticalmente, por processar as sub-PUs de uma maneira na direção de coluna, 8 memórias temporárias de linha horizontalmente interpoladas e duas memórias temporárias de linha verticalmente interpoladas podem ser reutilizadas a partir da sub-PU anterior para evitar a sobrecarga de T1. Entretanto, para o pior caso de as unidades de codificação 8 x 8, as saídas do estágio T1 de uma CU podem não ser utilizadas para outra CU.
Entretanto, o estágio T1 de uma sub-PU/CU e o estágio T5 de outra sub-PU/CU podem ser feitos simultâneos.
Estágio MC compartilhado Determinação de MV de Estimativa de Cálculo de média bipreditivo com (DCTIF separável 2-D refinamento de distância vetor de fluxo correção baseada em gradiente e para central + em número inteiro óptico bipreditiva fluxo interpolação bilinear 2-D para adicional) T1 duas fileiras de saída de MC bilinear + 9 ou 10 fileiras de DCTIF horizontal + 3 fileiras de DCTIF vertical T2 DCTIF horizontal + Cálculos de atualização de DCTIF vertical para custo de DMVR em nível (sPUh-3) fileiras + de fileiras através de todas duas fileiras de saída as posições de pesquisa de MC bilinear para (sPUh-1) fileiras T3 Cálculos de atualização de custo de DMVR em nível de última fileira através de todas as posições de pesquisa para (sPUh-1) fileiras T4 Determinação de Correção baseada em gradiente e vetor de fluxo fluxo para cálculo de média para uma fileira bipreditivo para uma fileira de de blocos 4 x 4 blocos 4 x 4 dentro da sub-PU dentro da sub-PU para a qual o vetor de fluxo foi estimado T5 Processamento da última fileira de blocos 4 x 4
Tabela 2: Tabela de simultaneidade através dos diferentes blocos funcionais da Modalidade 2. OBSERVAÇÃO: Percorrendo através de sub-PUs dentro de uma CU de uma maneira no sentido da coluna, maior parte do funcionamento de T1 pode ser oculta entre as sub-PUs, porém, o pior caso acontece para CUs pequenas (por exemplo, 8 x 8) onde cada 8 x 8 incorrem em seu próprio estágio T1 que pode ser comparável em tempo a T2.
[00106] A Figura 10 ilustra como BPOF é aplicado para unidades de codificação que não aplicam DMVR. As unidades de memória M1001, M1002, e M1003 são similares em funcionalidade a M901, M902, e M903, respectivamente. As unidades de processamento 1001, 1002, 1006, 1007, e 1008 são similares em funcionalidade a 901, 902, 906, 907, e 908, respectivamente. Desde que DMVR não é executado, os tamanhos de bloco envolvidos não são dependentes do parâmetro de faixa de refinamento DMVR S. Entretanto, a mesma metodologia que no caso de DMVR é empregada para harmonizar as implementações de hardware e de software através das unidades de codificação que empregam DMVR e não empregam DMVR.
[00107] A Figura 11 ilustra como DMVR é executado para unidades de codificação que não empregam BPOF. As unidades de memória M1101, M1102 e M1103 são similares em funcionalidade a M901, M902, e M903, respectivamente. As unidades de processamento 1101, 1102, 1104, 1105, 1107 e 1108 são similares em funcionalidade a 901, 902, 904, 905, 907 e 908, respectivamente. A unidade de processamento 1106 difere de 906 pelo fato de que ela calcula o vetor de fluxo com precisão em subpixel para toda a sub-PU utilizando a superfície de erro paramétrico modelada utilizando os custos de posição de distância em número inteiro avaliados em 1104 e passados através de 1105.
[00108] Nos sistemas e métodos da Figura 9 e da Figura 11, se MV delta com precisão em subpixel estiver disponível, ele é utilizado para atualizar o MV refinado para a sub-PU de modo que o MV refinado pode ser utilizado para predição de MV espacial (em mesclagem ou AMVP), para desagrupar determinação de potência, e como preditor de vetor de movimento temporal para unidades de acesso futuras na ordem de codificação. O MV refinado atualizado por MV delta em subpixel também é utilizado para compensação de movimento croma das partes croma correspondendo à sub-PU luma.
[00109] A vantagem principal desta modalidade é que ela reduz o requerimento de memória interna por não ter que manter as amostras de grade de números inteiros através de 2 estágios de sub-PU. Somente as (sPUw+6)X(sPUh+6) amostras interpoladas por referência são armazenadas, o que é muito menor do que (sPUw+13)x(sPUh+13) para o pior caso de sPUh = 8 e sPUh = 8. Ela também reduz a complexidade computacional por não executar interpolação bilinear para as amostras centrais. A simultaneidade também é aprimorada por ter a habilidade de executar criação de fluxo de informações em nível de fileiras entre a interpolação e o cálculo de custo DMVR bem como a fileira de fluxo de informações em nível 4 x 4 entre a estimativa de vetor de fluxo e a correção baseada em BPOF. Isto também reduz o tempo médio de processamento em implementações de software por permitir que a compensação de movimento para compensação de movimento baseada em refinamento e DCTIF seja executada em relação a toda a unidade de codificação luma ao invés do que requerer a compensação de movimento em nível de sub-CU. Isto é feito possível por desativar a parte de MV delta com precisão em subpixel para luma. Os acessos à cache de pré-busca de pior caso são mantidos quase no mesmo nível que sem DMVR e/ou BPOF. O impacto sobre a eficiência de codificação é mantido mínimo.
[00110] Nesta modalidade, um sistema e método para modificar a compensação de movimento normativa para utilizar DCTIF para MV delta zero a partir de um DMVR e de uma interpolação mais simples para amostras adicionais requeridas para MVs delta que não são zero e utilizar a mesma interpolação para DMVR e BPOF são divulgados. Um sistema e método para processamento com fluxo de informações em nível de fileira de cálculo de custo DMVR com interpolação são divulgados. Um sistema e método para reduzir complexidade computacional de software por desativar o MV delta com precisão em subpixel para luma, mas ainda utilizando o MV delta com precisão em subpixel para atualizar o MV refinado da sub-PU e para MC croma, são divulgados. Modalidade 3
[00111] Nesta modalidade, a qual é uma variação da Modalidade 2, a estimativa de vetor de fluxo óptico baseada em BDOF para cada bloco 4 x 4 de amostras em cada sub-PU dentro de uma CU é executada substancialmente em paralelo com a avaliação de custos DMVR e, por consequência, não depende do vetor de movimento refinado determinado pelo DMVR.
[00112] A Figura 12 ilustra esta modalidade para uma sub-PU de um bloco de unidade de codificação de amostras luma. Um bloco de unidade de codificação é dividido a força em sub-PUs de modo que o tamanho do bloco de refinamento não exceda uma largura predeterminada e uma altura predeterminada. Quando o bloco de unidade de codificação possui largura menor ou igual à largura predeterminada e altura menor ou igual à altura predeterminada, ela não é dividida à força em blocos menores e a sub-PU e o bloco de unidade de codificação serão os mesmos.
[00113] Apesar de os blocos de interpolação baseado em DCTIF horizontal e vertical 1201 e 1202 serem apresentados, deve ser entendido que alguns blocos podem possuir somente interpolação horizontal ou somente interpolação vertical ou apenas utilizarem amostras de grade de números inteiros sem requerer qualquer interpolação. No pior caso quando ambos os componentes de vetor de movimento horizontal e vertical possuem partes de pixel fracionárias, ambas as interpolações baseadas em DCTIF horizontal e vertical devem ser aplicadas. Quando ambas as interpolações estão presentes, a interpolação vertical e a interpolação horizontal podem acontecer em fluxo de informações em nível de fileira.
[00114] No bloco 1203, avaliações de custo de posição de distância em número inteiro para DMVR são calculadas utilizando amostras interpoladas finais. Deve ser observado que para algumas funções de custo tal como soma de diferenças absolutas ou soma com média de fileira removida de diferenças absolutas, as avaliações de custo podem acontecer em um fluxo de informações em nível de fileira com interpolação.
[00115] No bloco 1204, baseado nos custos avaliados em todas as posições de vetor de movimento de distância em número inteiro delta de refinamento a partir de MVs de mesclagem, a melhor posição de distância em número inteiro é determinada. Quando o vetor de movimento delta de distância em número inteiro de melhor custo não está no limite da faixa de refinamento, uma superfície de erro paramétrico é ajustada para os valores de função de custo de distância em número inteiro no e ao redor do vetor de movimento delta de distância em número inteiro com melhor custo para obter o melhor vetor de movimento delta com precisão em subpixel.
[00116] No bloco 1205, para cada bloco 4 x 4 de amostras dentro da sub-PU corrente, um vetor de fluxo óptico é estimado utilizando o processo de estimativa de fluxo óptico bipreditivo descrito anterior- mente. Deve ser observado que esta estimativa de vetor de fluxo óptico não depende da determinação do MV refinado utilizando DMVR.
[00117] No bloco 1206, é tomada uma decisão entre se o MV refinado por DMVR deve ser utilizado para produzir as amostras finais de saída de bipredição ou se o vetor de fluxo óptico BDOF deve ser utilizado para produzir as amostras finais de saída de bipredição. Esta decisão tomada a favor de utilizar o vetor BDOF pode ser tomada utilizando uma ou mais das seguintes regras:
1. Se o vetor de movimento delta de distância em número inteiro de melhor custo for um vetor zero.
2. Se o custo do DMVR do vetor de movimento delta zero menos o melhor custo for menor do que um limite predeterminado (por exemplo, para uma sub-PU 16 x 16, o limite predeterminado pode ser 16, 32, ou 64 quando calculando a função de custo utilizando amostras interpoladas com 14 bits). Em algumas modalidades, o melhor custo pode ser baseado somente no MV delta de distância em número inteiro. Em algumas outras modalidades, o melhor custo pode ser baseado na superfície de erro paramétrico de valores de função de custo de distância em número inteiro.
3. A variação da distância Euclidiana ou de Manhattan de vetores BPOF através de todo o bloco 4 x 4 de amostras luma dentro de uma sub-PU alvo excede um limite predeterminado (por exemplo, para uma sub-PU com tamanho 16 x 16 contendo 16 blocos 4 x 4 de amostras, o limite predeterminado em relação à variação da distância de Manhattan pode ser valores tais como 0,25, 0, 4, 0,5, etc.).
[00118] No bloco 1207, baseado na decisão tomada no bloco 1206, amostras bipreditas finais são geradas. Especificamente, se o bloco 1207 selecionar DMVR, o bloco de amostras predito de L0 e L1 no deslocamento do MV delta de distância em número inteiro é acessado como as amostras preditas para a sub-PU corrente. Se o MV delta tiver uma parte com precisão em subpixel determinada explicitamente ou utilizando a superfície de erro paramétrico, então a Equação 1.14 é aplicada com vx e vy sendo a parte do subpixel dos componentes horizontal e vertical do MV delta, respectivamente, e os gradientes são calculados utilizando as amostras preditas acessadas. Assim, a bipredição no MV delta de distância em número inteiro é modificada utilizando o MV delta em subpixel e as diferenças de gradiente de amostra.
[00119] Por outro lado, se o bloco 1207 selecionar BDOF, a Equação 1.14 é aplicada para cada bloco 4 x 4 de amostras dentro da sub-PU por utilizar o vetor de fluxo óptico calculado para este 4 x 4 no bloco 1205.
[00120] Independente da decisão por 1206, o MV delta a partir de 1204 é utilizado para atualizar o MV refinado para a sub-PU que pode ser utilizado para desagrupamento, predição de MV temporal, ,e predição de MV espacial, como requerido.
[00121] O MV refinado também é utilizado para executar compensação de movimento para os componentes de crominância da sub-PU. Em uma modalidade, se o bloco de decisão 1206 escolher BDOF, o MV delta é limitado entre -1 e 1 em cada componente antes de se obter o MV refinado que é utilizado para executar a compensação de movimento para componentes de crominância.
[00122] A Figura 13 ilustra a dependência através dos diferentes blocos de processamento. A interpolação vertical (em um caso de interpolação 2-D separável) segue a interpolação horizontal. Por exemplo, se uma DCTIF com 8 derivações for utilizada para interpolação, após 8 fileiras horizontalmente interpoladas estarem disponíveis, uma fileira de interpolação vertical pode acontecer. Após isso, uma fileira de interpolação horizontal e uma fileira de interpolação vertical podem ser intercaladas (ou podem acontecer simultaneamente). Assim que uma fileira de amostras interpoladas está disponível, as avaliações de custo de distância em número inteiro do bloco 1204 podem iniciar para algumas posições dos MVs delta a serem avaliados pelo DMVR. Similarmente, o cálculo de gradiente e os cálculos de soma de gradiente para o bloco de processamento 1205 podem iniciar assim que as amostras de interpolação se tornarem disponíveis. Por consequência, o processamento em 1204 e 1205 pode acontecer em paralelo. A decisão do bloco 1206 acontece assim que o bloco 1205 finaliza o MV de refinamento. A correção baseada em gradiente para bipredição depende da decisão do bloco 1206.
[00123] Todos os procedimentos descritos acima podem ser implementados em um codificador ou decodificador. Um dispositivo de codificação de vídeo ilustrativo 400 que pode ser um decodificador ou codificador é ilustrado na Figura 14.
[00124] O dispositivo de codificação de vídeo 400 compreende as portas de ingresso 410 (ou portas de entrada 410) e as unidades receptoras (Rx) 420 para receber dados; um processador, unidade lógica, sistema de circuitos de processamento ou unidade central de processamento (CPU) 430 para processar os dados; unidades transmissoras (Tx) 440 e portas de egresso 450 (ou portas de saída 450) para transmitir os dados; e uma memória 460 para armazenar os dados. O dispositivo de codificação de vídeo 400 também pode compreender os componentes óptico para elétrico (OE) e os componentes elétrico para óptico (EO) acoplados com as portas de ingresso 410, com as unidades receptoras 420, com as unidades receptoras 440, e com as portas de egresso 450 para egresso ou ingresso de sinais ópticos ou elétricos.
[00125] O processador 430 pode ser implementado por hardware e software. O processador 430 pode ser implementado como um u mais chips de CPU, núcleos (por exemplo, como um processador multinúcleo), FPGAs, ASICs e DSPs. O processador 430 está em comunicação com as portas de ingresso 410, com as unidades receptoras 420, com as unidades transmissoras 440, com as portas de egresso 450, e com a memória 460.
[00126] O processador 430 pode compreender um módulo de codificação 470 em que várias operações de codificação, em particular, os procedimentos descritos acima, podem ser processadas, preparadas ou proporcionadas. Alternativamente, o módulo de codificação 470 é implementado como instruções armazenadas na memória 460 e executadas pelo processador 430.
[00127] A memória 460 pode compreender um ou mais discos, unidades de fita, e unidades de estado sólido e pode ser utilizada como um dispositivo de armazenamento de dados de transbordo, para armazenar programas quando tais programas são selecionados para execução, e para armazenar instruções e dados que são lidos durante a execução do programa. A memória 460 pode ser, por exemplo, volátil e/ou não volátil e pode ser uma memória somente para leitura (ROM), memória de acesso aleatório (RAM), memória ternária endereçável por conteúdo (TCAM), e/ou memória de acesso aleatório estática (SRAM).
DEFINIÇÕES DE ACRÔNIMOS E GLOSSÁRIOS DMVR Refinamento de Vetor de Movimento no Lado do Decodificador SAD Soma de Diferenças Absolutas MV Vetor de Movimento BPOF Correção baseada em Fluxo óptico Bipreditivo para amostras de bipredição DCTIF Filtro de Interpolação baseado em transformada de Cosseno Discreta utilizado para interpolação com movimento compensado de amostras de referência baseado em um dado vetor de movimento em subpixel com respeito a este quadro de referência para um dado bloco de amostras
MC Compensação de Movimento HEVC padrão de Codificação de Vídeo de Alta Eficiência VVC padrão de Codificação de Vídeo Versátil

Claims (40)

REIVINDICAÇÕES
1. Método de predição inter, caracterizado pelo fato de que compreende: selecionar amostras de referência baseado em informação de movimento de um bloco de imagem corrente de uma imagem corrente; derivar primeiras amostras interpoladas por executar uma primeira interpolação em relação às amostras de referência selecionadas; derivar um vetor de movimento delta de distância em número inteiro para uma subunidade de predição alvo, PU, por executar Refinamento de Vetor de Movimento, MVR, de distância em número inteiro, baseado nas primeiras amostras interpoladas, em que a sub-PU alvo está no bloco de imagem corrente; derivar vetores de fluxo de matriz de pixels 4 x 4 por executar Fluxo óptico Bipreditivo, BPOF, para cada matriz de pixels M x M na sub-PU alvo baseado nas primeiras amostras interpoladas e no vetor de movimento delta de distância em número inteiro, em que M é um número inteiro positivo, e o tamanho da matriz de pixels M x M é menor do que o tamanho da sub-PU alvo; derivar segundas amostras interpoladas por executar uma segunda interpolação em relação às amostras de referência; calcular pelo menos um parâmetro de correção para a sub- PU alvo baseado nos vetores de fluxo da matriz de pixels M x M, nas primeiras amostras interpoladas e nas segundas amostras interpoladas; e executar bipredição baseada nas segundas amostras interpoladas e no pelo menos um parâmetro de correção.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação de movimento compreende um vetor de movimento em um nível de bloco de Árvore de Codificação ou em um nível de unidade de dados de Fluxo de Informações Virtual.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a segunda interpolação é executada utilizando um vetor de movimento do bloco de imagem corrente e o vetor de movimento delta de distância em número inteiro derivado para a sub-PU alvo.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o pelo menos um parâmetro de correção para a sub-PU alvo é calculado a partir de gradientes de amostra calculados para amostras da sub-PU alvo.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que a execução da bipredição compreende gerar uma primeira imagem de predição utilizando o parâmetro de correção baseado em uma primeira imagem de referência L0 e gerar uma segunda imagem de predição utilizando o parâmetro de correção baseado em uma segunda imagem de referência L1.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que amostras de grade de números inteiros das amostras de referência são armazenadas em uma primeira memória, e as primeiras amostras interpoladas são armazenadas em uma segunda memória que é diferente da primeira memória.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que a segunda interpolação é executada por um filtro de interpolação separável.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que antes de calcular o pelo menos um parâmetro de correção para a sub-PU alvo, o método compreende:
derivar gradientes de amostra de limite horizontal nas posições de amostra de limite esquerdo e direito da sub-PU alvo e gradientes de amostra de limite vertical nas posições de amostra de limite de cima e de baixo da sub-PU baseado nas primeiras amostras interpoladas.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que os gradientes de amostra de limite horizontal e os gradientes de amostra de limite vertical são derivados após a execução do MVR.
10. Método, de acordo com a reivindicação 8 ou 9, caracterizado pelo fato de que o pelo menos um parâmetro de correção para a sub-PU alvo é calculado baseado nos gradientes de amostra de limite horizontal e nos gradientes de amostra de limite vertical.
11. Método, de acordo com qualquer uma das reivindicações 1 a 10, caracterizado pelo fato de que a primeira interpolação é uma interpolação bilinear.
12. Método, de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que a segunda interpolação é uma interpolação de transformada de Cosseno Discreta.
13. Método, de acordo com qualquer uma das reivindicações 1 a 12, caracterizado pelo fato de que M é 4.
14. Método de predição inter, caracterizado pelo fato de que compreende: selecionar amostras de referência baseado na informação de movimento de um bloco de imagem corrente de uma imagem corrente; derivar amostras interpoladas por executar uma interpolação em relação às amostras de referência selecionadas;
calcular custos do Refinamento de Vetor de Movimento, MVR, de distância em número inteiro, baseado nas amostras interpoladas; determinar um vetor de movimento delta de distância em número inteiro baseado nos custos do MVR de distância em número inteiro calculados; derivar vetores de fluxo da matriz de pixels M x M por executar Fluxo óptico Bipreditivo, BPOF, cada matriz de pixels M x M em uma subunidade de predição alvo, PU, baseado nas amostras interpoladas e no vetor de movimento delta de distância em número inteiro, em que M é um número inteiro positivo, e M x M é menor do que o tamanho da sub-PU e em que a sub-PU alvo está no bloco de imagem corrente; calcular pelo menos um parâmetro de correção para a sub- PU alvo baseado nos vetores de fluxo da matriz de pixels M x M e nas amostras interpoladas; e executar bipredição, baseada nas amostras interpoladas e no pelo menos um parâmetro de correção.
15. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que a informação de movimento compreende um vetor de movimento em um nível de bloco de Árvore de Codificação ou em um nível de unidade de dados de Fluxo de Informações Virtual.
16. Método, de acordo com qualquer uma das reivindicações 14 e 15, caracterizado pelo fato de que o pelo menos um parâmetro de correção para a sub-PU alvo é calculado a partir de gradientes de amostra calculados para amostras da sub-PU alvo.
17. Método, de acordo com qualquer uma das reivindicações 14 a 16, caracterizado pelo fato de que a execução da bipredição compreende gerar uma primeira imagem de predição utilizando o parâmetro de correção baseado em uma primeira imagem de referência L0 e gerar uma segunda imagem de predição utilizando o parâmetro de correção baseado em uma segunda imagem de referência L1.
18. Método, de acordo com qualquer uma das reivindicações 14 a 17, caracterizado pelo fato de que a interpolação é executada por um filtro de interpolação separável.
19. Método, de acordo com a reivindicação 14 ou 18, caracterizado pelo fato de que antes de calcular o pelo menos um parâmetro de correção para a sub-PU alvo, o método compreende: Derivar gradientes de limite da sub-PU alvo baseado nas amostras interpoladas antes de calcular o pelo menos um parâmetro de correção para a sub-PU alvo.
20. Método, de acordo com a reivindicação 19, caracterizado pelo fato de que o pelo menos um parâmetro de correção para a sub-PU alvo é calculado baseado nos gradientes de limite.
21. Método, de acordo com qualquer uma das reivindicações 14 a 20, caracterizado pelo fato de que a interpolação é uma interpolação bilinear ou uma interpolação de transformada de Cosseno Discreta.
22. Método, de acordo com qualquer uma das reivindicações 14 a 21, caracterizado pelo fato de que M é 4.
23. Método, de acordo com qualquer uma das reivindicações 14 a 22, caracterizado pelo fato de que a primeira e as últimas N fileiras das amostras de interpolação são determinadas utilizando um mesmo primeiro método de interpolação, e as fileiras das amostras de interpolação, exceto para a primeira e as N últimas fileiras, são determinadas utilizando um mesmo segundo método de interpolação.
24. Método, de acordo com a reivindicação 23, caracterizado pelo fato de que N é 3.
25. Método, de acordo com a reivindicação 23 ou 24, caracterizado pelo fato de que o primeiro método de interpolação é interpolação de transformada de Cosseno Discreta ou interpolação bilinear e a segunda interpolação é interpolação de transformada de Cosseno Discreta.
26. Método de predição inter, caracterizado pelo fato de que compreende: selecionar amostras de referência por informação de movimento de um bloco de imagem corrente de uma imagem corrente; derivar amostras interpoladas para uma subunidade de predição, PU, alvo do bloco de imagem corrente por executar uma primeira interpolação em relação a tais amostras de referência das amos-tras de referência selecionadas cujas posições correspondem ao vetor de movimento, MV, delta zero, na faixa de refinamento de MV para o bloco de imagem corrente, e por executar uma segunda interpolação em relação a tais amostras de referência das amostras de referência selecionadas cujas posições não correspondem ao MV delta zero na faixa de refinamento de MV para o bloco de imagem corrente; calcular custos do Refinamento de Vetor de Movimento, MVR, de distância em número inteiro, baseado nas amostras interpoladas; determinar um vetor de movimento delta de distância em número inteiro baseado nos custos do MVR de distância em número inteiro calculados; determinar um vetor de movimento delta com precisão em subpixel ao redor do vetor de movimento delta de distância em número inteiro calculado utilizando os custos do MVR de distância em número inteiro calculados; derivar vetores de fluxo da matriz de pixels M x M por executar Fluxo Óptico Bipreditivo, BPOF, para cada bloco de amostras luma M x M na sub-PU alvo baseado nas amostras interpoladas na posição de vetor de movimento delta zero, em que M é um número inteiro positivo, e M x M é menor do que o tamanho da sub-PU, e em que a sub-PU alvo está no bloco de imagem corrente; determinar se predição inter luma para a sub-PU alvo é executada utilizando o vetor de movimento delta determinado para a sub-PU alvo ou os vetores BPOF derivados para cada bloco de amostras luma M x M na sub-PU alvo; calcular pelo menos um parâmetro de correção para a sub- PU alvo baseado nos vetores de fluxo da matriz de pixels M x M e nas amostras interpoladas no caso em que a predição inter luma para uma sub-PU alvo é determinada como sendo executada utilizando os vetores BPOF derivados; calcular pelo menos um parâmetro de correção para a sub- PU alvo baseado no vetor de movimento delta determinado no caso em que a predição inter luma para uma sub-PU alvo é determinada como sendo executada utilizando o vetor de movimento delta determinado; e executar bipredição baseado nas amostras interpoladas e no pelo menos um parâmetro de correção.
27. Método, de acordo com a reivindicação 26, caracterizado pelo fato de que o pelo menos um parâmetro de correção para a sub-PU alvo é calculado a partir de gradientes de amostra calculados para amostras da sub-PU alvo.
28. Método, de acordo com qualquer uma das reivindicações 26 e 27, caracterizado pelo fato de que a execução da bipredição compreende gerar uma primeira imagem de predição utilizando o parâmetro de correção baseado em uma primeira imagem de referência L0 e gerar uma segunda imagem de predição utilizando o parâmetro de correção baseado em uma segunda imagem de referência L1.
29. Método, de acordo com qualquer uma das reivindicações 26 a 28, caracterizado pelo fato de que a segunda interpolação é executada por um filtro de interpolação separável.
30. Método, de acordo com qualquer uma das reivindicações 26 a 29, caracterizado pelo fato de que a primeira interpolação é interpolação de Transformada de Cosseno Discreta.
31. Método, de acordo com qualquer uma das reivindicações 26 a 30, caracterizado pelo fato de que a segunda interpolação é interpolação bilinear ou de Transformada de Cosseno Discreta.
32. Método, de acordo com qualquer uma das reivindicações 26 a 31, caracterizado pelo fato de que M é 4.
33. Método, de acordo com qualquer uma das reivindicações 26 a 32, caracterizado pelo fato de que é determinado que a predição inter luma para a sub-PU alvo é executada utilizando os vetores BPOF derivados para cada bloco de amostras luma M x M na sub-PU alvo, quando uma ou mais das seguintes condições são satisfeitas: a) o vetor de movimento delta de distância em número inteiro com melhor custo é um vetor zero; b) o custo do MVR do vetor de movimento delta zero menos o melhor custo é menor do que um limite predeterminado; e c) a variação da distância Euclidiana ou de Manhattan de vetores BPOF através de todos os blocos 4 x 4 de amostras luma dentro de uma sub-PU alvo excede um limite predeterminado.
34. Método para codificar imagens de vídeo, caracterizado pelo fato de que compreende receber imagens de vídeo, aplicar o método de predição inter como definido em qualquer uma das reivindicações 1 a 33 para os blocos das imagens de vídeo e codificar as imagens de vídeo baseado na bipredição executada.
35. Método para decodificar imagens de vídeo codificadas, caracterizado pelo fato de que compreende receber as imagens de vídeo codificadas, aplicar o método de predição inter como definido em qualquer uma das reivindicações 1 a 33 para os blocos das imagens de vídeo codificadas e decodificar as imagens de vídeo codificadas baseado na bipredição executada.
36. Codificador (400), caracterizado pelo fato de que compreende sistema de circuitos de processamento para realizar o método como definido em qualquer uma das reivindicações 1 a 34.
37. Decodificador (400), caracterizado pelo fato de que compreende sistema de circuitos de processamento para realizar o método como definido em qualquer uma das reivindicações 1 a 33 e
35.
38. Produto de programa de computador, caracterizado pelo fato de que compreende um código de programa para executar o método como definido em qualquer uma das reivindicações 1 a 35.
39. Codificador (400), caracterizado pelo fato de que compreende: um ou mais processadores (430); e um meio de armazenamento não temporário legível por computador (460) acoplado com os processadores (430) e armazenando programação para execução pelos processadores (430), em que a programação, quando executada pelos processadores (430), configura o codificador (400) para realizar o método como definido em qualquer uma das reivindicações 1 a 34.
40. Decodificador (400), caracterizado pelo fato de que compreende: um ou mais processadores (430); e um meio de armazenamento não temporário legível por computador (460) acoplado com os processadores (430) e armazenando programação para execução pelos processadores (430), em que a programação, quando executada pelos processadores (430), configura o decodificador (400) para realizar o método como definido em qualquer uma das reivindicações 1 a 33 ou 35.
BR112021007949-1A 2019-01-02 2019-12-30 sistema e método de fácil utilização com hardware e software para refinamento de vetor de movimento do lado do decodificador com correção por pixel baseada em fluxo óptico bipreditivo no lado do decodificador para compensação de movimento bipreditivo BR112021007949A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN201931000185 2019-01-02
IN201931000185 2019-01-02
IN201931001238 2019-01-10
IN201931001238 2019-01-10
PCT/CN2019/129980 WO2020140874A1 (en) 2019-01-02 2019-12-30 A hardware and software friendly system and method for decoder-side motion vector refinement with decoder-side bi-predictive optical flow based per-pixel correction to bi-predictive motion compensation

Publications (1)

Publication Number Publication Date
BR112021007949A2 true BR112021007949A2 (pt) 2021-07-27

Family

ID=71406642

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021007949-1A BR112021007949A2 (pt) 2019-01-02 2019-12-30 sistema e método de fácil utilização com hardware e software para refinamento de vetor de movimento do lado do decodificador com correção por pixel baseada em fluxo óptico bipreditivo no lado do decodificador para compensação de movimento bipreditivo

Country Status (6)

Country Link
US (1) US11490096B2 (pt)
EP (1) EP3854093A4 (pt)
JP (1) JP7200470B2 (pt)
CN (1) CN113228673B (pt)
BR (1) BR112021007949A2 (pt)
WO (1) WO2020140874A1 (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020084476A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
WO2020084475A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Utilization of refined motion vector
CN117459722A (zh) 2018-11-12 2024-01-26 北京字节跳动网络技术有限公司 组合帧间-帧内预测的简化
WO2020103870A1 (en) 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Inter prediction with refinement in video processing
EP3861742A4 (en) 2018-11-20 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. DIFFERENCE CALCULATION BASED ON SPATIAL POSITION
WO2020177755A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Usage of converted uni-prediction candidate
JP6867611B2 (ja) * 2019-03-11 2021-04-28 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
EP3922014A4 (en) * 2019-04-02 2022-04-06 Beijing Bytedance Network Technology Co., Ltd. DECODER SIDE MOTION VECTOR BYPASS
WO2021001220A1 (en) * 2019-07-01 2021-01-07 Interdigital Vc Holdings France, Sas Bi-directional optical flow refinement of affine motion compensation
US20240048730A1 (en) * 2022-07-26 2024-02-08 Tencent America LLC Method and apparatus for improved warp delta signaling

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100491530B1 (ko) * 2002-05-03 2005-05-27 엘지전자 주식회사 모션 벡터 결정 방법
JP5005629B2 (ja) * 2008-07-18 2012-08-22 シャープ株式会社 動きベクトル補正装置、動きベクトル補正方法、画像補間装置、テレビジョン受像装置、映像再生装置、制御プログラム、および、コンピュータ読み取り可能な記録媒体
US8736767B2 (en) * 2010-09-29 2014-05-27 Sharp Laboratories Of America, Inc. Efficient motion vector field estimation
WO2017084512A1 (en) * 2015-11-20 2017-05-26 Mediatek Inc. Method and apparatus of motion vector prediction or merge candidate derivation for video coding
CN105681805B (zh) * 2016-01-19 2019-05-21 北京大学深圳研究生院 视频编码、解码方法及其帧间预测方法和装置
CN114827599A (zh) * 2016-02-03 2022-07-29 Oppo广东移动通信有限公司 运动图像解码装置、编码装置、以及预测图像生成装置
WO2018113658A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and apparatus of motion refinement for video coding
US20180192071A1 (en) * 2017-01-05 2018-07-05 Mediatek Inc. Decoder-side motion vector restoration for video coding
US20180199057A1 (en) 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
KR102438181B1 (ko) * 2017-06-09 2022-08-30 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
JP7168593B2 (ja) * 2017-07-03 2022-11-09 ヴィド スケール インコーポレイテッド 双方向オプティカルフローに基づいた動き補償予測
CN108641375A (zh) 2018-04-29 2018-10-12 徐菡 一种高流动耐磨pp塑料及其制备方法

Also Published As

Publication number Publication date
US11490096B2 (en) 2022-11-01
JP2022515587A (ja) 2022-02-21
JP7200470B2 (ja) 2023-01-10
CN113228673B (zh) 2023-03-03
US20210329257A1 (en) 2021-10-21
EP3854093A4 (en) 2021-10-27
WO2020140874A1 (en) 2020-07-09
CN113228673A (zh) 2021-08-06
EP3854093A1 (en) 2021-07-28

Similar Documents

Publication Publication Date Title
BR112021007949A2 (pt) sistema e método de fácil utilização com hardware e software para refinamento de vetor de movimento do lado do decodificador com correção por pixel baseada em fluxo óptico bipreditivo no lado do decodificador para compensação de movimento bipreditivo
US11509927B2 (en) Weighted prediction in video coding
US11483550B2 (en) Use of virtual candidate prediction and weighted prediction in video processing
US11889108B2 (en) Gradient computation in bi-directional optical flow
BR112019018922A2 (pt) método e aparelho de refinamento de movimento com base em fluxo óptico bi-direcional para codificação de vídeo
US20210235083A1 (en) Sub-block based prediction
TW201830968A (zh) 用於視訊編解碼的運動細化的方法以及裝置
WO2020084508A1 (en) Harmonization between local illumination compensation and inter prediction coding
JP7431253B2 (ja) 動き情報精緻化のサブ領域に基づいた決定
JP2022527751A (ja) デコーダ側の動きベクトルの導出
KR102486982B1 (ko) 광학 흐름을 사용한 예측 미세조정을 위한 방법 및 장치
BR122020015442B1 (pt) Método realizado por um aparelho de codificação de vídeo
BR122020002131B1 (pt) Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador
CN116233466A (zh) 光流预测细化(prof)的方法和装置
CN116708814A (zh) 由视频编码器以及解码器执行的视频编解码方法及装置
BR112020026988A2 (pt) Método e aparelho de refinamento exato de subpixel baseado em superfície de erro para refinamento de vetor de movimento do lado do decodificador
EP1922880A1 (en) Generating and storing image data
JP7281602B2 (ja) オプティカルフローによる予測洗練化、双方向オプティカルフローおよびデコーダ側の動きベクトル洗練化のための方法および装置
WO2023200642A1 (en) Applications of template matching in video coding
CN110730344B (zh) 一种视频编码方法、装置以及计算机存储介质
KR100255795B1 (ko) 프레임 메모리에 있어서 반화소를 가진 예측 매크로블록에 대한어드레스 발생시 기준 포인트 보상방법
KR100235485B1 (ko) 프레임 메모리에 있어서 예측 매크로블록에 대한 어드레스 발생시 기준 포인트 보상방법 및 회로
KR19990026428A (ko) 프레임 메모리에 있어서 어드레스 발생장치
BR122020002128B1 (pt) Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador
KR19990019198A (ko) 프레임 메모리에 있어서 예측 매크로블록에 대한 어드레스 발생시 슬라이스 위치 보상방법