BR112019019423A2 - propagação de modo de intrapredição - Google Patents

propagação de modo de intrapredição Download PDF

Info

Publication number
BR112019019423A2
BR112019019423A2 BR112019019423A BR112019019423A BR112019019423A2 BR 112019019423 A2 BR112019019423 A2 BR 112019019423A2 BR 112019019423 A BR112019019423 A BR 112019019423A BR 112019019423 A BR112019019423 A BR 112019019423A BR 112019019423 A2 BR112019019423 A2 BR 112019019423A2
Authority
BR
Brazil
Prior art keywords
block
video data
mode
intraprediction
video
Prior art date
Application number
BR112019019423A
Other languages
English (en)
Inventor
Chen Jianle
Zhang Kai
Karczewicz Marta
Li Xiang
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of BR112019019423A2 publication Critical patent/BR112019019423A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

trata-se de um método de decodificação de dados de vídeo, que inclui receber um primeiro bloco de dados de vídeo codificados com o uso de modo de interpredição que associa um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo, e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.

Description

PROPAGAÇÃO DE MODO DE INTRAPREDIÇÃO [0001] Este pedido reivindica o benefício do pedido de patente provisório n° U.S. 62/475.149, depositado em 22 de março de 2017, cujo conteúdo integral está incorporado ao presente documento a título de referência.
CAMPO DA TÉCNICA [0002] Esta revelação se refere à codificação de vídeo e à decodificação de vídeo.
ANTECEDENTES [0003] Capacidades de vídeo digital podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores do tipo laptop ou desktop, computadores do tipo tablet, leitores de e-book, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones celulares ou de rádio via satélite, assim chamados telefones inteligentes, dispositivos de teleconferência de vídeo e similares. As técnicas de codificação de vídeo digital implementam as técnicas de codificação de vídeo, tais como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), padrão de Codificação de Vídeo de Alta Eficiência (HEVC ou H.265) e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de maneira mais eficiente implementando-se tais técnicas de codificação de vídeo.
Petição 870190093362, de 18/09/2019, pág. 6/117
2/78 [0004] As técnicas de codificação de video incluem predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou remover redundância inerente às sequências de vídeo. Para codificação de vídeo baseada em bloco, uma fatia de vídeo (por exemplo, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser particionada em blocos de vídeo, que também podem ser chamados de blocos de árvore, unidades de codificação (CUs) e/ou nós de codificação. As imagens podem ser chamadas de quadros, e imagens de referência podem ser chamadas de quadros de referência.
[0005] A predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco preditivo original e o bloco preditivo. Para compactação adicional, os dados residuais podem ser transformados a partir do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residuais que, então podem ser quantizados. A codificação por entropia pode ser aplicada para alcançar ainda mais compactação.
SUMÁRIO [0006] Esta revelação descreve técnicas para codificação e decodificação de dados de vídeo. Em particular, esta revelação descreve técnicas relacionadas à intrapredição, técnicas para a propagação de modos de intracodificação para blocos intercodifiçados e/ou técnicas para codificar blocos de vídeo. Em exemplos da revelação, um codificador de vídeo e um decodificador de vídeo podem ser configurados para associar um modo de intrapredição a
Petição 870190093362, de 18/09/2019, pág. 7/117
3/78 blocos de dados de video que são, de outro modo, codificados com o uso de um modo de interpredição. 0 modo de intrapredição associado pode ser copiado e/ou determinado a partir do modo de intrapredição associado a outro bloco de dados de vídeo. 0 outro bloco de dados de vídeo pode ser um bloco colocalizado em outro quadro, um bloco de referência de dados de vídeo em outro quadro, ou outro bloco de dados de vídeo no mesmo quadro.
[0007] Em alguns exemplos, o codificador de vídeo e o decodificador de vídeo podem usar os modos de intrapredição associados para os blocos interpreditos predizerem os modos de intrapredição para outros blocos de dados de vídeo. Em outros exemplos, o codificador de vídeo e o decodificador de vídeo podem decodificar um bloco de dados com o uso tanto de um modo de interpredição como um modo de intrapredição. As duas predições podem ser combinadas em uma soma ponderada para determinar a predição final para o bloco.
[0008] Em um exemplo, esta revelação descreve um método de decodificação de dados de vídeo que compreende receber um primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição, associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo, e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
[0009] Em outro exemplo, esta revelação descreve um aparelho configurado para decodificar dados de
Petição 870190093362, de 18/09/2019, pág. 8/117
4/78 video, sendo que o aparelho compreende uma memória configurada para armazenar um primeiro bloco de dados de vídeo e um ou mais processadores em comunicação com a memória, sendo que o um ou mais processadores são configurados para receber o primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição, associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em gue o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo, e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
[0010] Em outro exemplo, esta revelação descreve um aparelho configurado para decodificar dados de vídeo, sendo que o aparelho compreende meios para receber um primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição, meios para associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo, e meios para determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
[0011] Em outro exemplo, esta revelação descreve um meio de armazenamento legível por computador que armazena instruções que, quando executadas, fazem com que um ou mais processadores de um dispositivo configurado para decodificar dados de vídeo para receber o primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição, associar um primeiro modo de intrapredição
Petição 870190093362, de 18/09/2019, pág. 9/117
5/78 ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo, e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
[0012] Em outro exemplo, esta revelação descreve um método de codificação de dados de vídeo, sendo que o método compreende codificar um primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição, associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo, e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
[0013] Em outro exemplo, esta revelação descreve um aparelho configurado para codificar dados de vídeo, sendo que o aparelho compreende uma memória configurada para armazenar um primeiro bloco de dados de vídeo e um ou mais processadores em comunicação com a memória, sendo que o um ou mais processadores são configurados para codificar o primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição, associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em gue o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo, e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
[0014] As técnicas exemplificativas desta
Petição 870190093362, de 18/09/2019, pág. 10/117
6/78 revelação para associar um modo de intrapredição ao primeiro bloco de dados de video, em que o modo de intrapredição é associado a um segundo bloco de dados de video, podem ser usadas em conjunto com uma ou mais outras técnicas descritas nesta revelação em qualquer combinação. Por exemplo, as técnicas desta revelação para associar um modo de intrapredição ao primeiro bloco de dados de video podem ser usadas em conjunto com técnicas para determinar um modo de intrapredição para outro bloco de dados de video, determinar um modo de intrapredição para outro bloco de dados de video com o uso de uma lista de modos mais prováveis, técnicas para realizar uma predição combinada, e técnicas para associar um modo de intrapredição a um subbloco de dados de video.
[0015] Os detalhes de um ou mais exemplos da revelação são apresentados nos desenho anexos e na descrição abaixo. Outras características, objetivos e vantagens da invenção se tornarão evidentes a partir da descrição e desenhos e das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS [0016] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo configurado para implementar as técnicas da revelação.
[0017] A Figura 2 é um diagrama de blocos que ilustra um exemplo de um codificador de vídeo configurado para implementar as técnicas da revelação.
[0018] A Figura 3 é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo configurado para implementar as técnicas da revelação.
Petição 870190093362, de 18/09/2019, pág. 11/117
7/78 [0019] A Figura 4 é um diagrama conceituai que ilustra tipos exemplificativos de blocos e fatias na codificação de vídeo, de acordo com as técnicas desta revelação.
[0020] A Figura 5 é um diagrama conceituai que ilustra modos de intrapredição direcional exemplificativos, de acordo com as técnicas desta revelação.
[0021] A Figura 6 é um diagrama conceituai que ilustra técnicas de interpredição, de acordo com as técnicas desta revelação.
[0022] A Figura 7 é um diagrama conceituai que ilustra blocos vizinhos exemplificativos de um bloco atual na codificação de vídeo.
[0023] A Figura 8 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de um bloco colocalizado.
[0024] A Figura 9 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de uma sequência de blocos colocalizados.
[0025] A Figura 10 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de um bloco de referência.
[0026] A Figura 11 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de uma sequência de blocos de referência.
[0027] A Figura 12 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de múltiplos blocos de referência.
[0028] A Figura 13 é um diagrama conceituai
Petição 870190093362, de 18/09/2019, pág. 12/117
8/78 que ilustra um exemplo de obtenção de um modo de intrapredição para um sub-bloco de um bloco de video.
[0029] A Figura 14 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição para um bloco que cobre múltiplos blocos colocalizados.
[0030] A Figura 15 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de um bloco vizinho.
[0031] A Figura 16 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de uma sequência de blocos vizinhos.
[0032] A Figura 17 é um diagrama de fluxo que ilustra uma técnica de codificação exemplificativa da revelação.
[0033] A Figura 18 é um diagrama de fluxo que ilustra uma técnica de decodificação exemplificativa da revelação.
DESCRIÇÃO DETALHADA [0034] Esta revelação descreve técnicas para codificação e decodificação de dados de video. Em particular, esta revelação descreve técnicas relacionadas à intrapredição, propagação do modo de intracodificação para blocos intercodifiçados, blocos de video de codificação e/ou determinação de modos de codificação com base nos modos de intracodif icação. Em geral, se um dispositivo de codificação de video, tal como um decodificador de video, recebe um bloco de video que pode ter sido codificado com o uso de um modo de intracodificação, então o dispositivo de codificação de video pode decodificar o bloco de video
Petição 870190093362, de 18/09/2019, pág. 13/117
9/78 recebido com o uso do modo de intracodificação. Entretanto, se o bloco de video recebido for um interbloco, o dispositivo de codificação de video pode derivar um modo de intrapredição e associar o modo de intracodificação ao bloco intercodifiçado. 0 modo de intrapredição associado pode ser copiado e/ou determinado a partir do modo de intrapredição associado a outro bloco de dados de video. 0 outro bloco de dados de video pode ser um bloco colocalizado em outro quadro, um bloco de referência de dados de video em outro quadro, ou outro bloco de dados de video no mesmo quadro.
[0035] Em alguns exemplos, um codificador de video e decodif icador de video podem usar os modos de intrapredição associados para os blocos interpreditos predizerem os modos de intrapredição para outros blocos de dados de video. Os blocos interpreditos se referem a blocos que codificaram ou decodificaram com base nos blocos em outra imagem do que os blocos interpreditos, e os blocos intrapreditos se referem a blocos que codificaram ou decodificam com base nos valores de amostra de blocos na mesma que os blocos intrapreditos. Em outros exemplos, o codificador de video e o decodificador de video podem decodificar um bloco de dados com o uso tanto de um modo de interpredição como um modo de intrapredição. As duas predições podem ser combinadas em uma soma ponderada para determinar a predição final para o bloco.
[0036] Os padrões de codificação de video incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC) ,
Petição 870190093362, de 18/09/2019, pág. 14/117
10/78
ITU-T Η.265 (também conhecido como Codificação de Vídeo de Alta Eficiência (HEVC)), incluindo extensões, tais como Codificação de Vídeo Escalonável (SVC), Codificação de Vídeo Multivistas (MVC), o Modelo Exploratório Conjunto (JEM) e Codificação de Conteúdo de Tela (SCC) . Outros padrões de codificação de vídeo incluem padrões de codificação de vídeo futuros, tal como o modelo de teste de Equipe de Exploração de Vídeos Conjunta (JVET), que é a atividade em desenvolvimento além de HEVC. Os padrões de codificação de vídeo também incluem codecs de vídeo proprietários, tais como Google VP8, VP9, VP 10, e codecs de vídeo desenvolvidos por outras organizações, por exemplo, a Aliança para Mídia Aberta (Alliance for Open Media).
[0037] Várias técnicas nesta revelação podem ser descritas com referência a um codificador de vídeo, que se destina a ser um termo genérico que pode se referir a um codificador de vídeo ou a um decodificador de vídeo. Exceto onde explicitamente indicado em contrário, deve-se presumir que as técnicas descritas em relação a um codificador de vídeo ou um decodificador de vídeo também podem ser realizadas por outro dentre um codificador de vídeo ou um decodificador de vídeo. Por exemplo, em muitos casos, um decodificador de vídeo realiza a mesma técnica ou, algumas vezes uma técnica de codificação recíproca que um codificador de vídeo a fim de decodificar dados de vídeo codificados. Em muitos casos, um codificador de vídeo também inclui um circuito de decodificação de vídeo e, dessa forma o codificador de vídeo realiza a decodificação de vídeo como parte da decodificação de dados de vídeo.
Petição 870190093362, de 18/09/2019, pág. 15/117
11/78
Dessa forma, exceto onde indicado em contrário, as técnicas descritas nesta revelação em relação a um decodificador de video também podem ser realizadas por um codificador de vídeo, e vice-versa.
[0038] Essa revelação também pode usar termos, tais como camada atual, bloco atual, imagem atual, fatia atual, etc. No contexto desta revelação, o termo atual se destina a identificar uma camada, bloco, imagem, fatia, etc. que está sendo atualmente codificado, em oposição a, por exemplo, camadas, blocos, imagens e fatias anteriormente codificados ou ainda a serem blocos, imagens e fatias codificados. Nesta revelação, os termos imagem e quadro podem ser usados de forma intercambiável.
[0039] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo 10 que pode ser configurado para realizar as técnicas desta revelação. Conforme mostrado na Figura 1, o sistema 10 inclui o dispositivo de origem 12 que fornece dados de vídeo codificados a serem decodificados em um momento posterior pelo dispositivo de destino 14. Em particular, o dispositivo de origem 12 fornece os dados de vídeo para o dispositivo de destino 14 através do meio legível por computador 16. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla gama de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (por exemplo, computador do tipo laptop), computadores do tipo tablet, decodificadores de sinais, aparelhos de telefone, tais como assim chamados telefones inteligentes, computadores do tipo tablet, televisões,
Petição 870190093362, de 18/09/2019, pág. 16/117
12/78 câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de jogos de video, dispositivo de transmissão continua de video ou similares. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio. Dessa forma, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio. 0 dispositivo de origem 12 é um dispositivo de codificação de video exemplificativo (isto é, um dispositivo para codificação de dados de video). 0 dispositivo de destino 14 é um dispositivo de decodificação de video exemplificativo (isto é, um dispositivo para decodif icação de dados de video) .
[0040] No exemplo da Figura 1, o dispositivo de origem 12 inclui fonte de video 18, mídia de armazenamento 19 configurada para armazenar dados de vídeo, codificador de vídeo 20, e interface de saída 22. O dispositivo de destino 14 inclui interface de entrada 28, mídia de armazenamento 26 configurada para armazenar dados de vídeo codificados, decodificador de vídeo 30 e dispositivo de exibição 32. Em outros exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 incluem outros componentes ou disposições. Por exemplo, o dispositivo de origem 12 pode receber dados de vídeo a partir de uma fonte de vídeo externa, tal como uma câmera externa. Igualmente, o dispositivo de destino 14 pode fazer interface com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado 32.
[0041] O sistema ilustrado 10 da Figura 1 é meramente um exemplo. As técnicas para processamento e/ou
Petição 870190093362, de 18/09/2019, pág. 17/117
13/78 codificação (por exemplo, codificação e/ou decodificação) de dados de vídeo podem ser realizadas por qualquer dispositivo de codificação e/ou decodificação de vídeo. Embora as técnicas desta revelação sejam geralmente realizadas por um dispositivo de codificação de vídeo e/ou dispositivo de decodificação de vídeo, as técnicas também podem ser realizadas por um codificador/decodificador de vídeo, tipicamente chamado de CODEC. 0 dispositivo de origem 12 e o dispositivo de destino 14 são meramente exemplos de tais dispositivos de codificação em que o dispositivo de origem 12 gera dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 podem operar de uma maneira substancialmente simétrica, de modo que cada um dentre o dispositivo de origem 12 e o dispositivo de destino 14 inclua componentes de codificação e decodificação de vídeo. Portanto, o sistema 10 pode suportar transmissão de vídeo unidirecional ou bidirecional entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, para transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo ou videotelefonia.
[0042] A fonte de vídeo 18 do dispositivo de origem 12 pode incluir um dispositivo de captura de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo contendo vídeo anteriormente capturado e/ou uma interface de alimentação de vídeo para receber dados de vídeo a partir de um provedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo 18 pode gerar dados baseados em computação gráfica como o vídeo de origem ou uma combinação
Petição 870190093362, de 18/09/2019, pág. 18/117
14/78 de video ao vivo, video arquivado e video gerado por computador. 0 dispositivo de origem 12 pode compreender uma ou mais mídias de armazenamento de dados (por exemplo, mídia de armazenamento 19) configuradas para armazenar os dados de vídeo. As técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral e podem ser aplicadas a aplicações sem fio e/ou com fio. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. A interface de saída 22 pode emitir as informações de vídeo codificadas (por exemplo, um fluxo de bits de dados de vídeo codificados) para o meio legível por computador 16.
[0043] O dispositivo de destino 14 pode receber os dados de vídeo codificados a serem decodificados através do meio legível por computador 16. O meio legível por computador 16 pode compreender qualquer tipo de meio ou dispositivo com capacidade de mover os dados de vídeo codificados a partir do dispositivo de origem 12 para o dispositivo de destino 14. Em alguns exemplos, o meio legível por computador 16 compreende um meio de comunicação para permitir que o dispositivo de origem 12 transmita dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou com fio, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode fazer parte de uma rede baseada em pacote,
Petição 870190093362, de 18/09/2019, pág. 19/117
15/78 tal como rede local, uma rede de longa distância ou uma rede global, tal como a Internet. 0 meio de comunicação pode incluir roteadores, comutadores, estações-base ou qualquer outro equipamento que pode ser útil para facilitar a comunicação do dispositivo de origem 12 para o dispositivo de destino 14. 0 dispositivo de destino 14 pode compreender uma ou mais mídias de armazenamento de dados configuradas para armazenar dados de vídeo codificados e dados de vídeo decodificados.
[0044] Em alguns exemplos, os dados codificados podem ser emitidos a partir da interface de saída 22 para um dispositivo de armazenamento. De modo similar, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada. O dispositivo de armazenamento pode incluir qualquer uma dentre uma variedade de mídias de armazenamento de dados distribuídos ou localmente acessados, tal como um disco rígido, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil, ou qualquer outra mídia de armazenamento digital adequada para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou outros dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivo de origem 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento através de transmissão contínua ou download. O servidor de arquivos pode ser qualquer tipo de servidor com capacidade para armazenar dados de vídeo codificados e transmitir esses dados de
Petição 870190093362, de 18/09/2019, pág. 20/117
16/78 video codificados para o dispositivo de destino 14. Os servidores de arquivos exemplificativos incluem um servidor da web (por exemplo, para um site da web), um servidor FTP, dispositivos de armazenamento conectado à rede (NAS) ou uma unidade de disco. 0 dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão de Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão WiFi), um conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenado em um servidor de arquivos. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento pode ser uma transmissão contínua, uma transmissão por download ou uma combinação das mesmas.
[0045] As técnicas descritas nesta revelação podem ser aplicadas à codificação de vídeo no suporte de qualquer uma dentre uma variedade de aplicações multimídia, tais como difusões de televisão over-the-air, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões de vídeo por transmissão contínua na Internet, tal como transmissão contínua adaptável dinâmica através de HTTP (DASH), vídeo digital que é codificado em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional para suportar aplicações, tais como transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo e/ou videotelefonia.
Petição 870190093362, de 18/09/2019, pág. 21/117
17/78 [0046] O meio legível por computador 16 pode incluir mídia transitória, tal como uma difusão sem fio ou transmissão de rede com fio, ou mídia de armazenamento (ou seja, mídia de armazenamento não transitória), tal como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outra mídia legível por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificados a partir do dispositivo de origem 12 e fornecer os dados de vídeo codificados para o dispositivo de destino 14, por exemplo, através da transmissão de rede. De modo similar, um dispositivo de computação de uma instalação de produção de meio, tal como uma instalação de estampagem de disco, pode receber dados de vídeo codificados a partir do dispositivo de origem 12 e produzir um disco que contém os dados de vídeo codificados. Portanto, o meio legível por computador 16 pode ser entendido como incluindo uma ou mais mídias legíveis por computador de várias formas, em vários exemplos.
[0047] A interface de entrada 28 do dispositivo de destino 14 recebe informações do meio legível por computador 16. As informações de meio legíveis por computador 16 podem incluir informações de sintaxe definidas pelo codificador de vídeo 20 do codificador de vídeo 20, que também podem ser usadas pelo decodificador de vídeo 30, que inclui elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, grupos de imagens (GOPs). A mídia de armazenamento 26 pode armazenar dados de vídeo codificados recebidos pela interface de entrada 28. O
Petição 870190093362, de 18/09/2019, pág. 22/117
18/78 dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário e pode compreender qualquer um dentre uma variedade de dispositivos de exibição, tal como um tubo de raios catódicos (CRT), uma tela de cristal líquido (LCD), uma tela de plasma, uma tela de diodo emissor de luz orgânico (OLED) ou outro tipo de dispositivo de exibição.
[0048] O codificador de vídeo 20 e o decodificador de vídeo 30, cada um, podem ser implementados como qualquer um dentre uma variedade de conjuntos de circuito de codificador de vídeo e/ou decodificador de vídeo, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de porta programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são parcialmente implementadas em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta revelação. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser incluídos em um ou mais codificadores ou decodificadores, cada um dos quais pode ser integrado como parte de um CODEC combinado em um respectivo dispositivo.
[0049] Em alguns exemplos, o codificador de vídeo 20 e o decodif icador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo. Os padrões de codificação de vídeo exemplificativos incluem, porém sem
Petição 870190093362, de 18/09/2019, pág. 23/117
19/78 limitação, ITU-T Η.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC) , incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo Multivistas (MVC). Além disso, um novo padrão de codificação de vídeo, a saber Codificação de Vídeo de Alta Eficiência (HEVC) ou ITU-T H.265, incluindo sua faixa e extensões de codificação de conteúdo, codificação de vídeo 3D (3D-HEVC) e extensões multivistas (MV-HEVC) e extensão escalonável (SHVC), foi desenvolvido pela Equipe de Colaboração Conjunta sobre Vídeo (JCT-VC) de Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG).
[0050] Em outros exemplos, o codificador de vídeo 20 e o decodif icador de vídeo 30 podem ser configurados para operar de acordo com outras técnicas e/ou padrões de codificação de vídeo, incluindo novas técnicas de codificação de vídeo que são exploradas pela Equipe de Exploração de Vídeo Conjunta (JVET).
[0051] Em HEVC e outras especificações de codificação de vídeo, uma sequência de vídeos inclui tipicamente uma série de imagens. As imagens também podem ser chamadas de quadros. Uma imagem pode incluir três matrizes de amostra indicadas como SL, Scb e Scr. SL é uma matriz bidimensional (por exemplo, um bloco) de amostras de luma. Scb é uma matriz bidimensional de amostras de crominância Cb. Scr é uma matriz bidimensional de amostras de crominância Cr. As amostras de crominância também podem ser chamadas no presente documento de amostras de croma.
Petição 870190093362, de 18/09/2019, pág. 24/117
20/78
Em outros casos, uma imagem pode ser monocromática e pode incluir apenas uma matriz de amostras de luma.
[0052] Para gerar uma representação codificada de uma imagem (por exemplo, um fluxo de bits de video codificado), o codificador de video 20 pode gerar um conjunto de unidades de árvore de codificação (CTUs). Cada uma das CTUs pode compreender um bloco de árvore de codificação de amostras de luma, dois blocos de árvore de codificação de amostras de croma, e estruturas de sintaxe usadas para codificar as amostras dos blocos de árvore de codificação. Em imagens monocromáticas ou imagens que têm três planos de cor separados, uma CTU pode compreender um único bloco de árvore de codificação e estruturas de sintaxe usadas para codificar as amostras do bloco de árvore de codificação. Um bloco de árvore de codificação pode ser um bloco de amostras NxN. Uma CTU também pode ser chamada de um bloco de árvore ou uma unidade de codificação maior (LCU). As CTUs de HEVC podem ser amplamente análogas aos macroblocos de outros padrões, tal como H.264/AVC. Entretanto, uma CTU não é necessariamente limitada a um tamanho particular e pode incluir uma ou mais unidades de codificação (CUs). Uma fatia pode incluir um número inteiro de CTUs consecutivamente ordenadas em uma ordem de varredura.
[0053] Para gerar uma CTU codificada, o codificador de video 20 pode realizar recursivamente particionamento quadtree nos blocos de árvore de codificação de uma CTU para dividir os blocos de árvore de codificação em blocos de codificação, portanto o nome unidades de árvore de codificação. Um bloco de
Petição 870190093362, de 18/09/2019, pág. 25/117
21/78 codificação é um bloco de amostras NxN. Uma CU pode compreender um bloco de codificação de amostras de luma e dois blocos de codificação correspondentes de amostras de croma de uma imagem que tem uma matriz de amostra de luma, uma matriz de amostra Cb, e uma matriz de amostra Cr, e estruturas de sintaxe usadas para codificar as amostras dos blocos de codificação. Em imagens monocromáticas ou imagens que têm três planos de cor separados, uma CU pode compreender um único bloco de árvore de codificação e estruturas de sintaxe usadas para codificar as amostras do bloco de codificação.
[0054] O codificador de vídeo 20 pode particionar um bloco de codificação de uma CU em um ou mais blocos de predição. Um bloco de predição é um bloco retangular (isto é, quadrado ou não quadrado) de amostras nas quais a mesma predição é aplicada. Uma unidade de predição (PU) de uma CU pode compreender um bloco de predição de amostras de luma, dois blocos de predição correspondentes de amostras de croma, e estruturas de sintaxe usadas para predizer os blocos de predição. Em imagens monocromáticas ou imagens que têm três planos de cor separados, uma PU pode compreender um único bloco de predição e estruturas de sintaxe usadas para predizer o bloco de predição. O codificador de vídeo 20 pode gerar blocos preditivos (por exemplo, blocos preditivos de luma, Cb e Cr) para blocos de predição (por exemplo, blocos de predição luma, Cb, e Cr) de cada PU da CU.
[0055] O codificador de vídeo 20 pode usar intrapredição ou interpredição para gerar os blocos preditivos para uma PU. Se o codificador de vídeo 20 usa
Petição 870190093362, de 18/09/2019, pág. 26/117
22/78 intrapredição para gerar os blocos preditivos de uma PU, o codificador de vídeo 20 pode gerar os blocos preditivos da PU com base nas amostras decodificadas da imagem que inclui a PU.
[0056] Após o codificador de vídeo 20 gerar blocos preditivos (por exemplo, blocos preditivos de luma, Cb e Cr) para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar um ou mais blocos residuais para a CU. Como um exemplo, o codificador de vídeo 20 pode gerar um bloco residual de luma para a CU. Cada amostra no bloco residual de luma na CU indica uma diferença entre uma amostra de luma em um dos blocos de luma preditivos da CU e uma amostra correspondente no luma bloco de codificação de luma original da CU. Além disso, o codificador de vídeo 20 pode gerar um bloco residual Cb para a CU. Em um exemplo de predição de croma, cada amostra no bloco residual Cb de uma CU pode indicar uma diferença entre uma amostra Cb em um dos blocos Cb preditivos da CU e uma amostra correspondente no bloco de codificação Cb original da CU. O codificador de vídeo 20 também pode gerar um bloco residual Cr para a CU. cada amostra no bloco residual Cr da CU pode indicar uma diferença entre uma amostra Cr em um dos blocos Cr preditivos da CU e uma amostra correspondente no bloco de codificação Cr original da CU. Entretanto, deve-se compreender que outras técnicas para predição de croma podem ser usadas.
[0057] Além disso, o codificador de vídeo 20 pode usar particionamento quadtree para decompor os blocos residuais (por exemplo, blocos residuais luma, Cb e Cr) de uma CU em um ou mais blocos de transformada (por exemplo,
Petição 870190093362, de 18/09/2019, pág. 27/117
23/78 blocos de transformada luma, Cb e Cr). Um bloco de transformada é um bloco (por exemplo, quadrado ou não quadrado) de amostras nas quais a mesma transformada é aplicada. Uma unidade de transformada (TU) de uma CU pode compreender um bloco de transformada de amostras de luma, dois blocos de transformada correspondentes de amostras de croma, e estruturas de sintaxe usadas para transformar as amostras de bloco de transformada. Desse modo, cada TU de uma CU pode ter um bloco de transformada de luma, um bloco de transformada Cb e um bloco de transformada Cr. 0 bloco de transformada de luma da TU pode ser um sub-bloco do bloco residual de luma da CU. 0 bloco de transformada Cb pode ser um sub-bloco do bloco residual Cb da CU. 0 bloco de transformada Cr pode ser um sub-bloco do bloco residual Cr da CU. Em imagens monocromáticas ou imagens que têm três planos de cor separados, a TU pode compreender um único bloco de transformada e estruturas de sintaxe usadas para transformar as amostras do bloco de transformada.
[0058] O codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de uma TU para gerar bloco de coeficiente para a TU. Por exemplo, o codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada de luma de uma TU para gerar um bloco de coeficiente de luma para a TU. Um bloco de coeficiente pode ser uma matriz bidimensional de coeficientes de transformada. Um coeficiente de transformada pode ser uma quantidade escalar. O codificador de vídeo 20 pode aplicar uma ou mais transformadas a um bloco de transformada Cb de uma TU para gerar um bloco de coeficiente Cb para a TU. O codificador de vídeo 20 pode
Petição 870190093362, de 18/09/2019, pág. 28/117
24/78 aplicar uma ou mais transformadas a um bloco de transformada Cr de uma TU para gerar um bloco de coeficiente Cr para a TU.
[0059] Após gerar um bloco de coeficiente (por exemplo, um bloco de coeficiente luma, um bloco de coeficiente Cb ou um bloco de coeficiente Cr) , o codificador de vídeo 20 pode quantizar o bloco de coeficiente. A quantização geralmente se refere a um processo no qual os coeficientes de transformada são quantizados para reduzir possivelmente a quantidade de dados usados para representar os coeficientes de transformada, fornecendo compressão adicional. Após o codificador de vídeo 20 quantizar um bloco de coeficiente, o codificador de vídeo 20 pode codificar por entropia elementos de sintaxe que indicam os coeficientes de transformada quantizados. Por exemplo, o codificador de vídeo 20 pode realizar codificação aritmética binária adaptável ao contexto (CAB AC) nos elementos de sintaxe que indicam os coeficientes de transformada quantizados.
[0060] O codificador de vídeo 20 pode emitir um fluxo de bits que inclui uma sequência de bits que formam uma representação de imagens codificadas e dados associados. Dessa forma, o fluxo de bits compreende uma representação codificada de dados de vídeo. O fluxo de bits pode compreender uma sequência de unidades de camada de abstração de rede (NAL). Uma unidade NAL é uma estrutura de sintaxe que contém uma indicação do tipo de dados na unidade NAL e bytes que contêm os dados sob a forma de uma carga útil de sequência de bytes brutos (RBSP) intercalados conforme necessário com bits de prevenção de emulação. Cada
Petição 870190093362, de 18/09/2019, pág. 29/117
25/78 uma das unidades NAL pode incluir um cabeçalho de unidade NAL e encapsular uma RBSP. 0 cabeçalho de unidade NAL pode incluir um elemento de sintaxe que indica um código de tipo de unidade NAL. 0 código de tipo de unidade NAL especificado pelo cabeçalho de unidade NAL de uma unidade NAL indica o tipo da unidade NAL. Uma RBSP pode ser uma estrutura de sintaxe que contém um número inteiro de bytes que são encapsulados dentro de uma unidade NAL. Em alguns casos, uma RBSP inclui zero bits.
[0061] O decodificador de video 30 pode receber um fluxo de bits de video codificado gerado pelo codificador de video 20. Além disso, o decodificador de video 30 pode analisar o fluxo de bits para obter elementos de sintaxe a partir do fluxo de bits. O decodificador de video 30 pode reconstruir as imagens dos dados de video com base, pelo menos em parte, nos elementos de sintaxe obtidos a partir do fluxo de bits. O processo para reconstruir os dados de video pode ser geralmente reciproco ao processo realizado pelo codificador de video 20. Por exemplo, o decodificador de video 30 pode usar os vetores de movimento de PUs para determinar blocos preditivos para as PUs de uma CU atual. Além disso, o decodificador de video 30 pode realizar quantização inversa dos blocos de coeficiente de TUs da CU atual. O decodificador de video 30 pode realizar transformadas inversas nos blocos de coeficiente para reconstruir blocos de transformada das TUs da CU atual. O decodificador de video 30 pode reconstruir os blocos de codificação da CU atual adicionando-se as amostras dos blocos preditivos para PUs da CU atual a amostras correspondentes dos blocos de transformada das TUs da CU
Petição 870190093362, de 18/09/2019, pág. 30/117
26/78 atual. Através da reconstrução dos blocos de codificação para cada CU de uma imagem, o decodif icador de vídeo 30 pode reconstruir a imagem.
[0062] Em algumas estruturas de codec de vídeo exemplificativas, tal como a estrutura de particionamento quadtree de HEVC, o particionamento de dados de vídeo em blocos para os componentes de cor (por exemplo, blocos de luma e blocos de croma) é realizado conjuntamente. Ou seja, em alguns exemplos, os blocos de luma e os blocos de croma são particionados da mesma maneira, de modo que não mais de um bloco de luma corresponda a um bloco de croma em uma localização particular dentro de uma imagem.
[0063] Uma estrutura de partição de árvore quadtree mais binária (QTBT) está sendo atualmente estudada pela Equipe de Exploração Vídeo Conjunta (JVET) . Em J. An et al. , Block partitioning structure for next generation video coding, International Telecommunication Union, COM16-C966, setembro de 2015 (doravante, VCEG proposal COM16-C966), as técnicas de particionamento QTBT foram descritas para padrão de codificação de vídeo futuro além de HEVC. Simulações mostraram que a estrutura QTBT proposta pode ser mais eficiente que a estrutura quadtree usada em HEVC.
[0064] Na estrutura QTBT descrita na proposta VCEG COM16-C966, a CTB é particionada primeiro com o uso de técnicas de particionamento de quadtree, em que a divisão de quadtree de um nó pode ser iterada até que o nó alcance o tamanho de nó folha de quadtree mínimo permitido. O tamanho de nó folha de quadtree mínimo permitido pode ser indicado para o decodificador de vídeo 30 pelo valor do
Petição 870190093362, de 18/09/2019, pág. 31/117
27/78 elemento de sintaxe MinQTSize. Se o tamanho de nó folha de quadtree não for maior que o tamanho de nó raiz de árvore binária máximo permitido (por exemplo, conforme indicado por um elemento de sintaxe MaxBTSize), o nó folha de quadtree pode ser adicionalmente particionado com o uso de particionamento de árvore binária. 0 particionamento de árvore binária de um nó pode ser iterado até que o nó alcance o tamanho de nó folha de árvore binária mínimo permitido (por exemplo, conforme indicado por um elemento de sintaxe MinBTSize) ou a profundidade de árvore binária máxima permitida (por exemplo, conforme indicado por um elemento de sintaxe MaxBTDepth) . A proposta VCEG COM16-C966 usa o termo CU para se referir a nós folha de árvore binária. Na proposta VCEG COM16-C966, CUs são usados para predição (por exemplo, intrapredição, interpredição, etc.) e transformada sem qualquer particionamento adicional. Em geral, de acordo com as técnicas QTBT, há dois tipos de divisão para divisão de árvore binária: divisão horizontal simétrica e divisão vertical simétrica. Em cada caso, um bloco é dividido dividindo-se o no meio, horizontal ou verticalmente. Isso difere do particionamento de quadtree, que divide um bloco em quatro blocos.
[0065] Em um exemplo da estrutura de particionamento QTBT, o tamanho de CTU é definido como 128 x 128 (por exemplo, um bloco de luma de 128 x 128 e dois blocos de croma de 64 x 64 correspondentes), o MinQTSize é definido como 16 x 16, o MaxBTSize é definido como 64 x 64, o MinBTSize (tanto para largura como para altura) é definido como 4, e o MaxBTDepth é definido como 4. O particionamento quadtree é aplicado à CTU primeiro para
Petição 870190093362, de 18/09/2019, pág. 32/117
28/78 gerar nós folha de quadtree. Os nós folha de quadtree podem ter um tamanho de 16 x 16 (isto é, o MinQTSize é 16 x 16) a 128 x 128 (isto é, o tamanho de CTU) . De acordo com um exemplo de QTBT particionamento, se o nó folha de quadtree for 128 x 128, o nó folha de quadtree não pode ser adicionalmente dividido pela árvore binária, uma vez que o tamanho do nó folha de quadtree excede o MaxBTSize (isto é, 64 x 64). De outro modo, o nó folha de quadtree é adicionalmente particionado pela árvore binária. Portanto, o nó folha de quadtree também é o nó raiz para a árvore binária e tem a profundidade de árvore binária como 0. A profundidade de árvore binária que alcança MaxBTDepth (por exemplo, 4) implica que não há divisão adicional. O nó de árvore binária que tem uma largura igual ao MinBTSize (por exemplo, 4) implica que não há divisão horizontal adicional. De modo similar, o nó de árvore binária que tem uma altura igual ao MinBTSize implica que não há divisão vertical adicional. Os nós folha da árvore binária (CUs) são adicionalmente processados (por exemplo, ao realizar um processo de predição e um processo de transformada) sem qualquer particionamento adicional.
[0066] De acordo com as técnicas desta revelação, conforme será explicado em mais detalhes abaixo, um dispositivo de codificação de vídeo, tal como codificador de vídeo 20, pode codificar um primeiro bloco de dados de vídeo com o uso de um modo de interpredição, associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo, e determinar um segundo modo de intrapredição para
Petição 870190093362, de 18/09/2019, pág. 33/117
29/78 um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição. Embora o primeiro bloco seja interpredito, o codificador de vídeo 20 associa um modo de intrapredição (por exemplo, um primeiro modo de
intrapredição) a esse primeiro bloco interpredito. 0
codificador de vídeo 20 pode determinar um modo de
intrapredição (por exemplo, o segundo modo de
intrapredição) para um bloco vizinho (por exemplo, bloco
vizinho ao primeiro bloco) com base no modo de
intrapredição associado ao primeiro bloco. Desse modo,
economias de bits podem ser alcançadas porque as
informações de modo de intrapredição para o bloco vizinho não precisam ser sinalizadas. Além disso, devido ao fato de que o bloco interpredito agora tem um modo de intrapredição associado, mais modos de intrapredição podem estar disponíveis para determinar modos de intrapredição de blocos vizinhos.
[0067] Ademais, de acordo com as técnicas desta revelação, um dispositivo de codificação de vídeo, tal como o decodif icador de vídeo 30, pode receber um primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição, associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo, e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição. O decodificador de vídeo 30 pode determinar um modo de intrapredição (por exemplo, o segundo modo de intrapredição) para um bloco vizinho (por exemplo, bloco
Petição 870190093362, de 18/09/2019, pág. 34/117
30/78 vizinho ao primeiro bloco) com base no modo de intrapredição associado ao primeiro bloco. Desse modo, economias de bits podem ser alcançadas devido ao fato de que as informações de modo de intrapredição para o bloco vizinho não precisam ser recebidas e analisadas pelo decodificador de vídeo 30. Além disso, devido ao fato de que o bloco interpredito agora tem um modo de intrapredição associado, mais modos de intrapredição podem estar disponíveis para determinar os modos de intrapredição de blocos vizinhos aprimorando, desse modo, a precisão de determinação de modo de intrapredição.
[0068] A Figura 2 é um diagrama de blocos que ilustra um exemplo de codificador de vídeo 20 configurado para implementar as técnicas da revelação. O codificador de vídeo 20 pode realizar intra e intercodificação de blocos de vídeo dentro de fatias de vídeo. As intracodificação depende da predição espacial para reduzir ou remover a redundância espacial no vídeo dentro de um determinado quadro ou imagem de vídeo. A intercodificação depende da predição temporal para reduzir a redundância temporal no vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeos. O intramodo (modo I) pode se referir a qualquer um dentre vários modos de codificação com base espacial. Intermodos, tal como predição unidirecional (modo P) ou bipredição (modo B) , pode, se referir a qualquer um dentre vários modos de codificação com base temporal.
[0069] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui a unidade de
Petição 870190093362, de 18/09/2019, pág. 35/117
31/78 seleção de modo 40, a memória de imagem de referência 64, ο somador 50, a unidade de processamento de transformada 52, a unidade de quantização 54 e a unidade de codificação por entropia 56. A unidade de seleção de modo 40, por sua vez, inclui a unidade de compensação de movimento 44, unidade de estimativa de movimento 42, unidade de intrapredição 46 e unidade de partição 48. Para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, unidade de transformada inversa 60 e o somador 62. Um filtro de desblocagem (não mostrado na Figura 2) também pode ser incluído nos limites de bloco de filtro para remover artefatos de blocagem a partir do vídeo reconstruído. Se for desejado, o filtro de desblocagem pode filtrar tipicamente a saída do somador 62. Filtros adicionais (em malha ou pós malha) também podem ser usados além do filtro de desblocagem. Tais filtros não são mostrados por uma questão de brevidade, mas se for desejado, podem filtrar a saída do somador 50 (como um filtro em malha).
[0070] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro ou fatia de vídeo a ser codificado. O quadro ou fatia pode ser dividido em múltiplos blocos de vídeo. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 realizam a codificação interpreditiva do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para fornecer predição temporal. A unidade de intrapredição 46 pode realizar alternativamente a codificação intrapreditiva do bloco de vídeo recebido em relação a um ou mais blocos vizinhos no mesmo quadro ou
Petição 870190093362, de 18/09/2019, pág. 36/117
32/78 fatia como o bloco a ser codificado para fornecer predição espacial. 0 codificador de vídeo 20 pode realizar múltiplas passagens de codificação, por exemplo, para selecionar um modo de codificação adequado para cada bloco de dados de vídeo.
[0071] Além disso, a unidade de partição 48 pode particionar blocos de dados de vídeo em sub-blocos, com base na avaliação de esquemas de particionamento anteriores em passagens de codificação anteriores. Por exemplo, a unidade de partição 48 pode particionar inicialmente um quadro ou fatia em LCUs, e particionar cada uma das LCUs em sub-CUs com base na análise de distorção de taxa (por exemplo, otimização de distorção de taxa). A unidade de seleção de modo 40 pode produzir adicionalmente uma estrutura de dados de quadtree indicativa do particionamento de uma LCU em sub-CUs. As CUs de nó folha da quadtree podem incluir uma ou mais PUs e uma ou mais TUs .
[0072] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, por exemplo, com base em resultados de erro, e fornece o bloco intra ou intercodifiçado para o somador 50 para gerar dados de bloco residuais e para o somador 62 para reconstruir o bloco codificado para uso como um quadro de referência. A unidade de seleção de modo 40 também fornece elementos de sintaxe, tais como vetor de movimentos, indicadores intramodo, informações de partição e outras informações de sintaxe para a unidade de codificação por entropia 56. A unidade de seleção de modo 40, ou outro componente do codificador de vídeo 20, pode ser configurado para realizar
Petição 870190093362, de 18/09/2019, pág. 37/117
33/78 as técnicas desta revelação para associar um modo de intrapredição a um bloco interpredito.
[0073] A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para propósitos conceituais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo para gerar vetores de movimento, que estima movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro ou imagem de vídeo atual em relação a bloco preditivo dentro de um quadro de referência (ou outra unidade codificada) em relação ao bloco atual que é codificado dentro do quadro atual (ou outra unidade codificada). Um bloco preditivo é um bloco que é encontrado para corresponder estritamente ao bloco preditivo, em termos de diferença de pixel, que pode ser determinado pela soma de diferença absoluta (SAD), soma de diferença quadrada (SSD) ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel subinteiro de imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições de pixel fracionário da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma pesquisa de movimento em relação às posições de pixel inteiras e posições de pixel fracionário e emitir um vetor de movimento com precisão de pixel fracionário.
Petição 870190093362, de 18/09/2019, pág. 38/117
34/78 [0074] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodifiçada comparando-se a posição da PU com a posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagem de referência 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de movimento 44.
[0075] A compensação de movimento realizada pela unidade de compensação de movimento 44, pode envolver busca ou geração do bloco preditivo com base no vetor de movimento determinado pela unidade de estimativa de movimento 42. Novamente, a unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser funcionalmente integradas, em alguns exemplos. Após a recepção do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo ao qual o vetor de movimento aponta em uma das listas de imagens de referência. O somador 50 forma um bloco de vídeo residual subtraindo-se os valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual que está sendo codificado, formando valores de diferença de pixel, conforme discutido abaixo. Em geral, a unidade de estimativa de movimento 42 realiza estimativa de movimento em relação aos componentes de luma,
Petição 870190093362, de 18/09/2019, pág. 39/117
35/78 e a unidade de compensação de movimento 44 usa vetores de movimento calculados com base nos componentes de luma tanto para componentes de croma como componentes de luma. A unidade de seleção de modo 40 também pode gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0076] A unidade de intrapredição 46 podem intrapredizer um bloco atual, como uma alternativa para a interpredição realizada pela unidade de estimativa de movimento 42 e pela unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de intrapredição 46 pode determinar um modo de intrapredição para uso para codificar um bloco atual. Em alguns exemplos, a unidade de intrapredição 46 pode codificar um bloco atual com o uso de vários modos de intrapredição, por exemplo, durante passagens de codificação separados, e a unidade de intrapredição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intrapredição adequado para uso a partir dos modos testados.
[0077] Por exemplo, a unidade de intrapredição 46 pode calcular valores de distorção de taxa com o uso de uma análise de distorção de taxa para os vários modos de intrapredição testados e selecionar o modo de intrapredição que tem as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa determina geralmente uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco não codificado original, que foi codificado para produzir o bloco codificado, bem como uma taxa de bits (ou seja, um número
Petição 870190093362, de 18/09/2019, pág. 40/117
36/78 de bits) usada para produzir o bloco codificado. A unidade de intrapredição 46 pode calcular razões das distorções e taxas para os vários blocos codificados para determinar qual modo de intrapredição exibe a melhor distorção de valor de taxa para o bloco.
[0078] Após selecionar um modo de intrapredição para um bloco, a unidade de intrapredição 46 pode fornecer informações indicativas do modo de intrapredição selecionado para o bloco para a unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar as informações que indicam o modo de intrapredição selecionado. O codificador de vídeo 20 pode incluir no fluxo de bits transmitido dados de configuração, que podem incluir uma pluralidade de tabelas de índice de modo de intrapredição e uma pluralidade de tabelas de índice de modo de intrapredição modificadas (também chamadas de tabelas de mapeamento de palavracódigo) , definições de contextos de codificação para vários blocos, e indicações de um modo de intrapredição mais provável, uma tabela de índice de modo de intrapredição e uma tabela de índice de modo de intrapredição modificada para uso para cada um dos contextos.
[0079] O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo-se os dados de predição da unidade de seleção de modo 40 do bloco de vídeo original que está sendo codificado. O somador 50 representa o componente ou componentes que realizam essa operação de subtração. A unidade de processamento de transformada 52 aplica uma transformada, tal como uma transformada de cosseno discreta (DCT) ou uma transformada conceitualmente
Petição 870190093362, de 18/09/2019, pág. 41/117
37/78 similar, ao bloco residual, produzindo um bloco de vídeo que compreende valores de coeficiente de transformada residual. A unidade de processamento de transformada 52 pode realizar outras transformadas que são conceitualmente similares à DCT. As transformadas de ondaleta, transformadas de número inteiro, transformadas de sub-banda ou outros tipos de transformadas também podem ser usados. Em qualquer caso, a unidade de processamento de transformada 52 aplica a transformada ao bloco residual, produzindo um bloco de coeficientes de transformada residuais. A transformada pode converter as informações residuais a partir de um domínio de valor de pixel em um domínio de transformada, tal como um domínio de frequência. A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir ainda mais a taxa de bits. 0 processo de quantização pode reduzir a profundidade de bit associada a alguns ou todos os coeficientes. 0 grau de quantização pode ser modificado ajustando-se um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode, então, realizar uma varredura da matriz que inclui os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação por entropia 56 pode realizar a varredura.
[0080] Após a quantização, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação por entropia 56 pode realizar codificação de comprimento variável adaptável ao contexto
Petição 870190093362, de 18/09/2019, pág. 42/117
38/78 (CAVLC), codificação aritmética binária adaptável ao contexto (CABAC), codificação aritmética binária adaptável ao contexto baseada em sintaxe (SB AC) , codificação por entropia de particionamento de intervalo de probabilidade (PIPE) ou outra técnica de codificação por entropia. No caso de codificação por entropia baseada em contexto, o contexto pode se basear em blocos vizinhos. Após a codificação por entropia pela unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para outro dispositivo (por exemplo, decodificador de vídeo 30) ou arquivado para transmissão ou recuperação posterior.
[0081] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando-se o bloco residual a um bloco preditivo de um dos quadros da memória de imagem de referência 64. A unidade de compensação de movimento 44 também pode aplicar um filtros de interpolação ao bloco residual reconstruído para calcular valores de pixel subinteiros para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado por movimento produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento na memória de imagem de referência 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimativa de movimento 42 e pela unidade
Petição 870190093362, de 18/09/2019, pág. 43/117
39/78 de compensação de movimento 44 como um bloco de referência para intercodificar um bloco em um quadro de video subsequente.
[0082] A Figura 3 é um diagrama de blocos que ilustra um exemplo do decodificador de video 30 configurado para implementar técnicas da revelação. No exemplo da Figura 3, o decodificador de video 30 inclui uma unidade de decodificação por entropia 70, unidade de compensação de movimento 72, unidade de intrapredição 74, unidade de quantização inversa 76, unidade de transformação inversa 78, memória de imagem de referência 82 e somador 80. O decodificador de video 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente reciproca à passagem de codificação descrita em relação ao codificador de video 20 (Figura 2. A unidade de compensação de movimento 72 pode gerar dados de predição com base nos vetores de movimento recebidos a partir da unidade de decodificação por entropia 70, enquanto a unidade de intrapredição 74 pode gerar dados de predição com base nos indicadores de modo de intrapredição recebidos a partir da unidade de decodificação por entropia 70.
[0083] Durante o processo de decodificação, o decodificador de video 30 recebe um fluxo de bits de video codificado que representa blocos de video de uma fatia de video codificada e elementos de sintaxe associados a partir do codificador de video 20. A unidade de decodificação por entropia 70 do decodificador de video 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo de intrapredição e outros elementos de sintaxe. A unidade de
Petição 870190093362, de 18/09/2019, pág. 44/117
40/78 decodificação por entropia 70 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de movimento 72. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0084] Quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de intrapredição 74 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intrapredição sinalizado e dados a partir dos blocos anteriormente decodificados do guadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia intercodificada (isto é, B, P ou GPB), a unidade de compensação de movimento 72 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação por entropia 70. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, com o uso de técnicas de construção padrão com base nas imagens de referência armazenadas na memória de imagem de referência 82. A unidade de compensação de movimento 72 determina informações de predição para um bloco de vídeo da fatia de vídeo atual analisando-se os vetores de movimento e outros elementos de sintaxe e usa as informações de predição para produzir os blocos preditivos para o bloco de vídeo atual que está sendo decodificado. Por exemplo, a unidade de compensação de movimento 72 usa
Petição 870190093362, de 18/09/2019, pág. 45/117
41/78 alguns dos elementos de sintaxe recebidos par determinar o modo de predição (por exemplo, intra ou interpredição) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interpredição (por exemplo, fatia B, fatia P ou fatia GPB), informações de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodifiçado da fatia, situação de interpredição para cada bloco de vídeo intercodifiçado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0085] A unidade de compensação de movimento 72 também pode realizar interpelação com base nos filtros de interpelação. A unidade de compensação de movimento 72 pode usar filtros de interpelação conforme usados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpelados para pixels subinteiros dos blocos de referência. Nesse caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpelação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpelação para produzir blocos preditivos.
[0086] A unidade de quantização inversa 76 realiza quantização inversa, isto é, desquantiza, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação por entropia 70. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização QPY calculado pelo decodificador de vídeo 30 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e,
Petição 870190093362, de 18/09/2019, pág. 46/117
42/78 igualmente, um grau de quantização inversa que deve ser aplicado.
[0087] A unidade de transformada inversa 78 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa ou um processo de transformada inversa conceitualmente similar, aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.
[0088] Após a unidade de compensação de movimento 72 gerar o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado somando-se os blocos residuais da unidade de transformada inversa 78 com o blocos preditivos correspondentes gerados pela unidade de compensação de movimento 72. O somador 80 representa o componente ou componentes que realizam essa operação de soma. Se for desejado, um filtro de desblocagem também pode ser aplicado para filtrar os blocos decodificados a fim de remover artefatos de blocagem. Outros filtros de malha (na malha de codificação ou após a malha de codificação) também podem ser usados para suavizar as transições de pixel ou, de outro modo, aprimorar a qualidade de vídeo. Os blocos de vídeo decodificados em um determinado quando ou imagem são, então armazenados na memória de imagem de referência 82, que armazena imagens de referência usadas para compensação de movimento subsequente. A memória de imagem de referência 82 também armazena vídeo decodificado para apresentação posterior em um dispositivo de exibição, tal como o dispositivo de exibição 32 da Figura 1.
Petição 870190093362, de 18/09/2019, pág. 47/117
43/78 [0089] 0 decodif icador de video 30, por exemplo, que usa unidade de compensação de movimento 72 ou outro componente de decodif icador de vídeo 30, pode ser configurado para realizar as técnicas desta revelação para associar um modo de intrapredição a um bloco interpredito.
[0090] A Figura 4 é um diagrama conceituai que ilustra tipos exemplificativos de blocos e fatias na codificação de vídeo, de acordo com as técnicas desta revelação. Em alguns padrões de codificação de vídeo exemplificativos, tal como HEVC, pode haver dois tipos de quadros (ou fatias, que são porções de quadros): interquadros e intraquadros. Em uma fatia intraquadro ou intrafatia, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar apenas um bloco como uma intrabloco (isto é, com um modo de intrapredição particular) com base nas amostras dentro da mesma imagem que o intrabloco. Por outro lado, em um interquadro, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar um bloco como um intrabloco ou um interbloco (isto é, com o uso de um modo de intrapredição particular ou um modo de interpredição particular). No modo de interpredição, o interbloco é predito com base em um bloco em uma imagem diferente do interbloco. A Figura 4 mostra exemplos de um intraquadro 100 e um interquadro 110. O intraquadro 100 inclui apenas intrablocos 102, 104, e 106. Entretanto, o interquadro 110 pode incluir o intrabloco 112 e o intrabloco 116, assim como o interbloco 114.
[0091] Em alguns exemplos, embora o interbloco 114 seja interpredito, o codificador de vídeo 20 e o decodificador de vídeo 30 podem associar um modo de
Petição 870190093362, de 18/09/2019, pág. 48/117
44/78 intrapredição ao interbloco 114. 0 codificador de vídeo 20 e o decodificador de vídeo 30 podem determinar um modo de intrapredição para outro bloco com base no modo de intrapredição associado ao interbloco 114. O modo de intrapredição associado ao interbloco 114 pode ser um modo de intrapredição de outro bloco (por exemplo, bloco colocalizado em outra imagem, bloco de referência em outra imagem ou bloco na mesma imagem). Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem determinar o modo de intrapredição desse outro bloco para determinar o modo de intrapredição que deve ser associado ao interbloco 114.
[0092] A Figura 5 é um diagrama conceituai que ilustra modos de intrapredição direcional exemplificativos em HEVC, que podem ser usados em um exemplo desta revelação. O codificador de vídeo 20 e o decodificador de vídeo 30 podem aplicar um dos modos de intrapredição mostrados na Figura 5 para codificar um intrabloco. Certamente, outros modos de intrapredição podem ser usados. Quando codifica um bloco atual com um modo de intrapredição, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para predizer o bloco atual com o uso de pixels vizinhos no quadro atual. Quando codifica um bloco atual com um modo de interpredição, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para predizer o bloco atual com o uso de pixels nos quadros anteriormente codificados/decodifiçados, chamado de quadro de referências ou imagens de referência. Em HEVC, há 35 modos de intrapredição que representam diferentes direções de predição, conforme
Petição 870190093362, de 18/09/2019, pág. 49/117
45/78 mostrado na Figura 5. Em um exemplo de JEM, o número de modos de intrapredição é aumentado para 67.
[0093] A Figura 6 é um diagrama conceituai que ilustra técnicas de interpredição exemplificativas em HEVC, de acordo com as técnicas desta revelação. No exemplos de HEVC, cada bloco intracodifiçado é associados às informações de modo de intrapredição (por exemplo, um índice que indica o modo de intrapredição usado). Para interpredição, a compensação de movimento (MC) pode ser usada a partir de um bloco de referência (unipredição) ou dois blocos de referência (bipredição) nos quadros de referência, conforme mostrado na Figura 6. Por exemplo, para unipredição, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar o bloco atual 132 na imagem 130 com referência ao bloco de referência 122 na imagem 120. Para bipredição, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar o bloco atual 134 na imagem 130 com referência tanto ao bloco de referência 124 na imagem 120 como ao bloco de referência 142 na imagem 140. Cada bloco intercodifiçado é associado às suas próprias informações de movimento, incluindo índices de quadro de referência e vetores de movimento (MV).
[0094] A Figura 7 é um diagrama conceituai que ilustra blocos vizinhos exemplificativos de um bloco atual 146, de acordo com as técnicas desta revelação. Para codificar um modo de intrapredição para o bloco atual 146, os modos de intrapredição de blocos vizinhos podem ser usados como modos de predição para o bloco atual 146. Ou seja, em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem usar os modos de
Petição 870190093362, de 18/09/2019, pág. 50/117
46/78 intrapredição de blocos vizinhos para determinar o modo de intrapredição para o bloco 146. A Figura 7 mostra blocos vizinhos exemplif icativos A, Al, AO, B, B2, Bl e BO. Em HEVC, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para usar os modos de intrapredição de um dos blocos vizinhos A e B como o modo de intrapredição para o bloco atual 146.
[0095] Nos exemplos de JEM, mais blocos vizinhos (AO, Al, BO, Bl, B2) podem ser considerados ao determinar o modo de intrapredição para o bloco atual 146. Se um bloco vizinho não existe (por exemplo, o bloco atual se situa no limite de um quadro), ou um bloco vizinho não é intracodifiçado (por exemplo, o quadro atual é um interquadro, mas o bloco atual é intracodifiçado e um bloco vizinho é intercodifiçado), o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para marcar tal bloco vizinho como indisponível e seu modo de intrapredição pode não ser usado para predizer o modo de intrapredição do bloco atual. Isso isso se deve ao fato de que tal bloco não tem um modo de intrapredição associado.
[0096] A fim de aprimorar o desempenho de codificação de interquadros, as técnicas desta revelação incluem o uso da propagação de modo de intrapredição ao codificar blocos nos interquadros. Com a propagação intramodo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para associar um modo de intrapredição aos blocos de dados de vídeo, independentemente se o bloco é intracodifiçado ou intercodifiçado. Para um bloco intracodifiçado (isto é, um bloco codificado com o uso de uma técnica de
Petição 870190093362, de 18/09/2019, pág. 51/117
47/78 intrapredição), o modo de intrapredição pode ser sinalizado a partir do codificador de vídeo 20 para o decodificador de vídeo 30 em um fluxo de bits de vídeo codificado, como em HEVC ou JEM. O decodificador de vídeo 30 pode decodificar o bloco intracodifiçado com o uso do modo de intrapredição sinalizado.
[0097] Para um bloco intercodifiçado (isto é, um bloco codificado com o uso de uma técnica de interpredição), o codificador de vídeo 20 e o decodificador de vídeo 30 podem derivar, da mesma maneira, um modo de intrapredição para o bloco intercodifiçado com o uso de uma ou mais técnicas de propagação de modo de intrapredição descritas abaixo. Em geral, ao realizar a propagação de modo de intrapredição, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para associar um modo de intrapredição aos blocos de dados de vídeo codificados com o uso de um modo de interpredição com base em um ou mais modos de intrapredição associados a um ou mais outros blocos de dados de vídeo. O um ou mais outros blocos de dados de vídeo podem ser, certamente blocos intracodifiçados, que têm inerentemente modos de intrapredição associados. Além disso, o um ou mais outros blocos podem ser blocos intercodifiçados. Esses blocos intercodifiçados também podem ter modos de intrapredição associados, à medida que o codificador de vídeo 20 e o decodificador de vídeo 30 já podem ter aplicado as técnicas de propagação de modo de intrapredição desta revelação a esses blocos. À medida que as sequências de vídeo começam a partir de um intraquadro, em que todos os blocos são intracodifiçados, o codificador de vídeo 20 e o
Petição 870190093362, de 18/09/2019, pág. 52/117
48/78 decodificador de video 30 podem, em um exemplo, assegurar que todos os blocos intracodifiçados e intercodifiçados, tenham um modo de intrapredição associado.
[0098] Com o uso das técnicas desta revelação, mais blocos de dados de vídeo podem ter modos de intrapredição associados, independentemente do modo real usado para codificar o bloco. Deve-se compreender que o decodificador de vídeo 30 ainda pode decodificar um bloco intercodifiçado com o uso de um modo de interpredição ao associar um modo de intrapredição aos blocos intercodifiçados com o uso das técnicas desta revelação. Conforme será discutido em mais detalhes abaixo, os modos de intrapredição associados aos blocos intercodifiçados podem ser usados para aprimorar o desempenho de codificação, por exemplo, ao determinar qual modo de intrapredição usar para um bloco particular. Portanto, a associação de um modo de intrapredição a um bloco interpredito não deve interpretada de modo a significar que o bloco interpredito deve ser agora decodificado com o uso de intrapredição. Em vez disso, o modo de intrapredição associado é usado para codificação ou eficiência de largura de banda para determinar o modo de intrapredição de outro bloco.
[0099] Em um exemplo da revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para determinar um modo de intrapredição para um bloco atual interpredito a partir do modo de intrapredição de um bloco colocalizado em um quadro diferente. No contexto desta revelação, um bloco colocalizado é um bloco que tem a mesma posição que outro
Petição 870190093362, de 18/09/2019, pág. 53/117
49/78 bloco, mas em um quadro diferente. À medida que diferentes quadros têm diferentes estruturas de particionamento, blocos colocalizados podem não se sobrepor exatamente. Consequentemente, um bloco colocalizado pode ser determinado como um bloco de dados de vídeo que se situa na mesma posição de pixel que um ponto predefinido no bloco atual (por exemplo, o canto esquerdo superior do bloco atual). Qualquer ponto predefinido no bloco atual pode ser usado.
[0100] A Figura 8 é um diagrama conceituai que ilustra um exemplo de determinação de um modo de intrapredição a partir de um bloco colocalizado, de acordo com as técnicas desta revelação. Na Figura 8, o bloco atual 152 na imagem 150 é codificado com o uso de interpredição. De acordo com as técnicas desta revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para determinar um modo de intrapredição para o bloco atual 152 copiando-se o modo de intrapredição 156 a partir do bloco colocalizado 162 na imagem 160. Ou seja, o modo de intrapredição 156 do bloco colocalizado 162 no quadro 160 pode ser tratado como o modo de intrapredição do bloco intercodifiçado atual 152.
[0101] Em um exemplo, a posição do bloco colocalizado 162 no quadro 160 pode ser localizada da mesma maneira que a realizada na predição de vetor de movimento temporal (TMVP) em HEVC e JEM, exceto pelo fato de que se permite que o quadro colocalizado se situe em um intraquadro. A imagem colocalizada pode ser selecionada a partir das imagens de referência da imagem atual. Em um exemplo, a imagem de referência com referência ao índice 0
Petição 870190093362, de 18/09/2019, pág. 54/117
50/78 na lista de imagens de referência 0 (ou 1) é usada como imagem colocalizada (por exemplo, imagem 160) . Em alguns exemplos, a seleção de imagem colocalizada 160 pode ser sinalizada a partir do codificador de vídeo 20 para o decodificador de vídeo 30, ou a seleção de imagem colocalizada 160 pode ser implicitamente derivada no decodificador de vídeo 30.
[0102] O bloco colocalizado 162 no quadro colocalizado 160 pode ser intracodifiçado, ou o bloco colocalizado 162 pode ser intercodifiçado. No primeiro caso, o modo de intrapredição do bloco colocalizado 162 é sinalizado a partir do codificador de vídeo 20 para o decodificador de vídeo 30 ao codificar o bloco colocalizado 162. No último caso, o modo de intrapredição do bloco colocalizado 162 também é derivado, por exemplo, com o uso das técnicas de propagação de modo de intrapredição desta revelação.
[0103] A Figura 9 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de uma sequência de blocos colocalizados, de acordo com as técnicas desta revelação. No quadro 180, que é um interquadro, o bloco 182 é intercodifiçado. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para derivar um modo de intrapredição para associar ao bloco 182 a partir do modo de intrapredição 186 associado ao bloco colocalizado 172 no quadro colocalizado 170, que é um intraquadro. No quadro 190, que é um interquadro, o bloco 192 também é intercodifiçado. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para derivar um modo de intrapredição para
Petição 870190093362, de 18/09/2019, pág. 55/117
51/78 associar ao bloco 192 a partir do modo de intrapredição 196 associado ao bloco colocalizado 182 no quadro colocalizado 180. Conforme pode ser visto na Figura 9, em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem propagar uma intrapredição a partir de um bloco (por exemplo, bloco 172) através de múltiplos quadros em sucessão.
[0104] Em outros exemplos da revelação, em vez de derivar modos de intrapredição a partir de blocos colocalizados de blocos intercodifiçados, o codificador de vídeo 20 e o decodificador de vídeo 30 podem derivar modos de intrapredição para blocos intercodifiçados a partir de modos de intrapredição associados aos blocos de referência. Os blocos de referência podem ser os blocos usados para realizar interpredição no bloco intercodifiçado atual e podem ser identificados por um vetor de movimento, um índice de referência e uma lista de imagens de referência.
[0105] A Figura 10 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de um bloco de referência e um vetor de movimento, de acordo com as técnicas desta revelação. Nesse exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para associar o modo de intrapredição do bloco de referência no quadro de referência como o modo de intrapredição do bloco intercodifiçado atual. Conforme mostrado na Figura 10, o bloco 212 no quadro atual 210 é intercodifiçado de acordo com o vetor de movimento (MV) 214. O MV 214 aponta para o bloco de referência 202 no quadro de referência 200. O codificador de vídeo 20 e o decodificador de vídeo 30 podem
Petição 870190093362, de 18/09/2019, pág. 56/117
52/78 localizar o bloco de referência 202 no quadro de referência 200 com MV 214, conforme usado na compensação de movimento em HEVC, JEM ou qualquer solução de codificação de vídeo existente ou futura. O codificador de vídeo 20 e o decodificador de vídeo 30 podem associar o modo de intrapredição 216 associado ao bloco de referência 202 como o modo de intrapredição para o bloco atual 212. Em alguns exemplos, em vez de usar o MV real do bloco atual 212 para localizar o bloco de referência 200, o codificador de vídeo 20 e o decodificador de vídeo 30 podem usar um movimento nulo para localizar um bloco de referência em uma imagem de referência.
[0106]
O bloco de referência 202 no quadro de referência 200 pode ser intracodif içado, ou o bloco de referência 202 pode ser intercodifiçado. No primeiro caso, o modo de intrapredição do bloco de referência 202 é sinalizado a partir do codificador de vídeo 20 para o decodificador de vídeo 30 ao codificar o bloco de referência 202. No último caso, o modo de intrapredição do bloco de referência 202 também é derivado, por exemplo, com o uso das técnicas de propagação de modo de intrapredição desta revelação.
[0107]
A Figura 11 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de uma sequência de blocos de referência e vetores de movimento, de acordo com as técnicas desta revelação. A Figura 11 mostra um exemplo de como os modos de intrapredição são propagados. No quadro 230, que é um interquadro, o bloco 232 é intercodifiçado. O codificador de vídeo 20 e o decodificador de vídeo 30 podem
Petição 870190093362, de 18/09/2019, pág. 57/117
53/78 ser configurados para derivar um modo de intrapredição para associar ao bloco 232 a partir do modo de intrapredição 236 associado ao bloco de referência 222 no quadro de referência 220, que é um intraquadro. O bloco de referência 222 pode ser localizado pelo MV 234. No quadro 240, que é um interquadro, o bloco 242 também é intercodifiçado. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para derivar um modo de intrapredição para associar ao bloco 242 a partir do modo de intrapredição 246 associado ao bloco de referência 232 no quadro colocalizado 230. O bloco de referência 232 pode ser localizado pelo MV 244. Conforme pode ser visto na Figura 11, em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem propagar uma intrapredição a partir de um bloco (por exemplo, bloco 222) através de múltiplos quadros em sucessão.
[0108] A Figura 12 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de múltiplos blocos de referência, de acordo com as técnicas desta revelação. Em alguns exemplos, tal como a bipredição mostrada na Figura 12, pode haver mais de um bloco de referência para o bloco intercodifiçado atual. No exemplo da Figura 12, o bloco atual 312 no quadro 310 é predito tanto a partir do bloco de referência 302 no quadro 300 como do bloco de referência 322 no quadro 320. O bloco de referência 302 é localizado pelo MV 314 e o bloco de referência 322 é localizado pelo MV 324. Nesse exemplo, a fim de associar um modo de intrapredição ao bloco atual 310, o codificador de vídeo 20 e o decodificador de vídeo 30 podem considerar tanto o modo
Petição 870190093362, de 18/09/2019, pág. 58/117
54/78 de intrapredição 316, associado ao bloco de referência 302, como o modo de intrapredição 326, associado ao bloco de referência 322, como modos candidatos. O codificador de vídeo 20 e o decodif icador de vídeo 30 podem ser configurados para realizar um processo para determinar qual dos modos candidatos associar como o modo de intrapredição para o bloco atual 312. O processo realizado pode ser predeterminado e pode ser realizado de uma maneira recíproca tanto pelo codificador de vídeo 20 como pelo decodificador de vídeo 30. No exemplo da Figura 12, há apenas dois modos de intrapredição candidatos. Entretanto, as técnicas desta revelação podem ser usadas com qualquer número de modos de intrapredição candidatos.
[0109] Em um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem derivar o modo de intrapredição do bloco atual 312 como o modo de intrapredição que aparece a maior parte das vezes entre os modos candidatos. Por exemplo, pode haver três blocos de referência com três respectivos modos de intrapredição candidatos (por exemplo, indicado pelos índices 21, 33 e 33) . Nesse caso, o codificador de vídeo 20 e o decodificador de vídeo 30 podem selecionar o modo de intrapredição que tem o índice 33 como o modo de intrapredição do bloco atual devido ao fato de que ó índice 33 ocorre a maior parte das vezes (por exemplo, duas instâncias de índice 33 e uma de 21).
[0110] Em outro exemplo, o codificador de vídeo 20 e o decodif icador de vídeo 30 podem ser configurados para derivar o modo de intrapredição do bloco atual com os modos de intrapredição nos blocos de
Petição 870190093362, de 18/09/2019, pág. 59/117
55/78 referência em uma estratégia baseada em prioridade. 0 modo candidato com a prioridade mais alta pode ser emitido como o modo de intrapredição do bloco atual. Em um exemplo, um modo de intrapredição candidato de um bloco de referência intracodifiçado (isto é, um bloco de referência codificado com o uso de intrapredição) tem uma prioridade mais alta que um modo de intrapredição candidato de um bloco de referência intercodifiçado (isto é, um bloco de referência codificado com o uso de interpredição). Em outro exemplo, um modo de intrapredição candidato que não é um modo DC ou Planar (por exemplo, o índice de modo de intrapredição >= 2 em HEVC e JEM) tem uma prioridade mais alta que um modo de intrapredição candidato que é um modo DC ou Planar (por exemplo, o índice de modo de intrapredição é < 2 em HEVC e JEM) .
[0111] Em outro exemplo, o codificador de vídeo 20 e o decodif icador de vídeo 30 podem ser configurados para selecionar um modo de intrapredição candidato de um bloco de referência em um quadro de referência que tem uma distância temporal menor que o quadro atual. Ou seja, um modo de intrapredição candidato a partir de um quadro de referência com uma distância temporal menor tem uma prioridade mais alta que um modo de intrapredição candidato de um bloco de referência em um quadro de referência que tem uma distância temporal maior para o quadro atual. A distância temporal pode ser calculada com base em um número de contagem de ordem de imagem (POC) do quadro de referência (POCref) em comparação com um número POC do quadro atual (POCcur) . Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem
Petição 870190093362, de 18/09/2019, pág. 60/117
56/78
determinar a distância temporal como |POCref-POCcur| , em
que OC se refere à contagem de ordem de imagem definida em
HEVC.
[0112] Em outro exemplo, o codificador de
vídeo 20 e o decodif icador de vídeo 30 podem ser
configurados para selecionar um modo de intrapredição candidato com base em um parâmetro de quantização (QP) . Por exemplo, um modo de intrapredição candidato de um bloco de referência com um QP menor tem uma prioridade mais alta que um modo de intrapredição candidato de um bloco de referência com um QP maior.
[0113] Um exemplo de estratégia de prioridade quando existem dois modos de intrapredição candidatos, tal como o exemplo de bipredição da Figura 12, pode ser da seguinte forma.
[0114] Suponha que existam dois modos de intrapredição candidatos ailntraMode [0] e ailntraMode[1]. O modo de inter/intracodificação, QP, e a distância temporal dos blocos de referência que têm os dois modos de intrapredição candidatos são indicados como aiPredMode[0], aiPredMode[1], iPicQP[l], aiPicQP[0], e aiPOCdelta[0] e aiPOCdelta[1], respectivamente. Então, o índice candidato selecionado, indicado como iSelCand, pode ser derivado pelo codificador de vídeo 20 e pelo decodificador de vídeo 30, conforme mostrado no seguinte pseudocódigo:
if (aiPredMode [0] = = MODE INTRA && aiPredModefl] ==
MODE_INTER) {
iSelCand = 0;
Petição 870190093362, de 18/09/2019, pág. 61/117
57/78 }
else if (aiPredModefl J == MODE INTRA &&
aiPredModefO] ==
MODE_INTER) { iSelCand = 1;
} else { if (aiIntraMode [0] > 1 && aiIntraMode [1] < = 1) { iSelCand = 0;
} else if (ailntraMode [1] > 1 && ailntraMode [0] < = 1) { iSelCand = 1;
} else {
if (aiPOCdelta [ 0 ] < aiPOCdeltaflJ) { iSelCand = 0;
} else if (aiPOCdeltaflJ < aiPOCdeltafOJ) { iSelCand = 1;
} else { if (aiPicQP[l] < aiPicQPfOJ) {
Petição 870190093362, de 18/09/2019, pág. 62/117
58/78 iSelCand = 1;
} else { iSelCand = 0;
} }
} }
[0115] A Figura 13 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição para um sub-bloco de um bloco de vídeo, de acordo com as técnicas desta revelação. Conforme mostrado na Figura 13, o bloco atual 342 no quadro atual 340 pode ser dividido em sub-blocos 342A, 342B, 342C e 342D. O bloco atual 342 é um bloco intercodif içado. O bloco atual 342 é intercodifiçado em relação ao bloco de referência 332 no quadro de referência 330, que é localizado pelo MV 344.
[0116] Em um exemplo, da revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 pode derivar um único modo de intrapredição para o bloco atual 342, e associar esse único modo de intrapredição a cada um dos sub-blocos 342A, 342B, 342C e 342D. Em outros exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem derivar um modo de intrapredição para cada um dos sub-blocos 342A, 342B, 342C e 342D. A Figura 13 mostra um exemplo em que o codificador de vídeo 20 e o decodificador de vídeo 30 derivam o modo de intrapredição 346 a partir do sub-bloco de referência 332A para o sub-bloco atual 342A, o modo de intrapredição 348 a partir do sub-bloco de
Petição 870190093362, de 18/09/2019, pág. 63/117
59/78 referência 332B para o sub-bloco atual 342B, o modo de intrapredição 350 a partir do sub-bloco de referência 332C para o sub-bloco atual 342C, e o modo de intrapredição 352 a partir do sub-bloco de referência 332D para o sub-bloco atual 342D. Um sub-bloco pode ser de qualquer tamanho, tal como 2x2, 4x4, 2x4, 4x2, e assim por diante.
[0117] A Figura 14 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de um bloco de referência que cobre múltiplas unidades de codificação, de acordo com as técnicas desta revelação. O bloco colocalizado ou o bloco de referência (ou sub-bloco de referência) pode cobrir mais de um bloco de codificação, isto é, Unidade de Codificação (CU)/Unidade de Predição (PU)/Unidade de Transformada (TU) em HEVC (ou CU em JEM). A Figura 14 mostra tal exemplo, em que o bloco de referência 400 cobre quatro blocos de codificação: CUI, CU2, CU3 e CU4. Para derivar o modo de intrapredição a partir de um bloco colocalizado ou um bloco de referência (sub-bloco) que cobre mais de um bloco de codificação, as seguintes estratégias podem ser aplicadas.
[0118] Em um exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem usar o bloco de codificação que cobre um ponto específico no bloco colocalizado ou no bloco de referência (ou sub- bloco), e o modo de intrapredição do bloco selecionado pode ser tratado como o modo de intrapredição do bloco colocalizado ou o bloco de referência (ou sub-bloco) . Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem usar o modo de intrapredição associado à CU4 se o ponto central for definido como o ponto específico. Em outro
Petição 870190093362, de 18/09/2019, pág. 64/117
60/78 exemplo, o codificador de video 20 e o decodificador de video 30 podem usar o modo de intrapredição associado à GUI se o ponto superior esquerdo for definido. O ponto especifico do bloco de referência 400 a ser usado para determinar qual modo de intrapredição de uma CU particular selecionar pode ser predeterminado e usado tanto pelo codificador de video 20 como pelo decodif icador de video 30 .
[0119] Em outro exemplo, o bloco de codificação que cobre a maior área para o bloco colocalizado ou o bloco de referência (ou sub-bloco) pode ser selecionado e o modo de intrapredição do bloco selecionado pode ser tratado como o modo de intrapredição do bloco colocalizado ou o bloco de referência (ou subbloco) . Por exemplo, a CU4 pode ser selecionada uma vez que a mesma cobre a maior área no bloco colocalizado ou no bloco de referência na Figura 14.
[0120] Em outro exemplo, os modos de intrapredição de todos ou alguns dos blocos de codificação que cobrem o bloco colocalizado ou o bloco de referência (sub-bloco) podem ser tratados como modos de intrapredição candidatos. Em tais exemplos, o codificador de video pode implementar qualquer uma das estratégias definidas acima para determinar qual modo de intrapredição selecionar quando múltiplos blocos de referência estão disponíveis.
[0121] A Figura 15 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de um bloco vizinho, de acordo com as técnicas desta revelação. Em ainda outro exemplo, o modo de intrapredição de um bloco espacialmente vizinho será
Petição 870190093362, de 18/09/2019, pág. 65/117
61/78 tratado como o modo de intrapredição do bloco intercodifiçado atual. Ou seja, em vez de propagar modos de intrapredição a partir de blocos de referência ou blocos colocalizados em outros quadros, o codificador de vídeo 20 e o decodificador de vídeo 30 podem selecionar o modo de intrapredição de um bloco vizinho para associar a um bloco intercodifiçado atual. Na Figura 15, o codificador de vídeo 20 e o decodificador de vídeo 30 podem associar o modo de intrapredição 412 do bloco vizinho 420 ao bloco intercodifiçado atual 410. O bloco vizinho usado pelo codificador de vídeo 20 e pelo decodificador de vídeo 30 não se limita ao vizinho à esquerda mostrado na Figura 15, porém pode ser qualquer bloco vizinho, tais como os blocos vizinhos A, B, Al, A2, B0, Bl e B2, conforme mostrado na Figura 4.
[0122] No exemplo da Figura 15, o bloco vizinho 420 pode ser intracodifiçado, ou o bloco vizinho 420 pode ser intercodif içado. No primeiro caso, o modo de intrapredição do bloco vizinho 420 é sinalizado a partir do codificador de vídeo 20 para o decodificador de vídeo 30 ao codificar o bloco vizinho 420. No último caso, o modo de intrapredição do bloco vizinho 420 também é derivado, por exemplo, com o uso das técnicas de propagação de modo de intrapredição desta revelação.
[0123] A Figura 16 é um diagrama conceituai que ilustra um exemplo de obtenção de um modo de intrapredição a partir de uma sequência de blocos contíguos, de acordo com as técnicas desta revelação. A Figura 16 mostra um exemplo de como os modos de intrapredição são propagados a partir dos blocos vizinhos.
Petição 870190093362, de 18/09/2019, pág. 66/117
62/78
Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem derivar o modo de intrapredição 432 a partir do bloco vizinho 440 e associar o modo de intrapredição 432 ao bloco atual 430. De modo similar, o codificador de vídeo 20 e o decodificador de vídeo 30 podem derivar o modo de intrapredição 442 a partir do bloco vizinho 450 e associar o modo de intrapredição 442 ao bloco vizinho 440.
[0124] Em outro exemplo da revelação, um dos modos mais prováveis (MPM) é derivado conforme especificado em HEVC (consulte, por exemplo, a Seção 8.4.2. de HEVC) ou JEM pode ser tratado como o modo de intrapredição do bloco atual. Em geral, uma lista de modos mais prováveis é uma lista de modos de intrapredição que são mais provavelmente usados para codificar um bloco. 0 codificador de vídeo 20 pode sinalizar um índice na lista de modos mais prováveis que indica qual dos modos mais prováveis deve ser usado para codificar um bloco particular. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para derivar os modos mais prováveis (por exemplo, sem sinalização) com base em alguns parâmetros predeterminados. Em um exemplo desta revelação, o primeiro MPM derivado para a lista MPM, por exemplo, conforme especificado em HEVC ou JEM, pode ser tratado como o modo de intrapredição do bloco atual.
[0125] Em outro exemplo, os modos de intrapredição de mais de um bloco vizinho podem ser tratados como modos candidatos. Em tais exemplos, o codificador de vídeo pode implementar qualquer uma das estratégias definidas acima para determinar qual modo de intrapredição selecionar quando múltiplos blocos de
Petição 870190093362, de 18/09/2019, pág. 67/117
63/78 referência estão disponíveis.
[0126] O uso do método de intrapropagação proposto pode ser aplicado em codificação de luma, assim como em codificação de croma. Em outras palavras, tanto o modo de intrapredição de luma como o modo de intrapredição de croma podem ser derivados para um bloco intercodifiçado.
[0127] O uso das técnicas de intrapropagação discutido acima pode ser sinalizado a partir do codificador de vídeo 20 para o decodificador de vídeo 30 no nível de sequência, nível de quadro ou nível de fatia, tal como no conjunto de parâmetros de vídeo (VPS), conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS), cabeçalho de fatia (SH) ou outro conjunto de parâmetros.
[0128] Em um exemplo, com o uso das técnicas
propostas, um bloco intercodifiçado pode conduzir a
intrapredição com seu modo de intrapredição derivado. A
intrapredição e a interpredição para o bloco
intercodifiçado podem ser somadas de modo ponderado como a revisão final para o bloco. Por exemplo, o decodificador de vídeo 30 pode decodificar um bloco de dados de vídeo com o uso de um modo de interpredição para formar uma primeira predição, decodificar o primeiro bloco de dados de vídeo com o uso do primeiro modo de intrapredição para formar uma segunda predição, e combinar a primeira predição e a segunda predição como uma soma ponderada para produzir uma predição final para o primeiro bloco de dados de vídeo.
[0129] Com o método proposto, a abordagem de codificação preditiva para codificar os modos de intrapredição para blocos intracodifiçados em interquadros
Petição 870190093362, de 18/09/2019, pág. 68/117
64/78 pode ser aprimorada. Em alguns métodos de codificação intramodo existentes, tais como aqueles definidos em HEVC e JEM, um bloco vizinho que é intercodif içado pode ser marcado como indisponível ao codificar o intramodo do bloco atual. Com as técnicas de propagação intramodo descritas acima, um bloco vizinho que é intercodifiçado pode não ser mais marcado como indisponível. Em vez disso, o modo de intrapredição derivado do bloco vizinho de um bloco intercodifiçado vizinho pode ser usado para predizer o modo de intrapredição do bloco atual.
[0130] Em um exemplo, o modo de intrapredição derivado de um bloco intercodifiçado vizinho pode ser usado do mesmo modo que em um bloco vizinho intracodifiçado, e o modo de intrapredição derivado pode ser tratado do mesmo modo que o modo de intrapredição sinalizado em um processo de derivação MPM.
[0131] Em outro exemplo da revelação, o modo de intrapredição derivado de um bloco intercodifiçado vizinho é especialmente tratado no processo de derivação MPM. Após todos ou alguns dos blocos intracodifiçados vizinhos terem sido verificados e seus modos de intrapredição terem sido colocados na lista MPM, o codificador de vídeo 20 e o decodificador de vídeo 30 podem verificar os blocos intercodifiçados vizinhos e seus modos de intrapredição derivados serem colocados na lista MPM após o modo de intrapredição dos blocos intracodifiçados.
[0132] Em um exemplo, a lista MPM pode ser preenchida como os pseudocódigos abaixo:
MPM List is empty;
Petição 870190093362, de 18/09/2019, pág. 69/117
65/78
MPM_Num = 0;
if (isAvailable (Al) && Intra Prediction Mode (Al) is not in MPM List)
MPM_List [MPM _Num+ + ]=Intra Prediction Mode (Al); if (isAvailable (Bl) && Intra Prediction Mode (Bl) is not in MPM List)
MPM List [MPM Num++ ] =Intra Prediction Mode (Bl) ;
if (Planar is not in MPM List)
MPM List [MPM Num++ ]= Planar;
if (DC is not in MPM List) MPM_List [MPM_Num++ ]= DC;
if (isAvailable (A2) && Intra Prediction Mode(A2) is not in MPM List)
MPM List [MPM Num++ ] =Intra Prediction Mode (A2) ;
If(isAvailable(B2) && Intra Prediction Mode (B2) is not in MPM List)
MPM List [MPM Num+ + =Intra Prediction Mode (B2) ;
If(isAvailable(BO) && Intra Prediction Mode (BO) is not in MPM List)
MPM List [MPM Num+ + ]=Intra Prediction Mode (BO) ;
[0133] Em que a MPM_List se refere à lista MPM; MPM_Num se refere ao número de modos na lista MPM; Intra_Prediction_Mode (X) se refere ao modo de intrapredição no bloco vizinho X; isAvailable(X) retorna verdadeiro se ο bloco vizinho X estiver disponível; e falso se estiver indisponível. Em outro exemplo, a lista MPM pode ser
Petição 870190093362, de 18/09/2019, pág. 70/117
66/78 preenchida como os pseudocódigos abaixo:
MPM List is empty;
MPM_Num = 0;
Derivedlntra List is empty;
Derivedlntra Num = 0 if ( isAvailable (Al) && Intra Prediction Mode (Al) is not in MPM List) {
if ( isIntraCoded (Al))
MPM List [MPM Num++ ]=Intra Prediction Mode (Al);
else
Derivedlntra List [Derivedlntra Num++ ]=
Intra Prediction Mode (Al);
} if ( isAvailable(Bl) && Intra Prediction Mode (Bl) is not in MPM List) {
if ( isIntraCoded (Bl))
MPM List [MPM Num++ ]=Intra Prediction Mode (Bl);
else
Derivedlntra List[Derivedlntra Num++]=Intra Predictio
n Mode (Bl) ; } if( Planar is not in MPM List)
if( if( MPM List [MPM Num++ ]= Planar; DC is not in MPM List) MPM_List [MPM_Num++ ]= DC; isAvailable (A2) && Intra Prediction Mode (A2) is
not in MPM List) {
If ( isIntraCoded (A2))
MPM List [MPM Num++ ]=Intra Prediction Mode (A2);
Petição 870190093362, de 18/09/2019, pág. 71/117
67/78 else
Derivedlntra List [Derivedlntra Num+ + ]=
Intra Prediction Mode (A2) ;
}
If ( isAvailable (B2) && Intra Prediction Mode (B2) is not in MPM Bist) {
if ( isIntraCoded (B2))
MPM List [MPM Num++ ]=Intra Prediction Mode (B2);
else
Derivedlntra List [Derivedlntra Num++]=
Intra Prediction Mode (B2);
} if ( isAvailable (BO) && Intra Prediction Mode (BO) is not in MPM List) {
if ( isIntraCoded (BO))
MPM List [MPM Num++ ]=Intra Prediction Mode (BO);
else
Derivedlntra List [Derivedlntra Num+ + ]=
Intra Prediction Mode (BO);
} for each mode M in Derivedlntra List {
If ( M is not in MPM List ) MPM_List [MPM_Num++ ]=M;
}
Em que MPM_List se refere à lista MPM; MPM_Num se refere ao número de modos na lista MPM; Intra_Prediction_Mode (X) se refere ao modo de intrapredição no bloco vizinho X; isAvailable(X)
Petição 870190093362, de 18/09/2019, pág. 72/117
68/78 retorna verdadeiro se o bloco vizinho X estiver disponível; falso se estiver indisponível; Deríved!ntra_Líst se refere a uma lista que registra os modos de intrapredição derivados nos blocos vizinhos; e
Deríved!ntra_Num se refere ao número de modos na Deríved!ntra_Líst;
[0134] Em ainda outro exemplo, a lista MPM pode ser preenchida como os pseudocódigos abaixo:
MPM List is empty;
MPM_Num = 0;
Derivedlntra List is empty;
Derivedlntra Num = 0 if ( isAvailable (Al) && Lntra Prediction Mode (Al) is not in MPM List) {
if ( isIntraCoded (Al))
MPM List [MPM Num++ ]=Intra Prediction Mode (Al);
else
Derivedlntra List [Derivedlntra Num++]=
Lntra Prediction Mode (Al);
} if ( isAvailable(Bl) && Lntra Prediction Mode (Bl) is not in MPM List) {
if ( isIntraCoded (Bl))
MPM List [MPM Num++ ]=Intra Prediction Mode (Bl); else
Derivedlntra List[Derivedlntra Num++]=Intra Predictio n Mode (Bl) ;
}
Petição 870190093362, de 18/09/2019, pág. 73/117
69/78 for each mode M in Derivedlntra List {
If ( M is not in MPM List ) MPM_List [MPM_Num+ + ] =M; } Derivedlntra List is empty; Derivedlntra Num = 0 if ( Planar is not in MPM List) MPM List [MPM Num++ ]= Planar; if ( DC is not in MPM List) MPM_List [MPM_Num+ + ]= DC;
if ( isAvailable(A2) && Intra Prediction Mode(A2) is not in MPM List) { if ( isIntraCoded (A2)) MPM List [MPM Num++ ]=Intra Prediction Mode (A2);
else
Derivedlntra List [Derivedlntra Num++ ]=
Intra Prediction Mode (A2);
} if ( isAvailable (B2) && Intra Prediction Mode (B2) is not in MPM List) { if ( isIntraCoded (B2))
MPM List [MPM Num+ + ]=Intra Prediction Mode (B2); else
Derivedlntra List[Derivedlntra Num++]=Intra Predictio n Mode (B2) ;
} if (isAvailable (BO) && Intra Prediction Mode (BO) is not in MPM_List) { if ( isIntraCoded (BO))
Petição 870190093362, de 18/09/2019, pág. 74/117
70/78
MPM List [MPM Num++ ]=Intra Prediction Mode (BO);
else
Derivedlntra List[Derivedlntra Num++]=Intra Predictio n Mode (BO) ;
} for each mode M in Derivedlntra List {
If ( M is not in MPM List ) MPM_List [MPM Num++ ]=M;
} [0135] A Figura 17 é um diagrama de fluxo que ilustra uma técnica de codificação exemplificativa da revelação. As técnicas da Figura 17 podem ser realizadas por um ou mais componentes estruturais do codificador de video 20.
[0136]
Em um exemplo da revelação codificador de video 20 pode ser configurado para codificar um primeiro bloco de dados de video com o uso de um modo de interpredição (1702). Em um exemplo da revelação, o primeiro bloco de dados de video é um sub-bloco de dados de video. O codificador de video 20 pode ser adicionalmente configurado para associar um primeiro modo de intrapredição ao primeiro bloco de dados de video, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de video (17 04) .
[0137]
Em um exemplo da revelação, o primeiro bloco de dados de video se situa em um quadro atual e o segundo bloco de dados de video é um bloco colocalizado em um segundo quadro. Nesse exemplo, o codificador de video 20 pode ser configurado para localizar o bloco colocalizado
Petição 870190093362, de 18/09/2019, pág. 75/117
71/78 com base em uma posição do primeiro bloco de dados de video e determinar o primeiro modo de intrapredição a partir do bloco colocalizado.
[0138] Em outro exemplo da revelação, ο primeiro bloco de dados de vídeo se situa em um quadro atual, e o segundo bloco de dados de vídeo é um bloco de referência em um quadro de referência. Nesse exemplo, o codificador de vídeo 20 pode ser configurado para localizar o bloco de referência com base em um vetor de movimento associado ao primeiro bloco de dados de vídeo e determinar o primeiro modo de intrapredição a partir do bloco de referência. Em um exemplo, o vetor de movimento é um vetor de movimento nulo.
[0139] Em outro exemplo da revelação, o segundo bloco de dados de vídeo é incluído em uma lista de candidatos de dois ou mais blocos de dados de vídeo. Nesse exemplo, codificador de vídeo 20 pode ser configurado para determinar o primeiro modo de intrapredição a partir de dois ou mais modos de intrapredição associados a dois ou mais blocos de dados de vídeo.
[0140] Em um exemplo da revelação, o primeiro bloco de dados de vídeo é um sub-bloco de dados de vídeo. Em outro exemplo da revelação, o primeiro bloco de dados de vídeo inclui uma pluralidade de sub-blocos. Nesse exemplo, o codificador de vídeo 20 pode ser configurado para associar o primeiro modo de intrapredição a cada um dentre a pluralidade de sub-blocos.
[0141] Em outro exemplo da revelação, o primeiro bloco de dados de vídeo se situa em um quadro atual e o segundo bloco de dados de vídeo se situa no
Petição 870190093362, de 18/09/2019, pág. 76/117
72/78 quadro atual.
[0142] O codificador de vídeo 20 pode ser adicionalmente configurado para determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição (1706). Em um exemplo, o codificador de vídeo 20 pode codificar o primeiro bloco de dados de vídeo com o uso do modo de interpredição para formar uma primeira predição, codificar o primeiro bloco de dados de vídeo com o uso do primeiro modo de intrapredição para formar uma segunda predição, e combinar a primeira predição e a segunda predição como uma soma ponderada para produzir uma predição final para o primeiro bloco de dados de vídeo.
[0143] Em outro exemplo, o codificador de vídeo 20 pode determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição, determinar uma lista de modos mais prováveis, em que a lista de modos mais prováveis inclui o primeiro modo de intrapredição associado ao primeiro bloco de dados de vídeo, e determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo a partir da lista de modos mais prováveis.
[0144] A Figura 18 é um diagrama de fluxo que ilustra uma técnica de decodificação exemplificativa da revelação. As técnicas da Figura 18 podem ser realizadas por um ou mais componentes estruturais do decodificador de vídeo 30.
[0145] Em um exemplo da revelação, o decodificador de vídeo 30 pode ser configurado para receber um primeiro bloco de dados de vídeo codificados com o uso
Petição 870190093362, de 18/09/2019, pág. 77/117
73/78 de um modo de interpredição (1802) . Em um exemplo da revelação, o primeiro bloco de dados de vídeo é um subbloco de dados de vídeo. O decodificador de vídeo 30 pode ser adicionalmente configurado para associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo (1804) .
[0146] Em um exemplo da revelação, o primeiro bloco de dados de vídeo se situa em um quadro atual e o segundo bloco de dados de vídeo é um bloco colocalizado em um segundo quadro. Nesse exemplo, o decodificador de vídeo 30 pode ser configurado para localizar o bloco colocalizado com base em uma posição do primeiro bloco de dados de vídeo e determinar o primeiro modo de intrapredição a partir do bloco colocalizado.
[0147] Em outro exemplo da revelação, o primeiro bloco de dados de vídeo se situa em um quadro atual, e o segundo bloco de dados de vídeo é um bloco de referência em um quadro de referência. Nesse exemplo, o decodificador de vídeo 30 pode ser configurado para localizar o bloco de referência com base em um vetor de movimento associado ao primeiro bloco de dados de vídeo e determinar o primeiro modo de intrapredição a partir do bloco de referência. Em um exemplo, o vetor de movimento é um vetor de movimento nulo.
[0148] Em outro exemplo da revelação, o segundo bloco de dados de vídeo é incluído em uma lista de candidatos de dois ou mais blocos de dados de vídeo. Nesse exemplo, decodificador de vídeo 30 pode ser configurado para determinar o primeiro modo de intrapredição a partir
Petição 870190093362, de 18/09/2019, pág. 78/117
74/78 de dois ou mais modos de intrapredição associados a dois ou mais blocos de dados de vídeo.
[0149] Em um exemplo da revelação, o primeiro bloco de dados de vídeo é um sub-bloco de dados de vídeo. Em outro exemplo da revelação, o primeiro bloco de dados de vídeo inclui uma pluralidade de sub-blocos. Nesse exemplo, o decodificador de vídeo 30 pode ser configurado para associar o primeiro modo de intrapredição a cada um dentre a pluralidade de sub-blocos.
[0150] Em outro exemplo da revelação, o primeiro bloco de dados de vídeo se situa em um quadro atual e o segundo bloco de dados de vídeo se situa no quadro atual.
[0151] O decodif icador de vídeo 30 pode ser adicionalmente configurado para determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição (1806). Em um exemplo, o decodificador de vídeo 30 pode decodificar o primeiro bloco de dados de vídeo com o uso do modo de interpredição para formar uma primeira predição, decodificar o primeiro bloco de dados de vídeo com o uso do primeiro modo de intrapredição para formar uma segunda predição, e combinar a primeira predição e a segunda predição como uma soma ponderada para produzir uma predição final para o primeiro bloco de dados de vídeo.
[0152] Em outro exemplo, o decodificador de vídeo 30 pode determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição, determinar uma lista de modos mais prováveis, em que a lista de modos mais prováveis inclui o primeiro modo de intrapredição associado
Petição 870190093362, de 18/09/2019, pág. 79/117
75/78 ao primeiro bloco de dados de vídeo, e determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo a partir da lista de modos mais prováveis.
[0153] Certos aspectos desta revelação foram descritos em relação a extensões do padrão HEVC para propósitos de ilustração. Entretanto, as técnicas descritas nesta revelação podem ser úteis para outros processos de codificação de vídeo, incluindo outros processos de codificação de vídeo padrão ou proprietários em desenvolvimento ou ainda não desenvolvidos.
[0154] Um codificador de vídeo, conforme descrito nesta revelação, pode se referir a um codificador de vídeo ou a um decodificador de vídeo. De modo similar, uma unidade de codificação de vídeo pode se referir a um codificador de vídeo ou a um decodificador de vídeo. Igualmente, a codificação de vídeo pode se referir à codificação de vídeo ou decodificação de vídeo, conforme aplicável.
[0155] Deve ser reconhecido que dependendo do exemplo, certas ações ou eventos de qualquer uma das técnicas descritas no presente documento podem ser realizados em uma sequência diferente, podem ser adicionados, mesclados ou excluídos completamente (por exemplo, nem todas as ações ou eventos descritos são necessários para a prática das técnicas). Além disso, em determinados exemplos, ações ou eventos podem ser realizados simultaneamente, por exemplo, através de processamento multi-threaded, processamento de interrupção ou múltiplos processadores, em vez de sequencialmente.
[0156] Em um ou mais exemplos, as funções
Petição 870190093362, de 18/09/2019, pág. 80/117
76/78 descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Caso implementadas em software, as funções podem ser armazenadas em, ou transmitidas através de uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. As mídias legíveis por computador podem incluir mídias de armazenamento legíveis por computador, que correspondem a um meio tangível, tal como mídia de armazenamento de dados ou mídia de comunicação que inclua qualquer meio que facilite a transferência de um programa de computador de um local para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, as mídias legíveis por computador podem corresponder geralmente a (1) mídia legível por computador tangível gue é não transitória ou (2) um meio de comunicação, tal como um sinal ou onda portadora. As mídias de armazenamento de dados podem ser quaisquer mídias disponíveis que possam ser acessadas por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estrutura de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[0157] A título de exemplo e sem limitação, uma mídia de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser usado para armazenar código de programa desejado sob a forma de instruções ou
Petição 870190093362, de 18/09/2019, pág. 81/117
77/78 estruturas de dados e que podem ser acessadas por um computador. Além disso, qualquer conexão é adequadamente denominada um meio legível por computador. Por exemplo, se instruções forem transmitidas a partir de um site da web,
servidor ou outra fonte remota com o uso de um cabo
coaxial, cabo de fibra óptica, par trançado, linha de
assinante digital (DSL) ou tecnologias sem fio como
infravermelho, rádio e micro-ondas, então, o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou as tecnologias sem fio como infravermelho, rádio e micro-ondas estão incluídos na definição de meio. Deve-se compreender, entretanto, que as mídias legíveis por computador e as mídias de armazenamento de dados não incluem conexões, ondas portadoras ou outros sinais, ou outras mídias transitórias, mas são, em vez disso, direcionadas às mídias de armazenamento tangíveis não transitórias. Disco magnético e disco óptico, conforme usado no presente documento, incluem disco compacto (CD), disco a laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, em que os discos magnéticos geralmente reproduzem dados magneticamente, enquanto os discos ópticos reproduzem dados opticamente com lasers. As combinações do supracitado também devem ser abrangidas pelo escopo de mídia legível por computador.
[0158] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis em campo (FPGAs) ou outros conjuntos de circuitos lógicos
Petição 870190093362, de 18/09/2019, pág. 82/117
78/78 integrados ou discretos equivalentes. Consequentemente, o termo processador, conforme usado no presente documento pode se referir a qualquer uma dentre a estrutura anteriormente mencionada ou qualquer outra estrutura adequada para implementação das técnicas descritas no presente documento. Além disso, em alguns exemplos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos hardware e/ou software dedicados configurados para codificação ou decodificação ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0159] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos e aparelhos, incluindo um fone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar os aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, porém não necessariamente exigem a realização por unidades de hardware diferentes. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por uma coleção de unidades de hardware interoperativas, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.
[0160] Vários exemplos da revelação foram descritos. Qualquer combinação dos sistemas, operações ou funções descritos é contemplada. Esses e outros exemplos são abrangidos pelo escopo das seguintes reivindicações.

