BR112021014788A2 - Interpredição em divisão geométrica com um número adaptativo de regiões - Google Patents

Interpredição em divisão geométrica com um número adaptativo de regiões Download PDF

Info

Publication number
BR112021014788A2
BR112021014788A2 BR112021014788-8A BR112021014788A BR112021014788A2 BR 112021014788 A2 BR112021014788 A2 BR 112021014788A2 BR 112021014788 A BR112021014788 A BR 112021014788A BR 112021014788 A2 BR112021014788 A2 BR 112021014788A2
Authority
BR
Brazil
Prior art keywords
region
luma
site
candidate
decoder
Prior art date
Application number
BR112021014788-8A
Other languages
English (en)
Inventor
Borivoje Furht
Hari Kalva
Velibor Adzic
Original Assignee
Op Solutions, Llc
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 Op Solutions, Llc filed Critical Op Solutions, Llc
Publication of BR112021014788A2 publication Critical patent/BR112021014788A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/124Quantisation
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

interpredição em divisão geométrica com um número adaptativo de regiões. trata-se de um decodificador que inclui conjunto de circuitos configurado para receber um fluxo de bits; dividir um bloco atual por meio de um modo de divisão geométrica em uma primeira região, uma segunda região, e uma terceira região; determinar um vetor de movimento associado com a primeira região, a segunda região, ou a terceira região, sendo que a determinação inclui a construção de uma lista de candidatos; e decodificar o bloco atual usando o vetor de movimento determinado. aparelho, sistemas, técnicas, e artigos relacionados também são descritos.

Description

