BR112021012638A2 - Dispositivo de decodificação, dispositivo de codificação e métodos relacionados - Google Patents

Dispositivo de decodificação, dispositivo de codificação e métodos relacionados Download PDF

Info

Publication number
BR112021012638A2
BR112021012638A2 BR112021012638-4A BR112021012638A BR112021012638A2 BR 112021012638 A2 BR112021012638 A2 BR 112021012638A2 BR 112021012638 A BR112021012638 A BR 112021012638A BR 112021012638 A2 BR112021012638 A2 BR 112021012638A2
Authority
BR
Brazil
Prior art keywords
block
information
sub
candidate
motion
Prior art date
Application number
BR112021012638-4A
Other languages
English (en)
Inventor
Fangdong Chen
Original Assignee
Hangzhou Hikvision Digital Technology Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co., Ltd. filed Critical Hangzhou Hikvision Digital Technology Co., Ltd.
Publication of BR112021012638A2 publication Critical patent/BR112021012638A2/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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/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/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/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/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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

Abstract

codificação e decodificação de vídeo. a presente divulgação fornece um método de codificação e decodificação de vídeo e um dispositivo de codificação e decodificação de vídeo. o método inclui: particionar o bloco atual em um primeiro sub-bloco triangular e um segundo sub-bloco triangular quando um bloco atual satisfaz as condições específicas para habilitar um modo de partição geométrica com partição triangular e o modo de partição geométrica com partição triangular é determinado para ser habilitado; obter primeiras informações alvo de movimento do primeiro sub-bloco triangular e segundas informações-alvo de movimento do segundo sub-bloco triangular, em que as primeiras informações alvo de movimento são diferentes das segundas informações alvo de movimento; e realizar um processamento de codificação ou um processamento de decodificação no bloco atual com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento.

Description