Claims (12)

REIVINDICAÇÕES
1. Método de decodificação de dados de vídeo, sendo que o método compreende:
receber um primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição;
associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo; e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
2/12 partir do bloco de referência.
2. Método, de acordo com a reivindicação 1, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, em que o segundo bloco de dados de vídeo é um bloco colocalizado em um segundo guadro, e em que o método compreende adicionalmente:
localizar o bloco colocalizado com base em uma posição do primeiro bloco de dados de vídeo; e determinar o primeiro modo de intrapredição a partir do bloco colocalizado.
3/12 segunda predição; e combinar a primeira predição e a segunda predição como uma soma ponderada para produzir uma predição final para o primeiro bloco de dados de vídeo.
3. Método, de acordo com a reivindicação 1, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, em que o segundo bloco de dados de vídeo é um bloco de referência em um quadro de referência, e em que o método compreende adicionalmente:
localizar o bloco de referência com base em um vetor de movimento associado ao primeiro bloco de dados de vídeo; e determinar o primeiro modo de intrapredição a
Petição 870190093362, de 18/09/2019, pág. 84/117
4/12 parte, no primeiro modo de intrapredição.
12. Aparelho, de acordo com a reivindicação 11, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, em que o segundo bloco de dados de vídeo é um bloco colocalizado em um segundo quadro, e em que o um ou mais processadores são adicionalmente configurados para:
localizar o bloco colocalizado com base em uma posição do primeiro bloco de dados de vídeo; e determinar o primeiro modo de intrapredição a partir do bloco colocalizado.
13. Aparelho, de acordo com a reivindicação 11, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, em que o segundo bloco de dados de vídeo é um bloco de referência em um quadro de referência, e em que o um ou mais processadores são adicionalmente configurados
para: localizar o bloco de referência com base em um vetor de movimento associado ao primeiro bloco de dados de vídeo; e determinar o primeiro modo de intrapredição a
partir do bloco de referência.
14. Aparelho, de acordo com a reivindicação 13, em que o vetor de movimento é um vetor de movimento nulo 15. Aparelho, de acordo com a reivindicação 11, em que o segundo bloco de dados de vídeo é incluído em uma lista de candidatos de dois ou mais bl ocos de dados de vídeo, e em que o um ou mais processadores são
adicionalmente configurados para:
determinar o primeiro modo de intrapredição a partir de dois ou mais modos de intrapredição associados
Petição 870190093362, de 18/09/2019, pág. 87/117
4. Método, de acordo com a reivindicação 3,em que o vetor de movimento é um vetor de movimento nulo.
5/12 aos dois ou mais blocos de dados de vídeo.
16. Aparelho, de acordo com a reivindicação 11, em que o primeiro bloco de dados de vídeo é um sub-bloco de dados de vídeo.
17. Aparelho, de acordo com a reivindicação 11, em que o primeiro bloco de dados de vídeo inclui uma pluralidade de sub-blocos, e em que o um ou mais processadores são adicionalmente configurados para:
associar o primeiro modo de intrapredição a cada um dentre a pluralidade de sub-blocos.
18. Aparelho, de acordo com a reivindicação 11, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, e em que o segundo bloco de dados de vídeo se situa no quadro atual.
19. Aparelho, de acordo com a reivindicação 11, em que o um ou mais processadores são adicionalmente configurados para:
decodificar o primeiro bloco de dados de vídeo com o uso do modo de interpredição para formar uma primeira predição;
decodificar o primeiro bloco de dados de vídeo com o uso do primeiro modo de intrapredição para formar uma segunda predição; e combinar a primeira predição e a segunda predição como uma soma ponderada para produzir uma predição final para o primeiro bloco de dados de vídeo.
20. Aparelho, de acordo com a reivindicação 11, em que determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição, o um ou mais
Petição 870190093362, de 18/09/2019, pág. 88/117
5. Método, de acordo com a reivindicação 1,em que o segundo bloco de dados de vídeo é incluído emuma lista de candidatos de dois ou mais blocos de dadosde vídeo, sendo que o método compreende adicionalmente:
determinar o primeiro modo de intrapredição a partir de dois ou mais modos de intrapredição associados aos dois ou mais blocos de dados de vídeo.
6/12 processadores são adicionalmente configurados para:
determinar uma lista de modos mais prováveis, em que a lista de modos mais prováveis inclui o primeiro modo de intrapredição associado ao primeiro bloco de dados de vídeo; e determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo a partir da lista de modos mais prováveis.
21. Aparelho configurado para decodificar dados de vídeo, sendo que o aparelho compreende:
meios para receber um primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição;
meios para associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo; e meios para determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
22. Meio de armazenamento legível por computador que armazena instruções que, quando executadas, fazem com que um ou mais processadores de um dispositivo configurado para decodificar dados de vídeo para:
receber o primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição;
associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo; e
Petição 870190093362, de 18/09/2019, pág. 89/117
6. Método de acordo com a reivindicação 1 que o primeiro bloco de dados de vídeo é um sub-bloco de dados de vídeo.
7/12 determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
23. Método de codificação de dados de vídeo, sendo que o método compreende:
codificar um primeiro bloco de dados de vídeo com o uso de um modo de interpredição;
associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo; e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
24. Método, de acordo com a reivindicação 23, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, em que o segundo bloco de dados de vídeo é um bloco colocalizado em um segundo quadro, e em que o método compreende adicionalmente:
localizar o bloco colocalizado com base em uma posição do primeiro bloco de dados de vídeo; e determinar o primeiro modo de intrapredição a partir do bloco colocalizado.
25. Método, de acordo com a reivindicação 23, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, em que o segundo bloco de dados de vídeo é um bloco de referência em um quadro de referência, e em que o método compreende adicionalmente:
localizar o bloco de referência com base em um vetor de movimento associado ao primeiro bloco de dados de
Petição 870190093362, de 18/09/2019, pág. 90/117
7. Método de acordo com a reivindicação 1 que o primeiro bloco de dados de vídeo inclui uma pluralidade de sub-blocos, sendo que o método compreende adicionalmente:
associar o primeiro modo de intrapredição a cada um dentre a pluralidade de sub-blocos.
8/12 video; e determinar o primeiro modo de intrapredição a partir do bloco de referência.
26. Método, de acordo com a reivindicação 25, em que o vetor de movimento é um vetor de movimento nulo.
27. Método, de acordo com a reivindicação 23, em que o segundo bloco de dados de vídeo é incluído em uma lista de candidatos de dois ou mais blocos de dados de vídeo, sendo que o método compreende adicionalmente:
determinar o primeiro modo de intrapredição a partir de dois ou mais modos de intrapredição associados aos dois ou mais blocos de dados de vídeo.
28. Método, de acordo com a reivindicação 23, em que o primeiro bloco de dados de vídeo é um sub-bloco de dados de vídeo.
29. Método, de acordo com a reivindicação 23, em que o primeiro bloco de dados de vídeo inclui uma pluralidade de sub-blocos, sendo que o método compreende adicionalmente:
associar o primeiro modo de intrapredição a cada um dentre a pluralidade de sub-blocos.
30. Método, de acordo com a reivindicação 23, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, e em que o segundo blo co de dados de vídeo se
situa no quadro atual.
31. Método, de acordo com a reivindicação 23, que compreende adicionalmente:
decodificar o primeiro bloco de dados de vídeo com o uso do modo de interpredição para formar uma primeira predição;
Petição 870190093362, de 18/09/2019, pág. 91/117
8. Método, de acordo com a reivindicação 1, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, e em que o segundo bloco de dados de vídeo se situa no quadro atual.
9/12 decodificar o primeiro bloco de dados de vídeo com o uso do primeiro modo de intrapredição para formar uma segunda predição; e combinar a primeira predição e a segunda predição como uma soma ponderada para produzir uma predição final para o primeiro bloco de dados de vídeo.
32. Método, de acordo com a reivindicação 23, em que determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição compreende:
determinar uma lista de modos mais prováveis, em que a lista de modos mais prováveis inclui o primeiro modo de intrapredição associado ao primeiro bloco de dados de vídeo; e determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo a partir da lista de modos mais prováveis.
33. Aparelho configurado para codificar dados de vídeo, sendo que o aparelho compreende:
uma memória configurada para armazenar um primeiro bloco de dados de vídeo; and um ou mais processadores em comunicação com a memória, sendo que o um ou mais processadores são configurados para:
codificar o primeiro bloco de dados de vídeo com o uso de um modo de interpredição;
associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo; e
Petição 870190093362, de 18/09/2019, pág. 92/117
9. Método, de acordo com a reivindicação 1, que compreende adicionalmente:
decodificar o primeiro bloco de dados de vídeo com o uso do modo de interpredição para formar uma primeira predição;
decodificar o primeiro bloco de dados de vídeo com o uso do primeiro modo de intrapredição para formar uma
Petição 870190093362, de 18/09/2019, pág. 85/117
10/12 determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição.
34. Aparelho, de acordo com a reivindicação 33, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, em que o segundo bloco de dados de vídeo é um bloco colocalizado em um segundo quadro, e em que o um ou mais processadores são adicionalmente configurados para:
localizar o bloco colocalizado com base em uma posição do primeiro bloco de dados de vídeo; e determinar o primeiro modo de intrapredição a partir do bloco colocalizado.
35. Aparelho, de acordo com a reivindicação 33, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, em que o segundo bloco de dados de vídeo é um bloco de referência em um quadro de referência, e em que o um ou mais processadores são adicionalmente configurados para:
localizar o bloco de referência com base em um vetor de movimento associado ao primeiro bloco de dados de vídeo; e determinar o primeiro modo de intrapredição a partir do bloco de referência.
36. Aparelho, de acordo com a reivindicação 35, em que o vetor de movimento é um vetor de movimento nulo.
37. Aparelho, de acordo com a reivindicação 33, em que o segundo bloco de dados de vídeo é incluído em uma lista de candidatos de dois ou mais blocos de dados de vídeo, e em que o um ou mais processadores são adicionalmente configurados para:
Petição 870190093362, de 18/09/2019, pág. 93/117
10. Método, de acordo com a reivindicação 1, em que determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição compreende:
determinar uma lista de modos mais prováveis, em que a lista de modos mais prováveis inclui o primeiro modo de intrapredição associado ao primeiro bloco de dados de vídeo; e determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo a partir da lista de modos mais prováveis.
11/12 determinar o primeiro modo de intrapredição a partir de dois ou mais modos de intrapredição associados aos dois ou mais blocos de dados de vídeo.
38. Aparelho, de acordo com a reivindicação 33, em que o primeiro bloco de dados de vídeo é um sub-bloco de dados de vídeo.
39. Aparelho, de acordo com a reivindicação 33, em que o primeiro bloco de dados de vídeo inclui uma pluralidade de sub-blocos, e em que o um ou mais processadores são adicionalmente configurados para:
associar o primeiro modo de intrapredição a cada um dentre a pluralidade de sub-blocos.
40. Aparelho, de acordo com a reivindicação 33, em que o primeiro bloco de dados de vídeo se situa em um quadro atual, e em que o segundo bloco de dados de vídeo se situa no quadro atual.
41. Aparelho, de acordo com a reivindicação 33, em que o um ou mais processadores são adicionalmente configurados para:
decodificar o primeiro bloco de dados de vídeo com o uso do modo de interpredição para formar uma primeira predição;
codificar o primeiro bloco de dados de vídeo com o uso do primeiro modo de intrapredição para formar uma segunda predição; e combinar a primeira predição e a segunda predição como uma soma ponderada para produzir uma predição final para o primeiro bloco de dados de vídeo.
42. Aparelho, de acordo com a reivindicação 33, em que determinar o segundo modo de intrapredição para o
Petição 870190093362, de 18/09/2019, pág. 94/117
11. Aparelho configurado para decodificar dados de vídeo, sendo que o aparelho compreende:
uma memória configurada para armazenar um primeiro bloco de dados de vídeo; e um ou mais processadores em comunicação com a memória, sendo que o um ou mais processadores são configurados para:
receber o primeiro bloco de dados de vídeo codificados com o uso de um modo de interpredição;
associar um primeiro modo de intrapredição ao primeiro bloco de dados de vídeo, em que o primeiro modo de intrapredição é associado a um segundo bloco de dados de vídeo; e determinar um segundo modo de intrapredição para um bloco vizinho de dados de vídeo com base, pelo menos em
Petição 870190093362, de 18/09/2019, pág. 86/117
12/12 bloco vizinho de dados de vídeo com base, pelo menos em parte, no primeiro modo de intrapredição, o um ou mais processadores são adicionalmente configurados para:
determinar uma lista de modos mais prováveis, em que a lista de modos mais prováveis inclui o primeiro modo de intrapredição associado ao primeiro bloco de dados de vídeo; e determinar o segundo modo de intrapredição para o bloco vizinho de dados de vídeo a partir da lista de modos mais prováveis.
BR112019019423A 2017-03-22 2018-03-21 propagação de modo de intrapredição BR112019019423A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762475149P 2017-03-22 2017-03-22
US15/926,550 US11496747B2 (en) 2017-03-22 2018-03-20 Intra-prediction mode propagation
PCT/US2018/023465 WO2018175520A1 (en) 2017-03-22 2018-03-21 Intra-prediction mode propagation

