BR112020024162A2 - método de processamento de vídeo e aparelho para processar dados de vídeo, meios de armazenamento e de gravação legíveis por computador não transitórios, método para armazenar uma representação de fluxo de bits de um vídeo - Google Patents

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

Info

Publication number
BR112020024162A2
BR112020024162A2 BR112020024162-8A BR112020024162A BR112020024162A2 BR 112020024162 A2 BR112020024162 A2 BR 112020024162A2 BR 112020024162 A BR112020024162 A BR 112020024162A BR 112020024162 A2 BR112020024162 A2 BR 112020024162A2
Authority
BR
Brazil
Prior art keywords
candidates
movement
list
motion
candidate
Prior art date
Application number
BR112020024162-8A
Other languages
English (en)
Inventor
Li Zhang
Kai Zhang
Hongbin Liu
Yue Wang
Original Assignee
Beijing Bytedance Network Technology Co., Ltd.
Bytedance Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Bytedance Network Technology Co., Ltd., Bytedance Inc. filed Critical Beijing Bytedance Network Technology Co., Ltd.
Publication of BR112020024162A2 publication Critical patent/BR112020024162A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Liquid Crystal Substances (AREA)
  • Tires In General (AREA)

Abstract

MÉTODO DE PROCESSAMENTO DE VÍDEO E APARELHO PARA PROCESSAR DADOS DE VÍDEO, MEIOS DE ARMAZENAMENTO E DE GRAVAÇÃO LEGÍVEIS POR COMPUTADOR NÃO TRANSITÓRIOS, MÉTODO PARA ARMAZENAR UMA REPRESENTAÇÃO DE FLUXO DE BITS DE UM VÍDEO. É provido um método de decodificação de vídeo para incluir a manutenção de tabelas, em que cada tabela inclui um conjunto de candidatos a movimento e cada candidato a movimento é associado a informações de movimento correspondentes; e desempenha uma conversão entre um primeiro bloco de vídeo e uma representação de fluxo de bits de um vídeo incluindo o primeiro bloco de vídeo, em que desempenhar a conversão inclui o uso de pelo menos alguns dentre o conjunto de candidatos a movimento como um preditor para processar informações de movimento do primeiro bloco de vídeo.

Description

