BR112021007863A2 - método e aparelho para processar dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios - Google Patents

método e aparelho para processar dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios Download PDF

Info

Publication number
BR112021007863A2
BR112021007863A2 BR112021007863-0A BR112021007863A BR112021007863A2 BR 112021007863 A2 BR112021007863 A2 BR 112021007863A2 BR 112021007863 A BR112021007863 A BR 112021007863A BR 112021007863 A2 BR112021007863 A2 BR 112021007863A2
Authority
BR
Brazil
Prior art keywords
block
motion
candidate
candidates
list
Prior art date
Application number
BR112021007863-0A
Other languages
English (en)
Inventor
Li Zhang
Kai Zhang
Hongbin Liu
Yue Wang
Original Assignee
Beijing Bytedance Network Technology Co., Ltd.
Bytedance Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Bytedance Network Technology Co., Ltd., Bytedance Inc. filed Critical Beijing Bytedance Network Technology Co., Ltd.
Publication of BR112021007863A2 publication Critical patent/BR112021007863A2/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/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/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/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/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/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

MÉTODO E APARELHO PARA PROCESSAR DADOS DE VÍDEO, E, MEIOS DE ARMAZENAMENTO E DE GRAVAÇÃO LEGÍVEIS POR COMPUTADOR NÃO TRANSITÓRIOS. A descrição refere-se à manutenção de tabela para armazenamento de candidato HMVP. Um método para processar vídeo que compreende: determinar, durante uma conversão entre um primeiro bloco de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com modo de partição de geometria; determinar, com base em pelo menos uma tabela que armazena candidatos de predição de vetor de movimento baseada em histórico (HMVP) que incluem informações de movimento baseadas em blocos anteriormente codificados, informações de movimento de pelo menos uma subporção do primeiro bloco; realizar a conversão do primeiro bloco usando as informações de movimento determinadas.

Description

