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 PDFInfo
- 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
Links
- 230000003044 adaptive effect Effects 0.000 title abstract description 25
- 230000033001 locomotion Effects 0.000 claims abstract description 133
- 239000013598 vector Substances 0.000 claims abstract description 74
- 238000000034 method Methods 0.000 claims abstract description 54
- 241000023320 Luma <angiosperm> Species 0.000 claims description 94
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 94
- 230000008569 process Effects 0.000 claims description 14
- 238000013139 quantization Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000003066 decision tree Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 14
- 238000002156 mixing Methods 0.000 description 12
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 230000011664 signaling Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 238000007792 addition Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 241001502919 Gambusia luma Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods 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
[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.
[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.
[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.
[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.
[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.
[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)
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.
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)
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)
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 | オーピー ソリューションズ, エルエルシー | 指数関数的分割におけるインター予測 |
-
2020
- 2020-01-28 SG SG11202108103WA patent/SG11202108103WA/en unknown
- 2020-01-28 CN CN202080025671.7A patent/CN113647104A/zh active Pending
- 2020-01-28 WO PCT/US2020/015410 patent/WO2020159989A1/en unknown
- 2020-01-28 EP EP20749418.8A patent/EP3918794A4/en active Pending
- 2020-01-28 MX MX2021009026A patent/MX2021009026A/es unknown
- 2020-01-28 KR KR1020217027064A patent/KR20210118154A/ko unknown
- 2020-01-28 JP JP2021543478A patent/JP2022523697A/ja active Pending
- 2020-01-28 BR BR112021014788-8A patent/BR112021014788A2/pt unknown
- 2020-08-28 US US17/006,508 patent/US11259014B2/en active Active
-
2022
- 2022-02-22 US US17/676,996 patent/US11695922B2/en active Active
-
2023
- 2023-06-02 US US18/205,058 patent/US20230308640A1/en active Pending
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 |