MÉTODO DE PROCESSAMENTO DE VÍDEO E APARELHO PARA PROCESSAR DADOS DE VÍDEO, MEIOS DE ARMAZENAMENTO E DE GRAVAÇÃO LEGÍVEIS POR COMPUTADOR NÃO TRANSITÓRIOS, MÉTODO PARA ARMAZENAR UMA REPRESENTAÇÃO DE FLUXO DE BITS DE UM VÍDEO REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[001] De acordo com a lei e/ou regras de patentes aplicáveis nos termos da Convenção de Paris, este pedido é feito para reivindicar em tempo a prioridade e os benefícios do Pedido de Patente Internacional nº PCT/CN2018/093663, depositado em 29 de junho de 2018, Pedido de Patente Internacional nº PCT/CN2018/105193, depositado em 12 de setembro de 2018, e do Pedido de Patente Internacional nº PCT/CN2019/072058, depositado em 16 de janeiro de
2019. Para todos os efeitos ao abrigo da lei dos EUA, todas as divulgações do Pedido de Patente Internacional nº PCT/CN2018/093663, Pedido de Patente Internacional nº PCT/CN2018/105193, e do Pedido de Patente Internacional nº PCT/CN2019/072058 são incorporadas por referência como parte da divulgação deste pedido.
CAMPO TÉCNICO
[002] Este documento de patente se refere a dispositivos, sistemas e técnicas de codificação e decodificação de vídeo.
ANTECEDENTES
[003] Apesar dos avanços em compressão de vídeo, o vídeo digital adicionalmente é responsável pelo maior uso de largura de banda na Internet e em outras redes de comunicação digital. À medida que aumenta o número de dispositivos de usuário conectados capazes de receber e exibir vídeo, espera-se que a demanda de largura de banda para uso de vídeo digital continue a crescer.
SUMÁRIO
[004] Este documento divulga métodos, sistemas e dispositivos para codificação e decodificação de vídeo digital.
[005] Em um aspecto de exemplo, é provido um método de decodificação de vídeo para incluir manter tabelas, em que cada tabela inclui um conjunto de candidatos a movimento e cada candidato de movimento está associado a informações de movimento correspondentes; e desempenhar uma conversão entre um primeiro bloco de vídeo e uma representação de fluxo de bits de um vídeo incluindo o primeiro bloco de vídeo, em que desempenhar a conversão inclui o uso de pelo menos alguns dentre o conjunto de candidatos a movimento como um preditor para processar informações de movimento do primeiro bloco de vídeo.
[006] Adicionalmente, outro aspecto representativo, as várias técnicas descritas na presente invenção podem ser modalizadas como um produto de programa de computador armazenado em uma mídia legível por computador não transitória. O produto de programa de computador inclui código de programa para realizar os métodos descritos na presente invenção.
[007] Os detalhes de uma ou mais implementações são apresentados nos anexos, nos desenhos e na descrição abaixo. Outras características serão evidentes a partir da descrição e dos desenhos, e a partir das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[008] A FIG. 1 é um diagrama de blocos mostrando um exemplo de uma implementação de codificador de vídeo.
[009] A FIG. 2 ilustra o particionamento de macroblocos no padrão de codificação de vídeo H.264.
[010] A FIG. 3 ilustra um exemplo de divisão de blocos de codificação (CB) em blocos de predição (PU).
[011] A FIG. 4 ilustra um exemplo de implementação para subdivisão de um CTB em CBs e bloco de transformada (TBs). As linhas contínuas indicam os limites de CB e as linhas pontilhadas indicam os limites de TB, incluindo um CTB de exemplo com seu particionamento e uma quadtree correspondente.
[012] A FIG. 5 mostra um exemplo de estrutura Árvore Binária Quad Tree (QTBT) para particionar dados de vídeo.
[013] A FIG. 6 mostra um exemplo de particionamento de bloco de vídeo.
[014] A FIG. 7 mostra um exemplo de particionamento de quadtree.
[015] A FIG. 8 mostra um exemplo de sinalização tipo árvore.
[016] A FIG. 9 mostra um exemplo de um processo de derivação para a construção de lista de candidatos a fusão.
[017] A FIG. 10 mostra posições de exemplo de candidatos a fusão espaciais.
[018] A FIG. 11 mostra exemplos de pares de candidatos considerados para verificação de redundância de candidatos a fusão espaciais.
[019] A FIG. 12 mostra exemplos de posições para o segundo PU de partições Nx2N e 2NxN.
[020] A FIG. 13 ilustra um escalamento de vetores de movimento para candidatos a fusão temporais.
[021] A FIG. 14 mostra posições candidatas para candidatos a fusão temporais e sua imagem colocalizada.
[022] A FIG. 15 mostra um exemplo de um candidato a fusão bipreditiva combinada.
[023] A FIG. 16 mostra um exemplo de um processo de derivação para candidatos a predição de vetor de movimento.
[024] A FIG. 17 mostra um exemplo de escalamento de vetores de movimento para candidatos a vetor de movimento espacial.
[025] A FIG. 18 mostra um exemplo de Predição de Vetor de Movimento Temporal Alternativo (ATMVP) para predição de movimento de uma CU.
[026] A FIG. 19 representa pictoricamente um exemplo de identificação de um bloco fonte e uma imagem fonte.
[027] A FIG. 20 mostra um exemplo de uma CU com quatro sub-blocos e blocos vizinhos.
[028] A FIG. 21 ilustra um exemplo de correspondência bilateral.
[029] A FIG. 22 ilustra um exemplo de correspondência de modelo.
[030] A FIG. 23 representa um exemplo de Estimativa de Movimento (ME) unilateral em Conversão Ascendente de Taxa de Quadros (FRUC).
[031] A FIG. 24 mostra um exemplo de DMVR com base na correspondência de modelo bilateral.
[032] A FIG. 25 mostra um exemplo de blocos espacialmente vizinhos usados para derivar candidatos a fusão espaciais.
[033] A FIG. 26representa um exemplo de como a seleção de uma posição representativa para tabela de consulta se atualiza.
[034] As FIGs. 27A e 27B ilustram exemplos de atualização de tabela de consulta com novo conjunto de informações de movimento.
[035] A FIG. 28 é um diagrama de blocos de um exemplo de uma plataforma de hardware para implementar uma técnica de decodificação de mídia visual ou de codificação de mídia visual descrita no presente documento.
[036] A FIG. 29 é um fluxograma para outro método de exemplo de processamento de fluxo de bits de vídeo.
[037] A FIG. 30 mostra um exemplo de um fluxograma de decodificação com o método de HMVP proposto.
[038] A FIG. 31 mostra exemplos de atualização de tabelas usando o método de HMVP proposto.
[039] As FIGs. 32A e 32B mostram exemplos de um método de atualização de LUT com base em remoção de redundância (com um candidato de movimento de redundância removido).
[040] As FIGs. 33A e 33B mostram exemplos de um método de atualização de LUT com base em remoção de redundância (com múltiplos candidatos a movimento de redundância removidos).
[041] A FIG. 34 mostra um exemplo de diferenças entre os blocos Tipo 1 e Tipo 2.
DESCRIÇÃO DETALHADA
[042] Para melhorar a razão de compressão de vídeo, os pesquisadores estão continuamente buscando novas técnicas para codificar vídeo.
1. Introdução
[043] O presente documento está relacionado às tecnologias de codificação de vídeo. Especificamente, está relacionado à codificação de informações de movimento (tais como modo de fusão, modo de AMVP) em codificação de vídeo. Ele pode ser aplicado ao padrão de codificação de vídeo existente, como HEVC, ou ao padrão (Codificação de Vídeo Versátil) a ser finalizado. Também pode ser aplicável a futuros padrões de codificação de vídeo ou codec de vídeo. Breve discussão
[044] Os padrões de codificação de vídeo evoluíram principalmente através do desenvolvimento dos bem conhecidos padrões ITU-T e ISO/IEC. O ITU-T produziu H.261 e H.263, ISO/IEC produziu MPEG-1 e Visual MPEG-4, e as duas organizações produziram em conjunto o H.262/Vídeo MPEG-2 e o H.264/Codificação de Vídeo Avançado (AVC) MPEG-4 e padrões H.265/HEVC. Desde o H.262, os padrões de codificação de vídeo se baseiam na estrutura de codificação de vídeo híbrida em que são utilizadas a predição temporal mais a codificação de transformada. Um exemplo de uma estrutura de codificador HEVC típico é representado na FIG. 1.
2.1 Estrutura de Partição
2.1.1 Estrutura de árvore de partição em H.264/AVC
[045] O núcleo da camada de codificação nos padrões anteriores era o macrobloco, contendo um bloco de 16×16 de amostras luma e, no caso usual de amostragem de cor 4:2:0, dois blocos de 8×8 correspondentes de amostras de croma.
[046] Um bloco intracodificado usa predição espacial para explorar a correlação espacial entre pixels. São definidas duas partições: 16x16 e 4x4.
[047] Um bloco intercodificado usa a predição temporal, em vez da predição espacial, estimando movimento entre imagens. O movimento pode ser estimado independentemente para o macrobloco 16x16 ou qualquer uma das suas partições de sub-macrobloco: 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 (vide FIG. 2). É permitido apenas um vetor de movimento (MV) por partição de sub- macrobloco.
2.1.2 Estrutura de árvore de partição em HEVC
[048] Em HEVC, uma CTU é dividida em CUs usando uma estrutura de quadtree denotada como árvore de codificação para se adaptar a várias características locais. A decisão de codificar uma área de imagem usando predição interimagem (temporal) ou intraimagem (espacial) é feita a nível de CU. Cada CU pode ser dividida adicionalmente em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU. Dentro de uma PU é aplicado o mesmo processo de predição e as informações relevantes são transmitidas para o decodificador por PU. Depois de obter o bloco residual ao aplicar o processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs) de acordo com outra estrutura quadtree semelhante à árvore de codificação para a CU. Um dos recursos chave da estrutura de HEVC é que ela tem as múltiplas concepções de partição incluindo CU, PU e TU.
[049] A seguir, os vários recursos envolvidos na codificação de vídeo híbrido usando HEVC são destacados como segue.
[050] 1) Unidades de árvore de codificação e estrutura de bloco de árvore de codificação (CTB): a estrutura análoga em HEVC é a unidade de árvore de codificação (CTU), que tem um tamanho selecionado pelo codificador e pode ser maior do que um macrobloco tradicional. A CTU consiste em um CTB de luma e os CTBs de croma e elementos de sintaxe correspondentes. O tamanho L×L de um CTB de luma pode ser escolhido como L = 16, 32 ou 64 amostras, com os tamanhos maiores normalmente permitindo melhor compressão. A HEVC então suporta um particionamento dos CTBs em blocos menores usando uma estrutura em árvore e sinalização do tipo quadtree.
[051] 2) Unidades de codificação (CUs) e blocos de codificação (CBs): a sintaxe quadtree da CTU especifica o tamanho e as posições de seus CBs de luma e croma. A raiz da quadtree está associada à CTU. Portanto, o tamanho do CTB de luma é o maior tamanho suportado para um CB de luma. A divisão de uma CTU em CBs de luma e croma é sinalizada em conjunto. Um CB de luma e normalmente dois CBs de croma, junto com a sintaxe associada, formam uma unidade de codificação (CU). Um CTB pode conter apenas uma CU ou pode ser dividido para formar várias CUs, e cada CU tem um particionamento associado em unidades de predição (PUs) e uma árvore de unidades de transformada (TUs).
[052] 3) Unidades de predição e blocos de predição (PBs): a decisão de codificar uma área de imagem usando predição interimagem ou intraimagem é feita a nível de CU. Uma estrutura de particionamento de PU tem sua raiz no nível de CU. Dependendo da decisão do tipo de predição básica, os CBs de luma e croma podem então ser adicionalmente divididos em tamanho e preditos a partir dos blocos de predição de luma e croma (PBs). A HEVC suporta tamanhos variáveis de PB de amostras de 64×64 até 4×4. A FIG. 3 mostra exemplos de PBs permitidos para uma MxM CU.
[053] 4) TUs e blocos de transformada: o residual de predição é codificado usando transformadas de bloco. Uma estrutura de árvore de TU tem sua raiz no nível de CU. O residual de CB luma pode ser idêntico ao bloco de transformada (TB) de luma ou pode ser dividido adicionalmente em TBs de luma menores. O mesmo se aplica aos TBs de croma. Funções de base de número inteiro semelhantes àquelas de uma transformada discreta de cosseno (DCT) são definidas para os tamanhos de TB quadrado 4×4, 8×8, 16×16 e 32×32. Para a transformada 4×4 de resíduos de predição intraimagem luma, uma transformada de número inteiro derivada a partir de uma forma de transformada discreta de seno (DST) é alternativamente especificada.
[054] A FIG. 4 mostra um exemplo de uma subdivisão de um CTB em CBs [e bloco de transformada (TBs)]. Linhas contínuas indicam bordas de CB e linhas pontilhadas indicam bordas de TB. (a) CTB com seu particionamento. (b) quadtree correspondente.
2.1.2.1 Particionamento Estruturado em Árvore em Unidades e Blocos de Transformada
[055] Para codificação residual, um CB pode ser particionado recursivamente em blocos de transformada (TBs). O particionamento é sinalizado por uma quadtree residual. Apenas o particionamento de CB e TB quadrados é especificado, em que um bloco pode ser dividido recursivamente em quadrantes, como ilustrado na FIG. 4. Para um dado CB de luma de tamanho M×M, uma flag sinaliza se ele está dividido em quatro blocos de tamanho M/2×M/2. Se a divisão adicional for possível, conforme sinalizado por uma profundidade máxima da quadtree residual indicada no SPS, cada quadrante é atribuído a uma flag que indica se ele está dividido em quatro quadrantes. Os blocos de nó folha resultantes da quadtree residual são os blocos de transformada que são adicionalmente processados pela codificação de transformada. O codificador indica os tamanhos máximo e mínimo de TB de luma que ele usará. A divisão está implícita quando o tamanho do CB é maior do que o tamanho máximo de TB. A não divisão está implícita quando a divisão resultaria em um tamanho de TB de luma menor do que o mínimo indicado. O tamanho do TB de croma é a metade do tamanho do TB de luma em cada dimensão, exceto quando o tamanho do TB de luma é 4×4, caso em que um único TB de croma 4×4 é usado para a região coberta por quatro TBs luma 4×4. No caso de CUs preditas intraimagem, as amostras decodificadas dos TBs vizinhos mais próximos (dentro ou fora do CB) são usadas como dados de referência para predição intraimagem.
[056] Ao contrário dos padrões anteriores, o projeto HEVC permite que um TB se estenda ao longo de múltiplos PBs para CUs preditas interimagens para maximizar os potenciais benefícios de eficiência de codificação do particionamento de TB estruturado em quadtree.
2.1.2.2 Nós pai e filho
[057] Um CTB é dividido de acordo com uma estrutura de quadtree, cujos nós são unidades de codificação. A pluralidade de nós em uma estrutura quadtree inclui nós folha e nós não folha. Os nós folha não têm nós filhos na estrutura de árvore (ou seja, os nós folha não são adicionalmente divididos). Os nós não folha incluem um nó raiz da estrutura de árvore. O nó raiz corresponde a um bloco de vídeo inicial dos dados de vídeo (por exemplo, um CTB). Para cada respectivo nó não-raiz da pluralidade de nós, o respectivo nó não-raiz corresponde a um bloco de vídeo que é um sub-bloco de um bloco de vídeo correspondente a um nó pai na estrutura de árvore do respectivo nó não-raiz. Cada respectivo nó não folha da pluralidade de nós não folha tem um ou mais nós filhos na estrutura de árvore.
2.1.3 Estrutura de bloco de quadtree mais árvore binária com CTUs maiores em JEM
[058] Para explorar as futuras tecnologias de codificação de vídeo para além da HEVC, a Equipe Conjunta de Exploração em Vídeo (JVET) foi fundada em conjunto pela VCEG e pela MPEG em 2015. Desde então, muitos novos métodos foram adotados pela JVET e colocados no software de referência denominado Modelo de Exploração Conjunta (JEM).
2.1.3.1 Estrutura de particionamento de bloco QTBT
[059] Diferente da HEVC, a estrutura QTBT remove os conceitos de múltiplos tipos de partição, ou seja, remove a separação dos conceitos de CU, PU e TU e suporta mais flexibilidade para formatos de partição de CU. Na estrutura de bloco QTBT, uma CU pode ter um formato quadrado ou retangular. Conforme mostrado na FIG. 5, uma unidade de árvore de codificação (CTU) é primeiro particionada por uma estrutura quadtree. Os nós folha de quadtree são adicionalmente particionados por uma estrutura de árvore binária. Existem dois tipos de divisão, divisão horizontal simétrica e divisão vertical simétrica, na divisão da árvore binária. Os nós folha de árvore binários são chamados de unidades de codificação (CUs), e essa segmentação é usada para predição e processamento de transformada sem qualquer particionamento adicional. Isso significa que CU, PU e TU têm o mesmo tamanho de bloco na estrutura do bloco de codificação QTBT. No JEM, uma CU às vezes consiste em blocos de codificação (CBs) de componentes de cores diferentes, por exemplo, uma CU contém um CB de luma e dois CBs de croma no caso de fatias P e B do formato de croma 4:2:0 e às vezes consiste em um CB de um único componente, por exemplo, uma CU contém apenas um CB de luma ou apenas dois CB de croma no caso de fatias I.
[060] Os parâmetros a seguir são definidos para o esquema de particionamento QTBT.
- Tamanho de CTU: o tamanho do nó raiz de uma quadtree, o mesmo conceito que em HEVC - MinQTSize: o tamanho mínimo permitido do nó folha da quadtree - MaxBTSize: o tamanho máximo permitido do nó raiz da árvore binária - MaxBTDepth: a profundidade máxima permitida da árvore binária - MinBTSize: o tamanho mínimo permitido do nó folha da árvore binária
[061] Em um exemplo da estrutura de particionamento QTBT, o tamanho da CTU é definido como amostras de luma 128×128 com dois blocos correspondentes de 64×64 de amostras de croma, o MinQTSize é definido como 16×16, o MaxBTSize é definido como 64×64, o MinBTSize (para largura e altura) é definido como 4×4 e o MaxBTDepth é definido como 4. O particionamento quadtree é aplicado à CTU primeiro para gerar nós folha de quadtree. Os nós folha da quadtree podem ter um tamanho de 16×16 (ou seja, o MinQTSize) para 128×128 (ou seja, o tamanho da CTU). Se o nó folha da quadtree for 128×128, ele não será adicionalmente dividido pela árvore binária uma vez que o tamanho excede o MaxBTSize (ou seja, 64×64). Caso contrário, o nó folha da quadtree poderia ser particionado adicionalmente pela árvore binária. Portanto, o nó folha da quadtree também é o nó raiz para a árvore binária e tem a profundidade de árvore binária como 0. Quando a profundidade de árvore binária atinge MaxBTDepth (ou seja, 4), nenhuma divisão adicional é considerada. Quando o nó de árvore binária tem largura igual a MinBTSize (ou seja, 4), nenhuma divisão horizontal adicional é considerada. De maneira similar, quando o nó de árvore binária tem altura igual ao MinBTSize, nenhuma divisão vertical adicional é considerada. Os nós folha da árvore binária são adicionalmente processados por predição e processamento de transformada sem qualquer particionamento adicional. No JEM, o tamanho máximo da CTU é de 256×256 amostras de luma.
[062] A FIG. 5 (esquerda) ilustra um exemplo de particionamento de bloco ao usar uma QTBT, e a FIG. 5 (direita) ilustra a representação em árvore correspondente. As linhas contínuas indicam divisão de quadtree e as linhas pontilhadas indicam divisão de árvore binária. Em cada nó de divisão (ou seja, não-folha) da árvore binária, uma flag é sinalizada para indicar o tipo de divisão (ou seja, horizontal ou vertical) que é usado, em que 0 indica divisão horizontal e 1 indica divisão vertical. Para a divisão quadtree, não há necessidade de indicar o tipo de divisão uma vez que a divisão quadtree sempre divide um bloco horizontal e verticalmente para produzir 4 sub-blocos com um tamanho igual.
[063] Além disso, o esquema QTBT suporta a capacidade de luma e croma terem uma estrutura QTBT separada. Atualmente, para as fatias P e B, os CTBs de luma e croma em uma CTU compartilham a mesma estrutura QTBT. No entanto, para fatias I, o CTB de luma é particionado em CUs por uma estrutura QTBT, e os CTBs de croma são particionados em CUs de croma por outra estrutura QTBT. Isso significa que uma CU em uma fatia I consiste em um bloco de codificação do componente de luma ou blocos de codificação de dois componentes de croma, e uma CU em uma fatia P ou B consiste em blocos de codificação de todos os três componentes de cor.
[064] Em HEVC, a interpredição para pequenos blocos é restrita para reduzir o acesso à memória de compensação de movimento, de modo que a bipredição não seja suportada para blocos 4×8 e 8×4, e a interpredição não seja suportada para blocos 4×4. No QTBT do JEM, essas restrições são removidas.
2.1.4 Árvore ternária para VVC
[065] Em algumas modalidades são suportados tipos de árvore diferentes de quadtree e árvore binária. Na implementação, são introduzidas mais duas partições de árvore ternária (TT), ou seja, árvores ternárias horizontais e verticais do lado central, conforme mostrado na FIG. 6 (d) e (e).
[066] A FIG. 6 mostra: (a) particionamento de quadtree (b) particionamento de árvore binária vertical (c) particionamento de árvore binária horizontal (d) particionamento de árvore ternária vertical do lado central (e) particionamento de árvore ternária horizontal do lado central.
[067] Em algumas implementações, existem dois níveis de árvores, árvore de região (quadtree) e árvore de predição (árvore binária ou árvore ternária). Uma CTU é primeiramente particionada por árvore de região (RT). Uma folha de RT pode ser adicionalmente dividida com árvore de predição (PT). Uma folha de PT também pode ser adicionalmente dividida com PT até que a profundidade máxima de PT seja alcançada. Uma folha de PT é a unidade de codificação básica. adicionalmente é chamada de CU por conveniência. Uma CU não pode ser adicionalmente dividida. Predição e transformada são ambas aplicadas em CU da mesma maneira que no JEM. Toda a estrutura de partição é denominada “árvore de tipos múltiplos”.
2.1.5 Estrutura de particionamento
[068] A estrutura em árvore usada nesta resposta, chamada Tipo Multi- Árvore (MTT), é uma generalização da QTBT. Em QTBT, como mostrado na FIG. 5, uma Unidade de Árvore de Codificação (CTU) é primeiramente particionada por uma estrutura de quadtree. Os nós folha de quadtree são adicionalmente particionados por uma estrutura de árvore binária.
[069] A estrutura fundamental de MTT consiste em dois tipos de nós de árvore: Árvore de Região (RT) e Árvore de Predição (PT), suportando nove tipos de partições, como mostrado na FIG. 7.
[070] A FIG. 7 mostra: (a) particionamento de quadtree (b) particionamento de árvore binária vertical (c) particionamento de árvore binária horizontal (d) particionamento de árvore ternária vertical (e) particionamento de árvore ternária horizontal (f) particionamento de árvore binária assimétrica horizontal para cima (g) particionamento de árvore binária assimétrica horizontal para baixo (h) particionamento de árvore binária assimétrica vertical à esquerda (i) particionamento de árvore binária assimétrica vertical à direita.
[071] Uma árvore de região pode dividir recursivamente uma CTU em blocos quadrados até um nó folha de árvore de região de tamanho 4x4. Em cada nó em uma árvore de região, uma árvore de predição pode ser formada a partir de um dos três tipos de árvore: Árvore Binária (BT), Árvore Ternária (TT) e Árvore Binária Assimétrica (ABT). Em uma divisão de PT, é proibido ter uma partição de quadtree em ramos da árvore de predição. Como no JEM, a árvore de luma e a árvore de croma são separadas em fatias I. Os métodos de sinalização para RT e PT são ilustrados na FIG. 8.
2.2 Interpredição em HEVC/H.265
[072] Cada PU interpredita tem parâmetros de movimento para uma ou duas listas de imagens de referência. Os parâmetros de movimento incluem um vetor de movimento e um índice de imagem de referência. O uso de uma das duas listas de imagens de referência também pode ser sinalizado usando inter_pred_idc. Os vetores de movimento podem ser codificados explicitamente como deltas em relação aos preditores, tal modo de codificação é chamado de modo de AMVP.
[073] Quando uma CU é codificada com o modo salta, uma PU é associada à CU e não há coeficientes residuais significativos, nenhum delta de vetor de movimento codificado ou índice de imagem de referência. É especificado um modo de fusão por meio do qual os parâmetros de movimento para a PU atual são obtidos de PUs vizinhas, incluindo candidatos espaciais e temporais. O modo de fusão pode ser aplicado a qualquer PU interpredita, não apenas para o modo salto. A alternativa ao modo de fusão é a transmissão explícita de parâmetros de movimento, em que o vetor de movimento, índice de imagem de referência correspondente para cada lista de imagens de referência e uso da lista de imagens de referência são sinalizados explicitamente por cada PU.
[074] Quando a sinalização indica que uma das duas listas de imagens de referência deve ser usada, a PU é produzida a partir de um bloco de amostras. Isso é referido como “unipredição”. A unipredição está disponível para fatias P e fatias B.
[075] Quando a sinalização indica que ambas as listas de imagens de referência devem ser usadas, a PU é produzida a partir de dois blocos de amostras. Isso é referido como “bipredição”. A bipredição está disponível apenas para fatias B.
[076] O texto a seguir provê os detalhes sobre os modos de interpredição especificados na HEVC. A descrição começará com o modo de fusão.
2.2.1 Modo de fusão
2.2.1.1 Derivação de candidatos para modo de fusão
[077] Quando uma PU é predita usando o modo de fusão, um índice apontando para uma entrada na lista de candidatos a fusão é analisado a partir do fluxo de bits e usado para recuperar as informações de movimento. A construção dessa lista é especificada no padrão de HEVC e pode ser resumida de acordo com a seguinte sequência de etapas: • Etapa 1: Derivação de candidatos iniciais o Etapa 1.1: Derivação de candidatos espaciais o Etapa 1.2: Verificação de redundância para candidatos espaciais o Etapa 1.3: Derivação de candidatos temporais • Etapa 2: Inserção de candidatos adicionais o Etapa 2.1: Criação de candidatos bipreditivos o Etapa 2.2: Inserção de candidatos a movimento zero
[078] Essas etapas também são representadas esquematicamente na FIG.
9. Para derivação de candidatos a fusão espaciais, um máximo de quatro candidatos a fusão são selecionados dentre os candidatos que estão localizados em cinco posições diferentes. Para derivação de candidatos a fusão temporais, um máximo de um candidato a fusão é selecionado dentre dois candidatos. Uma vez que o número constante de candidatos para cada PU é assumido no decodificador, candidatos adicionais são gerados quando o número de candidatos não atinge o número máximo de candidatos a fusão (MaxNumMergeCand) que é sinalizado no cabeçalho de fatia. Como o número de candidatos é constante, o índice de melhor candidato a fusão é codificado usando a binarização unária truncada (TU). Se o tamanho da CU for igual a 8, todas as PUs da CU atual compartilham uma única lista de candidatos a fusão, que é idêntica à lista de candidatos a fusão da unidade de predição 2N×2N.
[079] A seguir são detalhadas as operações associadas às etapas mencionadas.
2.2.1.2 Derivação de candidatos espaciais
[080] Na derivação de candidatos a fusão espaciais, um máximo de quatro candidatos a fusão são selecionados dentre os candidatos localizados nas posições representadas na FIG. 10. A ordem de derivação é A1, B1, B0, A0 e B2. A posição B2 é considerada apenas quando qualquer PU de posição A1, B1, B0, A0 não está disponível (por exemplo, porque pertence a outra fatia ou tile) ou é intracodificado. Depois de um candidato na posição A1 ser adicionado, a adição dos candidatos restantes é submetida a uma verificação de redundância que garante que os candidatos com as mesmas informações de movimento sejam excluídos da lista para que a eficiência da codificação seja aprimorada. Para reduzir a complexidade computacional, nem todos os pares candidatos possíveis são considerados na verificação de redundância mencionada. Em vez disso apenas os pares ligados por uma seta na FIG. 11 são considerados e um candidato só é adicionado à lista se o candidato correspondente usado para verificação de redundância não tiver as mesmas informações de movimento. Outra fonte de informações de movimento duplicadas é a “segunda PU” associada a partições diferentes de 2Nx2N. Como um exemplo, a FIG. 12representa a segunda PU para o caso de N×2N e 2N×N, respectivamente. Quando a PU atual é particionada como N×2N, o candidato na posição A1 não é considerado para construção de lista. Na verdade, adicionar esse candidato levará a duas unidades de predição tendo as mesmas informações de movimento, o que é redundante para ter apenas uma PU em uma unidade de codificação. De maneira similar, a posição B1 não é considerada quando a PU atual é particionada como 2N×N.
2.2.1.3 Derivação de candidatos temporais
[081] Nesta etapa, apenas um candidato é adicionado à lista. Em particular, na derivação desse candidato a fusão temporal, um vetor de movimento escalado é derivado com base na PU colocalizada pertencente à imagem que tem a menor diferença de POC com a imagem atual dentro da lista de imagens de referência dada. A lista de imagens de referência a ser usada para derivação da PU colocalizada é sinalizada explicitamente no cabeçalho de fatia. O vetor de movimento escalado para o candidato a fusão temporal é obtido conforme ilustrado pela linha tracejada na FIG. 13, que é escalado a partir do vetor de movimento da PU colocalizada usando as distâncias de POC, tb e td, em que tb é definida como a diferença de POC entre a imagem de referência da imagem atual e a imagem atual e td é definida para ser a diferença de POC entre a imagem de referência da imagem colocalizada e a imagem colocalizada. O índice de imagem de referência de um candidato a fusão temporal é estabelecido como igual a zero. Uma realização prática do processo de escalamento é descrita na especificação HEVC. Para uma fatia B, dois vetores de movimento, um é para a lista de imagens de referência 0 e o outro é para a lista de imagens de referência
1, são obtidos e combinados para fazer o candidato a fusão bipreditiva. Ilustração de escalamento de vetores de movimento para candidatos a fusão temporais.
[082] Na PU (Y) colocalizada pertencente ao quadro de referência, a posição para o candidato temporal é selecionada entre os candidatos C0 e C1, conforme representado na FIG. 14. Se uma PU na posição C0 não estiver disponível, estiver intracodificada ou estiver fora da CTU atual, a posição C1 é usada. Caso contrário, a posição C0 é usada na derivação do candidato a fusão temporal.
2.2.1.4 Inserção de candidatos adicionais
[083] Além dos candidatos a fusão espaço-temporais, há dois tipos adicionais de candidatos a fusão: candidato a fusão bipreditivo combinado e candidato a fusão zero. Candidatos a fusão bipreditivos combinados são gerados ao utilizar candidatos a fusão espaço-temporais. Um candidato a fusão bipreditivo combinado é usado apenas para fatias B. Os candidatos bipreditivos combinados são gerados ao combinar os primeiros parâmetros de movimento de lista de imagens de referência de um candidato inicial com os segundos parâmetros de movimento de lista de imagens de referência de outro. Se essas duas tuplas proverem hipóteses de movimento diferentes, elas formarão um novo candidato bipreditivo. Como um exemplo, a FIG. 15representa o caso em que dois candidatos na lista original (à esquerda), que têm mvL0 e refIdxL0 ou mvL1 e refIdxL1, são usados para criar um candidato a fusão bipreditivo combinado adicionado à lista final (à direita). Existem inúmeras regras relativas às combinações que são consideradas para gerar esses candidatos a fusão adicional, definidas.
[084] Candidatos a movimento zero são inseridos para preencher as entradas restantes na lista de candidatos a fusão e, portanto, atingir a capacidade MaxNumMergeCand. Esses candidatos têm deslocamento espacial zero e um índice de imagem de referência que começa a partir de zero e aumenta toda vez que um novo candidato de movimento zero é adicionado à lista. O número de quadros de referência usados por esses candidatos é um e dois para predição uni e bidirecional, respectivamente. Por fim, nenhuma verificação de redundância é desempenhada nesses candidatos.
2.2.1.5 Regiões de estimativa de movimento para processamento paralelo
[085] Para acelerar o processo de codificação, a estimativa de movimento pode ser desempenhada em paralelo, por meio do qual os vetores de movimento para todas as unidades de predição dentro de uma região dada são derivados simultaneamente. A derivação de candidatos a fusão a partir da vizinhança espacial pode interferir no processamento paralelo pois uma unidade de predição não pode derivar os parâmetros de movimento a partir de uma PU adjacente até que sua estimativa de movimento associada seja concluída. Para mitigar o trade-off entre eficiência de codificação e latência de processamento, a HEVC define a região de estimativa de movimento (MER) cujo tamanho é sinalizado no parâmetro de imagem estabelecido usando o elemento de sintaxe “log2_parallel_merge_level_minus2”. Quando uma MER é definida, os candidatos a fusão que caem na mesma região são marcados como indisponíveis e, portanto, não são considerados na construção da lista.
7.3.2.3 Sintaxe de RBSP de conjunto de parâmetros de imagem
7.3.2.3.1 Sintaxe de RBSP de conjunto de parâmetros de imagem geral pic_parameter_set_rbsp( ) { Descriptor pps_pic_parameter_set_id ue(v) pps_seq_parameter_set_id ue(v) dependent_slice_segments_enabled_flag u(1) ...
pps_scaling_list_data_present_flag u(1) if( pps_scaling_list_data_present_flag ) scaling_list_data( ) lists_modification_present_flag u(1) log2_parallel_merge_level_minus2 ue(v) slice_segment_header_extension_present_flag u(1) pps_extension_present_flag u(1) ... rbsp_trailing_bits( ) } log2_parallel_merge_level_minus2 mais 2 especifica o valor da variável Log2ParMrgLevel, que é usada no processo de derivação para vetores de movimento de luma para o modo de fusão, conforme especificado na cláusula
8.5.3.2.2 e no processo de derivação para candidatos a fusão espaciais, conforme especificado na cláusula 8.5.3.2.3. O valor de log2_parallel_merge_level_minus2 deve estar na faixa de 0 a CtbLog2SizeY - 2, inclusive. A variável Log2ParMrgLevel é derivada como segue: Log2ParMrgLevel = log2_parallel_merge_level_minus2 + 2 (7-37) NOTA 3 - O valor de Log2ParMrgLevel indica a capacidade embutida de derivação paralela das listas de candidatos de fusão. Por exemplo, quando Log2ParMrgLevel é igual a 6, as listas de candidatos de fusão para todas as unidades de predição (PUs) e unidades de codificação (CUs) contidas em um bloco de 64x64 podem ser derivadas em paralelo.
2.2.2 Predição de vetores de movimento no modo de AMVP
[086] A predição de vetores de movimento explora a correlação espaço- temporal do vetor de movimento com PUs vizinhas, que é usada para transmissão explícita de parâmetros de movimento. Ela constrói uma lista de candidatos a vetor de movimento verificando, em primeiro lugar, a disponibilidade da esquerda, acima das posições de PU temporariamente vizinhas, removendo candidatos redundantes e adicionando o vetor zero para tornar a lista de candidatos de comprimento constante. Então, o codificador pode selecionar o melhor preditor da lista de candidatos e transmitir o índice correspondente indicando o candidato escolhido. De maneira similar à sinalização de índice de fusão, o índice do melhor candidato a vetor de movimento é codificado usando um unário truncado. O valor máximo a ser codificado nesse caso é 2 (por exemplo, FIGs. 2 a 8). Nas seções a seguir são providos detalhes sobre o processo de derivação do candidato a predição de vetores de movimento.
2.2.2.1 Derivação de candidatos a predição de vetor de movimento
[087] A FIG. 16 resume o processo de derivação para o candidato a predição de vetor de movimento.
[088] Na predição de vetor de movimento são considerados dois tipos de candidatos de vetor de movimento: candidato a vetor de movimento espacial e candidato a vetor de movimento temporal. Para a derivação de candidato a vetor de movimento espacial, dois candidatos a vetor de movimento são eventualmente derivados com base em vetores de movimento de cada PU localizados em cinco posições diferentes, conforme representado na FIG. 11.
[089] Para derivação de candidatos a vetor de movimento temporal, um candidato a vetor de movimento é selecionado a partir de dois candidatos, que são derivados com base em duas posições colocalizadas diferentes. Após a primeira lista de candidatos espaço-temporais ser feita, os candidatos a vetor de movimento duplicados na lista são removidos. Se o número de candidatos potenciais for maior do que dois, os candidatos a vetor de movimento cujo índice de imagem de referência na lista de imagens de referência associada é maior do que 1 são removidos da lista. Se o número de candidatos a vetor de movimento espaço-temporal for menor do que dois, candidatos a vetor de movimento zero adicionais são adicionados à lista.
2.2.2.2 Candidatos a vetor de movimento espacial
[090] Na derivação de candidatos a vetor de movimento espacial, um máximo de dois candidatos são considerados entre cinco candidatos potenciais, que são derivados a partir de PUs localizadas em posições conforme representadas na FIG. 11, sendo aquelas posições as mesmas daquelas de fusão de movimento. A ordem de derivação para o lado esquerdo da PU atual é definida como A0, A1, e A0 escalado, A1 escalado. A ordem de derivação para o lado acima da PU atual é definida como B0, B1, B2, B0 escalado, B1 escalado, B2 escalado. Para cada lado, há, portanto, quatro casos que podem ser usados como candidatos a vetor de movimento, com dois casos em que não é necessário usar o escalamento espacial e dois casos em que é usado o escalamento espacial. Os quatro diferentes casos são resumidos conforme segue. • Sem escalamento espacial – (1) A mesma lista de imagens de referência e mesmo índice de imagem de referência (mesmo POC) – (2) Lista de imagens de referência diferente, mas a mesma imagem de referência (mesmo POC) • Escalamento espacial – (3) A mesma lista de imagens de referência, mas imagem de referência diferente (POC diferente) – (4) Lista de imagens de referência diferente e imagem de referência diferente (POC diferente)
[091] Os casos de escalamento não espacial são verificados primeiro,
seguidos pelo escalamento espacial. O escalamento espacial é considerado quando o POC é diferente entre a imagem de referência da PU vizinha e aquela da PU atual, independentemente da lista de imagens de referência. Se todas as PUs dos candidatos à esquerda não estiverem disponíveis ou estiverem intracodificadas, o escalamento para o vetor de movimento acima é permitido para ajudar na derivação paralela dos candidatos a MV à esquerda e acima. Caso contrário, o escalamento espacial não é permitido para o vetor de movimento acima.
[092] Em um processo de escalamento espacial, o vetor de movimento da PU vizinha é escalado de maneira semelhante ao escalamento temporal, conforme representado na FIG. 17. A principal diferença é que a lista de imagens de referência e o índice de PU atual são dados como entrada; o processo de escalamento atual é o mesmo do escalamento temporal.
2.2.2.3 Candidatos a vetor de movimento temporal
[093] Exceto para a derivação do índice de imagem de referência, todos os processos para a derivação de candidatos a fusão temporais são os mesmos que para a derivação de candidatos a vetor de movimento espaciais (vide, por exemplo, FIG. 6). O índice de imagem de referência é sinalizado para o decodificador.
2.2.2.4 Sinalização de informações de AMVP
[094] Para o modo de AMVP, quatro partes podem ser sinalizadas no fluxo de bits, ou seja, direção de predição, índice de referência, MVD e índice de candidatos a preditor de mv. Tabelas de sintaxe: prediction_unit( x0, y0, nPbW, nPbH ) { Descriptor if( cu_skip_flag[ x0 ][ y0 ] ) { if( MaxNumMergeCand > 1 )
merge_idx[ x0 ][ y0 ] ae(v) } else { /* MODE_INTER */ merge_flag[ x0 ][ y0 ] ae(v) if( merge_flag[ x0 ][ y0 ] ) { if( MaxNumMergeCand > 1 ) merge_idx[ x0 ][ y0 ] ae(v) } else { if( slice_type = = B ) inter_pred_idc[ x0 ][ y0 ] ae(v) if( inter_pred_idc[ x0 ][ y0 ] != PRED_L1 ) { if( num_ref_idx_l0_active_minus1 > 0 ) ref_idx_l0[ x0 ][ y0 ] ae(v) mvd_coding( x0, y0, 0 ) mvp_l0_flag[ x0 ][ y0 ] ae(v) } if( inter_pred_idc[ x0 ][ y0 ] != PRED_L0 ) { if( num_ref_idx_l1_active_minus1 > 0 ) ref_idx_l1[ x0 ][ y0 ] ae(v) if( mvd_l1_zero_flag && inter_pred_idc[ x0 ][ y0 ] = = PRED_BI ) { MvdL1[ x0 ][ y0 ][ 0 ] = 0 MvdL1[ x0 ][ y0 ][ 1 ] = 0 } else mvd_coding( x0, y0, 1 ) mvp_l1_flag[ x0 ][ y0 ] ae(v) }
} } }
7.3.8.9 Sintaxe de diferença de vetor de movimento mvd_coding( x0, y0, refList ) { Descriptor abs_mvd_greater0_flag[ 0 ] ae(v) abs_mvd_greater0_flag[ 1 ] ae(v) if( abs_mvd_greater0_flag[ 0 ] ) abs_mvd_greater1_flag[ 0 ] ae(v) if( abs_mvd_greater0_flag[ 1 ] ) abs_mvd_greater1_flag[ 1 ] ae(v) if( abs_mvd_greater0_flag[ 0 ] ) { if( abs_mvd_greater1_flag[ 0 ] ) abs_mvd_minus2[ 0 ] ae(v) mvd_sign_flag[ 0 ] ae(v) } if( abs_mvd_greater0_flag[ 1 ] ) { if( abs_mvd_greater1_flag[ 1 ] ) abs_mvd_minus2[ 1 ] ae(v) mvd_sign_flag[ 1 ] ae(v) } }
2.3 Novos métodos de interpredição em JEM (Modelo de Exploração Conjunta)
2.3.1 Predição de vetores de movimento baseada em Sub-CU
[095] No JEM com QTBT, cada CU pode ter no máximo um conjunto de parâmetros de movimento para cada direção de predição. Dois métodos de predição de vetores de movimento de nível de sub-CU são considerados no codificador dividindo-se uma CU grande em sub-CUs e derivando-se informações de movimento para todas as sub-CUs da CU grande. O método de predição de vetores de movimento temporal alternativo (ATMVP) permite que cada CU colete múltiplos conjuntos de informações de movimento a partir de múltiplos blocos menores do que a CU atual na imagem de referência colocalizada. No método de predição de vetores de movimento espacial-temporal (STMVP), vetores de movimento das sub-CUs são derivados recursivamente usando o preditor de vetor de movimento temporal e vetor de movimento vizinho espacial.
[096] Para preservar o campo de movimento mais exato para predição de movimento de sub-CU, a compressão de movimento para os quadros de referência está atualmente desabilitada.
2.3.1.1 Predição de vetores de movimento temporal alternativo
[097] No método de predição de vetores de movimento temporal alternativo (ATMVP), a predição de vetores de movimento temporal (TMVP) de vetores de movimento é modificada pela coleta de múltiplos conjuntos de informações de movimento (incluindo vetores de movimento e índices de referência) de blocos menores do que a CU atual. Como mostrado na FIG. 18, as sub-CUs são blocos N×N quadrados (N é estabelecido como 4 por padrão).
[098] ATMVP prediz os vetores de movimento das sub-CUs dentro de uma CU em duas etapas. A primeira etapa é identificar o bloco correspondente em uma imagem de referência com o chamado vetor temporal. A imagem de referência é chamada de imagem fonte de movimento. A segunda etapa é dividir a CU atual em sub-CUs e obter os vetores de movimento, bem como os índices de referência de cada sub-CU a partir do bloco correspondente a cada sub-CU, como mostrado na FIG. 18.
[099] Na primeira etapa, uma imagem de referência e o bloco correspondente são determinados pelas informações de movimento dos blocos vizinhos espaciais da CU atual. Para evitar o processo de varredura repetitivo de blocos vizinhos, o primeiro candidato a fusão na lista de candidatos a fusão da CU atual é usado. O primeiro vetor de movimento disponível, bem como seu índice de referência associado são estabelecidos para serem o vetor temporal e o índice para a imagem fonte de movimento. Dessa forma, em ATMVP, o bloco correspondente pode ser identificado com mais exatidão, em comparação com a TMVP, em que o bloco correspondente (às vezes chamado de bloco colocalizado) está sempre em uma posição inferior direita ou central em relação à CU atual. Em um exemplo, se o primeiro candidato a fusão for do bloco vizinho esquerdo (ou seja, A1 na FIG. 19), o MV associado e a imagem de referência são utilizados para identificar o bloco fonte e a imagem fonte.
[0100] A FIG. 19 mostra um exemplo de identificação de bloco fonte e imagem fonte.
[0101] Na segunda etapa, um bloco correspondente da sub-CU é identificado pelo vetor temporal na imagem fonte de movimento, adicionando à coordenada da CU atual o vetor temporal. Para cada sub-CU, as informações de movimento de seu bloco correspondente (a menor grade de movimento que cobre a amostra central) são usadas para derivar as informações de movimento para a sub-CU. Após as informações de movimento de um bloco N×N correspondente serem identificadas, elas são convertidas para os vetores de movimento e índices de referência da sub-CU atual, da mesma forma que a TMVP da HEVC, em que se aplicam o escalamento de movimento e outros procedimentos. Por exemplo, o decodificador verifica se a condição de baixo atraso (ou seja, os POCs de todas as imagens de referência da imagem atual são menores do que o POC da imagem atual) é atendida e possivelmente usa o vetor de movimento MVx (o vetor de movimento correspondente à lista de imagens de referência X) para predizer o vetor de movimento MVy (com X sendo igual a 0 ou 1 e Y sendo igual a 1−X) para cada sub-CU.
2.3.1.2 Predição de vetores de movimento espaço-temporal
[0102] Neste método, os vetores de movimento das sub-CUs são derivados recursivamente, seguindo a ordem de varredura raster. A FIG. 20 ilustra esse conceito. Vamos considerar uma CU 8×8 que contém quatro sub-CUs 4×4 A, B, C e D. Os blocos 4×4 vizinhos no quadro atual são rotulados como a, b, c e d.
[0103] A derivação de movimento para sub-CU A começa identificando seus dois vizinhos espaciais. O primeiro vizinho é o bloco N×N acima da sub-CU A (bloco c). Se esse bloco c não estiver disponível ou for intracodificado, os outros blocos N×N acima da sub-CU A são verificados (da esquerda para a direita, começando no bloco c). O segundo vizinho é um bloco à esquerda da sub-CU A (bloco b). Se o bloco b não estiver disponível ou estiver intracodificado, outros blocos à esquerda da sub-CU A são verificados (de cima para baixo, começando no bloco b). As informações de movimento obtidas a partir dos blocos vizinhos para cada lista são escaladas para o primeiro quadro de referência para uma dada lista. Em seguida, o preditor de vetores de movimento temporal (TMVP) do sub-bloco A é derivado seguindo o mesmo procedimento de derivação de TMVP conforme especificado na HEVC. As informações de movimento do bloco colocalizado no local D são coletadas e escaladas de acordo. Por fim, após recuperar e escalar as informações de movimento, todos os vetores de movimento disponíveis (até 3) tem suas médias calculadas separadamente para cada lista de referência. O vetor de movimento médio é atribuído como o vetor de movimento da sub-CU atual.
[0104] A FIG. 20 mostra um exemplo de uma CU com quatro sub-blocos (A- D) e seus blocos vizinhos (a-d).
2.3.1.3 Sinalização de modo de predição de movimento de Sub-CU
[0105] Os modos de sub-CU são habilitados como candidatos a fusão adicionais e não há nenhum elemento de sintaxe adicional necessário para sinalizar os modos. Dois candidatos a fusão adicionais são adicionados à lista de candidatos a fusão de cada CU para representar o modo de ATMVP e o modo de STMVP. São usados até sete candidatos a fusão, se o conjunto de parâmetros de sequência indicar que a ATMVP e a STMVP estão habilitadas. A lógica de codificação dos candidatos a fusão adicionais é a mesma que para os candidatos a fusão no HM, o que significa que, para cada CU na fatia P ou B, mais duas verificações de RD são necessárias para os dois candidatos a fusão adicionais.
[0106] No JEM, todos os bins do índice de fusão são codificados por contexto por CABAC. Enquanto em HEVC, apenas o primeiro bin é codificado por contexto e os restantes são codificados por by-pass de contexto.
2.3.2 Resolução de diferença de vetor de movimento adaptativo
[0107] Em HEVC, as diferenças de vetor de movimento (MVDs) (entre o vetor de movimento e o vetor de movimento predito de uma PU) são sinalizadas em unidades de um quarto de amostras de luma quando use_integer_mv_flag é igual a 0 no cabeçalho de fatia. No JEM, uma resolução de vetor de movimento localmente adaptável (LAMVR) é introduzida. No JEM, MVD pode ser codificada em unidades de um quarto de amostras de luma, amostras de luma de número inteiro ou quatro amostras de luma. A resolução de MVD é controlada no nível da unidade de codificação (CU) e flags de resolução de MVD são sinalizadas condicionalmente para cada CU que tem pelo menos um componente de MVD diferente de zero.
[0108] Para uma CU que tem pelo menos um componente de MVD diferente de zero, uma primeira flag é sinalizada para indicar se a precisão de MV de um quarto de amostra de luma é usada na CU. Quando a primeira flag
(igual a 1) indica que a precisão de MV de um quarto de amostra de luma não é usada, outra flag é sinalizada para indicar se a precisão de MV de amostra de número inteiro de luma ou a precisão de MV de quatro amostras de luma é usada.
[0109] Quando a primeira flag de resolução de MVD de uma CU é zero, ou não codificada para uma CU (significando que todas as MVDs na CU são zero), a resolução de MV de um quarto de amostra de luma é usada para a CU. Quando uma CU usa precisão de MV de amostra de número inteiro de luma ou precisão de MV de quatro amostras de luma, as MVPs na lista de candidatos a AMVP para CU são arredondadas para a precisão correspondente.
[0110] No codificador, as verificações de RD de nível de CU são usadas para determinar qual resolução de MVD deve ser usada para uma CU. Ou seja, a verificação de RD de nível de CU é desempenhada três vezes para cada resolução de MVD. Para acelerar a velocidade do codificador, os seguintes esquemas de codificação são aplicados no JEM.
[0111] Durante a verificação de RD de uma CU com resolução de MVD de um quarto de amostra de luma normal, as informações de movimento da CU atual (exatidão da amostra de número inteiro de luma) são armazenadas. As informações de movimento armazenadas (após arredondamento) são usadas como ponto de partida para refinamento adicional de vetor de movimento de pequeno alcance durante a verificação de RD para o mesmo CU com resolução de MVD de amostra de número inteiro de luma e de 4 amostras de luma para que o processo de estimativa de movimento demorado não seja duplicado três vezes.
[0112] A verificação de RD de uma CU com resolução de MVD de 4 amostras de luma é invocada condicionalmente. Para uma CU, quando a resolução de MVD de amostra de número inteiro de luma de custo de RD é muito maior do que a resolução de MVD de um quarto de amostra de luma, a verificação de RD da resolução de MVD de 4 amostras de luma para a CU é pulada.
2.3.3 Derivação de vetor de movimento com correspondência de padrão
[0113] O modo de derivação de vetor de movimento com correspondência de padrão (PMMVD) é um modo de fusão especial baseado em técnicas de Conversão Ascendente de Taxa de Quadros (FRUC). Com este modo, as informações de movimento de um bloco não são sinalizadas, mas derivadas do lado do decodificador.
[0114] Uma flag de FRUC é sinalizada para uma CU quando sua flag de fusão é verdadeira. Quando a flag de FRUC é falsa, um índice de fusão é sinalizado e o modo de fusão regular é usado. Quando a flag de FRUC é verdadeira, uma flag de modo de FRUC adicional é sinalizada para indicar qual método (correspondência bilateral ou correspondência de modelo) deve ser usado para derivar informações de movimento para o bloco.
[0115] No lado do codificador, a decisão sobre se usar o modo de fusão de FRUC para uma CU é baseada na seleção de custo de RD conforme feito para candidato a fusão normal. Ou seja, os dois modos de correspondência (correspondência bilateral e correspondência de modelo) são ambos verificados para uma CU usando a seleção de custo de RD. O que levar ao custo mínimo é adicionalmente comparado a outros modos de CU. Se um modo de correspondência de FRUC for o mais eficiente, a flag de FRUC é definida como verdadeira para a CU e o modo de correspondência relacionado é usado.
[0116] O processo de derivação de movimento no modo de fusão de FRUC possui duas etapas. Uma busca de movimento de nível de CU é desempenhada primeiro, seguida por um refinamento de movimento de nível de Sub-CU. No nível de CU, um vetor de movimento inicial é derivado para toda a CU com base na correspondência bilateral ou correspondência de modelo. Primeiro, uma lista de candidatos a MV é gerada e o candidato que leva ao custo de correspondência mínimo é selecionado como o ponto de partida para um refinamento de nível de CU adicional. Então, uma busca local com base na correspondência bilateral ou correspondência de modelo em torno do ponto de partida é desempenhada e os resultados de MV no custo de correspondência mínimo são tomados como o MV para toda a CU. Subsequentemente, as informações de movimento são adicionalmente refinadas no nível de sub-CU com os vetores de movimento de CU derivados como os pontos de partida.
[0117] Por exemplo, o seguinte processo de derivação é desempenhado para uma 𝑊𝑊 × 𝐻𝐻 derivação de informações de movimento de CU. Na primeira fase, MV para toda a 𝑊𝑊 × 𝐻𝐻 CU é derivado. Na segunda fase, a CU é dividida adicionalmente em 𝑀𝑀 × 𝑀𝑀 sub-CUs. O valor de 𝑀𝑀 é calculado como em (16), 𝐷𝐷 é uma profundidade de divisão preestabelecida que é estabelecida como 3 por padrão no JEM. Então, é derivado o MV para cada sub-CU.
𝑀𝑀 𝑁𝑁 𝑀𝑀 = max {4, min { , }} (1) 2𝐷𝐷 2𝐷𝐷
[0118] Como mostrado na FIG. 21, a correspondência bilateral é usada para derivar informações de movimento da CU atual, encontrando a correspondência mais próxima entre dois blocos ao longo da trajetória de movimento da CU atual em duas imagens de referência diferentes. Assumindo a trajetória de movimento contínuo, os vetores de movimento MV0 e MV1 apontando para os dois blocos de referência devem ser proporcionais às distâncias temporais, ou seja, TD0 e TD1, entre a imagem atual e as duas imagens de referência. Como um caso especial, quando a imagem atual está temporariamente entre as duas imagens de referência e a distância temporal a partir da imagem atual até as duas imagens de referência é a mesma, a correspondência bilateral torna-se MV bidirecional com base em espelho.
[0119] Como mostrado na FIG. 22, a correspondência de modelo é usada para derivar informações de movimento da CU atual, encontrando a correspondência mais próxima entre um modelo (blocos vizinhos de topo e/ou da esquerda da CU atual) na imagem atual e um bloco (mesmo tamanho do modelo) em uma imagem de referência. Exceto o modo de fusão de FRUC mencionado acima, a correspondência de modelo também é aplicada ao modo de AMVP. No JEM, assim como na HEVC, a AMVP tem dois candidatos. Com o método de correspondência de modelo, um novo candidato é derivado. Se o candidato recém-derivado por correspondência de modelo é diferente do primeiro candidato a AMVP existente, ele será inserido no início da lista de candidatos a AMVP e, em seguida, o tamanho da lista será estabelecido como dois (significando remover o segundo candidato a AMVP existente). Quando aplicado ao modo de AMVP, apenas a busca de nível de CU é aplicada.
2.3.3.1 Conjunto de candidatos a MV de nível de CU
[0120] O candidato a MV estabelecido no nível de CU consiste em: (i) Candidatos a AMVP originais se a CU atual estiver no modo de AMVP (ii) todos os candidatos a fusão, (iii) vários MVs no campo de MV interpolado. (iv) vetores de movimento vizinhos de topo e esquerda
[0121] Ao usar a correspondência bilateral, cada MV válido de um candidato a fusão é usado como uma entrada para gerar um par de MV com a suposição de correspondência bilateral. Por exemplo, um MV válido de um candidato a fusão é (MVa, refa) na lista de referência A. Em seguida, a imagem de referência refb de seu MV bilateral pareado é encontrada na outra lista de referência B, de modo que refa e refb estão temporariamente em lados diferentes da imagem atual. Se tal refb não estiver disponível na lista de referência B, refb é determinada como uma referência que é diferente de refa e sua distância temporal até a imagem atual é a mínima na lista B. Após refb ser determinada, MVb é derivado por escalamento de MVa com base na distância temporal entre a imagem atual e refa, refb.
[0122] Quatro MVs a partir do campo de MV interpolado também são adicionados à lista de candidatos de nível de CU. Mais especificamente, os MVs interpolados na posição (0, 0), (W/2, 0), (0, H/2) e (W/2, H/2) da CU atual são adicionados.
[0123] Quando a FRUC é aplicada no modo de AMVP, os candidatos a AMVP originais também são adicionados ao conjunto de candidatos a MV a nível de CU.
[0124] No nível de CU, até 15 MVs para CUs de AMVP e até 13 MVs para fusão de CUs são adicionados à lista de candidatos.
2.3.3.2 Conjunto de candidatos a MV de nível de sub-CU
[0125] O candidato a MV estabelecido no nível de sub-CU consiste em: (i) um MV determinado a partir de uma busca de nível de CU, (ii) MVs vizinhos de topo, esquerda, topo à esquerda, topo à direita, (iii) versões escaladas de MVs colocalizadas a partir de imagens de referência, (iv) até 4 candidatos a ATMVP, (v) até 4 candidatos a STMVP
[0126] Os MVs escalados a partir das imagens de referência são derivados como segue. Todas as imagens de referência em ambas as listas são percorridas. Os MVs em uma posição colocada da sub-CU em uma imagem de referência são escalados para a referência do MV de nível de CU inicial.
[0127] Os candidatos a ATMVP e STMVP são limitados aos quatro primeiros.
[0128] No nível de sub-CU, até 17 MVs são adicionados à lista de candidatos.
2.3.3.3 Geração de campo de MV interpolado
[0129] Antes de codificar um quadro, o campo de movimento interpolado é gerado para a imagem inteira com base no ME unilateral. Em seguida, o campo de movimento pode ser usado posteriormente como candidatos a MV de nível de CU ou nível de sub-CU.
[0130] Primeiro, o campo de movimento de cada imagem de referência em ambas as listas de referência é percorrido no nível de bloco 4×4. Para cada bloco 4×4, se o movimento associado ao bloco passar por um bloco 4×4 na imagem atual (como mostrado na FIG. 23) e o bloco não foi atribuído a nenhum movimento interpolado, o movimento do bloco de referência é escalado para a imagem atual de acordo com a distância temporal TD0 e TD1 (da mesma maneira que o escalamento de MV de TMVP em HEVC) e o movimento escalado é atribuído ao bloco no quadro atual. Se nenhum MV escalado for atribuído a um bloco 4×4, o movimento do bloco é marcado como indisponível no campo de movimento interpolado.
2.3.3.4 Interpolação e custo de correspondência
[0131] Quando um vetor de movimento aponta para uma posição de amostra fracionária, a interpolação compensada por movimento é necessária. Para reduzir a complexidade, a interpolação bilinear em vez da interpolação de HEVC regular de 8-taps é usada tanto para a correspondência bilateral quanto para a correspondência de modelo.
[0132] O cálculo do custo de correspondência é um pouco diferente em etapas diferentes. Ao selecionar o candidato a partir do conjunto de candidatos no nível da CU, o custo de correspondência é a diferença de soma absoluta (SAD) de correspondência bilateral ou correspondência de modelo. Depois que o MV inicial é determinado, o custo correspondente 𝐶𝐶 de correspondência bilateral na busca de nível de sub-CU é calculado da seguinte forma: 𝐶𝐶 = 𝑆𝑆𝑆𝑆𝑆𝑆 + 𝑤𝑤 ⋅ (|𝑀𝑀𝑉𝑉𝑥𝑥 − 𝑀𝑀𝑉𝑉𝑥𝑥𝑠𝑠 | + �𝑀𝑀𝑉𝑉𝑦𝑦 − 𝑀𝑀𝑉𝑉𝑦𝑦𝑠𝑠 �) (2)
[0133] Onde 𝑤𝑤 é um fator de ponderação que é empiricamente estabelecido como 4, 𝑀𝑀𝑀𝑀 e 𝑀𝑀𝑉𝑉 𝑠𝑠 indicam o MV atual e o MV inicial, respectivamente. SAD adicionalmente é usada como o custo de correspondência de modelo de busca no nível de sub-CU.
[0134] No modo de FRUC, o MV é derivado usando apenas amostras de luma. O movimento derivado será usado tanto para luma quanto para croma para a interpredição de MC. Depois que o MV é decidido, o MC final é desempenhado usando filtro de interpolação de 8 taps para luma e filtro de interpolação de 4-taps para croma.
2.3.3.5 Refinamento de MV
[0135] O refinamento de MV é uma busca de MV baseada em padrão com o critério de custo de correspondência bilateral ou custo de correspondência de modelo. No JEM, dois padrões de busca são suportados - uma busca em diamante com tendência ao centro irrestrita (UCBDS) e uma busca cruzada adaptativa para refinamento de MV a nível de CU e sub-CU, respectivamente. Tanto para o refinamento de MV de nível de CU quanto para sub-CU, o MV é buscado diretamente na exatidão de MV de um quarto de amostra de luma, e isso é seguido por um refinamento de MV de um oitavo de amostra de luma. A faixa de busca de refinamento de MV para a etapa de CU e sub-CU é estabelecida como igualmente a 8 amostras de luma.
2.3.3.6 Seleção da direção de predição em modo de fusão FRUC correspondente ao modelo
[0136] No modo de fusão de correspondência bilateral, a bipredição é sempre aplicada, uma vez que a informação de movimento de uma CU é derivada com base na correspondência mais próxima entre dois blocos ao longo da trajetória de movimento da CU atual em duas imagens de referência diferentes. Não há tal limitação para o modo de fusão de correspondência de modelo. No modo de fusão de correspondência de modelo, o codificador pode escolher entre unipredição de list0, unipredição de list1 ou bipredição para uma CU. A seleção se baseia em um custo de correspondência de modelo como segue: Se costBi <= factor * min (cost0, cost1) é usada bipredição; Caso contrário, se cost0 <= cost1 é usada unipredição a partir de list0; Ou então, é usada unipredição a partir da list1;
[0137] onde cost0 é a SAD de correspondência de modelo de list0, cost1 é a SAD de correspondência de modelo de lista1 e costBi é a SAD de correspondência de modelo de bipredição. O valor de factor é igual a 1,25, o que significa que o processo de seleção tende a ser bipredição. A seleção de direção interpredição é aplicada apenas ao processo de correspondência de modelo a nível de CU.
2.3.4 Refinamento de vetor de movimento do lado do decodificador
[0138] Na operação de bipredição, para a predição de uma região de bloco, dois blocos de predição, formados usando um vetor de movimento (MV) da list0 e um MV da list1, respectivamente, são combinados para formar um único sinal de predição. No método de refinamento de vetor de movimento do lado do decodificador (DMVR), os dois vetores de movimento da bipredição são adicionalmente refinados por um processo de correspondência de modelo bilateral. A correspondência de modelo bilateral aplicada no decodificador para desempenhar uma busca com base em distorção entre um modelo bilateral e as amostras de reconstrução nas imagens de referência, de modo a obter um MV refinado sem transmissão de informações de movimento adicionais.
[0139] No DMVR, um modelo bilateral é gerado como a combinação ponderada (ou seja, média) dos dois blocos de predição, a partir do MV0 inicial de list0 e MV1 de list1, respectivamente, como mostrado na FIG. 23. A operação de correspondência de modelo consiste em calcular medidas de custo entre o modelo gerado e a região da amostra (em torno do bloco de predição inicial) na imagem de referência. Para cada uma das duas imagens de referência, o MV que rende o custo mínimo do modelo é considerado como o MV atualizado dessa lista para substituir o original. No JEM, nove candidatos a MV são buscados para cada lista. Os nove candidatos a MV incluem o MV original e 8 MVs circundantes com um deslocamento de amostra de luma para o MV original na direção horizontal ou vertical, ou ambas. Por fim, os dois novos MVs, ou seja, MV0′ e MV1′, como mostrado na FIG. 24, são usados para gerar os resultados finais de bipredição. Uma soma das diferenças absolutas (SAD) é usada como medição de custo.
[0140] O DMVR é aplicado para o modo de fusão de bipredição com um MV a partir de uma imagem de referência no passado e outro a partir de uma imagem de referência no futuro, sem a transmissão de elementos de sintaxe adicionais. No JEM, quando LIC, movimento affine, FRUC ou candidato a fusão de sub-CU é habilitado para uma CU, o DMVR não é aplicado.
2.3.5 Modo de Fusão/Salto com refinamento de Correspondência Bilateral
[0141] Uma lista de candidatos a fusão é primeiro construída ao inserir os vetores de movimento e os índices de referência dos blocos vizinhos espaciais e temporais na lista de candidatos com verificação de redundância até que o número de candidatos disponíveis alcance o tamanho de candidato máximo de
19. A lista de candidatos a fusão para o modo de fusão/salto é construída inserindo candidatos espaciais (FIG. 11), candidatos temporais, candidatos affine, candidato a MVP temporal avançado (ATMVP), candidato a MVP temporal espacial (STMVP) e os candidatos adicionais como usado em HEVC (Candidatos combinados e Candidatos zero) de acordo com uma ordem de inserção predefinida:
[0142] - Candidatos espaciais para os blocos 1 a 4.
[0143] - Candidatos affijne extrapolados para os blocos 1 a 4.
[0144] - ATMVP.
[0145] - STMVP.
[0146] - Candidato virtual affine.
[0147] - Candidato espacial (bloco 5) (usado apenas quando o número de candidatos disponíveis é menor que 6).
[0148] - Candidatos afins extrapolados (bloco 5).
[0149] - Candidato temporal (derivado como em HEVC).
[0150] - Candidatos espaciais não adjacentes seguidos por candidato affine extrapolado (blocos 6 a 49, como representado na FIG. 25).
[0151] - Candidatos combinados.
[0152] - Candidatos zero
[0153] É observado que as flags de IC também são herdadas de candidatos a fusão, exceto para STMVP e affine. Além disso, para os primeiros quatro candidatos espaciais, os de bipredição são inseridos antes daqueles com unipredição.
[0154] Em algumas implementações, blocos que não estão conectados ao bloco atual podem ser acessados. Se um bloco não adjacente é codificado com modo não intra, as informações de movimento associadas podem ser adicionadas como um candidato a fusão adicional.
2.3.6 Lista de fusão compartilhada JVET-M0170
[0155] Propõe-se compartilhar a mesma lista de candidatos a fusão para todas as unidades de codificação (CUs) de folha de um nó ancestral na árvore de divisão de CU para permitir o processamento paralelo de pequenas CUs codificadas por fusão/salto. O nó ancestral é denominado nó de compartilhamento de fusão. A lista de candidatos a fusão compartilhada é gerada no nó de compartilhamento de fusão fingindo que o nó de compartilhamento de fusão é um CU de folha.
[0156] Para a definição do Tipo 2, o nó de compartilhamento de fusão será decidido para cada CU dentro de uma CTU durante o estágio de análise de decodificação; além disso, o nó de compartilhamento de fusão é um nó ancestral da CU de folha que deve satisfazer os 2 critérios a seguir:
[0157] O tamanho do nó de compartilhamento de fusão é igual ou maior que o limite de tamanho
[0158] No nó de compartilhamento de fusão, um dos tamanhos de CU filho é menor que o limite de tamanho
[0159] Além disso, deve-se garantir que nenhuma amostra do nó de compartilhamento de fusão esteja fora do limite da imagem. Durante o estágio de análise, se um nó ancestral satisfizer os critérios (1) e (2), mas tiver algumas amostras fora do limite da imagem, esse nó ancestral não será o nó de compartilhamento de fusão e prosseguirá para encontrar o nó de compartilhamento de fusão para suas CUs filho.
[0160] A Figura 35 mostra um exemplo para a diferença de definição de Tipo-1 e Tipo-2. Nesse exemplo, o nó pai é dividido em ternário em 3 CUs filho. O tamanho do nó pai é de 128. Para a definição do Tipo 1, as 3 CUs filho serão nós de compartilhamento de fusão separadamente. Mas para a definição do Tipo 2, o nó pai é o nó de compartilhamento de fusão.
[0161] O algoritmo de lista de candidatos a fusão compartilhada proposto suporta uma fusão translacional (incluindo modo de fusão e modo de fusão triangular, candidato baseado em histórico também é suportado) e modo de fusão baseado em sub-bloco. Para todos os tipos de modo de fusão, o comportamento do algoritmo de lista de candidatos a fusão compartilhada parece basicamente o mesmo, e apenas gera candidatos no nó de compartilhamento de fusão fingindo que o nó de compartilhamento de fusão é um CU de folha. Isso possui 2 benefícios principais. O primeiro benefício é habilitar o processamento paralelo para o modo de fusão e o segundo benefício é compartilhar todos os cálculos de todas as CUs de folha no nó de compartilhamento de fusão. Portanto, isso reduz significativamente o custo de hardware de todos os modos de fusão para codec de hardware. Pelo algoritmo de lista de candidatos a fusão compartilhada proposto, o codificador e o decodificador podem facilmente suportar codificação paralela para o modo de fusão e isso alivia o problema de montante de ciclo do modo de fusão.
2.3.7 Grupos de tiles
[0162] A JVET-L0686 foi adotada, em que fatia são removidos em favor de grupos de tiles e o elemento de sintaxe de HEVC slice_address é substituído por tile_group_address no tile_group_header (se houver mais de um tile na imagem) como endereço do primeiro tile no grupo de tiles.
3. Exemplos de Problemas Endereçados por Modalidades Divulgadas na Presente Invenção
[0163] O projeto de HEVC atual poderia levar a correlação do bloco atual com seus blocos vizinhos (próximo ao bloco atual) para codificar melhor as informações de movimento. No entanto, é possível que os blocos vizinhos correspondam a objetos diferentes com trajetórias de movimento diferentes. Nesse caso, a predição de seus blocos vizinhos não é eficiente.
[0164] A predição a partir de informações de movimento de blocos não adjacentes pode trazer ganho de codificação adicional com o custo de armazenamento de todas as informações de movimento (normalmente no nível 4x4) no cache, o que aumenta significativamente a complexidade para implementação de hardware.
4. Alguns Exemplos
[0165] Para superar as desvantagens das implementações existentes, técnicas de predição de vetores de movimento com base em LUT usando uma ou mais tabelas (por exemplo, tabelas de consulta) com pelo menos um candidato de movimento armazenado para predizer informações de movimento de um bloco podem ser implementadas em várias modalidades para prover codificação de vídeo com maior eficiência de codificação. Uma tabela de consulta é um exemplo de uma tabela que pode ser usada para incluir candidatos a movimento para predizer informações de movimento de um bloco e outras implementações também são possíveis. Cada LUT pode incluir um ou mais candidatos a movimento, cada um associado a informações de movimento correspondentes. As informações de movimento de um candidato de movimento podem incluir direções parciais ou todas as direções de predição, índices/imagens de referência, vetores de movimento, flags de LIC, flags afins, precisões de Derivação de Vetor de Movimento (MVD) e/ou valores de MVD. As informações de movimento podem incluir adicionalmente as informações de posição do bloco para indicar de onde vêm as informações de movimento.
[0166] A predição de vetores de movimento com base em LUT com base na tecnologia divulgada, que pode aprimorar ambos os padrões de codificação de vídeo existentes e futuros, é elucidada nos exemplos a seguir descritos para várias implementações. Como as LUTs permitem que o processo de codificação/decodificação seja desempenhado com base em dados históricos (por exemplo, os blocos que foram processados), a predição de vetores de movimento com base em LUT também pode ser referida como método de
Predição de Vetores de Movimento Baseado em Histórico (HMVP). No método de predição de vetores de movimento com base em LUT, uma ou múltiplas tabelas com informações de movimento de blocos previamente codificados são mantidas durante o processo de codificação/decodificação. Esses candidatos a movimento armazenados nas LUTs são chamados de candidatos a HMVP. Durante a codificação/decodificação de um bloco, as informações de movimento associadas em LUTs podem ser adicionadas às listas de candidatos a movimento (por exemplo, listas de candidatos a fusão/AMVP) e, após codificar/decodificar um bloco, as LUTs podem ser atualizadas. As LUTs atualizadas são então usadas para codificar os blocos subsequentes. Assim, a atualização dos candidatos a movimento nas LUTs é baseada na ordem de codificação/decodificação dos blocos. Os exemplos abaixo devem ser considerados exemplos para explicar os conceitos gerais. Esses exemplos não devem ser interpretados de forma restrita. Além disso, esses exemplos podem ser combinados de qualquer maneira.
[0167] Algumas modalidades podem usar uma ou mais tabelas de consulta com pelo menos um candidato de movimento armazenado para predizer informações de movimento de um bloco. As modalidades podem usar um candidato de movimento para indicar um conjunto de informações de movimento armazenadas em uma tabela de consulta. Para a AMVP convencional ou modos de fusão, modalidades podem usar AMVP ou candidatos a fusão para armazenar as informações de movimento.
[0168] Os exemplos abaixo explicam os conceitos gerais. Exemplos de tabelas de consulta
[0169] Exemplo A1: Cada tabela de consulta pode conter um ou mais candidatos a movimento, em que cada candidato está associado às suas informações de movimento. a. As informações de movimento de um candidato de movimento aqui podem incluir direções parciais ou todas as direções de predição, índices/imagens de referência, vetores de movimento, flags de LIC, flags afins, precisão de MVD, valores de MVD. b. As informações de movimento podem incluir adicionalmente as informações de posição de bloco e/ou formato de bloco para indicar de onde vêm as informações de movimento. Seleção de LUTs
[0170] Exemplo B1: Para codificar um bloco, parcial ou todos os candidatos a movimento de uma tabela de consulta podem ser verificados em ordem. Quando um candidato de movimento é verificado durante a codificação de um bloco, ele pode ser adicionado à lista de candidatos a movimento (por exemplo, AMVP, listas de candidatos a fusão). Exemplo B2: A seleção de tabelas de consulta pode depender da posição de um bloco. Uso de tabelas de consulta
[0171] Exemplo C1: O número total de candidatos a movimento em uma tabela de consulta a ser verificada pode ser predefinido.
[0172] Exemplo C2: O(s) candidato(s) a movimento incluídos em uma tabela de consulta podem ser herdados diretamente por um bloco. a. Eles podem ser usados para a codificação do modo de fusão, ou seja, os candidatos a movimento podem ser verificados no processo de derivação da lista de candidatos a fusão. b. Eles podem ser usados para a codificação do modo de fusão afim. i. Um candidato de movimento em uma tabela de consulta pode ser adicionado como um candidato a fusão afim se sua flag afim for um. c. Eles podem ser usados para outros tipos de modos de fusão, tais como modo de fusão de sub-bloco, modo de fusão afim, modo de fusão triangular, modo de fusão inter-intra, fusão com modo de MVD (MMVD).
d. A verificação de candidatos a movimento em tabelas de consulta pode ser habilitada quando: i. a lista de candidatos a fusão não está completa após inserir o candidato a TMVP; ii. a lista de candidatos a fusão não está completa após verificar um certo bloco vizinho para derivação de candidato a fusão espacial; iii. a lista de candidatos a fusão não está completa após todos os candidatos a fusão espaciais; iv. a lista de candidatos a fusão não está completa após candidatos a fusão bipreditivos combinados; v. quando o número de candidatos a fusão espaciais ou temporal (por exemplo, incluindo TMVP, STMVP, ATMVP, espaciais adjacentes e espaciais não adjacentes, etc. al) que foram colocados na lista de candidatos a fusão a partir de outros métodos de codificação (por exemplo, o processo de derivação de fusão de projeto de HEVC ou projeto de JEM) é menor do que o máximo permitido de candidatos a fusão menos um dado limite.
1. Em um exemplo, o limite é estabelecido como 1 ou 0.
2. Alternativamente, o limite pode ser sinalizado ou pré-definido em SPS/PPS/sequência, imagem, cabeçalho de fatia/tile.
3. Alternativamente, o limite pode ser alterado de maneira adaptativa de bloco para bloco. Por exemplo, pode ser dependente de informações de bloco codificado, como tamanho de bloco/formato do bloco/tipo de fatia e/ou dependente do número de candidatos a fusão espaciais ou temporal disponíveis.
4. Em outro exemplo, quando o número de um certo tipo de candidatos a fusão que foram colocados na lista de candidatos a fusão é menor que o máximo permitido de candidatos a fusão menos um dado limite. O “certo tipo de candidatos a fusão” podem ser candidatos espaciais como em HEVC ou candidatos a fusão não adjacentes. vi. A poda pode ser aplicada antes de adicionar um candidato de movimento à lista de candidatos a fusão. Em várias implementações deste exemplo e outros exemplos divulgados neste documento de patente, a poda pode incluir a) comparar as informações de movimento com as entradas existentes para exclusividade, ou b) se único, então adicionar as informações de movimento à lista, ou c) se não único, então c1) não adicionar ou c2) adicionar as informações de movimento e deletar a entrada existente correspondente. Em algumas implementações, a operação de poda não é invocada ao adicionar um candidato de movimento a partir de uma tabela à lista de candidatos.
1. Em um exemplo, um candidato de movimento pode ser podado para todos ou parte dos candidatos a fusão espaciais ou temporal disponíveis (por exemplo, incluindo TMVP, STMVP, ATMVP, espaciais adjacentes e espaciais não adjacentes etc. al) a partir de outros métodos de codificação na lista de candidatos a fusão.
2. um candidato de movimento NÃO pode ser podado para candidatos a movimento com base em sub-bloco, por exemplo, ATMVP, STMVP.
3. Em um exemplo, um candidato de movimento atual pode ser podado para todos ou parte dos candidatos a movimento disponíveis (inseridos antes do candidato de movimento atual) na lista de candidatos a fusão.
4. O número de operações de poda relacionadas a candidatos a movimento (por exemplo, quantas vezes esses candidatos a movimento precisam ser comparados a outros candidatos na lista de fusão) pode depender do número de candidatos a fusão espaciais ou temporal disponíveis. Por exemplo, ao verificar um novo candidato de movimento, se há M candidatos disponíveis na lista de fusão, o novo candidato de movimento pode ser comparado apenas aos primeiros K (K <= M) candidatos. Se a função de poda retornar falso (por exemplo, não idêntico a nenhum dos primeiros K candidatos), o novo candidato de movimento é considerado diferente de todos os M candidatos e pode ser adicionado à lista de candidatos a fusão. Em um exemplo, K é definido como min (K, 2).
5. Em um exemplo, um candidato de movimento recém-anexado é comparado apenas com o primeiro N candidato na lista de candidatos a fusão. Por exemplo, N = 3, 4 ou 5. N pode ser sinalizado a partir do codificador para o decodificador.
6. Em um exemplo, um novo candidato de movimento a ser verificado é comparado apenas com o primeiro N candidato na lista de candidatos a fusão. Por exemplo, N = 3, 4 ou 5. N pode ser sinalizado a partir do codificador para o decodificador.
7. Em um exemplo, como selecionar os candidatos previamente adicionados na lista para serem comparados com um novo candidato de movimento a partir de uma tabela pode depender de onde os candidatos previamente adicionados são derivados. a. Em um exemplo, um candidato de movimento em uma tabela de consulta pode ser comparado a candidatos derivados de um dado bloco vizinho temporal e/ou espacial. b. Em um exemplo, diferentes entradas de candidatos a movimento em uma tabela de consulta podem ser comparadas a diferentes candidatos previamente adicionados (ou seja, derivados de locais diferentes). e. A verificação de candidatos a movimento na tabela de consulta pode ser habilitada antes de verificar outros candidatos a fusão (ou fusão afim ou outros métodos de intercodificação), tal como derivados de blocos espaciais ou temporais adjacentes/não adjacentes. f. A verificação de candidatos a movimento na tabela de consulta pode ser habilitada quando há pelo menos um candidato de movimento em uma tabela de consulta.
[0173] Exemplo C3: O(s) candidato(s) a movimento incluídos em uma tabela de consulta podem ser usados como um para codificar as informações de movimento de um bloco. a. Eles podem ser usados para a codificação de modo de AMVP, ou seja, os candidatos a movimento podem ser verificados no processo de derivação da lista de candidatos a fusão. b. Eles podem ser usados para a codificação de diferença de vetor de movimento simétrico (SMVD), em que apenas parte das MVDs (tal como apenas MVD sinalizadas para uma lista de imagens de referência e derivadas de outra lista de imagens de referência). c. Eles podem ser usados para a codificação de vetor de movimento simétrico (SMV), em que apenas parte dos MVs (tais como apenas sinalizados para uma lista de imagens de referência e derivados de outra lista de imagens de referência). d. A verificação de candidatos a movimento em tabelas de consulta pode ser habilitada quando: i. a lista de candidatos a fusão não está completa após verificar ou inserir o candidato a TMVP; ii. a lista de candidatos a AMVP não está completa após a seleção a partir de vizinhos espaciais e poda, imediatamente antes de inserir o candidato a TMVP; iii. quando não há nenhum candidato a AMVP a partir dos blocos vizinhos acima sem escalamento e/ou quando não há nenhum candidato a AMVP a partir dos blocos vizinhos à esquerda sem escalamento iv. a lista de candidatos a AMVP não está completa após inserir um certo candidato a AMVP;
v.
A poda pode ser aplicada antes de adicionar um candidato de movimento à lista de candidatos a AMVP. vi.
Regras semelhantes às mencionadas no Exemplo C2. vi. 3 e 4 podem ser aplicadas ao modo de AMVP e.
A verificação de candidatos a movimento pode ser habilitada antes de verificar outros candidatos a AMVP (ou SMVD/SMV/inter afim ou outros métodos de intercodificação), tal como derivados de blocos espaciais ou temporais adjacentes/não adjacentes. f.
A verificação de candidatos a movimento pode ser habilitada quando há pelo menos um candidato de movimento em uma tabela de consulta. g.
Os candidatos a movimento com imagem de referência idêntica à imagem de referência atual (ou seja, a contagem de ordem de imagem (POC) é a mesma) são verificados.
Ou seja, quando um candidato de movimento inclui uma imagem de referência idêntica à imagem de referência atual, o vetor de movimento correspondente pode ser levado em consideração no processo de construção da lista de candidatos a AMVP. i.
De maneira alternativa, adicionalmente, os candidatos a movimento com imagens de referência diferentes da imagem de referência atual também são verificados (com MV escalado). Ou seja, quando um candidato de movimento tem uma imagem de referência diferente da imagem de referência atual, o vetor de movimento correspondente pode ser levado em consideração no processo de construção da lista de candidatos a AMVP. ii.
Alternativamente, todos os candidatos a movimento com imagem de referência idêntica à imagem de referência atual são verificados primeiro, então, candidatos a movimento com imagens de referência diferentes da imagem de referência atual são verificados.
Ou seja, a prioridade mais alta é atribuída aos candidatos a movimento que têm a imagem de referência idêntica.
iii. Alternativamente, os candidatos a movimento são verificados seguindo o mesmo na fusão. iv. Quando um candidato de movimento é um candidato a bipredição, a imagem de referência (tal como índice de imagem de referência ou contador de ordem de imagem da imagem de referência) da lista de imagens de referência X pode ser verificada em primeiro lugar, seguida pela imagem de referência da lista de imagens de referência Y (Y! = X, por exemplo, Y = 1-X), se a lista de imagens de referência alvo atual for X. v. Alternativamente, quando um candidato de movimento é um candidato a bipredição, a imagem de referência (tal como índice de imagem de referência ou contador de ordem de imagem da imagem de referência) da lista de imagens de referência Y (Y! = X, por exemplo, Y = 1-X) pode ser verificada em primeiro lugar, seguida pela imagem de referência da lista de imagens de referência X, se a lista de imagens de referência alvo atual for X. vi. Alternativamente, as imagens de referência da lista de imagens de referência são X associadas a todos os candidatos a movimento a serem verificados que podem serem verificados antes que as imagens de referência da lista de imagens de referência sejam Y (Y! = X, por exemplo, Y = 1-X) associadas a todos os candidatos a movimento a serem verificados.
[0174] Exemplo C4: a verificação da ordem dos candidatos a movimento em uma tabela de consulta é definida como segue (supondo que K (K> = 1) candidatos a movimento possam ser verificados): a. Os últimos K candidatos a movimento na tabela de consulta. b. Os primeiros K%L candidatos em que L é o tamanho da tabela de consulta quando K>=L c. Todos os candidatos (L candidatos) na tabela de consulta quando K>=L.
d. Alternativamente, além disso, com base na ordem decrescente dos índices de candidatos a movimento. e. Alternativamente, além disso, com base na ordem crescente de índices de candidatos a movimento. f. Alternativamente, selecionar K candidatos a movimento com base nas informações dos candidatos, tal como a distância das posições associadas aos candidatos a movimento e ao bloco atual. i. Em um exemplo, K candidatos a movimento mais próximos são selecionados. ii. em um exemplo, as informações de candidatos podem adicionalmente considerar o formato do bloco ao calcular a distância. g. Em um exemplo, a ordem de verificação de K de candidatos a movimento da tabela que inclui L candidatos pode ser definida como: selecionar aqueles candidatos com índice igual a a0, a0+T0, a0+T0+T1, a0+ T0+ T1+T2, … a0+T0+T1+T2+..+TK-1 em ordem em que a0 e Ti (i sendo 0… K-1) são valores de número inteiro. i. Em um exemplo, a0 é estabelecido como 0 (ou seja, a primeira entrada de candidato de movimento na tabela). Alternativamente, a0 é estabelecido como (K - L/K). A operação aritmética ‘/’ é definida como divisão de número inteiro com truncamento do resultado em direção a zero. Alternativamente, a0 é estabelecido como qualquer número inteiro entre 0 e L/K.
1. Alternativamente, o valor de a0 pode depender das informações de codificação do bloco atual e blocos vizinhos. ii. Em um exemplo, todos os intervalos Ti (i sendo 0… K-1) são iguais, tal como L/K. A operação aritmética ‘/’ é definida como divisão de número inteiro com truncamento do resultado em direção a zero. iii. Em um exemplo, ( K, L, a0, Ti ) é estabelecido como (4, 16, 0, 4), ou (4, 12,
0, 3) ou (4, 8, 0, 1) ou (4, 16, 3, 4) ou (4, 12, 2, 3) ou (4, 8, 1, 2). Ti são os mesmos para todos os i. iv.
Esse método só pode ser aplicado quando K é menor que L. v.
Alternativamente, além disso, quando K for maior ou igual a um limite, parte c do exemplo C4. pode ser aplicada.
O limite pode ser definido como L, ou pode depender de K ou ser alterado de forma adaptativa de bloco a bloco.
Em um exemplo, o limite pode depender do número de candidatos a movimento disponíveis na lista antes de adicionar um novo a partir da tabela de consulta. h.
Em um exemplo, a ordem de verificação de K de candidatos a movimento da tabela que inclui L candidatos pode ser definida como: selecionar aqueles candidatos com índice igual a a0, a0-T0, a0-T0-T1, a0-T0- T1-T2, … a0-T0-T1- T2-..-TK-1 em ordem em que a0 e Ti (i sendo 0… K-1) são valores de número inteiro. i.
Em um exemplo, a0 é estabelecido como L-1 (ou seja, a primeira entrada de candidato de movimento na tabela). Alternativamente, a0 é estabelecido como qualquer número inteiro entre L-1-L/K e L-1. ii.
Em um exemplo, todos os intervalos Ti (i sendo 0… K-1) são os mesmos, tal como L/K. iii.
Em um exemplo, ( K, L, a0, Ti ) é estabelecido como (4, 16, L-1, 4), ou (4, 12, L-1, 3) ou (4, 8, L-1, 1) ou (4, 16, L-4, 4) ou (4, 12, L-3, 3) ou (4, 8, L-2, 2). Ti são iguais para todos os i. iv.
Esse método só pode ser aplicado quando K é menor que L. v.
Alternativamente, além disso, quando K é maior ou igual a um limite, parte c do exemplo C4. pode ser aplicada.
O limite pode ser definido como L, ou pode depender de K ou ser alterado de forma adaptativa de bloco a bloco.
Em um exemplo, o limite pode depender do número de candidatos a movimento disponíveis na lista antes de adicionar um novo a partir da tabela de consulta. i.Quantos e/ou como selecionar candidatos a movimento de uma tabela de consulta pode depender das informações codificadas, tais como tamanho do bloco/formato do bloco. i.
Em um exemplo, para um tamanho de bloco menor, em vez de escolher os últimos K candidatos a movimento, os outros K candidatos a movimento (não começando pelo último) podem ser escolhidos. ii.
Em um exemplo, as informações codificadas podem ser o modo de fusão ou AMVP. iii.
Em um exemplo, as informações codificadas podem ser o modo afim ou modo não afim de AMVP ou modo de fusão não afim. iv.
Em um exemplo, as informações codificadas podem ser o (inter)modo afim de AMVP modo de fusão afim ou modo de AMVP não afim ou modo de fusão não afim. v.
Em um exemplo, as informações codificadas podem ser o modo de Referência de Imagem Atual (RCP) ou o modo de não RCP. vi.
Alternativamente, como selecionar candidatos a movimento de uma tabela de consulta pode depender adicionalmente do número de candidatos a movimento na tabela de consulta e/ou número de candidatos a movimento disponíveis na lista antes de adicionar um novo a partir da tabela de consulta. j.Em um exemplo, o número máximo de candidatos a movimento em uma tabela de consulta a ser verificada (ou seja, que podem ser adicionados à lista de candidatos a fusão/amvp) pode depender do número de candidatos a movimento disponíveis (denotado por NavaiMCinLUT) em uma tabela de consulta e/ou do número máximo permitido de candidatos a movimento (denotados por NUMmaxMC) a serem adicionados (que podem ser predefinidos ou sinalizados) e/ou número de candidatos disponíveis (denotados por NavaiC) em uma lista de candidatos antes de verificar os candidatos da tabela de consulta. i.
Em um exemplo, o número máximo de candidatos a movimento na tabela de consulta a ser verificada é estabelecido com o valor mínimo de (NavaiMCinLUT , NUMmaxMC , NavaiC). ii.
Alternativamente, o número máximo de candidatos a movimento na tabela de consulta a ser verificada é estabelecido como o valor mínimo de (NavaiMCinLUT , NUMmaxMC - NavaiC). iii.
Em um exemplo, NavaiC denota o número de candidatos inseridos derivados de blocos vizinhos (adjacentes e/ou não adjacentes) espaciais ou temporais.
Alternativamente, além disso, o número de candidatos de sub-blocos (como AMTVP, STMVP) não é contado em NavaiC. iv.
NUMmaxMC pode depender do modo codificado, por exemplo, para modo de fusão e modo de AMVP, NUMmaxMC pode ser estabelecido como valores diferentes.
Em um exemplo, para o modo de fusão, NUMmaxMC pode ser estabelecido como 4, 6, 8, 10, etc. al. para o modo de AMVP, NUMmaxMC pode ser estabelecido como 1, 2, 4, etc. al. v.
Alternativamente, NUMmaxMC pode depender de outras informações codificadas, como tamanho do bloco, formato do bloco, tipo de fatia etc. al. k.
A ordem de verificação de diferentes tabelas de consulta é definida no uso de tabelas de consulta na próxima subseção. l.O processo de verificação será encerrado uma vez que a lista de candidatos a fusão/AMVP atingir o número máximo permitido de candidatos. m.
O processo de verificação será encerrado uma vez que a lista de candidatos a fusão/AMVP atingir o número máximo permitido de candidatos menos um limite (Th). Em um exemplo, Th pode ser predefinido como um valor de número inteiro positivo, por exemplo, 1 ou 2 ou 3. Alternativamente, Th pode ser alterado de maneira adaptativa de bloco a bloco.
Alternativamente, Th pode ser sinalizado em SPS/PPS/ cabeçalho de fatia etc. al.
Alternativamente, Th pode adicionalmente depender do formato do bloco/tamanho do bloco/modos codificados etc. al. Alternativamente, Th pode depender de quantos candidatos disponíveis antes de adicionar os candidatos a movimento a partir das LUTs. n. Alternativamente, ele será encerrado assim que o número de candidatos a movimento adicionados atingir os números máximos permitidos de candidatos a movimento. Os números máximos de candidatos a movimento permitidos podem ser sinalizados ou predefinidos. Alternativamente, os números máximos de candidatos a movimento permitidos podem adicionalmente depender do formato do bloco/tamanho do bloco/modos codificados etc. al. o. Um elemento de sintaxe para indicar o tamanho da tabela, bem como o número de candidatos a movimento (ou seja, K = L) que podem ser verificados, pode ser sinalizado em SPS, PPS, cabeçalho de fatia, cabeçalho de tile.
[0175] Em algumas implementações, os candidatos a movimento em uma tabela de consulta podem ser utilizados para derivar outros candidatos e os candidatos derivados podem ser utilizados para codificar um bloco.
[0176] Em algumas implementações, habilitar/desabilitar o uso de tabelas de consulta para codificação de informações de movimento de um bloco pode ser sinalizado em SPS, PPS, cabeçalho de fatia, cabeçalho de tile, CTU, CTB, CU ou PU, região cobrindo múltiplas CTU/CTB/CU/PUs.
[0177] Em algumas implementações, a aplicação de predição de tabelas de consulta pode depender adicionalmente das informações codificadas. Quando é inferido que não se aplica a um bloco, a sinalização adicional de indicações da predição é pulada. Alternativamente, quando é inferido que não se deve aplicar para um bloco, não há necessidade de acessar candidatos a movimento de tabelas de consulta, e a verificação de candidatos a movimento relacionados é omitida.
[0178] Em algumas implementações, os candidatos a movimento de uma tabela de consulta em quadros/fatias/tiles previamente codificados podem ser usados para predizer informações de movimento de um bloco em um quadro/fatias/tile diferente. a. Em um exemplo, apenas tabelas de consulta associadas a imagens com o mesmo tipo de imagem de referência ou os mesmos parâmetros de quantização de bloco atual podem ser utilizados para codificar o bloco atual. b. Em um exemplo, apenas tabelas de consulta associadas a imagens com o mesmo tipo de fatia e/ou os mesmos parâmetros de quantização de bloco atual podem ser utilizados para codificar o bloco atual. Atualização de tabelas de consulta
[0179] Depois de codificar um bloco com informações de movimento (ou seja, modo IntraBC, modo intercodificado), uma ou múltiplas tabelas de consulta podem ser atualizadas.
[0180] Para todos os exemplos e implementações acima, as tabelas de consulta indicam as informações codificadas ou informações derivadas de informações codificadas a partir de blocos previamente codificados em uma ordem de decodificação. a. Uma tabela de consulta pode incluir as informações de movimento translacional ou informações de movimento afins ou parâmetros de modelo afins ou informações intramodo ou informações de compensação de iluminação etc. al. b. Alternativamente, uma tabela de consulta pode incluir pelo menos dois tipos de informações, como informações de movimento translacional ou informações de movimento afins ou parâmetros de modelo afins ou informações intramodo ou informações de compensação de iluminação etc. al. Modalidades de Exemplo Adicionais
[0181] Um método MVP baseado em histórico (HMVP) é proposto em que um candidato a HMVP é definido como as informações de movimento de um bloco previamente codificado. Uma tabela com múltiplos candidatos a HMVP é mantida durante o processo de codificação/decodificação. A tabela é esvaziada quando uma nova fatia é encontrada. Sempre que houver um bloco intercodificado, as informações de movimento associadas são adicionadas à última entrada da tabela como um novo candidato a HMVP. O fluxo geral de codificação é representado na FIG. 30.
[0182] Em um exemplo, o tamanho da tabela é estabelecido como L (por exemplo, L = 16 ou 6 ou 44), o que indica que até L candidatos a HMVP podem ser adicionados à tabela.
[0183] Em uma modalidade (correspondendo ao exemplo 11.g.i), se há mais de L candidatos a HMVP a partir dos blocos codificados anteriormente, uma regra Primeiro a Entrar, Primeiro a Sair (FIFO) é aplicada de modo que a tabela sempre contenha os últimos L candidatos a movimento codificados anteriormente. A FIG. 31representa um exemplo em que a regra de FIFO é aplicada para remover um candidato a HMVP e adicionar um novo à tabela usada no método proposto.
[0184] Em outra modalidade (correspondendo à invenção 11.g.iii), sempre que adicionar um novo candidato de movimento (tal como o bloco atual é intercodificado e modo não afim), um processo de verificação de redundância é aplicado em primeiro lugar para identificar se há candidatos a movimento idênticos ou semelhantes em LUTs.
[0185] Alguns exemplos são descritos a seguir:
[0186] A FIG. 32A mostra um exemplo quando a LUT está cheia antes de adicionar um novo candidato de movimento.
[0187] A FIG. 32B mostra um exemplo quando a LUT não está cheia antes de adicionar um novo candidato de movimento.
[0188] A FIG. 32A e 32B juntas mostram um exemplo de método de atualização de LUT com base em remoção de redundância (com um candidato de movimento de redundância removido).
[0189] A FIG. 33A e 33B mostram uma implementação de exemplo para dois casos do método de atualização de LUT com base em remoção de redundância (com múltiplos candidatos a movimento de redundância removidos, 2 candidatos nas figuras).
[0190] A FIG. 33A mostra um caso exemplar de quando a LUT está cheia antes de adicionar um novo candidato de movimento.
[0191] A FIG. 33B mostra um caso exemplar de quando a LUT não está cheia antes de adicionar um novo candidato de movimento.
[0192] Os candidatos a HMVP podem ser usados no processo de construção da lista de candidatos a fusão. Todos os candidatos a HMVP da última entrada a primeira entrada (ou o último K0 HMVP, por exemplo, K0 igual a 16 ou 6) na tabela são inseridos após o candidato a TMVP. A poda é aplicada nos candidatos a HMVP. Assim que o número total de candidatos a fusão disponíveis atingir os candidatos a fusão permitidos ao máximo, o processo de construção da lista de candidatos a fusão é encerrado. Alternativamente, uma vez que o número total de candidatos a movimento adicionados alcança um dado valor, a coleta de candidatos a movimento a partir de LUTs é encerrada.
[0193] De maneira similar, os candidatos a HMVP também podem ser usados no processo de construção da lista de candidatos a AMVP. Os vetores de movimento do último K1 candidatos a HMVP na tabela são inseridos após o candidato TMVP. Apenas candidatos a HMVP com a mesma imagem de referência que a imagem de referência de destino AMVP são usados para construir a lista de candidatos a AMVP. A poda é aplicada nos candidatos a
HMVP. Em um exemplo, K1 é definido como 4.
[0194] A FIG. 28 é um diagrama de blocos de um aparelho de processamento de vídeo 2800. O aparelho 2800 pode ser usado para implementar um ou mais dos métodos descritos na presente invenção. O aparelho 2800 pode ser incorporado em um smartphone, tablet, computador, receptor de Internet das Coisas (IoT) e assim por diante. O aparelho 2800 pode incluir um ou mais processadores 2802, uma ou mais memórias 2804 e hardware de processamento de vídeo 2806. O(s) processador(es) 2802 podem ser configurados para implementar um ou mais métodos descritos no presente documento. A(s) memória(s) (memórias) 2804 pode(m) ser usada(s) para armazenar dados e códigos usados para implementar os métodos e técnicas descritos na presente invenção. O hardware de processamento de vídeo 2806 pode ser usado para implementar, em circuitos de hardware, algumas técnicas descritas no presente documento.
[0195] A FIG. 29 é um fluxograma para um método de decodificação de vídeo 2900. O método 2900 inclui manter tabelas (2902), em que cada tabela inclui um conjunto de candidatos a movimento e cada candidato de movimento está associado a informações de movimento correspondentes. O método 2900 inclui adicionalmente desempenhar uma conversão (2904) entre um primeiro bloco de vídeo e uma representação de fluxo de bits de um vídeo incluindo o primeiro bloco de vídeo, em que desempenhar a conversão inclui o uso de pelo menos alguns dentre o conjunto de candidatos a movimento como um preditor para processar informações de movimento do primeiro bloco de vídeo.
[0196] Com relação ao método 2900, em algumas modalidades, as informações de movimento incluem pelo menos um dentre: uma direção de predição, um índice de imagem de referência, valores de vetores de movimento, uma flag de compensação de intensidade, uma flag afim, uma precisão de diferença de vetores de movimento, e valor de diferença de vetores de movimento. adicionalmente, as informações de movimento podem incluir adicionalmente informações de posição de bloco indicando a fonte das informações de movimento. Em algumas modalidades, o bloco de vídeo pode ser uma CU ou PU e a porção de vídeo pode corresponder a um ou mais fatias de vídeo ou a uma ou mais imagens de vídeo.
[0197] Em algumas modalidades, cada LUT inclui um contador associado, em que o contador é inicializado com um valor zero no início da porção de vídeo e aumentado para cada região de vídeo codificada na porção do vídeo. A região de vídeo compreende um dentre uma unidade de árvore de codificação, um bloco de árvore de codificação, uma unidade de codificação, um bloco de codificação ou uma unidade de predição. Em algumas modalidades, o contador indica, para uma LUT correspondente, um número de candidatos a movimento que foram removidos da LUT correspondente. Em algumas modalidades, o conjunto de candidatos a movimento pode ter o mesmo tamanho para todas as LUTs. Em algumas modalidades, a porção de vídeo corresponde a uma fatia de vídeo, e em que o número de LUTs é igual a N*P, em que N é um número inteiro que representa LUTs por limite de decodificação e P é um número inteiro que representa um número de fileiras de Unidades de Codificação Maiores ou um número de tiles na fatia do vídeo. Detalhes adicionais do método 2900 são descritos nos exemplos providos na Seção 4 e nos exemplos listados abaixo.
[0198] Os recursos e modalidades dos métodos/técnicas descritos acima são descritos abaixo.
[0199] 1. Um método de processamento de vídeo, compreendendo manter tabelas, em que cada tabela inclui um conjunto de candidatos a movimento e cada candidato de movimento está associado a informações de movimento correspondentes; e desempenhar uma conversão entre um primeiro bloco de vídeo e uma representação de fluxo de bits de um vídeo incluindo o primeiro bloco de vídeo, em que desempenhar a conversão inclui o uso de pelo menos alguns dentre o conjunto de candidatos a movimento como um preditor para processar informações de movimento do primeiro bloco de vídeo.
[0200] 2. O método da cláusula 1, em que as tabelas incluem candidatos a movimento derivados dos blocos de vídeo previamente decodificados que são decodificados antes do primeiro bloco de vídeo.
[0201] 3. O método da cláusula 1, em que desempenhar a conversão inclui desempenhar um processo de derivação de lista de candidatos a Predição de Vetores de Movimento Avançado (AMVP) usando pelo menos alguns dentre conjunto de candidatos a movimento.
[0202] 4. O método da cláusula 3, em que o processo de derivação de lista de candidatos a AMVP inclui verificar candidatos a movimento a partir de uma ou mais tabelas.
[0203] 5. O método de qualquer uma das cláusulas 1 a 4, em que desempenhar a conversão inclui verificar se um candidato de movimento e um vetor de movimento associado ao candidato de movimento verificado é usado como um preditor de vetor de movimento para codificar o vetor de movimento do primeiro bloco de vídeo.
[0204] 6. O método da cláusula 4, em que um vetor de movimento associado a um candidato de movimento verificado é adicionado à lista de candidatos a movimento de AMVP.
[0205] 7. O método da cláusula 1, em que desempenhar a conversão inclui verificar pelo menos alguns dos candidatos a movimento com base em uma regra.
[0206] 8. O método da cláusula 7, em que a regra habilita a verificação quando uma lista de candidatos a AMVP não está cheia após a verificação de um candidato a predição de vetor de movimento temporal (TMVP).
[0207] 9. O método da cláusula 7, em que a regra habilita a verificação quando uma lista de candidatos a AMVP não está cheia após a seleção de vizinhos espaciais e poda, antes de inserir um candidato a TMVP.
[0208] 10. O método da cláusula 7, em que a regra habilita a verificação quando i) não há nenhum candidato a AMVP dos blocos vizinhos acima sem escalamento, ou ii) quando não há nenhum candidato a AMVP dos blocos vizinhos à esquerda sem escalamento.
[0209] 11. O método da cláusula 7, em que a regra habilita a verificação quando uma poda é aplicada antes de adicionar um candidato de movimento a uma lista de candidatos a AMVP.
[0210] 12. O método da cláusula 1, em que são verificados os candidatos a movimento com uma imagem de referência idêntica a uma imagem de referência atual.
[0211] 13. O método da cláusula 12, em que são adicionalmente verificados candidatos a movimento com uma imagem de referência diferente da imagem de referência atual.
[0212] 14. O método da cláusula 13, em que a verificação de candidatos a movimento com a imagem de referência idêntica é desempenhada antes da verificação dos candidatos a movimento com a imagem de referência diferente.
[0213] 15. O método da cláusula 1, compreendendo adicionalmente um processo de construção de lista de candidatos a AMVP incluindo uma operação de poda antes de adicionar um vetor de movimento de um candidato de movimento em uma tabela.
[0214] 16. O método da cláusula 15, em que a operação de poda inclui comparar um candidato de movimento a pelo menos uma parte dos candidatos a movimento disponíveis em uma lista de candidatos a AMVP.
[0215] 17. O método da cláusula 15, em que a operação de poda inclui um número de operações, o número sendo uma função de um número de candidatos a AMVP espaciais ou temporais.
[0216] 18. O método da cláusula 17, em que o número de operações é tal que, no caso de M candidatos estarem disponíveis em uma lista de candidatos a AMVP, a poda é aplicada apenas a K candidatos a AMVP em que K<=M e em que K e M são números inteiros.
[0217] 19. O método da cláusula 1, em que desempenhar a conversão inclui desempenhar um processo de diferença de vetores de movimento simétrico (SMVD) usando algumas das diferenças de vetores de movimento.
[0218] 20. O método da cláusula 1, em que desempenhar a conversão inclui desempenhar um processo de vetor de movimento simétrico (SMV) usando alguns dos vetores de movimento.
[0219] 21. O método da cláusula 7, em que a regra habilita a verificação quando uma lista de candidatos a AMVP não está cheia após a inserção de um certo candidato a AMVP.
[0220] 22. O método da cláusula 1, compreendendo adicionalmente habilitar a verificação de candidatos a movimento na tabela, em que a verificação é habilitada antes de verificar outros candidatos derivados a partir de um bloco espacial ou temporal e outros candidatos incluem candidatos a AMVP, candidatos a SMVD, candidatos a SMV ou candidatos inter afins.
[0221] 23. O método da cláusula 1, compreendendo adicionalmente permitir a verificação de candidatos a movimento na tabela, em que a verificação é habilitada quando há pelo menos um candidato de movimento na tabela.
[0222] 24. O método da cláusula 1, em que, para um candidato de movimento que é um candidato a bipredição, uma imagem de referência de uma primeira lista de imagens de referência é verificada antes de uma imagem de referência de uma segunda lista de imagens de referência ser verificada, a primeira lista de imagens de referência sendo uma lista de imagens de referência alvo atual.
[0223] 25. O método da cláusula 1 ou 2, em que, para um candidato de movimento que é um candidato a bipredição, uma imagem de referência de uma primeira lista de imagem de referência é verificada antes de uma imagem de referência de uma segunda lista de imagens de referência ser verificada, a segunda lista de imagem de referência sendo uma lista de imagens de referência de destino atual.
[0224] 26. O método da cláusula 1, em que as imagens de referência de uma primeira lista de imagens de referência são verificadas antes das imagens de referência de uma segunda lista de imagens de referência.
[0225] 27. O método da cláusula 1, em que desempenhar a conversão inclui gerar a representação de fluxo de bits a partir do primeiro bloco de vídeo.
[0226] 28. O método da cláusula 1, em que desempenhar a conversão inclui gerar o primeiro bloco de vídeo a partir da representação de fluxo de bits.
[0227] 29. O método de qualquer uma das cláusulas 1 a 28, em que um candidato de movimento está associado a informações de movimento incluindo pelo menos um dentre: uma direção de predição, um índice de imagem de referência, valores de vetores de movimento, uma flag de compensação de intensidade, uma flag afim, uma precisão de diferença de vetores de movimento, ou valor de diferença de vetores de movimento.
[0228] 30. O método de qualquer uma das cláusulas 1 a 29, em que um candidato de movimento está associado a modos de intrapredição usados para blocos intracodificados.
[0229] 31. O método de qualquer uma das cláusulas 1 a 29, em que um candidato de movimento está associado a múltiplos parâmetros de compensação de iluminação (IC) usados para blocos codificados por IC.
[0230] 32. O método de qualquer uma das cláusulas1 a 29, em que um candidato de movimento está associado a parâmetros de filtro usados no processo de filtragem.
[0231] 33. O método de qualquer uma das cláusulas 1 a 29, compreendendo adicionalmente atualizar, com base na conversão, uma ou mais tabelas.
[0232] 34. O método de qualquer uma das cláusulas 33, em que atualizar uma ou mais tabelas inclui atualizar uma ou mais tabelas com base nas informações de movimento do primeiro bloco de vídeo após desempenhar a conversão.
[0233] 35. O método da cláusula 34, compreendendo adicionalmente desempenhar uma conversão entre um bloco de vídeo subsequente do vídeo e a representação de fluxo de bits do vídeo com base nas tabelas atualizadas.
[0234] 36. Um aparelho compreendendo um processador e uma memória não transitória com instruções no mesmo, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 35.
[0235] 37. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 35.
[0236] A partir do exposto, será apreciado que modalidades específicas da tecnologia presentemente divulgada foram descritas na presente invenção para fins de ilustração, mas que várias modificações podem ser feitas sem se desviar do escopo da invenção. Em conformidade, a tecnologia presentemente divulgada não é limitada, exceto pelas reivindicações anexas.
[0237] As modalidades divulgadas e outras modalidades, módulos e operações funcionais descritas neste documento podem ser implementadas em conjuntos de circuitos eletrônicos digitais, ou em software, firmware ou hardware de computador, incluindo as estruturas divulgadas neste documento e seus equivalentes estruturais, ou em combinações de um ou mais deles. As modalidades divulgadas e outras modalidades podem ser implementadas como um ou mais produtos de programa de computador, ou seja, um ou mais módulos de instruções de programa de computador codificados em um meio legível por computador para execução por, ou para controlar a operação de, aparelho de processamento de dados. O meio legível por computador pode ser um dispositivo de armazenamento legível por máquina, um substrato de armazenamento legível por máquina, um dispositivo de memória, uma composição de matéria efetuando um sinal propagado legível por máquina ou uma combinação de um ou mais deles. O termo "aparelho de processamento de dados" abrange todos os aparelhos, dispositivos e máquinas para processamento de dados, incluindo, a título de exemplo, um processador programável, um computador ou múltiplos processadores ou computadores. O aparelho pode incluir, além do hardware, o código que cria um ambiente de execução para o programa de computador em questão, por exemplo, o código que constitui o firmware do processador, uma pilha de protocolo, um sistema de gerenciamento de banco de dados, um sistema operacional ou uma combinação de um ou mais deles. Um sinal propagado é um sinal gerado artificialmente, por exemplo, um sinal elétrico, óptico ou eletromagnético gerado por máquina, que é gerado para codificar informações para transmissão para um aparelho receptor adequado.
[0238] Um programa de computador (também conhecido como programa, software, aplicação de software, script ou código) pode ser escrito em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, e pode ser implantado em qualquer forma, incluindo como um programa autônomo ou como um módulo, componente, sub-rotina ou outra unidade adequada para uso em um ambiente de computação. Um programa de computador não corresponde necessariamente a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma porção de um arquivo que contém outros programas ou dados (por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação), em um único arquivo dedicado ao programa em questão ou em múltiplos arquivos coordenados (por exemplo, arquivos que armazenam um ou mais módulos, subprogramas ou porções de código). Um programa de computador pode ser implantado para ser executado em um computador ou em múltiplos computadores que estejam localizados em um local ou distribuídos em múltiplos locais e interconectados por uma rede de comunicação.
[0239] Os processos e fluxos lógicos descritos neste documento podem ser desempenhados por um ou mais processadores programáveis executando um ou mais programas de computador para desempenhar funções operando em dados de entrada e gerando saída. Os processos e fluxos lógicos também podem ser desempenhados por, e os aparelhos também podem ser implementados como, conjuntos de circuitos lógicos de propósito especial, por exemplo, um FPGA (arranjo de porta programável em campo) ou um ASIC (circuito integrado de aplicação específica).
[0240] Os processadores adequados para a execução de um programa de computador incluem, a título de exemplo, tanto microprocessadores de uso geral quanto especial e qualquer um ou mais processadores de qualquer tipo de computador digital. Geralmente, um processador receberá instruções e dados a partir de uma memória somente de leitura ou de uma memória de acesso aleatório ou de ambas. Os elementos essenciais de um computador são um processador para desempenhar instruções e um ou mais dispositivos de memória para armazenar instruções e dados. Geralmente, um computador também incluirá, ou será operativamente acoplado para receber dados de ou transferir dados para, ou ambos, um ou mais dispositivos de armazenamento em massa para armazenar dados, por exemplo, discos magnéticos, magneto-ópticos ou discos ópticos. No entanto, um computador não precisa ter tais dispositivos. A mídia legível por computador adequada para armazenar instruções e dados de programa de computador inclui todas as formas de memória não volátil, mídia e dispositivos de memória, incluindo a título de exemplo, dispositivos de memória semicondutores, por exemplo, EPROM, EEPROM e dispositivos de memória flash; discos magnéticos, por exemplo, discos rígidos internos ou discos removíveis; discos magneto-ópticos; e discos de CD-ROM e DVD-ROM. O processador e a memória podem ser complementados por, ou incorporados em, circuitos lógicos de propósito especial.
[0241] Embora este documento de patente contenha muitas especificidades, estas não devem ser interpretadas como limitações no escopo de qualquer invenção ou do que pode ser reivindicado, mas sim como descrições de recursos que podem ser específicos para modalidades particulares de invenções particulares. Certos recursos que são descritos neste documento de patente no contexto de modalidades separadas também podem ser implementados em combinação em uma única modalidade. Por outro lado, vários recursos que são descritos no contexto de uma única modalidade também podem ser implementados em várias modalidades separadamente ou em qualquer subcombinação adequada. Além disso, embora os recursos possam ser descritos acima como agindo em certas combinações e mesmo inicialmente reivindicadas como tal, um ou mais recursos de uma combinação reivindicada podem, em alguns casos, ser excisados da combinação e a combinação reivindicada pode ser direcionada a uma subcombinação ou variação de uma subcombinação.
[0242] De maneira similar, embora as operações sejam representadas nas figuras em uma ordem particular, isso não deve ser entendido como exigindo que tais operações sejam desempenhadas na ordem particular mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam desempenhadas, para atingir os resultados desejáveis. Além disso, a separação de vários componentes de sistema nas modalidades descritas neste documento de patente não deve ser entendida como exigindo tal separação em todas as modalidades.
[0243] Apenas algumas implementações e exemplos são descritos e outras implementações, melhorias e variações podem ser feitas com base no que é descrito e ilustrado neste documento de patente.