1 / 101 MÉTODO E APARELHO PARA PROCESSAR DADOS DE VÍDEO, E,
MEIOS DE ARMAZENAMENTO E DE GRAVAÇÃO LEGÍVEIS POR COMPUTADOR NÃO TRANSITÓRIOS REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[001] De acordo com a lei de patentes aplicável e/ou regras de acordo com a Convenção de Paris, este pedido é realizado para reivindicar a prioridade e os benefícios do Pedido de Patente Internacional nº PCT/CN2018/113716, depositado em 02 de novembro de 2019 e do Pedido de Patente Internacional nº PCT/CN2019/086174, depositado em 09 de maio de 2019. Toda a descrição do pedido acima mencionado é incorporada a título de referência como parte da descrição deste pedido.
CAMPO DA TÉCNICA
[002] Este documento está relacionado às tecnologias de codificação e decodificação de vídeo e imagem.
FUNDAMENTOS
[003] O vídeo digital é responsável pelo maior uso de largura de banda na Internet e em outras redes de comunicação digital. À medida que aumenta o número de dispositivos de usuários conectados capazes de receber e exibir vídeo, espera-se que a demanda de largura de banda para uso de vídeo digital continue a crescer.
SUMÁRIO
[004] As técnicas descritas podem ser usadas por modalidades de codificador ou decodificador de vídeo ou imagem para nas quais partições de geometria com predição de vetor de movimento baseada em histórico (HMVP) são usadas.
[005] Em um aspecto de exemplo, um método de processamento de vídeo é descrito. O método inclui realizar uma determinação, por um processador, de que um primeiro bloco de vídeo é intracodificado ou intercodificado sem fusão; determinar, pelo processador, uma primeira
2 / 101 subporção e uma segunda subporção para o primeiro bloco de vídeo com base na determinação de que o primeiro bloco de vídeo é intracodificado ou intercodificado sem fusão, em que uma ou ambas uma primeira subporção ou a segunda subporção são porções não retangulares e não quadradas do primeiro bloco de vídeo; e realizar processamento adicional do primeiro bloco de vídeo com o uso da primeira subporção e da segunda subporção.
[006] Em outro exemplo de aspecto, um método de processamento de vídeo inclui realizar uma determinação, por um processador, de que um primeiro bloco de vídeo é intracodificado ou intercodificado sem fusão; determinar, pelo processador, uma primeira subporção e uma segunda subporção para o primeiro bloco de vídeo, em que uma ou ambas da primeira subporção ou da segunda subporção são porções não retangulares e não quadradas do primeiro bloco de vídeo; e realizar processamento adicional do primeiro bloco de vídeo com o uso da primeira subporção e a segunda subporção, em que pelo menos uma subporção é intercodificada com fusão ou sem fusão e com o uso de uma imagem atual como imagem de referência.
[007] Em um outro aspecto exemplificativo, um método de processamento de vídeo inclui realizar uma determinação, por um processador, que um primeiro bloco de vídeo é intracodificado ou intercodificado sem fusão; determinar, pelo processador, uma primeira subporção e uma segunda subporção para o primeiro bloco de vídeo, em que uma ou ambas da primeira subporção ou da segunda subporção são porções não retangulares ou não quadradas do primeiro bloco de vídeo; e realizar processamento adicional do primeiro bloco de vídeo com o uso da primeira subporção e da segunda subporção, em que a realização do processamento adicional do primeiro bloco de vídeo com o uso da primeira subporção e da segunda subporção é baseada em informações inter ou intracodificadas de blocos de vídeo espaciais não adjacentes em relação ao primeiro bloco de vídeo.
3 / 101
[008] Em um outro aspecto exemplificativo, um método de processamento de vídeo inclui realizar uma determinação que um primeiro bloco de vídeo é codificado com modo de porção triangular (TPM) com o uso de uma porção de predição triangular do primeiro bloco de vídeo e que um segundo bloco de vídeo é codificado com o uso de não TPM com o uso de uma porção de predição não triangular do segundo bloco de vídeo; realizar processamento adicional do primeiro bloco de vídeo e do segundo bloco de vídeo com o uso de candidatos HMVP armazenados e armazenar candidatos HMVP associados ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[009] Em um outro aspecto exemplificativo, um método de processamento de vídeo inclui realizar uma determinação, por um processador, que um primeiro bloco de vídeo inclui porções de predição que são porções não retangulares ou não quadradas do primeiro bloco de vídeo; identificar um candidato HMVP; adicionar um ou mais candidatos de movimento derivados do candidato HMVP a uma lista de fusão associada a blocos de vídeo que incluem porções de predição que são não retangulares e não quadradas; e realizar processamento adicional do primeiro bloco de vídeo com o uso da lista de fusão.
[0010] Em um outro aspecto exemplificativo, um método para processar vídeo inclui: determinar, durante uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, múltiplas subporções para o bloco atual; determinar informações de intrapredição das múltiplas subporções; realizar a conversão do bloco atual usando as informações de intrapredição das múltiplas subporções; e em que o bloco atual é intracodificado, e pelo menos uma das múltiplas subporções é uma subporção não retangular e não quadrada.
[0011] Em um outro aspecto exemplificativo, um método para processar vídeo inclui: determinar, durante uma conversão entre um bloco
4 / 101 atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, múltiplas subporções para o bloco atual; determinar informações de movimento das múltiplas subporções; realizar a conversão do bloco atual usando as informações de movimento das múltiplas subporções; e em que o bloco atual é intercodificado sem fusão, e pelo menos uma das múltiplas subporções é uma subporção não retangular e não quadrada.
[0012] Em um outro aspecto exemplificativo, um método de processamento de vídeo inclui: realizar uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, em que o bloco atual é particionado em múltiplas subporções de acordo com um padrão de divisão no qual uma primeira subporção tem um formato não retangular, não quadrado; processar uma primeira subporção com modo de intracodificação; e processar uma segunda subporção com modo de intercodificação.
[0013] Em um outro aspecto exemplificativo, um método de processamento de vídeo inclui: realizar uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, em que o bloco atual é particionado em múltiplas subporções de acordo com um padrão de divisão no qual uma primeira subporção tem um formato não retangular, não quadrado; em que a pelo menos uma das múltiplas subporções é intercodificada com fusão ou sem fusão e usa uma imagem parada atual como uma imagem parada de referência.
[0014] Em um outro aspecto exemplificativo, um método de processamento de vídeo inclui: realizar uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, em que o bloco atual é particionado em múltiplas subporções de acordo com um padrão de divisão no qual uma primeira
5 / 101 partição de predição tem um formato não retangular, não quadrado; e realizar a conversão com o uso de informações inter ou intracodificadas de um ou mais blocos espaciais não adjacentes.
[0015] Em um outro aspecto exemplificativo, um método para processar vídeo inclui: determinar, durante uma conversão entre um primeiro bloco de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com modo de partição de geometria; determinar, com base em pelo menos uma tabela que armazena candidatos de predição de vetor de movimento baseada em histórico (HMVP) que incluem informações de movimento baseadas em blocos anteriormente codificados, informações de movimento de pelo menos uma subporção do primeiro bloco; realizar a conversão do primeiro bloco usando as informações de movimento determinadas.
[0016] Em um outro aspecto exemplificativo, um método para processar vídeo inclui: determinar, durante uma conversão entre um primeiro bloco de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com modo de partição de geometria; determinar informações de movimento de pelo menos uma subporção do primeiro bloco; realizar a conversão do primeiro bloco usando as informações de movimento da pelo menos uma subporção; em que determinar informações de movimento de pelo menos uma subporção compreende o uso de pelo menos um candidato de predição de vetor de movimento baseada em histórico (HMVP) que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento e determinar as informações de movimento a partir da lista de candidato de movimento.
[0017] Em um outro aspecto exemplificativo, o método descrito acima pode ser implementado por um aparelho codificador de vídeo que compreende um processador.
6 / 101
[0018] Em um outro aspecto exemplificativo, o método descrito acima pode ser implementado por um aparelho decodificador de vídeo que compreende um processador.
[0019] Em ainda outro aspecto exemplificativo, esses métodos podem ser incorporados na forma de instruções processáveis executáveis e armazenados em um meio de programa legível por computador.
[0020] Esses e outros aspectos são descritos mais detalhadamente no presente documento.
BREVE DESCRIÇÃO DOS DESENHOS
[0021] A Figura 1 mostra um exemplo de um processo de derivação para construção de lista de candidatos de fusão.
[0022] A Figura 2 mostra um exemplo de posições de candidatos de fusão espacial.
[0023] A Figura 3 mostra um exemplo de pares de candidato considerados para verificação de redundância de candidatos de fusão espacial.
[0024] A Figura 4 mostra um exemplo de posições para o segundo PU de partições NX2N e 2NXN.
[0025] A Figura 5 mostra um exemplo de escalonamento de vetor de movimento para um candidato de fusão temporal.
[0026] A Figura 6 mostra um exemplo de posições de candidato para candidatos de fusão temporal, CO e Cl.
[0027] A Figura 7 mostra um exemplo de um candidato de fusão bi- preditiva combinado.
[0028] A Figura 8 mostra um exemplo de um processo de derivação para candidatos de predição de vetor de movimento.
[0029] A Figura 9 mostra um exemplo de escalonamento de vetor de movimento para um candidato de vetor de movimento espacial.
[0030] A Figura 10 mostra um exemplo de predição de movimento ATMVP para um CU.
7 / 101
[0031] A Figura 11 mostra um exemplo de um CU com quatro sub- blocos (A-D) e seus blocos vizinhos (a-d).
[0032] A Figura 12 mostra um exemplo de um fluxograma de codificação com diferentes precisões de MV.
[0033] A Figura 13 mostra exemplos de divisão de um CU em duas unidades de predição triangular (dois tipos de partição).
[0034] A Figura 14 mostra um exemplo de uma posição de blocos vizinhos.
[0035] A Figura 15 mostra um exemplo de um CU que aplica o 1º grupo de fator de ponderação.
[0036] A Figura 16 mostra um exemplo de armazenamento de vetor de movimento.
[0037] A Figura 17 mostra um exemplo de blocos vizinhos (A e L) usados para seleção de contexto em codificação de sinalizador de TPM.
[0038] A Figura 18 mostra um exemplo de sub-blocos em que OBMC se aplica.
[0039] A Figura 19 mostra um exemplo de amostras vizinhas usadas para derivar parâmetros IC.
[0040] A Figura 20 mostra um exemplo de um modelo de movimento afim simplificado.
[0041] A Figura 21 mostra um exemplo de MVF afim por sub-bloco.
[0042] A Figura 22 mostra um exemplo de modelo afim de 4 parâmetros (a) e modelo afim de 6 parâmetros (b).
[0043] A Figura 23 mostra um exemplo de MVP para AF_INTER.
[0044] A Figura 24 mostra um exemplo de candidatos para AF_MERGE.
[0045] A Figura 25 mostra um exemplo de posição de candidatos para modo de fusão afim.
[0046] A Figura 26 mostra um exemplo de trajetória de fluxo óptico.
8 / 101
[0047] A Figura 27 mostra um exemplo de BIO s/ extensão de bloco: a) posições de acesso fora do bloco; b) preenchimento é usado a fim de evitar cálculo de acesso de memória extra.
[0048] A Figura 28 mostra um exemplo de DMVR baseado em compatibilidade de modelo bilateral.
[0049] A Figura 29 é um diagrama de bloco de um exemplo de um aparelho de processamento de vídeo.
[0050] A Figura 30 mostra um diagrama de bloco de uma implementação exemplificativa de um codificador de vídeo.
[0051] A Figura 31 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0052] A Figura 32 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0053] A Figura 33 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0054] A Figura 34 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0055] A Figura 3 5 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0056] A Figura 36 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0057] A Figura 37 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0058] A Figura 38 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0059] A Figura 39 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0060] A Figura 40 é um fluxograma para um exemplo de um método de processamento de vídeo.
9 / 101
[0061] A Figura 41 é um fluxograma para um exemplo de um método de processamento de vídeo.
[0062] A Figura 42 é um fluxograma para um exemplo de um método de processamento de vídeo.
DESCRIÇÃO DETALHADA
[0063] O presente documento provê várias técnicas que podem ser usadas por um decodificador de fluxos de bits de imagens ou vídeo para melhorar a qualidade de vídeo ou imagens digitais descompactadas ou decodificadas. Para resumir, o termo "vídeo" é usado neste documento para incluir uma sequência de imagens parada (tradicionalmente chamada de vídeo) e imagens individuais. Ademais, um codificador de vídeo também pode implantar essas técnicas durante o processo de codificação a fim de reconstruir quadros decodificados usados para codificação adicional.
[0064] Os títulos das seções são usados no presente documento para facilitar a compreensão e não limitam as modalidades e técnicas às seções correspondentes. Como tal, modalidades de uma seção podem ser combinadas com modalidades de outras seções.
1. SUMÁRIO
[0065] Este documento de patente está relacionado a tecnologias de codificação de vídeo. Especificamente, está relacionado à codificação do vetor de movimento sob a partição de geometria na codificação de vídeo. Pode ser aplicado ao padrão de codificação de vídeo existente, como HEVC, ou ao padrão (Codificação de Vídeo Versátil) a ser finalizado. Também pode ser aplicável a futuros padrões de codificação de vídeo ou codec de vídeo.
2. CONTEXTO
[0066] Os padrões de codificação de vídeo evoluíram principalmente através do desenvolvimento dos bem conhecidos padrões ITU-T e ISO/IEC. O ITU-T produziu H.261 e H.263, ISO/IEC produziu MPEG-1 e MPEG-4 Visual, e as duas organizações produziram em conjunto o padrão
10 / 101 H.262/MPEG-2 Video e H.264/MPEG-4 Codificação de Vídeo Avançada (AVC) e H.265/HEVC. Desde o H.262, os padrões de codificação de vídeo são baseados na estrutura de codificação de vídeo híbrida em que a predição temporal mais a codificação de transformação são utilizadas. Para explorar as futuras tecnologias de codificação de vídeo além do HEVC, a Joint Video Exploration Team (JVET) foi fundada pela VCEG e pela MPEG em 2015. Desde então, muitos métodos novos foram adotados pelo JVET e colocados no software de referência denominado Joint Exploration Model (JEM). Em abril de 2018, a Joint Video Expert Team (JVET) entre VCEG (Q6/16) e ISO/IEC JTC1 SC29/WG11 (MPEG) foi criada para trabalhar na segmentação do padrão WC em redução de taxa de bits de 50% em comparação com HEVC.
[0067] A Figura 30 é um diagrama de bloco de uma implementação exemplificativa de um codificador de vídeo. A Figura 30 mostra que a implementação do codificador tem um caminho de feedback embutido no qual o codificador de vídeo também executa a funcionalidade de decodificação de vídeo (reconstruindo a representação compactada de dados de vídeo para uso na codificação dos próximos dados de vídeo).
2.1 INTERPREDIÇÃO EM HEVC/H.265
[0068] Cada PU interpredita tem parâmetros de movimento para uma ou duas listas de imagem parada de referência. Os parâmetros de movimento incluem um vetor de movimento e um índice de imagem parada de referência. O uso de uma das duas listas de imagem parada de referência também pode ser sinalizado com o uso de inter_pred_idc. Os vetores de movimento podem ser explicitamente codificados como deltas em relação aos preditores.
[0069] Quando um CU é codificado com o modo de salto, um PU é associado ao CU e não há coeficientes residuais significativos, nenhum delta de vetor de movimento codificado ou índice de imagem parada de referência. Um modo de fusão é especificado pelo qual os parâmetros de movimento para
11 / 101 a PU atual são obtidos de PUs vizinhos, incluindo candidatos espaciais e temporais. O modo de fusão pode ser aplicado a qualquer PU interpredito, não apenas para o modo de pular. A alternativa para o modo de fusão é a transmissão explícita de parâmetros de movimento, em que o vetor de movimento (para ser mais preciso, a diferença do vetor de movimento em comparação com um preditor de vetor de movimento), o índice de imagem parada de referência correspondente para cada lista de imagem parada de referência e o uso da lista de imagem parada de referência são sinalizados explicitamente por cada PU. Tal modo é denominado predição de vetor de movimento avançada (AMVP) nesta descrição.
[0070] Quando a sinalização indica que uma das duas listas de imagem parada de referência deve ser usada, o PU é produzido a partir de um bloco de amostras. Isso é conhecido como “uni-predição”. A uni-predição está disponível para fatias P e fatias B.
[0071] Quando a sinalização indica que ambas as listas de imagem parada de referência devem ser usadas, o PU é produzido a partir de dois blocos de amostras. Isso é conhecido como “bi-predição”. A bi-predição está disponível apenas para fatias B.
[0072] O texto a seguir provê os detalhes sobre os modos de interpredição especificados em HEVC. A descrição começará com o modo de fusão.
2.1.1. LISTA DE IMAGEM PARADA DE REFERÊNCIA
[0073] Em HEVC, o termo interpredição é usado para denotar predição derivada de elementos de dados (por exemplo, valores de amostra ou vetores de movimento) de imagens parada de referência diferentes da imagem parada decodificada atual. Como no H.264/AVC, uma imagem parada pode ser prevista a partir de várias imagens parada de referência. As imagens parada de referência que são usadas para interpredição são organizadas em uma ou mais listas de imagem parada de referência. O índice de referência
12 / 101 identifica quais das imagens parada de referência na lista devem ser usadas para criar o sinal de predição.
[0074] Uma única lista de imagem parada de referência, Lista 0, é usada para uma fatia P e duas listas de Figura de referência, Lista 0 e Lista 1 são usadas para fatias B. Deve-se observar que as imagens paradas de referência incluídas na Lista 0/1 podem ser de imagens paradas anteriores e futuras em termos de ordem de captura/exibição.
2.1.2 MODO DE FUSÃO
2.1.2.1 DERIVAÇÃO DE CANDIDATOS PARA MODO DE FUSÃO
[0075] Quando um PU é previsto com o uso do modo de fusão, um índice que aponta para uma entrada na lista de candidatos de fusão é analisado na corrente de bits e usado para recuperar as informações do movimento. A construção dessa lista é especificada na norma HEVC e pode ser resumida de acordo com a seguinte sequência de etapas: etapa 1: derivação de candidatos iniciais etapa 1.1: derivação de candidatos espaciais etapa 1.2: verificação de redundância para candidatos espaciais etapa 1.3: derivação de candidatos temporais etapa 2: inserção de candidatos adicionais etapa 2.1: criação de candidatos bi-preditivos etapa 2.2: inserção de zero candidatos de movimento
[0076] Essas etapas também são descritas esquematicamente na Figura 1. Para a derivação do candidato de fusão espacial, um máximo de quatro candidatos de fusão são selecionados entre os candidatos que estão localizados em cinco posições diferentes. Para derivação de candidato de fusão temporal, um máximo de um candidato de fusão é selecionado entre dois candidatos. Uma vez que o número constante de candidatos para cada PU é assumido no decodificador, candidatos adicionais são gerados quando o número de candidatos obtidos na etapa 1 não atinge o número máximo de
13 / 101 candidatos de fusão (MaxNumMergeCand) que é sinalizado no cabeçalho da fatia. Como o número de candidatos é constante, o índice do melhor candidato de fusão é codificado com o uso de binarização unária truncada (TU). Se o tamanho da CU é igual a 8, todos os PUs da CU atual compartilham uma única lista de candidatos de fusão, que é idêntica à lista de candidatos de fusão da unidade de predição 2NX2N.
[0077] A seguir, são detalhadas as operações associadas às etapas mencionadas.
[0078] A Figura 1 mostra um exemplo de um processo de derivação para construção de lista de candidatos de fusão.
2.1.2.2. DERIVAÇÃO DE CANDIDATOS ESPACIAIS
[0079] Na derivação de candidatos de fusão espacial, um máximo de quatro candidatos de fusão são selecionados entre os candidatos localizados nas posições representadas na Figura 2. A ordem de derivação é A1, B1, B0, A0 e B2. A posição B2 é considerada apenas quando qualquer PU da posição A1, B1, B0, A0 não está disponível (por exemplo, devido ao fato de que pertence a outra fatia ou bloco) ou é intracodificado. Depois que o candidato na posição A1 é adicionado, a adição dos candidatos restantes está sujeita a uma verificação de redundância que garante que os candidatos com as mesmas informações de movimento sejam excluídos da lista para que a eficiência da codificação seja aprimorada. Para reduzir a complexidade computacional, nem todos os pares candidatos possíveis são considerados na verificação de redundância mencionada. Em vez disso, apenas os pares vinculados a uma seta na Figura 3 são considerados e um candidato é adicionado à lista apenas se o candidato correspondente usado para verificação de redundância não tiver as mesmas informações de movimento. Outra fonte de informações de movimento duplicadas é o “secondPU” associado a partições diferentes de 2Nx2N. A título de exemplo, a Figura 4 representa a segunda PU para o caso de NX2N e 2NXN, respectivamente.
14 / 101 Quando o PU atual é particionado como NX2N, o candidato na posição A1 não é considerado para a construção de lista. Na verdade, adicionar esse candidato levará a duas unidades de predição com as mesmas informações de movimento, o que é redundante ter apenas um PU em uma unidade de codificação. Da mesma forma, a posição Bi não é considerada quando o PU atual é particionado como 2NXN.
[0080] A Figura 2 mostra um exemplo de posições de candidatos de fusão espacial.
[0081] A Figura 3 mostra um exemplo de pares de candidato considerados para verificação de redundância de candidatos de fusão espacial.
[0082] A Figura 4 mostra um exemplo de posições para o segundo PU de partições NX2N e 2NXN.
2.1.2.3. DERIVAÇÕES DE CANDIDATOS TEMPORAIS
[0083] Nessa etapa, apenas um candidato é adicionado à lista. Particularmente, na derivação desse candidato de fusão temporal, um vetor de movimento em escala é derivado com base no PU colocalizado pertencente à imagem parada que tem a menor diferença POC com a imagem parada atual dentro da lista de imagem parada de referência dada. A lista de imagem parada de referência a ser usada para derivação do PU colocalizado é explicitamente sinalizado no cabeçalho da fatia. O vetor de movimento escalonado para o candidato de fusão temporal é obtido conforme ilustrado pela linha pontilhada na Figura 5, que é escalonado a partir do vetor de movimento do PU colocado usando as distâncias POC, tb e td, em que tb é definido como a diferença de POC entre a imagem parada de referência da imagem parada atual e a imagem parada atual e td é definida como a diferença POC entre a imagem parada de referência da imagem parada colocalizada e a imagem parada colocalizada. O índice de imagem parada de referência dos candidatos de fusão temporal é igual a zero. Uma realização prática do processo de escalonamento é descrita na especificação HEVC. Para
15 / 101 uma fatia B, dois vetores de movimento, um é para a lista de imagem parada de referência 0 e o outro é para a lista de imagem parada de referência 1, são obtidos e combinados para fazer o candidato de fusão bi-preditivo.
[0084] A Figura 5 mostra um exemplo de de escalonamento de vetor de movimento para candidatos de fusão temporal.
[0085] No PU (Y) colocalizado pertencente ao quadro de referência, a posição para o candidato temporal é selecionada entre os candidatos C0 e C1, como representado na Figura 6. Se o PU na posição C0 não estiver disponível, for intracodificado ou estiver fora da linha atual da CTU, a posição C1 é usada. Caso contrário, a posição C0 é usada na derivação do candidato de fusão temporal.
[0086] A Figura 6 mostra um exemplo de posições candidatas para candidato de fusão temporal, C0 e C1.
2.1.2.4. INSERÇÃO DE CANDIDATOS ADICIONAIS
[0087] Além dos candidatos de fusão espacial e temporal, há dois tipos adicionais de candidatos de fusão: candidato de fusão bi-preditivo combinado e candidato de fusão zero. Candidatos de fusão bi-preditivos combinados são gerados por meio da utilização de candidatos de fusão espacial e temporal. O candidato de fusão bi-preditivo combinado é usado apenas para a fatia B. Os candidatos bi-preditivos combinados são gerados combinando os primeiros parâmetros de movimento da lista de imagem parada de referência de um candidato inicial com os parâmetros de movimento da segunda lista de imagem parada de referência de outro. Se essas duas duplas proverem diferentes hipóteses de movimento, as mesmas formarão um novo candidato bi-preditivo. Como exemplo, a Figura 7 mostra o caso em que dois candidatos na lista original (à esquerda), que têm Mv1O e refldxLO ou Mv1l e refldxLl, são usados para criar um candidato de fusão bi- preditivo combinado adicionado à lista final (à direita). Existem inúmeras regras relacionadas às combinações que são consideradas para gerar esses
16 / 101 candidatos de fusão adicionais.
[0088] A Figura 7 mostra um exemplo de candidato de fusão bi- preditivo combinado.
[0089] Candidatos de movimento zero são inseridos para preencher as entradas restantes na lista de candidatos de fusão e, portanto, atingir a capacidade MaxNumMergeCand. Esses candidatos têm deslocamento espacial zero e um índice de imagem parada de referência que começa do zero e aumenta toda vez que um novo candidato de movimento zero é adicionado à lista. O número de quadros de referência usados por esses candidatos é um e dois para predição uni e bidirecional, respectivamente. Finalmente, nenhuma verificação de redundância é realizada nesses candidatos.
2.1.2.5. REGIÕES DE ESTIMATIVA DE MOVIMENTO PARA
PROCESSAMENTO PARALELO
[0090] Para acelerar o processo de codificação, a estimativa de movimento pode ser realizada em paralelo em que os vetores de movimento para todas as unidades de predição dentro de uma determinada região são derivados simultaneamente. A derivação de candidatos de fusão da vizinhança espacial pode interferir no processamento paralelo, pois uma unidade de predição não pode derivar os parâmetros de movimento de uma PU adjacente até que sua estimativa de movimento associada seja concluída. Para mitigar a troca entre a eficiência de codificação e a latência de processamento, HEVC define a região de estimativa de movimento (MER) cujo tamanho é sinalizado no parâmetro de imagem definido com o uso do elemento de sintaxe “log2_parallel_merge_level_minus2”. Quando um MER é definido, os candidatos de fusão que caem na mesma região são marcados como indisponíveis e, portanto, não são considerados na construção da lista.
2.1.3. AMVP
[0091] AMVP explora a correlação espaço-temporal do vetor de movimento com PUs vizinhos, que é usado para transmissão explícita de
17 / 101 parâmetros de movimento. Para cada lista de imagem parada de referência, uma lista de candidatos de vetor de movimento é construída primeiro verificando a disponibilidade da esquerda, acima das posições PU vizinhas temporariamente, removendo candidatos redundantes e adicionando vetor zero para fazer a lista de candidatos ter comprimento constante. Então, o codificador pode selecionar o melhor preditor da lista de candidatos e transmitir o índice correspondente indicando o candidato escolhido. Da mesma forma com a sinalização de índice de fusão, o índice do melhor candidato a vetor de movimento é codificado com o uso de unário truncado. O valor máximo a ser codificado nesse caso é 2 (consulte a Figura 8). Nas seções a seguir, são providos detalhes sobre o processo de derivação do candidato de predição de vetor de movimento.
2.1.3.1 DERIVAÇÃO DE CANDIDATOS AMVP
[0092] A Figura 8 resume o processo de derivação para o candidato de predição de vetor de movimento.
[0093] Na predição de vetor de movimento, dois tipos de candidatos de vetor de movimento são considerados: candidato de vetor de movimento espacial e candidato de vetor de movimento temporal. Para a derivação de candidato do vetor de movimento espacial, dois candidatos do vetor de movimento são eventualmente derivados com base nos vetores de movimento de cada PU localizado em cinco posições diferentes, conforme ilustrado na Figura 2.
[0094] Para a derivação de candidato de vetor de movimento temporal, um candidato de vetor de movimento é selecionado dentre dois candidatos, que são derivados com base em duas posições diferentes colocalizadas. Depois que a primeira lista de candidatos espaço-temporais é produzida, os candidatos de vetor de movimento duplicados na lista são removidos. Se o número de candidatos potenciais for maior do que dois, os candidatos de vetor de movimento cujo índice de imagem parada de
18 / 101 referência dentro da lista de imagem parada de referência associada é maior que 1 são removidos da lista. Se o número de candidatos de vetor de movimento espaço-temporal for menor do que dois, candidatos de vetor de movimento zero adicionais são adicionados à lista.
2.1.3.2. CANDIDATOS DE VETOR DE MOVIMENTO ESPACIAL
[0095] Na derivação dos candidatos do vetor de movimento espacial, no máximo dois candidatos são considerados entre os cinco candidatos potenciais, que são derivados de PUs localizados nas posições representadas na Figura 2, em que essas posições são iguais às de fusão de movimento. A ordem de derivação para o lado esquerdo da PU atual é definida como A0, A1, e A0 em escala, A1 em escala. A ordem de derivação para o lado acima do PU atual é definida como B0, B1, B2, B0 em escala, B1 em escala, B2 em escala. Para cada lado, há, portanto, quatro casos que podem ser usados como candidatos de vetor de movimento, com dois casos em que não é necessário usar a escala espacial e dois casos em que a escala espacial é usada. Os quatro casos diferentes são resumidos a seguir. Sem escala espacial
[0096] (1) Mesma lista de imagem parada de referência e mesmo índice de imagem parada de referência (mesmo POC) (2) Diferente lista de imagem parada de referência, mas a mesma imagem parada de referência (mesmo POC) Escalonamento espacial
[0097] (3) Mesma lista de imagem parada de referência, mas diferente imagem parada de referência (diferente POC) (4) Diferente lista de imagem parada de referência, e diferente imagem parada de referência (diferente POC)
[0098] Os casos de escala não espacial são verificados primeiro, seguidos pela escala espacial. A escala espacial é considerada quando o POC é diferente entre a imagem parada de referência da PU vizinha e aquela da PU
19 / 101 atual, independentemente da lista de imagem parada de referência. Se todas as PUs dos candidatos à esquerda não estiverem disponíveis ou forem codificados por intra, a escala para o vetor de movimento acima é permitida para ajudar na derivação paralela dos candidatos MV à esquerda e acima. Caso contrário, a escala espacial não é permitida para o vetor de movimento acima.
[0099] A Figura 9 mostra um exemplo de escalonamento de vetor de movimento para um candidato de vetor de movimento espacial.
[00100] Em um processo de escalonamento espacial, o vetor de movimento do PU vizinho é escalonado de maneira semelhante ao escalonamento temporal, conforme ilustrado na Figura 9. A principal diferença é que a lista de imagem parada de referência e o índice do PU atual são fornecidos como entrada; o processo de dimensionamento real é o mesmo do dimensionamento temporal.
2.1.3.3. CANDIDATOS DE VETOR DE MOVIMENTO TEMPORAL
[00101] Com exceção da derivação de índice de imagem parada de referência, todos os processos para a derivação de candidatos de fusão temporal são os mesmos que para a derivação de candidatos de vetor de movimento espacial (consulte a Figura 6). O índice de imagem parada de referência é sinalizado para o decodificador. 2,2. NOVOS ÍNDICES DE INTERPREDIÇÃO EM JEM
2.2.1. PREDIÇÃO DE VETOR DE MOVIMENTO BASEADA EM SUB-
CU
[00102] No JEM com QTBT, cada CU pode ter no máximo um conjunto de parâmetros de movimento para cada direção de predição. Dois métodos de predição de vetor de movimento de nível sub-CU são considerados no codificador dividindo uma grande CU em sub-CUs e derivando informações de movimento para todas as sub-CUs da grande CU. O método alternativo de predição de vetor de movimento temporal (ATMVP)
20 / 101 permite que cada CU busque vários conjuntos de informações de movimento de vários blocos menores do que a CU atual na imagem parada de referência colocada. No método de predição de vetor de movimento espacial-temporal (STMVP), os vetores de movimento das sub-CUs são derivados recursivamente com o uso do preditor de vetor de movimento temporal e vetor de movimento vizinho espacial.
[00103] Para preservar o campo de movimento mais preciso para predição de movimento sub-CU, a compressão de movimento para os quadros de referência está atualmente desativada.
[00104] A Figura 10 mostra uma predição de movimento ATMVP exemplificativa para um CU.
2.2.1.1. PREVISÃO ALTERNATIVA DE VETOR DE MOVIMENTO
TEMPORAL
[00105] No método alternativo de predição de vetor de movimento temporal (ATMVP), a predição de vetor de movimento temporal de vetores de movimento (TMVP) é modificada pela busca de múltiplos conjuntos de informações de movimento (incluindo vetores de movimento e índices de referência) de blocos menores que a CU atual. Os sub-CUs são blocos NXN quadrados (N é definido como 4 por padrão).
[00106] O ATMVP prevê os vetores de movimento dos sub-CUs dentro de um CU em duas etapas. A primeira etapa é identificar o bloco correspondente em uma imagem parada de referência com um denominado vetor temporal. A imagem parada de referência é chamada da imagem parada de fonte de movimento. A segunda etapa é dividir a CU atual em sub-CUs e obter os vetores de movimento bem como os índices de referência de cada sub-CU do bloco que corresponde a cada sub-CU.
[00107] Na primeira etapa, uma imagem parada de referência e o bloco correspondente é determinado pelas informações de movimento dos blocos vizinhos espaciais da CU atual. Para evitar o processo de varredura repetitivo
21 / 101 de blocos vizinhos, o primeiro candidato de fusão na lista de candidato de fusão da CU atual é usado. O primeiro vetor de movimento disponível bem como seu índice de referência associado são ajustados para serem o vetor temporal e o índice para a imagem parada de fonte de movimento. Dessa forma, em ATMVP, o bloco correspondente pode ser identificado com mais precisão, em comparação com TMVP, em que o bloco correspondente (às vezes chamado de bloco colocado) está sempre em uma posição inferior direita ou central em relação ao CU atual.
[00108] Na segunda etapa, um bloco correspondente da sub-CU é identificado pelo vetor temporal na imagem de origem em movimento, adicionando à coordenada da CU atual o vetor temporal. Para cada sub-CU, a informação de movimento de seu bloco correspondente (a menor grade de movimento que cobre a amostra central) é usada para derivar as informações de movimento para o sub-CU. Após as informações de movimento de um bloco NXN correspondente serem identificadas, as mesmas são convertidas nos vetores de movimento e índices de referência da sub-CU atual, da mesma forma que TMVP de HEVC, em que escala de movimento e outros procedimentos se aplicam. Por exemplo, o decodificador verifica se a condição de baixo atraso (isto é, os POCs de todas as imagens de referência da imagem parada atual são menores do que o POC da imagem parada atual) é atendida e possivelmente usa o vetor de movimento MVX (o vetor de movimento correspondente à lista de imagem parada de referência X) para prever o vetor de movimento MVy (em que X é igual a 0 ou 1 e Y é igual a 1- X) para cada sub-CU.
2.2.1.2. PREVISÃO DE VETOR DE MOVIMENTO ESPACIAL- TEMPORAL (STMVP)
[00109] Nesse método, os vetores de movimento das sub-CUs são derivados recursivamente, seguindo a ordem de varredura raster. A Figura 11 ilustra esse conceito. Vamos considerar um CU 8x8 que contém quatro sub-
22 / 101 CUs 4x4 A, B, C, e D. Os blocos 4x4 vizinhos no quadro atual são rotulados como a, b, c, e d.
[00110] A derivação de movimento para sub-CU A começa identificando seus dois vizinhos espaciais. O primeiro vizinho é o bloco NxN acima de sub-CU A (bloco c). Se esse bloco c não estiver disponível ou for codificado, os outros blocos NxN acima de sub-CU A são verificados (da esquerda para a direita, começando no bloco c). O segundo vizinho é um bloco à esquerda da sub-CU A (bloco b). Se o bloco b não estiver disponível ou estiver codificado, outros blocos à esquerda da sub-CU A são verificados (de cima para baixo, começando no bloco b). As informações de movimento obtidas dos blocos vizinhos para cada lista são dimensionadas para o primeiro quadro de referência de uma determinada lista. Em seguida, o preditor de vetor de movimento temporal (TMVP) do sub-bloco A é derivado seguindo o mesmo procedimento de derivação de TMVP conforme especificado em HEVC. As informações de movimento do bloco colocado no local D são buscadas e dimensionadas de acordo. Finalmente, após recuperar e dimensionar as informações de movimento, todos os vetores de movimento disponíveis (até 3) são calculados separadamente para cada lista de referência. O vetor de movimento médio é atribuído como o vetor de movimento da sub- CU atual.
2.2.1.3. SINALIZAÇÃO DE MODO DE PREDIÇÃO DE MOVIMENTO SUB-CU
[00111] Os modos sub-CU são ativados como candidatos de fusão adicionais e não há nenhum elemento de sintaxe adicional necessário para sinalizar os modos. Dois candidatos de fusão adicionais são adicionados à lista de candidatos de fusão de cada UC para representar o modo ATMVP e o modo STMVP. São usados até sete candidatos de fusão, se o conjunto de parâmetros de sequência indicar que ATMVP e STMVP estão habilitados. A lógica de codificação dos candidatos de fusão adicionais é a mesma que para
23 / 101 os candidatos de fusão no HM, o que significa que, para cada CU na fatia P ou B, mais duas verificações RD são necessárias para os dois candidatos de fusão adicionais.
[00112] No JEM, todos os bins do índice de fusão são codificados por contexto pelo CABAC. Enquanto em HEVC, apenas o primeiro bin é codificado por contexto e os restantes são codificados por by-pass de contexto.
2.2.2. RESOLUÇÃO DE DIFERENÇA DE VETOR DE MOVIMENTO
ADAPTÁVEL
[00113] Em HEVC, as diferenças do vetor de movimento (MVDs) (entre o vetor de movimento e o vetor de movimento previsto de um PU) são sinalizadas em unidades de amostras de um quarto de luma quando use_integer_mv_flag é igual a 0 no cabeçalho da fatia. No JEM, uma resolução de vetor de movimento localmente adaptável (LAMVR) é introduzida. No JEM, o MVD pode ser codificado em unidades de amostras de um quarto de luma, amostras inteiras de luma ou quatro amostras de luma. A resolução MVD é controlada no nível da unidade de codificação (CU), e os sinalizadores de resolução MVD são sinalizados condicionalmente para cada CU que tenha pelo menos um componente MVD diferente de zero.
[00114] Para um CU que tem pelo menos um componente MVD diferente de zero, um primeiro sinalizador é sinalizado para indicar se a precisão MV de um quarto de luma é usada no CU. Quando o primeiro sinalizador (igual a 1) indica que a precisão MV de amostra de um quarto de luma não é usada, outro sinalizador é sinalizado para indicar se a precisão de MV de amostra de luma inteira ou a precisão de MV de amostra de quatro luma é usada.
[00115] Quando o primeiro sinalizador de resolução MVD de um CU é zero, ou não codificado para um CU (significando que todos os MVDs no CU são zero), a resolução MV de um quarto de luma é usada para a CU. Quando
24 / 101 um CU usa a precisão MV de amostra de luma de número inteiro ou precisão de MV de amostra de quatro luma, os MVPs na lista de candidatos AMVP para a CU são arredondados para a precisão correspondente.
[00116] No codificador, verificações de RD de nível de CU são usadas para determinar qual resolução MVD deve ser usada para um CU. Ou seja, a verificação RD de nível CU é realizada três vezes para cada resolução MVD. Para acelerar a velocidade do codificador, os seguintes esquemas de codificação são aplicados no JEM.
[00117] Durante a verificação RD de um CU com resolução MVD de amostra de um quarto de luma normal, as informações de movimento da CU atual (precisão da amostra de luma inteiro) são armazenadas. As informações de movimento armazenadas (após o arredondamento) são usadas como o ponto de partida para um refinamento adicional do vetor de movimento de pequeno alcance durante a verificação de RD para o mesmo CU com amostra de luma inteira e resolução MVD de amostra de 4 luma para que o processo demorado de estimativa de movimento não seja duplicado três vezes.
[00118] A verificação RD de um CU com resolução MVD de amostra de 4 luma é invocada condicionalmente. Para um CU, quando a resolução MVD da amostra de luma inteira de custo RD é muito maior do que a resolução MVD de um quarto de luma, a verificação RD da resolução MVD de amostra de 4 luma para a CU é ignorada.
[00119] O processo de codificação é mostrado na Figura 12. Primeiro, 1/4 pel MV é testado e o custo RD é calculado e denotado como RDCost0, então MV inteiro é testado e o custo RD é denotado como RDCost1. Se RDCost1 <th * RDCost0 (em que th é um valor positivo), então 4-pel MV é testado; caso contrário, 4-pel MV é ignorado. Basicamente, as informações de movimento e custo de RD, etc., já são conhecidos para 1/4 pel MV ao verificar o inteiro ou 4-pel MV, que pode ser reutilizado para acelerar o processo de codificação de inteiro ou 4-pel MV.
25 / 101
2.2.3. MODO DE PREDIÇÃO TRIANGULAR
[00120] O conceito do modo de predição triangular (TPM) é introduzir uma nova partição triangular para predição compensada de movimento. Conforme mostrado na Figura 13, a mesma divide um CU em duas unidades de predição triangulares, na direção diagonal ou diagonal inversa. Cada unidade de predição triangular no CU é interpredita com o uso de seu próprio vetor de movimento uni-predição e índice de quadro de referência que são derivados de uma lista de candidatos uni-predição. Um processo de ponderação adaptativa é realizado para a borda diagonal após a predição das unidades de predição triangulares. Em seguida, o processo de transformação e quantização é aplicado a todo o UC. Observe que esse modo só se aplica aos modos de pular e mesclar.
2.2.3.1 LISTA DE CANDIDATO DE UNI-PREDIÇÃO PARA TPM
[00121] A lista de candidatos uni-predição consiste em cinco candidatos a vetores de movimento uni-predição. É derivado de sete blocos vizinhos, incluindo cinco blocos vizinhos espaciais (1 a 5) e dois blocos colocalizados temporais (6 a 7), como mostrado na Figura 14. Os vetores de movimento dos sete blocos vizinhos são coletados e colocados na lista de candidatos de uni-predição de acordo com a ordem dos vetores de movimento de uni-predição, vetor de movimento L0 de vetores de movimento de bi- predição, vetor de movimento L1 de vetores de movimento de bi-predição e vetor de movimento médio dos vetores de movimento L0 e L1 de vetores de movimento de bi-predição. Se o número de candidatos for menor que cinco, o vetor de movimento zero é adicionado à lista.
[00122] Mais especificamente, as seguintes etapas estão envolvidas: obter candidatos de movimento a partir de A1, B1, B0, A0, B2, Col e Col2 (correspondendo ao bloco 1 a 7 na Figura 14) sem quaisquer operações de poda.
[00123] Ajustar variável numCurrMergeCand = 0
26 / 101
[00124] Para cada candidato de movimento derivado de A1, B1, B0, A0, B2, Col e Col2 e numCurrMergeCand é menor que 5, se o candidato de movimento for uni-predição (seja da Lista 0 ou Lista 1), o mesmo é adicionado à fusão lista com numCurrMergeCand aumentada em 1. Esses candidatos de movimento adicionado são chamados de “candidato originalmente de uni-predição”.
[00125] Poda total é aplicada.
[00126] Para cada candidato de movimento derivado de A1, B1, B0, A0, B2, Col e Col2 e numCurrMergeCand for menor que 5, se o candidato de movimento for bi-predição, a informação de movimento da Lista 0 é adicionada à lista de fusão (ou seja, modificado para ser uni-predição da Lista 0) e numCurrMergeCand aumentado em 1. Esses candidatos de movimento adicionados são chamados de “Candidato previsto da Lista 0 Truncada”.
[00127] Poda total é aplicada.
[00128] Para cada candidato de movimento derivado de A1, B1, B0, A0, B2, Col e Col2 e numCurrMergeCand for menor que 5, se o candidato de movimento for bi-predição, a informação de movimento da Lista 1 é adicionada à lista de fusão (ou seja, modificado para ser uni-predição da Lista 1) e numCurrMergeCand aumentado em 1. Esses candidatos de movimento adicionados são chamados de “Candidato previsto da Lista 1 Truncada”.
[00129] Poda total é aplicada.
[00130] Para cada candidato de movimento derivado de A1, B1, B0, A0, B2, Col e Col2 e numCurrMergeCand for menor que 5, se o candidato de movimento for bi-predição.
[00131] Se a fatia QP da imagem de referência da Lista 0 for menor do que a fatia QP da imagem de referência da Lista 1, as informações de movimento da Lista 1 são primeiro dimensionadas para a imagem de referência da Lista 0 e a média dos dois MVs (um é da Lista 0 original e o outro é o MV escalonado da Lista 1) é adicionado à lista de fusão, que é a
27 / 101 média uni-predição do candidato de movimento da Lista 0 e numCurrMergeCand aumentado em 1.
[00132] Caso contrário, a informação de movimento da Lista 0 é primeiro escalonada para a imagem parada de referência da Lista 1, e a média dos dois MVs (uma é da Lista 1 original e a outra é a MV escalada da Lista 0) é adicionada à lista de fusão, que é a média de uni-predição do candidato de movimento da Lista 1 e numCurrMergeCand aumentado em 1.
[00133] Poda total é aplicada.
[00134] Se numCurrMergeCand for menor que 5, candidatos de vetor de movimento zero são adicionados.
2.2.3.2. PROCESSO DE PONDERAÇÃO ADAPTATIVA
[00135] Depois de predizer cada unidade de predição triangular, um processo de ponderação adaptativa é aplicado à borda diagonal entre as duas unidades de predição triangulares para derivar a predição final para todo a CU. Dois grupos de fatores de ponderação são definidos da seguinte maneira: 1º grupo de fator de ponderação: {7/8, 6/8, 4/8, 2/8, 1/8} e {7/8, 4/8, 1/8} são usados para as amostras de luminância e crominância, respectivamente; 2º grupo de fator de ponderação: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} e {6/8, 4/8, 2/8} são usados para as amostras de luminância e crominância, respectivamente.
[00136] O grupo de fator de ponderação é selecionado com base na comparação dos vetores de movimento de duas unidades de predição triangulares. O segundo grupo de fator de ponderação é usado quando as imagens de referência das duas unidades de predição triangulares são diferentes uma da outra ou sua diferença de vetor de movimento é maior do que 16 pixels. Caso contrário, o primeiro grupo de fatores de ponderação é usado. Um exemplo é mostrado na Figura 15.
2.2.3.3. ARMAZENAMENTO DE VETOR DE MOVIMENTO
28 / 101
[00137] Os vetores de movimento (Mv1 e Mv2 na Figura 16) das unidades de predição triangular são armazenados em grades 4x4. Para cada grade 4x4, o vetor de movimento uni-predição ou bi-predição é armazenado dependendo da posição da grade 4x4 no UC. Conforme mostrado na Figura 16, o vetor de movimento uni-predição, Mv1 ou Mv2, é armazenado para a grade 4x4 localizada na área não ponderada (isto é, não localizada na borda diagonal). Por outro lado, um vetor de movimento de bi-predição é armazenado para a grade 4x4 localizada na área ponderada. O vetor de movimento bi-predição é derivado de Mv1 e Mv2 de acordo com as seguintes regras: No caso em que Mv1 e Mv2 têm vetor de movimento de diferentes direções (L0 ou L1), Mv1 e Mv2 são simplesmente combinados para formar o vetor de movimento de bi-predição.
[00138] No caso em que ambos Mv1 e Mv2 são da mesma direção L0 (ou LI).
[00139] Se a imagem de referência de Mv2 for a mesma que uma imagem na lista de imagens de referência LI (ou L0), Mv2 é dimensionado para a imagem. Mv1 e o Mv2 dimensionado são combinados para formar o vetor de movimento de bi-predição.
[00140] Se a imagem de referência de Mv1 for a mesma que uma imagem na lista de imagens de referência L1 (ou L0), Mv1 é dimensionado para a imagem. Os Mv1 e Mv2 escalados são combinados para formar o vetor de movimento de bi-predição.
[00141] Caso contrário, apenas Mv1 é armazenado para a área ponderada.
2.2.3.4. SINALIZAÇÃO DE MODO DE PREDIÇÃO TRIANGULAR (TPM)
[00142] Um sinalizador de bit para indicar se o TPM é usado pode ser sinalizado em primeiro lugar. Posteriormente, as indicações de dois padrões
29 / 101 de divisão (conforme ilustrado na Figura 13) e os índices de fusão selecionados para cada uma das duas partições são ainda sinalizados.
2.2.3.4.1 SINALIZAÇÃO DE SINALIZADOR TPM
[00143] Denota-se a largura e a altura de um bloco de luma por W e H, respectivamente. Se W*H < 64, modo de predição triangular está desabilitado.
[00144] Quando um bloco é codificado com modo afim, o modo de predição triangular também é desabilitado.
[00145] Quando um bloco é codificado com modo de fusão, um sinalizador de bit pode ser sinalizado para indicar se o modo de predição triangular está habilitado ou desabilitado para o bloco.
[00146] O sinalizador é codificado com 3 contextos, com base na seguinte equação: índice Ctx = ((bloco esquerdo L disponível && L é codificado com TPM?) 1: 0) + ((Acima do bloco A disponível && A é codificado com TPM?) 1: 0);
2.2.3.4.2. SINALIZAÇÃO DE UMA INDICAÇÃO DE DOIS PADRÕES DE DIVISÃO (CONFORME ILUSTRADO NA FIGURA 13) E ÍNDICES DE
FUSÃO SELECIONADOS PARA CADA UMA DAS DUAS PARTIÇÕES
[00147] Observa-se que os padrões de divisão e os índices de fusão de duas partições são codificados em conjunto. É restrito que as duas partições não possam usar o mesmo índice de referência. Portanto, existem 2 (padrões de divisão) * N (número máximo de candidatos de fusão) * (N-1) possibilidades em que N é et a 5. Uma indicação é codificada e o mapeamento entre o tipo de partição, dois índices de fusão são derivados da matriz definida abaixo: const uint8_t g_TriangleCombination[TRIANGLE_MAX_l\IUM_CANDS] [3] = {
30 / 101 {0, 1, 0}, {1, 0, 1}, {1, 0, 2}, {0, 0, 1}, {0, 2, 0}, {1, 0, 3}, {1, 0, 4}, {1, 1, 0}, {0, 3, 0}, {0, 4, 0}, {0, 0, 2}, {0, 1, 2}, {1, 1, 2}, {0, 0, 4}, {0, 0, 3}, {0, 1, 3}, {0, 1, 4}, {1, 1, 4}, {1, 1, 3}, {1, 2, 1}, {1, 2, 0}, {0, 2, 1}, {0, 4, 3}, {1, 3, 0}, {1, 3, 2}, {1, 3, 4}, {1, 4, 0}, {1, 3, 1}, {1, 2, 3}, {1, 4, 1}, {0, 4, 1}, {0, 2, 3}, {1, 4, 2}, {0, 3, 2}, {1, 4, 3}, {0, 3, 1}, {0, 2, 4}, {1, 2, 4}, {0, 4, 2}, {0, 3, 4} }; tipo de partição (45 graus ou 135 graus) = g_TriangleCombination[indicação sinalizada] [0]; índice de fusão de candidato A = g_TriangleCombination[indicação sinalizada][1]; índice de fusão de candidato B = g_TriangleCombination[indicação sinalizada] [2]; uma vez que os dois candidatos de movimento A e B são derivados, as informações de movimento das duas partições (PU1 e PU2) podem ser definidas a partir de A ou B. Se PU1 usa a informação de movimento do candidato de fusão A ou B depende das direções de predição dos dois candidatos à moção. A Tabela 1 mostra a relação entre dois candidatos de movimento derivados A e B, com as duas partições. Tabela 1: derivação de informações de movimento das partições a partir de dois candidatos de fusão derivados (A,B) Direção de predição de Direção de predição de Movimento de PU1 Movimento de PU2 A B informações informações L0 L0 A(L0) B (L0) LI LI B (LI) A (LI) L0 LI A(L0) B (LI) LI L0 B (L0) A (LI)
2.2.3.4.3. CODIFICAÇÃO DE ENTROPIA DA INDICAÇÃO (DENOTADA POR TRIÂNGULO DE FUSÃO IDX)
[00148] mergetriangleidx está dentro da faixa [0, 39], inclusive. O código Exponential Golomb (EG) de ordem K é usado para binarização do
31 / 101 triângulo de fusão idx, em que K é definido como 1. EG de ordem K
[00149] Para codificar números maiores em menos bits (à custa de usar mais bits para codificar 5 números menores), isso pode ser generalizado com o uso de um parâmetro inteiro não negativo A; Para codificar um número inteiro não negativo x em um código exp-Golomb de ordem-k: codificar [x/2k] com o uso de código exp-Golomb de ordem 0 descrito acima, então codificar x mod 2k em binário Tabela 2: Exemplos de codificação de Exp-Golomb-k X k=0 k=1 k=2 X k=0 k=1 k=2 0 1 10 100 10 0001011 001100 01110 1 010 11 101 11 0001100 001101 01111 2 011 0100 110 12 0001101 001110 0010000 3 00100 0101 111 13 0001110 001111 0010001 4 00101 0110 01000 14 0001111 00010000 0010010 5 00110 0111 01001 15 000010000 00010001 0010011 6 00111 001000 01010 16 000010001 00010010 0010100 7 0001000 001001 01011 17 000010010 00010011 0010101 8 0001001 001010 01100 18 000010011 00010100 0010110 9 0001010 001011 01101 19 000010100 00010101 0010111
2.2.4. COMPENSAÇÃO DE MOVIMENTO DE BLOCO SOBREPOSTO
[00150] A Compensação de Movimento de Bloco Sobreposto (OBMC) foi usada anteriormente em H.263. No JEM, ao contrário do H.263, o OBMC pode ser ativado e desativado com o uso da sintaxe no nível de CU. Quando OBMC é usado no JEM, o OBMC é executado para todos os limites do bloco 15 de compensação de movimento (MC), exceto os limites direito e inferior de um CU. Além disso, é aplicado para os componentes luma e croma. No JEM, um bloco MC corresponde a um bloco de codificação. Quando uma UC é codificada com o modo sub-CU (inclui fusão sub-CU, modo afim e FRUC), cada sub-bloco da UC é um bloco MC. Para processar limites de CU de uma forma uniforme, OBMC é realizado no nível de sub-bloco para todos os limites de bloco MC, em que o tamanho do sub-bloco é definido igual a 4x4, conforme ilustrado na Figura 18.
[00151] Quando OBMC se aplica ao sub-bloco atual, além dos vetores
32 / 101 de movimento atuais, os vetores de movimento de quatro sub-blocos vizinhos conectados, se disponíveis e não são idênticos ao vetor de movimento atual, também são usados para derivar o bloco de predição para o sub-bloco atual. Esses vários blocos de predição com base em vários vetores de movimento são combinados para gerar o sinal de predição final do sub-bloco atual.
[00152] O bloco de predição com base em vetores de movimento de um sub-bloco vizinho é denotado como PN, em que N indica um índice para os sub-blocos vizinhos acima, abaixo, à esquerda e à direita e o bloco de predição com base em vetores de movimento do sub-bloco atual é denotado como Pc. Quando PN é baseado nas informações de movimento de um sub- bloco vizinho que contém as mesmas informações de movimento para o sub- bloco atual, o OBMC não é executado de PN. Caso contrário, cada amostra de PN é adicionada à mesma amostra em Pc, isto é, quatro linhas/colunas de PN são adicionadas a Pc. Os fatores de ponderação {1/4, 1/8, 1/16, 1/32} são usados para PN e os fatores de ponderação {3/4, 7/8, 15/16, 31/32} são usados para Pc. A exceção são pequenos blocos MC, (isto é, quando a altura ou largura do bloco de codificação é igual a 4 ou um CU é codificado com o modo sub-CU), para os quais apenas duas linhas/colunas de PN são adicionadas a Pc. Nesse caso, os fatores de ponderação {1/4, 1/8} são usados para PN e os fatores de ponderação {3/4, 7/8} são usados para Pc. Para PN gerado com base em vetores de movimento de sub-bloco vizinho verticalmente (horizontalmente), as amostras na mesma linha (coluna) de PN são adicionadas a Pc com o mesmo fator de ponderação.
[00153] No JEM, para um CU com tamanho menor ou igual a 256 amostras de luma, um sinalizador de nível de CU é sinalizado para indicar se OBMC é aplicado ou não para a CU atual. Para os CUs com tamanho maior que 256 amostras de luma ou não codificadas com o modo AMVP, OBMC é aplicado por padrão. No codificador, quando o OBMC é aplicado para um CU, seu impacto é levado em consideração durante o estágio de estimativa de
33 / 101 movimento. O sinal de predição formado por OBMC com o uso de informações de movimento do bloco vizinho superior e do bloco vizinho esquerdo é usado para compensar os limites superior e esquerdo do sinal original da CU atual e, em seguida, o processo de estimativa de movimento normal é aplicado.
2.2.5. COMPENSAÇÃO DE ILUMINAÇÃO LOCAL
[00154] A compensação de iluminação local (LIC) é baseada em um modelo linear para mudanças de iluminação, com o uso de um fator de escala a e um deslocamento b. E é habilitado ou desabilitado adaptativamente para cada unidade de codificação intermodal (CU).
[00155] Quando o LIC se aplica a uma CU, um método de erro quadrático mínimo é empregado para derivar os parâmetros a e b usando as amostras vizinhas da CU atual e suas amostras de referência correspondentes. Mais especificamente, como ilustrado na Figura 19, as amostras vizinhas subamostradas (subamostragem 2:1) da CU e as amostras correspondentes (identificadas pela informação de movimento da CU ou sub-CU atual) na imagem parada de referência são usadas. Os parâmetros IC são derivados e aplicados para cada direção de predição separadamente.
[00156] Quando uma CU é codificada com modo de fusão, o sinalizador LIC é copiado dos blocos vizinhos, de maneira semelhante à cópia de informações de movimento no modo de fusão; caso contrário, um sinalizador LIC é sinalizado para a CU para indicar se o LIC se aplica ou não.
[00157] Quando o LIC é habilitado para uma imagem parada, é necessária uma verificação RD de nível de CU adicional para determinar se o LIC é aplicado ou não para uma CU. Quando o LIC está habilitado para uma CU, a soma média removida da diferença absoluta (MR-SAD) e a soma média removida da diferença absoluta transformada por Hadamard (MR- SATD) são usados, em vez de SAD e SATD, para pesquisa de movimento pel inteiro e busca de movimento pel fracionário, respectivamente.
34 / 101
[00158] Para reduzir a complexidade da codificação, o seguinte esquema de codificação é aplicado no JEM.
[00159] O LIC é desativado para a imagem inteira quando não há nenhuma mudança de iluminação óbvia entre a imagem parada atual e suas imagens parada de referência. Para identificar essa situação, os histogramas de uma imagem atual e cada imagem parada de referência da imagem parada atual são calculados no codificador. Se a diferença do histograma entre a imagem parada atual e cada imagem parada de referência da imagem parada atual for menor do que um determinado limite, o LIC será desabilitado para a imagem atual; caso contrário, o LIC é ativado para a imagem parada atual.
2.2.6. PREVISÃO DE COMPENSAÇÃO DE MOVIMENTO AFIM
[00160] No HEVC, apenas o modelo de movimento de translação é aplicado para predição de compensação de movimento (MCP). Enquanto no mundo real, existem muitos tipos de movimento, por exemplo, zoom in/out, rotação, movimentos de perspectiva e outros movimentos irregulares. No JEM, uma predição simplificada de compensação de movimento de transformação afim é aplicada. Conforme mostrado na Figura 20, o campo de movimento afim do bloco é descrito por dois vetores de movimento de ponto de controle.
[00161] O campo de vetor de movimento (MVF) de um bloco é descrito pela seguinte equação:
[00162] Para afins de 6 parâmetros, em que (v0x, v0y) é vetor de movimento do ponto de controle do
35 / 101 canto superior esquerdo, e (v1x, v1y) é vetor de movimento do ponto de controle do canto superior direito e (v2x, v2y) é vetor de movimento do ponto de controle do canto inferior esquerdo, (x, y) representa a coordenada de um ponto representativo em relação à amostra superior esquerda no bloco atual. No VTM, o ponto representativo é definido como a posição central de um sub-bloco, por exemplo, quando a coordenada do canto superior esquerdo de um sub-bloco em relação à amostra superior esquerda dentro do bloco atual é (xs, ys), a coordenada do ponto representativo é definida como (xs+2, ys+2).
[00163] A fim de simplificar ainda mais a predição de compensação de movimento, a predição de transformação afim baseada em sub-bloco é aplicada. O tamanho do sub-bloco M x N é derivado como na Equação 2, em que MvPre é a precisão da fração do vetor de movimento (1/16 em JEM), (v2x, v2y) é o vetor de movimento do ponto de controle inferior esquerdo, calculado de acordo com Equação 1.
[00164] Depois de derivados pela Equação 2, M e N devem ser ajustados para baixo, se necessário, para torná-los um divisor de w e h, respectivamente.
[00165] Para derivar o vetor de movimento de cada sub-bloco MxN, o vetor de movimento da amostra central de cada sub-bloco, como mostrado na Figura 21, é calculado de acordo com a Equação 1 e arredondado para a precisão de fração de 1/16. Em seguida, os filtros de interpolação de compensação de movimento mencionados em outro lugar neste documento são aplicados para gerar a predição de cada sub-bloco com vetor de movimento derivado.
[00166] Após o MCP, o vetor de movimento de alta precisão de cada
36 / 101 sub-bloco é arredondado e salvo com a mesma precisão do vetor de movimento normal.
2.2.6.1. MODO AF_INTER
[00167] No JEM, existem dois modos de movimento afim: modo AF_INTER e modo AF_MERGE. Para UCs com largura e altura maiores que 8, o modo AF_INTER pode ser aplicado. Um sinalizador afim no nível CU é sinalizado no fluxo de bits para indicar se o modo AF_INTER é usado. Nesse modo, um par de vetores de movimento de lista de candidatos {(v0, v1)|v0 = {vA,vB, vC] = {vD vE}} é construído com o uso dos blocos vizinhos. Conforme mostrado na Figura 23, v0 é selecionado dentre os vetores de movimento do bloco A, B ou C. O vetor de movimento do bloco vizinho é escalonado de acordo com a lista de referência e a relação entre o POC da referência para o bloco vizinho, o POC da referência para a CU atual e o POC da CU atual. E a abordagem para selecionar v1 do bloco vizinho D e E é similar. Se o número da lista de candidatos for menor que 2, a lista será preenchida pelo par de vetores de movimento composto pela duplicação de cada um dos candidatos AMVP. Quando a lista de candidatos é maior que 2, os candidatos são primeiro classificados de acordo com a consistência dos vetores de movimento vizinhos (similaridade dos dois vetores de movimento em um candidato de par) e apenas os dois primeiros candidatos são mantidos. Uma verificação de custo RD é usada para determinar qual par de vetor de movimento candidato é selecionado como a predição de vetor de movimento de ponto de controle (CPMVP) da CU atual. E um índice indicando a posição do CPMVP na lista de candidatos é sinalizado no fluxo de bits. Após o CPMVP da CU afim atual ser determinado, a estimativa de movimento afim é aplicada e o vetor de movimento do ponto de controle (CPMV) é verificado. Então, a diferença do CPMV e do CPMVP é sinalizada no fluxo de bits.
[00168] No modo AF_INTER, quando o modo afim de 4/6 parâmetros é usado, 2/3 pontos de controle são necessários e, portanto, 2/3 MVD
37 / 101 precisam ser codificados para esses pontos de controle, conforme mostrado na Figura 22. É proposto derivar o MV como segue, isto é, mvd1 e mvd2 são previstos a partir de mvd0.
[00169] Em que mvi, mvdi e mv1 são o vetor de movimento previsto, a diferença do vetor de movimento e o vetor de movimento do pixel superior esquerdo (i = 0), pixel superior direito (i = 1) ou pixel inferior esquerdo (i = 2) respectivamente, como mostrado na Figura 22 (b). Observe que a adição de dois vetores de movimento (por exemplo, mvA (xA, yA) e mvB (xB, yB)) é igual à soma de dois componentes separadamente, ou seja, newMV = mvA + mvB e os dois componentes de newMV é definido como (xA + xB) e (yA + yB), respectivamente.
2.2.6.2. MODO AF_MERGE
[00170] Quando uma CU é aplicada no modo AF_MERGE, isso obtém o primeiro bloco codificado com modo afim dos blocos reconstruídos vizinhos válidos. E a ordem de seleção para o bloco candidato é da esquerda, acima, acima da direita, da esquerda inferior para acima da esquerda, conforme mostrado na Figura 24 a. Se o bloco inferior esquerdo vizinho A é codificado no modo afim, conforme mostrado na Figura 24 b, os vetores de movimento v2, v3 e v4 do canto superior esquerdo, acima do canto direito e do canto inferior esquerdo da CU que contém o bloco A são derivados. E o vetor de movimento v0 do canto superior esquerdo na UC atual é calculado de acordo com v2, v3 e v4. Em segundo lugar, o vetor de movimento v4 da direita acima da CU atual é calculado.
[00171] Depois que o CPMV da CU atual v0 e v4 são derivados, de acordo com o modelo de movimento afim simplificado Equação 1, o MVF da CU atual é gerado. A fim de identificar se a CU atual está codificado com o
38 / 101 modo AF_MERGE, um sinalizador afim é sinalizado no fluxo de bits quando há pelo menos um bloco vizinho codificado no modo afim.
[00172] Uma lista de candidatos de fusão afim é construída com as seguintes etapas: inserir candidatos afins herdados candidato afim herdado significa que o candidato é derivado do modelo de movimento afim de seu bloco vizinho codificado afim válido. Na base comum, conforme mostrado na Figura 25, a ordem de varredura para as posições candidatas é: A1, B1, B0, A0 e B2.
[00173] Depois que um candidato é derivado, o processo de poda completa é executado para verificar se o mesmo candidato foi inserido na lista. Se existir um mesmo candidato, o candidato derivado será descartado. Insira candidatos afins construídos
[00174] Se o número de candidatos na lista de candidatos de fusão afim for menor que MaxNumAffineCand (definido como 5 nessa contribuição), os candidatos afins construídos são inseridos na lista de candidatos. Candidato afim construído significa que o candidato é construído combinando as informações de movimento vizinho de cada ponto de controle.
[00175] A informação de movimento para os pontos de controle é derivada em primeiro lugar dos vizinhos espaciais especificados e vizinhos temporais mostrados na Figura 25. CPk (k=l, 2, 3,4) representa o k-ésimo ponto de controle. A0, A1, A2, B0, B1, B2 e B3 são posições espaciais para predizer CPk (k = l, 2, 3); T é a posição temporal para predizer CP4.
[00176] As coordenadas de CP1, CP2, CP3 e CP4 são (0, 0), (W, 0), (H, 0) e (W, H), respectivamente, em que W e H são a largura e a altura do bloco atual.
[00177] As informações de movimento de cada ponto de controle são obtidas de acordo com a seguinte ordem de prioridade: para CP1, a prioridade de verificação é B2->B3->A2. B2 é
39 / 101 usado se estiver disponível. Caso contrário, se B2 estiver disponível, B3 será usado. Se B2 e B3 não estiverem disponíveis, A2 é usado. Se todos os três candidatos não estiverem disponíveis, as informações de movimento do CP1 não podem ser obtidas.
[00178] Para CP2, a prioridade de verificação é Bl-> B0.
[00179] Para CP3, a prioridade de verificação é Al-> A0.
[00180] Para CP4, T é usado.
[00181] Em segundo lugar, as combinações de pontos de controle são usadas para construir um candidato de fusão afim.
[00182] Informações de movimento de três pontos de controle são necessárias para construir um candidato afim de 6 parâmetros. Os três pontos de controle podem ser selecionados dentre uma das seguintes quatro combinações ({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}). Combinações {CP1, CP2,CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4} serão convertidas em um modelo de movimento de 6 parâmetros representado por pontos de controle superior esquerdo, superior direito e inferior esquerdo.
[00183] Informações de movimento de dois pontos de controle são necessárias para construir um candidato afim de 4 parâmetros. Os dois pontos de controle podem ser selecionados dentre uma das seguintes seis combinações ({CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4}). Combinações {CP1, CP4}, {CP2, CP3}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4} serão convertidas em um modelo de movimento de 4 parâmetros representado por pontos de controle superior esquerdo e superior direito.
[00184] As combinações de candidatos afins construídos são inseridas na lista de candidatos na seguinte ordem: {CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}, {CP2, CP3}, {CP1, CP4},
40 / 101 {CP2, CP4}, {CP3, CP4}
[00185] Para a lista de referência X (em que X é 0 ou 1) de uma combinação, o índice de referência com a razão de uso mais alta nos pontos de controle é selecionado como o índice de referência da lista X e os vetores de movimento apontam para a imagem parada de referência de diferença serão escalados.
[00186] Depois que um candidato é derivado, o processo de poda completa é executado para verificar se o mesmo candidato foi inserido na lista. Se existir um mesmo candidato, o candidato derivado será descartado. Preenchimento com zero vetores de movimento
[00187] Se o número de candidatos na lista de candidatos de fusão afim for inferior a 5, vetores de movimento zero com índices de referência zero são inseridos na lista de candidatos, até que a lista esteja cheia.
2.2.7. FLUXO ÓPTICO BIDIRECIONAL
[00188] O fluxo óptico bidirecional (BIO) é um refinamento de movimento em forma de amostra que é realizado na parte superior da compensação de movimento em bloco para bi-predição. O refinamento de movimento de nível de amostra não usa sinalização. (k)
[00189] Seja I o valor luma da referência k (k = 0, 1) após a compensação do movimento do bloco, e são os componentes (k) horizontal e vertical do gradiente I , respectivamente. Assumindo que o fluxo óptico é válido, o campo do vetor de movimento (v x, v y) é dado por uma equação
[00190] Combinar essa 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 exclusivo que corresponde aos valores de função I (k) e derivados nas extremidades. O valor desse polinômio em t = 0 é a predição BIO:
41 / 101
[00191] Aqui, τ0 e τ1 denotam as distâncias para os quadros de referência, conforme mostrado na Figura 26. Distâncias τ0 e τ1 são calculadas com base em POC para Ref0 e Ref1: τ0=POC (atual) -POC (Ref0), τ1= POC (Ref1) -POC (atual). Se ambas as previsões vierem da mesma direção de tempo (tanto do passado ou do futuro), então os sinais são diferentes (isto é, τ0·τ1<0). Nesse caso, BIO é aplicada apenas se a predição não for do mesmo momento (isto é, τ0≠τ1), ambas as regiões referenciadas têm movimento diferente de zero (MVx0, MVy0, MVx1, MVy 1≠0) e os vetores de movimento de bloco são proporcionais à distância no tempo (MVx 0/MVx 1=MVy 0/MVy 1=-τ0/τ1).
[00192] O campo de vetor de movimento (v x, v y) é determinado minimizando a diferença Δ entre os valores nos pontos A e B (intersecção da trajetória do movimento e planos do referencial na Figura 9). O modelo usa apenas o primeiro termo linear de uma expansão local de Taylor para Δ:
[00193] Todos os valores na Equação 5 dependem da localização da amostra (i′, j′), que foi omitida da notação até agora. Assumindo que o movimento é consistente na área circundante local, minimizamos Δ dentro da janela quadrada (2M+1) × (2M+1) Ω centrada no ponto atualmente previsto (i, j), em que M é igual a 2:
[00194] Para esse problema de otimização, o JEM usa uma abordagem simplificada fazendo primeiro uma minimização na direção vertical e depois na direção horizontal. Isso resulta em em que,
42 / 101
[00195] Para evitar a divisão por zero ou por um valor muito pequeno, os parâmetros de regularização r e m são introduzidos nas Equações 7 e 8. r=500·4d-8 (10) m=700·4d-8 (11)
[00196] Aqui d é a profundidade de bits das amostras de vídeo.
[00197] A fim de manter o acesso à memória para BIO o mesmo que para compensação de movimento bi-preditivo regular, todos os valores de predição e gradientes, I (k), são calculados apenas para posições dentro do bloco atual. Na Equação 9, (2M+1) × (2M+1) janela quadrada Ω centrada no ponto atualmente previsto em um limite do bloco previsto precisa acessar posições fora do bloco (como mostrado na Figura 27 (a)). No JEM, os valores de I (k), fora do bloco são definidos para serem iguais ao valor disponível mais próximo dentro do bloco. Por exemplo, isso pode ser implementado como preenchimento, conforme mostrado na Figura 27 (b).
[00198] Com BIO, é possível que o campo de movimento possa ser refinado para cada amostra. Para reduzir a complexidade computacional, um design baseado em blocos de BIO é usado no JEM. O refinamento do movimento é calculado com base no bloco 4×4. No BIO baseado em bloco, os valores de s n na Equação 9 de todas as amostras em um bloco 4×4 são agregados e, em seguida, os valores agregados de s n in são usados para derivar os vetores de movimento BIO para o bloco 4×4. Mais especificamente, a seguinte fórmula é usada para derivação BIO baseada em bloco:
43 / 101 em que bk denota o conjunto de amostras pertencentes ao k- ésimo bloco 4x4 do bloco previsto. sn nas Equações 7 e 8 são substituídos por ((sn, bk) >> 4) para derivar os deslocamentos do vetor de movimento associados.
[00199] Em alguns casos, o regimento MV de BIO pode não ser confiável devido ao ruído ou movimento irregular. Portanto, em BIO, a magnitude do regimento MV é reduzida a um valor limite thBIO. O valor limite é determinado com base em se as imagens parada de referência da imagem parada atual são todas de uma direção. Se todas as imagens parada de referência da imagem atual forem de uma direção, o valor do limite é definido como 12 x 214-d; caso contrário, é definido como 12 x 213-d.
[00200] Os gradientes para BIO são calculados ao mesmo tempo com interpolação de compensação de movimento com o uso de operações consistentes com o processo de compensação de movimento HEVC (FIR separável 2D). A entrada para esse FIR separável 2D é a mesma amostra do quadro de referência do processo de compensação de movimento e posição fracionária (fracX, fracY) de acordo com a parte fracionária do vetor de movimento do bloco. No caso de sinal de gradiente horizontal dl/dx primeiro interpolado verticalmente com o uso de BlOfilterS correspondente à posição fracionária fracY com deslocamento de desescalonamento <7-8, então o filtro de gradiente BIOfilterG é aplicado na direção horizontal correspondente à posição fracionária fracX com deslocamento de desescalonamento por 18-J. No caso de gradiente vertical di/dy, o primeiro filtro de gradiente é aplicado verticalmente com o uso de BIOfilterG correspondente à posição fracionária fracY com deslocamento de desescalonamento d~8, então o deslocamento do
44 / 101 sinal é realizado com o uso de BlOfilterS na direção horizontal correspondente à posição fracionária fracX com deslocamento de desescalonamento por 18-d. O comprimento do filtro de interpolação para cálculo de 5 gradientes BIOfilterG e deslocamento de sinal BIOfilterF é mais curto (6-tap) a fim de manter uma complexidade razoável. A Tabela 3 mostra os filtros usados para o cálculo de gradientes para diferentes posições fracionárias do vetor de movimento do bloco em BIO. A Tabela 4 mostra os filtros de interpolação usados para geração de sinal de predição em BIO. Tabela 1: Filtros para cálculo de gradientes em BIO Posição pel fracionária Filtro de interpolação para gradiente (BIOfilterG) 0 { 8, -39, -3, 46, -17, 5} 1/16 { 8, -32, -13, 50, -18, 5} 1/8 { 7, -27, -20, 54, -19, 5} 3/16 { 6, -21, -29, 57, -18, 5} 1/4 { 4, -17, -36, 60, -15, 4} 5/16 { 3, -9, -44, 61, -15, 4} 3/8 { 1,-4, -48, 61, -13, 3} 7/16 { 0, 1, -54, 60, -9, 2} 1/2 { -1, 4, -57, 57, -4, 1} Tabela 2: Filtros de interpolação para geração de sinal de predição em BIO Posição pel fracionária Filtro de interpolação para sinal de predição (BIOfilterS) 0 { 0, 0, 64, 0, 0, 0} 1/16 { 1,-3, 64, 4, -2, 0} 1/8 { 1, -6, 62, 9, -3, 1} 3/16 { 2, -8, 60, 14, -5, 1} 1/4 { 2, -9, 57, 19, -7, 2} 5/16 { 3, -10, 53, 24, -8, 2} 3/8 { 3,-11, 50, 29, -9, 2} 7/16 { 3, -11, 44, 35, -10, 3} 1/2 { 3, -10, 35, 44, -11, 3}
[00201] No JEM, BIO é aplicado a todos os blocos de bi-predição quando as duas predições são de imagens parada de referência diferentes. Quando o LIC é habilitado para uma CU, BIO é desabilitado.
[00202] No JEM, OBMC é aplicado para um bloqueio após o processo normal de MC. Para reduzir a complexidade 5 computacional, BIO não é aplicado durante o processo OBMC. Isso significa que o BIO só é aplicado no processo MC para um bloco ao usar seu próprio MV e não é aplicado no processo MC quando o MV de um bloco vizinho é usado durante o processo OBMC.
45 / 101
2.2.8. REFINAMENTO DO VETOR DE MOVIMENTO DO LADO DO
DECODIFICADOR
[00203] Na operação de bi-predição, para a predição de uma região de bloco, dois blocos de predição, 10 formados com o uso de um vetor de movimento (MV) da lista O e um MV da lista 1, respectivamente, são combinados para formar um único sinal de predição. No método de refinamento de vetor de movimento do lado do decodificador (DMVR), os dois vetores de movimento da bi-predição são ainda refinados por um processo de correspondência de modelo bilateral. A correspondência de modelo bilateral aplicada no decodificador para realizar uma pesquisa baseada em distorção entre um modelo bilateral e as amostras de reconstrução nas imagens parada de referência para obter um MV refinado sem transmissão de informações de movimento adicionais.
[00204] No DMVR, um modelo bilateral é gerado como a combinação ponderada (isto é, média) dos dois blocos de predição, a partir do MV0 inicial de lista0 e MV1 de lista1, respectivamente, como mostrado na Figura 28. A operação de correspondência de modelo consiste em calcular medidas de custo entre o modelo gerado e a região da amostra (em torno do bloco de predição inicial) na imagem de referência. Para cada uma das duas imagens de referência, o MV que produz o custo mínimo do modelo é considerado como o MV atualizado dessa lista para substituir o original. No JEM, nove candidatos MV são pesquisados para cada lista. Os nove candidatos MV incluem o MV original e 8 MVs circundantes com um deslocamento de amostra de luma para o MV original na direção horizontal ou vertical, ou ambas. Finalmente, os dois novos MVs, isto é, MV0’ e MV1’, conforme mostrado na Figura 28, são usados para gerar os resultados finais de bi- predição. Uma soma das diferenças absolutas (SAD) é usada como medida de custo. Observe que, ao calcular o custo de um bloco de predição gerado por um MV circundante, o MV arredondado (para inteiro pel) é realmente usado
46 / 101 para obter o bloco de predição em vez do MV real.
[00205] O DMVR é aplicado para o modo de fusão de bi-predição com um MV de uma imagem parada de referência no passado e outro de uma imagem parada de referência no futuro, sem a transmissão de elementos de sintaxe adicionais. No JEM, quando LIC, movimento afim, FRUC ou candidato de fusão sub-CU é habilitado para uma CU, DMVR não é aplicado.
[00206] A predição de vetor de movimento com base em LUT com base na tecnologia descrita, que pode aprimorar os padrões de codificação de vídeo existentes e futuros, é elucidada nos exemplos a seguir descritos para várias implementações. Como os LUTs permitem que o processo de codificação/decodificação seja realizado com base em dados históricos (por exemplo, os blocos que foram processados), a predição de vetor de movimento baseada em LUT também pode ser referida como método de predição de vetor de movimento baseado em histórico (HMVP). No método de predição de vetor de movimento baseado em LUT, uma ou múltiplas tabelas com informações de movimento de blocos previamente codificados são mantidas durante o processo de codificação/decodificação. Esses candidatos de movimento armazenados nos LUTs são chamados de candidatos HMVP. Durante a codificação/decodificação de um bloco, as informações de movimento associadas em LUTs podem ser adicionadas às listas de candidatos de movimento (por exemplo, listas de candidatos de fusão/AMVP) e após a codificação/decodificação de um bloco, os LUTs podem ser atualizados. Os LUTs atualizados são então usados para codificar os blocos subsequentes. Ou seja, a atualização dos candidatos a movimento nas LUTs é baseada na ordem de codificação/decodificação dos blocos. Os exemplos abaixo devem ser considerados exemplos para explicar os conceitos gerais. Esses exemplos não devem ser interpretados de forma restrita. Além disso, esses exemplos podem ser combinados de qualquer maneira.
3. EXEMPLOS DE PROBLEMAS RESOLVIDOS POR MODALIDADES
47 / 101
[00207] No projeto da partição triangular, um bloco pode ser dividido em duas partições. Para economizar largura de banda de memória devido à compensação de movimento, é necessário que as duas partições não sejam previsíveis. Durante o processo de compensação de movimento, bi-predição é usada para a borda diagonal e uni-predição é usada para todas as outras partes. Se a bi-predição for permitida para cada partição, as amostras localizadas na borda diagonal terão quatro MVs com dois deles de uma partição e dois deles de outra partição. Esse projeto tem os seguintes problemas: apenas blocos espaciais vizinhos e blocos temporais são verificados no processo de construção da lista de fusão.
[00208] A tecnologia de predição de vetor de movimento baseada em histórico não é permitida para partição triangular.
[00209] Como lidar com o modo de partição triangular com o modo de cópia intrabloco é desconhecido.
4. EXEMPLOS DE MODALIDADES
[00210] As técnicas propostas podem ser aplicadas a qualquer uma das partições não quadradas/não retangulares, por exemplo, partições de geometria. Nas descrições a seguir, usamos o “modo de partição triangular” para representar um como um exemplo do modo de partição não quadrado/não retangular (TPM). Deve-se observar que outros tipos de partições também podem ser aplicáveis.
[00211] As técnicas detalhadas abaixo devem ser consideradas como exemplos para explicar os conceitos gerais. Essas técnicas não devem ser interpretadas de forma restrita. Além disso, essas invenções podem ser combinadas de qualquer maneira. Denotar um tamanho de bloco como WxH.
[00212] 1. Em vez de sempre aplicar o modo de predição triangular com o modo de fusão, é proposto habilitar o modo de predição triangular para blocos intracodificados ou blocos intercodificados sem fusão
48 / 101 a. Em um exemplo, as duas partições são previstas com diferentes modos de intrapredição.
[00213] b. Alternativamente, além disso, os valores de predição de amostras ao longo dos limites da borda podem ser filtrados posteriormente.
[00214] c. Em um exemplo, as informações de movimento (como MV) das duas partições triangulares não podem prever uma à outra; i. Alternativamente, as informações de movimento (como MV) de uma partição triangular podem ser usadas para prever a outra partição.
[00215] 2. É proposto que quando um bloco é dividido em duas partições de geometria, uma partição pode ser codificada com modo intra e a outra pode ser codificada com modo inter.
[00216] a. Em um exemplo, para a partição intercodificada, a bi- predição pode ser também aplicada.
[00217] b. Em um exemplo, tal método pode ser sinalizado quando o bloco atual é codificado com modo de fusão, isto é, para a partição intercodificada, informações de movimento sinalizadas com um índice de fusão.
[00218] c. Alternativamente, além disso, os valores de predição de amostras ao longo dos limites da borda podem ser filtrados posteriormente.
[00219] d. Em um exemplo, apenas um subconjunto de modos de intrapredição pode ser aplicado.
[00220] i. Os subconjuntos podem ser diferentes para as duas partições.
[00221] ii. Os subconjuntos podem ser dependentes da posição de uma partição.
[00222] iii. Os subconjuntos podem ser dependentes do tamanho do bloco e/ou formato do bloco.
[00223] 3. Conforme descrito no Bullet 1 e Bullet 2, o bloco intercodificado de fusão ou sem fusão pode usar a imagem parada atual como a imagem parada de referência.
49 / 101
[00224] 4. É proposto que ao codificar um bloco com modo de partição triangular, a informação inter/intracodificada de blocos espaciais não adjacentes também pode ser tratada como preditora para a codificação do bloco atual.
[00225] a. Em um exemplo, as informações de movimento de blocos espaciais não adjacentes podem ser utilizadas.
[00226] b. Em um exemplo, o modo de intrapredição de blocos espaciais não adjacentes pode ser utilizado.
[00227] c. Alternativamente, a informação codificada de blocos temporais pode ser ainda utilizada para codificar um bloco com TPM.
[00228] 5. É proposto adicionar candidatos de movimento derivados de candidatos HMVP no processo de construção de lista de fusão para blocos codificados por TPM, em que um candidato HMVP (predição de vetor de movimento baseada em histórico) é a informação de movimento herdada ou derivada de blocos previamente codificados.
MANUTENÇÃO DE TABELA PARA ARMAZENAMENTO CANDIDATO HMVP
[00229] a. A manutenção de candidatos HMVP e/ou atualização de tabelas para armazenamento e/ou candidatos HMVP pode ser igual ao HMVP para vetor de movimento normal..
[00230] b. Em um exemplo, a mesma tabela pode ser mantida para o armazenamento de candidatos HMVP que pode ser utilizado para blocos não codificados por TPM e blocos codificados por TPM.
[00231] i. Em um exemplo, as informações de movimento usadas pelo TPM não são colocadas no armazenamento HMVP. A(s) tabela(s) HMVP não é (são) atualizada(s) após a codificação/decodificação de um bloco codificado por TPM.
[00232] c. Em um exemplo, tabelas separadas podem ser mantidas para armazenar os candidatos HMVP para a codificação de blocos codificados por
50 / 101 TPM.
[00233] i. As tabelas podem ser mantidas para armazenamento de candidatos HMVP com informações de movimento puramente de blocos codificados por TPM.
[00234] ii. Duas tabelas podem ser mantidas para armazenar candidatos HMVP de uni e bi-predições, respectivamente.
[00235] iii. Duas tabelas podem ser mantidas para armazenar informações de movimento da primeira e segunda partições, respectivamente.
[00236] iv. Duas tabelas podem ser mantidas para armazenar informações de movimento da Lista 0 e Lista 1 de informações de movimento, respectivamente.
[00237] v. Alternativamente, três tabelas podem ser mantidas para armazenar candidatos de uni-predição da Lista 0, de uni- predição de LI e de bi-predição HMVP, respectivamente.
[00238] d. Após a codificação com o bloco codificado TPM, as tabelas para armazenamento de candidatos HMVP podem não ser atualizadas.
[00239] i. Alternativamente, uma/múltiplas tabelas para armazenamento de candidatos HMVP podem ser atualizadas com as informações de movimento da primeira partição.
[00240] ii. Alternativamente, uma/múltiplas tabelas para armazenamento de candidatos HMVP podem ser atualizadas com as informações de movimento da segunda partição.
[00241] iii. Alternativamente, uma/múltiplas tabelas para armazenamento de candidatos HMVP podem ser atualizadas com as informações de movimento de ambas as partições, adicionando dois candidatos HMVP
[00242] iv. Alternativamente, uma/múltiplas tabelas para armazenamento de candidatos HMVP podem ser atualizadas com as informações de movimento de ambas as partições, adicionando um candidato
51 / 101 HMVP (por exemplo, quando as duas partições são previstas a partir de duas listas de imagens de referência).
[00243] v. A adição de um ou dois candidatos a movimento à tabela HMVP pode depender de se as duas partições são previstas a partir das mesmas listas de imagens de referência e/ou da mesma imagem de referência.
[00244] vi. A adição de informações de movimento da primeira partição ou da segunda partição à tabela HMVP pode depender da diferença de POC entre as imagens parada de referência e a imagem parada atual.
[00245] e. Quando tabelas separadas são mantidas para a codificação de blocos TPM e não codificados por TPM, a atualização das tabelas pode ser chamada com base no modo de um bloco.
[00246] i. Em um exemplo, após decodificar um bloco codificado por TPM, as informações de movimento podem ser usadas para atualizar a tabela para a codificação de blocos codificados por TPM.
[00247] ii. i. Em um exemplo, após decodificar um bloco não codificado por TPM, as informações de movimento podem ser usadas para atualizar a tabela para a codificação de blocos não codificados por TPM.
[00248] iii. Alternativamente, ademais, após decodificar um bloco não codificado por TPM, as informações de movimento podem ser usadas para atualizar a tabela para a codificação de blocos codificados por TPM.
USO DE CANDIDATOS HMVP EM BLOCOS CODIFICADOS POR TPM
[00249] f. Um candidato HMVP pode ser adicionado diretamente à lista de fusão para blocos codificados por TPM.
[00250] i. Alternativamente, um candidato HMVP pode ser utilizado para derivar dois candidatos de movimento, por exemplo, um é uni-predição com informação de movimento da Lista 0 e o outro é uni-predição com informação de movimento da Lista 1 do candidato HMVP.
[00251] ii. A poda pode ser aplicada ao inserir um candidato a movimento derivado/herdado de um candidato HMVP com outros candidatos
52 / 101 a movimento derivados/herdados de blocos espaciais ou temporais.
[00252] iii. A poda pode ser aplicada ao inserir um candidato a movimento derivado/herdado de um candidato HMVP com um candidato a movimento derivado/herdado de outro candidato HMVP.
[00253] iv. A poda pode ser aplicada ao inserir um candidato a movimento derivado/herdado de um candidato HMVP com um outro candidato de movimento derivado/herdado do mesmo candidato HMVP.
[00254] g. Em um exemplo, um ou vários candidatos de movimento derivados de um ou vários candidatos de HMVP podem ser adicionados após os candidatos de movimento derivados de blocos espaciais e/ou temporais, como o bloco 1-7 na Figura 14. Nesse caso, o candidato HMVP é tratado da mesma maneira que os outros candidatos de fusão espacial/temporal.
[00255] h. Candidatos de movimento herdados/derivados de candidatos HMVP podem ser adicionados à lista de fusão logo após ou antes de uma etapa específica no processo de construção de lista de fusão que depende de informações de movimento de blocos espaciais/temporais.
[00256] i. Alternativamente, os candidatos de movimento herdados/derivados de candidatos HMVP podem ser adicionados à lista de fusão logo após ou antes de várias etapas predefinidas.
[00257] ii. Em um exemplo, um ou vários candidatos HMVP com uni- predição podem ser adicionados logo após todos os candidatos originalmente de uni-predição com o projeto atual.
[00258] iii. Em um exemplo, um ou vários candidatos HMVP com uni- predição de L0 ou bi-predição podem ser adicionados logo após todos os candidatos Truncados ListO preditos. Alternativamente, além disso, se um candidato HMVP estiver com bi-predição, apenas as informações de movimento da Lista 0 podem ser mantidas.
[00259] iv. Em um exemplo, um ou vários candidatos HMVP com uni- predição de L1 ou bi-predição podem ser adicionados logo após todos os
53 / 101 candidatos Truncados List1 preditos. Alternativamente, além disso, se um candidato HMVP estiver com bi-predição, apenas as informações de movimento da Lista 1 podem ser mantidas.
[00260] v. Em um exemplo, um ou vários candidatos HMVP podem ser adicionados logo após todos os candidatos de movimento uni-predição da Lista 0 ou Lista 1.
[00261] vi. Em um exemplo, um ou vários candidatos HMVP podem ser adicionados logo antes todos os candidatos de movimento uni-predição da Lista 0 ou Lista 1.
[00262] i. Os candidatos de movimento herdados/derivados de candidatos HMVP podem ser adicionados à lista de fusão em uma forma intercalada com candidatos de movimento herdados/derivados de informações de movimento de blocos espaciais/temporais.
[00263] j. Em um exemplo, os candidatos de movimento derivados da Lista 0 e Lista 1 de cada candidato HMVP podem ser adicionados em ordem antes dos candidatos de movimento derivados da Lista 0 e Lista 1 de outro candidato HMVP.
[00264] k. Em um exemplo, os candidatos de movimento derivados da Lista 0 de um primeiro conjunto de candidatos HMVP podem ser adicionados em ordem antes daqueles derivados da Lista 1 de um segundo conjunto de candidatos HMVP.
[00265] i. Em um exemplo, o primeiro conjunto e o segundo conjunto são o mesmo conjunto, isto é, todos os candidatos HMVP disponíveis.
[00266] ii. Alternativamente, o primeiro conjunto e o segundo conjunto podem ser diferentes, como o primeiro conjunto de candidatos HMVP incluem candidatos HMVP com uni-predição da Lista 0 e bi-predição; enquanto o segundo conjunto de candidatos HMVP inclui candidatos HMVP com uni-predição da Lista 1 e bi-predição.
[00267] iii. O número de candidatos HMVP associados ao primeiro e
54 / 101 ao segundo conjuntos pode ser diferente.
[00268] l. Os candidatos HMVP da lista LX podem ser primeiro escalados para a lista L (1 -X) e então usados para a lista L (l-X).
[00269] i. Os candidatos escalados podem ser inseridos após todos os outros candidatos.
[00270] ii. Os candidatos escalados podem ser inseridos após todos os outros candidatos, exceto os candidatos temporais.
[00271] m. A ordem de verificação dos candidatos HMVP a serem usados para derivar os candidatos de moção a serem adicionados à lista de fusão do TPM pode depender dos índices dos candidatos HMVP.
[00272] i. Alternativamente, pode ser dependente das direções de predição.
[00273] ii. Alternativamente, pode ser dependente das informações de movimento.
[00274] 6. Quantos HMVP a serem verificados no processo de construção da lista de fusão do TPM podem ser predefinidos, por exemplo, 5.
[00275] a. O número de candidatos HMVP a serem verificados no processo de construção da lista de fusão do TPM pode depender do tamanho/formato do bloco/quantos candidatos estão disponíveis antes de verificar os candidatos HMVP.
[00276] b. O número de candidatos HMVP a serem verificados no processo de construção da lista de fusão TPM pode ser sinalizado em SPS/VPS/PPS/cabeçalho de imagem/cabeçalho de fatia/cabeçalho de grupo de bloco/linhas CTU/CTU/grupo de CTUs.
[00277] c. Quando parte dos candidatos HMVP disponíveis devem ser verificados no processo de construção da lista de fusão TPM, a seleção de candidatos HMVP pode depender da direção de predição/informações MV/índice de imagem parada de referência/distâncias POC da imagem parada de referência e imagem parada atual de um candidato e/ou índice de
55 / 101 candidatos.
[00278] 7. Se aplicar e como aplicar HMVP em um bloco codificado por TPM pode depender do tamanho do bloco (por exemplo, largura e/ou altura, proporção de largura e altura) ou formato do bloco (por exemplo, quadrado ou não quadrado).
[00279] 8. Os métodos propostos também podem ser aplicáveis a outros tipos de listas de candidatos de movimento (como lista AMVP) para partições de geometria.
[00280] 9. O tamanho da tabela HMVP (isto é, o número máximo de candidatos de movimento de histórico pode ser armazenado) pode depender de uma função de um ou vários tamanhos de lista de candidatos de movimento.
[00281] a. Em um exemplo, o tamanho da tabela HMVP pode depender do tamanho da lista de fusão regular, o tamanho da lista de fusão TPM, o tamanho da lista de fusão IBC, o tamanho da lista inter AMVP regular, o tamanho da lista inter IBC regular, etc. al.
[00282] b. Em um exemplo, o tamanho da tabela HMVP pode depender dessas listas de candidatos de movimento que acessam a mesma tabela HMVP.
[00283] c. Em um exemplo, a função pode ser a função Max (entradas) que retorna o valor máximo entre várias entradas.
[00284] d. Em um exemplo, o tamanho da tabela HMVP pode ser definido como Max (tamanho da lista de fusão regular Menos K0, tamanho da lista de fusão TPM Menos KI, tamanho da lista de fusão IBC Menos K2).
[00285] i. Em um exemplo, KO=K1=K2 = 1.
[00286] 10. O tamanho da tabela HMVP (isto é, o número máximo de candidatos de movimento de histórico pode ser armazenado) pode depender de uma função de um ou vários números de candidatos HMVP (denotados por numHMVP) que podem ser adicionados às listas de candidatos de
56 / 101 movimento.
[00287] a. Em um exemplo, pode depender do número de candidatos HMVP que podem ser adicionados às listas de candidatos de moção (por exemplo, a lista de fusão regular, a lista de fusão TPM, a lista de fusão IBC, a lista inter AMVP regular, a lista inter IBC regular lista etc. al).
[00288] b. Em um exemplo, a função pode ser a função Max (entradas) que retorna o valor máximo entre várias entradas.
[00289] c. Em um exemplo, o tamanho da tabela HMVP pode ser definido como Máx (numHMVP para lista de fusão regular Menos K0, numHMVP para lista AMVP regular Menos KI).
[00290] ii. Em um exemplo, K0=l e Kl=0.
[00291] d. Em um exemplo, o tamanho da tabela HMVP pode ser definido como Max (numHMVP para lista de fusão regular Menos K0, numHMVP para lista de fusão TPM Menos KI, numHMVP para tamanho da lista de fusão IBC Menos K2).
[00292] iii. Em um exemplo KO=K1=K2 = 1.
[00293] 11. O tamanho da tabela HMVP para um modo de codificação pode ser diferente de outro modo de codificação e pode ser dependente do tamanho da lista de candidatos de movimento.
[00294] a. Em um exemplo, o tamanho da tabela HMVP para as listas de fusão regular e TPM pode ser dependente do tamanho da lista de fusão regular.
[00295] iv. Em um exemplo, o tamanho da tabela HMVP pode ser igual ao tamanho da lista de fusão regular menos K0, por exemplo, K0 = 1.
[00296] b. Em um exemplo, o tamanho da tabela HMVP para as listas de fusão regular e TPM pode ser dependente do tamanho da lista de fusão regular e do tamanho da lista de fusão TPM.
[00297] v. Em um exemplo, pode ser definido como Máx (tamanho da lista de fusão regular Menos K0, tamanho da lista de fusão TPM Menos KI).
57 / 101
[00298] vi. Em um exemplo, a tabela HVMP para o inter-AMVP normal segue aquela usada para as listas de fusão regular e TPM.
[00299] c. Em um exemplo, o tamanho da tabela HMVP para os blocos codificados por IBC depende daquele para a lista de fusão regular e/ou lista de fusão TPM.
[00300] vii. Por exemplo, o tamanho da tabela HMVP para os blocos codificados por IBC é igual ao da lista de fusão regular e/ou lista de fusão TPM.
[00301] viii. Alternativamente, o tamanho da tabela HMVP para os blocos de fusão/AVMP codificados por IBC pode depender do tamanho da fusão IBC/lista de candidatos AMVP.
[00302] d. As indicações dos tamanhos da tabela HMVP podem ser sinalizadas no fluxo de bits.
[00303] ix. Quando o tamanho sinalizado é igual a 0, os candidatos HMVP não são inseridos em nenhuma lista de candidatos de movimento.
[00304] x. Em um exemplo, o tamanho da tabela HMVP não pode ser
0.
[00305] xi. Alternativamente, o tamanho da tabela HMVP menos K0 é sinalizado, por exemplo, K0 = l.
[00306] 12. As indicações do número de candidatos HMVP permitidos que podem ser adicionados às listas de candidatos de movimento podem ser sinalizadas no fluxo de bits.
[00307] a. Em um exemplo, para cada modo (por exemplo, IBC ou não IBC; fusão sem AMVP), uma indicação do número de candidatos HMVP permitidos pode ser sinalizada de forma independente.
[00308] b. Alternativamente, as indicações de números de candidatos HMVP permitidos podem ser sinalizadas de uma forma preditiva.
[00309] c. Alternativamente, além disso, os tamanhos da tabela HMVP podem depender do número permitido de candidatos HMVP.
58 / 101
[00310] d. Por exemplo, o número de candidatos HMVP permitidos que podem ser adicionados às listas de candidatos de moção não pode ser 0.
[00311] e. Alternativamente, o número de candidatos HMVP permitidos que podem ser adicionados às listas de candidatos de movimento menos K0 podem ser sinalizados, por exemplo, K0 = l.
[00312] f. Alternativamente, a codificação preditiva do número de candidatos HMVP permitidos que podem ser adicionados a uma lista de candidatos de movimento (denotado por numHMVP) e o número de candidatos de movimento máximo na lista de candidatos de movimento (denotado por numMotionList) pode ser aplicada.
[00313] xii. Em um exemplo, a diferença entre numMotionList e numHMVP pode ser codificada.
[00314] xiii. Em um exemplo, a diferença entre (numMotionList-KO) e numHMVP pode ser codificada, por exemplo, K0 = 1.
[00315] 13. O número de candidatos HMVP permitidos que podem ser adicionados às listas de candidatos de movimento pode depender dos tamanhos da lista de candidatos de movimento.
[00316] a. Em um exemplo, pode ser derivado do tamanho da lista de candidatos de movimento correspondente, como (tamanho da lista - K0), por exemplo, K0 = 0 ou 1.
[00317] b. Em um exemplo, pode ser derivado do tamanho da tabela HMVP correspondente que é usada pela lista de candidatos de movimento, como (tamanho da tabela - K0), por exemplo, K0 = 0 ou 1.
[00318] 14. Um fluxo de bits de conformidade deve satisfazer que o número de candidatos HMVP permitidos que podem ser adicionados a uma lista de candidatos de movimento não é maior do que o número máximo de candidatos de movimento na lista de candidatos de movimento.
[00319] a. Alternativamente, um fluxo de bits de conformidade deve satisfazer que o número de candidatos HMVP permitidos que podem ser
59 / 101 adicionados a uma lista de candidatos de movimento não é maior que (o número de candidatos de movimento máximo na lista de candidatos de movimento menos K0), por exemplo, K0 = l.
[00320] A Figura 29 é um diagrama de bloco de um aparelho de processamento de vídeo 2900. O aparelho 2900 pode ser usado para implantar um ou mais dos métodos aqui descritos. O aparelho 2900 pode ser incorporado em um smartphone, tablet, computador, receptor da Internet das Coisas (IoT) e assim em diante. O aparelho 2900 pode incluir um ou mais processadores 2902, uma ou mais memórias 2904 e hardware de processamento de vídeo 2906. O(s) processador (es) 2902 pode(m) ser configurado(s) para implantar um ou mais métodos descritos no presente documento. A memória (memórias) 2904 pode ser usada para armazenar dados e códigos usados para implantar os métodos e técnicas aqui descritas. O hardware de processamento de vídeo 2906 pode ser usado para implantar, em conjunto de circuitos de hardware, algumas técnicas descritas no presente documento.
[00321] A Figura 31 é um fluxograma para um método 3100 de processamento de um vídeo. O método 3100 inclui realizar uma determinação (3105) que um primeiro bloco de vídeo é intracodificado ou intercodificado sem fusão, determinar (3110) uma primeira porção de predição e uma segunda porção de predição para o primeiro bloco de vídeo com base na determinação de que o primeiro bloco de vídeo é intracodificado ou intercodificado sem fusão, em que uma ou ambas dentre a primeira porção de predição ou a segunda porção de predição são porções não retangulares e não quadradas do primeiro bloco de vídeo, e realizar (3115) processamento adicional do primeiro bloco de vídeo com o uso da primeira porção de predição e da segunda porção de predição.
[00322] A Figura 32 é um fluxograma para um método 3200 de processamento de um vídeo. O método 3200 inclui realizar uma determinação
60 / 101 (3205) que um primeiro bloco de vídeo é intracodificado ou intercodificado sem fusão, determinar (3210) uma primeira porção de predição e uma segunda porção de predição para o primeiro bloco de vídeo, em que uma ou ambas dentre a primeira porção de predição ou a segunda porção de predição são porções não retangulares ou não quadradas do primeiro bloco de vídeo, e realizar (3215) processamento adicional do primeiro bloco de vídeo com o uso da primeira porção de predição e da segunda porção de predição, em que pelo menos uma porção de predição é intercodificada com fusão ou sem fusão com o uso de uma imagem atual como uma imagem de referência.
[00323] A Figura 33 é um fluxograma para um método 3300 de processamento de um vídeo. O método 3300 inclui realizar uma determinação (3305) que um primeiro bloco de vídeo é intracodificado ou intercodificado sem fusão, determinar (3310) uma primeira porção de predição e uma segunda porção de predição para o primeiro bloco de vídeo, em que uma ou ambas dentre a primeira porção de predição ou a segunda porção de predição são porções não retangulares ou não quadradas do primeiro bloco de vídeo, e realizar (3315) processamento adicional do primeiro bloco de vídeo com o uso da primeira porção de predição e da segunda porção de predição, em que a realização do processamento adicional do primeiro bloco de vídeo com o uso da primeira porção de predição e da segunda porção de predição é baseada em informações inter ou intracodificadas de blocos espaciais não adjacentes em relação ao primeiro bloco de vídeo.
[00324] A Figura 34 é um fluxograma para um método 3400 de processamento de um vídeo. O método 3400 inclui realizar uma determinação (3405) que um primeiro bloco de vídeo é codificado com modo de porção triangular (TPM) com o uso de uma porção de predição triangular do primeiro bloco de vídeo e que um segundo bloco de vídeo é codificado com o uso de não TPM com o uso de uma porção de predição não triangular do segundo bloco de vídeo, realizar (3410) processamento adicional do primeiro bloco de
61 / 101 vídeo e do segundo bloco de vídeo com o uso de candidatos HMVP armazenados, e armazenar (3415) candidatos HMVP associados ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[00325] A Figura 35 é um fluxograma para um método 3500 de processamento de um vídeo. O método 3500 inclui realizar uma determinação (3505) que um primeiro bloco de vídeo inclui porções de predição que são porções não retangulares e não quadradas do primeiro bloco de vídeo, identificar (3510) um candidato HMVP, adicionar (3515) um ou mais candidatos de movimento derivados do candidato HMVP a uma lista de fusão associada a blocos de vídeo que incluem porções de predição que são não retangulares e não quadrados, e realizar (3 520) processamento adicional do primeiro bloco de vídeo com o uso da lista de fusão.
[00326] Com referência aos métodos 3100, 3200, 3300, 3400, e 3500, alguns exemplos de determinação de um candidato para codificar e seu uso são descritos na Seção 4 do presente documento. Por exemplo, conforme descrito na Seção 4, os blocos de vídeo podem ser processados com o uso de porções de predição que não são quadradas e não retangulares.
[00327] Com referência aos métodos 3100, 3200, 3300, 3400 e 3500, um bloco de vídeo pode ser codificado no fluxo de bits de vídeo em que a eficiência de bits pode ser alcançada com o uso de uma regra de geração de fluxo de bits relacionada à previsão de informações de movimento.
[00328] Os métodos podem incluir determinar informações de imagem da primeira porção de predição com o uso de um primeiro modo de intrapredição; e determinar as informações de imagem da segunda porção de predição com o uso de um segundo modo de intrapredição, em que o primeiro modo de intrapredição é diferente do segundo modo de intrapredição.
[00329] Os métodos podem incluir filtrar valores de predição relacionados à primeira porção de predição e à segunda porção de predição ao longo de um limite de borda entre a primeira porção de predição e a segunda
62 / 101 porção de predição.
[00330] Os métodos podem incluir determinar, pelo processador, primeiras informações de movimento da primeira porção de predição; e determinar, pelo processador, segundas informações de movimento da segunda porção de predição, em que as primeiras informações de movimento são determinadas sem o uso das segundas informações de movimento, e as segundas informações de movimento são determinadas sem o uso das primeiras informações de movimento.
[00331] Os métodos podem incluir determinar, pelo processador, primeiras informações de movimento da primeira porção de predição; e determinar, pelo processador, segundas informações de movimento da segunda porção de predição, em que as segundas informações de movimento são determinadas usando as primeiras informações de movimento.
[00332] Os métodos podem incluir processar a primeira porção de predição com codificação de modo intra; e processar a segunda porção de predição com codificação de modo inter.
[00333] Os métodos podem incluir processar a segunda porção de predição que inclui aplicar bi-predição.
[00334] Os métodos podem incluir processar a segunda porção de predição que inclui determinar informações de movimento sinalizadas com um índice de fusão.
[00335] Os métodos podem incluir filtrar valores de predição relacionados à primeira porção de predição e à segunda porção de predição ao longo de um limite de borda entre a primeira porção de predição e a segunda porção de predição.
[00336] Os métodos podem incluir um subconjunto de codificação de modo intra que é usado.
[00337] Os métodos podem incluir a primeira porção de predição e a segunda porção de predição que são associadas a diferentes subconjuntos de
63 / 101 codificação de modo intra.
[00338] Os métodos podem incluir a primeira porção de predição e a segunda porção de predição que são associadas a diferentes subconjuntos de codificação de modo intra com base em posições da primeira porção de predição e da segunda porção de predição.
[00339] Os métodos podem incluir a primeira porção de predição e a segunda porção de predição são associadas a diferentes subconjuntos de codificação de modo intra com base em um ou mais dentre: tamanho do primeiro bloco de vídeo, ou formato do primeiro bloco de vídeo.
[00340] Os métodos podem incluir as informações inter ou intracodificadas de blocos de vídeo espaciais não adjacentes que incluem informações de movimento dos blocos de vídeo espaciais não adjacentes.
[00341] Os métodos podem incluir um modo intrapredição dos blocos de vídeo espaciais não adjacentes que é usado.
[00342] Os métodos podem incluir informações codificadas de blocos temporais que são usadas.
[00343] Os métodos podem incluir adicionar candidatos de predição de vetor de movimento baseada em histórico (HMVP) em uma lista de candidato de predição de vetor de movimento, em que os candidatos HMVP incluem informações de movimento baseadas em blocos de vídeo anteriormente codificados; e decodificar o primeiro bloco de vídeo com base nos candidatos HMVP.
[00344] Os métodos podem incluir em que os candidatos HMVP são armazenados em uma tabela, e em que informações de movimento usadas por TPM não são armazenadas na tabela.
[00345] Os métodos podem incluir a tabela que não é atualizada após codificar ou decodificar o primeiro bloco de vídeo com o uso de TPM.
[00346] Os métodos podem incluir os candidatos HMVP que são armazenados em uma primeira tabela e uma segunda tabela, em que a
64 / 101 primeira tabela armazena candidatos HMVP para TPM e a segunda tabela armazena candidatos HMVP para não TPM.
[00347] Os métodos podem incluir em que uma dentre a primeira tabela ou a segunda tabela armazena candidatos HMVP de uni- predição, e a outra armazena candidatos HMVP de bi- predição.
[00348] Os métodos podem incluir uma dentre a primeira tabela ou a segunda tabela que armazena informações de movimento da primeira porção de partição, e a outra que armazena informações de movimento da segunda porção de partição.
[00349] Os métodos podem incluir uma dentre a primeira tabela ou a segunda tabela que armazena informações de movimento da Lista 0, e a outra que armazena informações de movimento da Lista 1.
[00350] Os métodos podem incluir a primeira tabela armazena candidatos HMVP de uni-predição da Lista 0, a segunda tabela armazena candidatos HMVP de uni-predição da Lista 1, e uma terceira tabela armazena candidatos HMVP de bi-predição.
[00351] Os métodos podem incluir tabelas para armazenamento de candidato HMVP que não são atualizadas com base em uma ou ambas dentre a primeira porção de predição ou a segunda porção de predição que são porções de geometria não retangulares e não quadradas do primeiro bloco de vídeo.
[00352] Os métodos podem incluir atualizar uma ou mais dentre a primeira tabela ou a segunda tabela para armazenamento de candidatos HMVP com informações de movimento da primeira porção de partição.
[00353] Os métodos podem incluir atualizar uma ou mais dentre a primeira tabela ou a segunda tabela para armazenamento de candidatos HMVP com informações de movimento da segunda porção de partição.
[00354] Os métodos podem incluir atualizar um ou mais da primeira tabela ou da segunda tabela para armazenamento de candidatos HMVP com
65 / 101 informações de movimento da primeira porção de partição e informações de movimento da segunda porção de partição.
[00355] Os métodos podem incluir determinar que a primeira porção de partição e a segunda porção de partição são preditas de duas listas de imagem parada de referência; e atualizar uma ou mais tabelas para armazenamento de candidatos HMVP com informações de movimento de um candidato HMVP com base na determinação de que a primeira porção de partição e a segunda porção de partição são preditas de duas listas de imagem parada de referência.
[00356] Os métodos podem incluir determinar que a primeira porção de partição e a segunda porção de partição são preditas com o uso de uma mesma lista de imagem parada de referência ou uma mesma imagem parada de referência, em que as tabelas são atualizadas com base na determinação de que a primeira porção de partição e a segunda porção de partição são preditas com o uso da mesma lista de imagem parada de referência ou da mesma imagem parada de referência.
[00357] Os métodos podem incluir determinar uma diferença de contagem de ordem de imagem (POC) entre uma imagem parada de referência e uma imagem parada atual, em que informações de movimento da primeira porção de partição ou da segunda porção de partição são adicionadas a uma ou mais tabelas com base na diferença de POC.
[00358] Os métodos podem incluir determinar características relacionadas à codificação do primeiro bloco de vídeo; e atualizar um ou ambas dentre a primeira tabela ou a segunda tabela com base nas características relacionadas à codificação do primeiro bloco de vídeo.
[00359] Os métodos podem incluir informações de movimento que são usadas para atualizar uma tabela associada a blocos de vídeo de TPM após a decodificação de um bloco de vídeo de TPM.
[00360] Os métodos podem incluir informações de movimento que são
66 / 101 usadas para atualizar uma tabela associada a blocos de vídeo de não TPM após a decodificação de um bloco de vídeo de não TPM.
[00361] Os métodos podem incluir informações de movimento que são usadas para atualizar uma tabela associada a blocos de vídeo de TPM após a decodificação de um bloco de vídeo de não TPM.
[00362] Os métodos podem incluir determinar um primeiro candidato de movimento e um segundo candidato de movimento do candidato HMVP, em que um dentre o primeiro candidato de fusão ou o segundo candidato de fusão é uni-predição com informações de movimento de Lista 0 do candidato HMVP, e em que o outro é uni-predição com informações de movimento de Lista 1 do candidato HMVP.
[00363] Os métodos podem incluir poda com base em uma inserção de um candidato de movimento derivado do candidato HMVP com outros candidatos de movimento que são baseados em blocos de vídeo espacial ou temporal.
[00364] Os métodos podem incluir poda com base em uma inserção de um candidato de movimento derivado do candidato HMVP com outros candidatos de movimento que são baseados em outros candidatos HMVP.
[00365] Os métodos podem incluir poda com base em uma inserção de um candidato de movimento derivado do candidato HMVP com outros candidatos de movimento que são baseados no candidato HMVP.
[00366] Os métodos podem incluir adicionar os candidatos de movimento derivados do candidato HMVP associado ao primeiro bloco de vídeo a uma lista de fusão após os candidatos de movimento derivados de um ou ambos dentre os blocos de vídeo espacial ou temporal.
[00367] Os métodos podem incluir adicionar um candidato de movimento derivado do candidato HMVP à lista de fusão após ou antes de um processo de construção de lista de fusão com base em informações de movimento de blocos de vídeo espacial ou temporal.
67 / 101
[00368] Os métodos podem incluir adicionar um candidato de movimento derivado do candidato HMVP à lista de fusão após ou antes de uma etapa predefinida.
[00369] Os métodos podem incluir adicionar os candidatos de movimento derivados do candidato HMVP com uni-predição após outros candidatos originalmente de uni-predição.
[00370] Os métodos podem incluir adicionar os candidatos de movimento derivados do candidato HMVP com uni-predição da Lista 0 ou bi- predição após candidatos preditos de Lista 0 truncados.
[00371] Os métodos podem incluir adicionar os candidatos de movimento derivados do candidato HMVP com uni-predição da Lista 1 ou bi- predição após candidatos preditos de Lista 1 truncados.
[00372] Os métodos podem incluir adicionar os candidatos de movimento derivados do candidato HMVP após a média de uni-predição de candidatos de movimento de Lista 0 ou Lista 1.
[00373] Os métodos podem incluir adicionar os candidatos de movimento derivados do candidato HMVP depois da média de uni-predição de candidatos de movimento de Lista 0 ou Lista 1.
[00374] Os métodos podem incluir candidatos de movimento derivados de candidatos HMVP que são adicionados à lista de fusão de acordo com intercalação com candidatos de movimento que são baseados em informações de movimento de blocos de vídeo espacial ou temporal em relação ao primeiro bloco de vídeo.
[00375] Os métodos podem incluir candidatos de movimento derivados da Lista 0 e Lista 1 do candidato HMVP que são adicionados em ordem antes de candidatos de movimento derivados da Lista 0 e Lista 1 de um outro candidato HMVP.
[00376] Os métodos podem incluir aqui candidatos de movimento derivados da Lista 0 de um primeiro conjunto de candidatos HMVP são
68 / 101 adicionados em ordem antes de candidatos de movimento derivados da Lista 1 de um segundo conjunto de candidatos HMVP.
[00377] Os métodos podem incluir o primeiro conjunto e o segundo conjunto que são iguais, em que o primeiro conjunto e o segundo conjunto incluem todos os candidatos HMVP disponíveis.
[00378] Os métodos podem incluir o primeiro conjunto e o segundo conjunto que são diferentes, em que o primeiro conjunto inclui candidatos HMVP com uni-predição da Lista 0 e bi-predição, o segundo conjunto inclui candidatos HMVP com uni-predição da Lista 1 e bi-predição.
[00379] Os métodos podem incluir o primeiro conjunto que inclui um primeiro número de candidatos HMVP, o segundo conjunto inclui um segundo número de candidatos HMVP, o primeiro número e o segundo número sendo diferentes.
[00380] Os métodos podem incluir um candidato de movimento escalonado que pode ser derivado de um candidato HMVP por escalonamento de seu vetor de movimento da lista LX a lista L(1 -X) e o candidato de movimento escalonado é atribuído ao vetor de movimento escalonado e lista L(l-X).
[00381] Os métodos podem incluir os candidatos de movimento escalonados derivados de candidatos HMVP que são inseridos após outros candidatos de movimento derivados de candidatos HMVP.
[00382] Os métodos podem incluir os candidatos de movimento escalonados derivados de candidatos HMVP que são inseridos antes de candidatos temporais.
[00383] Os métodos podem incluir uma ordem de verificação de candidatos HMVP a serem adicionados à lista de fusão que é baseada em índices dos candidatos HMVP.
[00384] Os métodos podem incluir uma ordem de verificação de candidatos HMVP a serem adicionados à lista de fusão que é baseada em
69 / 101 direções de predição.
[00385] Os métodos podem incluir uma ordem de verificação de candidatos HMVP a serem adicionados à lista de fusão que é baseada em informações de movimento.
[00386] Os métodos podem incluir um número de candidatos HMVP a serem verificados em um processo de construção de lista de fusão de TPM que é predefinido.
[00387] Os métodos podem incluir um número de candidatos HMVP a serem verificados em um processo de construção de lista de fusão de TPM que é baseado em um tamanho de bloco do primeiro bloco de vídeo, um formato de bloco do primeiro bloco de vídeo ou uma série de candidatos disponíveis antes de verificar HMVP candidatos.
[00388] Os métodos podem incluir um número de candidatos HMVP a serem verificados em um processo de construção de lista de fusão de TPM que é sinalizado em um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de imagem parada (PPS), um cabeçalho de imagem parada, um cabeçalho de grupo de blocos, um cabeçalho de fatia, um grupo de linhas de unidades de árvore de codificação (CTUs), uma CTU ou um grupo de CTUs.
[00389] Os métodos podem incluir a seleção dos candidatos HMVP que é baseada em uma direção de predição, uma informação de vetor de movimento (MV), um índice de imagem parada de referência, distâncias POC de imagem parada de referência e imagem parada atual de um ou ambos dentre: um candidato, ou um índice de candidatos.
[00390] Os métodos podem incluir a aplicação de HMVP em associação ao primeiro bloco de vídeo que é baseada em um tamanho de bloco do primeiro bloco de vídeo ou em um formato de bloco do primeiro bloco de vídeo.
[00391] Os métodos podem incluir as porções não retangulares e não
70 / 101 quadradas que são triangulares.
[00392] Será reconhecido que as técnicas descritas podem ser incorporadas em codificadores ou decodificadores de vídeo para melhorar a eficiência de compressão quando as unidades de codificação sendo comprimidas têm formatos que são significativamente diferentes dos blocos tradicionais de formato quadrado ou blocos retangulares que são de formato meio quadrado. Por exemplo, novas ferramentas de codificação que usam unidades de codificação longas ou altas, como unidades de tamanho 4x32 ou 32x4, podem se beneficiar das técnicas descritas.
[00393] A Figura 36 é um fluxograma para um método 3600 de processamento de um vídeo. O método 3600 inclui determinar (3605), durante uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, múltiplas subporções para o bloco atual; determinar (3610) informações de intrapredição das múltiplas subporções; e realizar (3615) realizar a conversão do bloco atual usando as informações de intrapredição das múltiplas subporções; e em que o bloco atual é intracodificado, e pelo menos uma das múltiplas subporções é uma subporção não retangular e não quadrada. Deve- se notar que a subporção pode ser equivalente à porção de previsão acima.
[00394] Em algumas implementações, modificações adicionais podem ser realizadas no método 3600. Por exemplo, a determinação de informações de intrapredição das múltiplas subporções compreende: determinar as primeiras informações de intrapredição de uma primeira subporção nas múltiplas subporções com o uso de um primeiro modo intrapredição; determinar as segundas informações de intrapredição de uma segunda subporção nas múltiplas subporções com o uso de um segundo modo intrapredição; em que o primeiro modo intrapredição é diferente do segundo modo intrapredição. As primeiras informações de intrapredição são determinadas por meio do uso de um primeiro subconjunto de modos
71 / 101 intrapredição, e as segundas informações de intrapredição são determinadas por meio do uso do segundo subconjunto de modos intrapredição; em que o primeiro subconjunto de modos intrapredição é diferente do segundo subconjunto de modos intrapredição. O subconjunto de modos intrapredição é baseado em pelo menos um dentre uma posição, um tamanho e um formato da primeira subporção e/ou segunda subporção. A determinação de informações de intrapredição das múltiplas subporções compreende adicionalmente: filtrar valores de predição de amostras ao longo de um limite de borda da pelo menos uma das múltiplas subporções. As primeiras informações de intrapredição de uma primeira subporção das múltiplas subporções são determinadas sem o uso das segundas informações de intrapredição de uma segunda subporção das múltiplas subporções, e as segundas informações de intrapredição da segunda subporção são determinadas sem o uso das primeiras informações de intrapredição da primeira subporção. As primeiras informações de intrapredição de uma primeira subporção das múltiplas subporções são determinadas com o uso de segundas informações de intrapredição de uma segunda subporção das múltiplas subporções e/ou as segundas informações de intrapredição da segunda subporção são determinadas usando as primeiras informações de intrapredição da primeira subporção.
[00395] A Figura 37 é um fluxograma para um método 3700 de processamento de um vídeo. O método 3700 inclui determinar (3705), durante uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, múltiplas subporções para o bloco atual; determinar (3710) informações de movimento das múltiplas subporções; realizar (3715) a conversão do bloco atual usando as informações de movimento das múltiplas subporções; e em que o bloco atual é intercodificado sem fusão, e pelo menos uma das múltiplas subporções é uma subporção não retangular e não quadrada.
72 / 101
[00396] Em algumas implementações, modificações adicionais podem ser realizadas no método 3700. Por exemplo, a determinação de informações de movimento das múltiplas subporções compreende: determinar as primeiras informações de movimento de uma primeira subporção nas múltiplas subporções com o uso de um primeiro modo intrapredição; determinar as segundas informações de movimento de uma segunda subporção nas múltiplas subporções com o uso de um segundo modo intrapredição. A determinação de intrapredição das múltiplas subporções compreende adicionalmente: filtrar valores de predição de amostras ao longo de um limite de borda da pelo menos uma das múltiplas subporções. As primeiras informações de movimento da primeira subporção são determinadas sem o uso das segundas informações de movimento da segunda subporção, e as segundas informações de movimento da segunda subporção são determinadas sem o uso das primeiras informações de movimento da primeira subporção. As primeiras informações de movimento da primeira subporção são determinadas usando as segundas informações de movimento da segunda predição, e/ou as segundas informações de movimento da segunda subporção são determinadas usando as primeiras informações de movimento da primeira subporção.
[00397] A Figura 38 é um fluxograma para um método 3800 de processamento de um vídeo. O método 3800 inclui realizar (3805) uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, em que o bloco atual é particionado em múltiplas subporções de acordo com um padrão de divisão no qual uma primeira subporção tem um formato 50 não quadrado não retangular; processar (3810) uma primeira subporção com modo de intracodificação; e processar (3815) uma segunda subporção com modo de intercodificação.
[00398] Em algumas implementações, modificações adicionais podem
73 / 101 ser realizadas no método 3800. Por exemplo, a segunda subporção é processada pela aplicação de bi-predição. Sinalizar informações de movimento com um índice de fusão em resposta ao bloco atual sendo codificado com modo de fusão. Determinar informações de movimento da primeira porção de predição com o uso de um subconjunto de modo intrapredição. O subconjunto de modos intrapredição é baseado em pelo menos uma dentre uma posição da primeira porção de predição, um tamanho de uma primeira porção de predição e um formato de uma primeira porção de predição.
[00399] A Figura 39 é um fluxograma para um método 3900 de processamento de um vídeo. O método 3900 inclui realizar (3905) uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, em que o bloco atual é particionado em múltiplas subporções de acordo com um padrão de divisão no qual uma primeira subporção tem um formato não retangular, não quadrado; em que a pelo menos uma das múltiplas subporções é intercodificada com fusão ou sem fusão e usa uma imagem parada atual como uma imagem parada de referência.
[00400] A Figura 40 é um fluxograma para um método 4000 de processamento de um vídeo. O método 4000 inclui realizar (4005) uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, em que o bloco atual é particionado em múltiplas subporções de acordo com um padrão de divisão no qual uma primeira partição de predição tem um formato não quadrado não retangular; e realizar (4010) a conversão com o uso de informações inter ou intracodificadas de um ou mais blocos espaciais não adjacentes.
[00401] Em algumas implementações, modificações adicionais podem ser realizadas no método 4000. Por exemplo, as informações inter ou intracodificadas de um ou mais blocos espaciais não adjacentes compreendem
74 / 101 informações de movimento do um ou mais blocos espaciais não adjacentes. A realização da conversão do bloco atual com o uso de informações inter ou intracodificadas de um ou mais blocos espaciais não adjacentes compreende: realizar a conversão do bloco atual com o uso de modo intrapredição do um ou mais blocos espaciais não adjacentes. Informações codificadas de blocos temporais são usadas.
[00402] A Figura 41 é um fluxograma para um método 4100 de processamento de um vídeo. O método 4100 inclui determinar (4105), durante uma conversão entre um primeiro bloco de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com modo de partição de geometria; determinar (4110) com base em pelo menos uma tabela que armazena candidatos de predição de vetor de movimento baseada em histórico (HMVP) que incluem informações de movimento baseadas em blocos anteriormente codificados, informações de movimento de pelo menos uma subporção do primeiro bloco; realizar (4115) a conversão do primeiro bloco usando as informações de movimento determinadas.
[00403] Em algumas implementações, modificações adicionais podem ser realizadas no método 4100. Por exemplo, o primeiro bloco sendo codificado com modo de partição de geometria compreende: dividir o primeiro bloco em múltiplas subporções; em que pelo menos uma das múltiplas subporções é uma porção não quadrada não retangular. Determinar, durante uma conversão entre um segundo bloco dos dados de mídia visual e a representação codificada correspondente dos dados de mídia visual, informações de movimento do segundo bloco com base na mesma tabela que é usada para o primeiro bloco, e o segundo bloco não está usando o modo de partição de geometria. As informações de movimento usadas pelo primeiro bloco são impedidas de serem armazenadas na pelo menos uma tabela. A pelo menos uma tabela não é atualizada após a conversão do primeiro bloco. A
75 / 101 pelo menos uma tabela inclui múltiplas tabelas mantidas para armazenar os candidatos HMVP para blocos com o modo de partição de geometria.
Para a pelo menos uma tabela, os candidatos HMVP armazenados apenas têm informações de movimento de acordo com aquelas usadas por blocos com o modo de partição de geometria.
A pelo menos uma tabela inclui duas tabelas mantidas para armazenar candidatos HMVP de uni-predição e candidatos HMVP de bi- predição, respectivamente.
A pelo menos uma tabela inclui duas tabelas mantidas para armazenar informações de movimento de uma primeira subporção e uma segunda subporção do primeiro bloco, respectivamente.
A pelo menos uma tabela inclui duas tabelas mantidas para armazenar informações de movimento da Lista 0 e Lista 1, respectivamente.
A pelo menos uma tabela inclui três tabelas mantidas para armazenar candidatos HMVP de uni-predição da Lista 0, candidatos HMVP de uni- predição da Lista 1 e candidatos HMVP de bi-predição, respectivamente.
A pelo menos uma tabela é atualizada com as informações de movimento de parte de subporções do primeiro bloco.
A pelo menos uma tabela é atualizada com as informações de movimento de uma primeira subporção e as informações de movimento de uma segunda subporção, em que a primeira subporção e a segunda subporção são subporções s do primeiro bloco.
A pelo menos uma tabela é atualizada com as informações de movimento de uma primeira subporção e as informações de movimento de uma segunda subporção por meio da adição de um candidato HMVP.
A atualização de pelo menos uma tabela adicionando um ou dois candidatos de movimentos depende de se a primeira subporção e a segunda subporção estão com o uso da mesma lista de imagem parada de referência ou a mesma imagem parada de referência.
A atualização de pelo menos uma tabela por meio da adição de informações de movimento da primeira subporção ou da segunda subporção depende de uma diferença de contagem de ordem de imagem (POC) entre uma imagem parada de referência e uma imagem parada atual.
Após o
76 / 101 processamento do bloco com a porção não retangular e não quadrada, as informações de movimento do bloco com a porção não retangular e não quadrada são usadas para atualizar a tabela mantida para armazenar os candidatos HMVP para bloco com a porção não retangular e não quadrada. Após o processamento do bloco sem a porção não retangular e não quadrada, as informações de movimento do bloco sem a porção não retangular e não quadrada são usadas para atualizar a tabela mantida para armazenar os candidatos HMVP para bloco sem a porção não retangular e não quadrada. Após o processamento do bloco sem a porção não retangular e não quadrada, as informações de movimento do bloco sem a porção não retangular e não quadrada são usadas para atualizar a tabela mantida para armazenar os candidatos de predição de vetor de movimento (HMVP) para bloco sem a porção não retangular e não quadrada. O modo de partição de geometria compreende um modo de particionamento triangular. O método é aplicável a outros tipos de listas de candidatos de movimento.
[00404] A Figura 42 é um fluxograma para um método 4200 de processamento de um vídeo. O método 4200 inclui determinar (4205), durante uma conversão entre um primeiro bloco de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com modo de partição de geometria; determinar (4210) informações de movimento de pelo menos uma subporção do primeiro bloco; realizar (4215) realizar a conversão do primeiro bloco usando as informações de movimento da pelo menos uma subporção; em que determinar informações de movimento de pelo menos uma subporção compreende o uso de pelo menos um candidato de predição de vetor de movimento baseada em histórico (HMVP) que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento e determinar as informações de movimento a partir da lista de candidato de movimento. Em algumas
77 / 101 implementações, modificações adicionais podem ser realizadas no método
4200. Por exemplo, o primeiro bloco sendo codificado com modo de partição de geometria compreende: dividir o primeiro bloco em múltiplas subporções; em que pelo menos uma das múltiplas subporções é uma porção não quadrada não retangular. O pelo menos um candidato HMVP é diretamente adicionado à lista de candidato de movimento. O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: usar um candidato HMVP para determinar um primeiro candidato de movimento e um segundo candidato de movimento, em que um dentre o primeiro candidato de movimento e o segundo candidato de movimento é uni-predição com informações de movimento de Lista 0 do candidato HMVP, e o outro é uni-predição com informações de movimento de Lista 1 do candidato HMVP. Realizar uma poda em resposta à inserção de um candidato de movimento derivado do candidato HMVP com outros candidatos de movimento que são baseados em blocos de vídeo espacial ou temporal. Realizar uma poda em resposta à inserção de um candidato de movimento derivado do candidato de HMVP com outros candidatos de movimento que são baseados em outros candidatos HMVP. Realizar uma poda em resposta à inserção de um candidato de movimento derivado do candidato de HMVP com outros candidatos de movimento que são baseados no candidato HMVP. O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP à lista de candidato de movimento após candidatos de movimento derivados de um ou de ambos blocos espaciais ou temporais. O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de
78 / 101 movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP à lista de candidato de movimento depois ou antes de uma etapa predefinida em um processo de construção de lista de candidato de movimento com base em informações de movimento de blocos espaciais ou temporais.
O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP à lista de candidato de movimento depois ou antes de múltiplas etapas predefinidas em um processo de construção de lista de candidato de movimento com base em informações de movimento de blocos espaciais ou temporais.
O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP com uni-predição à lista de candidato de movimento após todos os candidatos originalmente de uni- predição.
O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP com uni-predição da Lista 0 ou bi-predição à lista de candidato de movimento após candidatos preditos de Lista 0 truncados.
O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP com uni-predição da Lista 1 ou bi-predição à lista de candidato de movimento após candidatos preditos de Lista 1 truncados.
O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato
79 / 101 de movimento compreende: adicionar pelo menos um candidato de movimento derivado do pelo menos um candidato HMVP à lista de candidato de movimento após uni-predição média de candidatos de movimento de Lista 0 ou Lista 1. O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do pelo menos um candidato HMVP à lista de candidato de movimento antes de uni-predição média de candidatos de movimento de Lista 0 ou Lista 1. O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP à lista de candidato de movimento de acordo com intercalação com candidatos de movimento que são baseados em informações de movimento de blocos espaciais ou temporais em relação ao bloco atual.
O candidato de movimento derivado de um candidato HMVP é ajustado igual ao candidato HMVP.
O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado da Lista 0 e Lista 1 do candidato HMVP à lista de candidato de movimento antes de candidatos de movimento derivados da Lista 0 e Lista 1 de um outro candidato HMVP.
O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado da Lista 0 de um primeiro conjunto de candidatos HMVP à lista de candidato de movimento antes dos candidatos de movimento derivados da Lista 1 de um segundo conjunto de candidatos HMVP.
O primeiro conjunto e o segundo conjunto são os mesmos.
80 / 101
O primeiro conjunto e o segundo conjunto são diferentes, e o primeiro conjunto inclui candidatos HMVP com uni-predição da Lista 0 e bi-predição, o segundo conjunto inclui candidatos HMVP com uni-predição da Lista 1 e bi-predição.
O primeiro conjunto inclui um primeiro número de candidatos HMVP, o segundo conjunto inclui um segundo número de candidatos HMVP, e o primeiro número e o segundo número são diferentes.
O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: escalonar os candidatos HMVP da lista LX à lista L(l-X) para gerar os candidatos HMVP escalonados que são usados para a L(l-X). O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar os candidatos HMVP escalonados após outros candidatos de movimento derivados de candidatos HMVP.
O uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar os candidatos HMVP escalonados após outros candidatos de movimento derivados de candidatos HMVP e antes de candidatos temporais.
Uma ordem de verificação de candidatos HMVP a serem adicionados à lista de candidato de movimento é baseada em índices dos candidatos HMVP.
Uma ordem de verificação de candidatos HMVP a serem adicionados à lista de candidato de movimento é baseada em direções de predição.
Uma ordem de verificação de candidatos HMVP a serem adicionados à lista de candidato de movimento é baseada em informações de movimento.
Um número de candidatos HMVP a serem verificados no processo de construção de lista de candidato de movimento é predefinido.
Um número de candidatos HMVP a serem verificados no processo de construção de lista de candidato de movimento é baseado em um tamanho de bloco do bloco atual, um formato de bloco do
81 / 101 bloco atual ou um número de candidatos disponíveis antes de verificar candidatos HMVP. Um número de candidatos HMVP a serem verificados no processo de construção de lista de candidato de movimento é sinalizado em um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de imagem parada (PPS), um cabeçalho de imagem parada, um cabeçalho de grupo de blocos, um cabeçalho de fatia, um grupo de linhas de unidades de árvore de codificação (CTUs), uma CTU ou um grupo de CTUs. Os candidatos HMVP selecionados para serem verificados na lista de candidato de movimento são baseados em pelo menos um dentre uma direção de predição, uma informação de vetor de movimento (MV), um índice de imagem parada de referência, distâncias POC de imagem parada de referência e imagem parada atual de um candidato e um índice de candidato. Uma aplicação de HMVP ao bloco atual é baseada em um tamanho de bloco do bloco atual ou um formato de bloco do bloco atual. A lista de candidato de movimento compreende uma lista de fusão. A lista de candidato de movimento é aplicável a outros tipos de listas de candidato de movimento excluindo a lista de candidato de fusão.
[00405] Alguns recursos preferivelmente implementados por algumas modalidades são agora descritos em formato baseado em cláusula.
[00406] 1. Um método para processar vídeo que compreende: determinar, durante uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, múltiplas subporções para o bloco atual; determinar informações de intrapredição das múltiplas subporções; realizar a conversão do bloco atual usando as informações de intrapredição das múltiplas subporções; e em que o bloco atual é intracodificado, e pelo menos uma das múltiplas subporções é uma subporção não retangular e não quadrada.
82 / 101
[00407] 2. Método da reivindicação 1, em que determinar informações de intrapredição das múltiplas subporções compreende: determinar as primeiras informações de intrapredição de uma primeira subporção nas múltiplas subporções com o uso de um primeiro modo intrapredição; determinar as segundas informações de intrapredição de uma segunda subporção nas múltiplas subporções com o uso de um segundo modo intrapredição; em que o primeiro modo intrapredição é diferente do segundo modo intrapredição.
[00408] 3. O método da reivindicação 2, em que as primeiras informações de intrapredição são determinadas por meio do uso de um primeiro subconjunto de modos intrapredição, e as segundas informações de intrapredição são determinadas por meio do uso de segundo subconjunto de modos intrapredição; em que o primeiro subconjunto de modos intrapredição é diferente do segundo subconjunto de modos intrapredição.
[00409] 4. O método da reivindicação 3, em que o subconjunto de modos intrapredição é baseado em pelo menos um dentre uma posição, um tamanho e um formato da primeira subporção e/ou segunda subporção.
[00410] 5. O método de qualquer uma das reivindicações 1 a 4, em que a determinação das informações de intrapredição das múltiplas subporções compreende adicionalmente: filtrar valores de predição de amostras ao longo de um limite de borda da pelo menos uma das múltiplas subporções.
[00411] 6. O método de qualquer uma das reivindicações 1 a 5, em que as primeiras informações de intrapredição de uma primeira subporção das múltiplas subporções são determinadas sem o uso das segundas informações de intrapredição de uma segunda subporção das múltiplas subporções, e as
83 / 101 segundas informações de intrapredição da segunda subporção são determinadas sem o uso das primeiras informações de intrapredição da primeira subporção.
[00412] 7. O método de qualquer uma das reivindicações 1 a 5, em que as primeiras informações de intrapredição de uma primeira subporção das múltiplas subporções são determinadas com o uso de segundas informações de intrapredição de uma segunda subporção das múltiplas subporções, e as segundas informações de intrapredição da segunda subporção são determinadas usando as primeiras informações de intrapredição da primeira subporção.
[00413] 8. Um método para processar vídeo, compreendendo: determinar, durante uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, múltiplas subporções para o bloco atual; determinar informações de movimento das múltiplas subporções; realizar a conversão do bloco atual usando as informações de movimento das múltiplas subporções; e em que o bloco atual é intercodificado sem fusão, e pelo menos uma das múltiplas subporções é uma subporção não retangular e não quadrada.
[00414] 9. O método da reivindicação 8, em que a determinação das informações de movimento das múltiplas subporções compreende: determinar as primeiras informações de movimento de uma primeira subporção nas múltiplas subporções com o uso de um primeiro modo intrapredição; determinar as segundas informações de movimento de uma segunda subporção nas múltiplas subporções com o uso de um segundo modo intrapredição.
84 / 101
[00415] 10. O método de qualquer uma das reivindicações 8 ou 9, em que a determinação da intrapredição das múltiplas subporções compreende adicionalmente: filtrar valores de predição de amostras ao longo de um limite de borda da pelo menos uma das múltiplas subporções.
[00416] 11. O método de qualquer uma das reivindicações 8 ou 9, em que as primeiras informações de movimento da primeira subporção são determinadas sem o uso das segundas informações de movimento da segunda subporção, e as segundas informações de movimento da segunda subporção são determinadas sem o uso das primeiras informações de movimento da primeira subporção.
[00417] 12. O método de qualquer uma das reivindicações 8-9, em que as primeiras informações de movimento da primeira subporção são determinadas usando as segundas informações de movimento da segunda predição e/ou as segundas informações de movimento da segunda subporção são determinadas usando as primeiras informações de movimento da primeira subporção.
[00418] 13. Um método para processar vídeo, compreendendo: realizar uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, em que o bloco atual é particionado em múltiplas subporções de acordo com um padrão de divisão no qual uma primeira subporção tem um formato não retangular, não quadrado; processar uma primeira subporção com modo de intracodificação; e processar uma segunda subporção com modo de intercodificação.
[00419] 14. O método da reivindicação 13, em que a segunda subporção é processada pela aplicação de bi-predição.
85 / 101
[00420] 15. O método de qualquer uma das reivindicações 13 ou 14, compreende adicionalmente: sinalizar informações de movimento com um índice de fusão em resposta ao bloco atual sendo codificado com modo de fusão.
[00421] 16. O método de qualquer uma das reivindicações 13 a 15, compreende adicionalmente: determinar informações de movimento da primeira porção de predição com o uso de um subconjunto de modo intrapredição.
[00422] 17. O método da reivindicação 16, em que o subconjunto de modos intrapredição é baseado em pelo menos um dentre uma posição da primeira porção de predição, um tamanho de uma primeira porção de predição e um formato de uma primeira porção de predição.
[00423] 18. Um método de processamento de vídeo que compreende: realizar uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, em que o bloco atual é particionado em múltiplas subporções de acordo com um padrão de divisão no qual uma primeira subporção tem um formato não retangular, não quadrado; em que a pelo menos uma das múltiplas subporções é intercodificada com fusão ou sem fusão e usa uma imagem parada atual como uma imagem parada de referência.
[00424] 19. Um método de processamento de vídeo que compreende: realizar uma conversão entre um bloco atual de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, em que o bloco atual é particionado em múltiplas subporções de acordo com um padrão de divisão no qual uma primeira partição de predição tem um formato não quadrado não retangular; e realizar a conversão com o uso de informações inter ou intracodificadas de um ou mais blocos espaciais não adjacentes.
86 / 101
[00425] 20. O método da reivindicação 19, em que as informações inter ou intracodificadas de um ou mais blocos espaciais não adjacentes compreendem informações de movimento do um ou mais blocos espaciais não adjacentes.
[00426] 21. O método da reivindicação 19, em que a realização da conversão do bloco atual com o uso de informações inter ou intracodificadas de um ou mais blocos espaciais não adjacentes compreende: realizar a conversão do bloco atual com o uso de modo intrapredição do um ou mais blocos espaciais não adjacentes.
[00427] 22. O método da reivindicação 19, em que as informações codificadas de blocos temporais são usadas.
[00428] 23. Um aparelho de processamento de vídeo que compreende um processador configurado para implantar um método recitado em qualquer uma das reivindicações 1 a 22.
[00429] 24. O aparelho da reivindicação 23, em que o aparelho é um codificador de vídeo.
[00430] 25. O aparelho da reivindicação 23, em que o aparelho é um decodificador de vídeo.
[00431] 26. Uma mídia de recodificação legível por computador no qual um programa que compreende um código é gravado, em que o programa serve para o que o processador execute um método recitado em qualquer uma das reivindicações 1 a 22.
[00432] Alguns recursos preferivelmente implementados por algumas modalidades são agora descritos em formato baseado em cláusula.
[00433] 1. Um método para processar vídeo que compreende: determinar, durante uma conversão entre um primeiro bloco de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com modo de partição de geometria;
87 / 101 determinar, com base em pelo menos uma tabela que armazena candidatos de predição de vetor de movimento baseada em histórico (HMVP) que incluem informações de movimento baseadas em blocos anteriormente codificados, informações de movimento de pelo menos uma subporção do primeiro bloco; realizar a conversão do primeiro bloco usando as informações de movimento determinadas.
[00434] 2. Um método da reivindicação 1, em que o primeiro bloco sendo codificado com modo de partição de geometria compreende: dividir o primeiro bloco em múltiplas subporções; em que pelo menos uma das múltiplas subporções é uma porção não retangular e não quadrada.
[00435] 3. O método da reivindicação 1 que compreende adicionalmente: determinar, durante uma conversão entre um segundo bloco dos dados de mídia visual e a representação codificada correspondente dos dados de mídia visual, informações de movimento do segundo bloco com base na mesma tabela que é usada para o primeiro bloco, e o segundo bloco não está usando o modo de partição de geometria.
[00436] 4. O método de qualquer uma das reivindicações 1 a 3, em que as informações de movimento usadas pelo primeiro bloco são impedidas de serem armazenadas na pelo menos uma tabela.
[00437] 5. O método de qualquer uma das reivindicações 1 a 4, em que a pelo menos uma tabela não é atualizada após a conversão do primeiro bloco.
[00438] 6. O método de qualquer uma das reivindicações 1 a 5, em que a pelo menos uma tabela inclui múltiplas tabelas mantidas para armazenar os candidatos HMVP para blocos com o modo de partição de geometria.
[00439] 7. O método da reivindicação 6, em que para a pelo menos
88 / 101 uma tabela, os candidatos HMVP armazenados apenas têm informações de movimento de acordo com aquelas usadas por blocos com o modo de partição de geometria.
[00440] 8. O método de qualquer uma das reivindicações 1 a 7, em que a pelo menos uma tabela inclui duas tabelas mantidas para armazenar candidatos HMVP de uni-predição e candidatos HMVP de bi-predição, respectivamente.
[00441] 9. O método de qualquer uma das reivindicações 1 a 8, em que a pelo menos uma tabela inclui duas tabelas mantidas para armazenar informações de movimento de uma primeira subporção e uma segunda subporção do primeiro bloco, respectivamente.
[00442] 10. O método de qualquer uma das reivindicações 1 a 9, em que a pelo menos uma tabela inclui duas tabelas mantidas para armazenar informações de movimento da Lista 0 e Lista 1, respectivamente.
[00443] 11. O método de qualquer uma das reivindicações 1 a 10, em que a pelo menos uma tabela inclui três tabelas mantidas para armazenar candidatos HMVP de uni-predição da Lista 0, candidatos HMVP de uni- predição da Lista 1 e candidatos HMVP de bi-predição, respectivamente.
[00444] 12. O método de qualquer uma das reivindicações 1 a 11, em que a pelo menos uma tabela é atualizada com as informações de movimento de parte de subporções do primeiro bloco.
[00445] 13. O método de qualquer uma das reivindicações 1 a 12, em que a pelo menos uma tabela é atualizada com as informações de movimento de uma primeira subporção e as informações de movimento de uma segunda subporção, a primeira subporção e a segunda subporção sendo subporção s do primeiro bloco.
[00446] 14. O método da reivindicação 13, em que a pelo menos uma tabela é atualizada com as informações de movimento de uma primeira subporção e as informações de movimento de uma segunda subporção pela
89 / 101 adição de um candidato HMVP.
[00447] 15. O método da reivindicação 14, em que a atualização de pelo menos uma tabela adicionando um ou dois candidatos de movimentos depende de se a primeira subporção e a segunda subporção estão com o uso da mesma lista de imagem parada de referência ou a mesma imagem parada de referência.
[00448] 16. O método da reivindicação 14, em que a atualização da pelo menos uma tabela pela adição de informações de movimento da primeira subporção ou da segunda subporção depende de uma diferença de contagem de ordem de imagem (POC) entre uma imagem parada de referência e uma imagem parada atual.
[00449] 17. O método de qualquer uma das reivindicações 1 a 16, em que o método compreende adicionalmente: após o processamento do bloco com a porção não retangular e não quadrada, as informações de movimento do bloco com a porção não retangular e não quadrada são usadas para atualizar a tabela mantida para armazenar os candidatos HMVP para bloco com a porção não retangular e não quadrada.
[00450] 18. O método das reivindicações 1 a 16, em que o método compreende adicionalmente: após o processamento do bloco sem a porção não retangular e não quadrada, as informações de movimento do bloco sem a porção não retangular e não quadrada são usadas para atualizar a tabela mantida para armazenar os candidatos HMVP para bloco sem a porção não retangular e não quadrada.
[00451] 19. O método das reivindicações 1 a 16, em que o método compreende adicionalmente: após o processamento do bloco sem a porção não retangular e não quadrada, as informações de movimento do bloco sem a porção não
90 / 101 retangular e não quadrada são usadas para atualizar a tabela mantida para armazenar os candidatos de predição de vetor de movimento (HMVP) para bloco sem a porção não retangular e não quadrada.
[00452] 20. O método de qualquer uma das reivindicações 1 a 19, em que o modo de partição de geometria compreende um modo de particionamento triangular.
[00453] 21. O método de qualquer uma das reivindicações 1 a 20, em que o método é aplicável a outros tipos de listas de candidato de movimento.
[00454] 22. Um aparelho de processamento de vídeo que compreende um processador configurado para implantar um método recitado em qualquer uma das reivindicações 1 a 21.
[00455] 23. O aparelho da reivindicação 22, em que o aparelho é um codificador de vídeo.
[00456] 24. O aparelho da reivindicação 22, em que o aparelho é um decodificador de vídeo.
[00457] 25. Uma mídia de recodificação legível por computador no qual um programa que compreende um código é gravado, em que o programa serve para o que o processador execute um método recitado em qualquer uma das reivindicações 1 a 21.
[00458] Alguns recursos preferivelmente implementados por algumas modalidades são agora descritos em formato baseado em cláusula.
[00459] 1. Um método para processar vídeo que compreende: determinar, durante uma conversão entre um primeiro bloco de dados de mídia visual e uma representação codificada correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com modo de partição de geometria; determinar informações de movimento de pelo menos uma subporção do primeiro bloco; realizar a conversão do primeiro bloco usando as informações
91 / 101 de movimento da pelo menos uma subporção; em que determinar informações de movimento de pelo menos uma subporção compreende o uso de pelo menos um candidato de predição de vetor de movimento baseada em histórico (HMVP) que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento e determinar as informações de movimento a partir da lista de candidato de movimento.
[00460] 2. O método da reivindicação 1, em que o primeiro bloco sendo codificado com modo de partição de geometria compreende: dividir o primeiro bloco em múltiplas subporções; em que pelo menos uma das múltiplas subporções é uma porção não retangular e não quadrada.
[00461] 3. O método da reivindicação 1, em que o pelo menos um candidato HMVP é diretamente adicionado à lista de candidato de movimento.
[00462] 4. O método de qualquer uma das reivindicações 1 a 3, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: usar um candidato HMVP para determinar um primeiro candidato de movimento e um segundo candidato de movimento, em que um dentre o primeiro candidato de movimento e o segundo candidato de movimento é uni-predição com informações de movimento de Lista 0 do candidato HMVP, e em que o outro é uni-predição com informações de movimento de Lista 1 do candidato HMVP.
[00463] 5. O método de qualquer uma das reivindicações 1 a 4 que compreende adicionalmente: realizar uma poda em resposta à inserção de um candidato de movimento derivado do candidato HMVP com outros candidatos de
92 / 101 movimento que são baseados em blocos de vídeo espacial ou temporal.
[00464] 6. O método de qualquer uma das reivindicações 1 a 5 que compreende adicionalmente: realizar uma poda em resposta à inserção de um candidato de movimento derivado do candidato de HMVP com outros candidatos de movimento que são baseados em outros candidatos HMVP.
[00465] 7. O método de qualquer uma das reivindicações 1 a 6 que compreende adicionalmente: realizar uma poda em resposta à inserção de um candidato de movimento derivado do candidato de HMVP com outros candidatos de movimento que são baseados no candidato HMVP.
[00466] 8. O método de qualquer uma das reivindicações 1 a 7, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP à lista de candidato de movimento após candidatos de movimento derivados de um ou de ambos blocos espaciais ou temporais.
[00467] 9. O método de qualquer uma das reivindicações 1 a 8, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP à lista de candidato de movimento depois ou antes de uma etapa predefinida em um processo de construção de lista de candidato de movimento com base em informações de movimento de blocos espaciais ou temporais.
[00468] 10. O método de qualquer uma das reivindicações 1 a 9, em que o uso de pelo menos um candidato HMVP que inclui informações de
93 / 101 movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP à lista de candidato de movimento depois ou antes de múltiplas etapas predefinidas em um processo de construção de lista de candidato de movimento com base em informações de movimento de blocos espaciais ou temporais.
[00469] 11. O método de qualquer uma das reivindicações 1 a 10, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP com uni-predição à lista de candidato de movimento após todos os candidatos originalmente de uni-predição.
[00470] 12. O método de qualquer uma das reivindicações 1 a 11, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP com uni-predição da Lista 0 ou bi-predição à lista de candidato de movimento após candidatos preditos de Lista 0 truncados.
[00471] 13. O método de qualquer uma das reivindicações 1 a 12, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP com uni-predição da Lista 1 ou bi-predição à lista de candidato de movimento após candidatos preditos de Lista 1 truncados.
[00472] 14. O método de qualquer uma das reivindicações 1 a 13, em
94 / 101 que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do pelo menos um candidato HMVP à lista de candidato de movimento após uni- predição média da candidatos de movimento de Lista 0 ou Lista 1.
[00473] 15. O método de qualquer uma das reivindicações 1 a 14, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do pelo menos um candidato HMVP à lista de candidato de movimento antes da uni-predição média da candidatos de movimento de Lista 0 ou Lista 1.
[00474] 16. O método de qualquer uma das reivindicações 1 a 15, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado do candidato HMVP à lista de candidato de movimento de acordo com intercalação com candidatos de movimento que são baseados em informações de movimento de blocos espaciais ou temporais em relação ao bloco atual.
[00475] 17. O método de qualquer uma das reivindicações 8 a 16, em que o candidato de movimento derivado de um candidato HMVP é ajustado igual ao candidato HMVP.
[00476] 18. O método de qualquer uma das reivindicações 1 a 17, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende:
95 / 101 adicionar pelo menos um candidato de movimento derivado da Lista 0 e Lista 1 do candidato HMVP à lista de candidato de movimento antes de candidatos de movimento derivados da Lista 0 e Lista 1 de um outro candidato HMVP.
[00477] 19. O método de qualquer uma das reivindicações 1 a 18, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar pelo menos um candidato de movimento derivado da Lista 0 de um primeiro conjunto de candidatos HMVP à lista de candidato de movimento antes dos candidatos de movimento derivados da Lista 1 de um segundo conjunto de candidatos HMVP.
[00478] 20. O método da reivindicação 19, em que o primeiro conjunto e o segundo conjunto são os mesmos.
[00479] 21. O método da reivindicação 19, em que o primeiro conjunto e o segundo conjunto são diferentes, e o primeiro conjunto inclui candidatos HMVP com uni-predição da Lista 0 e bi-predição, o segundo conjunto inclui candidatos HMVP com uni-predição da Lista 1 e bi-predição.
[00480] 22. O método da reivindicação 19, em que o primeiro conjunto inclui um primeiro número de candidatos HMVP, o segundo conjunto inclui um segundo número de candidatos HMVP e o primeiro número e o segundo número são diferentes.
[00481] 23. O método de qualquer uma das reivindicações 1 a 22, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: escalonar os candidatos HMVP da lista LX à lista L(1 -X) para gerar os candidatos HMVP escalonados que são usados para a L(l-X).
[00482] 24. O método da reivindicação 23, em que o uso de pelo
96 / 101 menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar os candidatos HMVP escalonados após outros candidatos de movimento derivados de candidatos HMVP.
[00483] 25. O método da reivindicação 23, em que o uso de pelo menos um candidato HMVP que inclui informações de movimento baseadas em um bloco anteriormente codificado para construir uma lista de candidato de movimento compreende: adicionar os candidatos HMVP escalonados após outros candidatos de movimento derivados de candidatos HMVP e antes de candidatos temporais.
[00484] 26. O método de qualquer uma das reivindicações 1 a 25, em que uma ordem de verificação de candidatos HMVP a serem adicionados à lista de candidato de movimento é baseada em índices dos candidatos HMVP.
[00485] 27. O método de qualquer uma das reivindicações 1 a 25, em que uma ordem de verificação de candidatos HMVP a serem adicionados à lista de candidato de movimento é baseada em direções de predição.
[00486] 28. O método de qualquer uma das reivindicações 1 a 25, em que uma ordem de verificação de candidatos HMVP a serem adicionados à lista de candidato de movimento é baseada em informações de movimento.
[00487] 29. O método de qualquer uma das reivindicações 1 a 28, em que um número de candidatos HMVP a serem verificados no processo de construção de lista de candidato de movimento é predefinido.
[00488] 30. O método de qualquer uma das reivindicações 1 a 28, em que um número de candidatos HMVP a serem verificados no processo de construção de lista de candidato de movimento é baseado em um tamanho de bloco do bloco atual, um formato de bloco do bloco atual ou um número de candidatos disponíveis antes de verificar candidatos HMVP.
97 / 101
[00489] 31. O método de qualquer uma das reivindicações 1 a 28, em que um número de candidatos HMVP a serem verificados no processo de construção de lista de candidato de movimento é sinalizado em um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de imagem parada (PPS), um cabeçalho de imagem parada, um cabeçalho de grupo de blocos, um cabeçalho de fatia, um grupo de linhas de unidades de árvore de codificação (CTUs), uma CTU ou um grupo de CTUs.
[00490] 32. O método de qualquer uma das reivindicações 1 a 28, em que os candidatos HMVP selecionados para serem verificados na lista de candidato de movimento são baseados em pelo menos um dentre uma direção de predição, uma informação de vetor de movimento (MV), um índice de imagem parada de referência, distâncias POC de imagem parada de referência e imagem parada atual de um candidato e um índice de candidato.
[00491] 33. O método de qualquer uma das reivindicações 1 a 28, em que uma aplicação de HMVP ao bloco atual é baseada em um tamanho de bloco do bloco atual ou um formato de bloco do bloco atual.
[00492] 34. O método de qualquer uma das reivindicações 1 a 33, em que a lista de candidato de movimento compreende uma lista de fusão.
[00493] 35. O método de qualquer uma das reivindicações 1 a 33, em que a lista de candidato de movimento é aplicável a outros tipos de listas de candidato de movimento excluindo a lista de candidato de fusão.
[00494] 36. Um aparelho de processamento de vídeo que compreende um processador configurado para implantar um método recitado em qualquer uma das reivindicações 1 a 35.
[00495] 37. O aparelho da reivindicação 36, em que o aparelho é um codificador de vídeo.
[00496] 38. O aparelho da reivindicação 36, em que o aparelho é um decodificador de vídeo.
98 / 101
[00497] 39. Uma mídia de recodificação legível por computador no qual um programa que compreende um código é gravado, em que o programa serve para o que o processador execute um método recitado em qualquer uma das reivindicações 1 a 35.
[00498] As soluções descritas e outras soluções, exemplos, modalidades, módulos e as operações funcionais descritas neste documento podem ser implementadas em circuitos eletrônicos digitais ou em software, firmware ou hardware de computador, incluindo as estruturas descritas neste documento e seus equivalentes estruturais, ou em combinações de um ou mais dos mesmos. As modalidades descritas e outras podem ser implementadas como um ou mais produtos de programa de computador, isto é, um ou mais módulos de instruções de programa de computador codificados em um meio legível por computador para execução por, ou para controlar a operação de, aparelho de processamento de dados. O meio legível por computador pode ser um dispositivo de armazenamento legível por máquina, um substrato de armazenamento legível por máquina, um dispositivo de memória, uma composição de matéria efetuando um sinal propagado legível por máquina ou uma combinação de um ou mais dos mesmos. O termo “aparelho de processamento de dados” abrange todos os aparelhos, dispositivos e máquinas para processamento de dados, incluindo, a título de exemplo, um processador programável, um computador ou vários processadores ou computadores. O aparelho pode incluir, além de hardware, código que cria um ambiente de execução para o programa de computador em questão, por exemplo, código que constitui firmware de processador, uma pilha de protocolo, um sistema de gerenciamento de banco de dados, um sistema operacional ou uma combinação de um ou mais dos mesmos. Um sinal propagado é um sinal gerado artificialmente, por exemplo, um sinal elétrico, óptico ou eletromagnético gerado por máquina, que é gerado para codificar informações para transmissão para um aparelho receptor adequado.
99 / 101
[00499] Um programa de computador (também conhecido como programa, software, aplicativo de software, script ou código) pode ser escrito em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, e pode ser implementado em qualquer forma, incluindo como um suporte programa sozinho ou como um módulo, componente, sub-rotina ou outra unidade adequada para uso em um ambiente de computação. Um programa de computador não corresponde necessariamente a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma parte de um arquivo que contém outros programas ou dados (por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação), em um único arquivo dedicado ao programa em questão ou em vários arquivos coordenados (por exemplo, arquivos que armazenam um ou mais módulos, subprogramas ou partes do código). Um programa de computador pode ser implementado para ser executado em um computador ou em vários computadores localizados em um local ou distribuídos em vários locais e interconectados por uma rede de comunicação.
[00500] Os processos e fluxos lógicos descritos neste documento podem ser realizados por um ou mais processadores programáveis executando um ou mais programas de computador para executar funções operando em dados de entrada e gerando saída. Os processos e fluxos lógicos também podem ser executados por, e o aparelho também pode ser implementado como, circuitos lógicos de propósito especial, por exemplo, um FPGA (matriz de portas programáveis em campo) ou um ASIC (circuito integrado específico de aplicação).
[00501] Os processadores adequados para a execução de um programa de computador incluem, a título de exemplo, microprocessadores de uso geral e especial e qualquer um ou mais processadores de qualquer tipo de computador digital. Geralmente, um processador receberá instruções e dados
100 / 101 de uma memória somente leitura ou de uma memória de acesso aleatório ou de ambas. Os elementos essenciais de um computador são um processador para executar instruções e um ou mais dispositivos de memória para armazenar instruções e dados. Geralmente, um computador também incluirá, ou será operativamente acoplado para receber dados ou transferir dados para, ou ambos, um ou mais dispositivos de armazenamento em massa para armazenar dados, por exemplo, discos magnéticos, magneto-ópticos ou discos ópticos. No entanto, um computador não precisa ter esses dispositivos. Os meios legíveis por computador adequados para armazenar instruções de programa de computador e dados incluem todas as formas de memória não volátil, mídia e dispositivos de memória, incluindo por meio de dispositivos de memória semicondutores de exemplo, por exemplo, EPROM, EEPROM e dispositivos de memória flash; discos magnéticos, por exemplo, discos rígidos internos ou discos removíveis; discos magneto-ópticos; e discos de CD-ROM e DVD-ROM. O processador e a memória podem ser complementados por, ou incorporados em, circuitos lógicos de propósito especial.
[00502] Embora este documento de patente contenha muitos detalhes, esses não devem ser interpretados como limitações no escopo de qualquer matéria ou do que pode ser reivindicado, mas sim como descrições de recursos que podem ser específicos para modalidades particulares de técnicas particulares. Certos recursos que são descritos neste documento de patente no contexto de modalidades separadas também podem ser implementados em combinação em uma única modalidade. Por outro lado, vários recursos que são descritos no contexto de uma única modalidade também podem ser implementados em múltiplas modalidades separadamente ou em qualquer subcombinação adequada. Além disso, embora os recursos possam ser descritos acima como atuando em certas combinações e mesmo inicialmente reivindicadas como tal, um ou mais recursos de uma combinação reivindicada podem, em alguns casos, ser extirpados da combinação, e a combinação
101 / 101 reivindicada pode ser direcionada a uma subcombinação ou variação de uma subcombinação.
[00503] Da mesma forma, embora as operações sejam representadas nos desenhos em uma ordem particular, isso não deve ser entendido como exigindo que tais operações sejam realizadas na ordem particular mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam realizadas, para atingir os resultados desejáveis. Além disso, a separação de vários componentes do sistema nas modalidades descritas neste documento de patente não deve ser entendida como requerendo tal separação em todas as modalidades.
[00504] Apenas algumas implementações e exemplos são descritos e outras implementações, melhorias e variações podem ser realizadas com base no que é descrito e ilustrado neste documento de patente.

