BR112019018464A2 - indicador de filtragem intra na codificação de vídeo - Google Patents

indicador de filtragem intra na codificação de vídeo Download PDF

Info

Publication number
BR112019018464A2
BR112019018464A2 BR112019018464A BR112019018464A BR112019018464A2 BR 112019018464 A2 BR112019018464 A2 BR 112019018464A2 BR 112019018464 A BR112019018464 A BR 112019018464A BR 112019018464 A BR112019018464 A BR 112019018464A BR 112019018464 A2 BR112019018464 A2 BR 112019018464A2
Authority
BR
Brazil
Prior art keywords
block
video data
mode
video
encoding
Prior art date
Application number
BR112019018464A
Other languages
English (en)
Inventor
Karczewicz Marta
Seregin Vadim
Zhao Xin
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 BR112019018464A2 publication Critical patent/BR112019018464A2/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/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • 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
    • H04N19/619Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter

Landscapes

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

Abstract

a presente invenção se refere a um método de decodificação de dados de vídeo incluindo receber um primeiro bloco de dados de vídeo; receber um primeiro elemento de sintaxe indicando se um modo de codificação será usado ou não para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; decodificar explicitamente o valor do primeiro elemento de sintaxe recebido; e aplicar o modo de codificação ao primeiro bloco de dados de vídeo em conformidade com um valor do primeiro elemento de sintaxe.

Description