Claims (24)

REIVINDICAÇÕES
1. Método de processamento de vídeo caracterizado pelo fato de que compreende: manter uma ou mais tabelas, em que cada tabela inclui um conjunto de candidatos a movimento, cada um dos quais está associado às informações de movimento correspondentes e é derivado de um bloco de vídeo anterior e a disposição dos candidatos a movimento na tabela é baseado em uma sequência de adição dos candidatos a movimento em uma tabela; desempenhar um processo de derivação da lista de candidatos a movimento para derivar uma lista de candidatos a movimento para um primeiro bloco de vídeo, em que o processo de derivação da lista de candidatos a movimento compreende a verificação seletiva de um ou mais candidatos a movimento em uma tabela dentre as uma ou mais tabelas em uma ordem; derivar, com base na lista de candidatos a movimento, informações de movimento que são usadas como um preditor de vetor de movimento; desempenhar uma conversão entre o primeiro bloco de vídeo e uma representação de fluxo de bits de um vídeo incluindo o primeiro bloco de vídeo com base nas informações de movimento e em uma diferença de vetor de movimento (MVD) entre um vetor de movimento e o preditor de vetor de movimento, em que a MVD é indicada na representação de fluxo de bits.
2. Método, de acordo com reivindicação 1, caracterizado pelo fato de que o desempenho da conversão inclui codificar o primeiro bloco de vídeo para a representação de fluxo de bits.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o desempenho da conversão inclui decodificar o primeiro bloco de vídeo a partir da representação de fluxo de bits.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3,
caracterizado pelo fato de que a verificação dos um ou mais candidatos a movimento na tabela é habilitada quando há pelo menos um candidato a movimento na tabela; ou a verificação dos um ou mais candidatos a movimento na tabela é habilitada, quando a lista de candidatos a movimento não está cheia, após a verificação de um bloco temporal em uma imagem diferente de uma imagem que compreende o primeiro bloco de vídeo para derivar um candidato de movimento de predição de vetor de movimento temporal (TMVP); ou a verificação dos um ou mais candidatos a movimento na tabela é habilitada, quando a lista de candidatos a movimento não está cheia após a inserção de um certo candidato a movimento; ou a verificação dos um ou mais candidatos a movimento na tabela é habilitada quando i) não há nenhum candidato a movimento dos blocos vizinhos acima sem escalamento, e/ou ii) quando não há nenhum candidato a movimento dos blocos vizinhos à esquerda sem escalamento; ou a verificação de um ou mais candidatos a movimento na tabela é habilitada antes de verificar outros candidatos a movimento compreendendo pelo menos um dentre: candidatos a movimento derivados de um bloco espacial ou temporal, candidatos a movimento AMVP, candidatos a movimento SMVD, candidatos a movimento SMV ou candidatos a movimento interafins.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que a lista de candidatos a movimento é uma lista de candidatos de Predição de Vetor de Movimento Avançado (AMVP).
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que atualizar a lista de candidatos a movimento usando um ou mais candidatos a movimento verificados é baseada no resultado da verificação.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que atualizar a lista de candidatos a movimento compreende: adicionar um vetor de movimento associado ao candidato a movimento verificado na lista de candidatos a movimento.
8. Método, de qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que pelo menos um candidato a movimento dos candidatos a movimento verificados usado para atualizar a lista de candidatos a movimento tem uma imagem de referência igual a uma imagem de referência do primeiro bloco de vídeo.
9. Método, de acordo com qualquer uma das reivindicações 1 a 8, caracterizado pelo fato de que o desempenho da conversão inclui a realização de pelo menos um dentre um processo de diferença de vetor de movimento simétrico (SMVD) usando algumas das diferenças de vetor de movimento ou um processo de vetor de movimento simétrico (SMV) usando alguns dos vetores de movimento.
10. Método, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que durante a verificação dos um ou mais candidatos a movimento na tabela, uma imagem de referência de uma primeira lista de imagens de referência é verificada e, em seguida, uma imagem de referência de uma segunda lista de imagens de referência é verificada.
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que a primeira lista de imagens de referência é uma lista de imagens de referência destino atual.
12. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que o candidato a movimento a ser verificado é um candidato a movimento bipreditado.
13. Método, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que os candidatos a movimento com uma imagem de referência idêntica na tabela a uma imagem de referência atual são verificados.
14. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que os candidatos a movimento com uma imagem de referência diferente da imagem de referência atual são verificados adicionalmente, no qual a verificação dos candidatos a movimento com a imagem de referência idêntica é desempenhada antes da verificação dos candidatos a movimento com a imagem de referência diferente.
15. Método, de acordo com qualquer uma das reivindicações 1 a 14, caracterizado pelo fato de que o processo de construção da lista de candidatos a movimento compreende uma operação de poda antes de atualizar a lista de candidatos a movimento com base em pelo menos um candidato a movimento verificado na tabela.
16. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que a operação de poda inclui comparar um candidato a movimento a ser verificado a todo ou parte dos candidatos a movimento disponíveis na lista de candidatos a movimento.
17. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que a operação de poda inclui um número de operações, o número sendo uma função de um número de candidatos a movimento espaciais ou temporais.
18. Método, de acordo com qualquer uma das reivindicações 1 a 17, caracterizado pelo fato de que um candidato a movimento na tabela está associado a informações de movimento incluindo pelo menos um dentre: uma direção de predição, um índice de imagem de referência, valores de vetor de movimento, uma flag de compensação de intensidade, um flag afim, uma precisão de diferença do vetor de movimento, um parâmetro de compensação de iluminação (IC), parâmetros de filtro usados em um processo de filtragem ou valor de diferença de vetor de movimento.
19. Método, de acordo com qualquer uma das reivindicações 1 a 18, caracterizado pelo fato de que o método compreende adicionalmente: atualizar uma tabela dentre uma ou mais tabelas usando um candidato a movimento que é baseado nas informações de movimento do primeiro bloco de vídeo; e em que um índice do candidato a movimento na tabela correspondente às informações de movimento do primeiro bloco de vídeo tem um índice maior do que outros candidatos a movimento na tabela.
20. Método, de acordo com qualquer uma das reivindicações 1 a 19, caracterizado pelo fato de que um ou mais candidatos a movimento na tabela são verificados em uma ordem de um ou mais índices dos um ou mais candidatos a movimento.
21. Aparelho para processar dados de vídeo caracterizado pelo fato de que compreende um processador e uma memória não transitória com instruções no mesmo, em que as instruções mediante a execução pelo processador, fazem com que o processador: mantenha uma ou mais tabelas, em que cada tabela inclui um conjunto de candidatos a movimento, cada um dos quais está associado a informações de movimento correspondentes e é derivado de um bloco de vídeo anterior, e a disposição dos candidatos a movimento na tabela é baseado em uma sequência de adição dos candidatos a movimento na tabela; desempenhe um processo de derivação da lista de candidatos a movimento para derivar uma lista de candidatos a movimento para um primeiro bloco de vídeo, em que o processo de derivação da lista de candidatos a movimento compreende a verificação seletiva de um ou mais candidatos a movimento em uma tabela dentre as uma ou mais tabelas em uma ordem; derive, com base na lista de candidatos a movimento, informações de movimento que são usadas como um preditor de vetor de movimento; e desempenhe uma conversão entre o primeiro bloco de vídeo e uma representação de fluxo de bits de um vídeo incluindo o primeiro bloco de vídeo com base nas informações de movimento e em uma diferença de vetor de movimento (MVD) entre um vetor de movimento e o preditor de vetor de movimento, em que a MVD é indicada na representação de fluxo de bits.
22. Meio de armazenamento legível por computador não transitório caracterizado pelo fato de que armazena instruções que fazem com que um processador: mantenha uma ou mais tabelas, em que cada tabela inclui um conjunto de candidatos a movimento, cada um dos quais está associado a informações de movimento correspondentes e é derivado de um bloco de vídeo anterior, e a disposição dos candidatos a movimento na tabela é baseado em uma sequência de adição dos candidatos a movimento na tabela; desempenhe um processo de derivação da lista de candidatos a movimento para derivar uma lista de candidatos a movimento para um primeiro bloco de vídeo, em que o processo de derivação da lista de candidatos a movimento compreende a verificação seletiva de um ou mais candidatos a movimento em uma tabela dentre as uma ou mais tabelas em uma ordem; derive, com base na lista de candidatos a movimento, informações de movimento que são usadas como um preditor de vetor de movimento; e desempenhe uma conversão entre o primeiro bloco de vídeo e uma representação de fluxo de bits de um vídeo incluindo o primeiro bloco de vídeo com base nas informações de movimento e em uma diferença de vetor de movimento (MVD) entre um vetor de movimento e o preditor de vetor de movimento, em que a MVD é indicada na representação de fluxo de bits.
23. Meio de gravação legível por computador não transitório caracterizado pelo fato de que armazena uma representação de fluxo de bits que é gerada por um método desempenhado por um aparelho de processamento de vídeo, em que o método compreende: manter uma ou mais tabelas, em que cada tabela inclui um conjunto de candidatos a movimento, cada um dos quais está associado a informações de movimento correspondentes e é derivado de um bloco de vídeo anterior, e a disposição dos candidatos a movimento na tabela é baseada em uma sequência de adição dos candidatos a movimento na tabela; desempenhar um processo de derivação da lista de candidatos a movimento para derivar uma lista de candidatos a movimento para um primeiro bloco de vídeo, em que o processo de derivação da lista de candidatos a movimento compreende a verificação seletiva de um ou mais candidatos a movimento em uma tabela dentre as uma ou mais tabelas em uma ordem; derivar, com base na lista de candidatos a movimento, informações de movimento que são usadas como um preditor de vetor de movimento; e gerar a representação de fluxo de bits do primeiro bloco de vídeo com base nas informações de movimento e em uma diferença de vetor de movimento (MVD) entre um vetor de movimento e o preditor de vetor de movimento, em que a MVD é indicada na representação de fluxo de bits.
24. Método para armazenar uma representação de fluxo de bits de um vídeo caracterizado pelo fato de que compreende: manter uma ou mais tabelas, em que cada tabela inclui um conjunto de candidatos a movimento, cada um dos quais está associado a informações de movimento correspondentes e é derivado de um bloco de vídeo anterior, e a disposição dos candidatos a movimento na tabela é baseado em uma sequência de adição dos candidatos a movimento na tabela; desempenhar um processo de derivação da lista de candidatos a movimento para derivar uma lista de candidatos a movimento para um primeiro bloco de vídeo, em que o processo de derivação da lista de candidatos a movimento compreende a verificação seletiva de um ou mais candidatos a movimento em uma tabela dentre as uma ou mais tabelas em uma ordem; derivar, com base na lista de candidatos a movimento, informações de movimento que são usadas como um preditor de vetor de movimento; gerar a representação de fluxo de bits do bloco atual com base nas informações de movimento e em uma diferença de vetor de movimento (MVD) entre um vetor de movimento e o preditor de vetor de movimento, em que a MVD é indicada na representação de fluxo de bits; e armazenar a representação de fluxo de bits em um meio de gravação legível por computador não transitório.
BR112020024162-8A 2018-06-29 2019-07-01 método de processamento de vídeo e aparelho para processar dados de vídeo, meios de armazenamento e de gravação legíveis por computador não transitórios, método para armazenar uma representação de fluxo de bits de um vídeo BR112020024162A2 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
CN2018093663 2018-06-29
CNPCT/CN2018/093663 2018-06-29
CN2018105193 2018-09-12
CNPCT/CN2018/105193 2018-09-12
CN2019072058 2019-01-16
CNPCT/CN2019/072058 2019-01-16
PCT/IB2019/055595 WO2020003284A1 (en) 2018-06-29 2019-07-01 Interaction between lut and amvp