Claims (20)

REIVINDICAÇÕES
1. Método para processar dados de vídeo, caracterizado pelo fato de que compreende: determinar, durante uma conversão entre um primeiro bloco de dados de mídia visual e um fluxo de bits correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com um modo de particionamento geométrico; determinar, com base em uma tabela que armazena um ou múltiplos candidatos de movimento que estão associados às informações de movimento baseadas em blocos anteriormente codificados, informações de movimento do primeiro bloco; realizar a conversão do primeiro bloco usando as informações de movimento determinadas do primeiro bloco.
2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que as informações de movimento usadas pelo primeiro bloco são impedidas de serem armazenadas na tabela.
3. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a tabela não é atualizada após a conversão do primeiro bloco.
4. Método de acordo com a reivindicação 1, caracterizado pelo fato de que compreende: determinar, durante uma conversão entre um segundo bloco de dados de mídia visual e um fluxo de bits correspondente dos dados de mídia visual, informações de movimento do segundo bloco com base na mesma tabela que é usada para o primeiro bloco; e o segundo bloco não está usando o modo de particionamento geométrico.
5. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a tabela inclui uma tabela de predição de vetor de movimento baseada em histórico (HMVP).
6. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação de informações de movimento do primeiro bloco compreende construir uma lista de candidato de movimento.
7. Método de acordo com a reivindicação 6, caracterizado pelo fato de que a lista de candidato de movimento corresponde a uma lista de candidato de fusão.
8. Método de acordo com a reivindicação 1, caracterizado pelo fato de que compreende: determinar um índice de fusão GPM incluído no fluxo de bits, em que o índice de fusão GPM está relacionado à informação de movimento do primeiro bloco.
9. Método de acordo com a reivindicação 1, caracterizado pelo fato de que as informações de movimento do primeiro bloco são determinadas adicionalmente com base nos candidatos de movimento derivados dos blocos espacial e/ou temporal.
10. Método de acordo com a reivindicação 6, caracterizado pelo fato de que a determinação, com base na tabela, de informações de movimento do primeiro bloco, compreende: adicionar pelo menos um candidato de movimento derivado da tabela no processo de construção da lista de candidato de movimento ao primeiro bloco.
11. Método de acordo com a reivindicação 10, caracterizado pelo fato de que adicionar candidatos de movimento derivados da tabela no processo de construção da lista de candidato de movimento ao primeiro bloco, compreende: adicionar pelo menos um candidato de movimento derivado da tabela à lista de candidato de movimento após candidatos de movimento derivados de um ou ambos os blocos espaciais ou blocos temporais.
12. Método de acordo com a reivindicação 10, caracterizado pelo fato de que o pelo menos um candidato de movimento derivado da tabela é definido igual ao pelo menos um candidato de movimento correspondente na tabela.
13. Método de acordo com a reivindicação 10, caracterizado pelo fato de que uma ordem de verificação de candidatos de movimento na tabela a ser adicionada à lista de candidato de movimento é baseada em índices de candidatos de movimento na tabela.
14. Método de acordo com a reivindicação 1, caracterizado pelo fato de que o modo de particionamento geométrico inclui múltiplos esquemas de partição e pelo menos um esquema de partição divide o primeiro bloco em duas partições, pelo menos um dos quais é não quadrado e não retangular.
15. Método de acordo com a reivindicação 1, caracterizado pelo fato de que o modo de particionamento geométrico compreende um modo de particionamento triangular.
16. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a conversão compreende decodificar o primeiro bloco do fluxo de bits correspondente.
17. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a conversão compreende codificar o primeiro bloco no fluxo de bits correspondente.
18. Aparelho para processar dados de vídeo, caracterizado pelo fato de que compreende um processador e uma memória não transitória com instruções na mesma, em que as instruções mediante execução pelo processador, fazem o processador: determinar, durante uma conversão entre um primeiro bloco de dados de mídia visual e um fluxo de bits correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com um modo de particionamento geométrico;
determinar, com base em uma tabela que armazena um ou múltiplos candidatos que estão associados às informações de movimento baseadas em blocos anteriormente codificados, informações de movimento do primeiro bloco; realizar a conversão do primeiro bloco usando as informações de movimento determinadas do primeiro bloco.
19. Meio de armazenamento legível por computador não transitório, caracterizado pelo fato de que armazena instruções que fazem o processador: determinar, durante uma conversão entre um primeiro bloco de dados de mídia visual e um fluxo de bits correspondente dos dados de mídia visual, o primeiro bloco sendo codificado com um modo de particionamento geométrico; determinar, com base em uma tabela um ou múltiplos candidatos que estão associados às informações de movimento baseadas em blocos anteriormente codificados, informações de movimento do primeiro bloco; realizar a conversão do primeiro bloco usando as informações de movimento determinadas do primeiro bloco.
20. Meio de gravação legível por computador não transitório, caracterizado pelo fato de que armazena um fluxo de bits que é gerado por um método realizado por um aparelho de processamento de vídeo, em que o método compreende: determinar que o primeiro bloco sendo codificado com o modo de particionamento geométrico; determinar, com base em uma tabela que armazena um ou múltiplos candidatos que estão associados às informações de movimento baseadas em blocos anteriormente codificados, informações de movimento do primeiro bloco;
gerar o fluxo de bits usando as informações de movimento determinadas do primeiro bloco.
BR112021007863-0A 2018-11-02 2019-11-04 método e aparelho para processar dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios BR112021007863A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN2018113716 2018-11-02
CNPCT/CN2018/113716 2018-11-02
CN2019086174 2019-05-09
CNPCT/CN2019/086174 2019-05-09
PCT/CN2019/115453 WO2020088690A1 (en) 2018-11-02 2019-11-04 Table maintenance for hmvp candidate storage