RELATÓRIO DESCRITIVO INTERPREDIÇÃO EM DIVISÃO GEOMÉTRICA COM UM NÚMERO ADAPTATIVO DE REGIÕES REFERÊNCIA CRUZADA AOS PEDIDOS RELACIONADOS
[001] Este pedido reivindica o benefício de prioridade do Pedido de Patente Provisório dos EUA nº de série 62/797.820, depositado em 28 de janeiro de 2019 e intitulado “Inter Prediction in Geometric Partitioning with an Adaptive Number of Regions”, que é incorporado por referência aqui em sua totalidade.
CAMPO DA INVENÇÃO
[002] A presente invenção geralmente refere-se ao campo de compressão de vídeo. Em particular, a presente invenção é direcionada à interpredição em divisão geométrica com um número adaptativo de regiões.
FUNDAMENTOS
[003] Um codec de vídeo pode incluir um circuito eletrônico ou software que comprime ou descompacta vídeo digital. Ele pode converter vídeo não compactado em um formato compactado ou vice-versa. No contexto da compressão de vídeo, um dispositivo que comprime vídeo (e/ou executa alguma função do mesmo) pode normalmente ser chamado de codificador, e um dispositivo que descompacta vídeo (e/ou executa alguma função do mesmo) pode ser chamado de decodificador.
[004] Um formato dos dados compactados pode estar em conformidade com uma especificação de compactação de vídeo padrão. A compactação pode ser com perdas, pois o vídeo compactado carece de algumas informações presentes no vídeo original. Uma consequência disso pode incluir que o vídeo descompactado pode ter qualidade inferior do que o vídeo descompactado original porque não há informações suficientes para reconstruir com precisão o vídeo original.
[005] Pode haver relações complexas entre a qualidade do vídeo, a quantidade de dados usados para representar o vídeo (por exemplo, determinado pela taxa de bits), a complexidade dos algoritmos de codificação e decodificação,
sensibilidade a perdas e erros de dados, facilidade de edição, acesso aleatório, atraso de ponta a ponta (por exemplo, latência) e semelhantes.
SUMÁRIO DA DIVULGAÇÃO
[006] Em um aspecto, um decodificador inclui conjunto de circuitos configurados para receber um fluxo de bits, dividir um bloco atual por meio de um modo de divisão geométrica em uma primeira região, uma segunda região, e uma terceira região, determinar um vetor de movimento associado com uma região da primeira região, da segunda região, e da terceira região, em que a determinação inclui ainda a construção de uma lista de candidatos, e decodificar o bloco atual usando o vetor de movimento determinado.
[007] Em um outro aspecto, um método inclui receber, por um decodificador, um fluxo de bits. O método inclui dividir, pelo decodificador, um bloco atual por meio de um modo de divisão geométrica em uma primeira região, uma segunda região, e uma terceira região. O método inclui determinar, pelo decodificador, um vetor de movimento associado com uma região da primeira região, da segunda região, e da terceira região, sendo que a determinação inclui a construção de uma lista de candidatos. O método inclui decodificar, pelo decodificador, o bloco atual usando o vetor de movimento determinado.
[008] Os detalhes de uma ou mais variações do assunto aqui descrito são apresentados nos desenhos anexos e na descrição abaixo. Outras características e vantagens da matéria aqui descrita serão evidentes a partir da descrição e dos desenhos e das reivindicações.
DESCRIÇÃO DOS DESENHOS
[009] Com o propósito de ilustrar a invenção, os desenhos mostram aspectos de uma ou mais modalidades da invenção. No entanto, deve ser entendido que a presente invenção não está limitada às disposições e instrumentalidades precisas mostradas nos desenhos, em que:
[010] A Figura 1 é uma ilustração mostrando um exemplo de um bloco residual (por exemplo, bloco atual) com divisão geométrica onde há três regiões;
[011] A Figura 2 é um diagrama ilustrando posições exemplificativas de candidatos potenciais de vetor de movimento espacial em relação a uma primeira região (região S0) de um bloco atual exemplificativo dividido de acordo com a divisão geométrica;
[012] A Figura 3 ilustra a Figura 2 com anotação mostrando locais luma incluindo o local luma mais superior à esquerda da primeira região S0;
[013] A Figura 4 é um diagrama ilustrando posições exemplificativas de candidatos potenciais de vetor de movimento em relação a uma segunda região S1 de um bloco atual exemplificativo dividido de acordo com a divisão geométrica;
[014] A Figura 5 ilustra a Figura 4 com anotação mostrando locais luma incluindo o local luma inferior mais à esquerda da terceira região S2 e o local luma superior mais à direita da segunda região S1;
[015] A Figura 6 é um diagrama ilustrando posições exemplificativas de candidatos potenciais de vetor de movimento espacial em relação a uma terceira região (região S2) de um bloco atual exemplificativo dividido de acordo com a divisão geométrica;
[016] A Figura 7 ilustra Figura 6 com anotação mostrando locais luma incluindo o local luma inferior mais à esquerda da terceira região S2 e o local luma superior mais à direita da segunda região S1; e
[017] A Figura 8 é um diagrama de bloco de sistema ilustrando um codificador de vídeo exemplificativo com a capacidade de codificar um vídeo usando interpredição com divisão geométrica com um número adaptativo de regiões;
[018] A Figura 9 é um diagrama de fluxo de processo ilustrando um processo exemplificativo de codificar um vídeo com divisão geométrica com um número adaptativo de regiões e interpredição de acordo com alguns aspectos da matéria atual que pode reduzir complexidade de codificação enquanto aumenta a eficiência de compressão;
[019] A Figura 10 é um diagrama de bloco de sistema ilustrando um decodificador exemplificativo com a capacidade de decodificar um fluxo de bits usando interpredição e divisão geométrica com um número adaptativo de regiões, o que pode melhorar a complexidade e o desempenho de processamento para codificação e decodificação de vídeo;
[020] A Figura 11 é um diagrama de fluxo de processo ilustrando um processo exemplificativo de decodificar um fluxo de bits usando interpredição em divisão geométrica com um número adaptativo de regiões, o que pode melhorar a complexidade e o desempenho de processamento para codificação e decodificação de vídeo;
[021] A Figura 12 é um diagrama de bloco de um sistema de computação que pode ser usado para implementar qualquer uma ou mais das metodologias divulgadas aqui e qualquer uma ou mais das porções do mesmo.
[022] Os desenhos não estão necessariamente em escala e podem ser ilustrados por linhas fantasmas, representações diagramáticas e vistas fragmentadas. Em certos casos, detalhes que não são necessários para uma compreensão das modalidades ou que tornam outros detalhes difíceis de perceber podem ter sido omitidos. Símbolos de referência semelhantes nos vários desenhos indicam elementos semelhantes.
DESCRIÇÃO DETALHADA
[023] Algumas implementações da matéria atual incluem realizar interpredição com regiões que foram divididas com um modo de divisão geométrica com um número adaptativo de regiões em que um bloco retangular pode ser dividido em três ou mais regiões não retangulares. A realização de interpredição com blocos não retangulares que foram divididos com divisão geométrica com um número adaptativo de regiões pode permitir a divisão para seguir mais de perto os limites de objeto, resultando em menor erro de predição de compensação de movimento, menores residuais e, assim, eficiência de compressão melhorada. Durante a interpredição, a compensação de movimento pode ser realizada usando vetores de movimento previstos para blocos (por exemplo, unidades de codificação, unidades de predição, e semelhantes) determinada de acordo com um modo de divisão geométrica. Vetores de movimento podem ser previstos usando predição de vetor de movimento avançada (AMVP) e/ou por meio de modo de mesclagem, onde o vetor de movimento é selecionado a partir de uma lista de candidatos de vetor de movimento sem codificar uma diferença de vetor de movimento.
[024] A matéria atual pode ser aplicada a blocos relativamente maiores, como blocos com um tamanho de 128 x 128 ou 64 x 64, por exemplo. Em algumas implementações, a divisão geométrica pode envolver dividir um bloco atual em um número adaptativo de regiões, como três ou mais regiões para um determinado bloco atual, e uma informação de movimento pode ser determinada para cada região.
[025] Compensação de movimento pode incluir um método para prever um quadro de vídeo ou uma porção do mesmo, dado os quadros anteriores e/ou futuros levando em consideração o movimento da câmera e/ou objetos no vídeo. Pode ser utilizado na codificação e decodificação de dados de vídeo para compressão de vídeo, por exemplo, na codificação e decodificação usando o Grupo de Peritos em Imagem em Movimento (MPEG)-2 (também denominado como padrão de codificação de vídeo avançado (AVC). Compensação de movimento pode descrever uma imagem em termos da transformação de uma imagem de referência na imagem atual. A imagem de referência pode ser anterior no tempo ou do futuro quando comparada à imagem atual. Quando as imagens podem ser sintetizadas com precisão a partir de imagens transmitidas e/ou armazenadas anteriormente, a eficiência da compressão pode ser melhorada.
[026] Divisão do bloco pode se referir a um método na codificação de vídeo para encontrar regiões de movimento semelhante. Alguma forma de divisão do bloco pode ser encontrada em padrões de codec de vídeo, incluindo MPEG-2, H.264 (também denominado como AVC ou MPEG-4 Parte 10) e H.265 (também denominado como Codificação de Vídeo de Alta Eficiência (HEVC)). Em abordagens de divisão do bloco exemplificativa, blocos não sobrepostos de um quadro de vídeo podem ser divididos em sub-blocos retangulares para encontrar divisões de bloco que contêm pixels com movimento semelhante. Essa abordagem pode funcionar bem quando todos os pixels de uma divisão do bloco têm movimento semelhante. O movimento dos pixels em um bloco pode ser determinado em relação aos quadros previamente codificados.
[027] Predição de vetor de movimento pode ser efetivamente implementada em divisão geométrica com número adaptativo de regiões. Em mais detalhes, a divisão geométrica com um número adaptativo de regiões pode incluir técnicas para codificação e decodificação de vídeo em que um bloco retangular é ainda dividido em duas ou mais regiões que podem ser não retangulares. Por exemplo, a Figura 1 é uma ilustração mostrando um exemplo de um bloco residual (por exemplo, bloco atual) 100 com divisão geométrica onde há três segmentos, S0, S1 e S2. Bloco atual 100 pode ter uma largura de M pixels e uma altura de N pixels, denotados como MxN pixels, como 64 x 64 ou 128 x 128. Bloco atual pode ser geometricamente dividido de acordo com dois segmentos de linha (P1P2 e P3P4), que pode dividir o bloco atual nas três regiões S0, S1 e S2. Quando pixels em S0 têm movimento semelhante, um vetor de movimento pode descrever o movimento de todos os pixels naquela região. Como descrito mais completamente abaixo, os respectivos vetores de movimento podem ser determinados de acordo com um modo de AMVP ou um modo de mesclagem. Vetor de movimento pode ser usado para comprimir a região S0. Da mesma forma, quando pixels na região S1 têm movimento semelhante, um vetor de movimento associado pode descrever o movimento de pixels na região S1. Da mesma forma, quando pixels na região S2 têm movimento semelhante, um vetor de movimento associado pode descrever o movimento de pixels na região S2. Essa divisão geométrica pode ser sinalizada para um receptor (por exemplo, decodificador) codificando as posições P1, P2, P3, P4 (ou representações destas posições, como, usando coordenadas polares, índices em modelos predefinidos ou outras caracterizações das divisões) em um fluxo de bits de vídeo.
[028] Com referência contínua à Figura 1, ao codificar dados de vídeo utilizando divisão geométrica no nível de pixel, o segmento de linha P1P2 (ou mais especificamente pontos P1 e P2) pode ser determinado. De modo a determinar um segmento de linha P1P2 (ou mais especificamente pontos P1 e P2) que melhor divide um bloco ao utilizar divisão geométrica no nível de pixel, possíveis combinações de pontos P1 e P2 dependem de M e N, que são a largura e altura do bloco. Para um bloco de tamanho MxN, há (M-1)x(N-1) x 3 divisões possíveis. Identificar uma divisão correta, portanto, pode se tornar uma tarefa computacionalmente cara de avaliar a estimativa de movimento para todas as divisões possíveis, o que pode aumentar uma quantidade de tempo e/ou poder de processamento necessário para codificar um vídeo em comparação com a codificação usando divisão retangular (por exemplo, sem divisão geométrica no nível de pixel). O que constitui a melhor divisão ou a correta pode ser determinado de acordo com uma métrica e pode mudar de implementação para implementação.
[029] Em algumas implementações, e ainda se referindo à Figura 1, a divisão ocorre iterativamente em que uma primeira divisão pode ser determinada (por exemplo, determinar a linha P1P2 e regiões associadas) formando duas regiões e, em seguida, uma dessas regiões pode ser ainda mais dividida. Por exemplo, uma divisão descrita com referência à Figura 1 pode ser realizada para dividir um bloco em duas regiões. Uma dessas regiões pode ser ainda dividida (por exemplo, para formar uma nova região S1 e região S2). Um processo pode continuar a realizar divisão geométrica em nível de bloco até que um critério de parada seja alcançado.
[030] Continuando a referir-se à Figura 1, a interpredição pode ser realizada usando regiões que foram geometricamente divididas. Vetores de movimento para compensação de movimento podem ser derivados usando AMVP ou modo de mesclagem. Em AMVP, uma predição de vetor de movimento é feita sinalizando um índice em uma lista de candidatos de vetor de movimento e o vetor de movimento diferença (por exemplo, residual) é codificada e incluída no fluxo de bits. No modo de mesclagem, um vetor de movimento é selecionado a partir de uma lista de candidatos de vetor de movimento sem codificar uma diferença de vetor de movimento, permitindo assim que um bloco atual adote informação de movimento de um outro bloco previamente decodificado. Tanto no AMVP quanto no modo de mesclagem, uma lista de candidatos pode ser construída tanto por um codificador quanto por um decodificador, e um índice na lista de candidatos é sinalizado em um fluxo de bits.
[031] A Figura 2 é um diagrama ilustrando exemplos não limitativos de posições de candidatos potenciais de vetor de movimento espacial em relação a uma primeira região (região S0) de um bloco atual exemplificativo 200 dividido de acordo com a divisão geométrica. Candidatos potenciais de vetor de movimento espacial podem ser considerados para a construção de uma lista de candidatos de vetor de movimento durante o modo de AMVP ou o modo de mesclagem. Bloco atual 200 pode ser dividido em três regiões S0, S1, e S2, por linhas retas entre os pontos P0, P1 e entre os pontos P2, P3, respectivamente. Cada uma da região S0, região S1, e região S2 pode ser uni ou bidirecionalmente prevista. Candidatos espaciais para primeira região (região S0), por exemplo, como ilustrado na Figura 2 podem incluir um candidato inferior à esquerda A0, um candidato à esquerda A1, um candidato superior à esquerda B2, um candidato superior B1 e um candidato superior à direita B0.
[032] Ainda se referindo à Figura 2, como ilustrado e em algumas implementações, cada local (A0, A1, B2, B1 e B0) pode representar um bloco no respectivo local. Por exemplo, um candidato superior à esquerda B2 pode ser um bloco que reside em um local que é imediatamente à esquerda e imediatamente acima da região S0; por exemplo, se o local luma de canto superior-esquerdo de S0 for (0, 0), então, o candidato superior à esquerda B2 pode residir no local (-1,-1). Um candidato inferior à esquerda A0 pode estar localizado imediatamente à esquerda e abaixo de P1; ou exemplo, se local luma de P1 for (P1x, P1y), o candidato inferior à esquerda A0 pode residir no local (P1x-1, P1y+1). Candidato à esquerda A1 pode estar localizado imediatamente à esquerda de P1; por exemplo, o candidato à esquerda A1 pode residir no local (P1x-1, P1y). Um candidato superior B1 pode estar localizado imediatamente acima de P0; por exemplo, se local luma de P0 for (P0x, P0y), o candidato acima de B1 pode estar localizado em (P0x, P0y-1). Um candidato acima à direita B0 pode estar localizado imediatamente acima e à direita de P0; por exemplo, o candidato acima à direita B0 pode residir no local (P0x+1, P0y-1). Outros locais são possíveis, como será evidente para as pessoas versadas na técnica, após a revisão de toda esta divulgação. A Figura 3 ilustra a Figura 2 com anotação mostrando locais luma incluindo local luma mais superior à esquerda de uma primeira região S0.
[033] Em algumas implementações, e ainda se referindo à Figura 3, quando a construção de uma lista de candidatos para a região S0, alguns candidatos potenciais podem ser automaticamente marcados como indisponíveis e removidos a partir da lista de candidatos porque, onde há divisão geométrica, essa divisão pode ser realizada para dividir regiões (ou objetos) dentro de um quadro que têm diferentes informações de movimento. Consequentemente, pode ser inferido que os blocos associados a esses candidatos provavelmente representam outro objeto com movimento diferente e, portanto, esses candidatos podem ser automaticamente marcados como indisponíveis (por exemplo, não considerados posteriormente, removidos da lista de candidatos e semelhantes). No exemplo ilustrado em referência à Figura 2 acima, para a região S0, um candidato inferior à esquerda A0 pode ser automaticamente marcado como indisponível porque pode ser provável que a região S0 não compartilhe informações de movimento com um bloco localizado no candidato inferior à esquerda A0. Da mesma forma, para a região S0, um candidato superior à direita B0 pode ser automaticamente marcado como indisponível porque é provável que a região S0 não compartilhe informações de movimento com um bloco localizado no candidato superior à direita B0. Em algumas implementações, pode ser determinado se um candidato inferior à esquerda A0 e/ou um candidato superior à direita B0 provável compartilhe informações de movimento ou não avaliando o segmento de linha P0P1 (ou pontos P0, P1), por exemplo, determinando uma inclinação do segmento de linha P0P1, estendendo o segmento de linha no bloco candidato inferior à esquerda A0 e/ou bloco candidato superior à direita B0, e determinar se o candidato inferior à esquerda A0 e/ou candidato superior à direita B0 reside em um mesmo lado do segmento de linha estendida como a primeira região S0.
[034] A Figura 4 é um diagrama ilustrando posições exemplificativas não limitativas de candidatos potenciais de vetor de movimento espacial em relação a uma segunda região (região S1) de um bloco atual exemplificativo 400 dividido de acordo com a divisão geométrica. Candidatos potenciais de vetor de movimento espacial podem ser considerados para a construção de uma lista de candidatos de vetor de movimento durante o modo de AMVP ou o modo de mesclagem. Bloco atual 400 pode ter sido dividido em três regiões S0, S1, e S2, por linhas retas entre os pontos P0, P1 e entre os pontos P2, P3, respectivamente. Cada uma da região S0, região S1, e região S2 pode ser uni ou bidirecionalmente prevista. Exemplos não limitativos de candidatos espaciais para segunda região (região S1) são ilustrados na Figura 4 e incluem um candidato inferior à esquerda A0, um candidato à esquerda A1, um candidato superior à esquerda B2, um candidato superior B1 e um candidato superior à direita B0.
[035] Como ilustrado, e ainda se referindo à Figura 4, cada local (A0, A1, B2, B1 e B0) pode representar um bloco no respectivo local. Por exemplo, um candidato superior à esquerda B2 pode ser um bloco que reside em um local luma que é imediatamente à esquerda e imediatamente acima de um local superior mais à esquerda de região S1; por exemplo, se o local luma de canto superior-esquerdo de S1 for adjacente P0 com coordenadas de local luma (P0x+1, P0y), então, o candidato superior à esquerda B2 pode residir no local (P0x, P0y-1). Um candidato inferior à esquerda A0 está localizado imediatamente abaixo do local inferior mais à esquerda da terceira região (região S2); por exemplo, se um local inferior mais à esquerda da terceira região (região S2) estiver localizado em (0, N-1), então, o candidato inferior à esquerda A0 pode residir no local (0, N). Um candidato à esquerda A1 pode ser localizado imediatamente à esquerda de um local inferior mais à esquerda de terceira região (região S2); por exemplo, o candidato à esquerda A1 pode residir no local (0, N-1). Um candidato superior B1 pode ser localizado imediatamente acima de um local superior mais à direita de região S1; por exemplo, se o local superior mais à direita de região S1 estiver localizado em (M-1, 0), então, B1 pode residir no local (M-1,-1). Um candidato superior à direita B0 pode ser localizado imediatamente acima e à direita de um local superior mais à direita de região S1; por exemplo, o candidato superior à direita B0 pode residir no local (M, -1). A Figura 5 ilustra a Figura 4 com anotação mostrando locais luma incluindo um local luma inferior mais à esquerda de uma terceira região S2 e um local luma superior mais à direita de uma segunda região S1.
[036] Em algumas implementações, e ainda se referindo à Figura 5, quando a construção de uma lista de candidatos para a região S1, alguns candidatos potenciais podem ser automaticamente marcados como indisponíveis e removidos a partir da lista de candidatos porque, há existe divisão geométrica, essa divisão pode ser realizada para dividir regiões (ou objetos) dentro de um quadro que têm diferentes informações de movimento. Consequentemente, pode ser inferido que os blocos associados a esses candidatos provavelmente representam um outro objeto com diferente movimento e, portanto, esses candidatos podem ser automaticamente marcados como indisponíveis (por exemplo, não considerados posteriormente, removidos a partir da lista de candidatos, e semelhantes). Em um exemplo não limitativo ilustrado acima em referência à Figura 4, para a região S1, um candidato superior à esquerda B2 pode ser automaticamente marcado como indisponível porque pode ser provável que a região S1 não compartilhe informações de movimento com um bloco localizado no candidato acima à esquerda B2. Da mesma forma, em algumas implementações, para a região S1, um candidato à esquerda A1 pode ser automaticamente marcado como indisponível porque pode ser provável que a região S1 não compartilhe informações de movimento com um bloco localizado no candidato à esquerda A1, que pode ser terceira região S2. Da mesma forma,
em algumas implementações, para a região S1, um candidato abaixo à esquerda A0 pode ser automaticamente marcado como indisponível porque é provável que a região S1 não compartilhe informações de movimento com um bloco localizado no candidato inferior à esquerda A0, que pode ser abaixo da terceira região S2.
[037] A Figura 6 é um diagrama ilustrando posições exemplificativas de candidatos potenciais de vetor de movimento espacial em relação a uma terceira região (região S2) de um bloco atual exemplificativo 600 dividido de acordo com a divisão geométrica. Candidatos potenciais de vetor de movimento espacial podem ser considerados para a construção de uma lista de candidatos de vetor de movimento durante o modo de AMVP ou o modo de mesclagem. Bloco atual 600 pode ser dividido em três regiões S0, S1, e S2, por linhas retas entre os pontos P0, P1 e entre os pontos P2, P3, respectivamente. Cada uma da região S0, região S1, e região S2 pode ser uni ou bidirecionalmente prevista. Exemplos não limitativos de candidatos espaciais para terceira região (região S2) são ilustrados na Figura 6 e podem incluir um candidato inferior à esquerda A0, um candidato à esquerda A1, um candidato superior à esquerda B2, um candidato superior B1 e um candidato superior à direita B0.
[038] Como ilustrado, e ainda se referindo à Figura 6, cada local (A0, A1, B2, B1 e B0) pode representar um bloco no respectivo local. Por exemplo, um candidato superior à esquerda pode ser um bloco que reside em um local luma que é acima e à esquerda de região S2; por exemplo, o candidato superior à esquerda B2 pode ser a primeira região S0. Se S0 estiver localizado em (0,0), então, candidato superior à esquerda B2 pode estar localizado em (0,0). Um candidato inferior à esquerda A0 pode ser localizado imediatamente à esquerda e imediatamente abaixo de um local inferior mais à esquerda de região S2; por exemplo, se o local inferior mais à esquerda de região S2 estiver localizado em (0, N-1), então o candidato inferior à esquerda A0 pode residir em (-1, N). Um candidato à esquerda A1 pode ser localizado imediatamente à esquerda de um local inferior mais à esquerda de região S2; por exemplo, o candidato à esquerda A1 pode residir em (-1, N-1). Um candidato superior B1 pode ser localizado acima e à esquerda de região S2, que pode ser ponto adjacente P1; por exemplo, se P1 estiver localizado em (P1x, P1y), então o candidato superior B1 pode estar localizado em (P1x-1, P1y). Um candidato superior à direita B0 pode ser um bloco que reside em um local luma que é acima e à direita de região S2; por exemplo, o candidato superior à direita B0 pode ser a segunda região S1. Por exemplo, um candidato superior à direita pode ser localizado em um local superior mais à direita de S1, que pode residir em (M-1, 0). A Figura 7 ilustra a Figura 6 com anotação mostrando locais luma incluindo um local luma inferior mais à esquerda de uma terceira região S2 e um local luma superior mais à direita de uma segunda região S1.
[039] Em algumas implementações, e ainda se referindo à Figura 7, quando a construção de uma lista de candidatos para a região S2, alguns candidatos potenciais podem ser automaticamente marcados como indisponíveis e removidos a partir da lista de candidatos porque, há divisão geométrica, essa divisão pode ser realizada para dividir regiões (ou objetos) dentro de um quadro que têm diferentes informações de movimento. Consequentemente, pode ser inferido que os blocos associados a esses candidatos provavelmente representam um outro objeto com diferente movimento e, portanto, esses candidatos podem ser automaticamente marcados como indisponível (por exemplo, não considerados posteriormente, removidos a partir da lista de candidatos, e semelhantes). Em um exemplo não limitativo fornecido acima na Figura 6, para a região S2, um candidato superior à esquerda B2 pode ser automaticamente marcado como indisponível porque é provável que a região S2 não compartilhe informações de movimento com um bloco localizado no candidato acima à esquerda B2 (por exemplo, S0). Da mesma forma, em algumas implementações, para a região S2, um candidato superior à direita A0 pode ser automaticamente marcado como indisponível porque é provável que a região S2 não compartilhe informações de movimento com um bloco localizado no candidato à esquerda B0, que pode ser segunda região S1. Da mesma forma, em algumas implementações, para a região S2, um candidato acima B1 pode ser automaticamente marcado como indisponível porque é provável que a região S2 não compartilhe informações de movimento com um bloco localizado no candidato superior B1, que é à esquerda de primeira região S0.
[040] A Figura 8 é um diagrama de bloco de sistema ilustrando um codificador de vídeo exemplificativo 800 com a capacidade de codificar um vídeo usando interpredição com divisão geométrica com um número adaptativo de regiões. Codificador de vídeo exemplificativo 800 recebe um vídeo de entrada 805, que pode ser inicialmente segmentado ou dividido de acordo com um esquema de processamento, como um esquema de divisão de macrobloco estruturado em árvore (por exemplo, árvore quádrupla mais árvore binária). Um exemplo de um esquema de divisão de macrobloco estruturado em árvore pode incluir dividir um quadro de imagem em grandes elementos de bloco chamados unidades de árvore de codificação (CTU). Em algumas implementações, cada CTU pode ser ainda dividida uma ou mais vezes em vários sub-blocos chamados unidades de codificação (CU). Um resultado final dessa divisão pode incluir um grupo de sub- blocos que podem ser chamados unidades preditivas (PU). Unidades de transformada (TU) também podem ser utilizadas. Um tal esquema de divisão pode incluir realizar a divisão geométrica com um número adaptativo de regiões de acordo com alguns aspectos da matéria atual.
[041] Ainda se referindo à Figura 8, o codificador de vídeo exemplificativo 800 pode incluir um processador de intrapredição 815, um processador de estimativa/compensação de movimento 820 (também denominado como um processador de interpredição) com a capacidade de suportar divisão geométrica com um número adaptativo de regiões incluindo modo de AMVP e modo de mesclagem, um processador de transformada/quantização 825, um processador de quantização inversa/transformada inversa 830, um filtro in-loop 835, um armazenamento de imagem decodificada 840, e um processador de codificação por entropia 845. Em algumas implementações, o processador de estimativa/compensação de movimento 820 pode realizar divisão geométrica com um número adaptativo de regiões incluindo uso de modo de AMVP e modo de mesclagem. Parâmetros de fluxo de bits que sinalizam modos de divisão geométrica, modo de AMVP, e modo de mesclagem podem ser inseridos no processador de codificação por entropia 845 para inclusão em um fluxo de bits de saída 850.
[042] Em operação, e ainda se referindo à Figura 8, para cada bloco de um quadro de vídeo de entrada 805, pode-se determinar se para processar o bloco por meio de previsão intraimagem ou usando estimativa/compensação de movimento. Um bloco pode ser fornecido para o processador de intrapredição 810 ou processador de estimativa/compensação de movimento 820. Se bloco for processado por meio de intrapredição, processador de intrapredição 810 pode realizar processamento para o preditor de saída. Se bloco for processado por meio de estimativa/compensação de movimento, processador de estimativa/compensação de movimento 820 pode realizar o processamento incluindo uso de divisão geométrica com modo de AMVP e modo de mesclagem para gerar o preditor.
[043] Com referência contínua à Figura 8, um residual pode ser formado subtraindo o preditor do vídeo de entrada. Residual pode ser recebido pelo processador de transformada/quantização 825, que pode realizar processamento de transformada (por exemplo, transformada de cosseno discreta (DCT)) para produzir coeficientes, que podem ser quantizados. Coeficientes quantizados e qualquer informação de sinalização associada podem ser fornecidos ao processador de codificação por entropia 845 para codificação por entropia e inclusão em fluxo de bits de saída 850. Processador de codificação por entropia 845 pode suportar codificação de informação de sinalização relacionada ao modo de divisão geométricas, modo de AMVP, e modo de mesclagem. Além disso, os coeficientes quantizados podem ser fornecidos para quantização inversa/transformada inversa processador 830, que podem reproduzir pixels, que podem ser combinados com preditor e processados por filtro in-loop 835, uma saída do qual pode ser armazenada no armazenamento de imagem decodificada 840 para o uso pelo processador de estimativa/compensação de movimento 820 que é com a capacidade de suportar modos de divisão geométrica, modo de AMVP, e modo de mesclagem.
[044] A Figura 9 é um diagrama de fluxo de processo ilustrando um processo exemplificativo 300 de codificar um vídeo com divisão geométrica uma interpredição de acordo com alguns aspectos da matéria atual que pode reduzir a complexidade de codificação enquanto aumenta a eficiência de compressão. Na etapa 910, um quadro de vídeo pode sofrer segmentação de bloco inicial, por exemplo, usando um esquema de divisão de macrobloco estruturado em árvore que pode incluir dividir um quadro de imagem em CTUs e CUs. Em 920, um bloco pode ser selecionado para divisão geométrica com um número adaptativo de regiões. Seleção pode incluir a identificação de acordo com uma regra métrica que bloco deve ser processado de acordo com um modo de divisão geométrica.
[045] Na etapa 930, e ainda se referindo à Figura 9, uma divisão geométrica com três ou mais regiões pode ser determinada. Pelo menos dois segmentos de linha podem ser determinados para separar os pixels contidos dentro do bloco de acordo com seu movimento entre quadros em três ou mais regiões (por exemplo, região 0, região 1 e região 2) de modo que pixels (por exemplo, amostras de luma) dentro cada uma das respectivas regiões tem movimento semelhante, que pode ser diferente do movimento dos pixels dentro de outras regiões (por exemplo, região 1).
[046] Na etapa 940, e com referência contínua à Figura 9, informação de movimento de cada região pode ser determinada e processada usando modo de AMVP ou modo de mesclagem. Quando processamento uma região usando modo de AMVP, uma lista de candidatos pode ser construída considerando tanto candidatos espaciais quanto temporais, que podem incluir candidatos espaciais descrito acima, e que podem incluir marcar alguns candidatos como indisponíveis. Um vetor de movimento pode ser selecionado a partir de uma lista de candidatos de vetor de movimento como uma predição de vetor de movimento e uma diferença de vetor de movimento (por exemplo, residual) pode ser calculada. Um índice na lista de candidatos pode ser determinado. No modo de mesclagem, uma lista de candidatos pode ser construída considerando tanto candidatos espaciais quanto temporais, que podem incluir candidatos espaciais como descrito acima, e que podem incluir marcar alguns candidatos como indisponíveis. Um vetor de movimento pode ser selecionado a partir de uma lista de candidatos de vetor de movimento para uma região para adotar informação de movimento de um outro bloco. Um índice na lista de candidatos pode ser determinado.
[047] Na etapa 950, e ainda se referindo à Figura 9, uma determinada divisão geométrica e informação de movimento podem ser sinalizadas em um fluxo de bits. A sinalização de divisão geométricas no fluxo de bits pode incluir, por exemplo, incluindo locais de P0, P1, P2, P3; um índice em um ou mais modelos predeterminados; e semelhantes. A sinalização de informações de movimento ao processar uma região usando AMVP pode incluir a diferença do vetor de movimento (por exemplo, residual) e o índice em uma lista de candidatos de vetor de movimento em fluxo de bits. A sinalização de informações de movimento ao processar uma região usando o modo de mesclagem pode incluir a inclusão de um índice em uma lista de candidatos de vetor de movimento em fluxo de bits.
[048] A Figura 10 é um diagrama de bloco de sistema ilustrando um decodificador exemplificativo 1000 com a capacidade de decodificar um fluxo de bits 1070 usando interpredição e divisão geométrica com um número adaptativo de regiões, que pode melhorar a complexidade e o desempenho de processamento para codificação e decodificação de vídeo. Decodificador 1000 pode incluir um processador de decodificador por entropia 1010, um processador de quantização inversa e transformada inversa 1020, um filtro de desbloqueio 1030, um armazenamento de quadro 1040, compensação de movimento processador 1050 e processador de intrapredição 1060. Em algumas implementações, o fluxo de bits 1070 pode incluir parâmetros que sinalizam um modo de divisão geométrica, modo de AMVP, e/ou modo de mesclagem. Processador de compensação de movimento 1050 pode reconstruir informações de pixel usando divisão geométrica como descrito aqui.
[049] Em operação, e ainda se referindo à Figura 10, fluxo de bits 1070 pode ser recebido pelo decodificador 1000 e entrada para processador de decodificador por entropia 1010, que pode decodificar fluxo de bits por entropia em coeficientes quantizados. Coeficientes quantizados podem ser fornecidos ao processador de quantização inversa e transformada inversa 1020, que pode realizar quantização inversa e transformada inversa para criar um sinal residual. Sinal residual pode ser adicionado à saída do processador de compensação de movimento 1050 ou processador de intrapredição 1060 de acordo com o modo de processamento. Uma saída de processador de compensação de movimento 1050 e processador de intrapredição 1060 pode incluir uma predição de bloco com base em um bloco previamente decodificado. Uma soma de predição e residual pode ser processada pelo filtro de desbloqueio 1030 e armazenada em um armazenamento de quadro 1040. Para um determinado bloco, (por exemplo, CU ou PU), quando o fluxo de bits 1070 sinaliza que o modo de divisão é divisão geométrica, processador de compensação de movimento 1050 pode construir predição com base no método de divisão geométrica descrito aqui.
[050] A Figura 11 é um diagrama de fluxo de processo ilustrando um processo exemplificativo 1100 de decodificar um fluxo de bits usando interpredição em divisão geométrica com um número adaptativo de regiões, que pode melhorar a complexidade e o desempenho de processamento para codificação e decodificação de vídeo. Na etapa 1110, um fluxo de bits é recebido, que pode incluir um bloco atual (por exemplo, CTU, CU, PU). O recebimento pode incluir extrair e/ou analisar o bloco atual e as informações de sinalização associadas do fluxo de bits. O decodificador pode extrair ou determinar um ou mais parâmetros que caracterizam a divisão geométrica. Esses parâmetros podem incluir, por exemplo, índices de um início e fim de um segmento de linha (por exemplo, P0, P1, P2, P3). A extração ou determinação pode incluir a identificação e recuperação de parâmetros do fluxo de bits (por exemplo, analisar o fluxo de bits).
[051] Na etapa 1120, e ainda se referindo à Figura 11, uma primeira região, uma segunda região e uma terceira região do bloco atual podem ser determinadas e de acordo com um modo de divisão geométrica. A determinação pode incluir determinar se modo de divisão geométrica está habilitado (por exemplo, verdadeiro) para o bloco atual. Se modo de divisão geométrica estiver não habilitado (por exemplo, false), decodificador pode processar o bloco usando um modo de divisão alternativo. Se o modo de divisão geométrica estiver habilitado (por exemplo, verdadeiro), três ou mais regiões podem ser determinadas e/ou processadas.
[052] Na etapa 1130, e ainda se referindo à Figura 11, um vetor de movimento associado com uma região de primeira região, segunda região, e terceira região pode ser determinada. A determinação do vetor de movimento pode incluir determinar se informação de movimento de região deve ser determinada usando modo de AMVP ou modo de mesclagem. Ao processar uma região usando modo de AMVP, uma lista de candidatos pode ser construída considerando tanto candidatos espaciais quanto temporais, que pode incluir candidatos espaciais descrito acima, e que pode incluir marcar alguns candidatos como indisponíveis. Um vetor de movimento pode ser selecionado a partir de uma lista de candidatos de vetor de movimento como uma predição de vetor de movimento; uma diferença de vetor de movimento (por exemplo, residual) pode ser calculada. No modo de mesclagem, a determinação pode incluir a construção de uma lista de candidatos de candidatos espaciais e candidatos temporais para cada região. A construção de uma lista de candidatos pode incluir automaticamente marcar candidatos como indisponíveis e remover candidatos indisponíveis a partir da lista de candidatos. Um índice na lista de candidatos construída pode ser analisado a partir do fluxo de bits e usado para selecionar um candidato final da lista de candidatos. As informações de movimento para uma região atual podem ser determinadas como sendo as mesmas que as informações de movimento de um candidato final (por exemplo, o vetor de movimento para a região pode ser adotado do candidato final).
[053] Ainda se referindo à Figura 11, na etapa 1140, um bloco atual pode ser decodificado usando um determinado vetor de movimento.
[054] Embora algumas variações tenham sido descritas em detalhes acima, outras modificações ou adições são possíveis. Por exemplo, a divisão geométrica pode ser sinalizada em um fluxo de bits com base nas decisões de taxa de distorção em um codificador. Codificação pode ser com base em uma combinação de divisões pré-definidas regulares (por exemplo, modelos), previsão temporal e espacial da divisão, e/ou deslocamentos adicionais. Cada região geometricamente dividida pode utilizar predição compensada de movimento ou intraprevisão. Um limite de regiões previstas pode ser suavizado antes que um resíduo seja adicionado.
[055] Em algumas implementações, uma árvore quádrupla mais árvore de decisão binária (QTBT) pode ser implementada. Em QTBT, em um nível de unidade de árvore de codificação, parâmetros de divisão de QTBT podem ser derivados dinamicamente para se adaptar às características locais sem transmitir qualquer sobrecarga. Subsequentemente, no Nível de unidade de codificação, uma estrutura de árvore de decisão do classificador conjunto pode eliminar iterações desnecessárias e controlar o risco de falsa previsão. Em algumas implementações, divisão geométrica com um número adaptativo de regiões pode estar disponível como uma opção de divisão adicional disponível em cada nó folha de QTBT.
[056] Em algumas implementações, um decodificador pode incluir um processador de divisão que gera uma divisão geométrica para um bloco atual e fornece todas as informações relacionadas à divisão para processos dependentes. Processador de divisão pode influenciar diretamente a compensação de movimento, pois pode ser realizada por segmento, no caso de um bloco ser geometricamente dividido. Além disso, o processador de divisão pode fornecer informações de forma para um processador de intrapredição e processador de codificação de transformada.
[057] Em algumas implementações, elementos de sintaxe adicionais podem ser sinalizados em diferentes níveis de hierarquia de um fluxo de bits. Para permitir a divisão geométrica com um número adaptativo de regiões para uma sequência inteira, um sinalizador de ativação pode ser codificado em um Conjunto de Parâmetros de Sequência (SPS). Além disso, um sinalizador CTU pode ser codificado no nível da unidade de árvore de codificação (CTU) para indicar se quaisquer unidades de codificação (CU) usam divisão geométrica com um número adaptativo de regiões. Um sinalizador CU pode ser codificado para indicar se a unidade de codificação atual utiliza divisão geométrica com um número adaptativo de regiões. Os parâmetros que especificam o segmento de linha no bloco podem ser codificados. Para cada região, um sinalizador pode ser decodificado, o que pode especificar se a região atual é inter ou intraprevista.
[058] Em algumas implementações, um tamanho mínimo de região pode ser especificado.
[059] A matéria descrita neste documento fornece muitas vantagens técnicas. Por exemplo, algumas implementações da matéria atual podem fornecer divisão de blocos que reduz a complexidade enquanto aumenta a eficiência de compressão. Em algumas implementações, os artefatos de bloqueio nos limites do objeto podem ser reduzidos.
[060] Deve-se notar que qualquer um ou mais dos aspectos e modalidades aqui descritos podem ser convenientemente implementados usando conjunto de circuitos eletrônicos digitais, conjunto de circuitos integrados, circuitos integrados específicos de aplicação especialmente concebidos (ASICs), matrizes de portas programáveis em campo (FPGAs) computador hardware, firmware, software e/ou combinações dos mesmos, conforme realizado e/ou implementado em uma ou mais máquinas (por exemplo, um ou mais dispositivos de computação que são utilizados como um dispositivo de computação do usuário para um documento eletrônico, um ou mais dispositivos de servidor, tal como um servidor de documentos, etc.) programado de acordo com os ensinamentos do presente relatório descritivo, como será evidente para aquelas pessoas versadas na técnica da computação. Esses vários aspectos ou recursos podem incluir a implementação em um ou mais programas de computador e/ou software que são executáveis e/ou interpretáveis em um sistema programável, incluindo pelo menos um processador programável, que pode ser especial ou de propósito geral, acoplado para receber dados e instruções de e para transmitir dados e instruções para um sistema de armazenamento, pelo menos um dispositivo de entrada e pelo menos um dispositivo de saída. A codificação de software apropriada pode ser prontamente preparada por programadores qualificados com base nos ensinamentos da presente divulgação, como será evidente para aquelas pessoas versadas na técnica de software. Aspectos e implementações discutidos acima empregando software e/ou módulos de software também podem incluir hardware apropriado para auxiliar na implementação das instruções executáveis por máquina do software e/ou módulo de software.
[061] Tal software pode ser um produto de programa de computador que emprega um meio de armazenamento legível por máquina. Um meio de armazenamento legível por máquina pode ser qualquer meio que seja com a capacidade de armazenar e/ou codificar uma sequência de instruções para execução por uma máquina (por exemplo, um dispositivo de computação) e que faz com que a máquina execute qualquer uma das metodologias e/ou modalidades aqui descritas. Exemplos de um meio de armazenamento legível por máquina incluem, porém sem limitação, um disco magnético, um disco óptico (por exemplo, CD, CD-R, DVD, DVD-R, etc.), um disco magneto-óptico, uma leitura - dispositivo "ROM" apenas de memória, um dispositivo "RAM" de memória de acesso aleatório, um cartão magnético, um cartão óptico, um dispositivo de memória de estado sólido, uma EPROM, uma EEPROM, Dispositivos Lógicos Programáveis (PLDs) e/ou quaisquer combinações dos mesmos. Um meio legível por máquina, tal como aqui utilizado, destina-se a incluir um único meio, bem como uma coleção de mídia fisicamente separada, como, por exemplo, uma coleção de discos compactos ou uma ou mais unidades de disco rígido em combinação com uma memória do computador. Conforme usado neste documento, um meio de armazenamento legível por máquina não inclui formas transitórias de transmissão de sinal.
[062] Tal software também pode incluir informações (por exemplo, dados) transportadas como um sinal de dados em uma portadora de dados, como uma onda portadora. Por exemplo, as informações executáveis por máquina podem ser incluídas como um sinal de transporte de dados incorporado em uma portadora de dados em que o sinal codifica uma sequência de instrução, ou parte dela, para execução por uma máquina (por exemplo, um dispositivo de computação) e qualquer informações (por exemplo, estruturas de dados e dados) que fazem com que a máquina execute qualquer uma das metodologias e/ou modalidades aqui descritas.
[063] Exemplos de um dispositivo de computação incluem, mas não estão limitados a, um dispositivo de leitura de livro eletrônico, uma estação de trabalho de computador, um computador terminal, um computador servidor, um dispositivo portátil (por exemplo, um computador tipo tablet, um smartphone, etc.) , um dispositivo da web, um roteador de rede, um comutador de rede, uma ponte de rede, qualquer máquina com a capacidade de executar uma sequência de instruções que especificam uma ação a ser realizada por essa máquina e quaisquer combinações das mesmas. Em um exemplo, um dispositivo de computação pode incluir e/ou ser incluído em um quiosque.
[064] A Figura 12 mostra uma representação diagramática de uma modalidade de um dispositivo de computação na forma exemplificativa de um sistema de computador 1200 dentro do qual um conjunto de instruções para fazer com que um sistema de controle execute qualquer um ou mais dos aspectos e/ou metodologias da presente divulgação pode ser executado. Também é contemplado que vários dispositivos de computação podem ser utilizados para implementar um conjunto especialmente configurado de instruções para fazer com que um ou mais dos dispositivos executem qualquer um ou mais dos aspectos e/ou metodologias da presente divulgação. O sistema de computador 1200 inclui um processador 1204 e uma memória 1208 que se comunicam entre si e com outros componentes, por meio de um barramento 1212. O barramento
1212 pode incluir qualquer um dos vários tipos de estruturas de barramento, incluindo, mas não se limitando a, um barramento de memória, um controlador de memória, um barramento periférico, um barramento local e quaisquer combinações dos mesmos, usando qualquer uma de uma variedade de arquiteturas de barramento.
[065] A memória 1208 pode incluir vários componentes (por exemplo, mídia legível por máquina) incluindo, mas não se limitando a, um componente de memória de acesso aleatório, um componente somente leitura e quaisquer combinações dos mesmos. Em um exemplo, um sistema de entrada/saída básico 1216 (BIOS), incluindo rotinas básicas que ajudam a transferir informações entre elementos dentro do sistema de computador 1200, tal como durante a inicialização, pode ser armazenado na memória 1208. A memória 1208 também pode incluir (por exemplo, armazenado em uma ou mais mídias legíveis por máquina) instruções (por exemplo, software) 1220 incorporando qualquer um ou mais dos aspectos e/ou metodologias da presente divulgação. Em outro exemplo, a memória 1208 pode incluir ainda qualquer número de módulos de programa, incluindo, mas não se limitando a, um sistema operacional, um ou mais programas de aplicativo, outros módulos de programa, dados de programa e quaisquer combinações dos mesmos.
[066] O sistema de computador 1200 também pode incluir um dispositivo de armazenamento 1224. Exemplos de um dispositivo de armazenamento (por exemplo, dispositivo de armazenamento 1224) incluem, porém sem limitação, uma unidade de disco rígido, uma unidade de disco magnético, uma unidade de disco óptico em combinação com um meio óptico, um dispositivo de memória de estado sólido e quaisquer combinações dos mesmos. O dispositivo de armazenamento 1224 pode ser conectado ao barramento 1212 por uma interface apropriada (não mostrada). Interfaces de exemplo incluem, porém sem limitação, SCSI, conexão de tecnologia avançada (ATA), ATA serial, barramento serial universal (USB), IEEE 1394 (FIREWIRE) e quaisquer combinações dos mesmos. Em um exemplo, o dispositivo de armazenamento 1224 (ou um ou mais componentes do mesmo) pode ter interface removível com o sistema de computador 1200 (por exemplo, através de um conector de porta externa (não mostrado)). Particularmente, o dispositivo de armazenamento 1224 e um meio legível por máquina associado 1228 podem fornecer armazenamento não volátil e/ou volátil de instruções legíveis por máquina, estruturas de dados, módulos de programa e/ou outros dados para o sistema de computador 1200. Em um exemplo, o software 1220 pode residir, completa ou parcialmente, dentro do meio legível por máquina 1228. Em outro exemplo, o software 1220 pode residir, completa ou parcialmente, dentro do processador 1204.
[067] O sistema de computador 1200 também pode incluir um dispositivo de entrada 1232. Em um exemplo, um usuário do sistema de computador 1200 pode inserir comandos e/ou outras informações no sistema de computador 1200 via dispositivo de entrada 1232. Exemplos de um dispositivo de entrada 1232 incluem, mas não estão limitados a um dispositivo de entrada alfanumérico (por exemplo, um teclado), um dispositivo apontador, um joystick, um gamepad, um dispositivo de entrada de áudio (por exemplo, um microfone, um sistema de resposta de voz, etc.), um dispositivo de controle de cursor (por exemplo, um mouse), um touchpad, um scanner óptico, um dispositivo de captura de vídeo (por exemplo, uma câmera fotográfica, uma câmera de vídeo), uma tela sensível ao toque e quaisquer combinações dos mesmos. O dispositivo de entrada 1232 pode ter interface com o barramento 1212 por meio de uma variedade de interfaces (não mostradas), incluindo, mas não se limitando a, uma interface serial, uma interface paralela, uma porta de jogo, uma interface USB, uma interface FIREWIRE, uma interface direta para o barramento 1212, e quaisquer combinações dos mesmos. O dispositivo de entrada 1232 pode incluir uma interface de tela de toque que pode ser uma parte ou separada da tela 1236, discutida mais abaixo. O dispositivo de entrada 1232 pode ser utilizado como um dispositivo de seleção de usuário para selecionar uma ou mais representações gráficas em uma interface gráfica, conforme descrito acima.
[068] Um usuário também pode inserir comandos e/ou outras informações para o sistema de computador 1200 através do dispositivo de armazenamento 1224 (por exemplo, uma unidade de disco removível, uma unidade flash, etc.) e/ou dispositivo de interface de rede 1240. Um dispositivo de interface de rede, tal como o dispositivo de interface de rede 1240, pode ser utilizado para conectar o sistema de computador 1200 a uma ou mais de uma variedade de redes, como a rede 1244 e um ou mais dispositivos remotos 1248 conectados à mesma. Exemplos de um dispositivo de interface de rede incluem, porém sem limitação, uma placa de interface de rede (por exemplo, uma placa de interface de rede móvel, uma placa LAN), um modem e qualquer combinação dos mesmos. Exemplos de uma rede incluem, mas não estão limitados a, uma rede de área ampla (por exemplo, a Internet, uma rede corporativa), uma rede de área local (por exemplo, uma rede associada a um escritório, um prédio, um campus ou outro relativamente pequeno espaço geográfico), uma rede telefônica, uma rede de dados associada a um provedor de telefone/voz (por exemplo, um provedor de comunicações móveis de dados e/ou rede de voz), uma conexão direta entre dois dispositivos de computação e quaisquer combinações dos mesmos. Uma rede, como a rede 1244, pode empregar um modo de comunicação com fio e/ou sem fio. Em geral, qualquer topologia de rede pode ser usada. As informações (por exemplo, dados, software 1220, etc.) podem ser comunicadas para e/ou do sistema de computador 1200 através do dispositivo de interface de rede 1240.
[069] O sistema de computador 1200 pode ainda incluir um adaptador de exibição de vídeo 1252 para comunicar uma imagem exibível a um dispositivo de exibição, como o dispositivo de exibição 1236. Exemplos de um dispositivo de exibição incluem, porém sem limitação, uma tela de cristal líquido (LCD), um tubo de raios catódicos (CRT), um monitor de plasma, um monitor de diodo emissor de luz (LED) e quaisquer combinações dos mesmos. O adaptador de exibição 1252 e o dispositivo de exibição 1236 podem ser utilizados em combinação com o processador 1204 para fornecer representações gráficas de aspectos da presente divulgação. Além de um dispositivo de exibição, o sistema de computador 1200 pode incluir um ou mais outros dispositivos de saída periféricos incluindo, mas não se limitando a, um alto-falante de áudio, uma impressora e quaisquer combinações dos mesmos. Tais dispositivos de saída periférica podem ser conectados ao barramento 1212 por meio de uma interface periférica 1256. Exemplos de uma interface periférica incluem, porém sem limitação, uma porta serial, uma conexão USB, uma conexão FIREWIRE, uma conexão paralela e quaisquer combinações dos mesmos.
[070] O anterior foi uma descrição detalhada de modalidades ilustrativas da invenção. Várias modificações e adições podem ser feitas sem se afastar do espírito e do escopo desta invenção. Características de cada uma das várias modalidades descritas acima podem ser combinadas com características de outras modalidades descritas, conforme apropriado, a fim de fornecer uma multiplicidade de combinações de recursos em novas modalidades associadas. Além disso, embora o anterior descreva uma série de modalidades separadas, o que foi descrito neste documento é meramente ilustrativo da aplicação dos princípios da presente invenção. Além disso, embora métodos particulares neste documento possam ser ilustrados e/ou descritos como sendo realizados em uma ordem específica, a ordenação é altamente variável dentro de uma habilidade comum para alcançar modalidades como aqui divulgadas. Consequentemente, esta descrição deve ser tomada apenas a título de exemplo, e não para limitar o escopo desta invenção.
[071] Nas descrições acima e nas reivindicações, frases como “pelo menos um de” ou “um ou mais de” podem ocorrer seguidas por uma lista conjuntiva de elementos ou características. O termo “e/ou” também pode ocorrer em uma lista de dois ou mais elementos ou recursos. A menos que de outra forma implícita ou explicitamente contradito pelo contexto em que é usado, tal frase se destina a significar qualquer um dos elementos ou recursos listados individualmente ou qualquer um dos elementos ou recursos recitados em combinação com qualquer um dos outros elementos ou recursos recitados. Por exemplo, as frases “pelo menos um de A e B”; “Um ou mais de A e B”; e “A e/ou B” significam, cada um, “A sozinho, B sozinho ou A e B juntos.” Uma interpretação semelhante também se destina a listas que incluem três ou mais itens. Por exemplo, as frases “pelo menos um de A, B e C;” “Um ou mais de A, B e C”; e “A, B e/ou C” significam, cada um, “A sozinho, B sozinho, C sozinho, A e B juntos, A e C juntos, B e C juntos, ou A e B e C juntos.” Além disso, o uso do termo “com base em”, acima e nas reivindicações, pretende significar “com base pelo menos em parte em”, de modo que um recurso ou elemento não recitado também seja permitido.
[072] A matéria descrita neste documento pode ser incorporada em sistemas, aparelhos, métodos e/ou artigos, dependendo da configuração desejada. As implementações estabelecidas na descrição anterior não representam todas as implementações consistentes com a matéria descrita aqui. Em vez disso, são apenas alguns exemplos consistentes com aspectos relacionados à matéria descrita. Embora algumas variações tenham sido descritas em detalhes acima, outras modificações ou acréscimos são possíveis. Em particular, outros recursos e/ou variações podem ser fornecidos além daqueles aqui estabelecidos. Por exemplo, as implementações descritas acima podem ser direcionadas a várias combinações e subcombinações dos recursos divulgados e/ou combinações e subcombinações de vários recursos adicionais divulgados acima. Além disso, os fluxos lógicos representados nas figuras anexas e/ou descritos neste documento não requerem necessariamente a ordem particular mostrada, ou ordem sequencial, para atingir os resultados desejáveis. Outras implementações podem estar dentro do escopo das seguintes reivindicações.

Claims (46)

REIVINDICAÇÕES
1. DECODIFICADOR, sendo que o decodificador é caracterizado pelo fato de que compreende conjunto de circuitos configurado para: receber um fluxo de bits; dividir um bloco atual por meio de um modo de divisão geométrica em uma primeira região, uma segunda região e uma terceira região; determinar um vetor de movimento associado com uma região da primeira região, da segunda região e da terceira região, em que a determinação inclui ainda a construção de uma lista de candidatos; e decodificar o bloco atual usando o vetor de movimento determinado.
2. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que a construção da lista de candidatos inclui avaliar um candidato abaixo à esquerda, um candidato à esquerda, um candidato acima à esquerda, um candidato acima, e um candidato acima à direita.
3. DECODIFICADOR, de acordo com a reivindicação 2, caracterizado pelo fato de que: o vetor de movimento determinado é para a primeira região; o modo de divisão geométrica inclui um segmento de linha entre um primeiro local luma e um segundo local luma; o candidato abaixo à esquerda está localizado em um terceiro local luma imediatamente à esquerda e imediatamente abaixo do segundo local luma; o candidato à esquerda está localizado em um quarto local luma imediatamente à esquerda do segundo local luma; o candidato acima à esquerda está localizado em um quinto local luma imediatamente acima e imediatamente à esquerda de um local luma mais superior à esquerda da primeira região; o candidato acima está localizado em um sexto local luma imediatamente acima do primeiro local luma; e o candidato acima à direita está localizado em um sétimo local luma imediatamente acima e à direita do primeiro local luma.
4. DECODIFICADOR, de acordo com a reivindicação 2, caracterizado pelo fato de que: o vetor de movimento determinado é para a segunda região; o modo de divisão geométrica inclui um segmento de linha entre um primeiro local luma e um segundo local luma; o candidato abaixo à esquerda está localizado em um terceiro local luma imediatamente à esquerda e imediatamente abaixo de um local luma inferior mais à esquerda da terceira região; o candidato à esquerda está localizado em um quarto local luma imediatamente à esquerda do local luma inferior mais à esquerda da terceira região; o candidato acima à esquerda está localizado em um quinto local luma imediatamente acima do primeiro local; o candidato acima está localizado em um sexto local luma imediatamente acima um local luma superior mais à direita da segunda região; e o candidato acima à direita está localizado em um sétimo local luma imediatamente acima e à direita do local luma superior mais à direita da segunda região.
5. DECODIFICADOR, de acordo com a reivindicação 2, caracterizado pelo fato de que: o vetor de movimento determinado é para a terceira região; o modo de divisão geométrica inclui um segmento de linha entre um primeiro local luma e um segundo local luma; o candidato abaixo à esquerda está localizado em um terceiro local luma imediatamente à esquerda e imediatamente abaixo de um local luma inferior mais à esquerda da terceira região; o candidato à esquerda está localizado em um quarto local luma imediatamente à esquerda do local luma inferior mais à esquerda da terceira região; o candidato acima à esquerda está localizado em um quinto local luma colocalizado com a primeira região; o candidato acima está localizado em um sexto local luma imediatamente à esquerda do segundo local; e o candidato acima à direita está localizado em um sétimo local luma que é colocado com a segunda região.
6. DECODIFICADOR, de acordo com a reivindicação 2, caracterizado pelo fato de que o vetor de movimento determinado é para a segunda região, sendo que o decodificador é ainda configurado para marcar um candidato como indisponível em resposta à determinação que o candidato é colocalizado com a terceira região.
7. DECODIFICADOR, de acordo com a reivindicação 2, caracterizado pelo fato de que: o vetor de movimento determinado é para a segunda região; e o decodificador é ainda configurado para automaticamente marcar o candidato superior à esquerda como indisponível em resposta à determinação que o modo de divisão geométrica está habilitado.
8. DECODIFICADOR, de acordo com a reivindicação 2, caracterizado pelo fato de que: o vetor de movimento determinado é para a terceira região; e o decodificador é ainda configurado para automaticamente marcar o candidato superior à direita como indisponível em resposta à determinação que o modo de divisão geométrica está habilitado.
9. DECODIFICADOR, de acordo com a reivindicação 2, caracterizado pelo fato de que: o vetor de movimento determinado é para a terceira região; e o decodificador é ainda configurado para automaticamente marcar o candidato superior à esquerda como indisponível em resposta à determinação que o modo de divisão geométrica está habilitado.
10. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda é configurado para determinar que um modo de mesclagem está habilitado para a primeira região.
11. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda é configurado para determinar que um modo de predição de vetor de movimento avançado está habilitado para a primeira região.
12. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda é configurado para reconstruir dados de pixel do bloco atual.
13. DECODIFICADOR, de acordo com a reivindicação 12, caracterizado pelo fato de que a primeira região e a segunda região não são retangulares.
14. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o modo de divisão geométrica é sinalizado no fluxo de bits.
15. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de dividir o bloco atual por meio do modo de divisão geométrica na primeira região, na segunda região, e na terceira região inclui dividir o bloco atual com um segmento de linha compreendendo um primeiro local luma e um segundo local luma.
16. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda é configurado para: determinar se o modo de divisão geométrica está habilitado; determinar um primeiro segmento de linha para o bloco atual; e determinar um segundo segmento de linha para o bloco atual; em que: a decodificação do bloco atual inclui reconstruir dados de pixel usando o primeiro segmento de linha e o segundo segmento de linha; e o primeiro segmento de linha e o segundo segmento de linha dividem o bloco atual na primeira região, na segunda região, e na terceira região.
17. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o modo de divisão geométrica está disponível para tamanhos de bloco maiores ou iguais a amostras luma de 64x64 ou 128x128.
18. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: um processador de decodificador por entropia configurado para receber o fluxo de bits e decodificar o fluxo de bits em coeficientes quantizados;
um processador de quantização inversa e transformada inversa configurado para processar os coeficientes quantizados incluindo realizar uma transformada de cosseno discreta inversa; um filtro de desbloqueio; um armazenamento de quadro; e um processador de intrapredição.
19. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o fluxo de bits inclui um parâmetro indicando se o modo de divisão geométrica está habilitado para o bloco atual.
20. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o bloco atual forma parte de uma árvore quádrupla mais árvore de decisão binária.
21. DECODIFICADOR, de acordo com a reivindicação 20, caracterizado pelo fato de que o bloco atual é um nó não folha da árvore quádrupla mais árvore de decisão binária.
22. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o bloco atual é uma unidade de árvore de codificação ou uma unidade de codificação.
23. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira região é uma unidade de codificação ou uma unidade de predição.
24. MÉTODO caracterizado pelo fato de que compreende: receber, por um decodificador, um fluxo de bits; dividir, pelo decodificador, um bloco atual por meio de um modo de divisão geométrica em uma primeira região, uma segunda região e uma terceira região; determinar, pelo decodificador, um vetor de movimento associado com uma região da primeira região, da segunda região e da terceira região, a determinação incluindo a construção de uma lista de candidatos; e decodificar, pelo decodificador, o bloco atual usando o vetor de movimento determinado.
25. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que a construção da lista de candidatos inclui avaliar um candidato abaixo à esquerda, um candidato à esquerda, um candidato acima à esquerda, um candidato acima e um candidato acima à direita.
26. MÉTODO, de acordo com a reivindicação 25, caracterizado pelo fato de que: o vetor de movimento determinado é para a primeira região; o modo de divisão geométrica inclui um segmento de linha entre um primeiro local luma e um segundo local luma; o candidato abaixo à esquerda está localizado em um terceiro local luma imediatamente à esquerda e imediatamente abaixo do segundo local luma; o candidato à esquerda está localizado em um quarto local luma imediatamente à esquerda do segundo local luma; o candidato acima à esquerda está localizado em um quinto local luma imediatamente acima e imediatamente à esquerda de um local luma mais superior à esquerda da primeira região; o candidato acima está localizado em um sexto local luma imediatamente acima do primeiro local luma; e o candidato acima à direita está localizado em um sétimo local luma imediatamente acima e à direita do primeiro local luma.
27. MÉTODO, de acordo com a reivindicação 25, caracterizado pelo fato de que: o vetor de movimento determinado é para a segunda região; o modo de divisão geométrica inclui um segmento de linha entre um primeiro local luma e um segundo local luma; o candidato abaixo à esquerda está localizado em um terceiro local luma imediatamente à esquerda e imediatamente abaixo de um local luma inferior mais à esquerda da terceira região; o candidato à esquerda está localizado em um quarto local luma imediatamente à esquerda do local luma inferior mais à esquerda da terceira região;
o candidato acima à esquerda está localizado em um quinto local luma imediatamente acima do primeiro local; o candidato acima está localizado em um sexto local luma imediatamente acima um local luma superior mais à direita da segunda região; e o candidato acima à direita está localizado em um sétimo local luma imediatamente acima e à direita do local luma superior mais à direita da segunda região.
28. MÉTODO, de acordo com a reivindicação 25, caracterizado pelo fato de que: o vetor de movimento determinado é para a terceira região; o modo de divisão geométrica inclui um segmento de linha entre um primeiro local luma e um segundo local luma; o candidato abaixo à esquerda está localizado em um terceiro local luma imediatamente à esquerda e imediatamente abaixo de um local luma inferior mais à esquerda da terceira região; o candidato à esquerda está localizado em um quarto local luma imediatamente à esquerda do local luma inferior mais à esquerda da terceira região; o candidato acima à esquerda está localizado em um quinto local luma colocalizado com a primeira região; o candidato acima está localizado em um sexto local luma imediatamente à esquerda do segundo local; e o candidato acima à direita está localizado em um sétimo local luma que é colocado com a segunda região.
29. MÉTODO, de acordo com a reivindicação 25, caracterizado pelo fato de que o vetor de movimento determinado é para a segunda região, e que ainda compreende marcar um candidato como indisponível em resposta à determinação que o candidato é colocalizado com a terceira região.
30. MÉTODO, de acordo com a reivindicação 25, caracterizado pelo fato de que o vetor de movimento determinado é para a segunda região e que ainda compreende automaticamente marcar o candidato superior à esquerda como indisponível em resposta à determinação que o modo de divisão geométrica está habilitado.
31. MÉTODO, de acordo com a reivindicação 25, caracterizado pelo fato de que o vetor de movimento determinado é para a terceira região, e que ainda compreende automaticamente marcar o candidato superior à direita como indisponível em resposta à determinação que o modo de divisão geométrica está habilitado.
32. MÉTODO, de acordo com a reivindicação 25, caracterizado pelo fato de que o vetor de movimento determinado é para a terceira região, e que ainda compreende automaticamente marcar o candidato superior à esquerda como indisponível em resposta à determinação que o modo de divisão geométrica está habilitado.
33. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que ainda compreende determinar que um modo de mesclagem está habilitado para a primeira região
34. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que ainda compreende determinar que um modo de predição de vetor de movimento avançado está habilitado para a primeira região.
35. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que ainda compreende reconstruir dados de pixel do bloco atual
36. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que cada um da primeira região e da segunda região não são retangulares.
37. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que o modo de divisão geométrica é sinalizado no fluxo de bits.
38. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de dividir o bloco atual por meio do modo de divisão geométrica na primeira região, na segunda região, e na terceira região inclui dividir o bloco atual com um segmento de linha compreendendo um primeiro local luma e um segundo local luma.
39. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que ainda compreende: determinar se o modo de divisão geométrica está habilitado; determinar um primeiro segmento de linha para o bloco atual; e determinar um segundo segmento de linha para o bloco atual; em que: a decodificação do bloco atual inclui reconstruir dados de pixel usando o primeiro segmento de linha e o segundo segmento de linha; o primeiro segmento de linha e o segundo segmento de linha dividem o bloco atual na primeira região, na segunda região, e na terceira região.
40. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que o modo de divisão geométrica está disponível para tamanhos de bloco maiores ou iguais a amostras luma de 64x64 ou 128x128.
41. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que o decodificador compreende ainda: um processador de decodificador por entropia configurado para receber o fluxo de bits e decodificar o fluxo de bits em coeficientes quantizados; um processador de quantização inversa e transformada inversa configurado para processar os coeficientes quantizados incluindo realizar uma transformada de cosseno discreta inversa; um filtro de desbloqueio; um armazenamento de quadro; e um processador de intrapredição.
42. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que o fluxo de bits inclui um parâmetro indicando se o modo de divisão geométrica está habilitado para o bloco atual.
43. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que o bloco atual forma parte de uma árvore quádrupla mais árvore de decisão binária.
44. MÉTODO, de acordo com a reivindicação 43, caracterizado pelo fato de que o bloco atual é um nó não folha da árvore quádrupla mais árvore de decisão binária.
45. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que o bloco atual é uma unidade de árvore de codificação ou uma unidade de codificação.
46. MÉTODO, de acordo com a reivindicação 24, caracterizado pelo fato de que a primeira região é uma unidade de codificação ou uma unidade de predição.
BR112021014788-8A 2019-01-28 2020-01-28 Interpredição em divisão geométrica com um número adaptativo de regiões BR112021014788A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962797820P 2019-01-28 2019-01-28
US62/797,820 2019-01-28
PCT/US2020/015410 WO2020159989A1 (en) 2019-01-28 2020-01-28 Inter prediction in geometric partitioning with an adaptive number of regions

Publications (1)

Publication Number Publication Date
BR112021014788A2 true BR112021014788A2 (pt) 2021-09-28

Family

ID=71841935

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021014788-8A BR112021014788A2 (pt) 2019-01-28 2020-01-28 Interpredição em divisão geométrica com um número adaptativo de regiões

Country Status (9)

Country Link
US (3) US11259014B2 (pt)
EP (1) EP3918794A4 (pt)
JP (1) JP2022523697A (pt)
KR (1) KR20210118154A (pt)
CN (1) CN113647104A (pt)
BR (1) BR112021014788A2 (pt)
MX (1) MX2021009026A (pt)
SG (1) SG11202108103WA (pt)
WO (1) WO2020159989A1 (pt)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113597757A (zh) * 2019-01-28 2021-11-02 Op方案有限责任公司 具有区域数自适应的几何划分的形状自适应离散余弦变换
MX2022007973A (es) * 2019-12-30 2022-07-05 Fg innovation co ltd Dispositivo y metodo para codificar datos de video.
WO2022245876A1 (en) * 2021-05-17 2022-11-24 Beijing Dajia Internet Information Technology Co., Ltd. Geometric partition mode with motion vector refinement

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003001787A2 (en) 2001-06-21 2003-01-03 Walker Digital, Llc Methods and systems for documenting a player's experience in a casino environment
US6788301B2 (en) 2001-10-18 2004-09-07 Hewlett-Packard Development Company, L.P. Active pixel determination for line generation in regionalized rasterizer displays
US7742636B2 (en) 2006-01-26 2010-06-22 Nethra Imaging Inc. Method and apparatus for scaling down a bayer domain image
CN101502120B (zh) 2006-08-02 2012-08-29 汤姆逊许可公司 用于视频解码的自适应几何分割方法和设备
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
CN101822056B (zh) 2007-10-12 2013-01-02 汤姆逊许可公司 用于视频编解码几何划分的双向预测模式划分的方法和装置
BRPI0818649A2 (pt) * 2007-10-16 2015-04-07 Thomson Licensing Métodos e aparelho para codificação e decodificação de vídeo em superblocos geometricamente particionados.
WO2010151334A1 (en) 2009-06-26 2010-12-29 Thomson Licensing Methods and apparatus for video encoding and decoding using adaptive geometric partitioning
EP2449784A1 (fr) * 2009-07-03 2012-05-09 France Telecom Prédiction d'un vecteur mouvement d'une partition d'image courante de forme géometrique ou de taille différente de celle d'au moins une partition d'image de référence voisine, codage et décodage utilisant une telle prédiction
US8879632B2 (en) 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
CN102845062B (zh) 2010-04-12 2015-04-29 高通股份有限公司 用于几何运动分割的定点实施方案
DK2897365T3 (da) * 2010-07-09 2017-02-13 Samsung Electronics Co Ltd Apparat til at afkode video ved at anvende bloksammenlægning
EP2421266A1 (en) 2010-08-19 2012-02-22 Thomson Licensing Method for reconstructing a current block of an image and corresponding encoding method, corresponding devices as well as storage medium carrying an images encoded in a bit stream
US20120147961A1 (en) 2010-12-09 2012-06-14 Qualcomm Incorporated Use of motion vectors in evaluating geometric partitioning modes
CN107105280B (zh) * 2010-12-14 2020-01-03 M&K控股株式会社 用于编码运动画面的设备
KR20120090740A (ko) * 2011-02-07 2012-08-17 (주)휴맥스 정밀한 단위의 필터 선택을 적용한 영상 부호화/복호화 장치 및 방법
GB2501835B (en) * 2011-03-09 2014-09-03 Canon Kk Video encoding and decoding
US20130107962A1 (en) 2011-10-26 2013-05-02 Intellectual Discovery Co., Ltd. Scalable video coding method and apparatus using inter prediction mode
US20140247876A1 (en) * 2011-10-31 2014-09-04 Mitsubishi Electric Corporation Video encoding device, video decoding device, video encoding method, and video decoding method
WO2013068564A1 (en) 2011-11-11 2013-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Effective wedgelet partition coding using spatial prediction
EP2597872A3 (en) 2011-11-23 2013-12-25 Humax Co., Ltd. Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
US20130287109A1 (en) 2012-04-29 2013-10-31 Qualcomm Incorporated Inter-layer prediction through texture segmentation for video coding
WO2013189257A1 (en) 2012-06-20 2013-12-27 Mediatek Inc. Method and apparatus of bi-directional prediction for scalable video coding
KR20140124920A (ko) * 2013-04-15 2014-10-28 인텔렉추얼디스커버리 주식회사 움직임 벡터 예측을 이용한 비디오 부호화/복호화 방법 및 장치
US9986236B1 (en) 2013-11-19 2018-05-29 Google Llc Method and apparatus for encoding a block using a partitioned block and weighted prediction values
US10477232B2 (en) 2014-03-21 2019-11-12 Qualcomm Incorporated Search region determination for intra block copy in video coding
US10042887B2 (en) 2014-12-05 2018-08-07 International Business Machines Corporation Query optimization with zone map selectivity modeling
WO2016090568A1 (en) 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US10856001B2 (en) * 2015-02-24 2020-12-01 Lg Electronics Inc. Polygon unit-based image processing method, and device for same
CN116489347A (zh) * 2015-11-20 2023-07-25 韩国电子通信研究院 对图像进行编/解码的方法和装置
WO2017105097A1 (ko) 2015-12-17 2017-06-22 삼성전자 주식회사 머지 후보 리스트를 이용한 비디오 복호화 방법 및 비디오 복호화 장치
US10306258B2 (en) * 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning
CA3014271C (en) * 2016-02-12 2020-10-20 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
US11381829B2 (en) * 2016-08-19 2022-07-05 Lg Electronics Inc. Image processing method and apparatus therefor
US10116957B2 (en) 2016-09-15 2018-10-30 Google Inc. Dual filter type for motion compensated prediction in video coding
EP3577898A4 (en) * 2017-01-31 2020-06-24 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR PARTITIONING A VIDEO BLOCK IMAGE FOR VIDEO CODING
CN110870308A (zh) * 2017-06-30 2020-03-06 夏普株式会社 通过几何自适应块分割将图片转换成用于视频编码的视频块的系统和方法
US11082716B2 (en) * 2017-10-10 2021-08-03 Electronics And Telecommunications Research Institute Method and device using inter prediction information
CN118018761A (zh) * 2017-12-28 2024-05-10 韩国电子通信研究院 图像编码和解码的方法和装置以及存储比特流的记录介质
US11695967B2 (en) 2018-06-22 2023-07-04 Op Solutions, Llc Block level geometric partitioning
CN117615128A (zh) 2018-06-27 2024-02-27 数字洞察力有限公司 对图像进行编码/解码的方法和发送比特流的方法
CN113039793A (zh) 2018-10-01 2021-06-25 Op方案有限责任公司 指数分区的方法与系统
JP7277579B2 (ja) * 2018-11-02 2023-05-19 北京字節跳動網絡技術有限公司 Hmvp候補記憶装置のための表の保守
WO2020116402A1 (ja) * 2018-12-04 2020-06-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
JP2022523309A (ja) 2019-01-28 2022-04-22 オーピー ソリューションズ, エルエルシー 指数関数的分割におけるインター予測

Also Published As

Publication number Publication date
US11259014B2 (en) 2022-02-22
US20220182607A1 (en) 2022-06-09
JP2022523697A (ja) 2022-04-26
WO2020159989A1 (en) 2020-08-06
US11695922B2 (en) 2023-07-04
CN113647104A (zh) 2021-11-12
EP3918794A1 (en) 2021-12-08
EP3918794A4 (en) 2022-04-20
US20200396448A1 (en) 2020-12-17
SG11202108103WA (en) 2021-08-30
US20230308640A1 (en) 2023-09-28
KR20210118154A (ko) 2021-09-29
MX2021009026A (es) 2021-10-13

Similar Documents

Publication Publication Date Title
BR112014017706B1 (pt) Sinalização de parâmetros de filtro de desbloqueio em codificação de vídeo
BR112014009431B1 (pt) Método para codificar dados de vídeo, aparelho para codificar vídeo e memória legível por computador
BR112014012939B1 (pt) Método e codificador de vídeo para realizar processos de desvio adaptativo de amostra (sao) em um processo de codificação de vídeo, método e decodificador de video para realizar processos de desvio adaptativo de amostra em um processo de decodificação de vídeo e memória legível por computador
BR112021014671A2 (pt) Transformada discreta de cosseno de formato adaptativo para particionamento geométrico com um número adaptativo de regiões
US11695922B2 (en) Inter prediction in geometric partitioning with an adaptive number of regions
BR112021014667A2 (pt) Interprevisão em particionamento exponencial
US11451810B2 (en) Merge candidate reorder based on global motion vector
US20230239464A1 (en) Video processing method with partial picture replacement
BR112021011307A2 (pt) Método e aparelho de predição inter, fluxo de bits e mídia de armazenamento não transitória
US11265566B2 (en) Signaling of global motion relative to available reference frames
US11985318B2 (en) Encoding video with extended long term reference picture retention
BR112021014753A2 (pt) Sinalização explícita de retenção de figuração de referência de longo prazo estendida