Publications (1)

Publication Number Publication Date
BR112020024162A2 true BR112020024162A2 (pt) 2021-03-02

Family

ID=67262803

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020024162-8A BR112020024162A2 (pt) 2018-06-29 2019-07-01 método de processamento de vídeo e aparelho para processar dados de vídeo, meios de armazenamento e de gravação legíveis por computador não transitórios, método para armazenar uma representação de fluxo de bits de um vídeo

Country Status (11)

Country Link
US (3) US10873756B2 (pt)
EP (2) EP4325861A3 (pt)
JP (2) JP7295231B2 (pt)
KR (2) KR20240005239A (pt)
CN (2) CN114125450B (pt)
BR (1) BR112020024162A2 (pt)
CA (1) CA3105330C (pt)
MX (1) MX2020013828A (pt)
SG (1) SG11202013028PA (pt)
TW (1) TWI719525B (pt)
WO (1) WO2020003284A1 (pt)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020003270A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
SG11202011714RA (en) 2018-06-29 2020-12-30 Beijing Bytedance Network Technology Co Ltd Partial/full pruning when adding a hmvp candidate to merge/amvp
EP4300973A3 (en) 2018-06-29 2024-06-19 Beijing Bytedance Network Technology Co., Ltd. Which lut to be updated or no updating
CN114885173A (zh) 2018-06-29 2022-08-09 抖音视界(北京)有限公司 Lut中的运动候选的检查顺序
CN115134599A (zh) 2018-06-29 2022-09-30 抖音视界有限公司 更新查找表(lut)的条件
CN110662059B (zh) 2018-06-29 2021-04-20 北京字节跳动网络技术有限公司 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置
CN110662039B (zh) 2018-06-29 2022-06-07 北京字节跳动网络技术有限公司 查找表的更新:fifo、约束的fifo
WO2020003284A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
CN110677648B (zh) * 2018-07-02 2022-06-07 北京字节跳动网络技术有限公司 处理视频数据的方法、装置及非暂时性存储介质
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
US11297330B2 (en) * 2018-09-22 2022-04-05 Lg Electronics Inc. Method and apparatus for processing video signal based on inter prediction
CN117880495A (zh) 2018-12-03 2024-04-12 北京字节跳动网络技术有限公司 候选的最大数量的指示方法
KR20230019266A (ko) * 2018-12-21 2023-02-07 삼성전자주식회사 삼각 예측 모드를 이용하는 영상 부호화 장치 및 영상 복호화 장치, 및 이에 의한 영상 부호화 방법 및 영상 복호화 방법
WO2020137848A1 (ja) * 2018-12-28 2020-07-02 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
JP7407412B2 (ja) * 2018-12-28 2024-01-04 合同会社IP Bridge1号 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、動画像復号プログラム、格納方法、及び伝送方法
EP3888355A4 (en) 2019-01-10 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. LOOKUP TABLE UPDATE INVOCATION
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
CN113302937A (zh) 2019-01-16 2021-08-24 北京字节跳动网络技术有限公司 运动候选推导
CN112514380A (zh) * 2019-02-26 2021-03-16 株式会社 Xris 用于对视频信号进行编码/解码的方法及其设备
RU2767973C1 (ru) * 2019-03-08 2022-03-22 ДжейВиСиКЕНВУД Корпорейшн Устройство для кодирования видео, способ кодирования видео, устройство для декодирования видео и способ декодирования видео
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
KR20240029111A (ko) * 2019-06-24 2024-03-05 엘지전자 주식회사 움직임 벡터를 이용한 영상 코딩 방법 및 장치
US11895321B2 (en) * 2021-03-29 2024-02-06 Qualcomm Incorporated Template matching based advanced motion vector predictor (AMVP) candidate list construction with non-adjacent candidates and AMVP index signaling