Publications (1)

Publication Number Publication Date
BR112019019423A2 true BR112019019423A2 (pt) 2020-04-14

Family

ID=63583173

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019019423A BR112019019423A2 (pt) 2017-03-22 2018-03-21 propagação de modo de intrapredição

Country Status (9)

Country Link
US (2) US11496747B2 (pt)
EP (1) EP3603061B1 (pt)
KR (1) KR102637840B1 (pt)
CN (1) CN110393009B (pt)
AU (1) AU2018240212A1 (pt)
BR (1) BR112019019423A2 (pt)
SG (1) SG11201907091PA (pt)
TW (1) TW201841508A (pt)
WO (1) WO2018175520A1 (pt)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10757420B2 (en) 2017-06-23 2020-08-25 Qualcomm Incorporated Combination of inter-prediction and intra-prediction in video coding
EP3737093A4 (en) * 2017-11-28 2022-02-09 Electronics and Telecommunications Research Institute METHOD AND DEVICE FOR CODING/DECODING IMAGES AND RECORDING MEDIA STORED WITH A BITSTREAM
TW201944778A (zh) * 2018-04-09 2019-11-16 晨星半導體股份有限公司 幀內預測模式決定裝置與幀內預測模式決定方法
WO2020084475A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Utilization of refined motion vector
EP3857879A4 (en) 2018-11-12 2022-03-16 Beijing Bytedance Network Technology Co., Ltd. SIMPLIFICATION OF COMBINED INTER-INTRA PREDICTION
CN113170192B (zh) 2018-11-15 2023-12-01 北京字节跳动网络技术有限公司 仿射的merge与mvd
US11652984B2 (en) * 2018-11-16 2023-05-16 Qualcomm Incorporated Position-dependent intra-inter prediction combination in video coding
US20200162737A1 (en) 2018-11-16 2020-05-21 Qualcomm Incorporated Position-dependent intra-inter prediction combination in video coding
KR20210091161A (ko) 2018-11-20 2021-07-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 부분적 위치에 기반한 차분 계산
KR102635518B1 (ko) 2019-03-06 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 변환된 단예측 후보의 사용
WO2020182187A1 (en) * 2019-03-12 2020-09-17 Beijing Bytedance Network Technology Co., Ltd. Adaptive weight in multi-hypothesis prediction in video coding
KR20210000282A (ko) * 2019-06-24 2021-01-04 현대자동차주식회사 동영상 데이터의 인트라 예측 코딩을 위한 방법 및 장치
CN110519600B (zh) * 2019-08-21 2022-06-07 浙江大华技术股份有限公司 帧内帧间联合预测方法、装置、编解码器及存储装置
CN113875256B (zh) * 2019-12-23 2024-05-31 腾讯美国有限责任公司 进行视频解码的方法、装置及存储介质
US20230112074A1 (en) * 2021-10-08 2023-04-13 Tencent America LLC Mpm list construction
WO2023163386A1 (ko) * 2022-02-24 2023-08-31 현대자동차주식회사 블록 경계 불연속성을 감소시키는 비디오 코딩을 위한 방법 및 장치
WO2023194556A1 (en) * 2022-04-08 2023-10-12 Interdigital Ce Patent Holdings, Sas Implicit intra mode for combined inter merge/intra prediction and geometric partitioning mode intra/inter prediction

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4682410B2 (ja) * 2000-10-12 2011-05-11 ソニー株式会社 画像処理装置及び画像処理方法
US7929610B2 (en) 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
EP1454486A4 (en) * 2001-12-04 2009-03-25 Polycom Inc METHOD AND DEVICE FOR MIXING COMPRESSED VIDEO SIGNALS
US8085845B2 (en) * 2003-08-26 2011-12-27 Thomson Licensing Method and apparatus for encoding hybrid intra-inter coded blocks
US8315308B2 (en) * 2006-01-11 2012-11-20 Qualcomm Incorporated Video coding with fine granularity spatial scalability
US7535383B2 (en) 2006-07-10 2009-05-19 Sharp Laboratories Of America Inc. Methods and systems for signaling multi-layer bitstream data
US8565314B2 (en) * 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US20080101473A1 (en) * 2006-10-26 2008-05-01 Matsushita Electric Industrial Co., Ltd. Transcoding apparatus and transcoding method
JP4908180B2 (ja) * 2006-12-20 2012-04-04 株式会社東芝 動画像符号化装置
US8594187B2 (en) * 2007-03-02 2013-11-26 Qualcomm Incorporated Efficient video block mode changes in second pass video coding
KR101403341B1 (ko) * 2007-03-28 2014-06-09 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
US8432968B2 (en) * 2007-10-15 2013-04-30 Qualcomm Incorporated Scalable video coding techniques for scalable bitdepths
KR20100027384A (ko) * 2008-09-02 2010-03-11 삼성전자주식회사 예측 모드 결정 방법 및 장치
CN101677406B (zh) 2008-09-19 2011-04-20 华为技术有限公司 一种视频编解码的方法及装置
US8619856B2 (en) * 2008-10-03 2013-12-31 Qualcomm Incorporated Video coding with large macroblocks
KR101158491B1 (ko) * 2008-12-08 2012-06-20 한국전자통신연구원 다시점 영상 부호화, 복호화 방법 및 그 장치.
CN101763248A (zh) * 2008-12-25 2010-06-30 世意法(北京)半导体研发有限责任公司 用于多模式分支预测器的系统和方法
US9654792B2 (en) * 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
KR101702553B1 (ko) * 2009-07-04 2017-02-03 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
KR101733735B1 (ko) 2009-12-07 2017-05-08 에스케이 텔레콤주식회사 쌍예측을 이용한 멀티 플레인 영상의 부호화/복호화 장치와 방법 및 이를 위한 기록매체
KR101348613B1 (ko) * 2009-12-23 2014-01-10 한국전자통신연구원 영상의 부호화/복호화 장치 및 그 방법
US9467705B2 (en) 2009-12-30 2016-10-11 Ariscale Inc. Video encoding apparatus, video decoding apparatus, and video decoding method for performing intra-prediction based on directionality of neighboring block
US8712173B2 (en) * 2010-03-12 2014-04-29 Mediatek Singapore Pte. Ltd. Methods for processing 2Nx2N block with N being positive integer greater than four under intra-prediction mode and related processing circuits thereof
US20110310967A1 (en) * 2010-06-22 2011-12-22 Lei Zhang Method and System for Video and Image Coding Using Pattern Matching for Intra-Prediction
US20130194386A1 (en) * 2010-10-12 2013-08-01 Dolby Laboratories Licensing Corporation Joint Layer Optimization for a Frame-Compatible Video Delivery
US9485517B2 (en) * 2011-04-20 2016-11-01 Qualcomm Incorporated Motion vector prediction with motion vectors from multiple views in multi-view video coding
KR101383775B1 (ko) 2011-05-20 2014-04-14 주식회사 케이티 화면 내 예측 방법 및 장치
SG194746A1 (en) * 2011-05-31 2013-12-30 Kaba Gmbh Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
US9699456B2 (en) 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
US9338458B2 (en) * 2011-08-24 2016-05-10 Mediatek Inc. Video decoding apparatus and method for selectively bypassing processing of residual values and/or buffering of processed residual values
US20130051467A1 (en) * 2011-08-31 2013-02-28 Apple Inc. Hybrid inter/intra prediction in video coding systems
US9161046B2 (en) * 2011-10-25 2015-10-13 Qualcomm Incorporated Determining quantization parameters for deblocking filtering for video coding
US9154796B2 (en) * 2011-11-04 2015-10-06 Qualcomm Incorporated Intra-mode video coding
US9020294B2 (en) * 2012-01-18 2015-04-28 Dolby Laboratories Licensing Corporation Spatiotemporal metrics for rate distortion optimization
CA2866121C (en) * 2012-03-06 2018-04-24 Panasonic Intellectual Property Corporation Of America Moving picture coding method, moving picture decoding method, moving picture coding apparatus, moving picture decoding apparatus, and moving picture coding and decoding apparatus
US9538172B2 (en) 2012-04-11 2017-01-03 Qualcomm Incorporated Grouping bypass coded syntax elements in video coding
US20130301713A1 (en) * 2012-05-14 2013-11-14 Qualcomm Incorporated Systems and methods for intra prediction video coding
US9906786B2 (en) * 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
US9332257B2 (en) 2012-10-01 2016-05-03 Qualcomm Incorporated Coded black flag coding for 4:2:2 sample format in video coding
EP2952003B1 (en) 2013-01-30 2019-07-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
US9148667B2 (en) * 2013-02-06 2015-09-29 Qualcomm Incorporated Intra prediction mode decision with reduced storage
US20140254681A1 (en) 2013-03-08 2014-09-11 Nokia Corporation Apparatus, a method and a computer program for video coding and decoding
US9716899B2 (en) * 2013-06-27 2017-07-25 Qualcomm Incorporated Depth oriented inter-view motion vector prediction
WO2015006922A1 (en) * 2013-07-16 2015-01-22 Mediatek Singapore Pte. Ltd. Methods for residual prediction
KR20160072104A (ko) * 2013-10-18 2016-06-22 엘지전자 주식회사 멀티 뷰를 포함하는 비디오 부호화/복호화 방법 및 장치
KR102281282B1 (ko) * 2013-12-26 2021-07-23 삼성전자주식회사 서브블록 기반 예측을 수행하는 인터 레이어 비디오 복호화 방법 및 그 장치 및 서브블록 기반 예측을 수행하는 인터 레이어 비디오 부호화 방법 및 그 장치
KR102290964B1 (ko) * 2014-02-19 2021-08-18 삼성전자주식회사 적응적 서치 레인지를 이용한 비디오 인코딩 장치 및 그 방법
CN106464905B (zh) * 2014-05-06 2019-06-07 寰发股份有限公司 用于块内复制模式编码的块向量预测方法
WO2015180166A1 (en) 2014-05-30 2015-12-03 Mediatek Singapore Pte. Ltd. Improved intra prediction mode coding
US10397611B2 (en) * 2014-10-08 2019-08-27 Lg Electronics Inc. Method and device for encoding/decoding 3D video
US10271064B2 (en) * 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
US10531084B2 (en) * 2015-06-15 2020-01-07 Lg Electronics Inc. Intra prediction mode based image processing method, and apparatus therefor
US11463689B2 (en) 2015-06-18 2022-10-04 Qualcomm Incorporated Intra prediction and intra mode coding
US20170006303A1 (en) 2015-06-30 2017-01-05 Intel Corporation Method and system of adaptive reference frame caching for video coding
WO2017018664A1 (ko) 2015-07-28 2017-02-02 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017043816A1 (ko) 2015-09-10 2017-03-16 엘지전자(주) 인터-인트라 병합 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10218983B2 (en) * 2015-09-30 2019-02-26 Apple Inc. Adapting mode decisions in video encoder
KR20180069789A (ko) 2015-10-16 2018-06-25 엘지전자 주식회사 영상 코딩 시스템에서 예측 향상을 위한 필터링 방법 및 장치
US20170134732A1 (en) 2015-11-05 2017-05-11 Broadcom Corporation Systems and methods for digital media communication using syntax planes in hierarchical trees
KR20170059718A (ko) * 2015-11-23 2017-05-31 삼성전자주식회사 디코딩 장치 및 그 방법
KR20180086203A (ko) * 2015-12-17 2018-07-30 삼성전자주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
US10277896B2 (en) * 2016-01-22 2019-04-30 Apple Inc. Intra-frame prediction systems and methods
US11032550B2 (en) 2016-02-25 2021-06-08 Mediatek Inc. Method and apparatus of video coding
US10404989B2 (en) * 2016-04-26 2019-09-03 Google Llc Hybrid prediction modes for video coding
US10116957B2 (en) * 2016-09-15 2018-10-30 Google Inc. Dual filter type for motion compensated prediction in video coding
WO2018062702A1 (ko) * 2016-09-30 2018-04-05 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 방법 및 장치
TWI820211B (zh) * 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
CN112970253B (zh) * 2018-11-13 2024-05-07 北京字节跳动网络技术有限公司 用于预测的运动候选列表构建

