BR112021014667A2 - Interprevisão em particionamento exponencial - Google Patents

Interprevisão em particionamento exponencial Download PDF

Info

Publication number
BR112021014667A2
BR112021014667A2 BR112021014667-9A BR112021014667A BR112021014667A2 BR 112021014667 A2 BR112021014667 A2 BR 112021014667A2 BR 112021014667 A BR112021014667 A BR 112021014667A BR 112021014667 A2 BR112021014667 A2 BR 112021014667A2
Authority
BR
Brazil
Prior art keywords
region
candidate
luma location
decoder
exponential
Prior art date
Application number
BR112021014667-9A
Other languages
English (en)
Inventor
Borivoje Furht
Hari Kalva
Velibor Adzic
Original Assignee
Op Solutions, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Op Solutions, Llc filed Critical Op Solutions, Llc
Publication of BR112021014667A2 publication Critical patent/BR112021014667A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

interprevisão em particionamento exponencial. trata-se de um decodificador que inclui conjunto de circuitos configurado para receber um fluxo de bits; particionar um bloco atual por meio de um modo de particionamento exponencial em uma primeira região e uma segunda região; determinar um vetor de movimento associado com a primeira região ou a segunda região, sendo que a determinação inclui construir uma lista de candidatos; e decodificar o bloco atual pelo uso do vetor de movimento determinado. aparelho relacionado, sistemas, técnicas e artigos são também descritos.

Description