CODIFICAÇÃO E DECODIFICAÇÃO DE VÍDEO CAMPO DA TÉCNICA
[001] A presente invenção se refere à codificação e à decodificação de vídeo e, mais particularmente, à codificação através do uso do modo de partição geométrica com partição triangular.
ANTECEDENTES
[002] Geralmente, um método de codificação de vídeo pode incluir processos, como codificação por predição, de transformação, de quantização, de filtragem e de entropia. A codificação de predição pode incluir codificação por intrapredição e codificação por inter-predição. A codificação por inter-predição se refere à codificação por predição usando valores de pixel reconstruídos de um bloco vizinho temporal de um bloco atual (o bloco vizinho temporal e o bloco atual não estão localizados em uma mesma imagem). A codificação por intrapredição se refere à codificação por predição usando valores de pixel reconstruídos de um bloco vizinho espacial do bloco atual (o bloco vizinho espacial e o bloco atual estão localizados em uma mesma imagem).
[003] Na codificação por inter-predição, um vetor de movimento (MV) pode ser usado para representar um deslocamento relativo entre o bloco atual da fatia atual e um bloco de referência da imagem de referência. Por exemplo, a fatia atual A e a imagem de referência B têm uma alta correlação de domínio de tempo. Quando um bloco atual A1 da fatia atual A precisa ser transmitido, um bloco de referência B1 correspondendo melhor ao bloco atual A1 pode ser procurado na imagem de referência B, e o deslocamento relativo entre o bloco atual A1 e o bloco de referência B1 é determinado e usado como o vetor de movimento do bloco atual A1.
[004] Pode haver dois objetos diferentes em um bloco correspondendo a uma borda de objeto físico, como uma parte frontal (isto é, um objeto físico) e uma parte traseira ao mesmo tempo. Nesse caso, se apenas um bloco retangular for usado para predição, o efeito de predição de uma certa parte do objeto no bloco retangular pode ser indesejável, resultando em um grande residual de codificação.
SUMÁRIO
[005] A presente invenção fornece um método de codificação e decodificação de vídeo, que pode ser realizado por um codificador de vídeo ou um decodificador de vídeo, e inclui: particionar um bloco atual em um primeiro sub-bloco triangular e um segundo sub-bloco triangular quando o bloco atual satisfaz as condições específicas para habilitar um modo de partição geométrica com partição triangular e o modo de partição geométrica com partição triangular é determinado para ser habilitado; obter primeiras informações alvo de movimento do primeiro sub-bloco triangular e segundas informações alvo de movimento do segundo sub-bloco triangular, em que as primeiras informações alvo de movimento são diferentes das segundas informações alvo de movimento; e realizar um processamento de codificação ou um processamento de decodificação no bloco atual com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento.
[006] A presente invenção fornece um decodificador de vídeo, que inclui um processador e um meio de armazenamento legível por máquina, em que o meio de armazenamento legível por máquina armazena instruções executáveis por máquina que podem ser invocadas pelo processador; quando o processador executa as instruções, o processador é obrigado a realizar o método de codificação e decodificação de vídeo.
[007] A presente invenção fornece um codificador de vídeo, que inclui um processador e um meio de armazenamento legível por máquina, em que o meio de armazenamento legível por máquina armazena instruções executáveis por máquina que podem ser invocadas pelo processador; quando o processador executa as instruções, o processador é obrigado a realizar o método de codificação e decodificação de vídeo.
[008] A presente invenção fornece um meio de armazenamento legível por máquina no qual as instruções de computador são armazenadas. Quando as instruções de computador são executadas por um processador, o processador é obrigado a realizar o método de codificação e decodificação de vídeo.
BREVE DESCRIÇÃO DOS DESENHOS
[009] A Figura 1 é um diagrama esquemático de uma estrutura de um sistema de codificação de vídeo de acordo com um exemplo da presente invenção.
[010] A Figura 2 é um fluxograma de um método de decodificação de vídeo de acordo com um exemplo da presente invenção.
[011] A Figura 3 é um fluxograma de um método de codificação de vídeo de acordo com um exemplo da presente invenção.
[012] As Figuras 4A a 4B são diagramas esquemáticos de partição de um bloco atual de acordo com um exemplo da presente invenção.
[013] As Figuras 5A a 5C são diagramas esquemáticos de blocos candidatos de acordo com um exemplo da presente invenção.
[014] As Figuras 6A a 6C são diagramas esquemáticos da partição de sub- blocos de acordo com um exemplo da presente invenção.
[015] As Figuras 7A a 7B são diagramas esquemáticos de armazenamento de informações de movimento de acordo com um exemplo da presente invenção.
[016] A Figura 8 é um diagrama de bloco esquemático de um decodificador de vídeo de acordo com um exemplo da presente invenção.
[017] A Figura 9 é um diagrama de bloco esquemático de um codificador de vídeo de acordo com um exemplo da presente invenção.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[018] Os termos usados nos exemplos da presente invenção são apenas para o propósito de descrever exemplos específicos, em vez de limitar a presente invenção. As formas singulares de “um”, “uma”, “dita”, “dito”, “a” e “o” usadas na presente invenção e nas reivindicações também são destinadas a incluir formas plurais, salvo se o contexto indicar claramente o contrário. Também deve ser entendido que o termo “e/ou” conforme usado na presente invenção se refere a qualquer uma ou todas as combinações possíveis de um ou mais itens listados associados.
[019] Deve ser entendido que embora os termos primeiro, segundo, terceiro, etc. possam ser usados nos exemplos da presente invenção para descrever várias informações, essas informações não devem ser limitadas por esses termos. Esses termos são apenas usados para distinguir o mesmo tipo de informações entre si. Por exemplo, sem se afastar do escopo da presente invenção, as primeiras informações também podem ser referidas como segundas informações e, similarmente, as segundas informações também podem ser referidas comas primeiras informações. Além disso, a palavra “se” usada pode ser interpretada como “mediante” ou “quando” ou “em resposta a”.
[020] Os exemplos da presente invenção podem envolver os seguintes conceitos.
[021] Intrapredição: codificação por predição usando valores de pixel reconstruídos de um bloco vizinho espacial (na mesma imagem que o bloco atual) de um bloco atual. Uma variedade de modos de intrapredição foi proposta, e cada modo de intrapredição exceto um modo DC correspondendo a uma direção de textura. Os pixels previstos do bloco atual podem ser gerados a partir dos valores de pixel de reconstrução de limite do bloco vizinho em sua direção de predição. Por exemplo, se a textura da imagem está na direção horizontal,
então, um modo de predição horizontal pode prever melhor as informações de imagem.
[022] Inter-predição: codificação por predição usando valores de pixel reconstruídos de um bloco vizinho temporal (em uma imagem diferente do bloco atual) de um bloco atual. Parte da inter-predição de padrões de codificação de vídeo principal adota um tecnologia de compensação de movimento à base de bloco, em que um melhor bloco de correspondência é encontrado em uma imagem de referência para o bloco atual. Esse processo é referido como Estimativa de Movimento (ME).
[023] Vetor de Movimento (MV). Na codificação por inter-predição, um vetor de movimento é usado para representar um deslocamento relativo entre um bloco codificado atual e um melhor bloco de correspondência em uma imagem de referência. Cada bloco obtido por partição tem um vetor de movimento correspondente a ser transmitido para um decodificador. Se o vetor de movimento de cada bloco for codificado e transmitido independentemente, especialmente quando blocos com tamanho menor são obtidos a partir da partição, mais bits devem ser consumidos. A fim de reduzir o número de bits usados para codificar o vetor de movimento, a correlação espacial entre blocos de imagem vizinhos pode ser usada na codificação de vídeo para prever o vetor de movimento do bloco a ser codificado atual com base no vetor de movimento do bloco codificado vizinho, e então, uma diferença de predição é codificada. Assim, o número de bits que representa o vetor de movimento pode ser reduzido de modo eficaz. No processo de codificação do vetor de movimento do bloco de imagem atual, o vetor de movimento do bloco codificado vizinho é geralmente usado para prever o vetor de movimento do macrobloco atual, e então, uma diferença de vetor de movimento (MVD) entre um valor de vetor de movimento predição (MVP) e um valor de estimativa real do vetor de movimento é codificada,
reduzindo, através disso, de modo eficaz o número de bits codificados para MV.
[024] Informações de Movimento. Visto que o vetor de movimento representa o deslocamento do bloco de imagem atual em relação a um bloco em uma imagem de referência, a fim de obter com precisão as informações do bloco de imagem indicado, além do vetor de movimento, um índice de referência também é necessário para indicar qual imagem de referência é usada para o bloco de imagem atual. Na tecnologia de codificação de vídeo, para a fatia atual, uma lista de imagem de referência pode ser usualmente estabelecida, e o índice de referência especifica qual imagem de referência listada na lista de imagem de referência é usada pelo bloco de imagem atual. Além disso, muitas tecnologias de codificação também suportam múltiplas listas de imagem de referência, assim, um índice é necessário para indicar qual lista de imagem de referência é usada, e esse índice pode ser referido como uma direção de referência. Na tecnologia de codificação de vídeo, as informações de codificação relacionadas ao movimento, como vetor de movimento, índice de referência e direção de referência, podem ser coletivamente referidas como informações de movimento.
[025] Direção de taxa otimizada (RDO). Há usualmente dois indicadores para avaliar a eficiência de codificação de vídeo: taxa de bits e razão entre sinal de pico e ruído (PSNR). Quanto menor o fluxo de bits, maior é a taxa de compressão; mais alta é a PSNR, melhor é a qualidade da imagem reconstruída. A seleção de um modo tem usualmente como base uma avaliação completa dos dois indicadores. Por exemplo, o custo correspondendo a um modo pode ser calculado de acordo com a seguinte fórmula: J(modo)=D+λ*R, em que D representa uma distorção, usualmente medida por uma soma de diferenças quadradas (SSE) entre um bloco de imagem reconstruída e um bloco de imagem de fonte; λ representa um multiplicador de Lagrange; R representa um número atual de bits necessário para codificar um bloco de imagem nesse modo,
incluindo um número total de bits necessários para codificar as informações de modo, informações de movimento, residuais, etc. A decisão de seleção no modo de codificação com base na política de RDO pode garantir usualmente um desempenho de codificação satisfatório.
[026] A Figura 1 mostra esquematicamente uma estrutura de um sistema de codificação de vídeo, que pode ser usado para implementar o processamento em um codificador de acordo com um exemplo da presente invenção. A estrutura do sistema de codificação de vídeo pode incluir um módulo de intrapredição, um módulo de compensação de movimento/estimativa de movimento, um buffer de imagem de referência, um módulo de filtragem em ciclo, um módulo de reconstrução, um módulo de transformada, um módulo de quantização, um módulo de transformada inverso, um módulo de quantização inverso, um codificador de entropia, etc. Similarmente, a estrutura do sistema de decodificação de vídeo correspondendo à estrutura do sistema de codificação de vídeo pode ser usado para implementar o processamento em um decodificador de acordo com um exemplo da presente invenção.
[027] Alguns exemplos da presente invenção serão descritos em detalhes abaixo com referência aos desenhos anexos. IMPLEMENTAÇÃO 1
[028] A Figura 2 é um fluxograma de um método de decodificação de vídeo de acordo com um exemplo da presente invenção. Esse método pode ser aplicado a um decodificador, e pode incluir as etapas 201 a 203.
[029] Etapa 201, se um bloco atual satisfaz as condições específicas para habilitar o modo de partição geométrica com partição triangular e o mesmo é determinado para habilitar o modo de partição geométrica com partição triangular, o decodificador de vídeo é configurado para a partição do bloco atual em um primeiro sub-bloco triangular e um segundo sub-bloco triangular, isto é,
o bloco atual pode ser particionado em dois sub-blocos triangulares.
[030] Etapa 202, o decodificador de vídeo é configurado para obter as primeiras informações alvo de movimento do primeiro sub-bloco triangular e as segundas informações alvo de movimento do segundo sub-bloco triangular. As primeiras informações alvo de movimento podem ser diferentes das segundas informações alvo de movimento.
[031] Etapa 203, o decodificador de vídeo é configurado para realizar o processo de decodificação do bloco atual com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento.
[032] Em um exemplo, após receber um fluxo de bits codificado, o decodificador de vídeo pode realizar um processo de decodificação de dados codificados correspondendo ao bloco atual no fluxo de bits codificado recebido com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento.
[033] No exemplo da presente invenção, se um bloco atual satisfaz as condições específicas para habilitar o modo de partição geométrica com partição triangular e o mesmo é determinado para habilitar o modo de partição geométrica com partição triangular, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular. Portanto, o bloco atual pode ser previsto com base nas primeiras informações alvo de movimento do primeiro sub-bloco triangular e nas segundas informações alvo de movimento do segundo sub-bloco triangular. Portanto, a precisão de predição, o desempenho de predição e o desempenho de codificação podem ser melhorados e residuais de codificação podem ser reduzidos. IMPLEMENTAÇÃO 2
[034] Em referência à Figura 3, que é um fluxograma de um método de codificação de vídeo de acordo com um exemplo da presente invenção. O método pode ser aplicado a um codificador e pode incluir as etapas 301 a 303.
[035] Etapa 301, se um bloco atual satisfaz as condições específicas para habilitar o modo de partição geométrica com partição triangular e o mesmo é determinado para habilitar o modo de partição geométrica com partição triangular, o codificador de vídeo é configurado para a partição do bloco atual no primeiro sub-bloco triangular e no segundo sub-bloco triangular, isto é, o bloco atual pode ser particionado em dois sub-blocos triangulares.
[036] Etapa 302, o codificador de vídeo é configurado para obter as primeiras informações alvo de movimento do primeiro sub-bloco triangular e as segundas informações alvo de movimento do segundo sub-bloco triangular. As primeiras informações alvo de movimento podem ser diferentes das segundas informações alvo de movimento.
[037] Etapa 303, o codificador de vídeo é configurado para codificar o bloco atual com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento.
[038] Em um exemplo, o codificador de vídeo pode codificar o fluxo de bits correspondendo ao bloco atual com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento para obter um fluxo de bits codificado.
[039] No exemplo da presente invenção, se um bloco atual satisfaz as condições específicas para habilitar o modo de partição geométrica com partição triangular e o mesmo é determinado para habilitar o modo de partição geométrica com partição triangular, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular. Portanto, o bloco atual pode ser previsto com base nas primeiras informações alvo de movimento do primeiro sub-bloco triangular e segundas informações alvo de movimento do segundo sub-bloco triangular. Portanto, a precisão de predição, o desempenho de predição e o desempenho de codificação podem ser melhorados e residuais de codificação podem ser reduzidos. IMPLEMENTAÇÃO 3
[040] Na etapa 201 e etapa 301, o decodificador de vídeo/codificador de vídeo é configurado para determinar se o bloco atual satisfaz as condições específicas para habilitar o modo de partição geométrica com partição triangular; se sim, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular; e se não, o bloco atual não é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular. A determinação se o bloco atual satisfaz as condições específicas pode incluir as etapas de: determinar se o tipo de fatia de uma fatia atual em que o bloco atual está localizado, o modo de informações de movimento do bloco atual, e as informações de tamanho do bloco atual satisfazem as condições específicas.
[041] Por exemplo, se o tipo de fatia da fatia atual for uma fatia B ou uma fatia não I, pode-se determinar que o tipo de fatia satisfaz as condições específicas. Alternativamente, se o tipo de fatia da fatia atual permite a cópia intrabloco, pode-se determinar que o tipo de fatia satisfaz as condições específicas.
[042] Em um exemplo, se um modo de informações de movimento do bloco atual é um modo de mesclagem geral, pode-se determinar que o modo de informações de movimento satisfaz as condições específicas. Entretanto, quando o modo de informações de movimento do bloco atual é outro tipo de modo (como modo de Predição de Vetor de Movimento Avançado (AMVP) ou similares), também pode-se determinar que o modo de informações de movimento satisfaz as condições específicas.
[043] Em um exemplo, se a largura do bloco atual é maior ou igual a um primeiro valor, e uma altura do bloco atual é maior ou igual a um segundo valor,
pode-se determinar que as informações de tamanho do bloco atual satisfazem as condições específicas. Alternativamente, se a largura do bloco atual for maior ou igual a um terceiro valor, ou a altura do bloco atual for maior ou igual a um quarto valor, pode-se determinar que as informações de tamanho do bloco atual satisfazem as condições específicas. Alternativamente, se a largura do bloco atual é maior ou igual a um quinto valor e menor ou igual a um sexto valor, e a altura do bloco atual é maior ou igual a um sétimo valor e menor ou igual a um oitavo valor, pode-se determinar que as informações de tamanho do bloco atual satisfazem as condições específicas. Alternativamente, se a largura do bloco atual é maior ou igual a um nono valor e menor ou igual a um décimo valor, ou a altura do bloco atual é maior ou igual a um décimo primeiro valor e menor ou igual a um décimo segundo valor, pode-se determinar que as informações de tamanho do bloco atual satisfazem as condições específicas. Alternativamente, se a largura do bloco atual é maior ou igual a um décimo terceiro valor e menor ou igual a um décimo quarto valor, a altura do bloco atual é maior ou igual a um décimo quinto valor e menor ou igual a um décimo sexto valor, e uma área do bloco atual é maior ou igual a um décimo sétimo valor e menor ou igual a um décimo oitavo valor, pode-se determinar que as informações de tamanho do bloco atual satisfazem as condições específicas.
[044] Os valores acima podem ser definidos com base na experiência, como 8, 16, 32, 64, 128 e assim por diante. Em um exemplo, o primeiro valor pode ser 8, o segundo valor pode ser 8, o terceiro valor pode ser 8, o quarto valor pode ser 8, o quinto valor pode ser 8, o sexto valor pode ser 128, o sétimo valor pode ser 8, o oitavo valor pode ser 128, o nono valor pode ser 8, o décimo valor pode ser 32, o décimo primeiro valor pode ser 8, o décimo segundo valor pode ser 32, o décimo terceiro valor pode ser 8, o décimo quarto valor pode ser 64, o décimo quinto valor pode ser 8, o décimo sexto valor pode ser 64, o décimo sétimo valor pode ser 16 e o décimo oitavo valor pode ser 1024.
[045] Em relação à etapa 201 e à etapa 301, diversos exemplos são dados abaixo.
[046] Exemplo 1. Se o bloco atual satisfaz todas as seguintes condições, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub- bloco triangular; de outro modo, o bloco atual não é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular: a fatia atual é uma fatia B, isto é, a fatia atual permite duas listas de imagem de referência; o modo de informações de movimento do bloco atual é o modo de mesclagem geral; e a área (largura*altura) do bloco atual é maior ou igual a N*N, e N é 8, por exemplo.
[047] Exemplo 2. Se o bloco atual satisfaz todas as seguintes condições, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub- bloco triangular; de outro modo, o bloco atual não é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular: a fatia atual é uma fatia não I, isto é, a fatia atual permite pelo menos uma lista de imagem de referência; o modo de informações de movimento do bloco atual é o modo de mesclagem geral; e a área (largura * altura) do bloco atual é maior ou igual a N*N, e N é 8, por exemplo.
[048] Exemplo 3. Se o bloco atual satisfaz todas as seguintes condições, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub- bloco triangular; de outro modo, o bloco atual não é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular:
a fatia atual é uma fatia B, isto é, a fatia atual permite duas listas de imagem de referência; o modo de informações de movimento do bloco atual é o modo de mesclagem geral; e a largura ou altura do bloco atual é maior ou igual a N, e N é 8, por exemplo.
[049] Exemplo 4. Se o bloco atual satisfaz todas as seguintes condições, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub- bloco triangular; de outro modo, o bloco atual não é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular: a fatia atual é uma fatia não I, isto é, a fatia atual permite pelo menos uma lista de imagem de referência; o modo de informações de movimento do bloco atual é o modo de mesclagem geral; e a largura ou altura do bloco atual é maior ou igual a N, e N é 8, por exemplo.
[050] Exemplo 5. Se o bloco atual satisfaz todas as seguintes condições, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub- bloco triangular; de outro modo, o bloco atual não é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular: a fatia atual é uma fatia não I, isto é, a fatia atual permite pelo menos uma lista de imagem de referência; o modo de informações de movimento do bloco atual é o modo de mesclagem geral; a largura ou altura do bloco atual é maior ou igual a N, N é 8, por exemplo; e a largura ou altura do bloco atual é menor ou igual a M, e M é 128, por exemplo.
[051] Exemplo 6. Se o bloco atual satisfaz todas as seguintes condições, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub- bloco triangular; de outro modo, o bloco atual não é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular: a fatia atual é uma fatia não I, isto é, a fatia atual permite pelo menos uma lista de imagem de referência; o modo de informações de movimento do bloco atual é o modo de mesclagem geral; a largura ou altura do bloco atual é maior ou igual a N, N é 8, por exemplo; e a área (isto é, largura*altura) do bloco atual é menor ou igual a M*M, e M é 32, por exemplo.
[052] Exemplo 7. Se o bloco atual satisfaz todas as seguintes condições, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub- bloco triangular; de outro modo, o bloco atual não é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular: a fatia atual é uma fatia não I, isto é, a fatia atual permite pelo menos uma lista de imagem de referência; o modo de informações de movimento do bloco atual é o modo de mesclagem geral; a largura do bloco atual está dentro de uma faixa de [Wmín, Wmáx], Wmín é, por exemplo, 8 e Wmáx é, por exemplo, 64; a altura do bloco atual está dentro de uma faixa de [Hmín, Hmáx], Hmín é, por exemplo, 8, Hmáx é, por exemplo, 64; e a área (isto é, largura * altura) do bloco atual está dentro da faixa de [Smín, Smáx]. Smín é 16, por exemplo, e Smáx é 1024, por exemplo.
[053] Exemplo 8. Para qualquer um dos Exemplos 1 a 7, a restrição sobre o tipo de fatia pode ser modificada para: a fatia atual permite a cópia intrabloco
(isto é, permite a busca por blocos similares ao bloco atual nos blocos reconstruídos da fatia atual que foi decodificada). Por exemplo, para o Exemplo 1, as condições listadas podem se tornar: a fatia atual permite cópia intrabloco; o modo de informações de movimento do bloco atual é o modo de mesclagem geral; e a área (largura*altura) do bloco atual é maior ou igual a N*N, e N é 8, por exemplo.
[054] Exemplo 9. Para qualquer um dos Exemplos 1 a 8, a restrição sobre o modo de informações de movimento pode ser modificada para: o modo de informações de movimento do bloco atual é o modo de mesclagem geral, e nem qualquer um dentre um modo de partição de sub-bloco, um modo de múltiplas hipóteses, e um modo de mesclagem geral de codificação de diferença de informações de movimento. Isto é, quando qualquer um dentre modo de partição de sub-bloco, modo de múltiplas hipóteses, modo de mesclagem geral de codificação de diferença de informações de movimento é habilitado para o bloco atual, determina-se que o bloco atual não satisfaz as condições específicas e, assim, o bloco atual não é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular. IMPLEMENTAÇÃO 4
[055] Na etapa 201 e na etapa 301, se o bloco atual satisfaz as condições específicas para habilitar o modo de partição geométrica com partição triangular e determina-se habilitar o modo de partição geométrica com partição triangular, o decodificador de vídeo/codificador de vídeo é configurado para a partição do bloco atual no primeiro sub-bloco triangular e no segundo sub-bloco triangular. Em um exemplo, o bloco atual pode ser particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular com um primeiro método diagonal
(isto é, usando uma diagonal que forma um ângulo agudo (por exemplo, um ângulo de 45 graus) com a direção horizontal para direita), como mostrado na Figura 4A. Alternativamente, o bloco atual pode ser particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular com um segundo método diagonal (isto é, usando uma diagonal com um ângulo obtuso (por exemplo, um ângulo de 135 graus) da direção horizontal para direita), conforme mostrado na Figura 4B.
[056] Por exemplo, no decodificador/codificador, o bloco atual pode ser particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular através das seguintes abordagens.
[057] Abordagem 1. O codificador de vídeo concorda em particionar o bloco atual com o primeiro método diagonal por padrão por meio de acordo de protocolo, e o decodificador de vídeo concorda em particionar o bloco atual com o primeiro método diagonal por padrão por meio de acordo de protocolo. Com base nisso, o codificador de vídeo é configurado para a partição do bloco atual no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o primeiro método diagonal, e o decodificador de vídeo é configurado para a partição do bloco atual no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o primeiro método diagonal.
[058] Abordagem 2. O codificador de vídeo concorda em particionar o bloco atual com o segundo método diagonal por padrão por meio de acordo de protocolo, e o decodificador de vídeo concorda em particionar o bloco atual com o segundo método diagonal por padrão por meio de acordo de protocolo. Com base nisso, o codificador de vídeo é configurado para a partição do bloco atual no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o segundo método diagonal, e o decodificador de vídeo é configurado para a partição do bloco atual no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o segundo método diagonal.
[059] Abordagem 3. O codificador de vídeo é configurado para determinar um custo de distorção de taxa 1 correspondendo à partição com o primeiro método diagonal e um custo de distorção de taxa 2 correspondendo à partição com o segundo método diagonal. Se o custo de distorção de taxa 1 é menor que o custo de distorção de taxa 2, o codificador de vídeo é configurado para a partição do bloco atual no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o primeiro método diagonal. O fluxo de bits codificado enviado pelo codificador de vídeo para o decodificador porta as primeiras informações de indicação, e as primeiras informações de indicação especificam que o bloco atual é particionado com o primeiro método diagonal. O decodificador de vídeo é configurado para derivar o fluxo de bits codificado do codificador, e se o fluxo de bits codificado porta As primeiras informações de indicação, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o primeiro método diagonal. Por outro lado, se o custo de distorção de taxa 1 é maior que o custo de distorção de taxa 2, o codificador de vídeo particiona o bloco atual no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o segundo método diagonal. O fluxo de bits codificado enviado pelo codificador de vídeo para o decodificador porta as segundas informações de indicação, e as segundas informações de indicação especificam que o bloco atual é particionado com o segundo método diagonal. O decodificador de vídeo é configurado para derivar o fluxo de bits codificado do codificador, e se o fluxo de bits codificado porta as segundas informações de indicação, o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o segundo método diagonal. IMPLEMENTAÇÃO 5
[060] Na etapa 202 e na etapa 302, o decodificador de vídeo/codificador de vídeo pode obter as primeiras informações alvo de movimento do primeiro sub- bloco triangular e as segundas informações alvo de movimento do segundo sub- bloco triangular através das seguintes abordagens.
[061] Abordagem 1. Uma primeira lista de informações de candidato de movimento é construída, e a primeira lista de informações de candidato de movimento pode incluir uma pluralidade de informações de candidato de movimento; informações de candidato de movimento são selecionadas a partir da primeira lista de informações de candidato de movimento como as primeiras informações alvo de movimento do primeiro sub-bloco triangular. As primeiras informações alvo de movimento são excluídas da primeira lista de informações de candidato de movimento, e outras informações de candidato de movimento são selecionadas a partir das informações de candidato de movimento restantes na primeira lista de informações de candidato de movimento como nas segundas informações alvo de movimento do segundo sub-bloco triangular. Dessa maneira, pode-se garantir que as primeiras informações alvo de movimento sejam diferentes das segundas informações alvo de movimento.
[062] Em um exemplo, a fim de construir a primeira lista de informações de candidato de movimento, os blocos candidatos correspondendo ao bloco atual podem ser obtidos, e as informações de movimento dos blocos candidatos podem ser adicionadas à primeira lista de informações de candidato de movimento. Se um bloco candidato é um bloco de predição unidirecional, as informações de movimento do bloco candidato incluem informações de movimento unidirecional do bloco candidato; se um bloco candidato é um bloco de predição bidirecional, as informações de movimento do bloco candidato incluem primeiras informações de movimento do bloco candidato (isto é, informações de movimento L0 do bloco candidato) e segundas informações de movimento do bloco candidato (isto é, informações de movimento L1 do bloco candidato), mas não incluem informações de movimento pesadas das primeiras informações de movimento do bloco candidato e das segundas informações de movimento do bloco candidato.
[063] Por exemplo, em referência à Figura 5A, os blocos nas 7 posições mostradas podem ser usados como blocos candidatos correspondendo ao bloco atual, em que bloco 1, bloco 2, bloco 3, bloco 4 e bloco 5 são blocos candidatos na fatia atual (isto é, blocos candidatos espaciais), e blocos 6 e 7 são blocos candidatos na imagem de referência (isto é, blocos candidatos de domínio de tempo). As informações de movimento dos blocos candidatos nessas 7 posições podem ser coletadas para construir a primeira lista de informações de candidato de movimento. Se o comprimento da primeira lista de informações de candidato de movimento não alcançar um comprimento máximo pré-definido MaxL (por exemplo, 7), informações de movimento de diversos sub-blocos não vizinhos espaciais disponíveis podem ser adicionadas ao final da primeira lista de informações de candidato de movimento (isto é, um sub-bloco não vizinho espacial é também referido como um bloco candidato correspondendo ao bloco atual), e o sub-bloco não vizinho espacial se refere à um sub-bloco que não tem linha limite ou ponto limite com o bloco atual.
[064] Em um exemplo, após as informações de movimento dos blocos candidatos serem coletadas, as informações de movimento são classificadas em uma ordem de informações de movimento unidirecional, informações de movimento L0 de predição bidirecional, e informações de movimento L1 de predição bidirecional, ou em uma ordem de informações de movimento L0 de predição bidirecional, informações de movimento L1 de predição bidirecional, e informações de movimento unidirecional, e as informações de movimento coletadas são adicionadas à primeira lista de informações de candidato de movimento uma a uma de acordo com o resultado de classificação.
[065] Em um exemplo, cada vez que as informações de movimento são adicionadas à primeira lista de informações de candidato de movimento, pode- se determinar a possibilidade de um número de informações de candidato de movimento na primeira lista de informações de candidato de movimento terem alcançado um limite superior M. Se o número tiver alcançado o limite superior M, rejeita-se adicionar as informações de movimento, e o processo para adicionar informações de movimento é finalizado. Se o número não tiver alcançado o limite superior M, pode-se continuar para adicionar informações de movimento, por exemplo, as próximas informações de movimento são adicionadas à primeira lista de informações de candidato de movimento após a adição das informações de movimento atuais ser concluída. O valor do limite superior M pode ser configurado com base na experiência, para ser 5, por exemplo.
[066] Em um exemplo, cada vez que as informações de movimento são adicionadas à primeira lista de informações de candidato de movimento, pode- se determinar a possibilidade de as informações de movimento serem consistentes com algumas informações de movimento que já existem na primeira lista de informações de candidato de movimento. Se há tais informações de movimento duplicadas na primeira lista de informações de candidato de movimento, rejeita-se adicionar as informações de movimento à primeira lista de informações de candidato de movimento. Se não há tais informações de movimento duplicadas, as informações de movimento são adicionadas à primeira lista de informações de candidato de movimento. Dessa maneira, pode- se duplicar as informações de movimento na primeira lista de informações de candidato de movimento. Alternativamente, também é possível não determinar se as informações de movimento a serem adicionadas duplicam com algumas informações de movimento existentes na primeira lista de informações de candidato de movimento, mas adicionam diretamente as informações de movimento à primeira lista de informações de candidato de movimento.
[067] Em um exemplo, quando todas as informações de movimento coletadas são adicionadas à primeira lista de informações de candidato de movimento, o número de informações de candidato de movimento na primeira lista de informações de candidato de movimento é menor que o limite superior M, então, nenhuma informação de movimento pode ser preenchida na primeira lista de informações de candidato de movimento.
[068] Em um exemplo, quando a primeira lista de informações de candidato de movimento é construída, cada vez que as informações de movimento do bloco candidato do bloco atual devem ser coletadas, não há necessidade de comparar as informações de movimento do bloco candidato com as informações de movimento que foram coletadas para o bloco atual para ver se são iguais, mas coletar diretamente as informações de movimento do bloco candidato.
[069] A seguir, diversos exemplos de construção da primeira lista de informações de candidato de movimento na Abordagem 1 serão descritos.
[070] Exemplo 1. A partir dos blocos candidatos correspondendo ao bloco atual, após obter as informações de movimento (como vetores de movimento) com base na sequência de posição mostrada na Figura 5A, as informações de movimento obtidas são classificadas em uma ordem de vetor de movimento unidirecional, vetor de movimento L0 de predição bidirecional, e vetor de movimento L1 de predição bidirecional (sem um valor médio de vetor de movimento L0 e vetor de movimento L1 de predição bidirecional), e as informações de movimento obtidas são adicionadas à primeira lista de informações de candidato de movimento uma a uma de acordo com o resultado de classificação. Durante o processo de preenchimento, se o número de informações de candidato de movimento na primeira lista de informações de candidato de movimento alcançar M (por exemplo, 5), o preenchimento é interrompido. Durante o processo de preenchimento, é necessário verificar repetidamente as duplicatas para garantir que a primeira lista de informações de candidato de movimento não tenha as mesmas informações de movimento. Quando o número de informações de candidato de movimento é menor que M após o processo de preenchimento ser concluído, nenhum vetor de movimento é preenchido.
[071] Exemplo 2. A partir dos blocos candidatos correspondendo ao bloco atual, após obter as informações de movimento (como vetores de movimento) com base na sequência de posição mostrada na Figura 5A, as informações de movimento obtidas são classificadas em uma ordem de vetor de movimento unidirecional, vetor de movimento L0 de predição bidirecional, e vetor de movimento L1 de predição bidirecional (sem um valor médio de vetor de movimento L0 e vetor de movimento L1 de predição bidirecional), e as informações de movimento obtidas são adicionadas à primeira lista de informações de candidato de movimento uma a uma de acordo com o resultado de classificação. Durante o processo de preenchimento, se o número de informações de candidato de movimento na primeira lista de informações de candidato de movimento alcançar M (por exemplo, 5), o preenchimento das informações de movimento é interrompido. Durante o processo de preenchimento, não é necessário verificas as duplicatas na primeira lista de informações de candidato de movimento. Quando o número de informações de candidato de movimento é menor que M após o processo de preenchimento ser concluído, nenhum vetor de movimento é preenchido.
[072] Exemplo 3. A partir dos blocos candidatos correspondendo ao bloco atual, após obter as informações de movimento (como vetores de movimento) com base na sequência de posição mostrada na Figura 5A, as informações de movimento obtidas são classificadas em uma ordem de vetor de movimento L0 de predição bidirecional, vetor de movimento L1 de predição bidirecional, e vetor de movimento unidirecional (sem um valor médio de vetor de movimento L0 e vetor de movimento L1 da predição bidirecional), e as informações de movimento obtidas são adicionadas à primeira lista de informações de candidato de movimento uma a uma de acordo com o resultado de classificação. Durante o processo de preenchimento, se o número de informações de candidato de movimento na primeira lista de informações de candidato de movimento alcançar M (por exemplo, 5), o preenchimento é interrompido. Durante o processo de preenchimento, é necessário verificar repetidamente as duplicatas para garantir que a primeira lista de informações de candidato de movimento não tenha as mesmas informações de movimento. Quando o número de informações de candidato de movimento é menor que M após o processo de preenchimento ser concluído, nenhum vetor de movimento é preenchido.
[073] Exemplo 4. A partir dos blocos candidatos correspondendo ao bloco atual, as informações de movimento (como vetores de movimento) são obtidas com base na sequência de posição mostrada na Figura 5A. Se os blocos candidatos são blocos de predição unidirecionais, isto é, informações de movimento unidirecional são usadas para os blocos candidatos, as informações de movimento unidirecional são adicionadas à primeira lista de informações de candidato de movimento com base na sequência. Se os blocos candidatos são blocos de predição bidirecional, isto é, informações de movimento bidirecional são usados para os blocos candidatos, informações de movimento L0 ou informações de movimento L1 são adicionadas à primeira lista de informações de candidato de movimento com base na sequência. Durante o processo de preenchimento, se o número de informações de candidato de movimento na primeira lista de informações de candidato de movimento alcançar M (por exemplo, 5), o preenchimento é interrompido. Durante o processo de preenchimento, é necessário verificar repetidamente as duplicatas para garantir que a primeira lista de informações de candidato de movimento não tenha as mesmas informações de movimento. Quando o número de informações de candidato de movimento é menor que M após o processo de preenchimento ser concluído, nenhum vetor de movimento é preenchido.
[074] Exemplo 5. Se um comprimento da primeira lista de informações de candidato de movimento construída após atravessar todos os blocos candidatos mostrados na Figura 5A não alcançar o comprimento máximo pré-definido MaxL (por exemplo, 7), informações de movimento de diversos sub-blocos não vizinhos espaciais disponíveis são adicionadas ao final da primeira lista de informações de candidato de movimento. Os sub-blocos não vizinhos espaciais se referem aos sub-blocos que não têm linhas limites ou pontos limites com o bloco atual.
[075] Exemplo 6. A partir dos blocos candidatos correspondendo ao bloco atual, após obter as informações de movimento (como vetores de movimento) com base na sequência de posição mostrada na Figura 5A, as informações de movimento obtidas são classificadas em uma ordem de vetor de movimento unidirecional, vetor de movimento L0 de predição bidirecional, e vetor de movimento L1 de predição bidirecional (sem um valor médio do vetor de movimento L0 e vetor de movimento L1 de predição bidirecional), e as informações de movimento obtidas são adicionadas à primeira lista de informações de candidato de movimento uma a uma de acordo com o resultado de classificação. Durante o processo de preenchimento, se o número de informações de candidato de movimento na primeira lista de informações de candidato de movimento alcançar M (por exemplo, 5), o preenchimento das informações de movimento é interrompido. Durante o processo de preenchimento, para o vetor de movimento unidirecional e o vetor de movimento L0 de predição bidirecional, é necessário verificar as duplicatas nas informações de movimento existentes na primeira lista de informações de candidato de movimento para garantir que a primeira lista de informações de candidato de movimento não tenha as mesmas informações de movimento; e para o vetor de movimento L1 de predição bidirecional, não é necessário verificar as duplicatas, visto que o custo é alto para um grande número de informações de movimento na primeira lista de informações de candidato de movimento (devido ao fato de que todas as informações de movimento na primeira lista de informações de candidato de movimento são necessárias para serem comparadas).
[076] Exemplo 7. Ao adicionar as informações de movimento à primeira lista de informações de candidato de movimento, dois processos são envolvidos. Um processo consiste no processo de coleta de informações de movimento, isto é, as informações de movimento dos blocos candidatos são coletadas, e o outro processo consiste no processo de adição de informações de movimento, isto é, as informações de movimento são adicionadas à primeira lista de informações de candidato de movimento. Um exemplo da processo de coleta de informações de movimento é descrito abaixo.
[077] No processo de coleta das informações de movimento dos blocos candidatos, pode-se determinar a possibilidade de as informações de movimento do bloco candidato atual serem exatamente as mesmas das informações de movimento anteriormente coletadas. Se as informações de movimento do bloco candidato atual são exatamente iguais às informações de movimento anteriormente coletadas, o processo de coleta das informações de movimento do bloco candidato atual pode ser pulado. Nesse exemplo, as informações de movimento do bloco candidato atual podem ser comparadas apenas às informações de movimento do bloco candidato próximo ao bloco candidato atual.
[078] Por exemplo, em referência à Figura 5A, em lugar primeiro, as informações de movimento do bloco candidato 1 são coletadas. Visto que o bloco candidato 1 é o primeiro bloco candidato, nenhuma comparação é necessária, e as informações de movimento do bloco candidato 1 são coletadas diretamente.
[079] Então, quando as informações de movimento do bloco candidato 2 são coletadas, o mesmo pode ser determinado se o bloco candidato 1 está disponível. Se estiver disponível, pode-se determinar a possibilidade de as informações de movimento do bloco candidato 2 serem exatamente iguais àquelas do bloco candidato 1. Se forem exatamente as mesmas, a coleta das informações de movimento do bloco candidato 2 não é realizada, e se não forem iguais, a coleta das informações de movimento do bloco candidato 2 é realizada.
[080] Então, ao coletar as informações de movimento do bloco candidato 3, o mesmo pode ser determinado se o bloco candidato 2 que está próximo do bloco candidato 3 está disponível. Se bloco candidato 2 está disponível, pode-se determinar a possibilidade de as informações de movimento do bloco candidato 3 e as informações de movimento do bloco candidato 2 serem exatamente as mesmas. Se forem exatamente as mesmas, a coleta das informações de movimento do bloco candidato 3 não é realizada, e se não forem iguais, a coleta das informações de movimento do bloco candidato 3 é realizada. Deve-se notar que as informações de movimento do bloco candidato 3 não são mais comparadas às informações de movimento do bloco candidato 1 que está longe do bloco candidato 3.
[081] Então, ao coletar as informações de movimento do bloco candidato 4, o mesmo pode ser determinado se o bloco candidato 1 que está próximo do bloco candidato 4 está disponível. Se bloco candidato 1 está disponível, pode-se determinar a possibilidade de as informações de movimento do bloco candidato 4 e as informações de movimento do bloco candidato 1 serem exatamente as mesmas. Se forem exatamente as mesmas, a coleta das informações de movimento do bloco candidato 4 não é realizada, e se não forem iguais, a coleta das informações de movimento do bloco candidato 4 é realizada. Deve-se notar que as informações de movimento do bloco candidato 4 não são mais comparadas às informações de movimento dos blocos candidatos 2 e 3 que estão longes do bloco candidato 4.
[082] Então, ao coletar as informações de movimento do bloco candidato 5, o mesmo pode ser determinado se o bloco candidato 1 que está próximo do bloco candidato 5 está disponível. Se o bloco candidato 1 está disponível, pode- se determinar a possibilidade de as informações de movimento do bloco candidato 5 serem exatamente iguais àquelas do bloco candidato 1. Se forem exatamente as mesmas, as informações de movimento do bloco candidato 5 não são coletadas. Se não forem iguais, o mesmo pode ser determinado se o bloco candidato 2 que está próximo do bloco candidato 5 está disponível. Se disponíveis, pode-se determinar a possibilidade de as informações de movimento do bloco candidato 5 e as informações de movimento do bloco candidato 2 erem exatamente as mesmas. Se forem exatamente as mesmas, a coleta das informações de movimento do bloco candidato 5 não é realizada, e se não forem iguais, a coleta das informações de movimento do bloco candidato 5 é realizada. Deve-se notar que as informações de movimento do bloco candidato 5 não são mais comparadas às informações de movimento dos blocos candidatos 3 e 4 que estão longes do bloco candidato 5.
[083] Exemplo 8. No processo de coleta das informações de movimento dos blocos candidatos, não há necessidade para determinar se as informações de movimento do bloco candidato atual são exatamente as mesmas informações de movimento anteriormente coletadas, mas as informações de movimento do bloco candidato atual são diretamente coletadas. Mesmo se as informações de movimento do bloco candidato atual forem exatamente as mesmas informações de movimento anteriormente coletadas, subsequentemente, é possível realizar operações de verificação de duplicata para evitar as mesmas informações de movimento na primeira lista de informações de candidato de movimento.
[084] A seguir, o processo de seleção de informações de candidato de movimento da primeira lista de informações de candidato de movimento como as primeiras informações alvo de movimento do primeiro sub-bloco triangular na Abordagem 1 será descrito.
[085] Abordagem a1. O codificador de vídeo pode definir as primeiras informações alvo de movimento padrão através do acordo do protocolo. Por exemplo, o codificador de vídeo pode definir as informações de candidato de movimento de topo na primeira lista de informações de candidato de movimento como as primeiras informações alvo de movimento do primeiro sub-bloco triangular por padrão. O decodificador de vídeo pode definir primeiras informações alvo de movimento padrão através do acordo do protocolo. Por exemplo, o decodificador de vídeo pode definir as informações de candidato de movimento de topo na primeira lista de informações de candidato de movimento como as primeiras informações alvo de movimento do primeiro sub-bloco triangular por padrão.
[086] Abordagem a2. O codificador de vídeo pode determinar um custo de distorção de taxa correspondendo a cada uma das informações de candidato de movimento na primeira lista de informações de candidato de movimento, e usar as informações de candidato de movimento correspondendo o custo de distorção de taxa mais baixo que as informações alvo de movimento do primeiro sub-bloco triangular. O fluxo de bits codificado enviado pelo codificador de vídeo para o decodificador pode portar as terceiras informações de indicação, e as terceiras informações de indicação especificam um valor de índice das primeiras informações alvo de movimento na primeira lista de informações de candidato de movimento. O decodificador de vídeo é configurado para derivar o fluxo de bits codificado do codificador. Se o fluxo de bits codificado porta as terceiras informações de indicação, o valor de índice é usado para derivar as informações de candidato de movimento correspondendo as informações de índice da primeira lista de informações de candidato de movimento, e as informações de candidato de movimento são determinadas como as primeiras informações alvo de movimento.
[087] A seguir, o processo de seleção de outras informações de candidato de movimento da primeira lista de informações de candidato de movimento como as segundas informações alvo de movimento do segundo sub-bloco triangular na Abordagem 1 será descrito.
[088] Abordagem b1. O codificador de vídeo pode definir as segundas informações alvo de movimento padrão através do acordo do protocolo. Por exemplo, o codificador de vídeo pode definir as segundas informações de candidato de movimento de topo na primeira lista de informações de candidato de movimento como as segundas informações alvo de movimento do segundo sub-bloco triangular por padrão. O decodificador de vídeo pode definir as segundas informações alvo de movimento padrão através do acordo do protocolo. Por exemplo, o decodificador de vídeo pode definir as segundas informações de candidato de movimento de topo na primeira lista de informações de candidato de movimento como as segundas informações alvo de movimento do segundo sub-bloco triangular por padrão.
[089] Abordagem b2. O codificador de vídeo pode excluir as primeiras informações alvo de movimento da primeira lista de informações de candidato de movimento (isto é, não selecionar as primeiras informações alvo de movimento na primeira lista de informações de candidato de movimento) e, com base nisso, o codificador de vídeo pode determinar um custo de distorção de taxa correspondendo a cada uma das informações de candidato de movimento restantes na primeira lista de informações de candidato de movimento (isto é, as informações de candidato de movimento restantes após a exclusão das primeiras informações alvo de movimento), e usar as informações de candidato de movimento correspondendo ao custo de distorção de taxa mínimo como as segundas informações alvo de movimento do segundo sub-bloco triangular. O fluxo de bits codificado enviado pelo codificador de vídeo para o decodificador pode portar quartas informações de indicação, que especificam um valor de índice das segundas informações alvo de movimento na primeira lista de informações de candidato de movimento. O decodificador de vídeo é configurado para derivar o fluxo de bits codificado do codificador. Se o fluxo de bits codificado porta as quartas informações de indicação, o valor de índice é usado para selecionar as informações de candidato de movimento correspondendo às informações de índice da primeira lista de informações de candidato de movimento e, então, as informações de candidato de movimento são determinadas como as segundas informações alvo de movimento. IMPLEMENTAÇÃO 6
[090] Na etapa 202 e na etapa 302, o decodificador de vídeo/codificador de vídeo pode obter as primeiras informações alvo de movimento do primeiro sub- bloco triangular e as segundas informações alvo de movimento do segundo sub- bloco triangular através das seguintes abordagens.
[091] Abordagem 2. Uma segunda lista de informações de candidato de movimento correspondendo ao primeiro sub-bloco triangular e uma terceira lista de informações de candidato de movimento correspondendo ao segundo sub-
bloco triangular é construída. A segunda lista de informações de candidato de movimento inclui uma pluralidade de informações de candidato de movimento. A terceira lista de informações de candidato de movimento inclui uma pluralidade de informações de candidato de movimento. As informações de candidato de movimento são selecionadas a partir da segunda lista de informações de candidato de movimento como as primeiras informações alvo de movimento do primeiro sub-bloco triangular como as primeiras informações alvo de movimento do primeiro sub-bloco triangular, e as informações de candidato de movimento são selecionadas a partir da terceira lista de informações de candidato de movimento como as segundas informações alvo de movimento do segundo sub-bloco triangular. As primeiras informações alvo de movimento são diferentes das segundas informações alvo de movimento.
[092] Em um exemplo, a fim de construir a segunda lista de informações de candidato de movimento correspondendo ao primeiro sub-bloco triangular, os primeiros blocos candidatos correspondendo ao primeiro sub-bloco triangular podem ser obtidos e as informações de movimento de cada primeiro bloco candidato podem ser adicionadas à segunda lista de informações de candidato de movimento. Se um primeiro bloco candidato é um bloco de predição unidirecional, as informações de movimento do primeiro bloco candidato incluem as informações de movimento unidirecional do primeiro bloco candidato; se o primeiro bloco candidato é um bloco de predição bidirecional, as informações de movimento do primeiro bloco candidato incluem primeiras informações de movimento do primeiro bloco candidato (isto é, informações de movimento L0 do primeiro bloco candidato) e/ou segundas informações de movimento do primeiro bloco candidato (isto é, informações de movimento L1 do primeiro bloco candidato), mas não incluem as informações de movimento pesadas das primeiras informações de movimento do primeiro bloco candidato e as segundas informações de movimento do primeiro bloco candidato.
[093] Em um exemplo, a fim de construir a terceira lista de informações de candidato de movimento correspondendo ao segundo sub-bloco triangular, os segundos blocos candidatos correspondendo ao segundo sub-bloco triangular podem ser obtidos, e as informações de movimento de cada segundo bloco candidato podem ser adicionadas à terceira lista de informações de candidato de movimento. Se um segundo bloco candidato é um bloco de predição unidirecional, as informações de movimento do segundo bloco candidato incluem as informações de movimento unidirecional do segundo bloco candidato; se o segundo bloco candidato é um bloco de predição bidirecional, as informações de movimento do segundo bloco candidato incluem primeiras informações de movimento do segundo bloco candidato (isto é, informações de movimento L0 do segundo bloco candidato) e/ou segundas informações de movimento do segundo bloco candidato (isto é, informações de movimento L1 do segundo bloco candidato), mas não incluem as informações de movimento pesadas das primeiras informações de movimento do segundo bloco candidato e as segundas informações de movimento do segundo bloco candidato.
[094] Se o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o segundo método diagonal, o primeiro sub- bloco triangular é o sub-bloco triangular no lado direito superior, e o segundo sub-bloco triangular é o sub-bloco triangular no lado direito inferior. Com base nisso, os primeiros blocos candidatos correspondendo ao primeiro sub-bloco triangular pode incluir, mas não são limitados a: blocos vizinhos no lado superior do bloco atual, e blocos candidatos de domínio de tempo em imagens diferentes da fatia atual. Os segundos blocos candidatos correspondendo ao segundo sub- bloco triangular podem incluir, mas não são limitados a: blocos vizinhos no lado esquerdo do bloco atual, e blocos candidatos de domínio de tempo em outras imagens diferentes da fatia atual.
[095] Por exemplo, os blocos nas 5 posições mostradas na Figura 5B podem ser usados como os primeiros blocos candidatos correspondendo ao primeiro sub-bloco triangular, em que o bloco 2, o bloco 3 e o bloco 5 são blocos candidatos na fatia atual, e o bloco 6 e o bloco 7 são blocos candidatos em outras imagens (isto é, blocos candidatos de domínio de tempo). Os blocos nas 5 posições mostradas na Figura 5C podem ser usados como os segundos blocos candidatos correspondendo ao segundo sub-bloco triangular, em que bloco 1, bloco 4 e bloco 5 são blocos candidatos na fatia atual, e bloco 6 e bloco 7 são blocos candidatos em outras imagens (isto é, blocos candidatos de domínio de tempo).
[096] Em um exemplo, as informações de movimento dos blocos candidatos podem ser coletadas. Se o bloco candidato é um bloco de predição unidirecional, as informações de movimento do bloco candidato incluem as informações de movimento unidirecional do bloco candidato; se o bloco candidato é um bloco de predição bidirecional, as informações de movimento do bloco candidato incluem as informações de movimento L0 do bloco candidato e/ou as informações de movimento L1 do bloco candidato, mas não incluem as informações de movimento pesadas das informações de movimento L0 do bloco candidato e das informações de movimento L1 do bloco candidato.
[097] Em um exemplo, após as informações de movimento dos blocos candidatos (conforme mostrado na Figura 5B ou Figura 5C) serem coletadas, as informações de movimento coletadas são classificadas em uma ordem de informações de movimento unidirecional, informações de movimento L0 de predição bidirecional, e informações de movimento L1 de predição bidirecional, e as informações de movimento coletadas são adicionadas à segunda lista de informações de candidato de movimento ou à terceira lista de informações de candidato de movimento uma a uma de acordo com o resultado de classificação. Alternativamente, as informações de movimento coletadas são classificadas em uma ordem de informações de movimento L0 de predição bidirecional, informações de movimento L1 de predição bidirecional, e informações de movimento unidirecional, e as informações de movimento coletadas são adicionadas à segunda lista de informações de candidato de movimento ou à terceira lista de informações de candidato de movimento uma a uma de acordo com o resultado de classificação.
[098] Em um exemplo, cada vez que as informações de movimento é adicionado à segunda lista de informações de candidato de movimento ou à terceira lista de informações de candidato de movimento, pode-se determinar a possibilidade de um número de informações de candidato de movimento na segunda lista de informações de candidato de movimento ou na terceira lista de informações de candidato de movimento tiverem alcançado um limite superior M. Se o número tiver alcançado o limite superior M, rejeita-se adicionar as informações de movimento, e o processo para adicionar as informações de movimento é finalizado; e se o número não tiver alcançado o limite superior M, pode-se continuar a adicionar informações de movimento. Após as informações de movimento atuais serem adicionadas, as próximas informações de movimento são adicionadas à segunda lista de informações de candidato de movimento ou à terceira lista de informações de candidato de movimento. O valor do limite superior M pode ser 4, por exemplo.
[099] Em um exemplo, toda vez que as informações de movimento são adicionadas à segunda lista de informações de candidato de movimento ou à terceira lista de informações de candidato de movimento, pode-se determinar a possibilidade de as informações de movimento serem consistente com algumas informações de movimento que já existem na segunda lista de informações de candidato de movimento ou na terceira lista de informações de candidato de movimento. Se há tais informações de movimento duplicadas na segunda lista de informações de candidato de movimento ou na terceira lista de informações de candidato de movimento, rejeita-se adicionar as informações de movimento à segunda lista de informações de candidato de movimento ou à terceira lista de informações de candidato de movimento. Se não há tais informações de movimento, as informações de movimento são adicionadas à segunda lista de informações de candidato de movimento ou à terceira lista de informações de candidato de movimento. Dessa maneira, pode-se evitar informações de movimento duplicadas na segunda lista de informações de candidato de movimento ou na terceira lista de informações de candidato de movimento. Alternativamente, também é possível não determinar se as informações de movimento a serem adicionadas duplicam com some informações de movimento existentes, mas adicionam diretamente as informações de movimento à segunda lista de informações de candidato de movimento ou à terceira lista de informações de candidato de movimento.
[0100] Em um exemplo, se após todas as informações de movimento coletadas serem adicionadas à segunda lista de informações de candidato de movimento ou à terceira lista de informações de candidato de movimento, o número de informações de candidato de movimento na segunda lista de informações de candidato de movimento ou na terceira lista de informações de candidato de movimento é menor que o limite superior M, então, nenhuma informação de movimento pode ser preenchida na segunda lista de informações de candidato de movimento ou na terceira lista de informações de candidato de movimento.
[0101] Em um exemplo, ao construir a segunda lista de informações de candidato de movimento ou a terceira lista de informações de candidato de movimento, cada vez que as informações de movimento do bloco candidato do bloco atual forem coletadas, não há necessidade de comparar as informações de movimento do bloco candidato com as informações de movimento que foram coletadas para o bloco atual para observar se são consistentes, mas coletar diretamente as informações de movimento do bloco candidato.
[0102] Deve-se notar que os exemplos 1 a 8 na implementação acima 5 também podem ser aplicados à implementação 6, exceto pelo fato de que a primeira lista de informações de candidato de movimento é substituída pela segunda lista de informações de candidato de movimento ou pela terceira lista de informações de candidato de movimento. O bloco candidato é o bloco candidato mostrada na Figura 5B ou Figura 5C, em vez do bloco candidato mostrada na Figura 5A. As outras etapas são similares, e os detalhes não serem descritos na presente invenção novamente.
[0103] A seguir, o processo de seleção das informações de candidato de movimento da segunda lista de informações de candidato de movimento como as primeiras informações alvo de movimento do primeiro sub-bloco triangular na Abordagem 2 será descrito.
[0104] Abordagem c1. O codificador de vídeo pode definir as primeiras informações alvo de movimento padrão através do acordo do protocolo. Por exemplo, o codificador de vídeo pode definir as informações de candidato de movimento de topo na segunda lista de informações de candidato de movimento como as primeiras informações alvo de movimento do primeiro sub-bloco triangular por padrão. O decodificador de vídeo pode definir primeiras informações alvo de movimento padrão através do acordo do protocolo. Por exemplo, o decodificador de vídeo pode definir as informações de candidato de movimento de topo na segunda lista de informações de candidato de movimento como as primeiras informações alvo de movimento do primeiro sub-bloco triangular por padrão.
[0105] Abordagem c2. O codificador de vídeo pode determinar um custo de distorção de taxa correspondendo a cada uma das informações de candidato de movimento na segunda lista de informações de candidato de movimento, e usar as informações de candidato de movimento correspondendo ao menor custo de distorção de taxa que as informações alvo de movimento do primeiro sub-bloco triangular. O fluxo de bits codificado enviado pelo codificador de vídeo para o decodificador pode portar quintas informações de indicação, e as quintas informações de indicação especificam um valor de índice das primeiras informações alvo de movimento na segunda lista de informações de candidato de movimento. O decodificador de vídeo é configurado para derivar o fluxo de bits codificado do codificador. Se o fluxo de bits codificado porta as quintas informações de indicação, o valor de índice indicado pelas quintas informações de indicação é usado para recuperar as informações de candidato de movimento correspondentes da segunda lista de informações de candidato de movimento, e as informações de candidato de movimento são usadas como as primeiras informações alvo de movimento.
[0106] A seguir, o processo de seleção das informações de candidato de movimento da terceira lista de informações de candidato de movimento como as segundas informações alvo de movimento do segundo sub-bloco triangular na Abordagem 2 será descrito.
[0107] Abordagem d1. O codificador de vídeo pode definir as segundas informações alvo de movimento padrão através do acordo do protocolo. Por exemplo, o codificador de vídeo pode definir as informações de candidato de movimento de topo na terceira lista de informações de candidato de movimento como as segundas informações alvo de movimento do segundo sub-bloco triangular por padrão. O decodificador de vídeo pode definir as segundas informações alvo de movimento padrão através do acordo do protocolo. Por exemplo, o decodificador pode definir as informações de candidato de movimento de topo na terceira lista de informações de candidato de movimento como as segundas informações alvo de movimento do segundo sub-bloco triangular por padrão.
[0108] Abordagem d2. O codificador de vídeo pode determinar um custo de distorção de taxa correspondendo a cada uma das informações de candidato de movimento na terceira lista de informações de candidato de movimento, e usar as informações de candidato de movimento correspondendo ao custo de distorção de taxa mínimo como as segundas informações alvo de movimento do segundo sub-bloco triangular. O fluxo de bits codificado enviado pelo codificador de vídeo para o decodificador pode portar sextas informações de indicação, que especificam um valor de índice das segundas informações alvo de movimento na terceira lista de informações de candidato de movimento. O decodificador de vídeo é configurado para derivar o fluxo de bits codificado do codificador. Se o fluxo de bits codificado porta as sextas informações de indicação, o valor de índice indicado pelas sextas informações de indicação é usado para recuperar as informações de candidato de movimento correspondentes da terceira lista de informações de candidato de movimento e, então, as informações de candidato de movimento são usadas como as segundas informações alvo de movimento. IMPLEMENTAÇÃO 7
[0109] Se o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o primeiro método diagonal na etapa 201/etapa 301, então, na etapa 202/etapa 302, a primeira lista de informações de candidato de movimento pode ser construída e as primeiras informações alvo de movimento e as segundas informações alvo de movimento são determinadas com base na primeira lista de informações de candidato de movimento, isto é, a
Implementação 5 pode ser adotada. Se o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular com o segundo método diagonal na etapa 201/etapa 301, então, na etapa 202/etapa 302, uma segunda lista de informações de candidato de movimento correspondendo ao primeiro sub-bloco triangular e uma terceira lista de informações de candidato de movimento correspondendo ao segundo sub-bloco triangular pode ser construída, as primeiras informações alvo de movimento são determinadas com base na segunda lista de informações de candidato de movimento e nas segundas informações alvo de movimento é determinado com base nas terceira lista de informações de candidato de movimento, isto é, a Implementação 6 pode ser adotada.
[0110] Em um exemplo, não importa se o bloco atual é particionado com o primeiro método diagonal ou o bloco atual é particionado com o segundo método diagonal, a Implementação 5 pode ser adotada. Em outro exemplo, se o bloco atual é particionado com o primeiro método diagonal, isto é, o bloco atual é particionado em uma direção de 45 graus, implementação 5 pode ser adotada, e o limite superior M é 4, por exemplo. Se o bloco atual é particionado com o segundo método diagonal, isto é, o bloco atual é particionado em uma direção de 135 graus, a Implementação 6 pode ser adotada.
[0111] Em referência à Implementação 6, o primeiro sub-bloco triangular é um sub-bloco triangular no lado direito superior. Conforme mostrado na Figura 5B, os primeiros blocos candidatos do primeiro sub-bloco triangular são bloco 2, bloco 3, bloco 5, bloco 6 e bloco 7 em sequência, isto é, bloco 1 e bloco 4 que estão mais distantes do primeiro sub-bloco triangular são excluídos. Conforme mostrado na Figura 5C, os segundos blocos candidatos do segundo sub-bloco triangular são bloco 1, bloco 4, bloco 5, bloco 6 e bloco 7 em sequência, isto é, bloco 2 e bloco 3 que são distantes do segundo sub-bloco triangular são excluídos.
Além disso, o limite superior valor M pode ser 4, por exemplo.
[0112] Em um exemplo, um bit de sinalização pode ser codificado para indicar se a partição é realizada em uma direção de 45 graus ou 135 graus. Se está particionado em uma direção de 45 graus, o índice de combinações M*(M- 1) pode ser codificado de acordo com o código unitário truncado; se está particionado em uma direção de 135 graus, o índice de combinações M*M pode ser codificado de acordo com o código unitário truncado. Em um exemplo, se são particionadas em uma direção de 45 graus e a Implementação 5 é adotada (isto é, as primeiras informações alvo de movimento e as segundas informações alvo de movimento são selecionadas da primeira lista de informações de candidato de movimento), visto que há informações de candidato de movimento M (por exemplo, M é 4) na primeira lista de informações de candidato de movimento, as primeiras informações alvo de movimento têm M (por exemplo, M é 4) possíveis escolhas, e após excluir as primeiras informações alvo de movimento da primeira lista de informações de candidato de movimento, as segundas informações alvo de movimento têm (M-1) possíveis escolhas e, portanto, o índice de as informações de movimento é um índice de combinações M*(M-1). Se são particionadas em uma direção de 135 graus e a Implementação 6 é adotada (isto é, as primeiras informações alvo de movimento são selecionadas a partir da segunda lista de informações de candidato de movimento, e as segundas informações alvo de movimento são selecionadas a partir da terceira lista de informações de candidato de movimento), visto que há M (por exemplo, M é 4) informações de candidato de movimento na segunda lista de informações de candidato de movimento, as primeiras informações alvo de movimento têm M possíveis escolhas e visto que há M (por exemplo, M é 4) informações de candidato de movimento na terceira lista de informações de candidato de movimento, as segundas informações alvo de movimento têm M possíveis escolhas e, portanto, o índice das informações de movimento é um índice de M*M combinações. IMPLEMENTAÇÃO 8
[0113] Após as primeiras informações alvo de movimento do primeiro sub- bloco triangular e as segundas informações alvo de movimento do segundo sub- bloco triangular serem obtidas, com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento, a compensação de movimento pode ser realizada no primeiro sub-bloco triangular e no segundo sub-bloco triangular através das seguintes abordagens.
[0114] Abordagem 1. O bloco atual é particionado em uma pluralidade de sub-blocos, a largura de cada sub-bloco pode ser maior ou igual a 2, e a altura de cada sub-bloco é maior ou igual a 2. Para cada sub-bloco, se o sub-bloco está localizado no primeiro sub-bloco triangular, a compensação de movimento é realizada no sub-bloco com base nas primeiras informações alvo de movimento do primeiro sub-bloco triangular para obter o valor de predição do sub-bloco; se o sub-bloco está localizado no segundo sub-bloco triangular, a compensação de movimento é realizada no sub-bloco com base nas segundas informações alvo de movimento do segundo sub-bloco triangular para obter o valor de predição do sub-bloco; se o sub-bloco não está completamente localizado no primeiro sub-bloco triangular nem completamente localizado no segundo sub-bloco triangular (isto é, o sub-bloco está localizado através da diagonal separando o primeiro sub-bloco triangular do segundo sub-bloco triangular), a compensação pesada é realizada no sub-bloco com base nas primeiras informações alvo de movimento do primeiro sub-bloco triangular e nas segundas informações alvo de movimento do segundo sub-bloco triangular para obter o valor de predição do sub-bloco. A compensação pesada pode incluir as etapas de: obter um primeiro valor de predição do sub-bloco com base nas primeiras informações alvo de movimento; obter um segundo valor de predição do sub-bloco com base nas segundas informações alvo de movimento; e realizar a compensação pesada para o sub-bloco com base no primeiro valor de predição, um primeiro coeficiente de peso correspondendo ao primeiro valor de predição, ao segundo valor de predição, e um segundo coeficiente de peso correspondendo ao segundo valor de predição.
[0115] Por exemplo, em referência à Figura 6A, o bloco atual pode ser particionado em sub-bloco 1, sub-bloco 2, sub-bloco 3 e sub-bloco 4. Em aplicações práticas, o bloco atual pode ser particionado em mais sub-blocos, visto que a largura de cada sub-bloco é maior ou igual a 2 e a altura de cada sub- bloco é maior ou igual a 2. A seguir, a descrição será dada com referência à partição de sub-bloco mostrada na Figura 6A como um exemplo.
[0116] Para o sub-bloco 2, visto que o sub-bloco 2 está localizado no primeiro sub-bloco triangular, as primeiras informações alvo de movimento são usadas para realizar a compensação de movimento no sub-bloco 2 para obter o valor de predição. Para o sub-bloco 3, visto que o sub-bloco 3 está localizado no segundo sub-bloco triangular, as segundas informações alvo de movimento são usadas para realizar a compensação de movimento no sub-bloco 3 para obter o valor de predição. Para o sub-bloco 1, visto que o sub-bloco 1 não está completamente no primeiro sub-bloco triangular nem completamente no segundo sub-bloco triangular, um primeiro valor de predição P1 do sub-bloco 1 é determinado com base nas primeiras informações alvo de movimento, e um segundo valor de predição P2 do sub-bloco 1 é determinado com base nas segundas informações alvo de movimento. Assumindo que o primeiro coeficiente de peso correspondendo a P1 é um (como 0,5), e o segundo coeficiente de peso correspondendo a P2 é b (como 0,5), então, a compensação pesada é realizada no sub-bloco 1 com base em P1, a, P2, e b. O valor de predição do sub-bloco 1 após a compensação pesada é igual a, por exemplo, P1*a+P2*b. A compensação de movimento para o sub-bloco 4 é similar à compensação de movimento para o sub-bloco 1, e não será repetida no presente documento.
[0117] Abordagem 2. O bloco atual é particionado em uma primeira área de sub-bloco, uma segunda área de sub-bloco, e uma terceira área de sub-bloco, em que a primeira área de sub-bloco está localizada no primeiro sub-bloco triangular, a segunda área de sub-bloco está localizada no segundo sub-bloco triangular, e a distância entre o centro de cada sub-bloco na terceira área de sub- bloco e a diagonal separando o primeiro sub-bloco triangular do segundo sub- bloco triangular é menor que um limite pré-definido. A compensação de movimento é realizada em cada sub-bloco na primeira área de sub-bloco com base nas primeiras informações alvo de movimento do primeiro sub-bloco triangular, a compensação de movimento é realizada em cada sub-bloco na segunda área de sub-bloco com base nas segundas informações alvo de movimento do segundo sub-bloco triangular; e a compensação pesada é realizada em cada sub-bloco na terceira área de sub-bloco com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento. A compensação pesada pode incluir as etapas de: para cada sub- bloco na terceira área de sub-bloco, determinar um primeiro valor de predição do sub-bloco com base nas primeiras informações alvo de movimento, e determinar um segundo valor de predição do sub-bloco com base nas segundas informações alvo de movimento; com base no primeiro valor de predição, um primeiro coeficiente de peso correspondendo ao primeiro valor de predição, o segundo valor de predição, e um segundo coeficiente de peso correspondendo ao segundo valor de predição, realizar a compensação pesada no sub-bloco, em que se o sub-bloco está localizado ou principalmente localizado no primeiro sub- bloco triangular, o primeiro coeficiente de peso é maior que o segundo coeficiente de peso; se o sub-bloco está localizado ou principalmente localizado no segundo sub-bloco triangular, o primeiro coeficiente de peso é menor que o segundo coeficiente de peso; se o sub-bloco está localizado através da diagonal separando o primeiro sub-bloco triangular do segundo sub-bloco triangular, o primeiro coeficiente de peso é igual ao segundo coeficiente de peso.
[0118] Cada sub-bloco na terceira área de sub-bloco pode ser um sub-bloco 1*1, isto é, um bloco de pixel único, ou um sub-bloco N*M, em que N pode ser maior ou igual a 1, e M também pode ser maior ou igual a 1.
[0119] Por exemplo, em referência à Figura 6B, o bloco atual pode ser particionado em uma primeira área de sub-bloco, uma segunda área de sub- bloco, e uma terceira área de sub-bloco. A primeira área de sub-bloco está localizada no primeiro sub-bloco triangular e, assim, as primeiras informações alvo de movimento do primeiro sub-bloco triangular podem ser usadas para realizar a compensação de movimento em cada sub-bloco na primeira área de sub-bloco para obter um valor de predição. A segunda área de sub-bloco está localizada no segundo sub-bloco triangular e, assim, as segundas informações alvo de movimento do segundo sub-bloco triangular podem ser usadas para realizar a compensação de movimento em cada sub-bloco na segunda área de sub-bloco para obter um valor de predição. A terceira área de sub-bloco pode incluir sub-blocos marcados com 1, sub-blocos marcados com 2, sub-blocos marcados com 4, sub-blocos marcados com 6 e sub-blocos marcados com 7.
[0120] Para cada sub-bloco marcado com 7, que será referido como sub- bloco 7 a seguir, um primeiro valor de predição P1 do sub-bloco 7 pode ser determinado com base nas primeiras informações alvo de movimento, e um segundo valor de predição P2 do sub-bloco 7 pode ser determinado com base nas segundas informações alvo de movimento. Assumindo que o primeiro coeficiente de peso correspondendo a P1 é “a”, e o segundo coeficiente de peso correspondendo a P2 é “b”, o valor de predição do sub-bloco 7 após a compensação pesada pode ser igual a: P1*a+P2*b. Ademais, visto que o sub- bloco 7 está localizado no primeiro sub-bloco triangular, o primeiro coeficiente de peso “a” é maior que o segundo coeficiente de peso “b”. Assumindo que “a” é 7/8 e “b” é 1/8, o valor de predição do sub-bloco 7 após a compensação pesada é igual a P1*7/8+P2*1/8.
[0121] Para cada sub-bloco marcado com 6, referido como sub-bloco 6 a seguir, o processo de compensação pesada é similar àquele do sub-bloco 7. Visto que o sub-bloco 6 está localizado no primeiro sub-bloco triangular, o primeiro coeficiente de peso “a” é maior que o segundo coeficiente de peso “b”. Além disso, visto que o sub-bloco 6 está mais próximo da segunda área de sub-bloco que o sub-bloco 7, o primeiro coeficiente de peso “a” do sub-bloco 6 pode ser menor que o primeiro coeficiente de peso “a” do sub-bloco 7. Por exemplo, o primeiro coeficiente de peso “a” do sub-bloco 6 é 6/8, o segundo coeficiente de peso “b” é 2/8, e o valor de predição do sub-bloco 6 após a compensação pesada é igual a P1*6/8+P2*2/8.
[0122] Para cada sub-bloco marcado com 4, referido como sub-bloco 4 a seguir, o processo de compensação pesada é similar àquele do sub-bloco 7. Visto que o sub-bloco 4 está localizado através da diagonal separando o primeiro sub- bloco triangular do segundo sub-bloco triangular, o primeiro coeficiente de peso “a” é igual ao segundo coeficiente de peso “b”. Por exemplo, “a” é 4/8, “b” é 4/8, e o valor de predição do sub-bloco 4 após a compensação pesada é igual a P1*4/8+P2*4/8.
[0123] Para cada sub-bloco marcado com 2, que será referido como sub- bloco 2 a seguir, o processo de compensação pesada é similar àquele do sub- bloco 7. Visto que o sub-bloco 2 está localizado no segundo sub-bloco triangular, o primeiro coeficiente de peso “a” é menor que o segundo coeficiente de peso
“b”. Por exemplo, “a” é 2/8, “b” é 6/8, e o valor de predição do sub-bloco 2 após a compensação pesada é igual a P1*2/8+P2*6/8.
[0124] Para cada sub-bloco marcado com 1, referido como sub-bloco 1 a seguir, o processo de compensação por pesagem é similar àquele para o sub- bloco 7. Visto que o sub-bloco 1 está localizado no segundo sub-bloco triangular, o primeiro coeficiente de peso “a” é menor que o segundo coeficiente de peso “b”. Além disso, visto que o sub-bloco 1 está mais próximo da segunda área de sub-bloco que o sub-bloco 2, o primeiro coeficiente de peso “a” do sub-bloco 1 pode ser menor que o primeiro coeficiente de peso “a” do sub-bloco 2. Por exemplo, o primeiro coeficiente de peso “a” do sub-bloco 1 é 1/8, e o segundo coeficiente de peso “b” é 7/8, e o valor de predição do sub-bloco 1 após a compensação pesada é igual a P1*1/8+P2*7/8.
[0125] No exemplo acima, a soma do primeiro coeficiente de peso “a” e o segundo coeficiente de peso “b” de cada sub-bloco é igual a 1. Quanto mais próximo do sub-bloco estiver da primeira área de sub-bloco, maior será o primeiro coeficiente de peso “a”, e menor será o segundo coeficiente de peso “b”. Quanto mais próximo o sub-bloco estiver da segunda área de sub-bloco, menor será o primeiro coeficiente de peso “a” e maior será o segundo coeficiente de peso “b”.
[0126] Em um exemplo, para os sub-blocos na terceira área de sub-bloco, um primeiro conjunto de coeficientes de peso pode ser configurado para os componentes luma. Por exemplo, ao longo da direção da primeira área de sub- bloco para a segunda área de sub-bloco, o primeiro coeficiente de peso “a” do componente luma de cada sub-bloco é respectivamente 7/8, 6/8, 4/8, 2/8, 1/8 em sequência. Por exemplo, em referência à Figura 6B, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 7 é 7/8, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 6 é 6/8, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 4 é 4/8, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 2 é 2/8, e o primeiro coeficiente de peso “a” do componente luma do sub-bloco 1 é 1/8.
[0127] Em outro exemplo, para os sub-blocos na terceira área de sub-bloco, um segundo conjunto de coeficientes de peso pode ser configurado para os componentes luma. Por exemplo, ao longo da direção da primeira área de sub- bloco para a segunda área de sub-bloco, o primeiro coeficiente de peso “a” do componente luma de cada sub-bloco é respectivamente 7/8, 6/8, 5/8, 4/8, 3/ 8, 2/8, 1/8 em sequência. Por exemplo, em referência à Figura 6B, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 7 é 7/8, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 6 é 6/8, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 5 (sub-bloco 5 pode ser localizado entre sub-bloco 4 e sub-bloco 6, Figura 6B não mostra o sub-bloco 5) é 5/8, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 4 é 4/8, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 3 (sub-bloco 3 pode ser localizado entre o sub-bloco 2 e o sub-bloco 4, e o sub- bloco 3 não é mostrado na Figura 6B) é 3/8, o primeiro coeficiente de peso “a” do componente luma do sub-bloco 2 é 2/8, e o primeiro coeficiente de peso “a” do componente luma do sub-bloco 1 é 1/8. Para os componentes luma mencionados acima, tanto o primeiro valor de predição P1 quanto o segundo valor de predição P2 são os valores de predição de componente luma, e o valor de predição P1*a+P2*b após a compensação pesada é também o valor de predição do componente luma.
[0128] Em um exemplo, para os sub-blocos na terceira área de sub-bloco, um primeiro conjunto de coeficientes de peso pode ser configurado para os componentes croma. Por exemplo, ao longo da direção da primeira área de sub- bloco para a segunda área de sub-bloco, o primeiro coeficiente de peso “a” do componente croma de cada sub-bloco é respectivamente 7/8, 4/8, 1/8 em sequência. Por exemplo, em referência à Figura 6C, o primeiro coeficiente de peso “a” do componente croma do sub-bloco 7 é 7/8, o primeiro coeficiente de peso “a” do componente croma do sub-bloco 4 é 4/8, e o primeiro coeficiente de peso “a” do componente croma do sub-bloco 1 é 1/8.
[0129] Em outro exemplo, para os sub-blocos na terceira área de sub-bloco, um segundo conjunto de coeficientes de peso pode ser configurado para os componentes croma. Por exemplo, ao longo da direção da primeira área de sub- bloco para a segunda área de sub-bloco, o primeiro coeficiente de peso “a” do componente croma de cada sub-bloco é respectivamente 6/8, 4/8, e 2/8 em sequência. Por exemplo, em referência à Figura 6C, o primeiro coeficiente de peso “a” do componente croma do sub-bloco 7 é 6/8, o primeiro coeficiente de peso “a” do componente croma do sub-bloco 4 é 4/8, e o primeiro coeficiente de peso “a” do componente croma do sub-bloco 1 é 2/8. Para os componentes croma, tanto o primeiro valor de predição P1 quanto o segundo valor de predição P2 são os valores de predição do componente croma, e o valor de predição P1*a+P2*b após a compensação pesada é também o valor de predição do componente croma.
[0130] Alguns exemplos do processo de compensação de movimento serão descritos abaixo.
[0131] Exemplo 1. Para a compensação de movimento, o bloco atual pode ser particionado em uma primeira área de sub-bloco, uma segunda área de sub- bloco, e uma terceira área de sub-bloco. A compensação de movimento é realizada em cada sub-bloco na primeira área de sub-bloco com base nas primeiras informações alvo de movimento do primeiro sub-bloco triangular. A compensação de movimento é realizada em cada sub-bloco na segunda área de sub-bloco com base nas segundas informações alvo de movimento do segundo sub-bloco triangular. Compensação pesada é realizada em cada sub-bloco na terceira área de sub-bloco com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento.
[0132] Em um exemplo, o bloco atual pode ser particionado em múltiplos sub-blocos M*M (por exemplo, M é 4). Para cada sub-bloco M*M, se o sub-bloco não é através da diagonal separando o primeiro sub-bloco triangular do segundo sub-bloco triangular, as informações de movimento unidirecional são usadas para realizar a compensação de movimento no sub-bloco. Nesse caso, se o sub- bloco está localizado no primeiro sub-bloco triangular, o sub-bloco é referido como a primeira área de sub-bloco, e as primeiras informações alvo de movimento são usadas para a compensação de movimento; se o sub-bloco está localizado no segundo sub-bloco triangular, o sub-bloco é referido como a segunda área de sub-bloco e as segundas informações alvo de movimento são usadas para compensação de movimento. Se o sub-bloco é através da diagonal separando o primeiro sub-bloco triangular do segundo sub-bloco triangular, o sub-bloco é referido como a terceira área de sub-bloco, para a qual os dois tipos de informações de movimento unidirecional (isto é, as primeiras informações alvo de movimento e as segundas informações alvo de movimento) podem ser usados para realizar a compensação pesada. Para métodos de cálculo de peso específico, pode-se fazer a referência aos exemplos acima.
[0133] Exemplo 2. Para a compensação de movimento, o bloco atual pode ser particionado em uma primeira área de sub-bloco, uma segunda área de sub- bloco, e uma terceira área de sub-bloco. A compensação de movimento é realizada em cada sub-bloco na primeira área de sub-bloco com base nas primeiras informações alvo de movimento do primeiro sub-bloco triangular. A compensação de movimento é realizada em cada sub-bloco na segunda área de sub-bloco com base nas segundas informações alvo de movimento do segundo sub-bloco triangular. Com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento, a compensação pesada é realizada em cada sub-bloco na terceira área de sub-bloco, em que apenas um conjunto de coeficientes de peso é usado: o coeficiente de pesos usado para os componentes luma: {7/8, 6/8, 4/8, 2/8, 1/8}, o coeficiente de peso usado para componentes croma: {7/8, 4/8, 1/8}. Para os métodos de cálculo de peso específico, pode-se fazer referência ao exemplo acima.
[0134] Exemplo 3: Para a compensação de movimento, o bloco atual pode ser particionado em uma primeira área de sub-bloco, uma segunda área de sub- bloco, e uma terceira área de sub-bloco. A compensação de movimento é realizada em cada sub-bloco na primeira área de sub-bloco com base nas primeiras informações alvo de movimento do primeiro sub-bloco triangular. A compensação de movimento é realizada em cada sub-bloco na segunda área de sub-bloco com base nas segundas informações alvo de movimento do segundo sub-bloco triangular. Com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento, a compensação pesada é realizada em cada sub-bloco na terceira área de sub-bloco, em que apenas um conjunto de coeficientes de peso pode ser configurado para a compensação pesada. Por exemplo, os coeficientes de peso para o componente luma são configurados da seguinte forma: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8}, e o coeficiente de peso para o componente croma são configurados da seguinte forma: {6/8, 4/8, 2/8}. Para os métodos de pesagem específica, se referir ao exemplo acima.
[0135] Abordagem 3. O bloco atual é particionado em uma primeira área de sub-bloco, uma segunda área de sub-bloco e uma terceira área de sub-bloco, em que a primeira área de sub-bloco está localizada no primeiro sub-bloco triangular, e a segunda área de sub-bloco está localizada no segundo sub-bloco triangular, a distância entre o centro de cada sub-bloco na terceira área de sub-
bloco e a linha diagonal separando o primeiro sub-bloco triangular do segundo sub-bloco triangular é menor que um limite pré-definido. A compensação de movimento é realizada em cada sub-bloco na primeira área de sub-bloco com base nas primeiras informações alvo de movimento. A compensação de movimento é realizada em cada sub-bloco na segunda área de sub-bloco com base nas segundas informações alvo de movimento. A compensação de movimento é realizada em cada sub-bloco na terceira área de sub-bloco com base nas primeiras informações alvo de movimento ou nas segundas informações alvo de movimento.
[0136] Por exemplo, se as informações de tamanho do bloco atual satisfazem uma primeira condição (por exemplo, a largura do bloco atual é maior ou igual à altura do bloco atual), a compensação de movimento é realizada em cada sub-bloco na terceira área de sub-bloco com base nas primeiras informações alvo de movimento; se as informações de tamanho do bloco atual satisfazem uma segunda condição (por exemplo, a largura do bloco atual é menor que a altura do bloco atual), a compensação de movimento é realizada em cada sub-bloco na terceira área de sub-bloco com base nas segundas informações alvo de movimento. Entretanto, acima encontra-se apenas um exemplo, e outros métodos também podem ser usados para determinar a possibilidade de realizar a compensação de movimento com base nas primeiras informações alvo de movimento ou nas segundas informações alvo de movimento.
[0137] Cada sub-bloco na terceira área de sub-bloco pode ser um sub-bloco 1*1, isto é, um bloco de pixel único, ou pode ser um sub-bloco N*M, em que N pode ser maior ou igual a 1, e M também podem ser maior ou igual a 1.
[0138] Nesse exemplo, para a terceira área de sub-bloco, em vez de usar tanto as primeiras informações alvo de movimento quanto as segundas informações alvo de movimento, mas as primeiras informações alvo de movimento ou as segundas informações alvo de movimento são usadas para compensação de movimento em cada sub-bloco na terceira área de sub-bloco. Isto é, não há sub-blocos a serem submetidos à compensação de movimento usando predição bidirecional, assim, a compensação pesada não é necessária.
[0139] Quanto ao uso das primeiras informações alvo de movimento ou das segundas informações alvo de movimento para realizar a compensação de movimento em cada sub-bloco na terceira área de sub-bloco, pode-se determinar de qualquer uma das seguintes maneiras: (1) usando as primeiras informações alvo de movimento por padrão para realizar a compensação de movimento em cada sub-bloco na terceira área de sub-bloco; (2) usando as segundas informações alvo de movimento por padrão para realizar a compensação de movimento na terceira área de sub-bloco; (3) determinar com base no tamanho do bloco atual. Por exemplo, se a largura do bloco atual é maior ou igual à altura do bloco atual, as primeiras informações alvo de movimento são usadas para realizar a compensação de movimento em cada sub-bloco na terceira área de sub-bloco; se a largura do bloco atual é menor que a altura do bloco atual, as segundas informações alvo de movimento são usadas para realizar a compensação de movimento em cada sub-bloco na terceira área de sub-bloco. IMPLEMENTAÇÃO 9
[0140] O codificador de vídeo primeiro determina se o bloco atual satisfaz as condições específicas para habilitar o modo de partição geométrica com partição triangular. Caso contrário, decide-se não usar o modo de partição geométrica com partição triangular, mas usar outro modo. Se for assim, o codificador de vídeo pode habilitar o modo de partição geométrica com partição triangular por padrão, ou o codificador de vídeo pode determinar a possibilidade de habilitar o modo de partição geométrica com partição triangular. Se o codificador de vídeo habilitar o modo de partição geométrica com partição triangular por padrão ou decidir habilitar o modo de partição geométrica com partição triangular, o codificador de vídeo realiza a operação da partição do bloco atual em sub-blocos triangulares e outras operações subsequentes nos exemplos relacionados acima; de outro modo, essas operações não são realizadas.
[0141] A fim de determinar a possibilidade de habilitar o modo de partição geométrica com partição triangular, o codificador de vídeo pode determinar o custo de distorção de taxa correspondendo ao modo de partição geométrica com partição triangular. Se o custo de distorção de taxa correspondendo ao modo de partição geométrica com partição triangular é menor que o custo de distorção de taxa correspondendo a cada um dos outros modos, pode-se determinar habilitar o modo de partição geométrica com partição triangular; de outro modo, pode-se determinar não habilitar o modo de partição geométrica com partição triangular.
[0142] Correspondentemente, o fluxo de bits codificado enviado pelo codificador de vídeo para o decodificador pode portar sétimas informações de indicação, em que as sétimas informações de indicação especificam que o modo de partição geométrica com partição triangular é habilitado.
[0143] O decodificador de vídeo primeiro determina se o bloco atual satisfaz as condições específicas para habilitar o modo de partição geométrica com partição triangular. Caso contrário, decide-se não usar o modo de partição geométrica com partição triangular, mas usar outro modo. Sendo assim, o decodificador de vídeo pode habilitar o modo de partição geométrica com partição triangular por padrão, ou o decodificador de vídeo é configurado para derivar o fluxo de bits codificado do codificador. Se o fluxo de bits codificado porta as sétimas informações de indicação, pode-se determinar habilitar o modo de partição geométrica com partição triangular; de outro modo, pode-se determinar não habilitar o modo de partição geométrica com partição triangular. Se o decodificador de vídeo habilitar o modo de partição geométrica com partição triangular por padrão ou decidir habilitar o modo de partição geométrica com partição triangular, o decodificador de vídeo realiza a operação da partição do bloco atual em sub-blocos triangulares e outras operações subsequentes nos exemplos relacionados acima; de outro modo, essas operações não são realizadas. IMPLEMENTAÇÃO 10
[0144] O codificador de vídeo/decodificador de vídeo também pode armazenar as primeiras informações alvo de movimento e as segundas informações alvo de movimento da seguinte forma. Se o bloco candidato correspondendo às primeiras informações alvo de movimento for um bloco de predição unidirecional, as primeiras informações alvo de movimento são armazenadas para o primeiro sub-bloco triangular; se o bloco candidato correspondendo às primeiras informações alvo de movimento for um bloco de predição bidirecional, as primeiras informações alvo de movimento e terceiras informações alvo de movimento são armazenadas para o primeiro sub-bloco triangular, e as terceiras informações alvo de movimento são outras informações de movimento do bloco de predição bidirecional. Se o bloco candidato correspondendo às segundas informações alvo de movimento for um bloco de predição unidirecional, as segundas informações alvo de movimento são armazenadas para o segundo sub-bloco triangular; se o bloco candidato correspondendo às segundas informações alvo de movimento for um bloco de predição bidirecional, as segundas informações alvo de movimento e quartas informações alvo de movimento são armazenadas para o segundo sub-bloco triangular, e as quartas informações alvo de movimento são outras informações de movimento do bloco de predição bidirecional.
[0145] Por exemplo, para a primeira área de sub-bloco, se as primeiras informações alvo de movimento da primeira área de sub-bloco forem MV1, e MV1 se originar de um bloco de predição unidirecional R1, isto é, o bloco de predição unidirecional R1 é um bloco candidato do bloco atual, e a lista de informações de movimento inclui as informações de movimento MV1 do bloco de predição unidirecional R1, e MV1 é selecionado como as primeiras informações alvo de movimento da primeira área de sub-bloco, então, MV1 é armazenado para a primeira área de sub-bloco, conforme mostrado na Figura 7A. Para a segunda área de sub-bloco, se as segundas informações alvo de movimento da segunda área de sub-bloco forem MV2, e MV2 se originar de um bloco de predição unidirecional R2, isto é, o bloco de predição unidirecional R2 for um bloco candidato do bloco atual, e a lista de informações de movimento inclui as informações de movimento MV2 do bloco de predição unidirecional R2, e MV2 é selecionado como as segundas informações alvo de movimento da segunda área de sub-bloco, então, MV2 é armazenado para a segunda área de sub-bloco, conforme mostrado na Figura 7A.
[0146] Para outro exemplo, para a primeira área de sub-bloco, se as primeiras informações alvo de movimento da primeira área de sub-bloco forem MV1, e MV1 se originar de um bloco de predição bidirecional R3, isto é, o bloco de predição bidirecional R3 for um bloco candidato do bloco atual, e a lista de informações de movimento inclui as informações de movimento MV1 e MV2 do bloco de predição bidirecional R3, e MV1 é selecionado como as primeiras informações alvo de movimento da primeira área de sub-bloco, então, MV1 e MV2, ao invés de apenas M1, são armazenados para a primeira área de sub-bloco, conforme mostrado na Figura 7B. Para a segunda área de sub-bloco, se as segundas informações alvo de movimento da segunda área de sub-bloco forem MV3, e MV3 se originar de um bloco de predição bidirecional R4, isto é, o bloco de predição bidirecional R4 for um bloco candidato do bloco atual, e a lista de informações de movimento inclui as informações de movimento MV3 e MV4 do bloco de predição bidirecional R4, e MV3 é selecionado como as segundas informações alvo de movimento da segunda área de sub-bloco, então, MV3 e MV4, ao invés de apenas MV3, são armazenados para a segunda área de sub- bloco, conforme mostrado na Figura 7B.
[0147] Nos exemplos acima, conforme mostrado nas Figuras 7A e 7B, as informações de movimento podem ser armazenadas em uma unidade de 4*4. IMPLEMENTAÇÃO 11
[0148] Esse exemplo da presente invenção fornece um decodificador de vídeo. A Figura 8 é um diagrama de bloco esquemático do decodificador de vídeo. Em referência à Figura 8, o decodificador de vídeo pode incluir um processador 81 e um meio de armazenamento legível por máquina 82. O meio de armazenamento legível por máquina 82 armazena instruções executáveis por máquina que podem ser invocadas pelo processador 81. Quando o processador 81 invoca as instruções executáveis por máquina, o processador 81 é configurado para realizar o método de decodificação de vídeo de acordo com os exemplos relacionados acima da presente invenção.
[0149] O exemplo da presente invenção também fornece um codificador de vídeo. A Figura 9 é um diagrama de bloco esquemático do codificador de vídeo. Em referência à Figura 9, o codificador de vídeo pode incluir um processador 91 e um meio de armazenamento legível por máquina 92. O meio de armazenamento legível por máquina 92 armazena instruções executáveis por máquina que podem ser invocadas pelo processador 91. Quando o processador 91 invoca as instruções executáveis por máquina, o processador 91 é configurado para realizar o método de codificação de vídeo de acordo com os exemplos relacionados acima da presente invenção.
[0150] Um exemplo da presente invenção também fornece um meio de armazenamento legível por máquina, que armazena as instruções de computador, e quando as instruções de computador são executadas por um processador, o processador pode implementar a codificação de vídeo/método de decodificação dos exemplos acima.
[0151] O meio de armazenamento legível por máquina pode ser um dispositivo de armazenamento eletrônico, magnético, óptico ou outro dispositivo de armazenamento físico, e pode conter ou armazenar informações, como instruções executáveis, dados e assim por diante. Por exemplo, o meio de armazenamento legível por máquina pode incluir memória volátil (por exemplo, RAM (Memória de Acesso Aleatório)), memória não volátil (por exemplo, memória flash, unidade de armazenamento (como unidade de disco rígido), unidade de estado sólido, armazenamento óptico (por exemplo, CD-ROM (Memória Apenas para Leitura de Disco Compacto), DVD (Disco Versátil Digital), etc.) ou uma combinação dos mesmos.
[0152] Os sistemas, aparelhos, módulos ou unidades ilustrados nos exemplos acima podem ser implementados por entidades ou chips de computador ou implementados por produtos com certas funções. Um dispositivo de implementação típico é um dispositivo eletrônico, incluindo, porém sem limitação: um computador pessoal, um computador do tipo laptop, um computador do tipo tablet, um telefone celular, uma câmera, um telefone inteligente, um assistente pessoal digital, um reprodutor de mídia, um dispositivo de navegação, um dispositivo de recebimento e envio de e-mail, um console de jogos, um dispositivo vestível ou qualquer combinação dos mesmos.
[0153] Para a conveniência da descrição, ao descrever o aparelho acima, as funções são particionadas em várias unidades. Entretanto, ao implementar a presente invenção, as funções de cada unidade podem ser implementadas em um ou mais software e/ou hardware.
[0154] Aqueles versados na técnica devem entender que os exemplos da presente invenção podem ser fornecidos como métodos, sistemas ou produtos de programa de computador. Portanto, a presente invenção pode adotar a forma de uma implementação de hardware pura, uma implementação de software pura ou uma implementação que combina software e hardware.
[0155] A presente invenção é descrita com referência aos fluxogramas e/ou diagramas de blocos de métodos, dispositivos (sistemas), e produtos de programa de computador de acordo com os exemplos da presente invenção. Deve ser entendido que cada processo e/ou bloco no fluxograma e/ou diagrama de blocos pode ser implementado por instruções de programa de computador. Essas instruções de programa de computador podem ser fornecidas para o processador de um computador de propósito geral, um computador de propósito especial, um processador embutido ou outro dispositivo de processamento de dados programáveis, de modo que as instruções de programa de computador sejam executadas pelo processador para gerar um dispositivo para implementar funções especificadas em um ou mais processos no fluxograma e/ou em um ou mais blocos no diagrama de blocos.
[0156] As descrições acima são apenas alguns exemplos da presente invenção, e não são usadas para limitar a presente invenção. Para aquele versado na técnica, a presente invenção pode ter várias modificações e alterações. Qualquer modificação, substituição equivalente, melhoria, etc. feitas no espírito e princípio da presente invenção devem estar incluídas no escopo das reivindicações da presente invenção.

Claims (22)

REIVINDICAÇÕES
1. Um método de codificação e decodificação de vídeo, que é desempenhado por um codificador de vídeo ou um decodificador de vídeo, o método compreendendo: particionar um bloco atual em um primeiro sub-bloco triangular e um segundo sub-bloco triangular quando o bloco atual satisfaz as condições específicas para habilitar um modo de partição geométrica com partição triangular e determina-se habilitar o modo de partição geométrica com partição triangular; obter as primeiras informações alvo de movimento do primeiro sub-bloco triangular e segundas informações alvo de movimento do segundo sub-bloco triangular, em que as primeiras informações alvo de movimento são diferentes das segundas informações alvo de movimento; e desempenhar um processamento de codificação ou um processamento de decodificação no bloco atual com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento.
2. O método da reivindicação 1, em que determinar se o bloco atual satisfaz as condições específicas para habilitar o modo de partição geométrica com partição triangular com base em um tipo de fatia de uma fatia atual onde o bloco atual está localizado, um modo de informações de movimento do bloco atual, e/ou informações de tamanho do bloco atual.
3. O método da reivindicação 2, em que determinar que o tipo de fatia satisfaz as condições específicas quando o tipo de fatia é uma fatia B ou uma fatia não -I, ou o tipo de fatia permite a cópia intrabloco.
4. O método da reivindicação 2, em que determinar que o modo de informações de movimento satisfaz as condições específicas quando o modo de informações de movimento é um modo de mesclagem geral.
5. O método da reivindicação 2, em que determinar que as informações de tamanho do bloco atual satisfazem as condições específicas quando uma largura do bloco atual é maior ou igual a um primeiro valor, e uma altura do bloco atual é maior ou igual a um segundo valor; ou determinar que as informações de tamanho do bloco atual satisfazem as condições específicas quando a largura do bloco atual é maior ou igual a um terceiro valor, ou a altura do bloco atual é maior ou igual a um quarto valor; ou determinar que as informações de tamanho do bloco atual satisfazem as condições específicas quando a largura do bloco atual é maior ou igual a um quinto valor e menor ou igual a um sexto valor, e a altura do bloco atual é maior ou igual a um sétimo valor e menor ou igual a um oitavo valor; ou determinar que as informações de tamanho do bloco atual satisfazem as condições específicas quando a largura do bloco atual é maior ou igual a um nono valor e menor ou igual a um décimo valor, ou a altura do bloco atual é maior ou igual a um décimo primeiro valor e menor ou igual a um décimo segundo valor; ou determinar que as informações de tamanho do bloco atual satisfazem as condições específicas quando a largura do bloco atual é maior ou igual a um décimo terceiro valor e menor ou igual a um décimo quarto valor, a altura do bloco atual é maior ou igual a um décimo quinto valor e menor ou igual a um décimo sexto valor, e uma área do bloco atual é maior ou igual a um décimo sétimo valor e menor ou igual a um décimo oitavo valor.
6. O método da reivindicação 1, em que particionar o bloco atual no primeiro sub-bloco triangular e no segundo sub-bloco triangular compreende: particionar o bloco atual no primeiro sub-bloco triangular e o segundo sub- bloco triangular com um primeiro método diagonal; ou particionar o bloco atual no primeiro sub-bloco triangular e o segundo sub-
bloco triangular com um segundo método diagonal.
7. O método da reivindicação 1, em que obter as primeiras informações alvo de movimento do primeiro sub-bloco triangular e as segundas informações alvo de movimento do segundo sub-bloco triangular compreende: construir uma primeira lista de informações de candidato de movimento, a primeira lista de informações de candidato de movimento compreendendo uma pluralidade de informações de candidato de movimento; selecionar uma informação de candidato de movimento da primeira lista de informações de candidato de movimento como as primeiras informações alvo de movimento; excluir as primeiras informações alvo de movimento da primeira lista de informações de candidato de movimento, e selecionar uma informação de candidato de movimento a partir das informações de candidato de movimento restantes na primeira lista de informações de candidato de movimento como as segundas informações alvo de movimento; ou construir uma segunda lista de informações de candidato de movimento correspondendo ao primeiro sub-bloco triangular, construir uma terceira lista de informações de candidato de movimento correspondendo ao segundo sub-bloco triangular, a segunda lista de informações de candidato de movimento compreendendo uma pluralidade de informações de candidato de movimento, a terceira lista de informações de candidato de movimento compreendendo uma pluralidade de informações de candidato de movimento; selecionar uma informação de candidato de movimento da segunda lista de informações de candidato de movimento como as primeiras informações alvo de movimento; selecionar uma informação de candidato de movimento da terceira lista de informações de candidato de movimento como as segundas informações alvo de movimento.
8. O método da reivindicação 7 compreendendo adicionalmente:
determinar um método de partição do bloco atual, em que quando o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular com um primeiro método diagonal, a primeira lista de informações de candidato de movimento é construída; quando o bloco atual é particionado no primeiro sub-bloco triangular e no segundo sub-bloco triangular com um segundo método diagonal, a segunda lista de informações de candidato de movimento e a terceira lista de informações de candidato de movimento são construídas.
9. O método da reivindicação 7 ou 8, em que construir a primeira lista de informações de candidato de movimento compreende: obter um bloco candidato correspondendo ao bloco atual; e adicionar informações de movimento do bloco candidato à primeira lista de informações de candidato de movimento, em que quando o bloco candidato é um bloco de predição unidirecional, as informações de movimento do bloco candidato compreendem informações de movimento unidirecional do bloco candidato; quando o bloco candidato é um bloco de predição bidirecional, as informações de movimento do bloco candidato compreendem primeiras informações de movimento do bloco candidato e/ou segundas informações de movimento do bloco candidato, mas não compreendem informações de movimento pesadas das primeiras informações de movimento e das segundas informações de movimento.
10. O método da reivindicação 7 ou 8, em que construir a segunda lista de informações de candidato de movimento correspondendo ao primeiro sub- bloco triangular compreende: obter um primeiro bloco candidato correspondendo ao primeiro sub-bloco triangular; adicionar informações de movimento do primeiro bloco candidato à segunda lista de informações de candidato de movimento, em que quando o primeiro bloco candidato é um bloco de predição unidirecional, as informações de movimento do primeiro bloco candidato compreendem informações de movimento unidirecional do primeiro bloco candidato; quando o primeiro bloco candidato é um bloco de predição bidirecional, as informações de movimento do primeiro bloco candidato compreendem primeiras informações de movimento do primeiro bloco candidato e/ou segundas informações de movimento do primeiro bloco candidato, mas não compreendem informações de movimento pesadas das primeiras informações de movimento do primeiro bloco candidato e as segundas informações de movimento do primeiro bloco candidato; construir a terceira lista de informações de candidato de movimento correspondendo ao segundo sub-bloco triangular compreende: obter um segundo bloco candidato correspondendo ao segundo sub-bloco triangular; e adicionar informações de movimento do segundo bloco candidato à terceira lista de informações de candidato de movimento, em que quando o segundo bloco candidato é um bloco de predição unidirecional, as informações de movimento do segundo bloco candidato compreendem informações de movimento unidirecional do segundo bloco candidato; quando o segundo bloco candidato é um bloco de predição bidirecional, as informações de movimento do segundo bloco candidato compreendem primeiras informações de movimento do segundo bloco candidato e/ou segundas informações de movimento do segundo bloco candidato, mas não compreendem informações de movimento pesadas das primeiras informações de movimento do segundo bloco candidato e as segundas informações de movimento do segundo bloco candidato.
11. O método da reivindicação 10, em que quando o bloco atual é particionado em um primeiro sub-bloco triangular e um segundo sub-bloco triangular com um segundo método diagonal, o primeiro sub-bloco triangular é um sub-bloco triangular para direita superior, e o segundo sub-bloco triangular é um sub-bloco triangular para esquerda inferior; o primeiro bloco candidato correspondendo ao primeiro sub-bloco triangular compreende: blocos vizinhos em um lado superior do bloco atual, e blocos candidatos de domínio de tempo em imagens diferentes de uma fatia atual em que o bloco atual está localizado; o segundo bloco candidato correspondendo ao segundo sub-bloco triangular compreende: blocos vizinhos em um lado esquerdo do bloco atual, e blocos candidatos de domínio de tempo em imagens diferentes da fatia atual onde o bloco atual está localizado.
12. O método da reivindicação 7 ou 8, em que ao construir a primeira lista de informações de candidato de movimento, a segunda lista de informações de candidato de movimento, ou a terceira lista de informações de candidato de movimento, cada vez que as informações de movimento são adicionadas à lista de informações de candidato de movimento, determinar se um número de informações de candidato de movimento na lista de informações de candidato de movimento alcançou um limite superior, se o número de informações de candidato de movimento na lista de informações de candidato de movimento tiver alcançado o limite superior, rejeitar a adição das informações de movimento, e se o número de informações de candidato de movimento na lista de informações de candidato de movimento não tiver alcançado o limite superior, continuar a adição das informações de movimento; e/ou, ao construir a primeira lista de informações de candidato de movimento, a segunda lista de informações de candidato de movimento, ou a terceira lista de informações de candidato de movimento, cada vez que as informações de movimento de um bloco candidato do bloco atual forem coletadas, não é necessário determinar se as informações de movimento do bloco candidato são consistentes com as informações de movimento que foram coletadas para o bloco atual.
13. O método da reivindicação 1, compreendendo adicionalmente: desempenhar a compensação de movimento no primeiro sub-bloco triangular e no segundo sub-bloco triangular com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento, após as primeiras informações alvo de movimento e as segundas informações alvo de movimento serem obtidas.
14. O método da reivindicação 13, em que desempenhar a compensação de movimento no primeiro sub-bloco triangular e no segundo sub- bloco triangular com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento compreende: determinar uma pluralidade de sub-blocos incluídos no bloco atual, em que uma largura de cada um dos sub-blocos é maior ou igual a 2, e uma altura de cada um dos sub-blocos é maior ou igual a 2; para cada um dos sub-blocos, quando o sub-bloco está localizado no primeiro sub-bloco triangular, desempenhar a compensação de movimento no sub-bloco com base nas primeiras informações alvo de movimento; quando o sub-bloco está localizado no segundo sub-bloco triangular, desempenhar a compensação de movimento no sub-bloco com base nas segundas informações alvo de movimento; quando o sub-bloco está localizado através de uma diagonal separando o primeiro sub-bloco triangular do segundo sub-bloco triangular, desempenhar a compensação pesada no sub-bloco com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento.
15. O método da reivindicação 13, em que desempenhar a compensação de movimento no primeiro sub-bloco triangular e no segundo sub- bloco triangular com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento compreende: determinar uma primeira área de sub-bloco, uma segunda área de sub- bloco e uma terceira área de sub-bloco incluídos no bloco atual, em que a primeira área de sub-bloco está localizada no primeiro sub-bloco triangular, a segunda área de sub-bloco está localizada no segundo sub-bloco triangular, e uma distância entre um centro de cada sub-bloco na terceira área de sub-bloco e uma diagonal separando o primeiro sub-bloco triangular do segundo sub-bloco triangular é menor que um limite pré-definido; desempenhar a compensação de movimento em cada sub-bloco na primeira área de sub-bloco com base nas primeiras informações alvo de movimento; desempenhar a compensação de movimento em cada sub-bloco na segunda área de sub-bloco com base nas segundas informações alvo de movimento; desempenhar a compensação pesada em cada sub-bloco na terceira área de sub-bloco com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento.
16. O método da reivindicação 15, em que desempenhar a compensação pesada em cada sub-bloco na terceira área de sub-bloco com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento compreende: para cada sub-bloco na terceira área de sub-bloco, determinar um primeiro valor de predição do sub-bloco com base nas primeiras informações alvo de movimento; determinar um segundo valor de predição do sub-bloco com base nas segundas informações alvo de movimento; desempenhar a compensação pesada no sub-bloco com base no primeiro valor de predição, um primeiro coeficiente de peso correspondendo ao primeiro valor de predição, ao segundo valor de predição, e um segundo coeficiente de peso correspondendo ao segundo valor de predição, em que quando o sub-bloco está localizado no primeiro sub-bloco triangular, o primeiro coeficiente de peso é maior que o segundo coeficiente de peso; quando o sub-bloco está localizado no segundo sub-bloco triangular, o primeiro coeficiente de peso é menor que o segundo coeficiente de peso; quando o sub-bloco está localizado através da diagonal, o primeiro coeficiente de peso é igual ao segundo coeficiente de peso.
17. O método da reivindicação 13, em que desempenhar a compensação de movimento no primeiro sub-bloco triangular e no segundo sub- bloco triangular com base nas primeiras informações alvo de movimento e nas segundas informações alvo de movimento compreende: determinar uma primeira área de sub-bloco, uma segunda área de sub- bloco e uma terceira área de sub-bloco incluídos no bloco atual, em que a primeira área de sub-bloco está localizada no primeiro sub-bloco triangular, a segunda área de sub-bloco está localizada no segundo sub-bloco triangular, e uma distância entre um centro de cada sub-bloco na terceira área de sub-bloco e uma diagonal separando o primeiro sub-bloco triangular do segundo sub-bloco triangular é menor que um limite pré-definido; desempenhar a compensação de movimento em cada sub-bloco na primeira área de sub-bloco com base nas primeiras informações alvo de movimento;
desempenhar a compensação de movimento em cada sub-bloco na segunda área de sub-bloco com base nas segundas informações alvo de movimento; desempenhar a compensação de movimento em cada sub-bloco na terceira área de sub-bloco com base nas primeiras informações alvo de movimento ou nas segundas informações alvo de movimento.
18. O método da reivindicação 17, em que desempenhar a compensação de movimento em cada sub-bloco na terceira área de sub-bloco com base nas primeiras informações alvo de movimento ou nas segundas informações alvo de movimento compreende: desempenhar a compensação de movimento em cada sub-bloco na terceira área de sub-bloco com base nas primeiras informações alvo de movimento quando as informações de tamanho do bloco atual satisfazem uma primeira condição; desempenhar a compensação de movimento em cada sub-bloco na terceira área de sub-bloco com base nas segundas informações alvo de movimento quando as informações de tamanho do bloco atual satisfazem uma segunda condição.
19. O método da reivindicação 1 compreendendo adicionalmente: armazenar as primeiras informações alvo de movimento para o primeiro sub-bloco triangular quando um bloco candidato correspondendo às primeiras informações alvo de movimento é um bloco de predição unidirecional; armazenar as primeiras informações alvo de movimento e terceiras informações alvo de movimento para o primeiro sub-bloco triangular quando o bloco candidato correspondendo às primeiras informações alvo de movimento é um bloco de predição bidirecional, em que as terceiras informações alvo de movimento consistem em outras informações de movimento do bloco de predição bidirecional; armazenar as segundas informações alvo de movimento para o segundo sub-bloco triangular quando o bloco candidato correspondendo às segundas informações alvo de movimento é um bloco de predição unidirecional; armazenar as segundas informações alvo de movimento e quartas informações alvo de movimento para o segundo sub-bloco triangular quando o bloco candidato correspondendo às segundas informações alvo de movimento é um bloco de predição bidirecional, em que as quartas informações alvo de movimento consistem em outras informações de movimento do bloco de predição bidirecional.
20. Um decodificador de vídeo, compreendendo um processador e um meio de armazenamento legível por máquina, em que o meio de armazenamento legível por máquina armazena instruções executáveis por máquina que podem ser executadas pelo processador; quando o processador invoca as instruções, o processador é configurado para desempenhar o método, de acordo com qualquer uma das reivindicações 1-19.
21. Um codificador de vídeo, compreendendo um processador e um meio de armazenamento legível por máquina, em que o meio de armazenamento legível por máquina armazena instruções executáveis por máquina que podem ser invocadas pelo processador; quando o processador invoca as instruções, o processador é configurado para desempenhar o método, de acordo com qualquer uma das reivindicações 1 a 19.
22. Um meio de armazenamento legível por máquina tendo instruções de computador armazenadas no mesmo e quando as instruções de computador são invocadas por um processador, o processador é configurado para desempenhar o método, de acordo com qualquer uma das reivindicações 1 a 19.
BR112021012638-4A 2018-12-28 2019-12-11 Dispositivo de decodificação, dispositivo de codificação e métodos relacionados BR112021012638A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811628695.2A CN111385581B (zh) 2018-12-28 2018-12-28 一种编解码方法及其设备
CN201811628695.2 2018-12-28
PCT/CN2019/124453 WO2020135033A1 (zh) 2018-12-28 2019-12-11 视频编解码

Publications (1)

Publication Number Publication Date
BR112021012638A2 true BR112021012638A2 (pt) 2021-09-14

Family

ID=66615056

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021012638-4A BR112021012638A2 (pt) 2018-12-28 2019-12-11 Dispositivo de decodificação, dispositivo de codificação e métodos relacionados

Country Status (13)

Country Link
US (1) US11889072B2 (pt)
EP (1) EP3886437A4 (pt)
JP (1) JP7360464B2 (pt)
KR (1) KR20210093347A (pt)
CN (38) CN112565785B (pt)
AU (1) AU2019416266B2 (pt)
BR (1) BR112021012638A2 (pt)
CA (2) CA3214820A1 (pt)
MX (1) MX2021007710A (pt)
PH (1) PH12021551503A1 (pt)
SG (1) SG11202106972TA (pt)
WO (4) WO2020135035A1 (pt)
ZA (1) ZA202104449B (pt)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020057504A1 (en) * 2018-09-17 2020-03-26 Mediatek Inc. Methods and apparatuses of combining multiple predictors for block prediction in video coding systems
CN112565785B (zh) * 2018-12-28 2022-04-26 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN112073734B (zh) * 2019-06-10 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113875251B (zh) * 2019-06-21 2023-11-28 华为技术有限公司 用于几何分割模式的自适应滤波器强度指示
CN113453013B (zh) * 2019-06-21 2022-02-18 杭州海康威视数字技术股份有限公司 预测模式的解码、编码方法及装置
CN113596478B (zh) * 2019-06-21 2022-04-26 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113055689B (zh) * 2019-06-24 2022-11-01 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN110213588B (zh) * 2019-06-25 2021-07-13 浙江大华技术股份有限公司 空域候选运动信息获取方法、装置、编解码器及存储装置
CN111699689B (zh) * 2019-06-25 2023-03-31 北京大学 视频处理方法、装置和设备
CN110312130B (zh) * 2019-06-25 2021-10-15 浙江大华技术股份有限公司 基于三角模式的帧间预测、视频编码方法及设备
CN116405697A (zh) * 2019-07-23 2023-07-07 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN115118978B (zh) * 2019-08-26 2023-04-11 华为技术有限公司 运动信息存储方法及装置
CN112449180B (zh) * 2019-08-27 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN114303382A (zh) * 2019-09-01 2022-04-08 北京字节跳动网络技术有限公司 视频编解码中预测权重的对准
CN114556926A (zh) 2019-10-10 2022-05-27 北京字节跳动网络技术有限公司 几何分割模式中的运动矢量处理
US11496755B2 (en) * 2019-12-28 2022-11-08 Tencent America LLC Method and apparatus for video coding
CN113141507B (zh) * 2020-01-17 2022-07-15 腾讯科技(深圳)有限公司 视频编解码中的运动信息列表构建方法、装置及设备
CN113709460B (zh) * 2020-03-25 2023-03-24 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN115244925A (zh) * 2020-04-03 2022-10-25 Oppo广东移动通信有限公司 一种帧间预测方法、编码器、解码器及存储介质
WO2021196242A1 (zh) * 2020-04-03 2021-10-07 Oppo广东移动通信有限公司 一种帧间预测方法、编码器、解码器及存储介质
CN113709488B (zh) * 2020-06-30 2023-02-28 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112004096A (zh) * 2020-07-20 2020-11-27 浙江大华技术股份有限公司 角度模式帧间预测方法、编码器及存储介质
CN114071159B (zh) * 2020-07-29 2023-06-30 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器及计算机可读存储介质
CN112040242A (zh) * 2020-07-30 2020-12-04 浙江大华技术股份有限公司 基于高级运动矢量表达的帧间预测方法、装置及设备
WO2022117030A1 (en) * 2020-12-02 2022-06-09 Zhejiang Dahua Technology Co., Ltd. Systems and method for inter prediction based on a merge mode
WO2023154574A1 (en) * 2022-02-14 2023-08-17 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for geometric partitioning mode with adaptive blending

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3426092B2 (ja) 1996-09-12 2003-07-14 シャープ株式会社 動画像符号化装置における動き補償フレーム間予測方法
KR100265721B1 (ko) * 1997-03-31 2000-09-15 윤종용 2차원삼각형조각선격자모델을이용한동영상의움직임추정방법
JPH10294942A (ja) * 1997-04-18 1998-11-04 Ricoh Co Ltd 画像データ符号化装置
US6879324B1 (en) * 1998-07-14 2005-04-12 Microsoft Corporation Regional progressive meshes
US7053894B2 (en) * 2001-01-09 2006-05-30 Intel Corporation Compression of surface light fields
KR100886191B1 (ko) * 2004-12-06 2009-02-27 엘지전자 주식회사 영상 블록을 디코딩 하는 방법
EP2047687B1 (en) * 2006-08-02 2018-05-16 Thomson Licensing DTV Adaptive geometric partitioning for video encoding
CN101873500B (zh) * 2009-04-24 2012-05-23 华为技术有限公司 帧间预测编码方法、帧间预测解码方法及设备
CN105959688B (zh) * 2009-12-01 2019-01-29 数码士有限公司 用于解码高分辨率图像的方法
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
CN102215395B (zh) * 2010-04-09 2013-10-09 华为技术有限公司 一种视频编解码方法和装置
CN102215396A (zh) * 2010-04-09 2011-10-12 华为技术有限公司 一种视频编解码方法和系统
CN102223526B (zh) * 2010-04-15 2013-09-11 华为技术有限公司 图像编解码方法及相关装置
CN102223528B (zh) * 2010-04-15 2014-04-30 华为技术有限公司 一种参考运动矢量获得方法
KR101712156B1 (ko) * 2010-12-06 2017-03-06 에스케이 텔레콤주식회사 임의의 형태의 블록을 이용한 인터예측에 의한 영상의 부호화/복호화 방법 및 장치
CN102075748B (zh) * 2010-12-27 2013-12-25 北京自动测试技术研究所 用于视频编码运动估计的搜索方法
CN102611880B (zh) 2011-01-19 2015-02-04 华为技术有限公司 标识图像块几何划分模式的编解码方法和设备
CN102611884B (zh) 2011-01-19 2014-07-09 华为技术有限公司 图像编解码方法及编解码设备
CN102611881B (zh) * 2011-01-19 2014-06-25 华为技术有限公司 参考运动矢量获取方法、模块及编、解码装置
US9532066B2 (en) * 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
KR20120090740A (ko) * 2011-02-07 2012-08-17 (주)휴맥스 정밀한 단위의 필터 선택을 적용한 영상 부호화/복호화 장치 및 방법
CN108040259B (zh) 2011-10-05 2022-02-01 太阳专利托管公司 图像编码方法以及图像编码装置
KR20130050149A (ko) * 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
EP2942961A1 (en) 2011-11-23 2015-11-11 HUMAX Holdings Co., Ltd. Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
CN103686165B (zh) * 2012-09-05 2018-01-09 乐金电子(中国)研究开发中心有限公司 深度图像帧内编解码方法及视频编解码器
KR101980349B1 (ko) * 2014-03-05 2019-05-20 엘지전자 주식회사 폴리곤 유닛 기반 영상 인코딩/디코딩 방법 및 이를 위한 장치
JP6443869B2 (ja) * 2014-11-14 2018-12-26 ホアウェイ・テクノロジーズ・カンパニー・リミテッド デジタル画像を処理するためのシステムおよび方法
CN104717513B (zh) * 2015-03-31 2018-02-09 北京奇艺世纪科技有限公司 一种双向帧间预测方法及装置
CN108028942B (zh) 2015-06-04 2020-06-26 清华大学 像素预测方法、编码方法、解码方法及其装置、存储介质
CN106294918A (zh) * 2015-06-10 2017-01-04 中国科学院宁波材料技术与工程研究所 一种虚拟透明化办公系统的设计方法
CN104935938B (zh) * 2015-07-15 2018-03-30 哈尔滨工业大学 一种混合视频编码标准中帧间预测方法
JP2019515570A (ja) 2016-05-02 2019-06-06 漢陽大学校産学協力団Industry−University Cooperation Foundation Hanyang University 画面内予測を利用した映像符号化/復号化方法および装置
CN116614641A (zh) 2016-07-12 2023-08-18 韩国电子通信研究院 图像编码/解码方法和用于所述方法的记录介质
CN109479129B (zh) 2016-07-18 2023-07-11 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
CN106375764B (zh) * 2016-08-31 2018-04-10 中国科学技术大学 一种结合方向预测和块复制预测的视频帧内编码方法
WO2018066242A1 (en) * 2016-10-04 2018-04-12 Sharp Kabushiki Kaisha Systems and methods for adaptively clipping sample values
US10313673B2 (en) * 2016-10-19 2019-06-04 Google Llc Methods and apparatus to encode and/or decode normals of geometric representations of surfaces
CN116614647A (zh) 2016-11-08 2023-08-18 株式会社Kt 对视频进行解码和编码的方法、发送压缩数据的方法
CN109997363B (zh) 2016-11-28 2023-12-05 英迪股份有限公司 图像编码/解码方法和装置以及存储有比特流的记录介质
WO2018128461A1 (ko) 2017-01-05 2018-07-12 주식회사 엘지화학 작업성이 향상된 카본나노튜브 분산액 및 그 제조방법
WO2018128466A1 (ko) * 2017-01-09 2018-07-12 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
WO2019059676A1 (ko) * 2017-09-20 2019-03-28 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019078581A1 (ko) * 2017-10-16 2019-04-25 디지털인사이트주식회사 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
EP3704857A1 (en) * 2017-11-01 2020-09-09 VID SCALE, Inc. Overlapped block motion compensation
CN112565785B (zh) * 2018-12-28 2022-04-26 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN110312130B (zh) * 2019-06-25 2021-10-15 浙江大华技术股份有限公司 基于三角模式的帧间预测、视频编码方法及设备

Also Published As

Publication number Publication date
CN112584174B (zh) 2022-04-26
WO2020135035A1 (zh) 2020-07-02
CN112584176B (zh) 2022-05-31
CN112584173B (zh) 2022-05-31
CN112584164B (zh) 2022-05-31
CN112468825A (zh) 2021-03-09
CN112584175B (zh) 2022-05-31
WO2020135036A1 (zh) 2020-07-02
CN112584163A (zh) 2021-03-30
CN112565788A (zh) 2021-03-26
CN112565787A (zh) 2021-03-26
CN112584169A (zh) 2021-03-30
CN112584164A (zh) 2021-03-30
CN112584162B (zh) 2022-05-31
CN112584177A (zh) 2021-03-30
CN112584171A (zh) 2021-03-30
CN112584168B (zh) 2022-05-31
CN112565782B (zh) 2022-04-26
CA3214820A1 (en) 2020-07-02
CN109819255B (zh) 2020-01-03
US20210321102A1 (en) 2021-10-14
WO2020135033A1 (zh) 2020-07-02
CN109862369A (zh) 2019-06-07
CN109819255A (zh) 2019-05-28
EP3886437A4 (en) 2022-02-16
CN111385581B (zh) 2022-04-26
CN112584160B (zh) 2022-04-26
CN112584159B (zh) 2022-05-31
CN112584177B (zh) 2022-05-31
CN112584166A (zh) 2021-03-30
CN112565786B (zh) 2022-05-27
WO2020135034A1 (zh) 2020-07-02
AU2019416266B2 (en) 2022-08-25
CN112565784A (zh) 2021-03-26
CN112584178A (zh) 2021-03-30
CN109862368B (zh) 2020-02-11
CA3124889A1 (en) 2020-07-02
CN112565786A (zh) 2021-03-26
CN112584163B (zh) 2022-05-27
CN112584169B (zh) 2022-05-31
CN112511842A (zh) 2021-03-16
CN112584176A (zh) 2021-03-30
CN112565785B (zh) 2022-04-26
CN112584171B (zh) 2022-05-31
CN112532994A (zh) 2021-03-19
CN112584161B (zh) 2022-05-31
CN112565781B (zh) 2022-05-27
KR20210093347A (ko) 2021-07-27
CN112468824A (zh) 2021-03-09
CN112511841A (zh) 2021-03-16
CN112584173A (zh) 2021-03-30
CN112565785A (zh) 2021-03-26
CN112532994B (zh) 2022-04-26
AU2019416266A1 (en) 2021-07-15
CN112565782A (zh) 2021-03-26
CN112584168A (zh) 2021-03-30
CN112584159A (zh) 2021-03-30
CN112565788B (zh) 2022-04-26
ZA202104449B (en) 2023-12-20
PH12021551503A1 (en) 2022-02-28
CN112565783B (zh) 2022-05-31
CN112468824B (zh) 2022-05-31
CN112511842B (zh) 2022-05-31
JP2022515507A (ja) 2022-02-18
MX2021007710A (es) 2021-08-05
CN112584165B (zh) 2022-05-31
CN112565781A (zh) 2021-03-26
CN112584160A (zh) 2021-03-30
CN112468825B (zh) 2022-04-26
CN112584167B (zh) 2022-04-26
CA3124889C (en) 2023-11-14
CN112584178B (zh) 2022-04-26
CN109862368A (zh) 2019-06-07
CN112565783A (zh) 2021-03-26
EP3886437A1 (en) 2021-09-29
CN109862369B (zh) 2020-05-12
CN112584172A (zh) 2021-03-30
CN112584162A (zh) 2021-03-30
CN112565784B (zh) 2022-05-27
CN112584166B (zh) 2022-04-26
CN111385581A (zh) 2020-07-07
CN112532993B (zh) 2022-04-26
CN112584161A (zh) 2021-03-30
CN112584174A (zh) 2021-03-30
US11889072B2 (en) 2024-01-30
CN112565787B (zh) 2022-05-31
CN112511841B (zh) 2022-04-26
CN112584175A (zh) 2021-03-30
CN112584170A (zh) 2021-03-30
CN112584170B (zh) 2022-04-26
CN112584165A (zh) 2021-03-30
CN112584167A (zh) 2021-03-30
CN112532993A (zh) 2021-03-19
CN112584172B (zh) 2022-04-26
SG11202106972TA (en) 2021-07-29
JP7360464B2 (ja) 2023-10-12

Similar Documents

Publication Publication Date Title
BR112021012638A2 (pt) Dispositivo de decodificação, dispositivo de codificação e métodos relacionados
ES2954447T3 (es) Predicción de vectores de movimiento
CN110622512B (zh) 视频处理设备和方法
KR102081213B1 (ko) 화상 예측 방법 및 관련 장치
US11863714B2 (en) Method for constructing motion information candidate list, method and apparatus for triangle prediction decoding
KR101370919B1 (ko) 신호처리방법 및 장치
BR122021004610B1 (pt) Método para decodificar uma imagem
CN110121883A (zh) 在图像编码系统中对图像进行解码的方法和装置
BR122020014007A2 (pt) Método para decodificar um vídeo
BR122015013871A2 (pt) método para decodificar uma imagem
KR20140068013A (ko) 심도맵의 인코딩 및 디코딩
BRPI0920213A2 (pt) método de codificação de vídeo escalável, aparelho de codificação de vídeo escalável, programa de codificação de vídeo escalável, e meio de gravação legível por computador armazenando o programa
BR112021000349A2 (pt) Codificador de vídeo, decodificador de vídeo, e método correspondente
RU2793275C2 (ru) Кодирование и декодирование видео
RU2776941C1 (ru) Кодирование и декодирование видео
BR112018000085B1 (pt) Método e aparelho de previsão de imagem e meio legível por computador