INDICADOR DE FILTRAGEM INTRA NA CODIFICAÇÃO DE VÍDEO [0001] Este Pedido de Patente reivindica o beneficio do Pedido de Patente Provisório US rí 62/470,099, depositado em 10 de março de 2017, e do Pedido de Patente Provisório US rí 62/475,739, depositado em 23 de março de 2017, o conteúdo de ambos sendo aqui incorporado por referência.
CAMPO TÉCNICO [0002] Esta invenção se refere à codificação e decodificação de video.
FUNDAMENTOS [0003] As funcionalidades de video digital podem ser incorporadas em uma ampla variedade de dispositivos, incluindo televisões digitais, sistemas de transmissão direta digital, sistemas de transmissão sem fio, assistentes pessoais digitais (PDAs), computadores portáteis ou desktops, tablets, leitores de livros digitais, câmeras digitais, dispositivos de gravação digitais, leitores de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, radiotelefones via celular ou satélite, os chamados smartfones, dispositivos de teleconferência de vídeo, dispositivos de transmissão de vídeo via streaming e similares. Os dispositivos de vídeo digitais implementam técnicas de codificação de vídeo, como aquelas descritas nas normas definidas 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), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC ou H.265) e as extensões desses padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações
Petição 870190087428, de 05/09/2019, pág. 20/133
2/91 de video digital de forma mais eficiente através da implantação dessas técnicas de compactação de video.
[0004] As técnicas de codificação de video incluem a predição espacial (intraimagem) e/ou a predição temporal (interimagem) para reduzir ou remover a redundância inerente às sequências de video. Para codificação de video baseada em blocos, uma fatia de video (por exemplo, um quadro de video ou uma parte de um quadro de video) pode ser segmentada em blocos de video, que também podem ser referidos como treeblocks, unidades de codificação (CUs) e/ou nós de codificação. As imagens podem ser referidas como quadros, e as imagens de referência podem ser referidas como 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 as diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Para maior compactação, os dados residuais podem ser transformados do domínio de pixel em um domínio de transformada, resultando em coeficientes de transformada residuais, que, então, podem ser quantizados. A codificação de entropia pode ser aplicada para alcançar ainda mais compactação.
SUMÁRIO [0006] Esta invenção se refere à intrapredição, determinação de orientações para predição, determinação de modos de predição, determinação de modos de codificação, determinações quanto ao uso de filtragem intra na codificação de video (por exemplo, codificação de video e/ou codificação de video), e explicitamente elementos de sintaxe de codificação e sinalização.
Petição 870190087428, de 05/09/2019, pág. 21/133
3/91 [0007] Em um ou mais exemplos discutidos abaixo, um codificador de video e um decodificador de video podem ser configurados para determinar quanto à decodificação explicita de elementos de sintaxe indicando o uso de um modo de codificação com base em uma comparação de um número de coeficientes de transformada diferentes de zero associados a um bloco, em comparação a um limite. Se o número de coeficientes de transformada diferentes de zero no bloco for maior ou igual a um limite, o codificador de video e o decodificador de video codificam explicitamente o elemento de sintaxe para o modo de codificação. Se o número de coeficientes de transformada diferentes de zero no bloco for menor do que o limite, o codificador de video e o decodificador de video não codificam explicitamente o elemento de sintaxe indicando o modo de codificação. As técnicas desta invenção podem ser usadas com quaisquer modos de codificação, incluindo filtros de suavização de amostra de referência intra, e os modos de combinação de predição dependente da posição (PDPC).
[0008] Em um exemplo da invenção, um método de decodificação de dados de video compreende receber um primeiro bloco de dados de video; receber um primeiro elemento de sintaxe indicando se um modo de codificação será usado para o primeiro bloco de dados de video no caso em que o primeiro bloco de dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; decodificar explicitamente um valor do primeiro elemento de sintaxe recebido; e aplicar o modo de codificação ao primeiro bloco de dados de video em conformidade com o valor do primeiro
Petição 870190087428, de 05/09/2019, pág. 22/133
4/91 elemento de sintaxe.
[0009] Em outro exemplo da invenção, um método de codificação de dados de video compreende determinar um modo de codificação para codificar um primeiro bloco de dados de video; codificar explicitamente um primeiro elemento de sintaxe indicando se o modo de codificação será usado para o primeiro bloco de dados de video no caso em que o primeiro bloco de dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; e sinalizar o primeiro elemento de sintaxe em um fluxo de bits de video codificado.
[0010] Em outro exemplo da invenção, um aparelho configurado para decodificar video compreende uma memória configurada para armazenar os dados de video, e um ou mais processadores em comunicação com a memória, os um ou mais processadores configurados para receber um primeiro bloco dos dados de video; receber um primeiro elemento de sintaxe indicando se um modo de codificação será usado para o primeiro bloco de dados de video no caso em que o primeiro bloco dos dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; decodificar explicitamente um valor do primeiro elemento de sintaxe recebido; e aplicar o modo de codificação ao primeiro bloco dos dados de video em conformidade com um valor do primeiro elemento de sintaxe.
[0011] Em outro exemplo da invenção, um aparelho configurado para codificar dados de video compreende uma memória configurada para armazenar os dados de video, e um ou mais processadores em comunicação com a memória, os um ou mais processadores configurados para determinar um modo
Petição 870190087428, de 05/09/2019, pág. 23/133
5/91 de codificação para codificar um primeiro bloco dos dados de video; codificar explicitamente um primeiro elemento de sintaxe indicando se o modo de codificação será usado para o primeiro bloco dos dados do video no caso em que o primeiro bloco dos dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; e sinalizar o primeiro elemento de sintaxe em um fluxo de bits de video codificado.
[0012] Em outro exemplo da invenção, um aparelho configurado para decodificar dados de video compreende meio para receber um primeiro bloco de dados de video; meio para receber um primeiro elemento de sintaxe indicando se um modo de codificação será usado para o primeiro bloco de dados de video no caso em que o primeiro bloco de dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; meio para decodificar explicitamente um valor do primeiro elemento de sintaxe recebido; e meio para aplicar o modo de codificação ao primeiro bloco de dados de video em conformidade com o valor do primeiro elemento de sintaxe.
[0013] Em outro exemplo da invenção, um aparelho configurado para codificar dados de video compreende meio para determinar um modo de codificação para codificar um primeiro bloco de dados de video; meio para codificar explicitamente um primeiro elemento de sintaxe indicando se o modo de codificação será usado para o primeiro bloco de dados de video no caso em que o primeiro bloco de dados de video está associado a um número de coeficientes de
Petição 870190087428, de 05/09/2019, pág. 24/133
6/91 transformada diferentes de zero maior que ou igual a um limite; e meio para sinalizar o primeiro elemento de sintaxe em um fluxo de bits de video codificado.
[0014] Em outro exemplo, esta invenção descreve um meio de armazenamento de leitura por computador armazenando instruções que, quando executadas, levam um ou mais processadores de um dispositivo configurado para decodificar dados de video para receber um primeiro bloco dos dados de video; receber um primeiro elemento de sintaxe indicando se um modo de codificação será usado para o primeiro bloco dose dados de video no caso em que o primeiro bloco dos dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; decodificar explicitamente um valor do primeiro elemento de sintaxe recebido; e aplicar o modo de codificação ao primeiro bloco dos dados de video em conformidade com um valor do primeiro elemento de sintaxe.
[0015] Em outro exemplo, esta invenção descreve um meio de armazenamento de leitura por computador armazenando instruções que, quando executadas, levam um ou mais processadores de um dispositivo configurado para codificar dados de video a determinar um modo de codificação para codificar um primeiro bloco dos dados de video; codificar explicitamente um primeiro elemento de sintaxe indicando se o modo de codificação será usado para o primeiro bloco dos dados do video no caso em que o primeiro bloco dos dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; e sinalizar o primeiro
Petição 870190087428, de 05/09/2019, pág. 25/133
7/91 elemento de sintaxe em um fluxo de bits de vídeo codificado.
[0016] As técnicas exemplificativas descritas abaixo para determinar a codificação explícita de elementos de sintaxe para os modos de codificação podem ser usadas em conjunto com uma ou mais outras técnicas descritas nesta invenção em qualquer combinação. Por exemplo, as técnicas desta invenção para determinação da codificação explícita de elementos de sintaxe para os modos de codificação podem ser usadas em conjunto com as técnicas para codificação de elementos de sintaxe para índices de transformada; técnicas para determinação da codificação explícita de elementos de sintaxe para blocos de luminância (luma) e crominância (croma); técnicas para determinação da codificação explícita de elementos de sintaxe para blocos sem avanço de transformada; técnicas para determinação da codificação explícita de elementos de sintaxe para blocos com modos de intrapredição particulares; técnicas para determinação da codificação explícita de elementos de sintaxe com base no tamanho do bloco e técnicas para codificação de elementos de sintaxe por contexto.
[0017] Os detalhes de um ou mais aspectos da invenção estão estabelecidos nos desenhos anexos e na descrição abaixo. Outros recursos, objetos e vantagens das técnicas descritas nesta invenção serão videntes a partir da descrição e desenhos, e das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS [0018] A figura 1 é um diagrama em blocos que ilustra um sistema exemplificativo de codificação e decodificação de vídeo configurado para implementar as
Petição 870190087428, de 05/09/2019, pág. 26/133
8/91 técnicas descritas nesta invenção.
[0019] A figura 2 é um diagrama conceituai ilustrando um exemplo da segmentação de blocos usando uma estrutura quadtree mais árvore binária (QTBT).
[0020] A figura 2B é um diagrama conceituai ilustrando uma estrutura em árvore exemplificativa correspondente à segmentação de blocos usando a estrutura QTBT da figura 2A.
[0021] A figura 3 ilustra uma predição de um bloco 4x4 usando uma referência não filtrada de acordo com as técnicas dessa invenção.
[0022] A figura 3B ilustra uma predição de um bloco 4x4 usando uma referência filtrada de acordo com as técnicas desta invenção.
[0023] A figura 4 é um diagrama em blocos que ilustra um exemplo de um codificador de video configurado para implementar as técnicas da invenção.
[0024] A figura 5 é um diagrama em blocos que ilustra um exemplo de um decodificador de video configurado para implementar as técnicas da invenção.
[0025] A figura 6 é um fluxograma que ilustra um método de codificação exemplificativo da invenção.
[0026] A figura 7 é um fluxograma que ilustra um método de decodificação exemplificativo da invenção.
DESCRIÇÃO DETALHADA [0027] Esta invenção se refere à intrapredição, determinação de orientações para predição, determinação de modos de predição, determinação de modos de codificação, determinações quanto ao uso de filtragem intra na codificação de video (por exemplo, codificação de video
Petição 870190087428, de 05/09/2019, pág. 27/133
9/91 e/ou codificação de video), e a codificação e sinalização explicitas de elementos de sintaxe.
[0028] 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), ITU-T H.265 (também conhecido como Codificação de Video de Alta Eficiência (HEVC)), incluindo extensões como Codificação de Video Escalável (SVC), Codificação de Video MultiVista (MVC) e Codificação de Conteúdo de Tela (SCC) . Outros padrões de codificação de video incluem futuros padrões de codificação de video, como o modelo de teste da Equipe de Exploração de Video Conjunta (JVET), que é a atividade de desenvolvimento além do HEVC. Os padrões de codificação de video também incluem codecs de video de propriedade, como o Google VP8, VP9, VP10 e codecs de video desenvolvidos por outras organizações, por exemplo, a Aliança para Mídia Aberta.
[0029] Em HEVC e o Modelo Exploratório Conjunto (JEM), que é o software de teste em estudo pela JVET, uma referência intra pode ser suavizada, por exemplo, um filtro pode ser aplicado. Em HEVC, a suavização dependente de modo intra (MDIS) é usada de modo que um filtro seja aplicado a uma referência intra (amostras vizinhas relativas a um bloco atualmente codificado) antes de gerar a intrapredição a partir da referência intra. Os modos, para os quais o MDIS é habilitado, são obtidos com base na proximidade do modo intra em curso a uma direção horizontal ou vertical. Os modos, para os quais a MDIS é habilitada, podem ser obtidos com base na diferença absoluta do índice de modo
Petição 870190087428, de 05/09/2019, pág. 28/133
10/91 intra entre o modo em curso e o índice de modo horizontal e vertical. Se a diferença absoluta exceder um determinado limite (por exemplo, o limite pode ser dependente do tamanho do bloco), a filtragem MDIS não é aplicada, caso contrário, ela é aplicada. Em outras palavras, nos modos intra que estão distante das direções horizontais ou verticais, aplica-se o filtro de referência intra. A MDIS não se aplica aos modos não angulares, como o modo DC ou planar.
[0030] Em JEM, a MDIS foi substituída por um filtro de suavização (filtragem adaptativa de amostra de referência (RSAF) ou suavização de amostra de referência adaptativa (ARSS)), que, em alguns exemplos, pode ser aplicada para todos os modos intra, exceto um modo DC. Uma bandeira, que indica onde o filtro é aplicado ou não no bloco em curso, é sinalizada ao nível do decodificador. A sinalização é feita não como um indicador explicito, mas, sim, oculta nos coeficientes de transformada. Isto é, o valor do indicador que indica se o filtro é aplicado para um bloco em curso pode ser determinado por um decodificador de vídeo com base em determinados valores ou características dos coeficientes de transformada. Por exemplo, se os coeficientes de transformada atenderem uma determinada condição de paridade, o indicador é derivado como 1, caso contrário, o indicador é derivado como 0.
[0031] Outra ferramenta usada em JEM é o modo da combinação de intrapredição dependente da posição (PDPC). O PDPC é um modo de codificação que pondera as amostras de referência intra e de preditor intra, onde os pesos podem ser derivados com base no tamanho do bloco (incluindo a
Petição 870190087428, de 05/09/2019, pág. 29/133
11/91 largura e a altura) e no modo intra.
[0032] A figura 1 é um diagrama em blocos que ilustra um sistema de codificação e decodificação de video 10 exemplificativo que pode ser configurado para realizar as técnicas desta invenção. Como mostrado na figura 1, o sistema 10 inclui o dispositivo de origem 12 que fornece dados de video codificados a serem decodificados posteriormente pelo dispositivo de destino 14. Em particular, o dispositivo de origem 12 fornece os dados de video ao dispositivo de destino 14 através do meio de leitura por computador 16. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma grande variedade de dispositivos, incluindo computadores desktop, notebooks (ou seja, computadores portáteis), tablets, caixas decodificadoras, aparelhos telefônicos como os chamados telefones inteligentes, tablets, televisores, câmeras, dispositivos de exibição,
leitores de mídia digital, consoles de jogos de video,
dispositivos de video via streaming ou similares. Em várias
formas de realização, o dispositivo de origem 12 e o
dispositivo de destino 14 podem ser equipados para
comunicação sem fio. Assim, o dispositivo de origem 12 e o
dispositivo de destino 14 podem ser dispositivos de
comunicação sem f io. 0 dispositivo de origem 12 é um
dispositivo de codificação de video exemplificativo (ou
seja, um dispositivo para codificação de dados de video). O dispositivo de destino 14 é um dispositivo de decodificação de video exemplificativo (ou seja, um dispositivo para decodificação de dados de video).
[0033] No exemplo da figura 1, o dispositivo de
Petição 870190087428, de 05/09/2019, pág. 30/133
12/91 origem 12 inclui a fonte de video 18, o meio de armazenamento 20 configurado para armazenar dados de video, o codificador de video 22 e a interface de saida 24. O dispositivo de destino 14 inclui a interface de entrada 26, o meio de armazenamento 28 configurado para armazenar dados de video codificados, o decodificador de video 30 e o dispositivo de exibição 32. Em outros exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 incluem outros componentes ou arranjos. Por exemplo, o dispositivo de origem 12 pode receber dados de video de uma fonte de video externa, como uma câmara externa. Da mesma forma, o dispositivo de destino 14 pode interagir com um video de exibição externo, em vez de incluir um dispositivo de exibição integrado 32.
[0034] O sistema ilustrado 10 da figura 1 é apenas um exemplo. As técnicas de processamento e/ou codificação (por exemplo, codificação e/ou decodificação) de dados de video podem ser realizadas por qualquer dispositivo de codificação e decodificação de video digital. Embora as técnicas desta invenção sejam geralmente realizadas por um dispositivo de codificação de video e/ou dispositivo de decodificação de video, as técnicas também podem ser realizadas por um codificador/decodificador de video, normalmente referido como um CODEC. O dispositivo de origem 12 e o dispositivo de destino 14 são apenas exemplos desses dispositivos de codificação, em que o dispositivo de origem 12 gera dados de video codificados para transmissão ao dispositivo de destino 14. Em alguns exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 podem funcionar de um modo substancialmente
Petição 870190087428, de 05/09/2019, pág. 31/133
13/91 simétrico, de tal forma que cada um dentre o dispositivo de origem 12 e o dispositivo de destino 14 inclui componentes de codificação e decodificação de video. Assim, o sistema 10 pode oferecer suporte à transmissão de video unidirecional ou bidirecional entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, para video via streaming, reprodução de video, video via broadcast ou videotelefonia.
[0035] A fonte de video 18 do dispositivo de origem 12 pode incluir um dispositivo de captura de video, como uma câmara de video, um arquivo de video contendo video capturado anteriormente e/ou uma interface de entrada de video para receber dados de video de um provedor de conteúdo de video. Como outra alternativa, a fonte de video 18 pode gerar dados baseados em computação gráfica, como o video de origem, ou uma combinação de video ao vivo, videos arquivados e video gerado por computador. O dispositivo de origem 12 pode compreender um ou mais meios de armazenamento de dados (por exemplo, os meios de armazenamento 20) configurados para armazenar os dados de video. As técnicas descritas neste documento podem ser aplicáveis à codificação de video em geral, e podem ser aplicadas a aplicações sem fio e/ou com fio. Em cada caso, o video capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de video 22. A interface de saída 24 pode emitir as informações do video codificado (por exemplo, um fluxo de bits de dados video codificado) ao meio de leitura por computador 16.
[0036] O dispositivo de destino 14 pode receber os dados de video codificados a serem decodificados via o
Petição 870190087428, de 05/09/2019, pág. 32/133
14/91 meio de leitura por computador 16. 0 meio de leitura por computador 16 pode compreender qualquer tipo de suporte ou dispositivo capaz de mover os dados de video codificados do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, o meio de leitura por computador 16 pode compreender um meio de comunicação para habilitar o dispositivo de origem 12 a transmitir dados de video codificados diretamente ao dispositivo de destino 14 em tempo real. Os dados de video codificados podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitidos ao dispositivo de destino 14. 0 meio de comunicação pode compreender qualquer meio de comunicação sem fio ou com fio, como um espectro de radiofrequência (RF) ou uma ou mais linhas físicas de transmissão. 0 meio de comunicação pode fazer parte de uma rede baseada em pacotes, como uma rede de área local, uma rede de área ampla ou uma rede global como a Internet. 0 meio de comunicação pode incluir roteadores, comutadores, estações base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de origem 12 ao dispositivo de destino 14. 0 dispositivo de destino 14 pode compreender um ou mais meios de armazenamento de dados configurados para armazenar dados de vídeo codificados e dados de vídeo decodificados.
[0037] Em alguns exemplos, os dados codificados podem ser emitidos da interface de saída 24 para um dispositivo de armazenamento. Da mesma forma, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada. O dispositivo de armazenamento pode incluir qualquer um dentre uma variedade
Petição 870190087428, de 05/09/2019, pág. 33/133
15/91 de meios de armazenamento de dados distribuídos ou localmente acessados, como uma unidade de disco rígido, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil, ou quaisquer outros meios de armazenamento digital para armazenar dados de vídeo codificados. Em outro exemplo, o dispositivo de armazenamento pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que possa manter o vídeo codificado gerado pelo dispositivo de origem 12. 0 dispositivo de destino pode acessar os dados de vídeos armazenados do dispositivo de armazenamento via streaming ou download. 0 servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados ao dispositivo de destino 14. Servidores de arquivos exemplificativos incluem um servidor de rede (por exemplo, para um website), um servidor FTP, dispositivos de armazenamento ligados à rede (NAS) ou uma unidade de disco local. 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 ligação à Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, cabo modem, etc.), ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados 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 via streaming, uma transmissão via download ou uma combinação de ambas.
[0038] As técnicas descritas neste documento
Petição 870190087428, de 05/09/2019, pág. 34/133
16/91 podem ser aplicadas para codificação de vídeo em suporte de qualquer um dentre uma variedade de aplicativos de multimídia, como transmissões televisivas over-the-air, transmissões televisivas por cabo, transmissões televisivas via satélite, transmissões de vídeo via streaming de Internet, como streaming adaptativo dinâmico através de HTTP (DASH), vídeo digital que é codificado para um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional para suportar aplicativos como streaming de vídeo, reprodução de vídeo, transmissão de vídeo e/ou vídeo telefonia.
[0039] O meio de leitura por computador 16 pode incluir meio transitório, como uma transmissão via broadcast sem fio ou de rede cabeada, ou meios de armazenamento (isto é, meios de armazenamento não transitórios), como um disco rígido, flash drive, disco compacto, disco de vídeo digital, disco Blu-ray ou outros meios de leitura por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificados do dispositivo de origem 12 e fornecer os dados de vídeo codificados ao dispositivo de destino 14, por exemplo, através de transmissão via rede. Da mesma forma, um dispositivo de computação de uma unidade de produção de meio, como uma unidade de estamparia de disco, pode receber dados de vídeo codificados a partir do dispositivo de origem 12 e produzir um disco contendo os dados de vídeo codificados. Portanto, o meio de leitura por computador 16
Petição 870190087428, de 05/09/2019, pág. 35/133
17/91 pode ser entendido de modo a incluir um ou mais meios de leitura por computador de várias formas, em vários exemplos.
[0040] A interface de entrada 26 do dispositivo de destino 14 recebe informações do meio de leitura por computador 16. As informações do meio de leitura por computador 16 podem incluir informações de sintaxe definidas pelo codificador de vídeo 22 do codificador de vídeo 22, que também são usadas pelo decodificador de vídeo, que inclui elementos de sintaxe que descrevem as características e/ou o processamento de blocos e outras unidades codificadas, por exemplo, grupo de imagens (GOPs). Os meios de armazenamento 28 podem armazenar dados de vídeo codificados recebidos pela interface de entrada 26. O 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, 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ânica (OLED) ou outro tipo de dispositivo de exibição.
[0041] O codificador de vídeo 22 e o decodificador de vídeo 30 podem ser implementados como qualquer um dentre uma variedade de circuitos de codificador de vídeo e/ou decodificador de vídeo, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos para aplicativos (ASICs), arranjos de porta programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou suas combinações. Quando as técnicas são parcialmente
Petição 870190087428, de 05/09/2019, pág. 36/133
18/91 implementadas em software, um dispositivo pode armazenar instruções para o software em um meio de leitura por computador não transitório adequado, e executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta invenção. Cada um dentre o codificador de video 22 e o decodificador de video 30 pode ser incluído em um ou mais codificadores ou decodificadores, cada um deles pode ser integrado como parte de um CODEC combinado em um respectivo dispositivo.
[0042] Em alguns exemplos, o codificador de vídeo 22 e o decodificador de vídeo 30 podem funcionar segundo um padrão de codificação de vídeo. Os padrões de codificação de vídeo exemplificativos incluem, mas não se limitam a, 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 e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVO), incluindo suas extensões Codificação de Vídeo Escalável (SVC) e Codificação de Vídeo MultiVista (MVC). Além disso, um novo padrão de codificação de vídeo, a saber, a Codificação de Vídeo de Alta Eficiência (HEVC) ou ITU-T H.265, incluindo o seu alcance e extensões de codificação de conteúdo de tela, codificação de vídeo 3D (3D-HEVC) e extensões multivista (MV-HEVC) e extensão escalável (SHVC), foi desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo (VCEG) do ITU-T e Grupo de Especialistas em Imagens em Movimento (MPEG) ISO/IEC.
[0043] Em outros exemplos, o codificador de vídeo e o decodificador de vídeo 30 podem ser configurados para funcionar de acordo com outras técnicas e/ou padrões
Petição 870190087428, de 05/09/2019, pág. 37/133
19/91 de codificação de vídeo, incluindo novas técnicas de codificação de vídeo em exploração pela Equipe de
Exploração de Vídeo Conjunta (JVET).
[0044] Em HEVC e outras especificações de codificação de vídeo, uma sequência de vídeo normalmente inclui uma série de imagens. As imagens também podem ser chamadas de quadros. Uma imagem pode incluir três arranjos de amostra, indicados SL, Scb e Scr. SL é um arranjo bidimensional (ou seja, um bloco) de amostras de luminância. Scb é um arranjo 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 aqui referidas como amostras croma. Em outros casos, uma imagem pode ser monocromática e pode incluir apenas um arranjo de amostras luma.
[0045] Para gerar uma representação codificada de uma imagem (por exemplo, um fluxo de bits de vídeo codificado), o codificador de vídeo 22 pode gerar um conjunto de unidades de codificação em árvore (CTUs). Cada uma das CTUs pode compreender um bloco de codificação em árvore de amostras luma, dois CTBs correspondentes de amostras croma, e estruturas de sintaxe usadas para codificar as amostras dos blocos de codificação em árvore. Em imagens monocromáticas ou imagens tendo três planos de cor separados, uma CTU pode compreender um único bloco de codificação em árvore e estruturas de sintaxe usadas para codificar as amostras do bloco de codificação em árvore. Um bloco de codificação em árvore pode ser um bloco NxN de amostras. Uma CTU pode também ser referida como um treeblock ou uma unidade de codificação maior (LCU). As
Petição 870190087428, de 05/09/2019, pág. 38/133
20/91
CTUs de HEVC podem ser, em termos gerais, análogas aos macroblocos de outros padrões, como H.264/AVC. No entanto, uma CTU não é necessariamente limitada a um tamanho especifico 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 raster.
[0046] Para gerar uma CTU codificada, o
codificador de video 22 pode, como recurso, realizar a
segmentação em quadtree nos blocos de codificação em árvore de uma CTU para dividir os blocos de codificação em árvore em blocos de codificação, dai o nome unidades de codificação em árvore. Um bloco de codificação pode ser um bloco NxN de amostras. Uma CU pode compreender um bloco de codificação de amostras luma e dois blocos de codificação correspondentes de amostras croma de uma imagem que tem uma matriz de amostra 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 com três planos de cor separados, uma CU pode compreender um único bloco de codificação e estruturas de sintaxe usadas para codificar as amostras do bloco de codificação.
[0047] O codificador de video 22 pode segmentar um bloco de codificação de uma CU em um ou mais blocos de predição. Um bloco de predição é um bloco retangular (ou seja, quadrado ou não quadrado) de amostras nas quais se aplica a mesma predição. Uma unidade de predição (PU) de uma CU pode compreender um bloco de predição de amostras luma, dois blocos de predição correspondentes de amostras
Petição 870190087428, de 05/09/2019, pág. 39/133
21/91 croma e estruturas de sintaxe usadas para predizer os blocos de predição. Em imagens monocromáticas ou imagens com 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. 0 codificador de video 22 pode gerar blocos preditivos (por exemplo, blocos preditivos luma, Cb e Cr) para os blocos de predição (por exemplo, blocos de predição luma, Cb e Cr) de cada PU da CU.
[0048] O codificador de video 22 pode usar intrapredição ou interpredição para gerar os blocos preditivos para uma PU. Se o codificador de video 22 usar intrapredição para gerar os blocos preditivos de uma PU, o codificador de video 22 pode gerar os blocos preditivos da PU com base em amostras decodificadas da imagem que inclui a PU.
[0049] Depois que o codificador de video 22 gera blocos preditivos (por exemplo, blocos preditivos luma, Cb e Cr) para uma ou mais PUs de uma CU, o codificador de video 22 pode gerar um ou mais blocos residuais para a CU. Como um exemplo, o codificador de video 22 pode gerar um bloco residual luma para a CU. Cada amostra no bloco residual luma da CU indica uma diferença entre uma amostra luma em um dos blocos luma preditivos da CU e uma amostra correspondente no bloco de codificação luma original da CU. Além disso, o codificador de video 22 pode gerar um bloco residual Cb para a CU. Em um exemplo de predição 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
Petição 870190087428, de 05/09/2019, pág. 40/133
22/91 codificação Cb original da CU. 0 codificador de vídeo 22 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. No entanto, deve ser entendido que podem ser usadas outras técnicas para predição croma.
[0050] Além disso, o codificador de video 22 pode usar a segmentação em quad-tree para decompor os blocos residuais (por exemplo, os blocos residuais luma, Cb e Cr) de uma CU em um ou mais blocos de transformada (por exemplo, os blocos de transformada luma, Cb e Cr). Um bloco de transformada é um bloco retangular (ou seja, quadrado ou não quadrado) de amostras às quais se aplica a mesma transformada. Uma unidade de transformada (TU) de uma CU pode compreender um bloco de transformada de amostras luma, dois blocos de transformada correspondentes de amostras croma e estruturas de sintaxe usadas para transformar as amostras do bloco de transformada. Assim, cada TU de uma CU pode ter um bloco de transformada luma, um bloco de transformada Cb e um bloco de transformada Cr. O bloco de transformada luma da TU pode ser um sub-bloco do bloco residual luma da CU. O bloco de transformada Cb pode ser um sub-bloco do bloco residual Cb da CU. O bloco de transformada Cr pode ser um sub-bloco do bloco residual Cr da CU. Em imagens monocromáticas ou imagens com três planos de cor separados, uma TU pode compreender um único bloco de transformada e estruturas de sintaxe usadas para transformar as amostras do bloco de transformada.
Petição 870190087428, de 05/09/2019, pág. 41/133
23/91 [0051] O codificador de vídeo 22 pode aplicar uma ou mais transformadas a um bloco de transformada de uma TU para gerar um bloco de coeficiente para a TU. Por exemplo, o codificador de vídeo 22 pode aplicar uma ou mais transformadas a um bloco de transformada luma de uma TU para gerar um bloco de coeficiente luma para a TU. Um bloco de coeficientes pode ser uma matriz bidimensional de coeficientes de amostras. Um coeficiente de transformada pode ser uma quantidade escalar. O codificador de vídeo 22 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 22 pode aplicar uma ou mais transformadas a um bloco de transformada Cr de uma TU para gerar um bloco de coeficiente Cr para a TU.
[0052] Depois de gerar um bloco de coeficientes (por exemplo, um bloco de coeficientes luma, um bloco de coeficientes Cb ou um bloco de coeficientes Cr) , o codificador de vídeo 22 pode quantizar o bloco de coeficientes. A quantização, de modo geral, se refere a um processo no qual coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados usados para representar os coeficientes de transformada, proporcionando maior compactação. Depois que o codificador de vídeo 22 quantiza um bloco de coeficientes, o codificador de vídeo 22 pode codificar por entropia os elementos de sintaxe indicando os coeficientes de transformada quantizados. Por exemplo, o codificador de vídeo 22 pode realizar Codificação Aritmética Binária Adaptativa ao Contexto (CABAC) quanto aos elementos de
Petição 870190087428, de 05/09/2019, pág. 42/133
24/91 sintaxe que indicam os coeficientes de transformada quantizados.
[0053] O codificador de vídeo 22 pode emitir um fluxo de bits que inclui uma sequência de bits que forma uma representação de imagens codificadas e dados associados. Assim, 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 da Camada de Abstração de Rede (NAL). Uma unidade NAL é uma estrutura de sintaxe contendo uma indicação do tipo de dados na unidade NAL e bytes contendo esses dados na forma de uma carga útil de sequência de bytes brutos (RBSP) intercalada, conforme necessário, com bits de prevenção de emulação. Cada uma das unidades NAL pode incluir um cabeçalho de unidade NAL e encapsula uma RBSP. O cabeçalho da unidade NAL pode incluir um elemento de sintaxe indicando um código do tipo de unidade NAL. O código do tipo de unidade NAL especificado pelo cabeçalho da unidade NAL de uma unidade NAL indica o tipo da unidade NAL. Uma RBSP pode ser uma estrutura de sintaxe contendo um número inteiro de bytes que é encapsulado dentro de uma unidade NAL. Em alguns casos, uma RBSP inclui zero bit.
[0054] O decodificador de vídeo 30 pode receber um fluxo de bits de vídeo codificado gerado pelo codificador de vídeo 22. Além disso, o decodificador de vídeo 30 pode analisar o fluxo de bits para obter elementos de sintaxe do fluxo de bits. O decodificador de vídeo 30 pode reconstruir as imagens dos dados de vídeo com base, pelo menos em parte, nos elementos de sintaxe obtidos a partir do fluxo de bits. O processo para reconstruir os
Petição 870190087428, de 05/09/2019, pág. 43/133
25/91 dados de video pode ser, em geral, recíproco ao processo realizado pelo codificador de vídeo 22. Por exemplo, o decodificador de vídeo 30 pode usar os vetores de movimento das PUs para determinar os blocos preditivos para o PUs de uma CU em curso. Além disso, o decodificador de vídeo 30 pode quantizar em inverso os blocos de coeficientes de TUs da CU em curso. O decodificador de vídeo 30 pode realizar transformadas inversas nos blocos de coeficientes para reconstruir os blocos de transformada das TUs da CU em curso. O decodificador de vídeo 30 pode reconstruir os blocos de codificação da CU em curso adicionando as amostras dos blocos preditivos para PUs da CU em curso a amostras correspondentes dos blocos de transformada das TUs da CU em curso. Com a reconstrução dos blocos de codificação para cada CU de uma imagem, o decodificador de vídeo 30 pode reconstruir a imagem.
[0055] Em alguns quadros codec de vídeo exemplificativos, como o quadro de segmentação de quadtree da HEVC, a segmentação de dados de vídeo em blocos para os componentes de cor (por exemplo, blocos luma e blocos croma) é realizada em conjunto. Isto é, em alguns exemplos, os blocos luma e blocos croma são segmentados da mesma forma, de modo que não mais do que um bloco luma corresponde a um bloco croma em uma posição específica dentro de uma imagem.
[0056] Uma estrutura de segmentação quadtree mais árvore binária (QTBT) está sendo estudada pela Equipe de Exploração de Vídeo Conjunta (JVET) . Em J. An et al. , Block partitioning structure for next generation video coding, União Internacional das Telecomunicações, COM16Petição 870190087428, de 05/09/2019, pág. 44/133
26/91
C966, setembro de 2015 (a seguir, proposta VCEG COM16C966) , técnicas de segmentação QTBT foram descritas para o futuro padrão da codificação de video além da HEVC. Simulações mostraram que a estrutura QTBT proposta pode ser mais eficiente do que a estrutura quadtree usada em HEVC.
[0057] Na estrutura QTBT descrita na proposta VCEG COM16-C966, um CTB é, primeiro, segmentado usando técnicas de segmentação de quadtree, onde a divisão da quadtree de um nó pode ser iterada até que o nó alcance o tamanho mínimo permitido do nó-folha da quadtree. O tamanho mínimo permitido do nó-folha na quadtree pode ser indicado para o decodificador de video 30 pelo valor do elemento de sintaxe MinQTSize. Se o tamanho do nó-folha da quadtree não for maior que o tamanho máximo permitido do nó-raiz da árvore binária (por exemplo, como indicado por um elemento de sintaxe MaxBTSize), o nó-folha da quadtree pode ainda ser segmentado usando a segmentação da árvore binária. A segmentação da árvore binária de um nó pode ser iterada até que o nó alcance o tamanho mínimo permitido do nó-folha da árvore binária (por exemplo, como indicado por um elemento de sintaxe MinBTSize) ou a profundidade máxima permitida da árvore binária (por exemplo, como indicado por um elemento de sintaxe MaxBTDepth). A proposta VCEG COM16-C966 usa o termo CU para se referir a nós-folha da árvore binária. Na proposta VCEG COM16-C966, CUs são usadas para predição (por exemplo, intrapredição, interpredição, etc) e transformada sem quaisquer outras segmentações. Em geral, de acordo com as técnicas QTBT, há dois tipos de segmentação para segmentação da árvore binária: segmentação simétrica horizontal e segmentação simétrica vertical. Em
Petição 870190087428, de 05/09/2019, pág. 45/133
27/91 cada caso, um bloco é segmentado dividindo-se o bloco abaixo do meio, horizontal ou verticalmente. Isso difere da segmentação em quadtree, que divide um bloco em quatro blocos.
[0058] Em um exemplo da estrutura de segmentação QTBT, o tamanho da CTU é definido como 128x128 (por exemplo, um bloco luma 128x128 e dois blocos croma 64x64 correspondentes), o MinQTSize é definido como 16x16, o MaxBTSize é definido como 64x64, o MinBTSize (tanto para largura quanto altura) é definido como 4, e o MaxBTDepth é definido como 4. A segmentação em quadtree é aplicada à CTU primeiro para gerar os nós-folha da quadtree. Os nós-folha da quadtree podem ter um tamanho de 16x16 (ou seja, o MinQTSize é 16x16) a 128x128 (ou seja, o tamanho da CTU) . De acordo com um exemplo da segmentação QTBT, se o nó-folha da quadtree for 128x128, o nó-folha da quadtree não pode ser ainda dividido pela árvore binária, visto que o tamanho do nó-folha da quadtree excede o MaxBTSize (ou seja, 64x64) . Caso contrário, o nó-folha da quadtree é ainda segmentado pela árvore binária. Portanto, o nó-folha da quadtree é também o nó-raiz para a árvore binária e tem a profundidade da árvore binária como 0. A profundidade da árvore binária que alcança MaxBTDepth (por exemplo, 4) implica que não há mais nenhuma segmentação. O nó da árvore binária com uma largura igual ao MinBTSize (por exemplo, 4) implica que não há mais nenhuma divisão horizontal. Da mesma forma, o nó da árvore binária com uma altura igual a MinBTSize implica nenhuma segmentação vertical. Os nósfolha da árvore binária (CUs) são ainda processados (por exemplo, realizando um processo de predição e um processo
Petição 870190087428, de 05/09/2019, pág. 46/133
28/91 de transformada) sem qualquer outra segmentação.
[0059] A figura 2A ilustra um exemplo de um bloco (por exemplo, um CTB) segmentado usando técnicas de segmentação QTBT. Como mostrado na figura 2A, com o uso de técnicas de segmentação QTBT, cada um dos blocos resultantes é segmentado simetricamente através do centro de cada bloco. A figura 2B ilustra a estrutura em árvore correspondente à segmentação em blocos da figura 2A. As linhas sólidas na figura 2B indicam a segmentação emquadtree e as linhas pontilhadas indicam segmentação em árvore binária. Em um exemplo, em cada nó de segmentação (ou seja, não folha) da árvore binária, um elemento de sintaxe (por exemplo, um indicador) é sinalizado para indicar o tipo de segmentação realizado (por exemplo, horizontal ou vertical), onde 0 indica segmentação horizontal e 1 indica segmentação vertical. Para a segmentação em quadtree, não é necessário indicar o tipo de
segmentação, visto que a segmentação em quadtree sempre
divide um bloco horizontalmente e verticalmente em 4 sub-
blocos de igual tamanho.
[0060] Como mostrado na figura 2B, no 70, o
bloco 50 é dividido em quatro blocos 51 , 52, 53 e 54,
mostrados na figura 2A, usando a segmentação em quadtree. O bloco 54 não é ainda mais dividido e é, portanto, um nófolha. No nó 72, o bloco 51 é ainda dividido em dois blocos usando a segmentação em árvore binária. Como mostrado na figura 2B, o nó 72 é marcado com um 1, indicando a segmentação vertical. Assim, a segmentação no nó 72 resulta no bloco 57 e o bloco incluindo ambos os blocos 55 e 56. Os blocos 55 e 56 são criados por uma nova segmentação
Petição 870190087428, de 05/09/2019, pág. 47/133
29/91 vertical no nó 74. No nó 76, o bloco 52 é ainda dividido em dois blocos 58 e 59 usando a segmentação em árvore binária.
Como mostrado na figura 2B, o nó 76 é marcado com um 1, indicando a segmentação horizontal.
[0061] No nó 78, o bloco 53 é dividido em 4 blocos de igual tamanho usando a segmentação em quadtree. Os blocos 63 e 66 são criados a partir dessa segmentação em quadtree e não são mais divididos. No nó 80, o bloco esquerdo superior é, primeiro, dividido usando a segmentação vertical em árvore binária, resultando no bloco 60 e um bloco direito vertical. O bloco direito vertical é, então, dividido usando a segmentação horizontal em árvore binária, dividindo nos blocos 61 e 62. O bloco direito inferior criado a partir da segmentação em quadtree no nó 78 é dividir no nó 84 usando a segmentação horizontal em árvore binária, dividindo nos blocos 64 e 65.
[0062] Em um exemplo da segmentação QTBT, a segmentação croma e luma pode ser realizada de forma independente para fatias I, ao contrário, por exemplo, para HEVC, onde a segmentação em quadtree é realizada conjuntamente para blocos croma e luma. Isto é, em alguns exemplos em estudo, os blocos luma e os blocos croma podem ser segmentados separadamente, de forma que os blocos luma e os blocos croma não se sobreponham diretamente. Assim, em alguns exemplos da segmentação QTBT, os blocos croma podem ser segmentados de forma que ao menos um bloco croma segmentado não seja espacialmente alinhado a um único bloco luma segmentado. Isto é, as amostras luma que são justapostas com um determinado bloco croma podem estar dentro de duas ou mais segmentações luma diferentes.
Petição 870190087428, de 05/09/2019, pág. 48/133
30/91 [0063] As seções a seguir descrevem técnicas para determinação de parâmetros para um modo de codificação da combinação de intrapredição dependente da posição (PDPC) para blocos de dados de vídeo. Ao codificar dados de vídeo usando o modo de codificação PDPC, o codificador de vídeo 22 e/ou o decodificador de vídeo 30 pode usar uma ou mais equações parametrizadas que definem como combinar predições com base em valores de referência filtrados e não filtrados, e com base na posição do pixel predito (ou o valor do componente de cor de um pixel). A presente invenção descreve vários conjuntos de parâmetros, de tal forma que o codificador de vídeo 22 pode ser configurado para testar os conjuntos de parâmetros (por exemplo, com o uso da análise da distorção de taxa) e sinalizar para o decodificador de vídeo 30 os parâmetros ideais (por exemplo, os parâmetros resultantes do melhor desempenho da distorção de taxa entre os parâmetros que são testados). Em outros exemplos, o decodificador de vídeo 30 pode ser configurado para determinar os parâmetros da PDPC a partir das características dos dados de vídeo (por exemplo, o tamanho do bloco, a altura do bloco, a largura do bloco, etc.).
[0064] A figura 3A ilustra uma predição de um bloco 4x4 (p) usando uma referência não filtrada (r) de acordo com as técnicas dessa invenção. A figura 3B ilustra uma predição de um bloco 4x4 (q) usando uma referência filtrada (s) de acordo com as técnicas desta invenção. Embora ambas as figuras 3A e 3b ilustrem um bloco de pixels 4x4 e 17 respectivos valores de referência (4x4+1), as técnicas da presente invenção podem ser aplicadas a
Petição 870190087428, de 05/09/2019, pág. 49/133
31/91 qualquer tamanho de bloco e número de valores de referência.
[0065] O codificador de vídeo 22 e/ou o decodificador de vídeo 30, ao realizar o modo de codificação PDPC, pode usar uma combinação entre as predições filtradas (q) e não filtradas (p), de modo que um bloco predito para um bloco em curso a ser codificado pode ser calculado usando os valores de pixel de ambos os arranjos de referência filtrados (s) e não filtrados (r).
[0066] Em um exemplo das técnicas de PDPC, dados quaisquer dois conjuntos de predições de pixel pr [x, y] e qs [x, y] , calculados usando apenas as referências não filtradas e filtradas res, respectivamente, o valor predito combinado de um pixel, representado por v[x, y], é definido por v fc, y ] = c fc y] pr fc y.l + (i - c fc y ]) <?$ fc y J (i) em que c[x, y] é o conjunto de parâmetros da combinação. O valor do peso c[x, y] pode ser um valor entre 0 e 1. A soma dos pesos c[x, y] e (l-c[x, y] ) pode ser igual a um.
[0067] Em alguns exemplos, pode não ser prático ter um conjunto de parâmetros tão grande quanto o número de pixels no bloco. Nesses exemplos, c[x, y] pode ser definido por um conjunto de parâmetros muito menor, mais uma equação para calcular todos os valores da combinação desses parâmetros. Nesse exemplo, a seguinte fórmula pode ser usada:
Petição 870190087428, de 05/09/2019, pág. 50/133
32/91
I I y ι I j: x ι ι 1
L 2K1 L ? wd j (»*) g p^{x,y} + 6[x.y] ^^[x.y] (2) em que Civ, c2v, Cih, c2h, g e dv, dh e {1,2} são parâmetros de predição, N é o tamanho do bloco, pr [x, y] e qs [x, y] são valores de predição calculados com o uso de acordo com o padrão HEVC, para o modo específico, usando as referências não filtradas e filtradas, respectivamente, e
(v) (v) H u2
2it/dvJ , 2k<íh|
Aí-min(x,y) N (3) é um fator de normalização (ou seja, para fazer com que os pesos totais atribuídos a pr (HEVC) [x, y] e qs(HEvc)[X/r y] adicionem 1), definido pelos parâmetros de predição.
[0068] A fórmula 2 pode ser generalizada para qualquer padrão de codificação de video na fórmula 2A:
v[x,y] C1 wr[x,-lb4y)r[-l,-l]| |c^[~l,y]-C(ft)r[-l,~í] j y I + I ’ I
2K1 J L 2‘^W /V-min(x,y}\ (STD)r i , 1 r ί (STD)r ί (—) g Pr >,y] + b[x,y]q± Ky] (2A) em que c2 v, c2v, Cih, c2h, g e dv, dh e {1,2}, são parâmetros de predição, N é o tamanho do bloco, pr(STD) [x, y] e qs(STD) [x, y] são valores de predição calculados com o uso de acordo com um padrão de codificação de video (ou esquema ou algoritmo de codificação de vídeo), para o modo específico,
Petição 870190087428, de 05/09/2019, pág. 51/133
33/91 usando respectivamente as referências não filtradas e filtradas, e b[x,y] = 1 —
Figure BR112019018464A2_D0001
ly/dvl
Figure BR112019018464A2_D0002
2^/¾]
N-min(x,y) (3A) é um fator de normalização (ou seja, para fazer com que os pesos totais atribuídos a pr (STD) [x, y] e qs (STD)[x,
y] adicionem 1), definido pelos parâmetros de predição.
[0069] Esses parâmetros de predição podem incluir pesos para fornecer uma combinação linear ideal dos termos preditos de acordo com o tipo de modo de intrapredição usado (por exemplo, modos DC, planar e 33 direcional do HEVC). Por exemplo, HEVC contém 35 modos de intrapredição. Uma tabela de consulta pode ser construída com valores para cada um dos parâmetros de predição civ, C2V, cih, C2h, g, dv e dh para cada um dos modos de intrapredição (ou seja, 35 valores de Civ, c2v, Cih, c2h, g, dv e dh para cada modo de intrapredição). Esses valores podem ser codificados em um fluxo de bits com o video ou podem ser valores constantes conhecidos pelo codificador e decodificador antes do tempo e não precisam ser transmitidos em um arquivo ou fluxo de bits. Os valores para Civ, c2v, Cih, c2h, g, dv e dh podem ser determinados por um algoritmo de treinamento de otimização, encontrando-se os valores para os parâmetros de predição que dão melhor compactação para um conjunto de videos de treinamento.
[0070] Em outro exemplo, há uma pluralidade de conjuntos de parâmetros de predição predefinidos para cada modo de intrapredição (por exemplo, em uma tabela de
Petição 870190087428, de 05/09/2019, pág. 52/133
34/91 consulta) e o conjunto de parâmetros de predição selecionado (mas não os próprios parâmetros) é transmitido a um decodificador em um arquivo codificado ou fluxo de bits. Em outro exemplo, os valores para Civ, C2 , Cih, C2h, g, dv e dh podem ser gerados dinamicamente por um codificador de vídeo e transmitidos a um decodificador em um arquivo codificado ou fluxo de bits.
[0071] Em outro exemplo, em vez de usar predição HEVC, um dispositivo de codificação de vídeo que realiza essas técnicas pode usar uma versão modificada da HEVC, como a que usa 65 predições direcionais em vez de 33 predições direcionais. De fato, qualquer tipo de predição intraquadro pode ser usado.
[0072] Em outro exemplo, a fórmula pode ser escolhida para facilitar os cálculos. Por exemplo, pode-se usar o seguinte tipo de preditor
Figure BR112019018464A2_D0003
em que (v)_ (v) CÍ íy/dvl
Figure BR112019018464A2_D0004
í.x/^hl (5)
Figure BR112019018464A2_D0005
(6) [0073] Essa abordagem pode explorar a linearidade
Petição 870190087428, de 05/09/2019, pág. 53/133
35/91 da predição HEVC (ou outra). Definindo h como a resposta de impulso de um filtro k a partir de um conjunto predefinido, se s = a r + (1 - a)(h * r) em que representa a convolução, então (HEVC)r -ί (HEVC)r η pa,rlS IX y] = Ps IX y] (Ό (8) ou seja, a predição combinada com linearidade pode ser calculada a partir da referência combinada com linearidade.
[0074] As fórmulas 4, 6 e 8 podem ser generalizadas para qualquer padrão de codificação de vídeo nas fórmulas 4A, 6A e 8A:
v[x,y] =
2Íy/dvJ 2[x/dhj + b[x,y] P^s D)[x,y] (4A) em que b[x,y] = 1 — (v) (v)
2iy/dvi (5A)
Petição 870190087428, de 05/09/2019, pág. 54/133
36/91 ρ^γ,Γ Ιχ> y] = a Pr(STD) [*, y ] + (ι - α) qs (std) Ιλ y ] (6 A)
Essa abordagem pode explorar a linearidade da predição do padrão de codificação. Definindo h como a resposta de impulso de um filtro k a partir de um conjunto predefinido, se s = a r + (1 — a)(h * r) (7A) em que representa a convolução, então páSrTsD)[^y] = ps(STD)[^y] (8A) ou seja, a predição combinada com linearidade pode ser calculada a partir da referência combinada com linearidade.
[0075] Em um exemplo, as funções da predição podem usar o vetor de referência (por exemplo, r e s) apenas como entrada. Nesse exemplo, o comportamento do vetor de referência não se altera se a referência tiver sido filtrada ou não filtrada. Se r e s são iguais (por exemplo, uma referência não filtrada r passa a ser igual a outra referência filtrada s), então as funções preditivas, por exemplo, pr[x< y] (também escrito como p(x,y,r)) é igual a ps[x, y] (também escrito como p(x,y,s))), aplicadas às referências filtradas e não filtradas são iguais. Além disso, as predições de pixels p e q podem ser equivalentes (por exemplo, produzir a mesma saida dada a mesma entrada).
Petição 870190087428, de 05/09/2019, pág. 55/133
37/91
Em um exemplo, as fórmulas (1)-(8) podem ser reescritas com a predição de pixels p[x, y] substituindo a predição de pixels q[x, y].
[0076] Em outro exemplo, a predição (por exemplo, os conjuntos de funções) pode mudar, dependendo da informação de que uma referência foi filtrada. Nesse exemplo, diferentes conjuntos de funções podem ser indicados (por exemplo, pr[x,y] e qs [x, y] . Neste caso, mesmo se r e s forem iguais, pr[x,y] θ qs [x, y] podem não ser iguais. Em outras palavras, a mesma entrada pode criar uma saida diferente, dependendo se a entrada foi filtrada ou não. Nesse exemplo, p[x, y] pode não ser capaz de ser substituído por q[x, y].
[0077] Uma vantagem das equações de predição mostradas é que, com a formulação parametrizada, conjuntos de parâmetros ideais podem ser determinados (ou seja, aqueles que otimizam a precisão da predição), para diferentes tipos de texturas de vídeo, usando técnicas como treinamento. Essa abordagem, por sua vez, pode ser ampliada em alguns exemplos por cálculo de vários conjuntos de parâmetros preditores, para alguns tipos comuns de texturas, e com um esquema de compactação onde o codificador testa os preditores de cada conjunto, e codifica como informações secundárias que fornecem a melhor compactação.
[0078] Em alguns exemplos das técnicas descritas acima, quando o modo de codificação PDPC é ativado, os parâmetros PDPC usados para ponderação da intrapredição e para controle do uso de amostras não filtradas ou filtradas do modo PDPC são pré-calculados e armazenados em uma tabela
Petição 870190087428, de 05/09/2019, pág. 56/133
38/91 de consulta (LUT) . Em um exemplo, o decodificador de video 30 determina os parâmetros da PDPC de acordo com o tamanho do bloco e a direção da intrapredição. As técnicas anteriores para o modo de codificação PDPC assumiram que os blocos intrapreditos são sempre de tamanho quadrado.
[0079] Em HEVC e exemplos do JEM, uma referência intra pode ser suavizada. Por exemplo, um filtro pode ser aplicado a uma referência intra. Em HEVC, a suavização intra dependente de modo (MDIS) é usada de modo que um filtro é aplicado a uma referência intra (amostras vizinhas relativas a um bloco atualmente codificado) antes de gerar a intrapredição a partir da referência intra. O codificador de video 22 e o decodificador de video 30 podem derivar determinados modos de intrapredição para os quais a MDIS é ativada com base na proximidade do modo de intrapredição em curso a uma direção horizontal ou vertical. Os modos, para os quais a MDIS é habilitada, podem ser obtidos com base na diferença absoluta do índice de modo intra entre o modo em curso e o índice de modo horizontal e vertical. Se a diferença absoluta exceder um determinado limite (por exemplo, o limite pode ser dependente do tamanho do bloco), o filtro MDIS não é aplicado, caso contrário, ele é aplicado. Em outras palavras, nos modos intra que estão distantes das direções horizontais ou verticais (por exemplo, em comparação a um limite), aplica-se o filtro de referência intra. Em alguns exemplos, a MDIS não se aplica aos modos não angulares, como o modo DC ou planar.
[0080] Em JEM, a MDIS foi substituída por um modo de codificação do filtro de suavização (por exemplo, uma filtragem adaptativa de amostra de referência (RSAF) ou
Petição 870190087428, de 05/09/2019, pág. 57/133
39/91 suavização de amostra de referência adaptativa (ARSS)), que, em alguns exemplos, pode ser aplicada para todos os modos de intrapredição, exceto um modo DC. Em geral, essas técnicas podem ser referidas como filtros de suavização de amostra de referência intra. 0 codificador de video 22 pode ser configurado para gerar e sinalizar um elemento de sintaxe (por exemplo, um indicador), que indica se o filtro de suavização de amostra de referência intra é aplicado ao bloco em curso. Em alguns exemplos, o codificador de video 22 pode não estar configurado para codificar explicitamente o elemento de sintaxe que indica se o filtro é aplicado ao bloco em curso. No contexto da presente invenção, a codificação explicita de um elemento de sintaxe se refere à codificação ou decodificação em curso de um valor de um elemento de sintaxe em um fluxo de bits de video codificado. Ou seja, a codificação explicita pode se referir ao codificador de video 22 gerar um valor para um elemento de sintaxe e codificar explicitamente o valor em um fluxo de bits de video codificado. Da mesma forma, a codificação explicita pode se referir ao decodificador de video 30 receber um valor de um elemento de sintaxe em um fluxo de bits codificado e decodificar explicitamente o valor do elemento de sintaxe.
[0081] Em alguns exemplos, o codificador de video 22 não é configurado para sinalizar e codificar explicitamente um elemento de sintaxe (por exemplo, um indicador), que indica se um filtro de suavização de amostra de referência intra é aplicado ao bloco em curso de dados de video. Em vez disso, o codificador de video 22 é configurado para ocultar o valor do indicador nos
Petição 870190087428, de 05/09/2019, pág. 58/133
40/91 coeficientes de transformada. Isto é, o valor do indicador que indica se o filtro de suavização da amostra de referência intra se aplica a um bloco em curso não é explicitamente codificado, mas, em vez disso, ele pode ser determinado pelo decodificador de video 30 (por exemplo, implicitamente decodificado) com base em determinados valores ou características dos coeficientes de transformada associados ao bloco em curso. Por exemplo, se os coeficientes de transformada atenderem uma determinada condição de paridade (por exemplo, com um valor positivo ou negativo), o decodificador de video 30 deriva o indicador como tendo um valor de 1, caso contrário, o codificador de video 30 deriva o valor do indicador como 0, ou vice-versa.
[0082] No contexto da invenção, o termo decodificação pode geralmente abranger tanto a decodificação explicita quanto implícita de um valor de um elemento de sintaxe. Na decodificação explicita, um elemento de sintaxe codificado está presente no fluxo de bits de video codificado. O decodificador de vídeo 30 decodifica explicitamente o elemento de sintaxe decodificado para determinar o valor do elemento de sintaxe. Na decodificação implícita, o elemento de sintaxe não é enviado no fluxo de bits de video codificado. Em vez disso, o decodificador de video 30 deriva um valor do elemento de sintaxe a partir de estatísticas da codificação de video (por exemplo, a paridade dos coeficientes de transformada) com base em alguns critérios predeterminados.
[0083] Outra ferramenta usada no JEM é o modo
PDPC. Como descrito acima, o PDPC é um modo de codificação que pondera as amostras de referência intra e do preditor
Petição 870190087428, de 05/09/2019, pág. 59/133
41/91 intra, onde os pesos podem ser derivados com base no tamanho do bloco (incluindo a largura e a altura) e no modo de intrapredição.
[0084] O conteúdo a seguir descreve técnicas exemplificativas dessa invenção para a determinação de orientações para predição, determinação de modos de predição, determinação de modos de codificação, determinações quanto ao uso de intrafiltragem na codificação de vídeo (por exemplo, codificação de vídeo e/ou codificação de vídeo), e a codificação e sinalização explícitas de elementos de sintaxe. As técnicas aqui descritas podem ser usadas em qualquer combinação e em qualquer conjunção com outras técnicas. Em alguns exemplos, as técnicas de codificação dessa invenção podem ser realizadas usando elementos de sintaxe (por exemplo, indicadores), que podem ser explicitamente codificados e sinalizados, escondidos em informações do coeficiente de transformada ou outro local, derivados tanto no decodificador de vídeo 22 quanto no decodificador de vídeo 30 sem sinalização, e similares.
[0085] As técnicas dessa invenção são descritas com referência a filtros de suavização da amostra de referência intra e o modo PDPC (modos de codificação em geral). A suavização da amostra de referência infra e o modo PDPC são usados para fins de ilustração e descrição. As técnicas dessa invenção não se limitam a esses exemplos, e as técnicas descritas podem ser aplicadas a outros modos de codificação de vídeo, técnicas e ferramentas.
[0086] Inicialmente, são discutidas as técnicas relacionadas a um elemento de sintaxe do filtro de
Petição 870190087428, de 05/09/2019, pág. 60/133
42/91 suavização da amostra de referência (por exemplo, um indicador). Essa invenção propõe que o codificador de vídeo 22 gere e/ou sinalize um indicador do filtro de suavização da amostra de referência intra de modo explícito. Isto é, o codificador de vídeo 22 pode ser configurado para codificar explicitamente um elemento de sintaxe que indica se um determinado modo de codificação (por exemplo, um filtro de suavização da amostra de referência intra) será usado para codificar um bloco de dados de vídeo. Por exemplo, o codificador de vídeo 22 pode gerar e sinalizar um indicador do filtro de suavização da amostra de referência intra em um fluxo de bits de vídeo codificado. Dessa forma, o codificador de vídeo 22 pode evitar qualquer necessidade de modificar os coeficientes de transformada para se certificar de que a condição de paridade é válida (por exemplo, a condição de paridade dos coeficientes de transformação indica corretamente o valor do indicador), como pode ser feito quando o indicador de suavização intra não é explicitamente codificado. Essa técnica pode economizar a complexidade perceptível no codificador de vídeo 22. 0 decodificador de vídeo 30 pode ser configurado para receber o elemento de sintaxe explicitamente codificado (por exemplo, o indicador de filtro de suavização da amostra de referência intra) no fluxo de bits de vídeo codificado, por exemplo, em vez de derivar o valor do indicador a partir da paridade dos coeficientes de transformada. O decodificador de vídeo 30 pode, então, decodificar explicitamente o valor do indicador do filtro de suavização da amostra de referência intra.
[0087] No entanto, em alguns exemplos, a
Petição 870190087428, de 05/09/2019, pág. 61/133
43/91 codificação do elemento de sintaxe do filtro de suavização da amostra de referência intra pode ser um fardo para alguns blocos (isto é, pode aumentar insuportavelmente o número de bits usados para codificar o bit) . Por exemplo, quando as informações residuais relacionadas ao bloco são pequenas, e poucos bits são usados para codificar o bloco, o bit usado para sinalizar o elemento de sintaxe (por exemplo, o indicador do filtro de suavização da amostra de referência intra) pode resultar em uma razão da taxa de bits maior do que o desejado. Para resolver esse potencial problema, o codificador de vídeo 22 pode ser configurado para explicitamente codificar e sinalizar o indicador do filtro de suavização da amostra de referência intra se um bloco de dados de vídeo tiver um determinado número de coeficientes de transformada diferentes de zero, ou o número de coeficientes de transformada diferentes de zero ultrapassar um determinado limite. Por exemplo, o limite pode ser igual a 3, o que significa que, se um bloco de dados de vídeo tiver 3 ou mais coeficientes de transformada diferentes de zero, o codificador de vídeo 22 sinaliza (por exemplo, codifica explicitamente) o indicador do filtro de suavização da amostra de referência intra. Caso contrário, o codificador de vídeo 22 não codifica explicitamente o indicador do filtro de suavização da amostra de referência intra. Outros exemplos de limites incluem 0, 1, 2 ou qualquer outro número de coeficientes de transformada diferentes de zero.
[0088] Assim, de acordo com um exemplo da invenção, o codificador de vídeo 22 pode ser configurado para determinar um modo de codificação (por exemplo, o uso
Petição 870190087428, de 05/09/2019, pág. 62/133
44/91 de um filtro de suavização da amostra de referência intra) para codificar um primeiro bloco de dados de video. Com base em se o filtro de suavização da amostra de referência intra é usado ou não para o primeiro bloco de dados de video, o codificador de video 22 pode ser configurado para codificar explicitamente um primeiro elemento de sintaxe (por exemplo, um indicador do filtro de suavização da amostra de referência intra) indicando se o modo de codificação (por exemplo, um filtro de suavização da amostra de referência intra) será usado para o primeiro bloco de dados de video no caso em que o primeiro bloco de dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite. Isto é, se o primeiro bloco de dados de video estiver associado a um número de coeficientes de transformada diferentes de zero maior do que um limite, o codificador de video 22 codifica explicitamente o primeiro elemento de sintaxe. 0 codificador de video 22 pode sinalizar o primeiro elemento de sintaxe em um fluxo de bits de video codificado.
[0089] Para um segundo bloco de dados de video, o codificador de video 22 pode ser configurado para não codificar um valor do elemento de sintaxe (por exemplo, um indicador do filtro de suavização da amostra de referência intra) indicando se o modo de codificação será usado para o segundo bloco de dados de video no caso em que o segundo bloco de dados de video está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite. Isto é, o segundo bloco de dados de video está associado a um número de coeficientes de transformada
Petição 870190087428, de 05/09/2019, pág. 63/133
45/91 diferentes de zero inferior ao limite.
[0090] De forma reciproca, o decodificador de video 30 pode ser configurado para receber o primeiro bloco de dados de video, e receber um primeiro elemento de sintaxe (por exemplo, um indicador do filtro de suavização da amostra de referência intra) indicando se o modo de codificação (por exemplo, o uso de um filtro de suavização da amostra de referência intra) será usado para o primeiro bloco de dados de video no caso em que o primeiro bloco de dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite. O decodificador de video 30 pode ainda ser configurado para decodificar explicitamente o valor do primeiro elemento de sintaxe recebido, e aplicar o modo de codificação (por exemplo, o uso de um filtro de suavização da amostra de referência intra) ao primeiro bloco de dados de video em conformidade com um valor do primeiro elemento de sintaxe.
[0091] No caso em que o codificador de video 22 não codifica explicitamente o elemento de sintaxe (por exemplo, para o segundo bloco de dados de video discutido acima), o decodificador de video 30 pode ser configurado para receber o segundo bloco de dados de video, inferir um valor de um segundo elemento de sintaxe indicando se o modo de codificação (por exemplo, o filtro de suavização da amostra de referência intra) será usado para o segundo bloco de dados de video no caso em que o segundo bloco de dados de video está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite, e aplicar o modo de codificação (por exemplo, o uso de um
Petição 870190087428, de 05/09/2019, pág. 64/133
46/91 filtro de suavização da amostra de referência intra) em conformidade com o valor inferido do segundo elemento de sintaxe. Como será discutido mais detalhadamente abaixo, o decodificador de video 30 pode ser configurado para usar uma ou mais técnicas para inferir um valor do elemento de sintaxe, incluindo inferir o valor do elemento de sintaxe a partir de características dos coeficientes de transformada associados ao bloco de dados de video, e/ou inferir o valor do elemento de sintaxe com base em algum valor padrão predefinido (por exemplo, sempre aplicar o filtro de suavização da amostra de referência intra, nunca aplicar o filtro de suavização da amostra de referência intra, aplicar um filtro padrão, etc.).
[0092] Nos exemplos acima, o modo de codificação é o uso de um filtro de suavização da amostra de referência intra. Em outros exemplos discutidos abaixo, o modo de codificação indicado pelo elemento de sintaxe explicitamente codificado pode ser o modo PDC. No entanto, as técnicas desta invenção podem ser usadas com outros modos de codificação.
[0093] Em alguns exemplos, o codificador de video 22 pode ser configurado para comparar o número de coeficientes de transformada diferentes de zero associados a um bloco de dados de video para o limite conjuntamente para ambos os componentes luma e croma do bloco de dados de video ao determinar quanto à codificação explicita ou não de um elemento de sintaxe para um modo de codificação. Isto é, o codificador de video 22 pode considerar o número de coeficientes diferentes de zero para os blocos luma e os blocos croma em conjunto. O decodificador de video 30 pode
Petição 870190087428, de 05/09/2019, pág. 65/133
47/91 ser configurado para realizar a mesma comparação que o codificador de vídeo 22 ao determinar se um elemento de sintaxe para um modo de codificação foi explicitamente codificado ou não e se será recebido.
[0094] Em outros exemplos, o codificador de vídeo 22 pode ser configurado para comparar apenas os coeficientes de transformada diferentes de zero para um bloco luma ao determinar quanto à codificação explícita ou não de um elemento sintaxe para um modo de codificação. Nesse exemplo, o codificador de vídeo 22 pode ser configurado para gerar elementos de sintaxe para modos de codificação separadamente para blocos luma e blocos croma. Assim, ainda nesse exemplo, o codificador de vídeo 22 só pode considerar os coeficientes de transformada diferentes de zero para blocos croma ao determinar quanto à codificação explícita ou não de um elemento de sintaxe para um modo de codificação para um bloco croma. Mais uma vez, o decodificador de vídeo 30 pode ser configurado para realizar a mesma comparação que o codificador de vídeo 22 ao determinar se um elemento de sintaxe para um modo de codificação foi explicitamente codificado ou não e se será recebido para os blocos de codificação luma e/ou croma.
[0095] Em outro exemplo, a maneira na qual o codificador de vídeo 22 e o decodificador de vídeo 30 são configurados para contar os coeficientes de transformada diferentes de zero para determinar a codificação explícita de um elemento de sintaxe pode ser dependente do tipo de fatia. Por exemplo, o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para usar uma técnica de contagem de coeficientes de transformada
Petição 870190087428, de 05/09/2019, pág. 66/133
48/91
diferentes de zero para fatias I e usar outra técnica
diferente de contagem de coeficientes de transformada
diferentes de zero para fatias que não se j am I (por
exemplo, fatias P ou fatias B) .
[0096] Em outro exemplo, o codificador de video 22 e o decodificador de video 30 podem ser configurados para contar os coeficientes de transformada diferentes de zero usando uma técnica que depende se os componentes luma e croma são codificados em conjunto ou separadamente. Por exemplo, em algumas estruturas de segmentação, os componentes luma e croma têm a mesma estrutura de segmentação. Em outras estruturas de segmentação (por exemplo, exemplos da segmentação QTBT), os componentes luma e croma podem ser segmentados de forma independente, de tal modo que suas respectivas estruturas de segmentação diferem uma da outra. Nesse exemplo, a codificação separada pode significar que os blocos luma e croma podem ter diferentes representações de segmentação ou estruturas em árvore. Nesse exemplo, quando a codificação separada e/ou de luma/croma independente é habilitada para as fatias I, o codificador de video 22 e o decodificador de video 30 podem ser configurados para contar os coeficientes de transformada diferentes de zero para os componentes luma. Para fatias que não sejam I, quando a codificação separada não está habilitada, o codificador de video 22 e o decodificador de video 30 podem ser configurados para contar os coeficientes de transformada diferentes de zero conjuntamente para ambos os coeficientes de transformada croma e luma, ou apenas para os coeficientes de transformada luma.
Petição 870190087428, de 05/09/2019, pág. 67/133
49/91 [0097] Em outro exemplo, quando o codificador de vídeo 22 e o decodificador de vídeo 30 são configurados para contar os coeficientes diferentes de zero para ambos os componentes croma e luma, a contagem de coeficientes diferentes de zero é realizada por componente. Por exemplo, o codificador de vídeo 22 e o decodificador de vídeo 30 podem incluir três contadores de coeficientes diferente de zero; um contador para cada componente de cor (por exemplo, Y, Cb e Cr). Em outro exemplo, o codificador de vídeo 22 e o decodificador de vídeo 30 podem incluir dois contadores; um contador para um componente luma e um contador para ambos os componentes croma. Nesse exemplo, o limite pode ser definido por componente, e o valor-limite pode ser diferente para diferentes componentes de cor.
[0098] Em um exemplo, o limite usado para explicitamente codificar e/ou sinalizar o indicador do filtro de suavização da amostra de referência intra é o mesmo limite usado para explicitamente codificar e sinalizar os indicadores ou índices de transformada primários e/ou secundários. Nesse exemplo, há uma unificação entre diferentes técnicas de codificação de vídeo (por exemplo, entre a sinalização da transformada e a sinalização do indicador do filtro de suavização da amostra de referência intra), e uma contagem e limite de coeficientes diferentes de zero podem ser usados, o que pode simplificar a implementação.
[0099] Em outro exemplo, o codificador de vídeo 22 e/ou o decodificador de vídeo 30 podem determinar codificar explicitamente o indicador do filtro de suavização da amostra de referência intra com base em um
Petição 870190087428, de 05/09/2019, pág. 68/133
50/91 limite de coeficientes de transformada diferentes de zero apenas para blocos sem avanço de transformada. Ou seja, para os blocos de avanço de transformada, o codificador de vídeo 22 e o decodificador de vídeo 30 podem não explicitamente codificar um indicador do filtro de suavização da amostra de referência intra. Para os blocos sem avanço de transformada (isto é, os blocos aos quais se aplica uma transformada) , o codificador de vídeo 22 e o decodificador de vídeo 30 podem codificar explicitamente o indicador do filtro de suavização da amostra de referência intra. O avanço de transformada é um método em que as transformadas horizontais ou verticais, ou ambas as transformadas, não são aplicadas ao resíduo de um bloco, ou seja, são ignoradas. A transformada pode ser qualquer transformada: primária ou secundária, ou ambas.
[0100] Em outro exemplo, o codificador de vídeo 22 e/ou o decodificador de vídeo 30 podem determinar codificar explicitamente o indicador do filtro de suavização de amostra de referência intra com base em um limite dos coeficientes de transformada diferentes de zero apenas para blocos codificados com um modo de intrapredição particular. Por exemplo, o codificador de vídeo 22 e/ou o decodificador de vídeo 30 podem determinar codificar explicitamente o indicador do filtro de suavização de amostra de referência intra com base em um limite dos coeficientes de transformada diferentes de zero para blocos codificados com modos de intrapredição diferentes de um modo planar, um modo de predição de modelo linear (LM) ou um modo DC. Por exemplo, se o bloco de um componente envolvido (por exemplo, componente luma ou croma) for
Petição 870190087428, de 05/09/2019, pág. 69/133
51/91 codificado usando o modo planar, o codificador de vídeo 22 e/ou o decodificador de vídeo 30 não consideraria o número de coeficientes de transformada diferentes de zero desse componente envolvido ao determinar codificar explicitamente o indicador do filtro de suavização de amostra de referência intra. Dessa forma, o codificador de vídeo 22 é configurado para codificar explicitamente o indicador do filtro de suavização de amostra de referência intra com base em um modo de intrapredição usado para codificar o bloco de dados de vídeo. Da mesma forma, o decodificador de vídeo 30 é configurado para receber o indicador do filtro de suavização de amostra de referência intra com base em um modo de intrapredição usado para codificar o bloco de dados de vídeo.
[0101] Em outro exemplo, além de comparar o número de coeficientes de transformada diferentes de zero a um limite, o codificador de vídeo 22 e o decodificador de vídeo 30 podem aplicar um limite de tamanho de bloco para determinar quanto à codificação explícita ou não de um indicador do filtro de suavização de amostra de referência intra. Por exemplo, o codificador de vídeo 22 pode ser configurado para codificar explicitamente e sinalizar um indicador do filtro de suavização de amostra de referência intra para blocos com um tamanho maior ou igual a um tamanho mínimo predeterminado e menor que um tamanho máximo predeterminado do bloco, onde os tamanhos mínimo e máximo do bloco podem ser configuráveis ou fixos tanto para o codificador de vídeo 22 quanto para o decodificador de vídeo 30. Da mesma forma, o decodificador de vídeo 30 pode ser configurado para receber e decodificar explicitamente
Petição 870190087428, de 05/09/2019, pág. 70/133
52/91 um indicador do filtro de suavização de amostra de referência intra para blocos com um tamanho maior ou igual a um tamanho mínimo predeterminado e menor que um tamanho máximo predeterminado do bloco.
[0102] Assim, neste exemplo, o codificador de video 22 pode ser configurado para codificar explicitamente o indicador do filtro de suavização de amostra de referência intra no caso em que o primeiro bloco de dados de video é maior ou igual a um tamanho predeterminado. Da mesma forma, o decodificador de video 30 pode ser configurado para receber e decodificar explicitamente o indicador do filtro de suavização de amostra de referência intra no caso em que o primeiro bloco de dados de video é maior ou igual a um tamanho predeterminado.
[0103] O limite mínimo de tamanho do bloco pode ser definido para ser maior ou igual a 8x8, significando que todos os blocos menores que 8x8 (por exemplo, 4x4, 4x8, 8x4 e similares) são restritos e um indicador do filtro de suavização de amostra de referência intra não é sinalizado para esses blocos. Da mesma forma, o limite máximo do bloco pode ser, por exemplo, definido a 32x32. Em outro exemplo, o limite pode ser expresso em largura*altura. Ou seja, 8x8 é convertido em 64 e 32x32 é convertido em 1024. Para verificar se o bloco em curso é restrito a codificar explicitamente o indicador do filtro de suavização de amostra de referência intra, o codificador de video 22 e o decodificador de video 30 podem verificar a largura*altura do bloco versus o limite.
[0104] Em qualquer um dos exemplos acima em que o indicador do filtro de suavização de amostra de referência
Petição 870190087428, de 05/09/2019, pág. 71/133
53/91 intra não é explicitamente codificado e/ou sinalizado, o decodificador de video 30 pode ser configurado para aplicar algum(ns) filtros de suavização padrão ao bloco de dados de video. Por exemplo, o decodificador de video 30 pode aplicar um filtro MDIS (que é dependente do modo), o decodificador de video 30 pode aplicar qualquer outro filtro, ou o decodificador de video 30 pode não aplicar nenhuma filtragem.
[0105] Em outros exemplos da invenção, o codificador de video 22 pode ser configurado para codificar explicitamente e sinalizar um indicador (por exemplo, um indicador do filtro de suavização de amostra de referência intra) apenas para determinados modos de intrapredição. Por exemplo, o codificador de video 22 pode ser configurado para codificar explicitamente e sinalizar um indicador do filtro de suavização de amostra de referência intra para os modos de intrapredição onde o MIDS pode estar ativado (por exemplo, modos IDC) , para os modos MDIS e um modo planar, ou para qualquer outro subconjunto de modos de intrapredição de modos de intrapredição disponíveis.
[0106] Em outro exemplo, o codificador de vídeo 22 e o decodificador de vídeo 33 são configurados para aplicar um filtro de suavização de amostra de referência intra a blocos de dados de vídeo que são codificados com modos de intrapredição que são distantes (por exemplo, em comparação a um limite) das direções horizontais ou verticais. Além disso, ou opcionalmente, o codificador de vídeo 22 e o decodificador de vídeo 33 são configurados para aplicar um filtro de suavização de amostra de referência intra a blocos de dados de vídeo codificados
Petição 870190087428, de 05/09/2019, pág. 72/133
54/91 usando um modo de intrapredição planar ou outros modos de intrapredição angular. 0 codificador de video 22 e o decodificador de video 30 podem ser configurados para obter um subconjunto de modos de intrapredição usados para determinar quanto à aplicação de um filtro de suavização de amostra de referência intra. O codificador de video 22 e o decodificador de video 33 podem ser configurados para obter o subconjunto com base em orientações do modo de intrapredição. Em um exemplo, o codificador de video 22 e o decodificador de video 33 podem ser configurados para obter o subconjunto de modos de intrapredição com base em quão longe ou perto (por exemplo, com base em um limite) está o índice para os modos de intrapredição em relação aos índices para os modos de intrapredição horizontal, vertical e/ou diagonal. Outro subconjunto separado dos modos de intrapredição pode ser atribuído às direções não angulares, como os modos planares e/ou DC intra e similares.
[0107] Em outro exemplo, o codificador de video 22 e o decodificador de video 30 são configurados para codificar explicitamente e sinalizar um indicador do filtro de suavização de amostra de referência intra para diferentes componentes de cor de um bloco de dados de video. Por exemplo, o codificador de video 22 e o decodificador de video 33 são configurados para codificar explicitamente e sinalizar um indicador para os componentes luma. Além disso, o codificador video 22 e o decodificador de video 33 são configurados para codificar explicitamente e sinalizar um indicador para os componentes croma Cb (por exemplo, Croma_Cb) e croma Cr (por exemplo, Croma_Cr). A sinalização do indicador de um componente pode depender do
Petição 870190087428, de 05/09/2019, pág. 73/133
55/91 valor do indicador já sinalizado para outro componente. Por exemplo, o codificador de vídeo 22 pode ser configurado para codificar explicitamente e sinalizar um indicador do filtro de suavização de amostra de referência intra para componentes croma e luma. Ao sinalizar o indicador para croma, a codificação de entropia/análise desse indicador pelo codificador de vídeo 22 e o decodificador de vídeo 30, respectivamente, pode depender do valor do indicador sinalizado para luma. A dependência pode ser refletida por, mas não limitada a, o valor de contexto.
[0108] Em outro exemplo, um indicador do filtro de suavização de amostra de referência intra pode não ser sinalizado, mas, em vez disso, ser obtido pelo decodificador de vídeo 30 de acordo com o índice do modo de intrapredição para o bloco de dados de vídeo sendo decodificado. Por exemplo, os blocos de dados de vídeo codificados usando um modo de intrapredição com o índice de modo par usam um filtro de suavização de amostra de referência intra (o indicador está habilitado), e os blocos de dados de vídeo codificados usando um modo de intrapredição com um índice de modo ímpar não têm um filtro de suavização de amostra de referência intra aplicado (o indicador está desabilitado), ou vice-versa.
[0109] Em alguns exemplos, o codificador de vídeo 22 e o decodificador de vídeo 30 podem aplicar a suavização intra a um primeiro bloco com um modo intra particular, e não aplicar a suavização intra a um bloco vizinho com um modo intra que é semelhante ao modo intra para o primeiro bloco pode fornecer melhor variedade à intrapredição. Isso porque as orientações do modo de intrapredição vizinho (por
Petição 870190087428, de 05/09/2019, pág. 74/133
56/91 exemplo, as orientações do modo de intrapredição que estão próximas umas das outras ou próximas umas das outras em relação a um limite) podem oferecer intrapreditores similares (já que a direção é semelhante), mas o indicador de suavização pode ainda diferenciar o preditor. Em um exemplo, o codificador de video 22 e o decodificador de video 30 podem ser configurados para realizar a suavização intra para um modo de intrapredição sim, outro não. Por exemplo, a suavização intra pode ser realizada para os modos de intrapredição com um índice par e a suavização intra pode não ser realizada para os modos de intrapredição
com um índice impar, ou vice-versa. Em outros exemplos, a
intrapredição pode ser realizada para cada 3 modos de
intrapredição, todos os outros modos de intrapredição ou
qualquer subconjunto de modos de intrapredição.
[0110] Além disso, não há nenhuma necessidade de ter o indicador do filtro de suavização de amostra de referência intra sinalizado explicitamente, e os bits podem ser salvos. Os modos de intrapredição não angulares podem ser associados a uma regra separada. Por exemplo, o codificador de video 22 e o decodificador de video 30 podem ser configurados para sempre aplicar a suavização de amostra de referência intra para blocos de dados de video codificados usando um modo de intrapredição planar. Em outro exemplo, o codificador de video 22 e o decodificador de video 30 podem ser configurados para não aplicar suavização de amostra de referência intra para blocos de dados de video codificados usando um modo de intrapredição planar. Em ainda outros exemplos, o codificador de video 22 e o decodificador de video 30 podem ser configurados para
Petição 870190087428, de 05/09/2019, pág. 75/133
57/91 codificar explicitamente um indicador do filtro de suavização de amostra de referência intra para indicar se a suavização de amostra de referência intra será aplicada aos blocos de dados de vídeo codificados usando um modo de intrapredição planar.
[0111] Em alguns exemplos, a modelagem de contexto (ou seja, os contextos usados para codificação de entropia, como CAB AC) para a codificação de entropia do indicador do filtro de suavização de amostra de referência intra pode ser dependente do modo de intrapredição. Por exemplo, o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para usar um contexto para codificar com entropia o indicador do filtro de suavização de amostra de referência intra para alguns modos de intrapredição, e o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para usar outro(s) contexto(s) para codificar com entropia o indicador do filtro de suavização de amostra de referência intra para outros modos de intrapredição. A atribuição de contexto pode ser baseada em um subconjunto de modos de intrapredição dos modos de intrapredição disponíveis. Ou seja, o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para atribuir contextos usados para codificar o indicador do filtro de suavização de amostra de referência intra com base no subconjunto de modos de intrapredição ao qual pertence o modo de intrapredição do bloco de dados de vídeo em curso. Por exemplo, o subconjunto de modos de intrapredição pode ser de modos não angulares, modos angulares, modos aos quais se aplica o MDIS e/ou o modo planar. O codificador de vídeo 22
Petição 870190087428, de 05/09/2019, pág. 76/133
58/91 e o decodificador de video 30 podem ser configurados para obter o subconjunto ao qual pertence o bloco de dados de video em curso com base na proximidade do modo de intrapredição em curso aos modos específicos (por exemplo, com base em um limite). Por exemplo, o codificador de video 22 e o decodificador de video 30 podem ser configurados para determinar a proximidade do índice para um modo de intrapredição em curso ao índice para um modo de intrapredição horizontal, um modo de intrapredição vertical, um modo de intrapredição diagonal ou outro modo de intrapredição. Outro subconjunto separado pode ser atribuído para as direções não angulares, como os modos planares e/ou DC intra e similares.
[0112] Técnicas para sinalização do modo PDPC serão agora discutidas. Em um exemplo da invenção, o uso do modo PDPC pode ser restrito, e o codificador de video 22 é configurado para não sinalizar um indicador de PDPC para os casos restritos. O indicador do PDPC, ou mais genericamente o elemento de sintaxe PDPC, indica se o modo PDPC é usado para um determinado bloco de dados de video. A restrição pode ser imposta de forma semelhante às técnicas para o indicador do filtro de suavização de amostra de referência intra discutido acima.
[0113] Em um exemplo, o codificador de video 22 pode ser configurado para explicitamente codificar e sinalizar o indicador do filtro de suavização de amostra de referência intra se um bloco de dados de video tiver um determinado número de coeficientes de transformada diferentes de zero, ou o número de coeficientes de transformada diferentes de zero ultrapassar um determinado
Petição 870190087428, de 05/09/2019, pág. 77/133
59/91 limite. Por exemplo, o limite pode ser igual a 3, o que significa que, se um bloco de dados de vídeo tiver 3 ou mais coeficientes de transformada diferentes de zero, o codificador de vídeo 22 sinaliza (por exemplo, codifica explicitamente) o indicador do modo PDPC. Caso contrário, o codificador de vídeo 22 não codifica explicitamente o indicador do modo PDPC. Em alguns exemplos, o limite pode ser o mesmo usado para sinalização dos índices de transformada. Outros exemplos de limites incluem 0, 1, 2 ou qualquer outro número de coeficientes de transformada diferentes de zero. Em um exemplo, o limite é igual a 2, o que significa que o codificador de vídeo 22 sinaliza o indicador do modo PDPC se o bloco de dados de vídeo tiver mais de 1 coeficiente de transformada diferente de zero.
[0114] Assim, de acordo com um exemplo da invenção, o codificador de vídeo 22 pode ser configurado para determinar um modo de codificação (por exemplo, o uso do modo PDPC) para codificar um primeiro bloco de dados de vídeo. Com base no uso ou não do modo PDPC para o primeiro bloco de dados de vídeo, o codificador de vídeo 22 pode ser configurado para codificar explicitamente um primeiro elemento de sintaxe (por exemplo, um indicador do modo PDPC) indicando se o modo de codificação (por exemplo, um modo PDPC) será usado para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite. Isto é, se o primeiro bloco de dados de vídeo estiver associado a um número de coeficientes de transformada diferentes de zero maior do que um limite, o codificador de vídeo 22
Petição 870190087428, de 05/09/2019, pág. 78/133
60/91 codifica explicitamente o primeiro elemento de sintaxe. O codificador de vídeo 22 pode sinalizar o primeiro elemento de sintaxe em um fluxo de bits de vídeo codificado.
[0115] Para um segundo bloco de dados de vídeo, o codificador de vídeo 22 pode ser configurado para não codificar um valor do elemento de sintaxe (por exemplo, um indicador do modo PDPC) indicando se o modo de codificação será usado para o segundo bloco de dados de vídeo no caso em que o segundo bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite. Isto é, o segundo bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite.
[0116] De forma recíproca, o decodificador de vídeo 30 pode ser configurado para receber o primeiro bloco de dados de vídeo, e receber um primeiro elemento de sintaxe (por exemplo, um indicador do modo PDPC) indicando se o modo de codificação (por exemplo, o uso do modo PDPC) será usado para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite. O decodificador de vídeo 30 pode ainda ser configurado para decodificar explicitamente o valor do primeiro elemento de sintaxe recebido, e aplicar o modo de codificação (por exemplo, o modo PDPC) ao primeiro bloco de dados de vídeo em conformidade com um valor do primeiro elemento de sintaxe.
[0117] No caso em que o codificador de vídeo 22 não codifica explicitamente o elemento de sintaxe (por exemplo, para o segundo bloco de dados de vídeo discutido
Petição 870190087428, de 05/09/2019, pág. 79/133
61/91 acima), o decodificador de vídeo 30 pode ser configurado para receber o segundo bloco de dados de vídeo, inferir um valor de um segundo elemento de sintaxe indicando se o modo de codificação (por exemplo, o modo PDPC) será usado para o segundo bloco de dados de vídeo no caso em que o segundo bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite, e aplicar o modo de codificação (por exemplo, o modo PDPC) em conformidade com o valor inferido do segundo elemento de sintaxe.
[0118] Em alguns exemplos, o codificador de vídeo 22 pode ser configurado para comparar o número de coeficientes de transformada diferentes de zero associados a um bloco de dados de vídeo ao limite conjuntamente para ambos os componentes luma e croma do bloco de dados de vídeo ao determinar quanto à codificação explícita de um elemento de sintaxe para um modo de codificação (por exemplo, o modo PDPC) . Isto é, o codificador de vídeo 22 pode considerar o número de coeficientes diferentes de zero para os blocos luma e os blocos croma em conjunto. O decodificador de vídeo 30 pode ser configurado para realizar a mesma comparação que o codificador de vídeo 22 ao determinar se um elemento de sintaxe para um modo de codificação foi explicitamente codificado ou não e se será recebido.
[0119] Em outros exemplos, o codificador de vídeo 22 pode ser configurado para comparar apenas os coeficientes de transformada diferentes de zero para um bloco luma ao determinar quanto à codificação explícita de um elemento sintaxe para um modo de codificação (por
Petição 870190087428, de 05/09/2019, pág. 80/133
62/91 exemplo, o modo PDPC). Nesse exemplo, o codificador de video 22 pode ser configurado para gerar os elementos de sintaxe para modos de codificação separadamente para blocos luma e blocos croma. Assim, ainda nesse exemplo, o codificador de video 22 só pode considerar os coeficientes de transformada diferentes de zero para blocos croma ao determinar quanto à codificação explicita de um elemento de sintaxe para um modo de codificação (por exemplo, o modo PDPC) para um bloco croma. Mais uma vez, o decodificador de video 30 pode ser configurado para realizar a mesma comparação que o codificador de video 22 ao determinar se um elemento de sintaxe para um modo de codificação foi explicitamente codificado e se será recebido para os blocos de codificação luma e/ou croma.
[0120] Em outro exemplo, a maneira na qual o codificador de video 22 e o decodificador de video 30 são configurados para contar os coeficientes de transformada diferentes de zero para determinar a codificação explicita de um elemento de sintaxe pode ser dependente do tipo de fatia. Por exemplo, o codificador de video 22 e o decodificador de video 30 podem ser configurados para usar uma técnica de contagem de coeficientes de transformada diferentes de zero para fatias I e usar outra técnica diferente de contagem de coeficientes de transformada diferentes de zero para fatias que não sejam I (por exemplo, fatias P ou fatias B).
[0121] Em outro exemplo, o codificador de video 22 e o decodificador de video 30 podem ser configurados para contar os coeficientes de transformada diferentes de zero usando uma técnica que depende se os componentes luma
Petição 870190087428, de 05/09/2019, pág. 81/133
63/91 e croma são codificados em conjunto ou separadamente. Por exemplo, em algumas estruturas de segmentação, os componentes luma e croma têm a mesma estrutura de segmentação. Em outras estruturas de segmentação (por exemplo, exemplos da segmentação QTBT), os componentes luma e croma podem ser segmentados de forma independente, de tal modo que suas respectivas estruturas de segmentação diferem uma da outra. Nesse exemplo, a codificação separada pode significar que os blocos luma e croma podem ter diferentes representações de segmentação ou estruturas em árvore. Nesse exemplo, quando a codificação separada e/ou de luma/croma independente é habilitada para as fatias I, o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para contar os coeficientes de transformada diferentes de zero para os componentes luma. Para fatias que não sejam I, quando a codificação separada não está habilitada, o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para contar os coeficientes de transformada diferentes de zero conjuntamente para ambos os coeficientes de transformada croma e luma, ou apenas para os coeficientes de transformada luma.
[0122] Em outro exemplo, quando o codificador de vídeo 22 e o decodificador de vídeo 30 são configurados para contar os coeficientes diferentes de zero para ambos os componentes croma e luma, a contagem de coeficientes diferentes de zero é realizada por componente. Por exemplo, o codificador de vídeo 22 e o decodificador de vídeo 30 podem incluir três contadores de coeficientes diferentes de zero; um contador para cada componente de cor (por exemplo,
Petição 870190087428, de 05/09/2019, pág. 82/133
64/91
Y, Cb e Cr). Em outro exemplo, o codificador de video 22 e o decodificador de video 30 podem incluir dois contadores; um contador para um componente luma e um contador para ambos os componentes croma. Nesse exemplo, o limite pode ser definido por componente, e o valor-limite pode ser diferente para diferentes componentes de cor.
[0123] Em outro exemplo, o codificador de video 22 e/ou o decodificador de video 30 podem determinar codificar explicitamente o indicador do modo PDPC com base em um limite de coeficientes de transformada diferentes de zero apenas para blocos sem avanço de transformada. Ou seja, para os blocos de avanço de transformada, o codificador de video 22 e o decodificador de video 30 podem não codificar explicitamente um indicador do modo PDPC. Para os blocos sem avanço de transformada (isto é, os blocos aos quais se aplica uma transformada), o codificador de video 22 e o decodificador de video 30 podem codificar explicitamente o indicador do modo PDPC. O avanço de transformada é um método em que as transformadas horizontais ou verticais, ou ambas as transformadas, não são aplicadas ao resíduo de um bloco, ou seja, são ignoradas. A transformada pode ser qualquer transformada: primária ou secundária, ou ambas.
[0124] Em outro exemplo, o codificador de video 22 e/ou o decodificador de video 30 podem determinar codificar explicitamente o indicador do modo PDPC com base em um limite dos coeficientes de transformada diferentes de zero apenas para blocos codificados com um modo de intrapredição particular. Por exemplo, o codificador de video 22 e/ou o decodificador de video 30 podem determinar
Petição 870190087428, de 05/09/2019, pág. 83/133
65/91 codificar explicitamente o indicador do modo PDPC com base em um limite dos coeficientes de transformada diferentes de zero para blocos codificados com modos de intrapredição diferentes de um modo planar, um modo de predição de modelo linear (LM) ou um modo DC. Por exemplo, se o bloco de um componente envolvido (por exemplo, componente luma ou croma) for codificado usando o modo planar, o codificador de video 22 e/ou o decodificador de video 30 não consideraria o número de coeficientes de transformada diferentes de zero desse componente envolvido ao determinar codificar explicitamente o indicador do modo PDPC. Dessa forma, o codificador de video 22 é configurado para codificar explicitamente o indicador do modo PDPC com base em um modo de intrapredição usado para codificar o bloco de dados de video. Da mesma forma, o decodificador de video 30 é configurado para receber o indicador do modo PDPC com base em um modo de intrapredição usado para codificar o bloco de dados de video.
[0125] Em outro exemplo, além de comparar o número de coeficientes de transformada diferentes de zero a um limite, o codificador de video 22 e o decodificador de video 30 podem aplicar um limite de tamanho de bloco para determinar quanto à codificação explicita de um indicador do modo PDPC. Por exemplo, o codificador de video 22 pode ser configurado para codificar explicitamente e sinalizar um indicador do modo PDPC para blocos com um tamanho maior ou igual a um tamanho mínimo predeterminado e menor que um tamanho máximo predeterminado do bloco, onde os tamanhos mínimo e máximo do bloco podem ser configuráveis ou fixos tanto para o codificador de video 22 quanto para o
Petição 870190087428, de 05/09/2019, pág. 84/133
66/91 decodificador de video 30. Da mesma forma, o decodificador de video 30 pode ser configurado para receber e decodificar um indicador do modo PDPC para blocos com um tamanho maior ou igual a um tamanho mínimo predeterminado e menor que um tamanho máximo predeterminado do bloco.
[0126] Assim, nesse exemplo, o codificador de vídeo 22 pode ser configurado para codificar explicitamente o indicador do modo PDPC no caso em que o primeiro bloco de dados de vídeo é maior ou igual a um tamanho predeterminado. Da mesma forma, o decodificador de vídeo 30 pode ser configurado para receber e decodificar explicitamente o indicador do modo PDPC no caso em que o primeiro bloco de dados de vídeo é maior ou igual a um tamanho predeterminado.
[0127] O limite mínimo de tamanho do bloco pode ser definido para ser maior ou igual a 8x8, significando que todos os blocos menores que 8x8 (por exemplo, 4x4, 4x8, 8x4 e similares) são restritos e um indicador do modo PDPC não é sinalizado para esses blocos. Da mesma forma, o limite máximo do bloco pode ser, por exemplo, definido a 32x32. Em outro exemplo, o limite pode ser expresso em largura*altura. Ou seja, 8x8 é convertido em 64 e 32x32 é convertido em 1024. Para verificar se o bloco em curso é restrito a codificar explicitamente o indicador do modo PDPC, o codificador de vídeo 22 e o decodificador de vídeo 30 podem verificar a largura*altura do bloco versus o limite.
[0128] Em qualquer um dos exemplos acima em que o indicador do filtro de suavização de amostra de referência intra não é explicitamente codificado e/ou sinalizado, o
Petição 870190087428, de 05/09/2019, pág. 85/133
67/91 decodificador de video 30 pode ser configurado para obter urn valor padrão para o indicador do modo PDPC para algum(ns) modo(s) de intrapredição. Por exemplo, para alguns modos de intrapredição com suavização, por exemplo, o modo planar, o modo PDPC é sempre aplicado.
[0129] Em outro exemplo, o codificador de video 22 e o decodificador de video 30 são configurados para codificar explicitamente e sinalizar um indicador do modo PDPC para diferentes componentes de cor de um bloco de dados de video. Por exemplo, o codificador de video 22 e o decodificador de video 33 são configurados para codificar explicitamente e sinalizar um indicador para os componentes luma. Além disso, o codificador video 22 e o decodificador de video 33 são configurados para codificar explicitamente e sinalizar um indicador para os componentes croma Cb (por exemplo, Croma Cb) e croma Cr (por exemplo, Croma Cr) . A sinalização do indicador de um componente pode depender do valor do indicador já sinalizado para outro componente. Por exemplo, o codificador de video 22 pode ser configurado para codificar explicitamente e sinalizar um indicador do modo PDPC para componentes croma e luma. Ao sinalizar o indicador para croma, a codificação de entropia/análise desse indicador pelo codificador de video 22 e o decodificador de video 30, respectivamente, pode depender do valor do indicador sinalizado para luma. A dependência pode ser refletida por, mas não limitada a, o valor de contexto.
[0130] Além disso, ou em alternativa, a restrição do modo PDPC pode ser realizada com base no modo de intrapredição. Por exemplo, o codificador de video 22 e o
Petição 870190087428, de 05/09/2019, pág. 86/133
68/91 decodificador de video 30 podem ser configurados para não aplicar o modo PDPC, e o codificador de vídeo 22 é configurado para não codificar explicitamente um indicador do modo PDCPC, para alguns modos de intrapredição ou para um subconjunto do subconjunto de modos de intrapredição. O codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para obter o subconjunto ao qual pertence o bloco de dados de vídeo em curso com base na proximidade do modo de intrapredição em curso aos modos específicos (por exemplo, com base em um limite) . Por exemplo, o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para determinar a proximidade do índice para um modo de intrapredição em curso ao índice para um modo de intrapredição horizontal, um modo de intrapredição vertical, um modo de intrapredição diagonal ou outro modo de intrapredição. Outro subconjunto separado pode ser atribuído às direções não angulares, como os modos planares e/ou DC intra e similares. Em um exemplo específico, o modo PDPC não é aplicado para o modo planar.
[0131] Em outro exemplo, o modo PDPC pode ser combinado com outras ferramentas ou técnicas de codificação de vídeo, como a transformada secundária e/ou filtros de suavização de amostra de referência intra descritos acima. Essa combinação pode ser permitida para determinados modos intra, e o modo com indicador do PDPC é sinalizado para os casos em que o modo PDPC é permitido. A seleção do modo intra pode ser um dos exemplos descritos acima.
[0132] Em alguns exemplos, a modelagem de contexto (ou seja, os contextos usados para codificação de entropia, como CABAC) para a codificação de entropia do
Petição 870190087428, de 05/09/2019, pág. 87/133
69/91 indicador do modo PDPC pode ser dependente do modo de intrapredição e/ou do tamanho do bloco. Por exemplo, o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para usar um contexto para codificar com entropia o indicador do modo PDPC para alguns modos de intrapredição, e o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para usar outro(s) contexto(s) para codificar com entropia o indicador do modo PDPC para outros modos de intrapredição. A atribuição de contexto pode ser baseada em um subconjunto de modos de intrapredição dos modos de intrapredição disponíveis. Ou seja, o codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para atribuir contextos usados para codificar o indicador do modo PDPC com base no subconjunto de modos de intrapredição ao qual pertence o modo de intrapredição do bloco de dados de vídeo em curso. Por exemplo, o subconjunto de modos de intrapredição pode ser de modos não angulares, modos angulares, modos aos quais se aplica o MDIS e/ou o modo planar. O codificador de vídeo 22 e o decodificador de vídeo 30 podem ser configurados para obter o subconjunto ao qual pertence o bloco de dados de vídeo em curso com base na proximidade do modo de intrapredição em curso aos modos
específicos (por exemplo, com base em um limite). Por
exemplo, o codificador de vídeo 22 e o decodificador de
vídeo 30 podem ser configurados para determinar a
proximidade do índice para um modo de intrapredição em
curso ao índice para um modo de intrapredição horizontal, um modo de intrapredição vertical, um modo de intrapredição diagonal ou outro modo de intrapredição. Outro subconjunto
Petição 870190087428, de 05/09/2019, pág. 88/133
70/91 separado pode ser atribuído às direções não angulares, como os modos planares e/ou DC intra e similares.
[0133] A figura 4 é um diagrama em blocos que ilustra um codificador de vídeo 22 exemplificativo que pode implementar as técnicas desta invenção. A figura 4 é fornecida para fins de explicação e não deve ser considerada como limitação das técnicas amplamente exemplificadas e descritas nesta publicação. No entanto, as técnicas desta invenção podem ser aplicáveis a vários padrões ou métodos de codificação.
[0134] No exemplo da figura 4, o codificador de vídeo 22 inclui uma unidade de processamento de predição 100, memória de dados de vídeo 101, uma unidade de geração residual 102, uma unidade de processamento de transformada 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de processamento de transformada inversa 110, uma unidade de reconstrução 112, uma unidade de filtro 114, um buffer de imagem decodificada 116 e uma unidade de codificação de entropia 118. A unidade de processamento de predição 100 inclui uma unidade de processamento de interpredição 120 e uma unidade de processamento de intrapredição 126. A unidade de processamento de interpredição 120 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostradas).
[0135] A memória de dados de vídeo 101 pode ser configurada para armazenar dados de vídeo a serem codificados pelos componentes do codificador de vídeo 22. Os dados de vídeo armazenados na memória de dados de vídeo 101 podem ser obtidos, por exemplo, da fonte de vídeo 18. O
Petição 870190087428, de 05/09/2019, pág. 89/133
71/91 buffer de imagem decodificada 116 pode ser uma memória de imagem de referência que armazena dados de video de referência para uso na codificação de dados de video pelo codificador de dados 22, por exemplo, em modos de intra- ou interpredição. A memória de dados de video 101 e o buffer de imagem decodificada 116 podem ser formados por qualquer um dentre uma variedade de dispositivos de memória, como a memória de acesso aleatório dinâmica (DRAM), incluindo DRAM sincrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. A memória de dados de video 101 e o buffer de imagem decodificada 116 podem ser fornecidos pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, a memória de dados de video 101 pode ser on-chip com outros componentes do codificador de video 22, ou off-chip em relação a esses componentes. A memória de dados de video 101 pode ser a mesma ou parte do meio de armazenamento 20 da figura 1.
[0136] O codificador de video 22 recebe dados de video. O codificador de video 22 pode codificar cada CTU em uma fatia de uma imagem dos dados de video. Cada uma das CTUs pode ser associada a blocos de codificação (CTBs) luma de mesmo tamanho e CTBs correspondentes da imagem. Como parte da codificação de uma CTU, a unidade de processamento de predição 100 pode realizar a segmentação para dividir as CTBs da CTU em blocos progressivamente menores. Em alguns exemplos, o codificador de video 22 pode segmentar os blocos usando uma estrutura QTBT. Os blocos menores podem ser blocos de codificação de CUs. Por exemplo, a unidade de processamento de predição 100 pode segmentar uma CTB
Petição 870190087428, de 05/09/2019, pág. 90/133
72/91 associada a uma CTU de acordo com uma estrutura em árvore. De acordo com uma ou mais técnicas da invenção, para cada respectivo nó não folha da estrutura em árvore em cada nível de profundidade da estrutura em árvore, há uma pluralidade de padrões de segmentação permitidos para o respectivo nó não folha e o bloco de vídeo correspondente ao respectivo nó-folha não é segmentado em blocos de vídeo correspondentes aos nós secundários do respectivo nó não folha de acordo com um dentre a pluralidade de padrões de segmentação admissíveis.
[0137] O codificador de vídeo 22 pode codificar as CUs de uma CTU para gerar representações codificadas das CUs (ou seja, CUs codificadas). Como parte da codificação de uma CU, a unidade de processamento de predição 100 pode segmentar os blocos de codificação associados à CU entre uma ou mais PUs da CU. Assim, cada PU pode estar associado a um bloco de predição luma e a correspondentes blocos de predição croma. O codificador de vídeo 22 e o decodificador de vídeo 30 podem suportar PUs de vários tamanhos. Como indicado acima, o tamanho de uma CU pode se referir ao tamanho do bloco de codificação luma da CU e o tamanho de uma PU pode se referir ao tamanho de um bloco de predição luma da PU. Supondo que o tamanho de uma CU particular seja de 2NX2N, o codificador de vídeo 22 e o decodificador de vídeo 30 podem suportar formatos da PU de 2NX2N ou NxN para intrapredição, e tamanhos de PU simétricos 2NX2N, 2NxN, Nx2N, NxN, ou similares para interpredição. O codificador de vídeo 22 e o decodificador de vídeo 30 podem também suportar a segmentação assimétrica para tamanhos da PU de 2NxnU, 2NxnD, nLx2N e nRx2N para interpredição.
Petição 870190087428, de 05/09/2019, pág. 91/133
73/91 [0138] A unidade de processamento de interpredição 120 pode gerar dados preditivos para uma PU, realizando interpredição em cada PU de uma CU. Os dados preditivos para a PU podem incluir blocos preditivos da PU e informações de movimento para a PU. A unidade de processamento de interpredição 120 pode realizar diferentes operações para uma PU de uma CU, dependendo se a PU está em uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as PUs são intrapreditas. Assim, se a PU estiver em uma fatia I, a unidade de processamento interpredição 120 não realiza interpredição na PU. Assim, para os blocos codificados em modo I, o bloco predito é formado usando predição espacial a partir de blocos vizinhos anteriormente codificados dentro do mesmo quadro. Se uma PU estiver em uma fatia P, a unidade de processamento de interpredição 120 pode usar interpredição unidirecional para gerar um bloco preditivo da PU. Se uma PU estiver em uma fatia B, a unidade de processamento de interpredição 120 pode usar a interpredição unidirecional ou bidirecional para gerar um bloco preditivo da PU.
[0139] A unidade de processamento de interpredição 126 pode gerar dados preditivos para uma PU, realizando interpredição na PU. Os dados preditivos para a PU podem incluir blocos preditivos da PU e vários elementos de sintaxe. A unidade de processamento de intrapredição 126 pode realizar a intrapredição em Pus nas fatias I, fatias P e fatias B. A unidade de processamento intrapredição 126 pode ser configurada para determinar um ou mais modos de codificação a aplicar ao predizer um bloco de dados de video usando a intrapredição, incluindo a aplicação de um
Petição 870190087428, de 05/09/2019, pág. 92/133
74/91 filtro de suavização de amostra de referência intra e/ou um modo PDPC. A unidade de processamento intrapredição 126 e/ou outro componente do codificador de video 22 pode ser configurada para realizar as técnicas de codificação explicita descritas acima para o filtro de suavização de amostra de referência intra e codificação de sintaxe do modo PDPC.
[0140] Para realizar a intrapredição em uma PU, a unidade de processamento de intrapredição 126 pode usar vários modos de intrapredição para gerar vários conjuntos de dados preditivos para a PU. A unidade de processamento de intrapredição 126 pode usar blocos de amostras de amostra de PUs vizinhas para gerar um bloco preditivo para uma PU. As PUs vizinhas pode estar acima, acima e à direita, acima e à esquerda, ou à esquerda da PU, assumindo uma ordem de codificação da esquerda para a direita, de cima para baixo para as PUs, CUs e CTUs. A unidade de processamento de intrapredição 126 pode usar vários números de modos de intrapredição, por exemplo, 33 modos de intrapredição direcionais. Em alguns exemplos, o número de modos de intrapredição pode depender do tamanho da região associada à PU.
[0141] A unidade de processamento de predição 100 pode selecionar os dados preditivos para PUs de uma CU dentre os dados preditivos gerados pela unidade de processamento de interpredição 120 para as PUs ou os dados preditivos gerados pela unidade de processamento de intrapredição 126 para as PUs. Em alguns exemplos, a unidade de processamento de predição 100 seleciona os dados preditivos para as PUs da CU com base nos indicadores da
Petição 870190087428, de 05/09/2019, pág. 93/133
75/91 taxa/distorção dos conjuntos de dados preditivos. Os blocos preditivos dos dados preditivos selecionados podem ser aqui referidos como os blocos preditivos selecionados.
[0142] A unidade de geração residual 102 pode gerar, com base nos blocos de codificação (por exemplo, os blocos de codificação luma, Cb e Cr) para uma CU e nos blocos preditivos selecionados (por exemplo, os blocos preditivos luma, Cb e Cr) para as PUs da CU, blocos residuais (por exemplo, blocos residuais luma, Cb e Cr) para a CU. Por exemplo, a unidade de geração residual 102 pode gerar os blocos residuais da CU, de tal forma que cada amostra nos blocos residual tenha um valor igual a uma diferença entre uma amostra em um bloco de codificação da CU e uma amostra correspondente em um bloco preditivo selecionado correspondente de uma PU da CU.
[0143] A unidade de processamento de transformada 104 pode realizar a segmentação em quadtree para segmentar os blocos residuais associados a uma CU em blocos de transformada associados a TUs da CU. Assim, uma PU pode estar associada a um bloco de transformada luma e a dois blocos de transformada croma. Os tamanhos e as posições dos blocos de transformada luma e croma das TUs de uma CU podem ou não ser baseados nos tamanhos e nas posições dos blocos de predição das PUs da CU. Uma estrutura quadtree conhecida como quadtree residual (RQT) pode incluir nós associados a cada uma das regiões. As TUs de uma CU podem corresponder a nós-folha da RQT.
[0144] A unidade de processamento de transformada
104 pode gerar blocos de coeficientes de transformada para cada TU de uma CU, mediante a aplicação de uma ou mais
Petição 870190087428, de 05/09/2019, pág. 94/133
76/91 transformadas aos blocos de transformada da TU. A unidade de processamento de transformada 104 pode aplicar várias transformadas a um bloco de transformada associado a uma TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformação de cosseno discreta (DCT), uma transformada direcional ou uma transformada conceitualmente similar a um bloco de transformada. Em alguns exemplos, a unidade de processamento de transformada 104 não aplica transformadas a um bloco de transformada. Nesses exemplos, o bloco de transformada pode ser tratado como um bloco de coeficiente de transformada.
[0145] A unidade de quantização 106 pode quantizar os coeficientes de transformada em um bloco de coeficientes. O processo de quantização pode reduzir a profundidade de bits associados a alguns ou todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para um coeficiente de transformada de w bits, em que n é maior do que m. A unidade de quantização 106 pode quantizar um bloco de coeficientes associado a uma TU de uma CU com base em um valor do parâmetro de quantização (QP) associado à CU. O codificador de vídeo 22 pode ajustar o grau de quantização aplicado aos blocos de coeficientes associados a uma CU, ajustando-se o valor do QP associado à CU. A quantização pode introduzir perda de informações. Assim, os coeficientes de transformada quantizados podem ter menor precisão do que os originais.
[0146] A unidade de quantização inversa 108 e a unidade de processamento de transformada inversa 110 podem aplicar a quantização inversa e transformadas inversas a um
Petição 870190087428, de 05/09/2019, pág. 95/133
77/91 bloco de coeficiente, respectivamente, para reconstruir um bloco residual do bloco de coeficientes. A unidade de reconstrução 112 pode adicionar o bloco residual reconstruído a amostras correspondentes de um ou mais blocos preditivos gerados pela unidade de processamento de predição 100 para produzir um bloco de transformada reconstruído associado a uma TU. Com a reconstrução dos blocos de transformada para cada TU de uma CU dessa forma, o codificador de vídeo 22 pode reconstruir os blocos de codificação da CU.
[0147] A unidade de filtro 114 pode realizar uma ou mais operações de desbloqueio para reduzir artefatos de bloqueio nos blocos de codificação associados a uma CU. O buffer de imagem decodificada 116 pode armazenar os blocos de codificação reconstruídos depois que a unidade de filtro 114 realiza as uma ou mais operações de desbloqueio nos blocos de codificação reconstruídos. A unidade de processamento de interpredição 120 pode usar uma imagem de referência que contém os blocos de codificação reconstruídos para realizar a interpredição em PUs de outras imagens. Além disso, a unidade de processamento de intrapredição 126 pode usar blocos de codificação reconstruídos no buffer de imagem decodificada 116 para realizar a intrapredição em outras PUs na mesma imagem da CU.
[0148] A unidade de codificação de entropia 118
pode receber dados de outros componentes funcionais do
codificador de vídeo 22 . Por exemplo, a unidade de
codificação de entropia 118 pode receber blocos de
coeficientes da unidade de quantização 106 e pode receber
Petição 870190087428, de 05/09/2019, pág. 96/133
78/91 elementos de sintaxe da unidade de processamento de predição 100. A unidade de codificação de entropia 118 pode realizar uma ou mais operações de codificação de entropia nos dados para gerar dados codificados com entropia. Por exemplo, a unidade de codificação de entropia 118 pode realizar uma operação CABAC, uma operação de codificação de comprimento variável adaptativa ao contexto (CAVLC), uma operação de codificação de comprimento variável a variável (V2V), uma operação de codificação aritmética binária adaptativa ao contexto e com base em sintaxe (SBAC) , uma operação de codificação de Entropia de Segmentação de Intervalo de Probabilidade (PIPE), uma operação de codificação Exponencial de Golomb ou outro tipo de operação de codificação de entropia nos dados. O codificador de video 22 pode emitir um fluxo de bits que inclui dados codificados com entropia gerados pela unidade de codificação de entropia 118. Por exemplo, o fluxo de bits pode incluir dados que representam uma RQT para uma CU.
[0149] A figura 5 é um diagrama em blocos que ilustra um codificador de video 30 exemplificativo que é configurado para implementar as técnicas desta invenção. A figura 5 é fornecida para fins de explicação e não deve ser considerada como limitação das técnicas amplamente exemplificadas e descritas nesta publicação. Para fins de explicação, esta invenção descreve o codificador de video 30 no contexto da codificação HEVC. No entanto, as técnicas desta invenção podem ser aplicáveis a outras normas ou métodos de codificação, incluindo técnicas que permitem a segmentação não quadrada e/ou a segmentação independente de luma e croma.
Petição 870190087428, de 05/09/2019, pág. 97/133
79/91 [0150] No exemplo da figura 5, o decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 150, uma memória de dados de vídeo 151, uma unidade de processamento de predição 152, uma unidade de quantização inversa 154, uma unidade de processamento de transformada inversa 156, uma unidade de reconstrução 158, uma unidade de filtro 160 e um buffer de imagem decodificada 162. A unidade de processamento de predição 152 inclui uma unidade de compensação de movimento 164 e uma unidade de processamento de intrapredição 166. Em outros exemplos, o codificador de vídeo 30 pode incluir mais, menos ou diferentes componentes funcionais.
[0151] A memória de dados de vídeo 151 pode armazenar dados de vídeo codificados, como um fluxo de bits de vídeo codificado, a serem decodificados pelos componentes do decodificador de vídeo 30. Os dados de vídeo armazenados na memória de dados de vídeo 151 podem ser obtidos, por exemplo, pelo meio de leitura por computador 16, por exemplo, a partir de uma fonte de vídeo local, como uma câmara, via comunicação em rede com fio ou sem fio de dados de vídeo, ou acessando meios físicos de armazenamento de dados. A memória de dados de vídeo 151 pode formar um buffer de imagem codificada (CPB) que armazena dados de vídeo codificados de um fluxo de bits de vídeo codificado. O buffer de imagem decodificada 162 pode ser uma memória de imagem de referência que armazena dados de vídeo de referência para uso na decodificação de dados de vídeo pelo decodificador de vídeo 30, por exemplo, em modos de intraou predição, ou para emissão. A memória de dados de vídeo 151 e o buffer de imagem decodificada 162 podem ser
Petição 870190087428, de 05/09/2019, pág. 98/133
80/91 formados por qualquer um dentre uma variedade de dispositivos de memória, como DRAM, incluindo SDRAM, MRAM, RRAM ou outros tipos de dispositivos de memória. A memória de dados de video 151 e o buffer de imagem decodificada 162 podem ser fornecidos pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, a memória de dados de video 151 pode ser on-chip com outros componentes do decodificador de video de 30, ou off-chip em relação a esses componentes. A memória de dados de video 151 pode ser a mesma ou parte do meio de armazenamento 28 da figura 1.
[0152] A memória de dados de video 151 recebe e armazena dados de video codificados (por exemplo, unidades NAL) de um fluxo de bits. A unidade de decodificação de entropia 150 pode receber dados de video codificados (por exemplo, unidades NAL) da memória de dados de video 151 e pode analisar as unidades NAL para obter elementos de sintaxe. A unidade de decodificação de entropia 150 pode decodificar com entropia os elementos de sintaxe codificados com entropia nas unidades NAL. A unidade de processamento de predição 152, a unidade de quantização inversa 154, a unidade de processamento de transformada inversa 156, a unidade de reconstrução 158 e a unidade de filtro 160 podem gerar dados de video decodificados com base nos elementos de sintaxe extraídos do fluxo de bits. A unidade de decodificação de entropia 150 pode realizar um processo geralmente reciproco ao da unidade de codificação de entropia 118.
[0153] Em conformidade com alguns exemplos dessa invenção, a unidade de decodificação de entropia 150 pode
Petição 870190087428, de 05/09/2019, pág. 99/133
81/91 determinar uma estrutura em árvore como parte da obtenção dos elementos de sintaxe do fluxo de bits. A estrutura em árvore pode especificar como um bloco de vídeo inicial, como um CTB, é segmentado em blocos de vídeo menores, como unidades de codificação. De acordo com uma ou mais técnicas dessa invenção, para cada um respectivo nó não folha da estrutura em árvore em cada nível de profundidade da estrutura em árvore, há uma pluralidade de padrões de segmentação permitidos para o respectivo nó não folha e o bloco de vídeo correspondente ao respectivo nó não folha não é segmentado em blocos de vídeo correspondente aos nós secundários do respectivo nó não folha de acordo com um dentre a pluralidade de padrões de segmentação admissíveis.
[0154] Além de obter os elementos de sintaxe do fluxo de bits, o decodificador de vídeo 30 pode realizar uma operação de reconstrução em uma CU não segmentada. Para
realizar a operação de reconstrução em uma CU, o
decodificador de vídeo 30 pode realizar uma operação de
reconstrução em cada TU da CU. Com a realização da operação
de reconstrução para cada TU da CU, o decodificador de
vídeo 30 pode reconstruir blocos residuais da CU.
[0155] Como parte da realização de uma operação de reconstrução em uma TU de uma CU, a unidade de quantização inversa 154 pode quantizar em inverso, ou seja, desquantizar, blocos de coeficientes associados à TU. Depois que a unidade de quantização inversa 154 desquantiza um bloco de coeficientes, a unidade de processamento de transformada inversa 156 pode aplicar uma ou mais transformadas inversas aos coeficientes a fim de gerar um bloco residual associado à TU. Por exemplo, a unidade de
Petição 870190087428, de 05/09/2019, pág. 100/133
82/91 processamento de transformada inversa 156 pode aplicar uma
DCT inversa, uma transformada de inteiros inversa, uma transformada Karhunen-Loeve inversa (KLT), uma transformada rotacional inversa, uma transformada direcional inversa ou outra transformada inversa ao bloco de coeficientes.
[0156] Se uma PU é codificada usando intrapredição, a unidade de processamento de intrapredição 166 pode realizar intrapredição para gerar blocos preditivos da PU. A unidade de processamento de intrapredição 166 pode usar um modo de intrapredição para gerar os blocos preditivos da PU com base em blocos espacialmente vizinhos das amostras. A unidade de processamento de intrapredição 166 pode determinar o modo de intrapredição para a PU com base em um ou mais elementos de sintaxe obtidos a partir do fluxo de bits. A unidade de processamento de intrapredição 166 pode ser configurada para determinar um ou mais modos de codificação a aplicar ao predizer um bloco de dados de video usando a intrapredição, incluindo a aplicação de um filtro de suavização de amostra de referência intra e/ou um modo PDPC. A unidade de processamento de intrapredição 166 e/ou outro componente do decodificador de video 30 pode ser configurada para realizar as técnicas de codificação explicita descritas acima para o filtro de suavização de amostra de referência intra e codificação de sintaxe do modo PDPC.
[0157] Se uma PU for codificada usando interpredição, a unidade de decodificação de entropia 150 pode determinar as informações de movimento para a PU. A unidade de compensação de movimento 164 pode determinar,
Petição 870190087428, de 05/09/2019, pág. 101/133
83/91 com base nas informações de movimento da PU, um ou mais blocos de referência. A unidade de compensação de movimento 1647 pode gerar, com base nos um ou mais blocos de referência, blocos preditivos (por exemplo, blocos preditivos luma, Cb e Cr) para a PU.
[0158] A unidade de reconstrução 158 pode usar os blocos de transformada (por exemplo, blocos de transformada luma, Cb e Cr) para TUs de uma CU e os blocos preditivos (por exemplo, blocos luma, Cb e Cr) das PUs da CU, ou seja, os dados de intrapredição ou dados de interpredição, conforme aplicável, para reconstruir os blocos de codificação (por exemplo, os blocos de codificação luma, Cb e Cr) para a CU. Por exemplo, a unidade de reconstrução 158 pode adicionar amostras dos blocos de transformada (por exemplo, os blocos de transformada luma, Cb e Cr) a amostras correspondentes dos blocos preditivos (por exemplo, os blocos preditivos luma, Cb e Cr) para reconstruir os blocos de codificação (por exemplo, os blocos de codificação luma, Cb e Cr) da CU.
[0159] A unidade de filtro 160 pode realizar uma operação de desbloqueio para reduzir os artefatos de bloqueio associados aos blocos de codificação da CU. O decodificador de video 30 pode armazenar os blocos de codificação da CU no buffer de imagem decodificada 162. O buffer de imagem decodificada 162 pode fornecer imagens de referência para posterior compensação de movimento, intrapredição e apresentação em um dispositivo de exibição, como o dispositivo de exibição 32 da figura 1. Por exemplo, o decodificador de video 30 pode realizar, com base nos blocos no buffer de imagem decodificada 162, operações de
Petição 870190087428, de 05/09/2019, pág. 102/133
84/91 intrapredição ou interpredição para PUs de outras CUs.
[0160] A figura 6 é um fluxograma que ilustra um método de codificação exemplificativo da invenção. As técnicas da figura 6 podem ser realizadas por um ou mais componentes estruturais do codificador de vídeo 22.
[0161] Em um exemplo da invenção, o codificador de vídeo 22 pode ser configurado para determinar um modo de codificação para codificar um primeiro bloco de dados de vídeo (600) . Em um exemplo da invenção, o modo de codificação é ao menos um dentre um modo de suavização de amostra de referência intra ou um modo PDPC. O codificador de vídeo 22 também pode ser configurado para codificar explicitamente um primeiro elemento de sintaxe, indicando se o modo de codificação será usado para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite (602) . Em um exemplo da invenção, o limite é um dentre 1, 2 ou 3 coeficientes diferentes de zero. O codificador de vídeo 22 também pode sinalizar o primeiro elemento de sintaxe em um fluxo de bits de vídeo codificado (604) .
[0162] Em outro exemplo da invenção, para codificar explicitamente o primeiro elemento de sintaxe, o codificador de vídeo 22 pode ainda ser configurado para codificar explicitamente o primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco de dados de vídeo.
[0163] Em outro exemplo da invenção, para codificar explicitamente o primeiro elemento de sintaxe, o
Petição 870190087428, de 05/09/2019, pág. 103/133
85/91 codificador de video 22 pode ainda ser configurado para codificar explicitamente o primeiro elemento de sintaxe no caso em que o primeiro bloco de dados de video é maior ou igual a um tamanho predeterminado.
[0164] Em outro exemplo da invenção, o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para ambos os componentes luma e croma do primeiro bloco de dados de video. Em outro exemplo da invenção, o primeiro bloco de dados de video inclui um bloco luma de dados de video, e o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para o bloco luma de dados de video. Em outro exemplo da invenção, o primeiro bloco de dados de video não é um bloco de avanço de transformada.
[0165] Em outro exemplo da invenção, o codificador de video 22 é ainda configurado para determinar um contexto para codificação do primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco de dados de video, e codificar o primeiro elemento de sintaxe usando o contexto determinado.
[0166] Em outro exemplo da invenção, o codificador de video 22 é ainda configurado para determinar um modo de codificação para codificar um segundo bloco de dados de video; e não codificar um valor de um segundo elemento de sintaxe indicando se o modo de codificação será usado para o segundo bloco de dados de video no caso em que o segundo bloco de dados de video está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite.
Petição 870190087428, de 05/09/2019, pág. 104/133
86/91 [0167] A figura 7 é um fluxograma que ilustra um método de decodificação exemplificativo da invenção. As técnicas da figura 7 podem ser realizadas por um ou mais componentes estruturais do decodificador de vídeo 30.
[0168] Em um exemplo da invenção, o decodificador de vídeo 30 pode ser configurado para receber um primeiro bloco de dados de vídeo (700) . O decodificador de vídeo 30 também pode ser configurado para receber um primeiro elemento de sintaxe, indicando se um modo de codificação será usado para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite (702), e decodificar explicitamente o valor do primeiro elemento de sintaxe recebido (704) . Em um exemplo da invenção, o limite é um dentre 1, 2 ou 3 coeficientes diferentes de zero. O decodificador de vídeo 30 pode aplicar o modo de codificação ao primeiro bloco de dados de vídeo em conformidade com um valor do primeiro elemento de sintaxe (706) . Em um exemplo da invenção, o modo de codificação é ao menos um dentre um modo de suavização de amostra de referência intra ou um modo PDPC.
[0169] Em outro exemplo da invenção, para receber o primeiro elemento de sintaxe, o decodificador de vídeo 30 pode ainda ser configurado para receber o primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco de dados de vídeo.
[0170] Em outro exemplo da invenção, para receber o primeiro elemento de sintaxe, o decodificador de vídeo 30 pode ainda ser configurado para receber o primeiro elemento
Petição 870190087428, de 05/09/2019, pág. 105/133
87/91 de sintaxe no caso em que o primeiro bloco de dados de vídeo é maior ou igual a um tamanho predeterminado.
[0171] Em outro exemplo da invenção, o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para ambos os componentes luma e croma do primeiro bloco de dados de vídeo. Em outro exemplo, o primeiro bloco de dados de vídeo inclui um bloco luma de dados de vídeo, e o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para o bloco luma de dados de vídeo. Em outro exemplo, o primeiro bloco dos dados de vídeo não é um bloco de avanço de transformada.
[0172] Em outro exemplo da invenção, o decodificador de vídeo 30 é ainda configurado para determinar um contexto para codificação do primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco de dados de vídeo, e codificar o primeiro elemento de sintaxe usando o contexto determinado.
[0173] Em outro exemplo da invenção, o decodificador de vídeo 30 pode ser configurado para receber um segundo bloco de dados de vídeo; inferir um valor de um segundo elemento de sintaxe indicando se o modo de codificação será usado para o segundo bloco de dados do vídeo no caso em que o segundo bloco os dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite; e aplicar o modo de codificação em conformidade com o valor inferido do segundo elemento de sintaxe.
Petição 870190087428, de 05/09/2019, pág. 106/133
88/91
[0174] Alguns aspectos dessa invenção foram
descritos em relação às extensões do padrão HEVC e o modelo
de software JEM em estudo pela JVET para fins de
ilustração. No entanto, as técnicas descritas neste
documento podem ser úteis para outros processos de
codificação de video, incluindo outros processos de
codificação de video padrão ou de propriedade em
desenvolvimento ou ainda não desenvolvido.
[0175] Um codificador de video, como descrito neste documento, pode se referir a um codificador de video ou um decodificador de video. Do mesmo modo, a unidade de codificação de video pode se referir a um codificador de video ou um decodificador de video. Da mesma forma, a codificação de video pode se referir à codificação de video ou decodificação de video, conforme aplicável.
[0176] Deve ser reconhecido que, dependendo do exemplo, alguns atos ou eventos de qualquer uma das técnicas descritas aqui podem ser realizados em uma sequência diferente, podem ser adicionados, mesclados ou deixados de fora completamente (por exemplo, nem todos os atos ou eventos descritos são necessários para a prática das técnicas) . Além disso, em alguns exemplos, os atos ou eventos podem ser realizados simultaneamente, por exemplo, por meio de processamento multi-threaded, processamento com interrupção ou vários processadores, em vez de sequencialmente.
[0177] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação destes. Se implementadas em software, as funções podem ser armazenadas ou transmitidas
Petição 870190087428, de 05/09/2019, pág. 107/133
89/91 como uma ou mais instruções ou código em um meio de leitura por computador e executadas por uma unidade de processamento baseada em hardware. Os meios de leitura por computador podem incluir meios de armazenamento de leitura por computador, o que corresponde a um meio tangível, como meios de armazenamento de dados, ou meios de comunicação, incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Desta forma, os meios de leitura por computador geralmente podem corresponder a (1) meios de armazenamento de leitura por computador tangíveis que são não transitórios ou (2) um meio de comunicação como um sinal ou onda portadora. Meios de armazenamento de dados podem ser quaisquer meios disponíveis que possam ser acessados através de um ou mais computadores ou um ou mais processadores para obter instruções, código e/ou estruturas de dados para implementação das técnicas descritas nesta publicação. Um produto de programa de computador pode incluir um meio de leitura por computador.
[0178] A titulo de exemplo, e não de limitação, esses meios de armazenamento de leitura por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser usado para transportar ou armazenar código de programa desejado sob a forma de instruções ou estruturas de dados, e que possa ser acessado por um computador. Além disso, qualquer conexão é apropriadamente denominada um meio de
Petição 870190087428, de 05/09/2019, pág. 108/133
90/91 leitura por computador. Por exemplo, se as instruções forem transmitidas a partir de um site, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra ótica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio como infravermelho, rádio e micro-ondas, então o cabo coaxial, cabo de fibra ótica, par trançado, DSL ou tecnologias sem fio, como infravermelho, rádio e microondas estão incluídos na definição de meio. Deve ser entendido, no entanto, que meios de armazenamento de leitura por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transitórios, mas se referem a meios de armazenamento tangíveis, não transitórios. Disco (disk) e disco (disc), como usados aqui, incluem disco compacto (CD), disco laser, disco ótico, disco versátil digital (DVD), disquete e disco Blu-ray, em que discos geralmente reproduzem dados magneticamente, enquanto discos reproduzem dados opticamente com lasers. Combinações dos itens acima também devem ser incluídas no âmbito dos meios de leitura por computador.
[0179] As instruções podem ser executadas por um ou mais processadores, como processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados específicos para aplicativos (ASICs), arranjos lógicos programáveis em campo (FPGAs), ou outros circuitos lógicos equivalentes discretos ou integrados. Por conseguinte, o termo processador, conforme usado neste documento, pode se referir a qualquer estrutura anteriormente mencionada ou qualquer outra estrutura adequada para implementação das técnicas descritas neste
Petição 870190087428, de 05/09/2019, pág. 109/133
91/91 documento. Além disso, em alguns exemplos, as funcionalidades descritas aqui podem ser fornecidas em módulos de hardware e/ou software configurados para codificação e decodificação, ou incorporadas em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0180] As técnicas desta invenção podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos ou unidades estão descritas nesta publicação para enfatizar aspectos funcionais dos dispositivos configurados para realizar as técnicas descritas, mas não necessariamente requerem a realização por diferentes unidades de hardware. Em vez disso, como 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, como descrito acima, em conjunto com o software e/ou firmware adequado.
[0181] Diversos exemplos foram descritos. Estes e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (13)