RELATÓRIO DESCRITIVO INTERPREVISÃO EM PARTICIONAMENTO EXPONENCIAL REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[001] Este pedido reivindica o benefício de prioridade do Pedido de Patente Provisório no de série U.S. 62/797.816, depositado em 28 de janeiro de 2019, e intitulado “Inter Prediction in Exponential Partitioning,” o qual está incorporado ao presente documento a título de referência em sua totalidade.
CAMPO DA INVENÇÃO
[002] A presente invenção refere-se geralmente ao campo da compressão de vídeo. Em particular, a presente invenção é direcionada a uma interprevisão em particionamento exponencial.
ANTECEDENTES
[003] Um codec de vídeo pode incluir um circuito eletrônico ou software que compacta ou descompacta vídeo digital. Ele pode converter vídeo não compactado em um formato compactado ou vice-versa. No contexto da compactação de vídeo, um dispositivo que compacta 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 em relação ao 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 similares.
SUMÁRIO DA REVELAÇÃO
[006] Em um aspecto, um decodificador, inclui conjunto de circuitos configurado para receber um fluxo de bits, particionar um bloco atual por meio de um modo de particionamento exponencial em uma primeira região e uma segunda região, determinar um vetor de movimento associado com uma região da primeira região ou da segunda região, em que determinar inclui construir uma lista de candidatos, e decodificar o bloco atual pelo uso do vetor de movimento determinado.
[007] Em outro aspecto, um método inclui receber, por um decodificador, um fluxo de bits, particionar, pelo decodificador, um bloco atual por meio de um modo de particionamento exponencial em uma primeira região e uma segunda região, determinar, pelo decodificador, um vetor de movimento associado com uma região da primeira região ou da segunda região, sendo que a determinação inclui construir uma lista de candidatos, e
[008] decodificar, pelo decodificador, o bloco atual pelo uso do vetor de movimento determinado.
[009] Os detalhes de uma ou mais variações da matéria aqui descrita são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos e vantagens da matéria descrita no presente documento serão evidentes a partir da descrição e dos desenhos e das reivindicações.
DESCRIÇÃO DE DESENHOS
[010] 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:
[011] A Figura 1 é um diagrama que ilustra um exemplo de particionamento de blocos de pixels;
[012] A Figura 2 é um diagrama que ilustra um exemplo de particionamento geométrico;
[013] A Figura 3 ilustra uma imagem que contém uma maçã que pode não ser particionada eficientemente por segmentos de linha reta;
[014] A Figura 4A é um diagrama que ilustra um exemplo de particionamento exponencial de acordo com alguns aspectos da matéria atual, o que pode aumentar a eficiência de compressão;
[015] A Figura 4B é uma série de diagramas que ilustram modelo de partições exponenciais exemplificativo;
[016] A Figura 4C ilustra curvas exemplificativas associadas com 4 coeficientes predefinidos, que podem definir uma função exponencial exemplificativa;
[017] A Figura 4D ilustra outro bloco exemplificativo que mostram diferentes índices iniciais P1 e finais P2 que particionam o bloco retangular;
[018] A Figura 5 é um diagrama que ilustra exemplo posições de candidatos de vetor de movimento potenciais em relação a um bloco atual exemplificativo particionado de acordo com o particionamento exponencial;
[019] A Figura 6 ilustra a Figura 5 com a anotações que mostram localizações de luma que incluem a localização de luma mais superior esquerda da primeira região e a localização de luma superior mais à direita da segunda região;
[020] A Figura 7 é um diagrama que ilustra posições de candidatos de vetor de movimento potenciais em relação a um bloco atual exemplificativo particionado de acordo com o particionamento exponencial;
[021] A Figura 8 ilustra a Figura 7 com anotações que mostram localizações de luma que incluem a localização de luma mais inferior à direita da segunda região e a localização de luma mais superior à direita da segunda região;
[022] A Figura 9 é um diagrama de blocos de sistema que ilustra um exemplo codificador de vídeo com capacidade para codificar um vídeo pelo uso de interprevisão com particionamento exponencial;
[023] A Figura 10 ilustra um exemplo de particionamento de QTBT de um quadro;
[024] A Figura 11 ilustra um exemplo de particionamento exponencial no nível CU da QTBT ilustrada na Figura 8;
[025] A Figura 12 é um diagrama de fluxo de processo que ilustra um processo exemplificativo de codificação de um vídeo com particionamento exponencial de uma interprevisão de acordo com alguns aspectos da matéria atual que podem reduzir a complexidade de codificação ao mesmo tempo em que aumenta a eficiência de compressão;
[026] A Figura 13 é um diagrama de blocos de sistema que ilustra um decodificador exemplificativo com capacidade para decodificar um fluxo de bits pelo uso de particionamento exponencial e interprevisão de acordo com alguns aspectos da matéria atual;
[027] A Figura 14 é um diagrama de fluxo de processo que ilustra um processo exemplificativo de decodificar um fluxo de bits pelo uso de particionamento exponencial e pelo uso de interprevisão de acordo com alguns aspectos da matéria atual; e
[028] A Figura 15 é um diagrama de blocos de um sistema de computação que pode ser usado para implementar qualquer uma ou mais das metodologias reveladas no presente documento e qualquer uma ou mais porções das mesmas.
[029] Os desenhos não estão necessariamente em escala e podem ser ilustrados por linhas pontilhadas, representações diagramáticas e vistas fragmentadas. Em certos casos, detalhes que não são necessários para uma compreensão das modalidades ou que tornam outros detalhes difíceis de perceber podem ter sido omitidos. Símbolos de referência semelhantes nos vários desenhos indicam elementos semelhantes.
DESCRIÇÃO DETALHADA
[030] Algumas implementações da matéria atual incluem realizar interprevisão com regiões não retangulares que foram particionadas com uma curva; a curva pode ou não ser uma linha reta. Realizar interprevisão com blocos não retangulares que foram particionados com uma curva pode permitir que o particionamento siga de maneira mais próxima limites de objetos, resultando em erro de previsão de compensação de movimento inferior, resíduos menores e, assim, eficiência de compressão melhorada. Durante a interprevisão,
compensação de movimento pode ser realizada pelo uso de vetores de movimento previstos para blocos (por exemplo unidades de conversão em código, unidades de previsão e semelhantes) determinados de acordo com um modo de particionamento exponencial. Os vetores de movimento podem ser previstos pelo uso de previsão de vetor de movimento avançado (AMVP) e/ou por meio de modo de mesclagem, em que o vetor de movimento é selecionado a partir da lista de candidatos de vetor de movimento sem codificar uma diferença de vetor de movimento.
[031] Em particionamento exponencial, um bloco retangular pode ser particionado em regiões não retangulares com uma curva, o que pode incluir um segmento de linha reta no caso de particionamento geométrico, ou pode, em um caso mais geral, ser uma curva que não é uma linha reta. Usar uma curva que não é uma linha reta para particionar blocos pode permitir que o particionamento siga mais proximamente os limites de objetos, resultando em erro de previsão de compensação de movimento inferior, resíduos menores e, assim, eficiência de compressão melhorada. Em algumas implementações, a curva pode ser caracterizada por uma função exponencial. A curva (por exemplo, função exponencial) pode ser determinada pelo uso de coeficientes predefinidos, que podem ser sinalizados em um fluxo de bits para uso por um decodificador. Em algumas implementações, particionamento exponencial pode estar disponível para amostras de luma maiores ou iguais a 8x8. Ao particionar blocos retangulares com uma curva, a matéria atual pode alcançar maior eficiência de compressão para certos objetos do que técnicas limitadas a partições de segmento de linha reta, tal como com particionamento geométrico.
[032] A compensação de movimento pode incluir uma abordagem para prever um quadro de vídeo ou uma porção dos mesmos dados os quadros anteriores e/ou futuros ao contabilizar o movimento da câmera e/ou objetos no vídeo. A compensação de movimento pode ser empregada em dados de codificação e decodificação de vídeo para compressão de vídeo, por exemplo, na codificação e decodificação pelo uso do Motion Picture Experts Group (MPEG)-2 (também conhecido como padrão de conversão em código avançada de vídeo (AVC). A compensação de movimento pode descrever uma figuração em termos de transformação de uma figuração de referência para uma figuração atual. A figuração de referência pode ser anterior no tempo ou do futuro quando comparada à figuração atual. Quando imagens podem ser precisamente sintetizadas a partir de imagens anteriormente transmitidas e/ou armazenadas, a eficiência de compressão pode ser melhorada.
[033] O particionamento de bloco pode se referir a um método na conversão em código de vídeo para encontrar regiões de movimento similar. Alguma forma de particionamento de blocos podem ser encontradas em padrões de codec de vídeo que incluem MPEG-2, H.264 (também chamado de AVC ou MPEG-4 Parte 10), e H.265 (também chamado de Conversão em Código de Vídeo de Alta Eficiência (High Efficiency Video Coding - HEVC)). Nas abordagens de particionamento de blocos exemplificativas, blocos não sobrepostos de um quadro de vídeo podem ser particionados em sub-blocos retangulares para encontrar partições de bloco que contêm pixels com movimento similar. Essa abordagem pode funcionar bem quando todos os pixels de uma partição de bloco têm movimento similar. O movimento de pixels em um bloco pode ser determinado em relação a quadros previamente convertidos em código.
[034] A Figura 1 é um diagrama que ilustra um exemplo de particionamento de blocos de pixels. Uma figuração ou bloco retangular inicial 100, que pode, em si, ser um sub-bloco (por exemplo, um nó dentro de uma árvore de conversão em código), pode ser particionado em sub-blocos retangulares. Por exemplo, em 110, o bloco 100 é particionado em dois sub-blocos retangulares 110a e 110b. Os sub-blocos 110a e 110b podem, em seguida, ser processados separadamente. Como outro exemplo, em 120, o bloco 100 é particionado em quatro sub-blocos retangulares 120a, 120b, 120c e 120d. Os sub-blocos pode, em si, ser adicionalmente divididos até que seja determinado que os pixels dentro dos sub-blocos compartilham o mesmo movimento, um tamanho mínimo do bloco seja alcançado ou outros critérios. Quando os pixels em um sub-bloco têm movimento similar, um vetor de movimento pode descrever o movimento de todos os pixels naquela região.
[035] Ainda em referência à Figura 1, algumas abordagens à conversão em código de vídeo podem incluir particionamento geométrico, que pode ser uma forma de particionamento exponencial na qual um bloco retangular (por exemplo, como ilustrado na Figura 1) é adicionalmente dividido por um segmento de linha reta em duas regiões que podem ser não retangulares. Por exemplo, a Figura 2 é um diagrama que ilustra um exemplo de particionamento geométrico. Um bloco retangular exemplificativo 200 (que pode ter uma largura de M pixels e uma altura de N pixels, denotados como MxN pixels) pode ser dividido ao longo de um segmento de linha reta P1P2 205 em duas regiões (região 0 e região 1). Quando os pixels na região 0 têm movimento similar, um vetor de movimento pode descrever o movimento de todos os pixels em tal região. O vetor de movimento pode ser usado para comprimir a região 0. De modo similar, quando os pixels na região 1 têm movimento similar, um vetor de movimento associado pode descrever o movimento de pixels na região 1. Tal partição geométrica pode ser sinalizada para o receptor (por exemplo, decodificador) ao codificar as posições P1 e P2 (ou representações de posições P1 e P2) no fluxo de bits do vídeo.
[036] Com referência continuada à Figura 2, ao codificar dados de vídeo data pela utilização de particionamento geométrico, segmento de linha reta 205 (ou mais especificamente pontos P1 e P2) podem ser determinados. No entanto, um segmento de linha reta pode não ter capacidade para particionar o bloco de uma maneira que reflita os limites de objetos. Como resultado, particionamento com segmentos de linha reta pode não ter capacidade para particionar um bloco de uma maneira eficiente (por exemplo, de modo que qualquer resíduo resultante seja pequeno). Isso pode ser verdade onde o bloco pode conter pixels (por exemplo amostras de luma) que representam um objeto ou limite que tem um limite curvo (por exemplo, não reto). Por exemplo, a Figura 3 ilustra uma modalidade exemplificativa de uma imagem que contém uma maçã que pode não ser particionada eficientemente por segmentos de linha reta; a imagem da maçã, como ilustrada, inclui diversos blocos retangulares que indicam porções da imagem que, se particionadas pelo uso de um segmento de linha reta, de acordo com o particionamento geométrico, o particionamento pode não seguir proximamente o limite do objeto (por exemplo, maçã) que, como ilustrada na Figura 3, é curva.
[037] A Figura 4A é um diagrama que ilustra um exemplo não limitador de particionamento exponencial pelo uso de uma curva não linear, definida para os fins desta revelação como uma curva que não é uma linha reta, de acordo com alguns aspectos da matéria atual, que pode aumentar a eficiência de compressão. Um bloco retangular 400 pode incluir pixels (por exemplo amostras de luma). O bloco retangular 400 pode ter, como um exemplo não limitador fornecido apenas para fins ilustrativos, um tamanho de 8x8 pixels (por exemplo, amostras de luma), ou mais.
[038] Na Figura 4A, o bloco retangular 400 pode ser particionado em duas ou mais regiões, ilustradas para fins exemplificativos na Figura 4A como a região 0 e a região 1, denotadas por 410 e 415, respectivamente, pela linha curva 405. Todas as amostras de luma em cada região definida de tal forma pode ser consideradas ou movimento similar e, assim, como representáveis pelo uso do mesmo vetor de movimento. Para ilustrar para fins exemplificativos, todas as amostras de luma dentro da região 410 podem ser consideradas como tendo o mesmo, ou movimento similar, e podem ser representadas pelo mesmo vetor de movimento. De modo similar, todas as amostras de luma dentro da região 415 podem ser consideradas como tendo o mesmo, ou movimento similar, e podem ser representadas pelo mesmo vetor de movimento. Como descrito mais completamente abaixo, os respectivos vetores de movimento podem ser determinados de acordo com um modo AMVP ou um modo de mesclagem. Em algumas implementações, e para fins de discussão, todas as amostras de luma à esquerda ou acima de um segmento de linha curva 405 que divide um bloco retangular 400 podem ser consideradas como pertencentes à região 0 (410). Em algumas implementações, todas as amostras de luma à direita ou abaixo de um segmento de linha curva 405 que divide um bloco retangular 400 podem ser consideradas como pertencentes à região 1 (415). Em algumas implementações, todas as amostras de luma através das quais um segmento de linha curva que divide um bloco retangular 400 passa (isto é, amostras de luma no segmento e/ou interceptada pelo segmento de linha) pertencem à região 0 (410). Em algumas implementações, todas as amostras de luma através das quais um segmento de linha curva que divide um bloco retangular 400 passa podem ser consideradas como pertencentes à região 1 (415). Outras implementações podem ser possíveis, como será percebido pela pessoa versada na técnica após a revisão da totalidade desta revelação.
[039] Ainda em referência à Figura 4A, o particionamento exponencial pode ser representado em um fluxo de bits. Em algumas implementações, um modo de particionamento exponencial pode ser utilizado e os parâmetros apropriados podem ser sinalizados em um fluxo de bits. Por exemplo, o particionamento exponencial pode ser representado em um fluxo de bits ao sinalizar modelos de particionamento exponencial predeterminados. A Figura 4B é uma série de diagramas que ilustra exemplos não limitadores de partições de modelo 420-435. Em algumas implementações, a sinalização pode ser realizada ao incluir um índice a uma ou mais dessas partições exponenciais regulares (por exemplo, modelo) que são predefinidas. Essas partições exponenciais regulares podem especificar um conjunto de orientações predeterminadas. Por exemplo, a Figura 4C ilustra curvas exemplificativas não limitadoras associadas com 4 modelos predefinidos (1,2,3,4). O número de curvaturas de modelo pode variar em algumas implementações.
[040] Continuando a se referir à Figura 4B, e como outro exemplo não limitador, partições exponenciais podem ser representadas em um fluxo de bits ao sinalizar coeficientes predeterminados, tais como coeficientes de funções exponenciais, que indicam o grau de curvatura, que pode possibilitar funções exponenciais adicionais.
[041] Em algumas implementações, e ainda em referência à Figura 4B, um modelo predefinido, dentre a pluralidade de modelos 420-435, usado em um modo de particionamento exponencial pode indicar um segmento de linha reta. Por exemplo, na Figura 4C, o segmento indexado pelo coeficiente 1 é uma linha reta, que pode ser considerada um caso especial de particionamento exponencial que é um particionamento geométrico, como descrito acima.
[042] Em algumas implementações, ambos os modelos de orientação, como ilustrados, por exemplo, na Figura 4B, e modelos predefinidos, como ilustrados, por exemplo, na Figura 4C, podem ser utilizados para sinalizar eficientemente qualquer padrão exponencial de um grande número de partições exponenciais potenciais; por exemplo, os modelos podem fornecer opções de curva 440, que incluem, sem limitação, um segmento de linha 1 e/ou uma ou mais curvas não lineares 2-4, o que pode incluir curvas exponenciais, sendo que qualquer uma das quais pode ser selecionada por um codificador, um usuário, e/ou um processo automatizado para criar uma partição como descrito nesta revelação.
[043] Em algumas implementações, e referindo-se novamente à Figura 4A, índices de início e fim podem ser predeterminados. Por exemplo, a Figura 4A ilustra um segmento de linha curva exemplificativo que se inicia em um canto inferior esquerdo de um bloco retangular 400 e termina em um canto superior direito do bloco retangular 400. Tais índices de início e de fim predeterminados podem ser armazenados na memória de um decodificador. Alternativa ou adicionalmente, em algumas implementações, índices de início e de fim podem ser explicitamente sinalizados no fluxo de bits. Por exemplo, a Figura 4D ilustra outro bloco exemplificativo que mostram diferentes índices iniciais P 1 e finais P2 que particionam o bloco retangular 400; índices iniciais P 1 e finais P2 podem ser sinalizados diretamente, ou podem ser indicados por um índice em um conjunto de valores predeterminados. Outros parâmetros são possíveis, como será percebido pela pessoa versada na técnica após a revisão da totalidade desta revelação.
[044] Ainda em referência à Figura 4A, a interprevisão pode ser realizada pelo uso de regiões que foram particionadas exponencialmente. Os vetores de movimento para compensação de movimento podem ser derivados pelo uso de modo de AMVP ou de mesclagem. Em AMVP, uma previsão de vetor de movimento pode ser feita ao sinalizar um índice em uma lista de candidatos de vetor de movimento e uma diferença de vetor de movimento (por exemplo, resíduo) podem ser codificados e incluídos 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, dessa forma, que um bloco atual adote informações de movimento de outro bloco decodificado anteriormente. Tanto no modo de AMVP quanto no modo de mesclagem, uma lista de candidatos pode ser construída tanto por um codificador quanto um decodificador, e um índice na lista de candidatos pode ser sinalizado em um fluxo de bits.
[045] A Figura 5 é um diagrama que ilustra exemplos não limitadores de posições de candidatos de vetor de movimento espaciais potenciais em relação a um bloco atual exemplificativo 1100 particionado de acordo com particionamento exponencial. Os candidatos de vetor de movimento espaciais potenciais podem ser considerados para construir uma lista de candidatos de vetor de movimento durante o modo de AMVP ou modo de mesclagem. Como um exemplo não limitador, um bloco atual 1100 pode ser particionado em duas regiões, região S0 e região S1, por uma curva entre os pontos P0 e P1. Cada uma dentre a região S0 e a região S1 podem ser previstos uni ou bidirecionalmente. Os candidatos espaciais para uma primeira região (região S0) são ilustrados para fins exemplificativos na Figura 5 e podem incluir, sem limitação, um candidato inferior esquerdo A0, um candidato esquerdo A1, um candidato superior esquerdo B2, um candidato superior B1 e um candidato superior direito B0.
[046] Conforme ilustrado na Figura 5 e, em algumas implementações, cada localização (A0, A1, B2, B1 e B0) pode representar um bloco na respectiva localização. Por exemplo e, sem limitação, um candidato superior esquerdo B2 pode representar um bloco que reside em uma localização que está imediatamente à esquerda e imediatamente acima da região S0; por exemplo, se uma localização de luma de canto superior esquerdo de S0 é (0, 0), então, o candidato superior esquerdo B2 pode residir na localização (-1,-1). Um candidato inferior esquerdo A0 pode estar localizado imediatamente à esquerda e abaixo de P1; por exemplo e, sem limitação, se a localização de luma de P1 for (P1x, P1y), o candidato inferior esquerdo A0 pode residir na localização (P1x-1, P1y+1). Um candidato esquerdo A1 pode estar localizado imediatamente à esquerda de P1; por exemplo, o candidato esquerdo A1 pode residir na localização (P1x-1, P1y). Um candidato superior B1 pode estar localizado imediatamente acima de P0; ou por exemplo, se a localização de luma de P0 for (P0x, P0y), o candidato acima B1 está localizado em (P0x, P0y-1). Um candidato acima da direita B0 pode estar localizado imediatamente acima uma localização de luma superior e mais à direita em uma segunda região S1; ou por exemplo, se o canto superior direito de S1 estiver localizado em (S0_width+S1_width-1, 0), então, o candidato acima da direita B0 pode estar localizado em (S0_width+S1_width-1, -1), em que M = S0_width+S1_width. Outras localizações são possíveis, como será percebido pela pessoa versada na técnica após a revisão da totalidade desta revelação. A Figura 6 ilustra a Figura 5 com a anotações que mostram localizações de luma que incluem a localização de luma mais superior esquerda da primeira região S0 e a localização de luma superior mais à direita da segunda região S1;
[047] Em algumas implementações, e ainda em referência à Figura 6, ao construir uma lista de candidatos para a região S0, alguns dos candidatos potenciais podem ser marcados automaticamente como indisponíveis e removidos da lista devido ao fato de que, onde houver particionamento exponencial, tal particionamento pode ser realizado para particionar regiões (ou objetos) dentro de um quadro que tem diferentes informação de movimento. Consequentemente, pode ser inferido que blocos associados com tais candidatos provavelmente representam outro objeto com diferente movimento e, portanto, esses candidatos podem ser marcados automaticamente como indisponíveis (por exemplo, não mais considerados, removidos da lista, e semelhantes). Como um exemplo não limitador, e, como ilustrado acima na Figura 5, para a região S0, um candidato inferior esquerdo A0 pode ser marcado automaticamente como indisponível devido a provavelmente a região S0 não compartilhar informações de movimento com um bloco localizado no candidato inferior esquerdo A0. De modo similar, para a região S0, um candidato superior direito B0 pode ser marcado automaticamente como indisponível devido a ser provável que a região S0 não compartilhe informações de movimento com um bloco localizado no candidato superior direito B0.
[048] A Figura 7 é um diagrama que ilustra exemplos não limitadores de posições de candidatos de vetor de movimento potenciais em relação a um bloco atual exemplificativo 1400 particionado de acordo com particionamento exponencial. Os candidatos de vetor de movimento potenciais podem ser considerados para construir uma lista de candidatos durante o modo de AMVP ou modo de mesclagem. Um bloco atual 1400 pode ter sido particionado em duas regiões, região S0 e região S1, por uma curva entre os pontos P0 e P1. Cada uma dentre a região S0 e a região S1 podem ser previstas uni ou bidirecionalmente. Os candidatos para a segunda região (região S1) são ilustrados na Figura 7 e podem incluir um candidato inferior esquerdo A0, um candidato esquerdo A1, um candidato superior esquerdo B2, um candidato superior B1 e um candidato superior direito B0.
[049] Como ilustrado na Figura 7, cada localização (A0, A1, B2, B1 e B0) pode representar um bloco na localização respectiva. Por exemplo, um candidato superior esquerdo B2 podem ser um bloco que reside em uma localização de luma que está imediatamente à esquerda e imediatamente acima da região S1; por exemplo, se a localização de luma de canto superior esquerdo de S1 for adjacente a P0 com coordenadas de localização de luma (P0x+1, P0y), então, o candidato superior esquerdo B2 pode residir na localização (P0x,P0y-1). Um candidato inferior esquerdo A0 pode estar localizado imediatamente à esquerda e abaixo de uma localização de luma mais inferior à direita de S1; por exemplo,
se a localização de luma mais inferior à direita de S1 for a localização de luma (0, S0_height+S1_height-1), o candidato inferior esquerdo A0 pode residir na localização (-1, S0_height+S1_height), em que N = S0_height+S1_height. Um candidato esquerdo A1 pode estar localizado imediatamente à esquerda de uma localização de luma mais inferior à direita de S1 (por exemplo canto inferior esquerdo de S1); por exemplo, se a localização de luma mais inferior à direita de S1 for a localização de luma (0, S0_height+S1_height-1), o candidato esquerdo A1 pode residir na localização de luma (-1, S0_height+1_height-1). Um candidato superior B1 pode estar localizado imediatamente acima de uma localização de luma mais superior à direita de S1; por exemplo, se a localização de luma mais superior à direita de S1 for (S0_width+S1_width-1, 0), então o candidato acima B1 pode estar localizado em (S0_width+S1_width-1, -1), em que M = S0_width+S1_width. Um candidato acima da direita B0 pode estar localizado imediatamente acima e à direita de uma localização de luma mais superior à direita de segunda região S1; por exemplo, se uma localização de luma mais superior à direita de S1 (por exemplo, canto superior direito) estiver localizado em (S0_width+S1_width-1, 0), então, o candidato acima da direita B0 pode estar localizado em (S0_width+S1_width, -1). A Figura 8 ilustra a Figura 7 com anotações que mostram localizações de luma que incluem a localização de luma mais inferior à direita da segunda região S1 e a localização de luma mais superior à direita da segunda região S1.
[050] Em algumas implementações, e ainda em referência à Figura 8, ao construir uma lista de candidatos para a região S1, alguns candidatos potenciais podem ser marcados automaticamente como indisponíveis e removidos da lista devido ao fato de que, onde houver particionamento exponencial, tal particionamento pode ser realizado para particionar regiões (ou objetos) dentro de um quadro que tem diferentes informação de movimento. Consequentemente, pode ser inferido que blocos associados com tais candidatos provavelmente representam outro objeto com diferente movimento e, portanto, esses candidatos podem ser marcados automaticamente como indisponíveis (por exemplo, não mais considerados, removidos da lista, e semelhantes). No exemplo da Figura 7, para a região S1, um candidato superior esquerdo B2 pode ser marcado automaticamente como indisponível devido a provavelmente a região S1 não compartilhar informações de movimento com um bloco localizado no candidato acima da esquerda B2.
[051] A Figura 9 é um diagrama de blocos de sistema que ilustra um exemplo não limitador de um codificador de vídeo 900 com capacidade para codificar um vídeo pelo uso de interprevisão com particionamento exponencial. O codificador de vídeo exemplificativo 900 recebe um vídeo de entrada 905, que pode ser inicialmente segmentado ou dividido de acordo com um esquema de processamento, tal como um esquema de particionamento de blocos de conversão em código estruturada em árvore (por exemplo árvore binária mais quadtree (QTBT)). Um exemplo de um esquema de particionamento de blocos de conversão em código estruturada em árvore pode incluir particionar um quadro de figuração em elementos de bloco grande chamados de unidades de árvore de conversão em código (CTU). Em algumas implementações, cada CTU pode ser adicionalmente particionada uma ou mais vezes em uma variedade de sub-blocos chamados de unidades de conversão em código (CU). Um resultado final desse particionamento pode incluir um grupo de sub-blocos que pode ser chamado de unidades de previsão (PU). As unidades de transformada (TU) também podem ser utilizadas. Tal esquema de particionamento pode incluir realizar particionamento exponencial de acordo com alguns aspectos da matéria atual. A Figura 8 ilustra um exemplo de particionamento de QTBT de um quadro, e a Figura 11 ilustra um exemplo de particionamento exponencial no nível CU da QTBT ilustrada na Figura 8.
[052] Ainda em referência à Figura 9, um codificador de vídeo exemplificativo 900 pode incluir um processador de intraprevisão 915, um processador de estimação/compensação de movimento 920 (também chamado de um processador de interprevisão) com capacidade para suportar particionamento exponencial que inclui modo de AMVP e modo de mesclagem, um processador de transformada/quantização 925, um processador de quantização inversa/transformada inversa 930, um filtro em loop 935, um armazenamento temporário de figuração decodificada 940 e um processador de conversão em código de entropia 945. Em algumas implementações, o processador de estimação/compensação de movimento 920 pode realizar interprevisão pelo uso de particionamento exponencial e que inclui uso de modo de AMVP e modo de mesclagem. Os parâmetros de fluxo de bits que sinalizam modos de particionamento exponencial, modo de AMVP e modo de mesclagem podem ser inseridos no processador de conversão em código de entropia 945 para inclusão no fluxo de bits de saída 950.
[053] Durante a operação, e com referência continuada à Figura 9, para cada bloco de um quadro do vídeo de entrada 905, pode-se determinar se o bloco deve ser processado por meio de previsão de figuração intra ou usando estimação/compensação de movimento. O bloco pode ser fornecido ao processador de intraprevisão 910 ou ao processador de estimação/compensação de movimento 920. Se bloco deve ser processado por meio de intraprevisão, o processador de intraprevisão 910 pode realizar o processamento para gerar como saída o previsor. Se bloco deve ser processado por meio de estimação/compensação de movimento, o processador de estimação/compensação de movimento 920 pode realizar o processamento que inclui o uso de particionamento exponencial com modo de AMVP e modo de mesclagem para gerar como saída o previsor.
[054] Ainda em referência à Figura 9, um resíduo pode ser formado pela subtração do previsor do vídeo de entrada. O resíduo pode ser recebido pelo processador de transformada/quantização 925, que pode realizar o processamento de transformação (por exemplo, transformada distinta de cosseno (DCT)) para produzir coeficientes, que podem ser quantizados. Os coeficientes quantizados e quaisquer informações de sinalização associadas podem ser fornecidas ao processador de codificação de entropia 945 para codificação de entropia e inclusão no fluxo de bits de saída 950. O processador de conversão em código de entropia 945 pode suportar a codificação de informações de sinalização relacionadas aos modos de particionamento exponencial, modo de AMVP e modo de mesclagem. Adicionalmente, os coeficientes quantizados podem ser fornecidos para o processador de quantização inversa/transformação inversa 930, que pode reproduzir pixels, que podem ser combinados com o previsor e o processador por um filtro em loop 935, cuja saída pode ser armazenada em armazenamento temporário de figuração decodificada 940 para uso pelo processador de estimação/compensação de movimento 920 que tem capacidade para suportar os modos de particionamento exponencial, modo de AMVP e modo de mesclagem.
[055] A Figura 12 é um diagrama de fluxo de processo que ilustra um processo exemplificativo 1200 de codificação de um vídeo com particionamento exponencial de uma interprevisão de acordo com alguns aspectos da matéria atual que podem reduzir a complexidade de codificação ao mesmo tempo em que aumenta a eficiência de compressão; Na etapa 1210, um quadro de vídeo pode passa por segmentação de bloco inicial, por exemplo, pelo uso de um esquema de particionamento de blocos de conversão em código estruturada em árvore que pode incluir particionar um quadro de figuração em CTUs e CUs. Na etapa 1220, um bloco pode ser selecionado para particionamento exponencial; o particionamento exponencial pode incluir particionamento geométrico ou pode incluir particionamento exponencial pelo uso de uma curva não linear. A seleção pode incluir identificar, de acordo com uma regra de métrica, que o bloco deve ser processado de acordo com um modo de particionamento exponencial.
[056] Na etapa 1230, e continuando a referência à Figura 12, uma partição exponencial pode ser determinada. A linha curva e/ou segmento de linha (por exemplo 405) e/ou linha reta e/ou segmento de linha podem ser determinados que separarão os pixels contidos dentro do bloco de acordo com seu movimento interquadro em duas regiões não retangulares (por exemplo, região 0 e região 1) de modo que os pixels (por exemplo, amostras de luma) dentro das regiões
(por exemplo, região 0) tenham movimento similar e pixels dentro da outra região (por exemplo, região 1) tenham movimento similar.
[057] Na etapa 1240, e com referência contínua à Figura 12, as informações de movimento de cada região não retangular podem ser determinadas e processadas pelo uso do modo de AMVP ou modo de mesclagem. Ao processar uma região pelo uso do modo de AMVP, uma lista de candidatos pode ser construída ao considerar tanto candidatos espaciais quanto candidatos temporais, incluindo candidatos espaciais como descrito acima, e que inclui 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 previsão de vetor de movimento e uma diferença de vetor de movimento (por exemplo, residual) podem ser computados. Um índice nas listas de candidatos pode ser determinado. No modo de mesclagem, uma lista de candidatos pode ser construída ao considerar tanto candidatos espaciais quanto candidatos temporais, incluindo os candidatos espaciais descritos acima, e que inclui 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 a região para adotar a informação de movimento de outro bloco. Um índice na lista de candidatos pode ser determinado.
[058] Na etapa 1250, e com referência contínua à Figura 12, uma partição exponencial determinada e informação de movimento podem ser sinalizadas em um fluxo de bits. Sinalizar partições exponenciais em um fluxo de bits pode incluir, por exemplo, a inclusão de um índice em um ou mais modelos e/ou coeficientes predeterminados. A sinalização de informações de movimento ao processar uma região pelo uso de AMVP pode incluir a inclusão de uma diferença de vetor de movimento (por exemplo, resíduo) e índice em uma lista de candidatos de vetor de movimento em fluxo de bits. A sinalização de informação de movimento ao processar uma região pelo uso de modo de mesclagem pode incluir a inclusão de um índice em uma lista de candidatos de vetor de movimento em fluxo de bits.
[059] A Figura 13 é um diagrama de blocos de sistema que ilustra um decodificador exemplificativo 600 com capacidade para decodificar um fluxo de bits 1370 pelo uso de particionamento exponencial e interprevisão de acordo com alguns aspectos da matéria atual. O decodificador 600 pode incluir um processador de decodificador de entropia 1310, um processador de quantização inversa e transformação inversa 1320, um filtro de desblocagem 1330, um armazenamento temporário de quadro 1340, processador de compensação de movimento 1350 e processador de intraprevisão 1360. Em algumas implementações, o fluxo de bits 1370 inclui parâmetros que sinalizam um modo de particionamento exponencial, modo de AMVP e modo de mesclagem. Um processador de compensação de movimento 1350 pode reconstruir informações de pixel pelo uso de particionamento exponencial e interprevisão conforme descrito nesta revelação.
[060] Durante a operação, o fluxo de bits 1370 pode ser recebido pelo decodificador 600 e inserido no processador de decodificador de entropia 1310, cuja entropia decodifica o fluxo de bits em coeficientes quantizados. Os coeficientes quantizados podem ser fornecidos ao processador de quantização inversa e transformação inversa 1320, que pode realizar quantização inversa e transformação inversa para criar um sinal residual, que pode ser adicionado a uma saída de processador de compensação de movimento 1350 ou processador de intraprevisão 1360 de acordo com um modo de processamento. A saída do processador de compensação de movimento 1350 e processador de intraprevisão 1360 pode incluir uma previsão de bloco baseada em um bloco decodificado anteriormente. Uma soma da previsão e resíduo pode ser processada pelo filtro de desblocagem 1330 e armazenada em um armazenamento temporário de quadro 1340. Para um dado bloco, (por exemplo CU ou PU), quando o fluxo de bits 1370 sinaliza que um modo de particionamento é particionamento exponencial, o processador de compensação de movimento 1350 pode construir uma previsão baseada na abordagem de particionamento exponencial descrita no presente documento e, pelo uso ou do modo de AMVP ou modo de mesclagem, como descrito no presente documento.
[061] A Figura 14 é um diagrama de fluxo de processo que ilustra um processo exemplificativo 1400 de decodificar um fluxo de bits pelo uso de particionamento exponencial e pelo uso de interprevisão de acordo com alguns aspectos da matéria atual; e na etapa 1410, um fluxo de bits é recebido. Receber pode incluir extrair e/ou analisar fluxo de bits e informações de sinalização associadas a partir do fluxo de bits, incluindo analisar um bloco atual e informações de sinalização associadas a partir do fluxo de bits.
[062] Na etapa 1420, e ainda se referindo à Figura 14, um bloco atual pode ser particionado por meio de um modo de particionamento exponencial em uma primeira região e uma segunda região. O particionamento pode incluir determinar a possibilidade de o modo de particionamento exponencial estar habilitado (por exemplo, verdade) para o bloco, indicando o uso de particionamento exponencial pelo uso de curvas não lineares. Se o modo de particionamento exponencial não estiver habilitado (por exemplo, falso), o decodificador pode processar bloco pelo uso de um modo de particionamento exponencial alternativo, tal como particionamento geométrico; parâmetros para particionamento geométrico, incluindo, sem limitação, pontos finais de segmento de linha, coeficientes ou semelhantes, podem ser recebidos a partir do fluxo de bits, como descrito acima. Se o modo de particionamento exponencial estiver habilitado (por exemplo, verdade), o decodificador pode extrair ou determinar um ou mais parâmetros que caracterizam o particionamento exponencial. Esses parâmetros podem incluir, por exemplo, índices de coeficientes exponenciais, valores de coeficiente exponencial, índices de modelo de orientação e/ou os índices do início e do fim da linha curva (por exemplo P1P2). A extração ou determinação podem incluir identificar e recuperar os parâmetros a partir do fluxo de bits (por exemplo, analisar o fluxo de bits).
[063] Na etapa 1430, e com referência contínua à Figura 14, um vetor de movimento associado com uma região da primeira região ou segunda região pode ser determinado. Determinar o vetor de movimento pode incluir determinar a possibilidade de uma informação de movimento de região dever ser determinada pelo uso do modo de AMVP ou modo de mesclagem. Ao processar uma região pelo uso do modo de AMVP, uma lista de candidatos pode ser construída ao considerar tanto candidatos espaciais quanto candidatos temporais, incluindo candidatos espaciais como descrito acima, e que inclui 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 previsão de vetor de movimento e uma diferença de vetor de movimento (por exemplo, residual) podem ser computados. No modo de mesclagem, a determinação pode incluir construir uma lista de candidatos de candidatos espaciais e candidatos temporais para cada região. Para cada região, os candidatos espaciais podem ser candidatos espaciais como descrito acima em relação às Figuras 5-8. Construir a lista de candidatos pode incluir marcar automaticamente candidatos como indisponíveis e remover candidatos indisponíveis da lista de candidatos. Um índice em uma lista de candidatos construída pode ser analisado a partir do fluxo de bits e usado para selecionar um candidato final a partir da lista de candidatos. As informações de movimento para uma região atual podem ser determinadas como sendo iguais às informações de movimento de um candidato final (por exemplo, o vetor de movimento para a região pode ser adotado a partir do candidato final).
[064] Na etapa 1440, e ainda se referindo à Figura 14, um bloco atual pode ser decodificado pelo uso do vetor de movimento determinado.
[065] Ainda em referência à Figura 14, embora algumas variações tenham sido descritas em detalhes acima, outras modificações ou acréscimos são possíveis. Por exemplo, em algumas implementações, o particionamento exponencial pode se aplicar a blocos simétricos (8x8, 16x16, 32x32, 64x64, 128x128 e semelhantes) bem como vários blocos assimétricos (8x4, 16x8 e semelhantes).
[066] Com referência continuada à Figura 14, o particionamento pode ser sinalizado em um fluxo de bits com base em decisões de taxa de distorção em um codificador. A conversão em código pode ser baseada em uma combinação de partições predefinidas regulares (por exemplo, modelos), previsão temporal e espacial do particionamento, e deslocamentos adicionais. Cada região particionada exponencial pode utilizar previsão compensada de movimento ou intraprevisão. Um limite de regiões previstas pode ser suavizado antes de um resíduo ser adicionado. Para a conversão em código residual, um codificador pode selecionar entre um DCT retangular regular pata todo o bloco e um DCT Adaptativo de Formato para cada região.
[067] Ainda em referência à Figura 14, em algumas implementações, a árvore de decisão quadtree mais binária (QTBT) pode ser implementada. Na QTBT, em um nível de Unidade de Árvore de Conversão em Código, os parâmetros de partição de QTBT podem ser derivados dinamicamente para adaptar a características locais sem transmitir quaisquer sobrecargas. Subsequentemente, em um nível de Unidade de Conversão em Código (CU), uma estrutura de árvore de decisão classificadora de união pode eliminar iterações desnecessárias e controla o risco de previsão falsa. Em algumas implementações, particionamento exponencial pode estar disponível como uma opção de particionamento adicional disponível em cada nó de folha de QTBT. Em algumas implementações, o particionamento exponencial está disponível como uma ferramenta de conversão em código adicional em um nível de CU de particionamento de QTBT. Por exemplo, a Figura 8 ilustra um exemplo de particionamento de QTBT de um quadro, e a Figura 11 ilustra um exemplo de particionamento exponencial no nível CU da QTBT ilustrada na Figura 8.
[068] Em algumas implementações, um decodificador inclui um processador de particionamento exponencial que pode gerar particionamento exponencial para um bloco atual e fornecer todas as informações relacionadas à partição para processos dependentes. O processador de particionamento pode diretamente influenciar a compensação de movimento à medida que pode ser realizado por segmento no caso de um bloco estar particionado exponencialmente. Adicionalmente, um processador de partição pode fornecer informações de formato para o processador de intraprevisão e o processador de conversão em código de transformada.
[069] Em algumas implementações, elementos de sintaxe adicionais podem ser sinalizados em diferentes níveis de hierarquia do fluxo de bits. Para habilitar o particionamento exponencial para uma sequência inteira, uma identificação de habilitação pode ser convertida em código em um Conjunto de Parâmetros de Sequência (SPS). Adicionalmente, uma identificação de CTU pode ser convertida em código em um nível de unidade de árvore de conversão em código (CTU) para indicar a possibilidade de quaisquer unidades de conversão em código (CU) usarem particionamento exponencial. Uma identificação de CU pode ser convertida em código para indicar a possibilidade de uma unidade de conversão em código atual utilizar particionamento exponencial. Os parâmetros que especificam uma linha curva em um bloco podem ser convertidos em código. Para cada região, uma identificação pode ser decodificada, que especifica a possibilidade de uma região atual ser inter ou intraprevista.
[070] Em algumas implementações, um tamanho de região mínimo pode ser especificado.
[071] A matéria descrita no presente documento fornece muitas vantagens técnicas. Por exemplo, algumas implementações da matéria atual podem permitir o particionamento de blocos que aumentam a eficiência de compressão. Em algumas implementações, ao implementar o particionamento de uma maneira que siga mais proximamente os limites de objetos, efeitos visuais eficazes podem ser alcançados. De modo similar, em algumas implementações, ao implementar o particionamento de uma maneira que siga mais proximamente os limites de objetos, artefatos de blocagem em limites de objetos podem ser reduzidos.
[072] Deve-se notar que qualquer um ou mais dos aspectos e modalidades descritos no presente documento podem ser convenientemente implementados usando conjunto de circuitos eletrônicos digitais, conjunto de circuitos integrados, conjunto de circuitos integrados específicos de aplicação especialmente concebidos (ASICs), matrizes de portas programáveis de campo
(FPGAs), hardware de computador, 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 de usuário para um documento eletrônico, um ou mais dispositivos de servidor, como um servidor de documentos, etc.) programado de acordo com os ensinamentos da presente especificação, como será evidente para aqueles versados 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. O software de conversão em código apropriado pode ser prontamente preparado por programadores qualificados com base nos ensinamentos da presente revelação, como será evidente para aqueles versados na técnica do 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.
[073] Esse 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 capaz 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 descritas no presente documento. Exemplos de um meio de armazenamento legível por máquina incluem, mas sem limitação, um disco magnético, um disco óptico (por exemplo, CD, CD-R, DVD, DVD-R, etc.), um disco magneto-óptico, uma memória de apenas leitura "ROM", 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, conforme usado no presente documento, 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 de computador. Conforme usado no presente documento, um meio de armazenamento legível por máquina não inclui formas transitórias de transmissão de sinal.
[074] 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 quaisquer informações (por exemplo, estruturas de dados e dados) que fazem com que a máquina execute qualquer uma das metodologias e/ou modalidades descritas no presente documento.
[075] Exemplos de um dispositivo de computação incluem, mas sem limitação, 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 do tipo tablet, um telefone inteligente, etc.), um aplicativo de web, um roteador de rede, um comutador de rede, uma ponte de rede, qualquer máquina capaz 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.
[076] A Figura 15 mostra uma representação diagramática de uma modalidade de um dispositivo de computação na forma exemplificativa de um sistema de computador 1500 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 revelaçã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 revelação. O sistema de computador 1500 inclui um processador 1504 e uma memória 1508 que se comunica entre si e com outros componentes por meio de um barramento 1512. O barramento 1512 pode incluir qualquer um dos vários tipos de estruturas de barramento, incluindo, mas sem limitação, 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.
[077] A memória 1508 pode incluir vários componentes (por exemplo, mídia legível por máquina) incluindo, mas sem limitação, um componente de memória de acesso aleatório, um componente somente leitura e quaisquer combinações dos mesmos. Em um exemplo, um sistema básico de entrada/saída 1516 (BIOS), incluindo rotinas básicas que ajudam a transferir informações entre elementos dentro do sistema de computador 1500, como durante a inicialização, pode ser armazenado na memória 1508. A memória 1508 também pode incluir (por exemplo, armazenada em uma ou mais mídias legíveis por máquina) instruções (por exemplo, software) 1520 incorporando qualquer um ou mais dos aspectos e/ou metodologias da presente revelação. Em outro exemplo, a memória 1508 pode incluir ainda qualquer número de módulos de programa, incluindo, mas sem limitação, um sistema operacional, um ou mais programas de aplicativos, outros módulos de programa, dados de programa e quaisquer combinações dos mesmos.
[078] O sistema de computador 1500 também pode incluir um dispositivo de armazenamento 1524. Exemplos de um dispositivo de armazenamento (por exemplo, dispositivo de armazenamento 1524) incluem, mas 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 1524 pode ser conectado ao barramento 1512 por uma interface apropriada (não mostrada). Interfaces exemplificativas incluem, mas 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 1524 (ou um ou mais componentes do mesmo) pode ter interface removível com o sistema de computador 1500 (por exemplo, através de um conector de porta externa (não mostrado)). Particularmente, o dispositivo de armazenamento 1524 e um meio legível por máquina associado 1528 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 1500. Em um exemplo, o software 1520 pode residir, completa ou parcialmente, dentro do meio legível por máquina 1528. Em outro exemplo, o software 1520 pode residir, completa ou parcialmente, dentro do processador 1504.
[079] O sistema de computador 1500 também pode incluir um dispositivo de entrada 1532. Em um exemplo, um usuário do sistema de computador 1500 pode inserir comandos e/ou outras informações no sistema de computador 1500 por meio do dispositivo de entrada 1532. Exemplos de um dispositivo de entrada 1532 incluem, mas sem limitação, 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, uma resposta de voz sistema, etc.), um dispositivo de controle de cursor (por exemplo, um mouse), um bloco de toque, um digitalizador ó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 1532 pode ter interface com o barramento 1512 por meio de uma variedade de interfaces (não mostradas), incluindo, mas sem limitação, uma interface serial, uma interface paralela, uma porta de jogo, uma interface USB, uma interface FIREWIRE, uma interface direta para o barramento 1512 e quaisquer combinações dos mesmos. O dispositivo de entrada 1532 pode incluir uma interface de tela de toque que pode ser uma parte ou separada da tela 1536, discutida mais abaixo. O dispositivo de entrada 1532 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.
[080] Um usuário também pode inserir comandos e/ou outras informações para o sistema de computador 1500 através do dispositivo de armazenamento 1524 (por exemplo, uma unidade de disco removível, uma unidade rápida, etc.) e/ou dispositivo de interface de rede 1540. Um dispositivo de interface de rede, como o dispositivo de interface de rede 1540, pode ser utilizado para conectar o sistema de computador 1500 a uma ou mais de uma variedade de redes, como a rede 1544 e um ou mais dispositivos remotos 1548 conectados à mesma. Exemplos de um dispositivo de interface de rede incluem, mas 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 sem limitação, 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 espaço geográfico relativamente pequeno), 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 1544, pode empregar um modo de comunicação com fio e/ou sem fio. Em geral, qualquer topologia de rede pode ser usada. Informações (por exemplo, dados, software 1520, etc.) podem ser comunicadas para e/ou do sistema de computador 1500 através do dispositivo de interface de rede 1540.
[081] O sistema de computador 1500 pode ainda incluir um adaptador de exibição de vídeo 1552 para comunicar uma imagem exibível a um dispositivo de exibição, como o dispositivo de exibição 1536. Exemplos de um dispositivo de exibição incluem, mas sem limitação, uma tela de cristal líquido (LCD), um tubo de raios catódicos (CRT), uma tela de plasma, uma tela de diodo emissor de luz (LED) e quaisquer combinações dos mesmos. O adaptador de exibição 1552 e o dispositivo de exibição 1536 podem ser utilizados em combinação com o processador 1504 para fornecer representações gráficas de aspectos da presente revelação. Além de um dispositivo de exibição, o sistema de computador 1500 pode incluir um ou mais outros dispositivos de saída periféricos incluindo, mas sem limitação, um alto-falante de áudio, uma impressora e quaisquer combinações dos mesmos. Tais dispositivos de saída periféricos podem ser conectados ao barramento 1512 por meio de uma interface periférica
1556. Exemplos de uma interface periférica incluem, mas sem limitação, uma porta serial, uma conexão USB, uma conexão FIREWIRE, uma conexão paralela e quaisquer combinações das mesmas.
[082] 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 dessa 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 no presente documento é meramente ilustrativo da aplicação dos princípios da presente invenção. Além disso, embora métodos particulares no presente 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 reveladas no presente documento. Consequentemente, essa descrição destina-se a ser tomada apenas a título de exemplo e não para limitar de outra forma o âmbito dessa invenção.
[083] 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 contradita pelo contexto em que é usada, tal frase se destina a significar qualquer um dos elementos ou características listados individualmente ou qualquer um dos elementos ou características citadas em combinação com qualquer um dos outros elementos ou características recitadas. 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.
[084] A matéria descrita no presente 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 no presente documento. 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 estabelecidos no presente documento. Por exemplo, as implementações descritas acima podem ser direcionadas a várias combinações e subcombinações dos recursos revelados e/ou combinações e subcombinações de vários recursos adicionais revelados acima. Além disso, os fluxos lógicos representados nas figuras anexas e/ou descritos no presente documento não exigem necessariamente a ordem particular mostrada, ou ordem sequencial, para alcançar os resultados desejáveis.
Outras implementações podem fazer parte do escopo das seguintes reivindicações.