Also Published As

Publication number Publication date
US20180278942A1 (en) 2018-09-27
CN110393009B (zh) 2023-03-31
KR102637840B1 (ko) 2024-02-16
US20230083249A1 (en) 2023-03-16
WO2018175520A1 (en) 2018-09-27
KR20190127889A (ko) 2019-11-13
EP3603061B1 (en) 2021-04-14
TW201841508A (zh) 2018-11-16
SG11201907091PA (en) 2019-10-30
EP3603061A1 (en) 2020-02-05
AU2018240212A1 (en) 2019-08-22
CN110393009A (zh) 2019-10-29
US11496747B2 (en) 2022-11-08

Similar Documents

Publication Publication Date Title
BR112019019423A2 (pt) propagação de modo de intrapredição
KR102278720B1 (ko) 비디오 코딩에서 변환 프로세싱과 함께 적용된 인트라 필터링
US11146795B2 (en) Intra filtering flag in video coding
RU2742298C2 (ru) Выведение вектора движения при видеокодировании
BR112021004492A2 (pt) codificação por transformada múltipla adaptativa
BR112020021263A2 (pt) limitação da derivação mvp com base na derivação do vetor de movimento do lado do decodificador
BR112019027821A2 (pt) emparelhamento de gabarito com base em reconstrução parcial para derivação de vetor de movimento
JP2019505143A (ja) ビデオコーディングのためにブロックの複数のクラスのためのフィルタをマージすること
KR20190008230A (ko) 비디오 코딩에서 적응적 루프 필터링에서의 다중 필터들의 혼동
BR112019010547A2 (pt) indicação de uso de filtro bilateral em codificação de vídeo
BR112019027071A2 (pt) intra-predição aperfeiçoada em codificação de vídeo
BR112017020102B1 (pt) Processo de amostragem descendente para modo de previsão de modelo linear
BR112016022085B1 (pt) Determinação de tamanho de paleta, entradas de paleta e filtragem de blocos codificados por paleta em codificação de vídeo
BR112016015998B1 (pt) Sinalização de resolução de vetor de movimento adaptativa para codificação de vídeo
BR112020011099A2 (pt) intra-predição com pixels vizinhos distantes
BR112016022261B1 (pt) Métodos de codificação e decodificação de dados de vídeo, aparelhos configurados para codificar e decodificar dados de vídeo, e, memória legível por computador
BR112014010046B1 (pt) Método para decodificar dados de vídeo, método e dispositivo para codificar dados de vídeo e memória legível por computador
BR112014019444B1 (pt) Restrição de unidades de predição em fatias b para interpredição unidirecional
BR112013032601B1 (pt) Seleção de candidatos a modo de junção e modo de predição adaptativa de vetor de movimento unificados
BR112015007116B1 (pt) Aparelho configurado para decodificar e codificar dados de vídeo, método de decodificação e codificação de dados de vídeo, e, memória legível por computador
KR20210022101A (ko) 모션 벡터 예측 방법 및 관련 장치
BR112016006677B1 (pt) Tipo de dependência inter-vista em mv-hevc
BR112021000225A2 (pt) Sinalização de modo intra luma
BR112016008240B1 (pt) Sistemas e métodos para definir separadamente dependências para previsão de camada intermediária com base em subcamada
BR112017020632B1 (pt) Métodos e dispositivo para processar dados de vídeo e memória legível por computador

Legal Events

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