REIVINDICAÇÕES
1. Método de decodificação de dados de vídeo, caracterizado pelo fato de que compreende:
receber um primeiro bloco de dados de vídeo;
receber um primeiro elemento de sintaxe indicando se um modo de codificação será usado para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite, em que o modo de codificação é ao menos um dentre um modo de suavização intra-amostra de referência ou um modo de combinação de intrapredição dependente da posição (PDPC) , em que um filtro é aplicado a uma ou mais amostras de referência intra no modo de suavização de amostra de referência intra, e em que o modo PDPC aplica pesos a uma ou mais amostras de referência intra ou preditor intra;
decodificar explicitamente um valor do primeiro elemento de sintaxe recebido; e aplicar o modo de codificação ao primeiro bloco de dados de vídeo em conformidade com o valor do primeiro elemento de sintaxe.
2/13 maior ou igual a um tamanho predeterminado.
2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que receber o primeiro elemento de sintaxe compreende também receber o primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco de dados de vídeo.
3/13 receber um segundo bloco de dados de video;
inferir um valor de um segundo elemento de sintaxe indicando se o modo de codificação será usado para o segundo bloco de dados de vídeo no caso em que o segundo bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite; e aplicar o modo de codificação em conformidade com o valor inferido do segundo elemento de sintaxe.
3 coeficientes diferentes de zero.
3. Método de acordo com a reivindicação 1, caracterizado pelo fato de que receber o primeiro elemento de sintaxe compreende também receber o primeiro elemento de sintaxe no caso em que o primeiro bloco de dados de vídeo é
Petição 870190087428, de 05/09/2019, pág. 7/133
4/13 primeiro elemento de sintaxe compreende também codificar explicitamente o primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco de dados de video.
4. Método de acordo com reivindicação 1 caracterizado pelo fato de que o limite é um dentre 1, 2 ou
5/13
determinar um contexto para codificação do primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco de dados de vídeo; e codificar o primeiro elemento de sintaxe usando o contexto determinado. 18 . Método de acordo com a reivindicação 10,
caracterizado pelo fato de que compreende ainda:
determinar um modo de codificação para codificar um segundo bloco de dados de vídeo; e não codificar um valor de um segundo elemento de sintaxe indicando se o modo de codificação será usado para o segundo bloco de dados de vídeo no caso em que o segundo bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite.
19. Aparelho configurado para decodificar dados de vídeo, caracterizado pelo fato de que compreende: uma memória configurada para armazenar os dados de vídeo; e um ou mais processadores em comunicação com a
memória, os um ou mais processadores configurados para: receber um primeiro bloco dos dados de vídeo;
receber um primeiro elemento de sintaxe indicando se um modo de codificação será usado para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite, em que o modo de codificação é ao menos um dentre um modo de suavização de amostra de
Petição 870190087428, de 05/09/2019, pág. 11/133
5.
Método de acordo com reivindicação 1 caracterizado pelo fato de que o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para ambos os componentes luma e croma do primeiro bloco de dados de video.
6/13 referência intra ou um modo de combinação de intrapredição dependente da posição (PDPC), em que um filtro é aplicado a uma ou mais amostras de referência intra no modo de suavização de amostra de referência intra, e em que o modo PDPC aplica pesos a uma ou mais amostras de referência intra ou preditor intra;
decodificar explicitamente um valor do primeiro elemento de sintaxe recebido; e aplicar o modo de codificação ao primeiro bloco dos dados de vídeo em conformidade com o valor do primeiro elemento de sintaxe.
20. Aparelho de acordo com a reivindicação 19, caracterizado pelo fato de que para receber o primeiro elemento de sintaxe, os um ou mais processadores são ainda configurados para receber o primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco dos dados de vídeo.
21. Aparelho de acordo com a reivindicação 19, caracterizado pelo fato de que para receber o primeiro elemento de sintaxe, os um ou mais processadores são ainda configurados para receber o primeiro elemento de sintaxe no caso em que o primeiro bloco dos dados de vídeo é maior ou igual a um tamanho predeterminado.
22. Aparelho de acordo com a reivindicação 19, caracterizado pelo fato de que o limite é um dentre 1, 2 ou 3 coeficientes diferentes de zero.
23. Aparelho de acordo com a reivindicação 19, caracterizado pelo fato de que o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para ambos
Petição 870190087428, de 05/09/2019, pág. 12/133
6. Método de acordo com a reivindicação 1 caracterizado pelo fato de que o primeiro bloco de dados de video inclui um bloco luma de dados de video, e o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para o bloco luma de dados de video.
7/13 os componentes luma e croma do primeiro bloco dos dados de video .
24. Aparelho de acordo com a reivindicação 19, caracterizado pelo fato de que o primeiro bloco dos dados de video inclui um bloco luma dos dados de video, e em que o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para o bloco luma dos dados de video.
25. Aparelho de acordo com a reivindicação 19, caracterizado pelo fato de que o primeiro bloco dos dados de video não é um bloco de avanço de transformada.
26. Dispositivo de acordo com a reivindicação 19, caracterizado pelo fato de que os um ou mais processadores são ainda configurados para:
determinar um contexto para decodificação do primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco dos dados de video; e decodificar o primeiro elemento de sintaxe usando o contexto determinado.
27. Dispositivo de acordo com a reivindicação 19, caracterizado pelo fato de que os um ou mais processadores são ainda configurados para:
receber um segundo bloco dos dados de video;
inferir um valor de um segundo elemento de sintaxe indicando se o modo de codificação será usado para o segundo bloco dos dados de video no caso em que o segundo bloco dos dados de video está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite; e
Petição 870190087428, de 05/09/2019, pág. 13/133
7. Método de acordo com a reivindicação 1 caracterizado pelo fato de que o primeiro bloco de dados de video não é um bloco de avanço de transformada.
8/13 aplicar o modo de codificação em conformidade com o valor inferido do segundo elemento de sintaxe.
28. Aparelho configurado para codificar dados de video, caracterizado pelo fato de que compreende:
uma memória configurada para armazenar os dados de video; e um ou mais processadores em comunicação com a memória, os um ou mais processadores configurados para:
determinar um modo de codificação para codificar um primeiro bloco de dados de video, em que o modo de codificação é ao menos um dentre um modo de suavização de amostra de referência intra ou um modo de combinação de intrapredição dependente da posição (PDPC), em que um filtro é aplicado a uma ou mais amostras de referência intra no modo de suavização de amostra de referência intra, e em que o modo PDPC aplica pesos a uma ou mais amostras de referência intra e preditor intra;
codificar explicitamente um primeiro elemento de sintaxe indicando se o modo de codificação será usado para o primeiro bloco dos dados de video no caso em que o primeiro bloco dos dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; e sinalizar o primeiro elemento de sintaxe em um fluxo de bits de video codificado.
29. Aparelho de acordo com a reivindicação 28, caracterizado pelo fato de que para codificar explicitamente o primeiro elemento de sintaxe, os um ou mais processadores são ainda configurados para codificar explicitamente o primeiro elemento de sintaxe com base em
Petição 870190087428, de 05/09/2019, pág. 14/133
8. Método de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda:
determinar um contexto para decodificação do primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco de dados de video; e decodificar o primeiro elemento de sintaxe usando o contexto determinado.
9/13 um modo de intrapredição usado para codificar o primeiro bloco dos dados de video.
30. Aparelho de acordo com a reivindicação 28, caracterizado pelo fato de que para codificar explicitamente o primeiro elemento de sintaxe, os um ou mais processadores são ainda configurados para codificar explicitamente o primeiro elemento de sintaxe no caso em que o primeiro bloco dos dados de video é maior ou igual a um tamanho predeterminado.
31 . Aparelho de acordo com a reivindicação 28, caracterizado pelo fato de que o limite é um dentre 1, 2 ou 3 coeficientes diferentes de zero. 32 . Aparelho de acordo com a reivindicação 28, caracterizado pelo fato de que o número de coeficientes de transformada diferentes de zero inclui o número de
coeficientes de transformada diferentes de zero para ambos os componentes luma e croma do primeiro bloco dos dados de video.
33. Aparelho de acordo com a reivindicação 28, caracterizado pelo fato de que o primeiro bloco dos dados de video inclui um bloco luma dos dados de video, e em que o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para o bloco luma dos dados de video.
34. Aparelho de acordo com a reivindicação 28, caracterizado pelo fato de que o primeiro bloco dos dados de video não é um bloco de avanço de transformada.
35. Dispositivo de acordo com a reivindicação
28, caracterizado pelo fato de que os um ou mais
Petição 870190087428, de 05/09/2019, pág. 15/133
9. Método de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda:
Petição 870190087428, de 05/09/2019, pág. 8/133
10/13 processadores são ainda configurados para:
determinar um contexto para codificação do primeiro elemento de sintaxe com base em um modo de intrapredição usado para codificar o primeiro bloco dos dados de vídeo; e codificar o primeiro elemento de sintaxe usando o contexto determinado.
36. Dispositivo de acordo com a reivindicação 28, caracterizado pelo fato de que os um ou mais processadores são ainda configurados para:
determinar um modo de codificação para codificar um segundo bloco dos dados de vídeo; e não codificar um valor de um segundo elemento de sintaxe indicando se o modo de codificação será usado para o segundo bloco dos dados de vídeo no caso em que o segundo bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero inferior ao limite.
37. Aparelho configurado para decodificar dados de vídeo, caracterizado pelo fato de que compreende:
meio para receber um primeiro bloco de dados de vídeo;
meio para receber um primeiro elemento de sintaxe indicando se um modo de codificação será usado para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite, em que o modo de codificação é ao menos um dentre um modo de suavização de amostra de referência intra ou um modo de combinação de intrapredição
Petição 870190087428, de 05/09/2019, pág. 16/133
10. Método de codificação de dados de vídeo, caracterizado pelo fato de que compreende:
determinar um modo de codificação para codificar um primeiro bloco de dados de vídeo, em que o modo de codificação é ao menos um dentre um modo de suavização de amostra de referência intra ou um modo de combinação de intrapredição dependente da posição (PDPC), em que um filtro é aplicado a uma ou mais amostras de referência intra no modo de suavização de amostra de referência intra, e em que o modo PDPC aplica pesos a uma ou mais amostras de referência intra e preditor intra;
codificar explicitamente um primeiro elemento de sintaxe indicando se o modo de codificação será usado para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; e sinalizar o primeiro elemento de sintaxe em um fluxo de bits de vídeo codificado.
11/13 dependente da posição (PDPC), em que um filtro é aplicado a uma ou mais amostras de referência intra no modo de suavização de amostra de referência intra, e em que o modo PDPC aplica pesos a uma ou mais amostras de referência intra ou preditor intra; e meio para decodificar explicitamente um valor do primeiro elemento de sintaxe recebido; e meio para aplicar o modo de codificação ao primeiro bloco de dados de video em conformidade com o valor do primeiro elemento de sintaxe.
38. Aparelho configurado para codificar dados de video, caracterizado pelo fato de que compreende:
meio para determinar um modo de codificação para codificar um primeiro bloco de dados de video, em que o modo de codificação é ao menos um dentre um modo de suavização de amostra de referência intra ou um modo de combinação de intrapredição dependente da posição (PDPC), em que um filtro é aplicado a uma ou mais amostras de referência intra no modo de suavização de amostra de referência intra, e em que o modo PDPC aplica pesos a uma ou mais amostras de referência intra e preditor intra;
meio para codificar explicitamente um primeiro elemento de sintaxe indicando se o modo de codificação será usado para o primeiro bloco de dados de video no caso em que o primeiro bloco de dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; e meio para sinalizar o primeiro elemento de sintaxe em um fluxo de bits de video codificado.
39. Meio de armazenamento de leitura por
Petição 870190087428, de 05/09/2019, pág. 17/133
11. Método de acordo com a reivindicação 10, caracterizado pelo fato de que codificar explicitamente o
Petição 870190087428, de 05/09/2019, pág. 9/133
12/13 computador armazenando instruções que, quando executadas, levam um ou mais processadores de um dispositivo configurado para decodificar dados de vídeo a:
receber um primeiro bloco dos dados de vídeo;
receber um primeiro elemento de sintaxe indicando se um modo de codificação será usado para o primeiro bloco de dados de vídeo no caso em que o primeiro bloco de dados de vídeo está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite, em que o modo de codificação é ao menos um dentre um modo de suavização de amostra de referência intra ou um modo de combinação de intrapredição dependente da posição (PDPC) , em que um filtro é aplicado a uma ou mais amostras de referência intra no modo de suavização de amostra de referência intra, e em que o modo PDPC aplica pesos a uma ou mais amostras de referência intra ou preditor intra;
decodificar explicitamente um valor do primeiro elemento de sintaxe recebido; e aplicar o modo de codificação ao primeiro bloco dos dados de vídeo em conformidade com o valor do primeiro elemento de sintaxe.
40. Meio de armazenamento de leitura por computador armazenando instruções que, quando executadas, levam um ou mais processadores de um dispositivo configurado para codificar dados de vídeo a:
determinar um modo de codificação para codificar um primeiro bloco de dados de vídeo, em que o modo de codificação é ao menos um dentre um modo de suavização de amostra de referência intra ou um modo de combinação de intrapredição dependente da posição (PDPC), em que um
Petição 870190087428, de 05/09/2019, pág. 18/133
12. Método de acordo com a reivindicação 10, caracterizado pelo fato de que codificar explicitamente o primeiro elemento de sintaxe compreende também codificar explicitamente o primeiro elemento de sintaxe no caso em que o primeiro bloco de dados de video é maior ou igual a um tamanho predeterminado.
13. Método de acordo com a reivindicação 10, caracterizado pelo fato de que o limite é um dentre 1, 2 ou 3 coeficientes diferentes de zero.
14. Método de acordo com a reivindicação 10, caracterizado pelo fato de que o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para ambos os componentes luma e croma do primeiro bloco de dados de video.
15. Método de acordo com a reivindicação 10, caracterizado pelo fato de que o primeiro bloco de dados de video inclui um bloco luma de dados de video, e o número de coeficientes de transformada diferentes de zero inclui o número de coeficientes de transformada diferentes de zero para o bloco luma de dados de video.
16. Método de acordo com a reivindicação 10, caracterizado pelo fato de que o primeiro bloco de dados de video não é um bloco de avanço de transformada.
17. Método de acordo com a reivindicação 10, caracterizado pelo fato de que compreende ainda:
Petição 870190087428, de 05/09/2019, pág. 10/133
13/13 filtro é aplicado a uma ou mais amostras de referência intra no modo de suavização de amostra de referência intra, e em que o modo PDPC aplica pesos a uma ou mais amostras de referência intra e preditor intra;
codificar explicitamente um primeiro elemento de sintaxe indicando se o modo de codificação será usado para o primeiro bloco dos dados de video no caso em que o primeiro bloco dos dados de video está associado a um número de coeficientes de transformada diferentes de zero maior que ou igual a um limite; e sinalizar o primeiro elemento de sintaxe em um fluxo de bits de video codificado
BR112019018464A 2017-03-10 2018-03-08 indicador de filtragem intra na codificação de vídeo BR112019018464A2 (pt)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762470099P 2017-03-10 2017-03-10
US201762475739P 2017-03-23 2017-03-23
US15/914,514 US11146795B2 (en) 2017-03-10 2018-03-07 Intra filtering flag in video coding
PCT/US2018/021495 WO2018165397A1 (en) 2017-03-10 2018-03-08 Intra filtering flag in video coding