Claims (42)

REIVINDICAÇÕES
1. DECODIFICADOR caracterizado pelo fato de que compreende conjunto de circuitos configurado para: receber um fluxo de bits; particionar um bloco atual por meio de um modo de particionamento exponencial em uma primeira região e uma segunda região; determinar um vetor de movimento associado com uma região da primeira região ou da segunda região, em que determinar inclui construir uma lista de candidatos; e decodificar o bloco atual pelo uso do vetor de movimento determinado.
2. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que construir a lista de candidatos inclui avaliar um candidato abaixo da esquerda, um candidato esquerdo, um candidato acima da esquerda, um candidato superior, e um candidato acima da 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 particionamento exponencial inclui um segmento de linha curva entre uma primeira localização de luma e uma segunda localização de luma; o candidato abaixo da esquerda está localizado em uma terceira localização de luma imediatamente à esquerda e imediatamente abaixo da segunda localização de luma; o candidato esquerdo está localizado em uma quarta localização de luma imediatamente à esquerda da segunda localização de luma; o candidato acima da esquerda está localizado em uma quinta localização de luma imediatamente acima e imediatamente à esquerda de uma localização de luma mais superior esquerda da primeira região; o candidato acima está localizado em uma sexta localização de luma imediatamente acima da primeira localização de luma; e o candidato acima da direita está localizado em uma sétima localização de luma imediatamente acima de uma localização de luma mais à direita da segunda região.
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 particionamento exponencial inclui um segmento de linha curva entre uma primeira localização de luma e uma segunda localização de luma; o candidato abaixo da esquerda está localizado em uma terceira localização de luma imediatamente à esquerda e imediatamente abaixo de uma localização de luma mais inferior à direita da segunda região; o candidato esquerdo está localizado em uma quarta localização de luma imediatamente à esquerda da localização de luma inferior esquerda da segunda região; o candidato acima da esquerda está localizado em uma quinta localização de luma imediatamente acima e imediatamente à esquerda da primeira localização; o candidato acima está localizado em uma sexta localização de luma imediatamente acima de uma localização de luma mais superior à direita da segunda região; e o candidato acima da direita está localizado em uma sétima localização de luma imediatamente acima e à direita da localização de luma mais superior à 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 segunda região, o decodificador configurado adicionalmente para marcar um candidato como indisponível em resposta à determinação de que o candidato está colocalizado com a primeira 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 e em que o decodificador é configurado adicionalmente para marcar automaticamente o candidato superior esquerdo como indisponível em resposta à determinação de que o modo de particionamento exponencial está habilitado.
7. DECODIFICADOR, de acordo com a reivindicação 2, caracterizado pelo fato de que o vetor de movimento determinado é para a primeira região, o decodificador configurado adicionalmente para marcar automaticamente o candidato superior direito como indisponível em resposta à determinação de que o modo de particionamento exponencial está habilitado.
8. DECODIFICADOR, de acordo com a reivindicação 2, caracterizado pelo fato de que o vetor de movimento determinado é para a primeira região, o decodificador configurado adicionalmente para marcar automaticamente o candidato inferior esquerdo como indisponível em resposta à determinação de que o modo de particionamento exponencial está habilitado.
9. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o modo de particionamento exponencial compreende adicionalmente um modo de particionamento geométrico.
10. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que ser configurado adicionalmente 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 configurado adicionalmente para reconstruir dados de pixel do bloco atual, sendo que a primeira região e a segunda região são não retangulares.
12. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o modo de particionamento exponencial é sinalizado no fluxo de bits.
13. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que particionar o bloco atual por meio do modo de particionamento exponencial na primeira região e na segunda região inclui particionar o bloco atual com uma linha curva que compreende um modelo predefinido.
14. DECODIFICADOR, de acordo com a reivindicação 13, caracterizado pelo fato de que a linha curva que particiona o bloco atual na primeira região e na segunda região é compreendida por um valor de coeficiente predefinido.
15. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o modo de particionamento exponencial está disponível para tamanhos de bloco maiores ou iguais a amostras de luma 8x8.
16. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: um processador de decodificador de entropia configurado para receber o fluxo de bits e decodificar o fluxo de bits em coeficientes quantizados; um processador de quantização inversa e transformação inversa configurado para processar os coeficientes quantizados, incluindo realizar uma transformada de cosseno discreta inversa; um filtro de desblocagem; um armazenamento temporário de quadro; e um processador de intraprevisão.
17. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o fluxo de bits inclui um parâmetro que indica a possibilidade de o modo de particionamento exponencial estar habilitado para o bloco atual.
18. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o bloco atual forma parte de uma árvore de decisão quadtree mais binária.
19. DECODIFICADOR, de acordo com a reivindicação 18, caracterizado pelo fato de que o bloco atual é um nó não folha da árvore de decisão quadtree mais binária.
20. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que o bloco atual é uma unidade de árvore de conversão em código ou uma unidade de conversão em código.
21. DECODIFICADOR, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira região é uma unidade de conversão em código ou uma unidade de previsão.
22. MÉTODO caracterizado pelo fato de que compreende: receber, por um decodificador, um fluxo de bits particionar, pelo decodificador, um bloco atual por meio de um modo de particionamento exponencial em uma primeira região e uma segunda região; determinar, pelo decodificador, um vetor de movimento associado com uma região da primeira região ou da segunda região, sendo que a determinação inclui construir uma lista de candidatos; e decodificar, pelo decodificador, o bloco atual pelo uso do vetor de movimento determinado.
23. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que construir a lista de candidatos inclui avaliar um candidato abaixo da esquerda, um candidato esquerdo, um candidato acima da esquerda, um candidato superior, e um candidato acima da direita.
24. MÉTODO, de acordo com a reivindicação 23, caracterizado pelo fato de que: o vetor de movimento determinado é para a primeira região; o modo de particionamento exponencial inclui um segmento de linha curva entre uma primeira localização de luma e uma segunda localização de luma; o candidato abaixo da esquerda está localizado em uma terceira localização de luma imediatamente à esquerda e imediatamente abaixo da segunda localização de luma; o candidato esquerdo está localizado em uma quarta localização de luma imediatamente à esquerda da segunda localização de luma; o candidato acima da esquerda está localizado em uma quinta localização de luma imediatamente acima e imediatamente à esquerda de uma localização de luma mais superior esquerda da primeira região; o candidato acima está localizado em uma sexta localização de luma imediatamente acima da primeira localização de luma; e o candidato acima da direita está localizado em uma sétima localização de luma imediatamente acima de uma localização de luma mais à direita da segunda região.
25. MÉTODO, de acordo com a reivindicação 23, caracterizado pelo fato de que: o vetor de movimento determinado é para a segunda região, em que o modo de particionamento exponencial inclui um segmento de linha curva entre uma primeira localização de luma e uma segunda localização de luma; o candidato abaixo da esquerda está localizado em uma terceira localização de luma imediatamente à esquerda e imediatamente abaixo de uma localização de luma mais inferior à direita da segunda região; o candidato esquerdo está localizado em uma quarta localização de luma imediatamente à esquerda da localização de luma inferior esquerda da segunda região; o candidato acima da esquerda está localizado em uma quinta localização de luma imediatamente acima e imediatamente à esquerda da primeira localização; o candidato acima está localizado em uma sexta localização de luma imediatamente acima de uma localização de luma mais superior à direita da segunda região; e o candidato acima da direita está localizado em uma sétima localização de luma imediatamente acima e à direita da localização de luma mais superior à direita da segunda região.
26. MÉTODO, de acordo com a reivindicação 23, caracterizado pelo fato de que o vetor de movimento determinado é para a segunda região, e que compreende adicionalmente marcar um candidato como indisponível em resposta à determinação de que o candidato está colocalizado com a primeira região.
27. MÉTODO, de acordo com a reivindicação 23, caracterizado pelo fato de que o vetor de movimento determinado é para a segunda região e o método compreende adicionalmente: marcar automaticamente o candidato superior esquerdo como indisponível em resposta à determinação de que o modo de particionamento exponencial está habilitado.
28. MÉTODO, de acordo com a reivindicação 23, caracterizado pelo fato de que o vetor de movimento determinado é para a primeira região e o método compreende adicionalmente: marcar automaticamente o candidato superior direito como indisponível em resposta à determinação de que o modo de particionamento exponencial está habilitado.
29. MÉTODO, de acordo com a reivindicação 23, caracterizado pelo fato de que o vetor de movimento determinado é para a primeira região e o método compreende adicionalmente: marcar automaticamente o candidato inferior esquerdo como indisponível em resposta à determinação de que o modo de particionamento exponencial está habilitado.
30. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que o modo de particionamento exponencial compreende adicionalmente um modo de particionamento geométrico.
31. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que compreende adicionalmente determinar que um modo de mesclagem ou modo de previsão de vetor de movimento avançado está habilitado para a primeira região.
32. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que compreende adicionalmente reconstruir dados de pixel do bloco atual, sendo que a primeira região e a segunda região não são retangulares.
33. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que o modo de particionamento exponencial é sinalizado no fluxo de bits.
34. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que particionar o bloco atual por meio do modo de particionamento exponencial na primeira região e na segunda região inclui particionar o bloco atual com uma linha curva compreendida por um modelo predefinido.
35. MÉTODO, de acordo com a reivindicação 33, caracterizado pelo fato de que a linha curva que particiona o bloco atual na primeira região e na segunda região é compreendida por um valor de coeficiente predefinido.
36. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que o modo de particionamento exponencial está disponível para tamanhos de bloco maiores ou iguais a amostras de luma 8x8.
37. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que o decodificador compreende adicionalmente: um processador de decodificador de entropia configurado para receber o fluxo de bits e decodificar o fluxo de bits em coeficientes quantizados; um processador de quantização inversa e transformação inversa configurado para processar os coeficientes quantizados, incluindo realizar uma transformada de cosseno discreta inversa; um filtro de desblocagem; um armazenamento temporário de quadro; e um processador de intraprevisão.
38. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que o fluxo de bits inclui um parâmetro que indica a possibilidade de o modo de particionamento exponencial estar habilitado para o bloco atual.
39. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que o bloco atual forma parte de uma árvore de decisão quadtree mais binária.
40. MÉTODO, de acordo com a reivindicação 38, caracterizado pelo fato de que o bloco atual é um nó não folha da árvore de decisão quadtree mais binária.
41. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que o bloco atual é uma unidade de árvore de conversão em código ou uma unidade de conversão em código.
42. MÉTODO, de acordo com a reivindicação 22, caracterizado pelo fato de que a primeira região é uma unidade de conversão em código ou uma unidade de previsão.
BR112021014667-9A 2019-01-28 2020-01-28 Interprevisão em particionamento exponencial BR112021014667A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962797816P 2019-01-28 2019-01-28
US62/797,816 2019-01-28
PCT/US2020/015408 WO2020159988A1 (en) 2019-01-28 2020-01-28 Inter prediction in exponential partitioning