Family Cites Families (300)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7023922B1 (en) 2000-06-21 2006-04-04 Microsoft Corporation Video coding system and method using 3-D discrete wavelet transform and entropy coding with motion information
US7623719B2 (en) 2003-09-26 2009-11-24 The Regents Of The University Of California Video encoding methods and devices
CN100545892C (zh) 2003-12-18 2009-09-30 汤姆森特许公司 生成视频图像场中的查找表的方法和装置
US7801220B2 (en) 2005-01-07 2010-09-21 Microsoft Corporation In-band wavelet video coding with spatial scalability
CN101223784A (zh) 2005-04-13 2008-07-16 诺基亚公司 可分级视频编码中的fgs标识
US20070025444A1 (en) 2005-07-28 2007-02-01 Shigeyuki Okada Coding Method
CN100539693C (zh) 2005-08-30 2009-09-09 深圳清华大学研究院 快速运动估计方法
EP2080383A4 (en) 2006-10-20 2009-12-09 Nokia Corp GENERIC INDICATION OF ADJUSTMENT GUIDE FOR SCALABLE MULTIMEDIA
KR100856411B1 (ko) 2006-12-01 2008-09-04 삼성전자주식회사 조도 보상 방법 및 그 장치와 그 방법을 기록한 컴퓨터로 읽을 수 있는 기록매체
US8228990B2 (en) 2008-01-16 2012-07-24 Sony Corporation Template matching scheme using multiple predictors as candidates for intra-prediction
US8855196B2 (en) 2008-01-22 2014-10-07 Dolby Laboratories Licensing Corporation Adaptive motion information cost estimation with dynamic look-up table updating
US8724697B2 (en) 2008-09-26 2014-05-13 Qualcomm Incorporated Locating motion vectors for video data units
BR122021002161B1 (pt) 2009-06-18 2021-09-28 Kabushiki Kaisha Toshiba Aparelhos de codificação e decodificação de vídeo, métodos para codificação e decodificação de vídeo
WO2011003326A1 (en) 2009-07-06 2011-01-13 Mediatek Singapore Pte. Ltd. Single pass adaptive interpolation filter
KR20110008653A (ko) 2009-07-20 2011-01-27 삼성전자주식회사 움직임 벡터 예측 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법
ES2829810T3 (es) 2009-10-01 2021-06-02 Sk Telecom Co Ltd Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable
KR101600818B1 (ko) 2009-11-06 2016-03-09 삼성디스플레이 주식회사 3차원 광학 모듈 및 이를 포함하는 디스플레이 장치
JP5338684B2 (ja) 2010-01-08 2013-11-13 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
WO2011095259A1 (en) 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) Selecting predicted motion vector candidates
WO2011146451A1 (en) 2010-05-20 2011-11-24 Thomson Licensing Methods and apparatus for adaptive motion vector candidate ordering for video encoding and decoding
US10104391B2 (en) 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
US8711940B2 (en) 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
WO2012074344A2 (ko) 2010-12-03 2012-06-07 엘지전자 주식회사 움직임 정보 리스트 인덱싱 방법 및 이러한 방법을 사용하는 장치
CN107071458B (zh) 2010-12-14 2020-01-03 M&K控股株式会社 用于编码运动画面的设备
US10397599B2 (en) 2010-12-17 2019-08-27 Electronics And Telecommunications Research Institute Method and apparatus for inter prediction using motion vector candidate based on temporal motion prediction
KR20120070479A (ko) 2010-12-21 2012-06-29 한국전자통신연구원 화면 내 예측 방향 정보 부호화/복호화 방법 및 그 장치
US9049455B2 (en) 2010-12-28 2015-06-02 Panasonic Intellectual Property Corporation Of America Image coding method of coding a current picture with prediction using one or both of a first reference picture list including a first current reference picture for a current block and a second reference picture list including a second current reference picture for the current block
WO2012095467A1 (en) 2011-01-12 2012-07-19 Canon Kabushiki Kaisha Video encoding and decoding with low complexity
GB2492778A (en) * 2011-07-11 2013-01-16 Canon Kk Motion compensated image coding by combining motion information predictors
US9319716B2 (en) 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US20120195366A1 (en) 2011-02-01 2012-08-02 Mediatek Singapore Pte. Ltd. Method and Apparatus of Adaptive Inter Mode Coding Using Variable Length Codes
US9148666B2 (en) 2011-02-09 2015-09-29 Lg Electronics Inc. Method for storing motion information and method for inducing temporal motion vector predictor using same
EP2490448A1 (de) 2011-02-18 2012-08-22 Siemens Aktiengesellschaft Kodierverfahren und Bildkodiervorrichtung zur Kompression einer Bildsequenz
US10171813B2 (en) 2011-02-24 2019-01-01 Qualcomm Incorporated Hierarchy of motion prediction video blocks
US9066110B2 (en) 2011-03-08 2015-06-23 Texas Instruments Incorporated Parsing friendly and error resilient merge flag coding in video coding
GB2488815C (en) 2011-03-09 2018-03-28 Canon Kk Video decoding
EP3937497B1 (en) * 2011-03-21 2023-02-22 LG Electronics, Inc. Motion vector predictor selection
US9143795B2 (en) 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
US9247266B2 (en) * 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
US20120287999A1 (en) 2011-05-11 2012-11-15 Microsoft Corporation Syntax element prediction in error correction
CN103503450B (zh) 2011-05-24 2017-07-07 太阳专利托管公司 图像编码方法、图像编码装置、图像解码方法、图像解码装置及图像编解码装置
EP2717574B1 (en) 2011-05-31 2021-02-17 JVC KENWOOD Corporation Moving image decoding device, moving image decoding method and moving image decoding program
CN103548351B (zh) 2011-05-31 2017-07-11 太阳专利托管公司 运动图像解码方法及运动图像解码装置
US9866859B2 (en) 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
JP5786478B2 (ja) 2011-06-15 2015-09-30 富士通株式会社 動画像復号装置、動画像復号方法、及び動画像復号プログラム
WO2012172668A1 (ja) 2011-06-15 2012-12-20 株式会社 東芝 動画像符号化方法及び装置並びに動画復号化方法及び装置
KR101876173B1 (ko) 2011-06-17 2018-07-09 엘지전자 주식회사 인트라 예측 모드 부호화/복호화 방법 및 장치
US9282338B2 (en) 2011-06-20 2016-03-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
PL3313076T3 (pl) 2011-06-28 2019-07-31 Samsung Electronics Co., Ltd. Sposób i urządzenie do kodowania wideo z predykcją wewnątrzramkową
PL2728878T3 (pl) 2011-06-30 2020-06-15 Sun Patent Trust Sposób dekodowania obrazów, sposób kodowania obrazów, urządzenie do dekodowania obrazów, urządzenie do kodowania obrazów oraz urządzenie do kodowania/dekodowania obrazów
PL3422714T3 (pl) 2011-06-30 2021-05-31 JVC Kenwood Corporation Urządzenie do kodowania obrazu, sposób kodowania obrazu, program do kodowania obrazu, urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu
CN105430390B (zh) 2011-06-30 2017-04-12 Jvc建伍株式会社 图像解码装置、图像解码方法、接收装置及接收方法
US20130188013A1 (en) 2011-07-22 2013-07-25 Qualcomm Incorporated Mvc based 3dvc codec supporting inside view motion prediction (ivmp) mode
IN2014CN00729A (pt) 2011-08-03 2015-04-03 Panasonic Corp
GB2493755B (en) 2011-08-17 2016-10-19 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of images
MX365013B (es) 2011-08-29 2019-05-20 Ibex Pt Holdings Co Ltd Metodo para generar un bloque de prediccion en modo de prediccion de vector de movimiento avanzada (amvp).
US8804816B2 (en) 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
CN107592528B (zh) 2011-09-09 2020-05-12 株式会社Kt 用于解码视频信号的方法
EP3468197B1 (en) 2011-09-09 2022-03-02 LG Electronics Inc. Inter prediction method and apparatus therefor
US20130070855A1 (en) 2011-09-17 2013-03-21 Qualcomm Incorporated Hybrid motion vector coding modes for video coding
JP5884697B2 (ja) 2011-09-28 2016-03-15 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
CN108650508B (zh) 2011-09-29 2022-07-29 夏普株式会社 图像解码装置、图像解码方法、图像编码装置及图像编码方法
CN103907346B (zh) 2011-10-11 2017-05-24 联发科技股份有限公司 运动矢量预测子及视差矢量导出方法及其装置
RU2719379C2 (ru) 2011-10-18 2020-04-17 Кт Корпорейшен Способ декодирования видеосигнала
US9838692B2 (en) 2011-10-18 2017-12-05 Qualcomm Incorporated Detecting availabilities of neighboring video units for video coding
CN108881903B (zh) 2011-10-19 2022-01-04 太阳专利托管公司 图像编码方法及装置、图像解码方法及装置、编解码装置
WO2013056656A1 (en) * 2011-10-19 2013-04-25 Mediatek Inc. Method and apparatus for derivation of motion vector predictor candidate set
WO2013059504A1 (en) 2011-10-21 2013-04-25 Dolby Laboratories Licensing Corporation Hierarchical motion estimation for video compression and motion analysis
US9462298B2 (en) 2011-10-21 2016-10-04 Qualcomm Incorporated Loop filtering around slice boundaries or tile boundaries in video coding
MX2013012224A (es) 2011-10-28 2013-11-01 Panasonic Corp Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de decodificacion de imagenes.
US9571833B2 (en) 2011-11-04 2017-02-14 Nokia Technologies Oy Method for coding and an apparatus
KR20130050406A (ko) 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
KR20130050407A (ko) 2011-11-07 2013-05-16 오수미 인터 모드에서의 움직임 정보 생성 방법
US20130114717A1 (en) 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
CA2854887C (en) 2011-11-08 2015-08-04 Samsung Electronics Co., Ltd. Method and apparatus for motion vector determination in video encoding or decoding
RU2632154C1 (ru) 2011-11-08 2017-10-02 Электроникс Энд Телекоммьюникейшнз Рисерч Инститьют Способ и устройство для совместного использования списка кандидатов
CN107371024B (zh) 2011-11-08 2020-09-04 株式会社Kt 利用解码装置对视频信号进行解码的方法
JP6178326B2 (ja) 2011-11-11 2017-08-09 ジーイー ビデオ コンプレッション エルエルシー デプスマップの推定および更新を用いる効率的なマルチビュー符号化
US9485503B2 (en) 2011-11-18 2016-11-01 Qualcomm Incorporated Inside view motion prediction among texture and depth view components
WO2013081365A1 (ko) 2011-11-28 2013-06-06 에스케이텔레콤 주식회사 개선된 머지를 이용한 영상 부호화/복호화 방법 및 장치
US9762904B2 (en) 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
RU2579665C9 (ru) 2011-12-28 2016-12-27 ДжейВиСи КЕНВУД КОРПОРЕЙШН Устройство кодирования движущегося изображения, способ кодирования движущегося изображения и программа кодирования движущегося изображения, а также устройство декодирования движущегося изображения, способ декодирования движущегося изображения и программа декодирования движущегося изображения
US9900615B2 (en) 2011-12-28 2018-02-20 Microsoft Technology Licensing, Llc Representative motion information for temporal motion prediction in video encoding and decoding
US20130188715A1 (en) 2012-01-09 2013-07-25 Qualcomm Incorporated Device and methods for merge list reordering in video coding
CN105791855A (zh) 2012-01-18 2016-07-20 Jvc建伍株式会社 动图像解码装置以及动图像解码方法
PT3767952T (pt) 2012-01-19 2021-12-20 Electronics & Telecommunications Res Inst Aparelho para codificação/descodificação de imagem
JP6013513B2 (ja) 2012-01-20 2016-10-25 パンテック カンパニー リミテッド 画面内予測方法及び画像復号化装置
BR112014017915B1 (pt) 2012-01-20 2021-03-16 Ge Video Compression, Llc conceito de codificação que permite o processamento parelelo, desmultiplexador de transporte e fluxo de bites de vídeo
EP2810443B1 (en) * 2012-02-01 2021-03-31 Nokia Technologies Oy Method and apparatus for video coding
US9544592B2 (en) 2012-02-10 2017-01-10 Texas Instruments Incorporated Methods and systems for encoding pictures associated with video data
US9445076B2 (en) * 2012-03-14 2016-09-13 Qualcomm Incorporated Disparity vector construction method for 3D-HEVC
US9503720B2 (en) * 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US10200709B2 (en) * 2012-03-16 2019-02-05 Qualcomm Incorporated High-level syntax extensions for high efficiency video coding
WO2013140807A1 (ja) 2012-03-23 2013-09-26 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
US9264706B2 (en) 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
US9325991B2 (en) 2012-04-11 2016-04-26 Qualcomm Incorporated Motion vector rounding
US9338451B2 (en) 2012-04-12 2016-05-10 Qualcomm Incorporated Common spatial candidate blocks for parallel motion estimation
US20130272412A1 (en) 2012-04-12 2013-10-17 Qualcomm Incorporated Common motion information candidate list construction process
TWI580248B (zh) 2012-04-12 2017-04-21 Jvc Kenwood Corp Dynamic image decoding device, dynamic image decoding method and dynamic image decoding program
US9503702B2 (en) 2012-04-13 2016-11-22 Qualcomm Incorporated View synthesis mode for three-dimensional video coding
WO2013157251A1 (ja) 2012-04-16 2013-10-24 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
US10341677B2 (en) 2012-05-10 2019-07-02 Lg Electronics Inc. Method and apparatus for processing video signals using inter-view inter-prediction
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9258562B2 (en) 2012-06-13 2016-02-09 Qualcomm Incorporated Derivation of depth map estimate
US20130336406A1 (en) 2012-06-14 2013-12-19 Qualcomm Incorporated Redundancy removal for merge/skip mode motion information candidate list construction
US20130343459A1 (en) 2012-06-22 2013-12-26 Nokia Corporation Method and apparatus for video coding
EP2863631A4 (en) 2012-07-02 2016-03-16 Samsung Electronics Co Ltd METHOD AND DEVICE FOR PREDICTING MOTION VECTORS FOR CODING OR DECODING VIDEO CONTENT
US20140071235A1 (en) 2012-09-13 2014-03-13 Qualcomm Incorporated Inter-view motion prediction for 3d video
US9998727B2 (en) 2012-09-19 2018-06-12 Qualcomm Incorporated Advanced inter-view residual prediction in multiview or 3-dimensional video coding
KR102238567B1 (ko) * 2012-09-19 2021-04-08 퀄컴 인코포레이티드 디스패리티 벡터 유도를 위한 화상들의 선택
WO2014049196A1 (en) 2012-09-27 2014-04-03 Nokia Corporation Method and techniqal equipment for scalable video coding
WO2014054267A1 (ja) 2012-10-01 2014-04-10 パナソニック株式会社 画像符号化装置及び画像符号化方法
CN104704835B (zh) 2012-10-03 2017-11-24 联发科技股份有限公司 视频编码中运动信息管理的装置与方法
US9699450B2 (en) 2012-10-04 2017-07-04 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
CN102883163B (zh) 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
WO2014058280A1 (ko) 2012-10-12 2014-04-17 한국전자통신연구원 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US9854234B2 (en) 2012-10-25 2017-12-26 Qualcomm Incorporated Reference picture status for video coding
US9357214B2 (en) 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
JP6215344B2 (ja) 2012-12-14 2017-10-18 クゥアルコム・インコーポレイテッドQualcomm Incorporated 非対称空間解像度を有するテクスチャビューコンポーネントおよび深度ビューコンポーネントの中での内部ビュー動き予測
US9544566B2 (en) * 2012-12-14 2017-01-10 Qualcomm Incorporated Disparity vector derivation
US10021414B2 (en) 2013-01-04 2018-07-10 Qualcomm Incorporated Bitstream constraints and motion vector restriction for inter-view or inter-layer reference pictures
US9584792B2 (en) 2013-01-04 2017-02-28 Qualcomm Incorporated Indication of current view dependency on reference view in multiview coding file format
US20150358635A1 (en) 2013-01-07 2015-12-10 Vid Scale, Inc. Motion information signaling for scalable video coding
US9762882B2 (en) 2013-01-11 2017-09-12 Hfi Innovation Inc. Method and apparatus for efficient coding of depth lookup table
JP5692262B2 (ja) 2013-03-06 2015-04-01 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法、及び受信プログラム
EP3490259B1 (en) 2013-04-02 2021-10-13 InterDigital Madison Patent Holdings, SAS Enhanced temporal motion vector prediction for scalable video coding
US10158876B2 (en) 2013-04-10 2018-12-18 Qualcomm Incorporated Backward view synthesis prediction
CN105324996B (zh) 2013-04-10 2018-12-21 寰发股份有限公司 三维视频编码的视图间候选推导的方法及其装置
CN104125463A (zh) 2013-04-26 2014-10-29 华为技术有限公司 一种图像预测编码方法及图像编码器
TW201507443A (zh) 2013-05-15 2015-02-16 Vid Scale Inc 基於單迴路解碼之多層視訊編碼
US9667990B2 (en) 2013-05-31 2017-05-30 Qualcomm Incorporated Parallel derived disparity vector for 3D video coding with neighbor-based disparity vector derivation
WO2015000108A1 (en) 2013-07-01 2015-01-08 Mediatek Singapore Pte. Ltd. An improved texture merging candidate in 3dvc
WO2015006920A1 (en) 2013-07-16 2015-01-22 Mediatek Singapore Pte. Ltd. An adaptive disparity vector derivation method
WO2015010226A1 (en) * 2013-07-24 2015-01-29 Qualcomm Incorporated Simplified advanced motion prediction for 3d-hevc
DK3047639T3 (en) 2013-09-20 2018-10-15 Vid Scale Inc Video Codes and Methods to Provide 3D Lookup Table Encoding for Color Game Scalability
US9667996B2 (en) 2013-09-26 2017-05-30 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
GB2519514A (en) 2013-10-11 2015-04-29 Canon Kk Method and apparatus for displacement vector component prediction in video coding and decoding
JP6545672B2 (ja) 2013-10-18 2019-07-17 エルジー エレクトロニクス インコーポレイティド マルチビュービデオコーディングにおいて、ビュー合成予測方法及びこれを利用したマージ候補リスト構成方法
CN104717510B (zh) 2013-12-13 2018-08-17 华为技术有限公司 用于图像处理的方法和装置
EP4096221A1 (en) * 2014-01-03 2022-11-30 Microsoft Technology Licensing, LLC Block vector prediction in video and image coding/decoding
US9967592B2 (en) 2014-01-11 2018-05-08 Qualcomm Incorporated Block-based advanced residual prediction for 3D video coding
US10212441B2 (en) 2014-02-12 2019-02-19 Chips & Media, Inc. Method and apparatus for processing video
CN105556971B (zh) 2014-03-04 2019-07-30 微软技术许可有限责任公司 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
EP3114839A4 (en) 2014-03-07 2018-02-14 Qualcomm Incorporated Simplified sub-prediction unit (sub-pu) motion parameter inheritence (mpi)
WO2015137783A1 (ko) 2014-03-14 2015-09-17 삼성전자 주식회사 인터 레이어 비디오의 복호화 및 부호화를 위한 머지 후보 리스트 구성 방법 및 장치
WO2015139187A1 (en) 2014-03-17 2015-09-24 Mediatek Inc. Low latency encoder decision making for illumination compensation and depth look-up table transmission in video coding
WO2015139203A1 (en) 2014-03-18 2015-09-24 Mediatek Singapore Pte. Ltd. Dlt signaling in 3d video coding
US10257531B2 (en) 2014-03-19 2019-04-09 Kt Corporation Method and apparatus for processing multiview video signals based on illumination compensation and inter-view motion candidate
US10554967B2 (en) 2014-03-21 2020-02-04 Futurewei Technologies, Inc. Illumination compensation (IC) refinement based on positional pairings among pixels
JP6345805B2 (ja) 2014-05-06 2018-06-20 寰發股▲ふん▼有限公司HFI Innovation Inc. Intraブロックコピーモード符号化のブロックベクトル予測の方法
US10382749B2 (en) 2014-05-23 2019-08-13 Qualcomm Incorporated Coding run values based on palette index in palette-based video coding
WO2015180014A1 (en) 2014-05-26 2015-12-03 Mediatek Singapore Pte. Ltd. An improved merge candidate list construction method for intra block copy
CN106471806B (zh) 2014-06-16 2019-06-04 高通股份有限公司 3d-hevc中的简化移位合并候选者及合并列表导出
WO2015192780A1 (en) * 2014-06-19 2015-12-23 Mediatek Singapore Pte. Ltd. Method and apparatus of candidate generation for single sample mode in video coding
RU2017101574A (ru) 2014-06-19 2018-07-19 Вид Скейл, Инк. Системы и способы для оптимизации параметра модели в основанном на трехмерном представлении отображении цветов
KR102287779B1 (ko) 2014-06-23 2021-08-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 해시 기반의 블록 매칭의 결과에 기초한 인코더 결정
CN104079944B (zh) 2014-06-30 2017-12-01 华为技术有限公司 视频编码的运动矢量列表构建方法和***
WO2016008161A1 (en) 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Temporal derived bi-directional motion vector predictor
WO2016008157A1 (en) 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
KR102276854B1 (ko) 2014-07-31 2021-07-13 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
KR102034938B1 (ko) 2014-09-01 2019-10-21 에이치에프아이 이노베이션 인크. 스크린 콘텐츠 및 비디오 코딩을 위한 인트라 픽처 블록 카피의 방법
CN111988606B (zh) 2014-09-15 2022-09-20 寰发股份有限公司 去区块滤波方法、相应地编码装置和存储介质
EP3123718A4 (en) 2014-10-09 2017-05-03 HFI Innovation Inc. Method of 3d or multi-view video coding including view synthesis prediction
CN112188204B (zh) 2014-10-31 2024-04-05 三星电子株式会社 使用高精度跳过编码的视频编码设备和视频解码设备及其方法
US10531113B2 (en) 2014-10-31 2020-01-07 Samsung Electronics Co., Ltd. Method and device for encoding/decoding motion vector
KR101908249B1 (ko) 2014-11-18 2018-10-15 미디어텍 인크. 단방향 예측 및 병합 후보로부터의 모션 벡터에 기초한 양방향 예측 비디오 코딩 방법
SG11201703551VA (en) 2014-12-09 2017-05-30 Mediatek Inc Method of motion vector predictor or merge candidate derivation in video coding
WO2016090568A1 (en) 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US10230980B2 (en) 2015-01-26 2019-03-12 Qualcomm Incorporated Overlapped motion compensation for video coding
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
US10070130B2 (en) 2015-01-30 2018-09-04 Qualcomm Incorporated Flexible partitioning of prediction units
CN106416254B (zh) 2015-02-06 2019-08-02 微软技术许可有限责任公司 在媒体编码期间跳过评估阶段
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
US10958927B2 (en) 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
CN111818344B (zh) 2015-04-08 2022-05-24 寰发股份有限公司 视频编解码中调色板模式上下文编解码和二值化的方法
CN104915966B (zh) 2015-05-08 2018-02-09 上海交通大学 基于卡尔曼滤波的帧率上变换运动估计方法及***
US10200713B2 (en) 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US10368072B2 (en) 2015-05-29 2019-07-30 Qualcomm Incorporated Advanced arithmetic coder
US10887597B2 (en) 2015-06-09 2021-01-05 Qualcomm Incorporated Systems and methods of determining illumination compensation parameters for video coding
US10356416B2 (en) * 2015-06-09 2019-07-16 Qualcomm Incorporated Systems and methods of determining illumination compensation status for video coding
US10271064B2 (en) 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
US9918102B1 (en) * 2015-06-22 2018-03-13 Ambarella, Inc. Inter-prediction candidate selection in a mode decision
WO2017043734A1 (ko) 2015-09-07 2017-03-16 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017045101A1 (en) 2015-09-14 2017-03-23 Mediatek Singapore Pte. Ltd. Advanced deblocking filter in video coding
US20170094288A1 (en) 2015-09-25 2017-03-30 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
CN108141507B (zh) 2015-10-02 2020-02-07 Vid拓展公司 利用查找表进行颜色校正
US10812822B2 (en) 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
WO2017076221A1 (en) * 2015-11-05 2017-05-11 Mediatek Inc. Method and apparatus of inter prediction using average motion vector for video coding
WO2017086746A1 (ko) 2015-11-19 2017-05-26 한국전자통신연구원 화면내 예측 모드 부호화/복호화 방법 및 장치
US10999595B2 (en) * 2015-11-20 2021-05-04 Mediatek Inc. Method and apparatus of motion vector prediction or merge candidate derivation for video coding
CN105681807B (zh) 2016-01-06 2018-11-02 福州瑞芯微电子股份有限公司 一种基于h264协议的分像素运动矢量计算方法和装置
US10368083B2 (en) 2016-02-15 2019-07-30 Qualcomm Incorporated Picture order count based motion vector pruning
US10200715B2 (en) 2016-02-17 2019-02-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for encoding and decoding video pictures
ES2688624R1 (es) 2016-04-06 2018-12-04 Kt Corporation Método y aparato para procesar señales de vídeo
US20200169726A1 (en) 2016-04-08 2020-05-28 Electronics And Telecommunications Research Institute Method and device for inducing motion prediction information
CN114189681A (zh) 2016-04-26 2022-03-15 英迪股份有限公司 图像解码方法、图像编码方法以及传输比特流的方法
US10142652B2 (en) 2016-05-05 2018-11-27 Google Llc Entropy coding motion vector residuals obtained using reference motion vectors
CN109121465B (zh) 2016-05-06 2023-06-06 交互数字麦迪逊专利控股公司 用于运动补偿残差预测的***和方法
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
US10560718B2 (en) 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10419755B2 (en) 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
CN116567262A (zh) 2016-05-24 2023-08-08 韩国电子通信研究院 图像编码/解码方法和用于所述方法的记录介质
CN116708784A (zh) 2016-07-12 2023-09-05 韩国电子通信研究院 图像编码/解码方法以及用于该方法的记录介质
JP6938612B2 (ja) 2016-07-12 2021-09-22 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute 画像復号方法、画像符号化方法、及び非一時的なコンピュータ可読の記録媒体
US11638027B2 (en) 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
US10721489B2 (en) 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
WO2018045944A1 (en) 2016-09-06 2018-03-15 Mediatek Inc. Methods and apparatuses of candidate set determination for binary-tree splitting blocks
US10812791B2 (en) 2016-09-16 2020-10-20 Qualcomm Incorporated Offset vector identification of temporal motion vector predictor
JP7048503B2 (ja) 2016-09-27 2022-04-05 シャープ株式会社 復号装置、符号化装置、復号方法、および、符号化方法
KR102343668B1 (ko) 2016-09-30 2021-12-24 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 인코딩 방법, 비디오 디코딩 방법, 및 단말
KR102219320B1 (ko) 2016-09-30 2021-02-23 후아웨이 테크놀러지 컴퍼니 리미티드 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스
US10778999B2 (en) 2016-09-30 2020-09-15 Qualcomm Incorporated Frame rate up-conversion coding mode with affine motion model
EP3301919A1 (en) 2016-10-03 2018-04-04 Thomson Licensing Method and apparatus for encoding and decoding motion information
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
JP2019216294A (ja) 2016-10-14 2019-12-19 シャープ株式会社 エントロピー復号装置、エントロピー符号化装置、画像復号装置および画像符号化装置
WO2018097693A2 (ko) 2016-11-28 2018-05-31 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
DK3541073T3 (da) 2016-12-05 2021-09-20 Lg Electronics Inc Fremgangsmåde og lagringsmedie til dekodning af et billede i et billedkodningssystem
WO2018117706A1 (ko) 2016-12-22 2018-06-28 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR20180074000A (ko) 2016-12-23 2018-07-03 삼성전자주식회사 비디오 디코딩 방법, 이를 수행하는 비디오 디코더, 비디오 인코딩 방법, 및 이를 수행하는 비디오 인코더
CN106851046A (zh) 2016-12-28 2017-06-13 中国科学院自动化研究所 视频动态超分辨率处理方法及***
US10681370B2 (en) 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
US20180192071A1 (en) * 2017-01-05 2018-07-05 Mediatek Inc. Decoder-side motion vector restoration for video coding
US10701366B2 (en) 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US20180242024A1 (en) 2017-02-21 2018-08-23 Mediatek Inc. Methods and Apparatuses of Candidate Set Determination for Quad-tree Plus Binary-tree Splitting Blocks
US10491917B2 (en) 2017-03-22 2019-11-26 Qualcomm Incorporated Decoder-side motion vector derivation
US10595035B2 (en) * 2017-03-22 2020-03-17 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation
US10805650B2 (en) 2017-03-27 2020-10-13 Qualcomm Incorporated Signaling important video information in network video streaming using mime type parameters
CN117395401A (zh) 2017-04-28 2024-01-12 英迪股份有限公司 图像解码方法、图像编码方法和用于发送比特流的方法
US10742975B2 (en) 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
US20180332312A1 (en) 2017-05-09 2018-11-15 Futurewei Technologies, Inc. Devices And Methods For Video Processing
US10523934B2 (en) 2017-05-31 2019-12-31 Mediatek Inc. Split based motion vector operation reduction
EP3410717A1 (en) 2017-05-31 2018-12-05 Thomson Licensing Methods and apparatus for candidate list pruning
JP2020522960A (ja) 2017-06-09 2020-07-30 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute 画像符号化/復号化方法、装置、及びビットストリームを保存した記録媒体
CN109089119B (zh) 2017-06-13 2021-08-13 浙江大学 一种运动矢量预测的方法及设备
US10602180B2 (en) 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US10757420B2 (en) 2017-06-23 2020-08-25 Qualcomm Incorporated Combination of inter-prediction and intra-prediction in video coding
US10911769B2 (en) 2017-06-23 2021-02-02 Qualcomm Incorporated Motion-based priority for the construction of candidate lists in video coding
EP3422716A1 (en) 2017-06-26 2019-01-02 Thomson Licensing Method and apparatus for most probable mode (mpm) sorting and signaling in video encoding and decoding
US10687077B2 (en) 2017-06-26 2020-06-16 Qualcomm Incorporated Motion information propagation in video coding
CN107295348A (zh) 2017-07-31 2017-10-24 南通海鑫信息科技有限公司 一种图像编码方法
US10284869B2 (en) 2017-09-28 2019-05-07 Google Llc Constrained motion field estimation for hardware efficiency
US11570470B2 (en) 2017-09-28 2023-01-31 Vid Scale, Inc. Complexity reduction of overlapped block motion compensation
US11082716B2 (en) 2017-10-10 2021-08-03 Electronics And Telecommunications Research Institute Method and device using inter prediction information
US11563954B2 (en) 2017-10-26 2023-01-24 Electronics And Telecommunications Research Institute Method and device for image encoding/decoding on basis of asymmetric sub-block
US11057640B2 (en) 2017-11-30 2021-07-06 Lg Electronics Inc. Image decoding method and apparatus based on inter-prediction in image coding system
CN109963155B (zh) 2017-12-23 2023-06-06 华为技术有限公司 图像块的运动信息的预测方法、装置及编解码器
US11172229B2 (en) 2018-01-12 2021-11-09 Qualcomm Incorporated Affine motion compensation with low bandwidth
US11265551B2 (en) 2018-01-18 2022-03-01 Qualcomm Incorporated Decoder-side motion vector derivation
US10652571B2 (en) 2018-01-25 2020-05-12 Qualcomm Incorporated Advanced motion vector prediction speedups for video coding
US11303929B2 (en) 2018-04-02 2022-04-12 Lg Electronics Inc. Image coding method using lookup table for intra prediction mode and apparatus therefor
US10986343B2 (en) 2018-04-15 2021-04-20 Arris Enterprises Llc Reducing overhead for multiple-hypothesis temporal prediction
WO2019223746A1 (en) 2018-05-23 2019-11-28 Mediatek Inc. Method and apparatus of video coding using bi-directional cu weight
WO2019234671A1 (en) 2018-06-07 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Improved pmmvd
EP4300973A3 (en) 2018-06-29 2024-06-19 Beijing Bytedance Network Technology Co., Ltd. Which lut to be updated or no updating
CN114885173A (zh) 2018-06-29 2022-08-09 抖音视界(北京)有限公司 Lut中的运动候选的检查顺序
CN110662059B (zh) 2018-06-29 2021-04-20 北京字节跳动网络技术有限公司 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置
CN116320489A (zh) 2018-06-29 2023-06-23 北京字节跳动网络技术有限公司 视频处理方法、编码装置和解码装置
WO2020003284A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
SG11202011714RA (en) 2018-06-29 2020-12-30 Beijing Bytedance Network Technology Co Ltd Partial/full pruning when adding a hmvp candidate to merge/amvp
CN110662039B (zh) 2018-06-29 2022-06-07 北京字节跳动网络技术有限公司 查找表的更新:fifo、约束的fifo
CN115134599A (zh) 2018-06-29 2022-09-30 抖音视界有限公司 更新查找表(lut)的条件
KR102648120B1 (ko) 2018-06-29 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 슬라이스/타일/lcu 행마다의 룩업 테이블 리셋
WO2020003270A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
CN110677648B (zh) 2018-07-02 2022-06-07 北京字节跳动网络技术有限公司 处理视频数据的方法、装置及非暂时性存储介质
CN117676163A (zh) 2018-07-06 2024-03-08 寰发股份有限公司 解码器的视频解码方法及装置
US10491902B1 (en) 2018-07-16 2019-11-26 Tencent America LLC Method and apparatus for history-based motion vector prediction
US10440378B1 (en) 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
US11381833B2 (en) 2018-07-19 2022-07-05 Tencent America LLC Method and apparatus for video coding
US10958934B2 (en) 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
US10362330B1 (en) 2018-07-30 2019-07-23 Tencent America LLC Combining history-based motion vector prediction and non-adjacent merge prediction
CN110809159B (zh) 2018-08-04 2022-06-07 北京字节跳动网络技术有限公司 更新的mv或推导的mv的裁剪
EP3821626A4 (en) 2018-08-09 2021-08-04 Huawei Technologies Co., Ltd. HISTORY-BASED INTRA MODE CODING PROCESS AND APPARATUS
BR112021002604A2 (pt) 2018-08-13 2021-05-04 Lg Electronics Inc. método de predição inter baseado no vetor de movimento baseado em histórico e dispositivo do mesmo
CN116781925A (zh) 2018-08-28 2023-09-19 鸿颖创新有限公司 编码视频数据的方法
WO2020050678A1 (ko) 2018-09-06 2020-03-12 엘지전자 주식회사 Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 그 장치
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
US11212550B2 (en) 2018-09-21 2021-12-28 Qualcomm Incorporated History-based motion vector prediction for affine mode
US20200112715A1 (en) 2018-10-05 2020-04-09 Qualcomm Incorporated History-based motion vector prediction for inter prediction coding
US11051034B2 (en) 2018-10-08 2021-06-29 Qualcomm Incorporated History-based motion vector predictor
US11284066B2 (en) 2018-10-10 2022-03-22 Tencent America LLC Method and apparatus for intra block copy in intra-inter blending mode and triangle prediction unit mode
CN116634170A (zh) 2018-10-10 2023-08-22 华为技术有限公司 帧间预测方法及装置
CN112913240A (zh) 2018-10-22 2021-06-04 北京字节跳动网络技术有限公司 解码器侧运动矢量推导和其他编解码工具之间的并置
CN117880513A (zh) 2018-10-22 2024-04-12 北京字节跳动网络技术有限公司 基于编解码信息的解码器侧运动矢量推导的限制
CN111093075B (zh) 2018-10-24 2024-04-26 北京字节跳动网络技术有限公司 子块运动矢量预测中基于空域邻近块的运动候选推导
KR102608615B1 (ko) 2018-11-02 2023-12-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Hmvp 후보 저장을 위한 표 유지
WO2020094073A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Ordered motion candidate list generation using geometric partitioning mode
WO2020094052A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Side information signaling for inter prediction with geometric partitioning
WO2020103936A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Pruning method for inter prediction with geometry partition
WO2020103932A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Using reference lines for intra mode video processing
US11146810B2 (en) 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
US11184633B2 (en) 2018-11-27 2021-11-23 Qualcomm Incorporated Simplification of history-based motion vector prediction
KR102468805B1 (ko) 2018-12-12 2022-11-18 엘지전자 주식회사 히스토리 기반 모션 벡터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
US11431986B2 (en) 2018-12-28 2022-08-30 Godo Kaisha Ip Bridge 1 Picture coding device, picture coding method, and picture coding program, picture decoding device, picture decoding method and picture decoding program
JP2021513795A (ja) 2019-01-01 2021-05-27 エルジー エレクトロニクス インコーポレイティド 履歴ベース動きベクトル予測に基づいてビデオ信号を処理するための方法及び装置
US11234007B2 (en) 2019-01-05 2022-01-25 Tencent America LLC Method and apparatus for video coding
EP3888355A4 (en) 2019-01-10 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. LOOKUP TABLE UPDATE INVOCATION
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
CN113302937A (zh) 2019-01-16 2021-08-24 北京字节跳动网络技术有限公司 运动候选推导
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools

Also Published As

Publication number Publication date
JP2023052926A (ja) 2023-04-12
CN114125450A (zh) 2022-03-01
CN110662043A (zh) 2020-01-07
CN110662043B (zh) 2021-12-21
EP4325861A2 (en) 2024-02-21
US11528501B2 (en) 2022-12-13
WO2020003284A1 (en) 2020-01-02
CA3105330C (en) 2023-12-05
EP4325861A3 (en) 2024-03-06
US20200366923A1 (en) 2020-11-19
JP7295231B2 (ja) 2023-06-20
SG11202013028PA (en) 2021-01-28
CA3105330A1 (en) 2020-01-02
US20210014525A1 (en) 2021-01-14
KR102641872B1 (ko) 2024-02-29
MX2020013828A (es) 2021-03-25
US20230064498A1 (en) 2023-03-02
TW202015422A (zh) 2020-04-16
TWI719525B (zh) 2021-02-21
KR20240005239A (ko) 2024-01-11
CN114125450B (zh) 2023-11-17
EP3797516A1 (en) 2021-03-31
KR20210024504A (ko) 2021-03-05
JP2021530940A (ja) 2021-11-11
US10873756B2 (en) 2020-12-22

Similar Documents

Publication Publication Date Title
BR112020024162A2 (pt) método de processamento de vídeo e aparelho para processar dados de vídeo, meios de armazenamento e de gravação legíveis por computador não transitórios, método para armazenar uma representação de fluxo de bits de um vídeo
BR112020024142A2 (pt) método para processamento de vídeo, aparelho para codificação de dados de vídeo, meio de armazenamento e meio de gravação legíveis por computador não transitório
KR102648120B1 (ko) 슬라이스/타일/lcu 행마다의 룩업 테이블 리셋
BR112020024202A2 (pt) método de processamento de dados de vídeo, aparelho de processamento de vídeo e meios de armazenamento e gravação legíveis por computador não transitório
KR102646649B1 (ko) Lut에서의 모션 후보들의 검사 순서
CN110662058B (zh) 查找表的使用条件
CN110662075B (zh) 改进的时域运动矢量预测推导
CN110662030B (zh) 一种视频处理方法和装置
CN110719463A (zh) 用时间信息扩展基于查找表的运动矢量预测
CN110719464B (zh) 用时间信息扩展基于查找表的运动矢量预测
CN110719465A (zh) 用时间信息扩展基于查找表的运动矢量预测
RU2807504C2 (ru) Взаимодействие между таблицей поиска (lut) и усовершенствованным предсказанием вектора движения (amvp)

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]