Publications (1)

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

Family

ID=63445216

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019018464A BR112019018464A2 (pt) 2017-03-10 2018-03-08 indicador de filtragem intra na codificação de vídeo

Country Status (7)

Country Link
US (2) US11146795B2 (pt)
EP (1) EP3593531A1 (pt)
CN (2) CN114554201A (pt)
BR (1) BR112019018464A2 (pt)
SG (1) SG11201906877QA (pt)
TW (1) TWI788331B (pt)
WO (1) WO2018165397A1 (pt)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107197257B (zh) * 2010-12-08 2020-09-08 Lg 电子株式会社 由编码装置和解码装置执行的内预测方法
US11146795B2 (en) 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
US10951908B2 (en) * 2017-05-24 2021-03-16 Lg Electronics Inc. Method and device for decoding image according to intra prediction in image coding system
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
GB2567249A (en) * 2017-10-09 2019-04-10 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
US10841578B2 (en) * 2018-02-12 2020-11-17 Tencent America LLC Method and apparatus for using an intra prediction coding tool for intra prediction of non-square blocks in video compression
CN110515761B (zh) * 2018-05-22 2022-06-03 杭州海康威视数字技术股份有限公司 一种数据获取方法及装置
US10645396B2 (en) * 2018-06-04 2020-05-05 Tencent America LLC Method and apparatus for implicit transform splitting
US10567752B2 (en) * 2018-07-02 2020-02-18 Tencent America LLC Method and apparatus for intra prediction for non-square blocks in video compression
RU2767513C1 (ru) * 2018-12-28 2022-03-17 Телефонактиеболагет Лм Эрикссон (Пабл) Способ и оборудование для проведения выбора преобразования в кодере и декодере
WO2020141984A2 (en) 2018-12-31 2020-07-09 Huawei Technologies Co., Ltd. Method and apparatus of mode- and size-dependent block-level restrictions for position dependent prediction combination
US11632557B2 (en) * 2019-01-01 2023-04-18 Lg Electronics Inc. Method and device for decoding video using residual sign related information in video coding system
EP3915258A4 (en) * 2019-03-08 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. COMMON CODING OF A PALETTE MODE USAGE DISPLAY
US11240516B2 (en) * 2019-03-20 2022-02-01 Tencent America LLC Coding mode signaling for small blocks
EP3944616B1 (en) * 2019-03-22 2024-02-07 Lg Electronics Inc. Image decoding method and device and image encoding method and device in image coding system
US11445174B2 (en) * 2019-05-06 2022-09-13 Tencent America LLC Method and apparatus for video coding
CN117354519A (zh) 2019-06-09 2024-01-05 北京字节跳动网络技术有限公司 视频编解码中的重要系数信令
CN114175662B (zh) 2019-07-20 2023-11-24 北京字节跳动网络技术有限公司 调色板模式使用指示的条件相关编解码
CN117376556A (zh) * 2019-08-14 2024-01-09 北京字节跳动网络技术有限公司 位置相关帧内预测样点滤波
US11438616B2 (en) * 2019-08-27 2022-09-06 Tencent America LLC Method and apparatus for video coding
EP4018651A4 (en) * 2019-09-02 2023-02-22 Huawei Technologies Co., Ltd. ENCODER, DECODER AND RELATED METHODS OF FILTER MODIFICATION IN A GENERAL INTRA PREDICTION PROCESS
KR20210031296A (ko) * 2019-09-11 2021-03-19 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20230117266A (ko) * 2019-10-11 2023-08-07 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 4:4:4 크로마 포맷의 비디오 코딩 방법 및 장치
WO2021134759A1 (en) * 2020-01-02 2021-07-08 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods of symmetric mode dependent intra smoothing when wide angle intra prediction is activated
GB2590729A (en) * 2020-01-03 2021-07-07 British Broadcasting Corp Transform skip in video coding and decoding
US20230099292A1 (en) * 2021-09-29 2023-03-30 Malini MANOCHA Detection and management of dysfunctions in subterranean operations

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088802A (en) 1997-06-04 2000-07-11 Spyrus, Inc. Peripheral device with integrated security functionality
US7783901B2 (en) 2001-12-05 2010-08-24 At&T Intellectual Property Ii, L.P. Network security device and method
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US8457200B2 (en) 2006-07-07 2013-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Video data management
US8621601B2 (en) 2008-05-21 2013-12-31 Sandisk Technologies Inc. Systems for authentication for access to software development kit for a peripheral device
WO2011127964A2 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus for intra predicting a block, apparatus for reconstructing a block of a picture, apparatus for reconstructing a block of a picture by intra prediction
US9172968B2 (en) * 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
CN102857752B (zh) 2011-07-01 2016-03-30 华为技术有限公司 一种像素预测方法和装置
US9154796B2 (en) * 2011-11-04 2015-10-06 Qualcomm Incorporated Intra-mode video coding
US9237358B2 (en) * 2011-11-08 2016-01-12 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US10681036B2 (en) 2014-03-28 2020-06-09 Ncr Corporation Composite security interconnect device and methods
US10445710B2 (en) 2014-08-26 2019-10-15 Ncr Corporation Security device key management
WO2016154963A1 (en) 2015-04-01 2016-10-06 Mediatek Inc. Methods for chroma coding in video codec
US10425648B2 (en) 2015-09-29 2019-09-24 Qualcomm Incorporated Video intra-prediction using position-dependent prediction combination for video coding
CN109076243B (zh) 2016-05-04 2022-01-25 夏普株式会社 用于对变换数据进行编码的系统和方法
US20180199062A1 (en) 2017-01-11 2018-07-12 Qualcomm Incorporated Intra prediction techniques for video coding
US11146795B2 (en) * 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding

Also Published As

Publication number Publication date
US20200021818A1 (en) 2020-01-16
TWI788331B (zh) 2023-01-01
EP3593531A1 (en) 2020-01-15
CN110393010B (zh) 2022-04-01
TW202312737A (zh) 2023-03-16
CN110393010A (zh) 2019-10-29
WO2018165397A1 (en) 2018-09-13
US20180262763A1 (en) 2018-09-13
TW201841503A (zh) 2018-11-16
US11146795B2 (en) 2021-10-12
CN114554201A (zh) 2022-05-27
SG11201906877QA (en) 2019-09-27

Similar Documents

Publication Publication Date Title
BR112019018464A2 (pt) indicador de filtragem intra na codificação de vídeo
CA3063559C (en) Intra filtering applied together with transform processing in video coding
KR102471979B1 (ko) 비디오 코딩을 위한 방법 및 장치
CN108781282B (zh) 一种解码视频数据的方法、设备及存储介质
BR112021000352A2 (pt) Combinação de intrapredição dependente de posição com intrapredição de ângulo amplo
BR112019013645A2 (pt) estrutura em árvore multi-tipo para codificação de vídeo
BR112019014090A2 (pt) técnicas de intraprevisão para codificação de vídeo
BR112020019715A2 (pt) combinação de intrapredição dependente de posição estendida com modos angulares
BR112019013705A2 (pt) predição temporal de filtro de laço adaptativo modificada para suporte de escalabilidade temporal
BR112016027428B1 (pt) Inicialização de paleta de preditor em codificação de vídeo com base em paleta
TW201830964A (zh) 基於在視訊寫碼中之一預測模式導出雙邊濾波器資訊
BR112016027420B1 (pt) Codificação de sequências de execução com evasão em codificação de vídeo baseada em paleta
BR112014009431B1 (pt) Método para codificar dados de vídeo, aparelho para codificar vídeo e memória legível por computador
BR112021004124A2 (pt) método de decodificação de vídeo e decodificador de vídeo
JP7505017B2 (ja) ビデオコーディングのための方法および装置
BR112020016913A2 (pt) Transformação de variação espacial dependente de posição para codificação de vídeo
WO2023044868A1 (zh) 视频编解码方法、设备、系统、及存储介质
TWI844181B (zh) 視頻寫碼中之內濾波旗標
BR112017016012B1 (pt) Múltiplas transformadas melhoradas para residual de predição

Legal Events

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