Publications (1)

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

Family

ID=70463851

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021007863-0A BR112021007863A2 (pt) 2018-11-02 2019-11-04 método e aparelho para processar dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios

Country Status (9)

Country Link
US (3) US11122266B2 (pt)
EP (1) EP3854092A4 (pt)
JP (2) JP7277579B2 (pt)
KR (2) KR20230155014A (pt)
CN (3) CN111147850B (pt)
BR (1) BR112021007863A2 (pt)
MX (1) MX2021004677A (pt)
SG (1) SG11202104022XA (pt)
WO (3) WO2020088690A1 (pt)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019151297A1 (ja) * 2018-01-30 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
GB2588003B (en) 2018-06-05 2023-04-19 Beijing Bytedance Network Tech Co Ltd Interaction between pairwise average merging candidates and IBC
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
WO2019244118A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Component-dependent sub-block dividing
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
SG11202011714RA (en) 2018-06-29 2020-12-30 Beijing Bytedance Network Technology Co Ltd Partial/full pruning when adding a hmvp candidate to merge/amvp
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
TWI724442B (zh) 2018-06-29 2021-04-11 大陸商北京字節跳動網絡技術有限公司 用於查找表更新的編碼的運動信息的選擇
SG11202013028PA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Interaction between lut and amvp
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
TWI731364B (zh) 2018-07-02 2021-06-21 大陸商北京字節跳動網絡技術有限公司 Hmvp+非相鄰運動
CN111064959B (zh) 2018-09-12 2023-09-01 北京字节跳动网络技术有限公司 要检查多少个hmvp候选
WO2020060376A1 (ko) 2018-09-22 2020-03-26 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
WO2020065518A1 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Bi-prediction with weights in video coding and decoding
KR20210068537A (ko) * 2018-10-08 2021-06-09 후아웨이 테크놀러지 컴퍼니 리미티드 코딩 블록의 기하학적 분할의 인터 예측을 위한 장치 및 방법
CN111147850B (zh) 2018-11-02 2022-10-11 北京字节跳动网络技术有限公司 用于基于历史的运动矢量预测的表维护
CN112219400B (zh) 2018-11-06 2024-03-26 北京字节跳动网络技术有限公司 依赖位置的对运动信息的存储
CN112997489B (zh) 2018-11-06 2024-02-06 北京字节跳动网络技术有限公司 具有几何分割的帧间预测的边信息信令
CN112970262B (zh) 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 三角预测模式中的取整
CN113727101B (zh) * 2018-11-22 2022-10-11 华为技术有限公司 编码器、解码器及对应帧间预测方法
CN113170184A (zh) 2018-11-22 2021-07-23 北京字节跳动网络技术有限公司 默认运动候选的配置方法
WO2020117016A1 (ko) * 2018-12-06 2020-06-11 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
US11122272B2 (en) * 2018-12-26 2021-09-14 Mediatek Inc. Triangle prediction with applied-block settings and motion storage settings
US11102476B2 (en) * 2018-12-28 2021-08-24 Qualcomm Incorporated Subblock based affine motion model
WO2020135465A1 (en) 2018-12-28 2020-07-02 Beijing Bytedance Network Technology Co., Ltd. Modified history based motion prediction
EP3905685B1 (en) * 2018-12-28 2024-03-20 JVCKenwood Corporation Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
CN112042191B (zh) * 2019-01-01 2024-03-19 Lg电子株式会社 以基于历史的运动矢量为基础预测处理视频信号的方法和设备
CN113273186A (zh) 2019-01-10 2021-08-17 北京字节跳动网络技术有限公司 Lut更新的调用
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
SG11202108103WA (en) * 2019-01-28 2021-08-30 Op Solutions Llc Inter prediction in geometric partitioning with an adaptive number of regions
CN113366845A (zh) * 2019-01-31 2021-09-07 联发科技股份有限公司 视频编码中结合帧间和帧内预测的方法和装置
CN113475075B (zh) 2019-02-13 2023-09-08 北京字节跳动网络技术有限公司 基于共享Merge列表的运动预测
CN112514380A (zh) 2019-02-26 2021-03-16 株式会社 Xris 用于对视频信号进行编码/解码的方法及其设备
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
EP3963890A4 (en) 2019-06-04 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. BUILDING A LIST OF MOVEMENT CANDIDATES USING NEIGHBOR BLOCK INFORMATION
CN114097228B (zh) 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
CN117354507A (zh) 2019-06-06 2024-01-05 北京字节跳动网络技术有限公司 视频编解码的运动候选列表构建
KR20230135185A (ko) * 2019-06-21 2023-09-22 후아웨이 테크놀러지 컴퍼니 리미티드 서브 블록 파티셔닝 모드를 위한 인코더, 디코더 및 대응 방법
KR20220030995A (ko) 2019-07-14 2022-03-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 변환 블록 크기 제한
CN114175657B (zh) 2019-07-26 2023-12-26 北京字节跳动网络技术有限公司 基于块尺寸的图片分割模式确定
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
CN114556926A (zh) 2019-10-10 2022-05-27 北京字节跳动网络技术有限公司 几何分割模式中的运动矢量处理
JP7453374B2 (ja) 2019-11-30 2024-03-19 北京字節跳動網絡技術有限公司 幾何学的分割を用いた簡易インター予測
WO2021129694A1 (en) 2019-12-24 2021-07-01 Beijing Bytedance Network Technology Co., Ltd. High level syntax for inter prediction with geometric partitioning
US11722692B2 (en) * 2019-12-31 2023-08-08 Qualcomm Incorporated History-based motion vector predictor constraint for merge estimation region
EP3972279A1 (en) 2020-09-17 2022-03-23 Lemon Inc. Subpicture track referencing and processing
CN113099229B (zh) * 2021-02-22 2022-08-09 浙江大华技术股份有限公司 块划分方法、帧间预测方法、视频编码方法及相关装置
WO2022141278A1 (zh) * 2020-12-30 2022-07-07 深圳市大疆创新科技有限公司 视频处理方法和编码装置
CN117652142A (zh) * 2021-04-09 2024-03-05 抖音视界有限公司 用于视频处理的方法、设备和介质
WO2023284695A1 (en) * 2021-07-14 2023-01-19 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
US11949863B2 (en) * 2021-08-02 2024-04-02 Tencent America LLC Geometric partition mode with intra block copy

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7068850B2 (en) 2001-06-29 2006-06-27 Equator Technologies, Inc. Decoding of predicted DC coefficient without division
US7227901B2 (en) 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
KR100843080B1 (ko) 2006-02-24 2008-07-02 삼성전자주식회사 비디오 트랜스코딩 방법 및 장치
EP2047687B1 (en) * 2006-08-02 2018-05-16 Thomson Licensing DTV Adaptive geometric partitioning for video encoding
ZA200901048B (en) * 2006-09-29 2010-05-26 Thomson Licensing Geometric intra prediction
CN101822064A (zh) * 2007-10-16 2010-09-01 汤姆逊许可公司 用于几何分割超级块的视频编码和解码的方法和设备
CN101257625B (zh) 2008-04-01 2011-04-20 海信集团有限公司 视频编解码中的位置索引方法及视频解码器
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
WO2010151334A1 (en) * 2009-06-26 2010-12-29 Thomson Licensing Methods and apparatus for video encoding and decoding using adaptive geometric partitioning
CN102026002B (zh) 2009-09-14 2014-02-19 富士通株式会社 帧率下采样转码方法和装置以及矢量重建方法和装置
KR20120010367A (ko) * 2010-07-26 2012-02-03 (주)휴맥스 정밀한 단위의 보간 필터 선택을 적용한 영상 부호화/복호화 장치 및 방법
WO2011095259A1 (en) 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) Selecting predicted motion vector candidates
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
EP2559248A2 (en) * 2010-04-12 2013-02-20 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
EP2421266A1 (en) * 2010-08-19 2012-02-22 Thomson Licensing Method for reconstructing a current block of an image and corresponding encoding method, corresponding devices as well as storage medium carrying an images encoded in a bit stream
US9807424B2 (en) * 2011-01-10 2017-10-31 Qualcomm Incorporated Adaptive selection of region size for identification of samples in a transition zone for overlapped block motion compensation
AU2015202844B2 (en) * 2011-01-12 2016-03-17 Ntt Docomo, Inc. Image predict coding method, image predict coding device, image predict coding program, image predict decoding method, image predict decoding device, and image predict decoding program
US9319716B2 (en) 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9143795B2 (en) 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
US20140098880A1 (en) * 2012-10-05 2014-04-10 Qualcomm Incorporated Prediction mode information upsampling for scalable video coding
CN102946536B (zh) 2012-10-09 2015-09-30 华为技术有限公司 候选矢量列表构建的方法及装置
US9253503B2 (en) * 2012-12-18 2016-02-02 Xerox Corporation Computationally efficient motion estimation with learning capabilities for video compression in transportation and regularized environments
KR101980349B1 (ko) * 2014-03-05 2019-05-20 엘지전자 주식회사 폴리곤 유닛 기반 영상 인코딩/디코딩 방법 및 이를 위한 장치
CN106464905B (zh) * 2014-05-06 2019-06-07 寰发股份有限公司 用于块内复制模式编码的块向量预测方法
US10027981B2 (en) * 2014-09-01 2018-07-17 Hfi Innovation Inc. Method of intra picture block copy for screen content and video coding
CN104363451B (zh) * 2014-10-27 2019-01-25 华为技术有限公司 图像预测方法及相关装置
FR3029381A1 (fr) * 2014-11-27 2016-06-03 Orange Procede de composition d’une representation video intermediaire
WO2016090568A1 (en) 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
WO2017142448A1 (en) * 2016-02-17 2017-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for encoding and decoding video pictures
KR20170108367A (ko) * 2016-03-17 2017-09-27 세종대학교산학협력단 인트라 예측 기반의 비디오 신호 처리 방법 및 장치
US10560718B2 (en) 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10721489B2 (en) * 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
US10477238B2 (en) * 2016-09-07 2019-11-12 Qualcomm Incorporated Sub-PU based bi-directional motion compensation in video coding
ES2895927T3 (es) 2017-01-05 2022-02-23 Nokia Technologies Oy Un aparato, un método y un programa de ordenador para la codificación y decodificación de vídeo
WO2018128466A1 (ko) * 2017-01-09 2018-07-12 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
EP3349467B1 (en) * 2017-01-10 2019-09-04 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
CN108345147B (zh) 2017-01-23 2023-06-20 京东方科技集团股份有限公司 显示基板及其制作方法、显示面板
TWI731364B (zh) * 2018-07-02 2021-06-21 大陸商北京字節跳動網絡技術有限公司 Hmvp+非相鄰運動
US11212550B2 (en) * 2018-09-21 2021-12-28 Qualcomm Incorporated History-based motion vector prediction for affine mode
WO2020060376A1 (ko) * 2018-09-22 2020-03-26 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
US11051034B2 (en) * 2018-10-08 2021-06-29 Qualcomm Incorporated History-based motion vector predictor
US11284066B2 (en) * 2018-10-10 2022-03-22 Tencent America LLC Method and apparatus for intra block copy in intra-inter blending mode and triangle prediction unit mode
CN111147850B (zh) 2018-11-02 2022-10-11 北京字节跳动网络技术有限公司 用于基于历史的运动矢量预测的表维护
CN112997489B (zh) 2018-11-06 2024-02-06 北京字节跳动网络技术有限公司 具有几何分割的帧间预测的边信息信令
CN112219400B (zh) 2018-11-06 2024-03-26 北京字节跳动网络技术有限公司 依赖位置的对运动信息的存储
CN113170184A (zh) 2018-11-22 2021-07-23 北京字节跳动网络技术有限公司 默认运动候选的配置方法
CN113366845A (zh) * 2019-01-31 2021-09-07 联发科技股份有限公司 视频编码中结合帧间和帧内预测的方法和装置