Publications (1)

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

Family

ID=71841915

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021014667-9A BR112021014667A2 (pt) 2019-01-28 2020-01-28 Interprevisão em particionamento exponencial

Country Status (9)

Country Link
US (1) US20210360271A1 (pt)
EP (1) EP3918791A4 (pt)
JP (2) JP2022523309A (pt)
KR (1) KR20210118151A (pt)
CN (1) CN113647105A (pt)
BR (1) BR112021014667A2 (pt)
MX (1) MX2021009028A (pt)
SG (1) SG11202108101SA (pt)
WO (1) WO2020159988A1 (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3811611A4 (en) 2018-06-22 2022-06-15 OP Solutions, LLC BLOCK LEVEL GEOMETRIC PARTITIONING
KR20210089654A (ko) * 2018-10-01 2021-07-16 오피 솔루션즈, 엘엘씨 지수 파티셔닝의 방법들 및 시스템들
CN113647104A (zh) 2019-01-28 2021-11-12 Op方案有限责任公司 在以自适应区域数量进行的几何分区中的帧间预测
CN113473141A (zh) * 2020-03-31 2021-10-01 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器及计算机可读存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8170095B2 (en) * 1998-12-21 2012-05-01 Zin Stai Pte. In, Llc Faster image processing
KR100357266B1 (ko) * 2000-12-06 2002-10-19 엘지전자 주식회사 데이터 분할 기법을 이용한 영상 부호화 전송방법
GB0406512D0 (en) * 2004-03-23 2004-04-28 British Telecomm Method and system for semantically segmenting scenes of a video sequence
US20090196342A1 (en) * 2006-08-02 2009-08-06 Oscar Divorra Escoda Adaptive Geometric Partitioning For Video Encoding
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
JP4666012B2 (ja) * 2008-06-20 2011-04-06 ソニー株式会社 画像処理装置、画像処理方法、プログラム
DK2924995T3 (en) * 2010-07-09 2018-10-01 Samsung Electronics Co Ltd PROCEDURE FOR VIDEO DECODING, BY USING BLOCK COLLECTION
JP2012023597A (ja) * 2010-07-15 2012-02-02 Sony Corp 画像処理装置及び画像処理方法
CN107071460B (zh) * 2010-12-14 2020-03-06 M&K控股株式会社 用于编码运动画面的设备
PL3826306T3 (pl) * 2011-01-07 2023-03-20 Ntt Docomo, Inc. Sposób kodowania predykcyjnego, urządzenie do kodowania predykcyjnego, i program do kodowania predykcyjnego dla wektora ruchu oraz sposób dekodowania predykcyjnego, urządzenie do dekodowania predykcyjnego, i program do dekodowania predykcyjnego dla wektora ruchu
US9008170B2 (en) * 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
US9313494B2 (en) * 2011-06-20 2016-04-12 Qualcomm Incorporated Parallelization friendly merge candidates for video coding
EP4199513A1 (en) * 2011-06-23 2023-06-21 Huawei Technologies Co., Ltd. Offset decoding device, offset coding device, image filtering device, and data structure
KR20130002242A (ko) * 2011-06-28 2013-01-07 주식회사 케이티 영상 정보의 부호화 방법 및 복호화 방법
IN2014CN03712A (pt) * 2011-10-31 2015-09-04 Mitsubishi Electric Corp
US9740798B2 (en) * 2013-03-15 2017-08-22 Micron Technology, Inc. Inexact search acceleration
KR101909863B1 (ko) * 2013-07-08 2018-10-18 미디어텍 싱가폴 피티이. 엘티디. 3d 비디오 코딩에서 단순화된 cabac 코딩의 방법
US10567799B2 (en) * 2014-03-07 2020-02-18 Qualcomm Incorporated Simplified sub-prediction unit (sub-PU) motion parameter inheritance (MPI)
CN106797471B (zh) * 2014-09-03 2020-03-10 联发科技股份有限公司 一种对图像内区块使用调色板预测模式的颜色索引图解码方法
US10306258B2 (en) * 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning
WO2018028615A1 (en) * 2016-08-12 2018-02-15 Mediatek Inc. Methods and apparatuses of predictor-based partition in video processing system

Also Published As

Publication number Publication date
SG11202108101SA (en) 2021-08-30
EP3918791A4 (en) 2022-03-16
EP3918791A1 (en) 2021-12-08
WO2020159988A1 (en) 2020-08-06
KR20210118151A (ko) 2021-09-29
US20210360271A1 (en) 2021-11-18
CN113647105A (zh) 2021-11-12
JP2022523309A (ja) 2022-04-22
MX2021009028A (es) 2021-10-13
JP2023101782A (ja) 2023-07-21

Similar Documents

Publication Publication Date Title
BR112021014667A2 (pt) Interprevisão em particionamento exponencial
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
US20230007288A1 (en) Decoder with merge candidate reorder based on common motion vector
KR20220002990A (ko) 인터 예측에서의 글로벌 모션 제약 모션 벡터
KR20220002989A (ko) 픽처 헤더 내의 글로벌 모션 벡터의 시그널링
KR20210153725A (ko) 글로벌 모션 벡터들의 효율적인 코딩
KR20220002996A (ko) 글로벌 모션을 갖는 프레임들에서의 후보들
US11622105B2 (en) Adaptive block update of unavailable reference frames using explicit and implicit signaling
KR20220002991A (ko) 글로벌 모션을 갖는 프레임들에서의 적응적 모션 벡터 예측 후보들
US11812044B2 (en) Signaling of global motion relative to available reference frames
US11595652B2 (en) Explicit signaling of 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
JP2024095835A (ja) 適応的な数の領域を伴う幾何学的分割のための形状適応離散コサイン変換