Also Published As

Publication number Publication date
US11122266B2 (en) 2021-09-14
CN111147855A (zh) 2020-05-12
MX2021004677A (es) 2021-06-04
SG11202104022XA (en) 2021-05-28
EP3854092A4 (en) 2021-11-17
WO2020088689A1 (en) 2020-05-07
WO2020088691A1 (en) 2020-05-07
KR102608615B1 (ko) 2023-12-05
CN111147850A (zh) 2020-05-12
US11700371B2 (en) 2023-07-11
JP7277579B2 (ja) 2023-05-19
JP2022505731A (ja) 2022-01-14
CN115514958A (zh) 2022-12-23
JP2023103329A (ja) 2023-07-26
US20230353737A1 (en) 2023-11-02
US20210006787A1 (en) 2021-01-07
CN111147850B (zh) 2022-10-11
KR20230155014A (ko) 2023-11-09
CN111147847A (zh) 2020-05-12
WO2020088690A1 (en) 2020-05-07
EP3854092A1 (en) 2021-07-28
US20210385451A1 (en) 2021-12-09
KR20210087935A (ko) 2021-07-13

Similar Documents

Publication Publication Date Title
BR112021007863A2 (pt) método e aparelho para processar dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
US20210266537A1 (en) Using inter prediction with geometric partitioning for video processing
JP2023159148A (ja) 動き情報の位置依存記憶装置
WO2019244052A1 (en) Different precisions for different reference list
CN113302918A (zh) 视频编解码中的加权预测
WO2020140862A1 (en) Conditional application of inter prediction with geometric partitioning in video processing
CN113508593A (zh) 基于回退的运动矢量场的基于子块运动矢量推导
CN113273208A (zh) 仿射预测模式的改进
CN111147847B (zh) 几何分割模式中基于历史的运动矢量预测候选的使用
US20220078476A1 (en) HMVP Table Improvements
RU2808631C2 (ru) Ведение таблиц для хранения кандидатов предсказания вектора движения на основе истории