BR112021012949A2 - Aparelho, método de predição intra de bloco de imagem, dispositivo para codificar ou decodificar imagem e gravação não transitória - Google Patents

Aparelho, método de predição intra de bloco de imagem, dispositivo para codificar ou decodificar imagem e gravação não transitória Download PDF

Info

Publication number
BR112021012949A2
BR112021012949A2 BR112021012949-9A BR112021012949A BR112021012949A2 BR 112021012949 A2 BR112021012949 A2 BR 112021012949A2 BR 112021012949 A BR112021012949 A BR 112021012949A BR 112021012949 A2 BR112021012949 A2 BR 112021012949A2
Authority
BR
Brazil
Prior art keywords
sample value
value
intra prediction
reference sample
intra
Prior art date
Application number
BR112021012949-9A
Other languages
English (en)
Inventor
Alexey Konstantinovich Filippov
Vasily Alexeevich Rufitskiy
Jianle Chen
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021012949A2 publication Critical patent/BR112021012949A2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

APARELHO, MÉTODO DE PREDIÇÃO INTRA DE BLOCO DE IMAGEM, DISPOSITIVO PARA CODIFICAR OU DECODIFICAR IMAGEM E GRAVAÇÃO NÃO TRANSITÓRIA. Um aparelho, um método de predição intra de um bloco de uma imagem, um dispositivo para codificar ou decodificar uma imagem e um meio de gravação não transitória são fornecidos. O método de predição intra de um bloco atual inclui: obter um valor de amostra predita de um ou mais valores de amostras de referência ao usar um modo de predição intra; obter pelo menos um valor de amostra de referência adicional de acordo com o modo de predição intra; e obter um valor de amostra de referência adicional limiarizado com base no valor de amostra de referência adicional. O método também inclui: calcular um valor adicional do valor de amostra de referência adicional limiarizado; multiplicar o valor de amostra predita por um fator de ponderação de amostra, resultando em um valor de amostra predita ponderada; acrescentar o valor adicional ao valor de amostra predita ponderada, resultando em um valor de amostra predita não normalizada; e normalizar o valor de amostra predita não normalizada, resultando em um valor de amostra predita normalizada. A precisão para a predição intra é aumentada.

Description

APARELHO, MÉTODO DE PREDIÇÃO INTRA DE BLOCO DE IMAGEM, DISPOSITIVO PARA CODIFICAR OU DECODIFICAR IMAGEM E GRAVAÇÃO NÃO TRANSITÓRIA CAMPO TÉCNICO
[001] A presente divulgação diz respeito ao campo técnico de codificação e decodificação de imagem e/ou de vídeo, e em particular a um aparelho, um método de predição intra de um bloco de uma imagem, um dispositivo para codificar ou decodificar uma imagem e uma gravação não transitória.
ANTECEDENTES
[002] Vídeo digital tem sido usado amplamente desde a introdução de discos DVD. Antes da transmissão o vídeo é codificado e transmitido usando um meio de transmissão. O espectador recebe o vídeo e usa um dispositivo de visualização para decodificar e exibir o vídeo. Ao longo dos anos a qualidade de vídeo tem sido aperfeiçoada, por exemplo, por causa de resoluções, profundidades de cores e taxas de quadros mais altas. Isto tem resultado em fluxos de dados maiores que atualmente são transportados comumente pela Internet e redes de comunicações móveis.
[003] Vídeos de resoluções mais altas, entretanto, tipicamente exigem mais largura de banda já que eles têm mais informação. A fim de reduzir exigências de largura de banda padrões de codificação de vídeo envolvendo compactação do vídeo têm sido introduzidos. Quando o vídeo é codificado as exigências de largura de banda (ou exigências de memória correspondente no caso de armazenamento) são reduzidas. Frequentemente esta redução implica em custo de qualidade. Assim, os padrões de codificação de vídeo tentam descobrir um equilíbrio entre exigências de largura de banda e qualidade.
[004] A Codificação de Vídeo de Alta Eficiência (HEVC) é um exemplo de um padrão de codificação de vídeo que é conhecido comumente para as pessoas versadas na técnica. Em HEVC, para dividir uma unidade de codificação (CU) em unidades de predição (PU) ou unidades de transformada (TUs). O padrão de próxima geração Codificação de Vídeo Versátil (VVC) é o projeto de vídeo conjunto mais recente das organizações de normalização do Grupo de Especialistas em Codificação de Vídeo (VCEG) ITU-T e do Grupo de Especialistas de Imagens em Movimento (MPEG) ISO/IEC, trabalhando conjuntamente em uma parceria conhecida como a Equipe Conjunta de Exploração de Vídeo (JVET). VVC é também referida como padrão ITU-T H.266/Codificação de Vídeo de Próxima Geração (NGVC). Em VVC, os conceitos de múltiplos tipos de particionamento devem ser removidos, isto é, a separação dos conceitos de CU, PU e TU exceto tal como necessário para CUs que têm um tamanho muito grande para o comprimento de transformada máximo, e suporta mais flexibilidade para formas de particionamento de CU.
[005] Processamento destas unidades de codificação (CUs) (também referidas como blocos) depende de seu tamanho, posição espacial e de um modo de codificação especificado por um codificador. Modos de codificação podem ser classificados em dois grupos de acordo com o tipo de predição: modos de predição intra e de predição inter. Modos de predição intra usam amostra da mesma imagem (também referida como quadro ou cena) para gerar amostras de referência para calcular os valores de predição para as amostras do bloco sendo reconstruído. Predição intra é também referida como predição espacial. Modos de predição inter são projetados para predição temporal e usam amostras de referência de imagens anteriores ou próximas para predizer amostra do bloco da imagem atual.
[006] Existe uma carência de aparelhos e métodos para codificação de vídeo que permitam um manuseio eficiente de um processo de predição intra.
SUMÁRIO
[007] Método de predição intra de um bloco de uma imagem, dispositivo de codificação, dispositivo de decodificação e meio legível por computador são fornecidos.
[008] Como um exemplo de um primeiro aspecto da invenção, um método de predição intra de um bloco de uma imagem é fornecido, e o método inclui: obter um valor de amostra predita de um ou mais valores de amostras de referência por meio de predição intra usando um modo de predição intra, em que o modo de predição intra é um de um modo de predição intra DC, um modo de predição intra horizontal ou um modo de predição intra vertical; obter os valores das amostras de referência mais próximas localizadas acima e à esquerda da amostra predita; obter, de acordo com o modo de predição intra, um ou mais valores de amostras de referência adicionais, em que: - quando o modo de predição intra é vertical, valor de amostra de referência adicional é estabelecido igual à diferença entre o valor da amostra de referência mais próxima localizada acima da amostra predita e o valor da amostra de referência esquerda superior, - quando o modo de predição intra é horizontal,
valor de amostra de referência adicional é estabelecido igual à diferença entre o valor da amostra de referência mais próxima localizada à esquerda da amostra predita e o valor da amostra de referência esquerda superior, - quando o modo de predição intra é um modo de predição intra DC, o primeiro valor de amostra de referência adicional e o segundo valor de amostra de referência adicional são obtidos ao:  estabelecer o primeiro valor de amostra de referência adicional igual ao valor da amostra de referência mais próxima localizada à esquerda da amostra predita, e  estabelecer o segundo valor de amostra de referência adicional igual ao valor da amostra de referência mais próxima localizada acima da amostra predita; limiarizar um valor de amostra de referência adicional quando o modo de predição intra é horizontal ou vertical; calcular um valor adicional:  como uma soma ponderada de a primeira amostra de referência adicional e a segunda amostra de referência adicional quando o modo de predição intra é um modo de predição intra DC, ou  ao multiplicar fator de ponderação pelo valor de amostra de referência adicional quando o modo de predição intra é horizontal ou vertical; multiplicar o valor de amostra predita por um fator de ponderação de amostra, resultando em um valor de amostra predita ponderada, em que o fator de ponderação de amostra é estabelecido igual a um quando o modo de predição intra é horizontal ou vertical; acrescentar um valor adicional ao valor de amostra predita ponderada, resultando em um valor de amostra predita não normalizada; e normalizar o valor de amostra predita não normalizada por meio de um deslocamento aritmético para a direita de uma representação inteira do valor de amostra predita não normalizada, resultando em um valor de amostra predita normalizada.
[009] Como uma forma de implementação do primeiro aspecto, o método inclui adicionalmente derivação dos valores mínimo e máximo de uma amostra predita, onde limiarização de um valor de amostra de referência adicional inclui: obter valor de amostra de referência esquerda superior; e atualizar o valor de amostra de referência adicional, compreendendo uma verificação se ele é maior que um valor limite superior ou menor que um limite inferior, em que: - quando o valor de amostra de referência esquerda superior é maior que o valor de amostra predita, o limite superior é obtido ao subtrair valor de amostra predita do valor máximo da amostra predita, o valor de amostra de referência adicional atualizado é estabelecido igual ao máximo de dois valores,  o primeiro valor é o valor de amostra de referência adicional, e  o segundo valor é o limite superior, - de outro modo, o limite inferior é obtido ao subtrair valor de amostra predita do valor mínimo da amostra predita, o valor de amostra de referência adicional atualizado é estabelecido igual ao mínimo de dois valores,  o primeiro valor é o valor de amostra de referência adicional, e  o segundo valor é o limite inferior.
[010] Como um exemplo de um segundo aspecto da invenção, um método de predição intra de um bloco de uma imagem é fornecido, e o método inclui: obter um modo de predição intra de um bloco atual; e realizar combinação de predição dependente de posição (PDPC) com base na amostra superior ou amostra esquerda quando o modo de predição intra é modo DC ou modo planar, amostra esquerda superior não é usada para combinação de predição dependente de posição (PDPC).
[011] Como um exemplo de um terceiro aspecto da invenção, um método de predição intra de um bloco de uma imagem é fornecido, e o método inclui: obter um modo de predição intra de um bloco atual; operação de recorte em combinação de predição dependente de posição (PDPC) é realizada quando o modo de predição intra é modo de predição intra horizontal ou modo de predição intra vertical, e não é realizada quando o modo de predição intra é modo DC ou modo planar.
[012] Como uma forma de implementação do terceiro aspecto, a operação de recorte em PDPC é realizada somente quando o modo de predição intra é o modo de predição intra horizontal ou o modo de predição intra vertical. Por exemplo, quando predModeIntra é igual a INTRA_ANGULAR18 ou INTRA_ANGULAR50: predSamples[ x ][ y ] = clip1Cmp( ( refL[ x ][ y ] *
wL[ x ] + refT[ x ][ y ] * wT[ y ] - p[ −1 ][ −1 ] * wTL[ x ][ y ] + ( 64 − wL[ x ] − wT[ y ] + wTL[ x ][ y ] ) * predSamples[ x ][ y ] + 32 ) >> 6 ); em que predModeIntra é usado para indicar o modo de predição intra, {x,y} definem posição de uma amostra predita, wT, wL e wTL são pesos associados com amostras de referência de acordo com a posição definida.
[013] O método de acordo com o primeiro aspecto ou qualquer modalidade possível do primeiro aspecto, o segundo aspecto ou qualquer modalidade possível do segundo aspecto, ou o terceiro aspecto ou qualquer modalidade possível do terceiro aspecto, pode ser realizado pelo aparelho de acordo com o quarto aspecto da invenção.
[014] De acordo com um quinto aspecto a invenção diz respeito a um aparelho para decodificar um fluxo de vídeo e inclui um processador e uma memória. A memória armazena instruções que induzem o processador para realizar o método de acordo com o primeiro aspecto ou qualquer modalidade possível do primeiro aspecto, o segundo aspecto ou qualquer modalidade possível do segundo aspecto, ou o terceiro aspecto ou qualquer modalidade possível do terceiro aspecto.
[015] De acordo com um sexto aspecto a invenção diz respeito a um aparelho para codificar um fluxo de vídeo e inclui um processador e uma memória. A memória armazena instruções que induzem o processador para realizar o método de acordo com o primeiro aspecto ou qualquer modalidade possível do primeiro aspecto, o segundo aspecto ou qualquer modalidade possível do segundo aspecto, ou o terceiro aspecto ou qualquer modalidade possível do terceiro aspecto.
[016] De acordo com um sétimo aspecto, um meio de armazenamento legível por computador tendo instruções armazenadas no mesmo que quando executadas induzem um ou mais processadores configurados para codificar dados de vídeo é proposto. As instruções induzem o um ou mais processadores para realizar um método de acordo com o primeiro aspecto ou qualquer modalidade possível do primeiro aspecto, o segundo aspecto ou qualquer modalidade possível do segundo aspecto, ou o terceiro aspecto ou qualquer modalidade possível do terceiro aspecto.
[017] De acordo com um oitavo aspecto, a invenção diz respeito a um programa de computador compreendendo código de programa para realizar o método de acordo com o primeiro aspecto ou qualquer modalidade possível do primeiro aspecto, o segundo aspecto ou qualquer modalidade possível do segundo aspecto, ou o terceiro aspecto ou qualquer modalidade possível do terceiro aspecto quando executado em um computador.
[018] Detalhes de uma ou mais modalidades são expostos nos desenhos anexos e na descrição a seguir. Outros recursos, objetivos e vantagens estarão aparentes a partir da descrição, desenhos e reivindicações.
DESCRIÇÃO RESUMIDA DOS DESENHOS
[019] As modalidades seguintes da invenção são descritas com mais detalhes com referência para as figuras e desenhos anexos, nos quais: a figura 1A é um diagrama de blocos mostrando um exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção; a figura 1B é um diagrama de blocos mostrando outro exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção; a figura 2 é um diagrama de blocos mostrando um exemplo de um codificador de vídeo configurado para implementar modalidades da invenção; a figura 3 é um diagrama de blocos mostrando uma estrutura de exemplo de um decodificador de vídeo configurado para implementar modalidades da invenção; a figura 4 é um diagrama de blocos ilustrando um exemplo de um aparelho de codificação ou um aparelho de decodificação; a figura 5 é um diagrama de blocos ilustrando outro exemplo de um aparelho de codificação ou um aparelho de decodificação; a figura 6 ilustra um exemplo de direções e modos de predição intra Angular e o valor associado de pang para direções de predição vertical; a figura 7 ilustra um exemplo de Transformação de pref para p1,ref para um bloco 4x4; a figura 8 ilustra um exemplo de Construção de p1,ref para predição angular horizontal; a figura 9 ilustra um exemplo de Construção de p1,ref para predição angular vertical; a figura 10A ilustra um exemplo de direções de predição intra Angular e os modos de predição intra associados em JEM e BMS-1; a figura 10B ilustra um exemplo de direções de predição intra Angular e os modos de predição intra associados em
VTM-2; a figura 10C ilustra um exemplo de direções de predição intra Angular e os modos de predição intra associados em VTM-3; a figura 11 ilustra um exemplo de direções de predição intra Angular e os modos de predição intra associados em HEVC; a figura 12 ilustra um exemplo de QTBT explicado; a figura 13A ilustra um exemplo de coordenadas para modos de predição intra vertical e horizontal; a figura 13B ilustra um exemplo de pesos de PDPC de modo DC para as posições (0, 0) e (1, 0) dentro de um bloco 4x4; a figura 14 ilustra um exemplo de predição intra de um bloco a partir de amostras de referência do lado de referência principal; a figura 15 ilustra um exemplo de pesos de PDPC de modo DC para as posições (0, 0) e (1, 0) dentro de um bloco 4x4; a figura 16 ilustra um exemplo de predição intra de um bloco de amostras; a figura 17 ilustra um exemplo em que amostras de referência são usadas pelo processo de predição intra para produzir amostras preditas; a figura 18 é um diagrama de blocos mostrando uma estrutura de exemplo de um aparelho para predição intra para produzir amostras preditas; a figura 19 é um diagrama de blocos mostrando uma estrutura de exemplo de um sistema de fornecimento de conteúdo 3100 que realiza um serviço de entrega de conteúdo; e a figura 20 é um diagrama de blocos mostrando uma estrutura de um exemplo de um dispositivo terminal.
[020] No exposto a seguir números de referência idênticos se referem a recursos idênticos ou pelo menos equivalentes funcionalmente se não especificado explicitamente de outro modo.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[021] Definições de Acrônimos e Glossário JEM Modelo de Exploração Conjunta (a base de códigos de software para exploração de codificação de vídeo futura) JVET Equipe Conjunta de Especialistas em Vídeo LUT Tabela de Pesquisa PDPC Combinação de predição dependente de posição PPS Conjunto de parâmetros de imagem QT Árvore Quaternária QTBT Árvore Quaternária mais Árvore Binária RDO Otimização de Distorção de Taxa ROM Memória Somente de Leitura SPS Conjunto de parâmetros de sequência VTM Modelo de Teste de VVC VVC Codificação de Vídeo Versátil, o projeto de padronização desenvolvido por JVET. CTU / CTB Unidade de Árvore de Codificação / Bloco de Árvore de Codificação CU / CB Unidade de Codificação / Bloco de Codificação PU / PB Unidade de Predição / Bloco de Predição TU/TB Unidade de Transformada / Bloco de Transformada HEVC Codificação de Vídeo de Alta Eficiência.
[022] Na descrição seguinte, referência é feita para as figuras anexas, as quais formam parte da divulgação, e que mostram, a título de ilustração, aspectos específicos de modalidades da invenção ou aspectos específicos em que modalidades da presente invenção podem ser usadas. É entendido que modalidades da invenção podem ser usadas em outros aspectos e compreendem mudanças estruturais ou lógicas não representadas nas figuras. A descrição detalhada a seguir, portanto, não é para ser considerada com um sentido de limitação, e o escopo da presente invenção é definido pelas reivindicações anexas.
[023] Por exemplo, é entendido que uma divulgação em conexão com um método descrito também pode se manter verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma ou uma pluralidade de etapas de método específicas forem descritas, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar a uma ou pluralidade de etapas descritas de método (por exemplo, uma unidade realizando a uma ou pluralidade de etapas, ou cada uma de uma pluralidade de unidades realizando uma ou mais da pluralidade de etapas), mesmo se tal uma ou mais unidades não forem descritas ou ilustradas explicitamente nas figuras. Por outro lado, por exemplo, se um aparelho específico for descrito com base em uma ou em uma pluralidade de unidades, por exemplo, unidades funcionais, um método correspondente pode incluir uma etapa para realizar a funcionalidade da uma ou da pluralidade de unidades (por exemplo, uma etapa realizando a funcionalidade da uma ou da pluralidade de unidades, ou cada uma de uma pluralidade de etapas realizando a funcionalidade de uma ou mais da pluralidade de unidades), mesmo se tal uma ou pluralidade de etapas não forem descritas ou ilustradas explicitamente nas figuras. Adicionalmente, é entendido que os recursos das várias modalidades e/ou aspectos exemplares descritos neste documento podem ser combinados uns com os outros, a não ser que notado especificamente de outro modo.
[024] Codificação de vídeo tipicamente se refere ao processamento de uma sequência de imagens, as quais formam o vídeo ou sequência de vídeo. Em vez do termo “imagem” o termo “quadro” ou “cena” pode ser usado como sinônimo no campo de codificação de vídeo. Codificação de vídeo (ou codificação de uma maneira geral) compreende duas partes, isto é, codificação de vídeo e decodificação de vídeo. Codificação de vídeo é realizada no lado de origem, tipicamente compreendendo processamento (por exemplo, por compactação) das imagens de vídeo originais para reduzir a quantidade de dados exigidos para representar as imagens de vídeo (para armazenamento e/ou transmissão mais eficiente). Decodificação de vídeo é realizada no lado de destino e tipicamente compreende o processamento inverso comparado ao do codificador para reconstruir as imagens de vídeo. Modalidades se referindo a “codificação” de imagens de vídeo (ou imagens de uma maneira geral) devem ser entendidas como se referindo à “codificação” ou “decodificação” de imagens de vídeo ou de respectivas sequências de vídeo. A combinação de a parte de codificação e a parte de decodificação é também referida como CODEC
(Codificação e Decodificação).
[025] Em caso de codificação de vídeo sem perda, as imagens de vídeo originais podem ser reconstruídas, isto é, as imagens de vídeo reconstruídas têm a mesma qualidade das imagens de vídeo originais (assumindo que não existe perda de transmissão ou outra perda de dados durante armazenamento ou transmissão). Em caso de codificação de vídeo com perda, compactação adicional, por exemplo, por meio de quantização, é realizada, para reduzir a quantidade de dados representando as imagens de vídeo, as quais não podem ser completamente reconstruídas no decodificador, isto é, a qualidade das imagens de vídeo reconstruídas é inferior ou pior quando comparada à qualidade das imagens de vídeo originais.
[026] Vários padrões de codificação de vídeo pertencem ao grupo de “codecs de vídeo híbridos com perda” (isto é, combinam predição espacial e temporal no domínio da amostra e codificação de transformada 2D para aplicar quantização no domínio da transformada). Cada imagem de uma sequência de vídeo tipicamente é particionada em um conjunto de blocos não se sobrepondo e a codificação tipicamente é realizada em um nível de bloco. Em outras palavras, no codificador o vídeo tipicamente é processado, isto é, codificado, em um nível de bloco (bloco de vídeo), por exemplo, ao usar predição espacial (intra imagem) e/ou predição temporal (inter imagem) para gerar um bloco de predição, subtrair o bloco de predição do bloco atual (bloco processado atualmente/a ser processado) para obter um bloco residual, transformar o bloco residual e quantizar o bloco residual no domínio da transformada para reduzir a quantidade de dados a ser transmitidos (compactação), enquanto que no decodificador o processamento inverso comparado ao do codificador é aplicado ao bloco codificado ou compactado para reconstruir o bloco atual para representação. Além disso, o codificador duplica o laço de processamento de decodificador de tal maneira que ambos gerarão predições idênticas (por exemplo, predições intra e inter) e/ou reconstruções para processamento, isto é, codificação, dos blocos subsequentes.
[027] Nas modalidades seguintes de um sistema de codificação de vídeo 10, um codificador de vídeo 20 e um decodificador de vídeo 30 são descritos com base nas figuras 1 a 3.
[028] A figura 1A é um diagrama de blocos esquemático ilustrando um sistema de codificação de exemplo 10, por exemplo, um sistema de codificação de vídeo 10 (ou resumidamente sistema de codificação 10), que pode utilizar técnicas do presente pedido. O codificador de vídeo 20 (ou resumidamente codificador 20) e o decodificador de vídeo 30 (ou resumidamente decodificador 30) do sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar técnicas de acordo com vários exemplos descritos no presente pedido.
[029] Tal como mostrado na figura 1A, o sistema de codificação 10 compreende um dispositivo de origem 12 configurado para fornecer os dados de imagem codificados 21, por exemplo, para um dispositivo de destino 14 para decodificar os dados de imagem codificados 21.
[030] O dispositivo de origem 12 compreende um codificador 20, e adicionalmente, isto é, opcionalmente, pode compreender uma fonte de imagem 16, um pré-processador (ou unidade de pré-processamento) 18, por exemplo, uma pré- processador de imagem 18, e uma interface de comunicação ou unidade de comunicação 22.
[031] A fonte de imagem 16 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, uma câmera para capturar uma imagem de mundo real, e/ou qualquer tipo de dispositivo de geração de imagem, por exemplo, um processador de gráficos de computador para gerar uma imagem animada de computador, ou qualquer tipo de outro dispositivo para obter e/ou fornecer uma imagem de mundo real, uma imagem gerada por computador (por exemplo, um conteúdo de tela, uma imagem de realidade virtual (VR)) e/ou qualquer combinação das mesmas (por exemplo, uma imagem de realidade aumentada (AR)). A fonte de imagem pode ser qualquer tipo de memória ou armazenamento armazenando qualquer uma das imagens mencionadas anteriormente.
[032] Em distinção ao pré-processador 18 e ao processamento realizado pela unidade de pré-processamento 18, a imagem ou os dados de imagem 17 também podem ser referidos como a imagem bruta ou os dados de imagem bruta
17.
[033] O pré-processador 18 é configurado para receber os dados de imagem (bruta) 17 e para realizar pré- processamento nos dados de imagem 17 para obter uma imagem pré-processada 19 ou os dados de imagem pré-processados 19. Pré-processamento realizado pelo pré-processador 18 pode compreender, por exemplo, aparo, conversão de formato de cores (por exemplo, de RGB para YCbCr), correção de cor ou remoção de ruído. Pode ser entendido que a unidade de pré- processamento 18 pode ser componente opcional.
[034] O codificador de vídeo 20 é configurado para receber os dados de imagem pré-processados 19 e fornecer os dados de imagem codificados 21 (detalhes adicionais serão descritos a seguir, por exemplo, com base na figura 2).
[035] A interface de comunicação 22 do dispositivo de origem 12 pode ser configurada para receber os dados de imagem codificados 21 e para transmitir os dados de imagem codificados 21 (ou qualquer versão processada adicionalmente dos mesmos) por meio do canal de comunicação 13 para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta.
[036] O dispositivo de destino 14 compreende um decodificador 30 (por exemplo, um decodificador de vídeo 30), e adicionalmente, isto é, opcionalmente, pode compreender uma interface de comunicação ou unidade de comunicação 28, um pós-processador 32 (ou a unidade de pós- processamento 32) e um dispositivo de exibição 34.
[037] A interface de comunicação 28 do dispositivo de destino 14 é configurada para receber os dados de imagem codificados 21 (ou qualquer versão processada adicionalmente dos mesmos), por exemplo, diretamente do dispositivo de origem 12 ou de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificados, e fornecer os dados de imagem codificados 21 para o decodificador 30.
[038] A interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas para transmitir ou receber os dados de imagem codificados 21 ou os dados codificados 13 por meio de um enlace de comunicação direta entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, uma conexão direta com fio ou sem fio, ou por meio de qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação dos mesmos, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação dos mesmos.
[039] A interface de comunicação 22 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 21 em um formato apropriado, por exemplo, pacotes, e/ou processar os dados de imagem codificados usando qualquer tipo de codificação ou processamento de transmissão para transmitir por meio de um enlace de comunicação ou rede de comunicação.
[040] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para receber os dados transmitidos e processar os dados de transmissão usando qualquer tipo de decodificação ou processamento e/ou descompactação de transmissão correspondente para obter os dados de imagem codificados 21.
[041] Ambas de a interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas como interfaces de comunicação unidirecional tal como indicado pela seta para o canal de comunicação 13 na figura 1A apontando do dispositivo de origem 12 para o dispositivo de destino 14, ou interfaces de comunicação bidirecional, e podem ser configuradas, por exemplo, para enviar e receber mensagens, por exemplo, para configurar uma conexão, para confirmação e troca de qualquer outra informação relacionada com o enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificados.
[042] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer os dados de imagem decodificados 31 ou uma imagem decodificada 31 (detalhes adicionais serão descritos a seguir, por exemplo, com base na figura 3 ou na figura 5).
[043] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de imagem decodificados 31 (também chamados de dados de imagem reconstruídos), por exemplo, a imagem decodificada 31, para obter os dados de imagem pós-processados 33, por exemplo, uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode compreender, por exemplo, conversão de formato de cores (por exemplo, de YCbCr para RGB), correção de cor, aparo ou reamostragem, ou qualquer outro processamento, por exemplo, para preparar os dados de imagem decodificados 31 para exibição, por exemplo, pelo dispositivo de exibição 34.
[044] O dispositivo de exibição 34 do dispositivo de destino 14 é configurado para receber os dados de imagem pós-processados 33 para exibir a imagem, por exemplo, para um usuário ou espectador. O dispositivo de exibição 34 pode ser ou compreender qualquer tipo de tela para apresentar a imagem reconstruída, por exemplo, uma tela ou monitor integrado ou externo. As telas podem compreender, por exemplo, telas de cristal líquido (LCD), telas de diodos orgânicos emissores de luz (OLED), telas de plasma, projetores, telas de microLEDs, cristal líquido em silício (LCoS), processador de luz digital (DLP) ou qualquer outro tipo de tela.
[045] Embora a figura 1A represente o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, modalidades de dispositivos também podem compreender ambos ou ambas as funcionalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente. Em tais modalidades o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente podem ser implementados usando o mesmo hardware e/ou software ou por meio de hardware e/ou software separado ou por qualquer combinação dos mesmos.
[046] Tal como ficará aparente para uma pessoa versada na técnica com base na descrição, a existência e divisão (exata) de funcionalidades das diferentes unidades ou funcionalidades dentro do dispositivo de origem 12 e/ou do dispositivo de destino 14 tal como mostrado na figura 1A podem variar dependendo do dispositivo e aplicação real.
[047] Cada um do codificador 20 (por exemplo, um codificador de vídeo 20) e o decodificador 30 (por exemplo, um decodificador de vídeo 30) pode ser implementado como qualquer um de uma variedade de conjuntos de circuitos adequados tal como mostrado na figura 1B, tal como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados de aplicação específica (ASICs), matrizes de portas programáveis em campo (FPGAs),
lógica distinta, hardware ou quaisquer combinações dos mesmos. Se as técnicas forem implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio de armazenamento não transitório legível por computador adequado e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta divulgação. Qualquer um dos mencionados anteriormente (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado como sendo um ou mais processadores. Cada um do codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, um ou outro dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um respectivo dispositivo.
[048] O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um de uma faixa ampla de dispositivos, incluindo qualquer tipo de dispositivos portáteis ou estacionários, por exemplo, notebooks ou laptops, telefones móveis, smartphones, tablets, câmeras, computadores de mesa, conversores de sinais, televisões, dispositivos de exibição, reprodutores de mídias digitais, consoles de jogos de computador de vídeo, dispositivos de fluxo contínuo de vídeo (tais como servidores de serviços de conteúdo ou servidores de entrega de conteúdo), dispositivo receptor de difusão, dispositivo transmissor de difusão, ou algo semelhante e podem usar ou não qualquer tipo de sistema operacional. Em alguns casos, 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 fio.
[049] Em alguns casos, o sistema de codificação de vídeo 10 ilustrado na figura 1A é meramente um exemplo e as técnicas do presente pedido podem ser aplicadas para configurações de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre os dispositivos de codificação e de decodificação. Em outros exemplos, dados são recuperados de uma memória local e transferidos por meio de uma rede ou algo semelhante. Um dispositivo de codificação de vídeo pode codificar e armazenar dados em memória, e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados de memória. Em alguns exemplos, a codificação e decodificação são realizadas por dispositivos que não se comunicam um com o outro, mas simplesmente codificam dados de memória e/ou recuperam e decodificam dados de memória.
[050] A figura 1B é um diagrama ilustrativo de outro sistema de codificação de vídeo de exemplo 40 incluindo o codificador 20 da figura 2 e/ou o decodificador 30 da figura 3 de acordo com uma modalidade exemplar. O sistema 40 pode implementar técnicas de acordo com vários exemplos descritos no presente pedido. Na implementação ilustrada, o sistema de codificação de vídeo 40 pode incluir o(s) dispositivo(s) de imageamento 41, o codificador de vídeo 100, o decodificador de vídeo 30 (e/ou um codificador de vídeo implementado por meio do conjunto de circuitos lógicos 47 da(s) unidade(s) de processamento 46), uma antena 42, um ou mais processadores 43, um ou mais armazenamentos de memória 44 e/ou um dispositivo de exibição 45.
[051] Tal como ilustrado, o(s) dispositivo(s) de imageamento 41, a antena 42, a(s) unidade(s) de processamento 46, o conjunto de circuitos lógicos 47, o codificador de vídeo 20, o decodificador de vídeo 30, o(s) processador(es) 43, o(s) armazenamento(s) de memória 44 e/ou o dispositivo de exibição 45 podem ser capazes de comunicação uns com os outros. Tal como discutido, embora ilustrado com ambos do codificador de vídeo 20 e o decodificador de vídeo 30, o sistema de codificação de vídeo 40 pode incluir somente o codificador de vídeo 20 ou somente o decodificador de vídeo 30 em vários exemplos.
[052] Tal como mostrado, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir a antena 42. A antena 42 pode ser configurada para transmitir ou receber um fluxo de bits codificados de dados de vídeo, por exemplo. Adicionalmente, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir o dispositivo de exibição 45. O dispositivo de exibição 45 pode ser configurado para apresentar dados de vídeo. Tal como mostrado, em alguns exemplos, o conjunto de circuitos lógicos 47 pode ser implementado por meio da(s) unidade(s) de processamento 46. A(s) unidade(s) de processamento 46 pode(m) incluir lógica de circuito integrado de aplicação específica (ASIC), processador(es) de gráficos, processador(es) de uso geral ou algo semelhante. O sistema de codificação de vídeo 40 também pode incluir o(s) processador(es) opcional(s) 43, o(s) qual(s) de modo similar pode(m) incluir lógica de circuito integrado de aplicação específica (ASIC), processador(es) de gráficos, processador(es) de uso geral ou algo semelhante. Em alguns exemplos, o conjunto de circuitos lógicos 47 pode ser implementado por meio de hardware, hardware dedicado de codificação de vídeo ou algo semelhante, e o(s) processador(es) 43 pode(m) ser implementado(s) por meio de software de uso geral, sistemas operacionais ou algo semelhante. Além disso, o(s) armazenamento(s) de memória 44 pode(m) ser qualquer tipo de memória tal como memória volátil (por exemplo, Memória de Acesso Aleatório Estática (SRAM), Memória de Acesso Aleatório Dinâmica (DRAM), etc.) ou memória não volátil (por exemplo, memória flash, etc.) e assim por diante. Em um exemplo não limitativo, o(s) armazenamento(s) de memória 44 pode(m) ser implementado(s) por meio de memória cache. Em alguns exemplos, o conjunto de circuitos lógicos 47 pode acessar o(s) armazenamento(s) de memória 44 (para implementação de um armazenamento temporário de imagens, por exemplo). Em outros exemplos, o conjunto de circuitos lógicos 47 e/ou a(s) unidade(s) de processamento 46 pode(m) incluir armazenamentos de memória (por exemplo, cache ou algo semelhante) para a implementação de um armazenamento temporário de imagens ou algo semelhante.
[053] Em alguns exemplos, o codificador de vídeo 20 implementado por meio de conjunto de circuitos lógicos pode incluir um armazenamento temporário de imagens (por exemplo, por meio da(s) unidade(s) de processamento 46 ou do(s) armazenamento(s) de memória 44) e uma unidade de processamento gráfico (por exemplo, por meio da(s) unidade(s) de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao armazenamento temporário de imagens. A unidade de processamento gráfico pode incluir o codificador de vídeo 20 tal como implementado por meio do conjunto de circuitos lógicos 47 para incorporar os vários módulos tais como discutidos em relação à figura 2 e/ou qualquer outro sistema ou subsistema codificador descrito neste documento. O conjunto de circuitos lógicos pode ser configurado para realizar as várias operações tais como discutidas neste documento.
[054] O decodificador de vídeo 30 pode ser implementado em um modo similar àquele implementado por meio do conjunto de circuitos lógicos 47 para incorporar os vários módulos tais como discutidos em relação ao decodificador 30 da figura 3 e/ou qualquer outro sistema ou subsistema decodificador descrito neste documento. Em alguns exemplos, o decodificador de vídeo 30 implementado por meio de conjunto de circuitos lógicos pode incluir um armazenamento temporário de imagens (por exemplo, por meio da(s) unidade(s) de processamento 46 ou do(s) armazenamento(s) de memória 44)) e uma unidade de processamento gráfico (por exemplo, por meio da(s) unidade(s) de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao armazenamento temporário de imagens. A unidade de processamento gráfico pode incluir o decodificador de vídeo 30 tal como implementado por meio do conjunto de circuitos lógicos 47 para incorporar os vários módulos tais como discutidos em relação à figura 3 e/ou qualquer outro sistema ou subsistema decodificador descrito neste documento.
[055] Em alguns exemplos, a antena 42 do sistema de codificação de vídeo 40 pode ser configurada para receber um fluxo de bits codificados de dados de vídeo. Tal como discutido, o fluxo de bits codificados pode incluir dados, indicadores, valores de índices, dados de seleção de modo, ou algo semelhante associado com codificar um quadro de vídeo tal como discutido neste documento, tal como dados associados com a partição de codificação (por exemplo, coeficientes de transformada ou coeficientes de transformada quantizados, indicadores opcionais (tal como discutido) e/ou dados definindo a partição de codificação). O sistema de codificação de vídeo 40 também pode incluir o decodificador de vídeo 30 acoplado à antena 42 e configurado para decodificar o fluxo de bits codificados. O dispositivo de exibição 45 é configurado para apresentar quadros de vídeo.
[056] Por conveniência de descrição, modalidades da invenção são descritas neste documento, por exemplo, por meio de referência para Codificação de Vídeo de Alta Eficiência (HEVC) ou por meio de referência para software de Codificação de Vídeo Versátil (VVC), o padrão de codificação de vídeo de próxima geração 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) ITU-T e do Grupo de Especialistas de Imagens em Movimento (MPEG) ISO/IEC. Uma pessoa de conhecimento comum na técnica entenderá que modalidades da invenção não estão limitadas a HEVC ou VVC. Codificador e Método de Codificação
[057] A figura 2 mostra um diagrama de blocos esquemático de um codificador de vídeo de exemplo 20 que é configurado para implementar as técnicas do presente pedido. No exemplo da figura 2, o codificador de vídeo 20 compreende uma entrada 201 (ou interface de entrada 201), uma unidade de cálculo de residual 204, uma unidade de processamento de transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, uma unidade de filtro de laço 220, um armazenamento temporário (buffer) de imagens decodificadas (DPB) 230, uma unidade de seleção de modo 260, uma unidade de codificação de entropia 270 e uma saída 272 (ou interface de saída 272). A unidade de seleção de modo 260 pode incluir uma unidade de predição inter 244, uma unidade de predição intra 254 e uma unidade de partição
262. A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostradas). Um codificador de vídeo 20 tal como mostrado na figura 2 também pode ser referido como codificador de vídeo híbrido ou um codificador de vídeo de acordo com um codec de vídeo híbrido.
[058] A unidade de cálculo de residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208 e a unidade de seleção de modo 260 podem ser referidas como formando um caminho de sinal para frente do codificador 20, enquanto que a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o armazenamento temporário 216, o filtro de laço 220, o armazenamento temporário de imagens decodificadas (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 podem ser referidos como formando um caminho de sinal de volta do codificador de vídeo 20, em que o caminho de sinal de volta do codificador de vídeo 20 corresponde ao caminho de sinal do decodificador (ver o decodificador de vídeo 30 na figura 3). A unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro de laço 220, o armazenamento temporário de imagens decodificadas (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 também são referidos como formando o “decodificador incorporado” do codificador de vídeo 20. Imagens e Particionamento de Imagem (Imagens e Blocos)
[059] O codificador 20 pode ser configurado para receber, por exemplo, por meio da entrada 201, uma imagem 17 (ou os dados de imagem 17), por exemplo, imagem de uma sequência de imagens formando um vídeo ou sequência de vídeo. A imagem recebida (ou os dados de imagem recebidos) também pode ser uma imagem pré-processada 19 (ou os dados de imagem pré-processados 19). Para o propósito de simplicidade a descrição a seguir se refere à imagem 17. A imagem 17 também pode ser referida como imagem atual ou imagem a ser codificada (em particular em codificação de vídeo para distinguir a imagem atual de outras imagens, por exemplo, imagens codificadas e/ou decodificadas anteriormente da mesma sequência de vídeo, isto é, a sequência de vídeo que também compreende a imagem atual).
[060] Uma imagem (digital) é ou pode ser considerada como um conjunto ou matriz bidimensional de amostras com valores de intensidades.
Uma amostra no conjunto também pode ser referida como pixel (forma abreviada de elemento de imagem) ou um pel.
Os números de amostras nas direções (ou eixos) horizontal e vertical do conjunto ou imagem definem o tamanho e/ou resolução da imagem.
Para representação de cor, tipicamente três componentes de cor são empregados, isto é, a imagem pode ser representada ou incluir três conjuntos de amostras.
No formato ou espaço de cores RGB uma imagem compreende um conjunto de amostras de vermelho, verde e azul correspondente.
Entretanto, em codificação de vídeo cada pixel tipicamente é representado em um formato ou espaço de cores de luminância e crominância, por exemplo, YCbCr, o qual compreende um componente de luminância indicado por Y (algumas vezes também L é usado em vez de Y) e dois componentes de crominância indicados por Cb e Cr.
O componente de luminância (ou resumidamente luma) Y representa o brilho ou intensidade de nível de cinza (por exemplo, tal como em uma imagem de escala de cinza), enquanto que os dois componentes de crominância (ou resumidamente croma) Cb e Cr representam a cromaticidade ou componentes de informação de cor.
Portanto, uma imagem no formato YCbCr compreende um conjunto de amostras de luminância de valores de amostras de luminância (Y), e dois conjuntos de amostras de crominância de valores de crominância (Cb e Cr). Imagens no formato RGB podem ser convertidas ou transformadas para o formato YCbCr e vice-versa, e o processo também é conhecido como transformação ou conversão de cor.
Se uma imagem for monocromática, a imagem pode compreender somente um conjunto de amostras de luminância.
Portanto, uma imagem pode ser, por exemplo, um conjunto de amostras de luma no formato monocromático ou um conjunto de amostras de luma e dois conjuntos correspondentes de amostras de croma no formato de cores 4:2:0, 4:2:2 e 4:4:4.
[061] Modalidades do codificador de vídeo 20 podem compreender uma unidade de partição de imagem (não representada na figura 2) configurada para particionar a imagem 17 em uma pluralidade (tipicamente não se sobrepondo) dos blocos de imagem 203. Estes blocos também podem ser referidos como blocos de raiz, macroblocos (H.264/AVC) ou blocos de árvore de codificação (CTB) ou unidades de árvore de codificação (CTU) (H.265/HEVC e VVC). A unidade de partição de imagem pode ser configurada para usar o mesmo tamanho de bloco para todas as imagens de uma sequência de vídeo e a grade correspondente definindo o tamanho de bloco, ou para mudar o tamanho de bloco inter imagem ou subconjuntos ou grupos de imagens, e particionar cada imagem nos blocos correspondentes.
[062] Em modalidades adicionais, o codificador de vídeo pode ser configurado para receber diretamente um bloco 203 da imagem 17, por exemplo, um, vários ou todos os blocos formando a imagem 17. O bloco de imagem 203 também pode ser referido como bloco de imagem atual ou bloco de imagem a ser codificado.
[063] Tal como a imagem 17, o bloco de imagem 203 de novo é ou pode ser considerado como um conjunto ou matriz bidimensional de amostras com valores de intensidades (valores de amostras), contudo de menor dimensão que a imagem 17. Em outras palavras, o bloco 203 pode compreender, por exemplo, um conjunto de amostras (por exemplo, um conjunto de lumas no caso de uma imagem 17 monocromática, ou um conjunto de lumas ou de cromas no caso de uma imagem colorida) ou conjuntos de três amostras (por exemplo, um de luma e dois conjuntos de cromas no caso de uma imagem 17 colorida) ou qualquer outro número e/ou tipo de conjuntos dependendo do formato de cores aplicado. Os números de amostras nas direções (ou eixos) horizontal e vertical do bloco 203 definem o tamanho do bloco 203. Portanto, um bloco, por exemplo, pode ser um conjunto MxN (M colunas por N linhas) de amostras, ou um conjunto MxN de coeficientes de transformadas.
[064] Modalidades do codificador de vídeo 20 tal como mostrado na figura 2 podem ser configuradas para codificar a imagem 17 bloco por bloco, por exemplo, a codificação e predição são realizadas por bloco 203. Cálculo de Residual
[065] A unidade de cálculo de residual 204 pode ser configurada para calcular um bloco residual 205 (também referido como o residual 205) com base no bloco de imagem 203 e em um bloco de predição 265 (detalhes adicionais a respeito do bloco de predição 265 são fornecidos mais tarde), por exemplo, ao subtrair valores de amostras do bloco de predição 265 de valores de amostras do bloco de imagem 203, amostra por amostra (pixel por pixel) para obter o bloco residual 205 no domínio da amostra. Transformada
[066] A unidade de processamento de transformada 206 pode ser configurada para aplicar uma transformada, por exemplo, uma transformada discreta de cosseno (DCT) ou transformada discreta de seno (DST), nos valores de amostras do bloco residual 205 para obter os coeficientes de transformada 207 em um domínio da transformada. Os coeficientes de transformada 207 também podem ser referidos como coeficientes residuais de transformada e representam o bloco residual 205 no domínio da transformada.
[067] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximações inteiras de DCT/DST, tais como as transformadas especificadas para H.265/HEVC. Comparadas a uma transformada DCT ortogonal, tais aproximações inteiras tipicamente são escaladas por um certo fator. A fim de preservar a norma do bloco residual que é processado por meio de transformadas diretas e inversas, fatores de escala adicionais são aplicados como parte do processo de transformada. Os fatores de escala tipicamente são escolhidos com base em certas restrições tais como fatores de escala sendo uma potência de dois para operações de deslocamento, profundidade de bits dos coeficientes de transformada, troca compensatória entre precisão e custos de implementação, etc. Fatores de escala específicos, por exemplo, são definidos para a transformada inversa, por exemplo, pela unidade de processamento de transformada inversa 212 (e a transformada inversa correspondente, por exemplo, pela unidade de processamento de transformada inversa 312 no decodificador de vídeo 30) e fatores de escala correspondentes para a transformada direta, por exemplo, pela unidade de processamento de transformada 206, em um codificador 20 podem ser especificados de modo correspondente.
[068] Modalidades do codificador de vídeo 20 (correspondentemente da unidade de processamento de transformada 206) podem ser configuradas para produzir parâmetros de transformada, por exemplo, um tipo de transformada ou transformadas, por exemplo, diretamente ou codificados ou compactados por meio da unidade de codificação de entropia 270, de maneira que, por exemplo, o decodificador de vídeo 30 pode receber e usar os parâmetros de transformada para decodificação. Quantização
[069] A unidade de quantização 208 pode ser configurada para quantizar os coeficientes de transformada 207 para obter os coeficientes quantizados 209, por exemplo, ao aplicar quantização escalar ou quantização de vetor. Os coeficientes quantizados 209 também podem ser referidos como os coeficientes de transformada quantizados 209 ou os coeficientes residuais quantizados 209.
[070] O processo de quantização pode reduzir a profundidade de bits associada com todos ou com alguns dos coeficientes de transformada 207. Por exemplo, um coeficiente de transformada de n bits pode ser arredondado para baixo para um coeficiente de transformada de m bits durante quantização, onde n é maior que m. O grau de quantização pode ser modificado ao ajustar um parâmetro de quantização (QP). Por exemplo, para quantização escalar, escalamento diferente pode ser aplicado para alcançar quantização mais refinada ou mais grosseira. Tamanhos de etapas de quantização menores correspondem à quantização mais refinada, enquanto que tamanhos de etapas de quantização maiores correspondem à quantização mais grosseira. O tamanho de etapa de quantização aplicável pode ser indicado por meio de um parâmetro de quantização (QP).
O parâmetro de quantização, por exemplo, pode ser um índice para um conjunto predefinido de tamanhos de etapas de quantização aplicáveis.
Por exemplo, parâmetros de quantização pequenos podem corresponder à quantização fina (tamanhos de etapas de quantização pequenos) e parâmetros de quantização grandes podem corresponder à quantização grosseira (tamanhos de etapas de quantização grandes) ou vice-versa.
A quantização pode incluir divisão por um tamanho de etapa de quantização e uma quantização inversa correspondente, por exemplo, pela unidade de quantização inversa 210, pode incluir multiplicação pelo tamanho de etapa de quantização.
Modalidades de acordo com alguns padrões, por exemplo, HEVC, podem ser configuradas para usar um parâmetro de quantização para determinar o tamanho de etapa de quantização.
De uma maneira geral, o tamanho de etapa de quantização pode ser calculado com base em um parâmetro de quantização usando uma aproximação de ponto fixo de uma equação incluindo divisão.
Fatores de escala adicionais podem ser introduzidos para quantização e desquantização para restaurar a norma do bloco residual, a qual pode se tornar modificada por causa do escalamento usado na aproximação de ponto fixo da equação para tamanho de etapa de quantização e parâmetro de quantização.
Em uma implementação de exemplo, o escalamento da transformada inversa e desquantização podem ser combinados.
Alternativamente, tabelas de quantizações personalizadas podem ser usadas e sinalizadas de um codificador para um decodificador, por exemplo, em um fluxo de bits.
A quantização é uma operação com perda, em que a perda aumenta com tamanhos de etapas de quantização crescentes.
[071] Modalidades do codificador de vídeo 20 (correspondentemente da unidade de quantização 208) podem ser configuradas para produzir parâmetros de quantização (QP), por exemplo, diretamente ou codificados por meio da unidade de codificação de entropia 270, de maneira que, por exemplo, o decodificador de vídeo 30 pode receber e aplicar os parâmetros de quantização para decodificação. Quantização Inversa
[072] A unidade de quantização inversa 210 é configurada para aplicar a quantização inversa da unidade de quantização 208 nos coeficientes quantizados para obter os coeficientes desquantizados 211, por exemplo, ao aplicar o inverso do esquema de quantização aplicado pela unidade de quantização 208 com base em ou usando o mesmo tamanho de etapa de quantização da unidade de quantização 208. Os coeficientes desquantizados 211 também podem ser referidos como os coeficientes residuais desquantizados 211 e correspondem - contudo tipicamente não idênticos aos coeficientes de transformada por causa da perda por quantização - aos coeficientes de transformada 207. Transformada Inversa
[073] A unidade de processamento de transformada inversa 212 é configurada para aplicar a transformada inversa da transformada aplicada pela unidade de processamento de transformada 206, por exemplo, uma transformada discreta de cosseno (DCT) inversa ou transformada discreta de seno (DST) inversa ou outras transformadas inversas, para obter um bloco residual reconstruído 213 (ou os coeficientes desquantizados 213 correspondentes) no domínio da amostra. O bloco residual reconstruído 213 também pode ser referido como o bloco de transformada 213. Reconstrução
[074] A unidade de reconstrução 214 (por exemplo, o adicionador ou somador 214) é configurada para adicionar o bloco de transformada 213 (isto é, o bloco residual reconstruído 213) ao bloco de predição 265 para obter um bloco reconstruído 215 no domínio da amostra, por exemplo, ao somar - amostra por amostra - os valores de amostras do bloco residual reconstruído 213 e os valores de amostra do bloco de predição 265. Filtragem
[075] A unidade de filtro de laço 220 (ou resumidamente o “filtro de laço” 220) é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221, ou de uma maneira geral para filtrar amostras reconstruídas para obter amostras filtradas. A unidade de filtro de laço, por exemplo, é configurada para suavizar transições de pixels, ou melhorar de outro modo a qualidade de vídeo. A unidade de filtro de laço 220 pode compreender um ou mais filtros de laço tais como um filtro de desblocagem, um filtro de deslocamento adaptativo de amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro bilateral, um filtro de laço adaptativo (ALF), um filtro de nitidez, um filtro de suavização ou um filtro colaborativo ou qualquer combinação dos mesmos. Embora a unidade de filtro de laço 220 esteja mostrada na figura 2 como sendo um filtro em laço, em outras configurações a unidade de filtro de laço 220 pode ser implementada como um filtro pós-laço. O bloco filtrado 221 também pode ser referido como o bloco reconstruído filtrado 221. O armazenamento temporário de imagens decodificadas 230 pode armazenar os blocos de codificação reconstruídos após a unidade de filtro de laço 220 realizar as operações de filtragem nos blocos de codificação reconstruídos.
[076] Modalidades do codificador de vídeo 20 (correspondentemente da unidade de filtro de laço 220) podem ser configuradas para produzir parâmetros de filtro de laço (tal como informação de deslocamento adaptativo de amostra), por exemplo, diretamente ou codificados por meio da unidade de codificação de entropia 270, de maneira que, por exemplo, um decodificador 30 pode receber e aplicar os mesmos parâmetros de filtro de laço ou respectivos filtros de laço para decodificação. Armazenamento Temporário de Imagens Decodificadas
[077] O armazenamento temporário de imagens decodificadas (DPB) 230 pode ser uma memória que armazena imagens de referência, ou de uma maneira geral dados de imagem de referência, para codificar dados de vídeo pelo codificador de vídeo 20. O DPB 230 pode ser formado por qualquer um de uma variedade de dispositivos de memória, tais como memória de acesso aleatório dinâmica (DRAM), incluindo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. O armazenamento temporário de imagens decodificadas (DPB) 230 pode ser configurado para armazenar um ou mais blocos filtrados 221. O armazenamento temporário de imagens decodificadas 230 pode ser configurado adicionalmente para armazenar outros blocos filtrados anteriormente, por exemplo, os blocos reconstruídos e filtrados anteriormente 221, da mesma imagem atual ou de imagens diferentes, por exemplo, imagens reconstruídas anteriormente, e pode fornecer imagens completas reconstruídas, isto é, decodificadas, anteriormente (e blocos e amostras de referência correspondentes) e/ou uma imagem atual reconstruída parcialmente (e blocos e amostras de referência correspondentes), por exemplo, para predição inter. O armazenamento temporário de imagens decodificadas (DPB) 230 também pode ser configurado para armazenar um ou mais blocos reconstruídos 215 não filtrados, ou de uma maneira geral amostras reconstruídas não filtradas, por exemplo, se o bloco reconstruído 215 não for filtrado pela unidade de filtro de laço 220, ou qualquer outra versão processada adicionalmente dos blocos ou amostras reconstruídos. Seleção de Modo (Particionamento e Predição)
[078] A unidade de seleção de modo 260 compreende a unidade de partição 262, a unidade de predição inter 244 e a unidade de predição intra 254, e é configurada para receber ou obter dados de imagem original, por exemplo, um bloco original 203 (o bloco atual 203 da imagem atual 17), e dados de imagem reconstruídos, por exemplo, amostras ou blocos reconstruídos filtrados e/ou não filtrados da mesma imagem (atual) e/ou de uma ou de uma pluralidade de imagens decodificadas anteriormente, por exemplo, do armazenamento temporário de imagens decodificadas 230 ou de outros armazenamentos temporários (por exemplo, armazenamento temporário de linha, não mostrado). Os dados de imagem reconstruídos são usados como dados de imagem de referência para predição, por exemplo, predição inter ou predição intra, para obter um bloco de predição 265 ou o preditor
265.
[079] A unidade de seleção de modo 260 pode ser configurada para determinar ou selecionar um particionamento para um modo de predição de bloco atual (incluindo não particionar) e um modo de predição (por exemplo, um modo de predição intra ou inter) e gerar um bloco de predição correspondente 265, o qual é usado para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.
[080] Modalidades da unidade de seleção de modo 260 podem ser configuradas para selecionar o particionamento e o modo de predição (por exemplo, daqueles suportados pela unidade de seleção de modo 260 ou disponíveis para a mesma) que fornecem o melhor casamento ou, em outras palavras, o residual mínimo (residual mínimo significa melhor compactação para transmissão ou armazenamento), ou uma sobrecarga de sinalização mínima (sobrecarga de sinalização mínima significa melhor compactação para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 260 pode ser configurada para determinar o particionamento e modo de predição com base em otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma distorção de taxa mínima. Termos tais como “melhor”, “mínimo”, “ideal”, etc. neste contexto não se referem necessariamente a um “melhor”, “mínimo”, “ideal” total, etc., mas também podem se referir ao cumprimento de uma terminação ou critério de seleção tal como um valor excedendo ou estando abaixo de um limite ou outras restrições levando potencialmente a uma “seleção subideal”, mas reduzindo complexidade e tempo de processamento.
[081] Em outras palavras, a unidade de partição 262 pode ser configurada para particionar o bloco 203 em partições de bloco ou sub-blocos menores (que formam de novo blocos), por exemplo, usando iterativamente particionamento de árvore quaternária (QT), particionamento binário (BT) ou particionamento de árvore tripla (TT) ou qualquer combinação dos mesmos, e para realizar, por exemplo, a predição para cada uma das partições de bloco ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco 203 particionado e os modos de predição são aplicados a cada uma das partições de bloco ou sub-blocos.
[082] No exposto a seguir o particionamento (por exemplo, pela unidade de partição 260) e o processamento de predição (pela unidade de predição inter 244 e pela unidade de predição intra 254) realizados por um codificador de vídeo de exemplo 20 serão explicados com mais detalhes. Particionamento
[083] A unidade de partição 262 pode particionar (ou dividir) um bloco atual 203 em partições menores, por exemplo, blocos menores de tamanho quadrado ou retangular. Estes blocos menores (que também podem ser referidos como sub-blocos) podem ser particionados adicionalmente em partições ainda menores. Isto é também referido como particionamento de árvore ou particionamento de árvore hierárquico, em que um bloco de raiz, por exemplo, no nível de árvore de raiz 0 (nível de hierarquia 0, profundidade 0), pode ser particionado de modo repetitivo, por exemplo,
particionado em dois ou mais blocos de um próximo nível de árvore inferior, por exemplo, nós no nível de árvore 1 (nível de hierarquia 1, profundidade 1), em que estes blocos podem ser particionados de novo em dois ou mais blocos de um próximo nível inferior, por exemplo, o nível de árvore 2 (nível de hierarquia 2, profundidade 2), etc. até que o particionamento seja terminado, por exemplo, porque um critério de terminação é cumprido, por exemplo, uma profundidade de árvore máxima ou tamanho de bloco mínimo é alcançado. Blocos que não são particionados adicionalmente também são referidos como blocos de folhas ou nós de folhas da árvore. Uma árvore usando particionamento para duas partições é referida como árvore binária (BT), uma árvore usando particionamento para três partições é referida como árvore ternária (TT) e uma árvore usando particionamento para quatro partições é referida como árvore quaternária (QT).
[084] Tal como mencionado anteriormente, o termo “bloco” tal como usado neste documento pode ser uma parte, em particular uma parte quadrada ou retangular, de uma imagem. Com referência, por exemplo, para HEVC e VVC, o bloco pode ser ou corresponder a uma unidade de árvore de codificação (CTU), uma unidade de codificação (CU), unidade de predição (PU) e unidade de transformada (TU) e/ou aos blocos correspondentes, por exemplo, um bloco de árvore de codificação (CTB), um bloco de codificação (CB), um bloco de transformada (TB) ou bloco de predição (PB).
[085] Por exemplo, uma unidade de árvore de codificação (CTU) pode ser ou compreender um CTB de amostras de luma, dois CTBs correspondentes de amostras de croma de uma imagem que tem três conjuntos de amostras, ou um CTB de amostras de uma imagem monocromática ou de uma imagem que é codificada usando três planos de cores separados e estruturas de sintaxe usadas para codificar as amostras. Correspondentemente, um bloco de árvore de codificação (CTB) pode ser um bloco NxN de amostras para algum valor de N de tal maneira que a divisão de um componente em CTBs é um particionamento. Uma unidade de codificação (CU) pode ser ou compreender um bloco de codificação de amostras de luma, dois blocos de codificação correspondentes de amostras de croma de uma imagem que tem três conjuntos de amostras, ou um bloco de codificação de amostras de uma imagem monocromática ou de uma imagem que é codificada usando três planos de cores separados e estruturas de sintaxe usadas para codificar as amostras. Correspondentemente um bloco de codificação (CB) pode ser um bloco MxN de amostras para alguns valores de M e N de tal maneira que a divisão de um CTB em blocos de codificação é um particionamento.
[086] Em modalidades, por exemplo, de acordo com HEVC, uma unidade de árvore de codificação (CTU) pode ser dividida em Cus ao usar uma estrutura de árvore quaternária denotada como árvore de codificação. A decisão se é para codificar uma área de imagem usando predição inter imagem (temporal) ou intra imagem (espacial) é tomada no nível de CU. Cada CU pode ser dividida adicionalmente em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e a informação pertinente é transmitida para o decodificador em uma base de PU. Após obter o bloco residual ao aplicar o processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs) de acordo com outra estrutura de árvore quaternária similar à árvore de codificação para a CU.
[087] Em modalidades, por exemplo, de acordo com o padrão de codificação de vídeo mais recente em desenvolvimento atualmente, o qual é referido como Codificação de Vídeo Versátil (VVC), particionamento de árvore quaternária e árvore binária (QTBT) é usado para particionar um bloco de codificação. Na estrutura de bloco de QTBT, uma CU pode ter uma forma quadrada ou retangular. Por exemplo, uma unidade de árvore de codificação (CTU) é primeiro particionada por uma estrutura de árvore quaternária. Os nós folhas de árvore quaternária são particionados adicionalmente por uma estrutura de árvore binária ou de árvore ternária (ou tripla). Os nós folhas de árvore de particionamento são chamados de unidades de codificação (CUs), e essa segmentação é usada para processamento de predição e transformada sem qualquer particionamento adicional. Isto significa que a CU, PU e a TU têm o mesmo tamanho de bloco na estrutura de bloco de codificação de QTBT. Em paralelo, partição múltipla, por exemplo, particionamento de árvore tripla, também foi proposta para ser usada juntamente com a estrutura de bloco de QTBT.
[088] Em um exemplo, a unidade de seleção de modo 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das técnicas de partição descritas neste documento.
[089] Tal como descrito acima, o codificador de vídeo
20 é configurado para determinar ou selecionar o melhor ou um modo de predição ideal de um conjunto de modos de predição (predeterminados). O conjunto de modos de predição pode compreender, por exemplo, modos de predição intra e/ou modos de predição inter. Predição Intra
[090] O conjunto de modos de predição intra pode compreender 35 modos de predição intra diferentes, por exemplo, modos não direcionais tais como modo DC (ou médio) e modo planar, ou modos direcionais, por exemplo, tais como definidos em HEVC, ou podem compreender 67 modos de predição intra diferentes, por exemplo, modos não direcionais tais como modo DC (ou médio) e modo planar, ou modos direcionais, por exemplo, tais como definidos para VVC.
[091] A unidade de predição intra 254 é configurada para usar amostras reconstruídas de blocos vizinhos da mesma imagem atual para gerar um bloco de predição intra 265 de acordo com um modo de predição intra do conjunto de modos de predição intra.
[092] A unidade de predição intra 254 (ou de uma maneira geral a unidade de seleção de modo 260) é configurada adicionalmente para enviar parâmetros de predição intra (ou de uma maneira geral informação indicativa do modo de predição intra selecionado para o bloco) para a unidade de codificação de entropia 270 na forma dos elementos de sintaxe 266 para inclusão nos dados de imagem codificados 21, de maneira que, por exemplo, o decodificador de vídeo 30 pode receber e usar os parâmetros de predição para decodificação.
Predição Inter
[093] O conjunto de (ou os possíveis) modos de predição inter depende (dependem) das imagens de referência disponíveis (isto é, imagens anteriores decodificadas pelo menos parcialmente, por exemplo, armazenadas no DPB 230) e de outros parâmetros de predição inter, por exemplo, se a imagem de referência inteira ou se somente uma parte, por exemplo, uma área de janela de pesquisa em volta da área do bloco atual, da imagem de referência é usada para procurar um bloco de referência de melhor casamento e/ou, por exemplo, se interpolação de pixel é aplicada, por exemplo, interpolação de metade/parte de pixel e/ou de quarto de pixel, ou não.
[094] Adicional aos modos de predição indicados acima, modo de salto e/ou modo direto pode ser aplicado.
[095] A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento (ME) e uma unidade de compensação de movimento (MC) (ambas não mostradas na figura 2). A unidade de estimativa de movimento pode ser configurada para receber ou obter o bloco de imagem 203 (o bloco de imagem atual 203 da imagem atual 17) e uma imagem decodificada 231, ou pelo menos um ou uma pluralidade de blocos reconstruídos anteriormente, por exemplo, blocos reconstruídos de uma ou de uma pluralidade de outras/diferentes imagens decodificadas anteriormente 231, para estimativa de movimento. Por exemplo, uma sequência de vídeo pode compreender a imagem atual e as imagens decodificadas anteriormente 231, ou em outras palavras a imagem atual e as imagens decodificadas anteriormente 231 podem ser parte ou formar uma sequência de imagens formando uma sequência de vídeo.
[096] O codificador 20, por exemplo, pode ser configurado para selecionar um bloco de referência de uma pluralidade de blocos de referência das mesmas ou de imagens diferentes da pluralidade de outras imagens e fornecer uma imagem de referência (ou índice de imagem de referência) e/ou um deslocamento (deslocamento espacial) entre a posição (coordenadas x, y) do bloco de referência e a posição do bloco atual como parâmetros de predição inter para a unidade de estimativa de movimento. Este deslocamento é também chamado de vetor de movimento (MV).
[097] A unidade de compensação de movimento é configurada para obter, por exemplo, receber, um parâmetro de predição inter e para realizar predição inter com base no, ou usando o, parâmetro de predição inter para obter um bloco de predição inter 265. Compensação de movimento, realizada pela unidade de compensação de movimento, pode envolver recuperar ou gerar o bloco de predição com base no vetor de movimento/bloco determinado por meio de estimativa de movimento, possivelmente realizando interpolações para precisão de subpixel. Filtragem de interpolação pode gerar amostras de pixels adicionais de amostras de pixels conhecidas, potencialmente aumentando assim o número de blocos de predição candidatos que podem ser usados para codificar um bloco de imagem. Ao receber o vetor de movimento para a PU do bloco de imagem atual, a unidade de compensação de movimento pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma das listas de imagens de referência.
[098] Unidade de compensação de movimento também pode gerar elementos de sintaxe associados com os blocos e a fatia de vídeo para uso pelo decodificador de vídeo 30 ao decodificar os blocos de imagem da fatia de vídeo. Codificação de Entropia
[099] A unidade de codificação de entropia 270 é configurada para aplicar, por exemplo, um algoritmo ou esquema de codificação de entropia (por exemplo, um esquema de codificação de comprimento variável (VLC), um esquema de VLC adaptativo de contexto (CAVLC), um esquema de codificação aritmética, uma binarização, uma codificação aritmética binária adaptativa de contexto (CABAC), codificação aritmética binária adaptativa de contexto baseada em sintaxe (SBAC), codificação de entropia de partição de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação de entropia) ou contornar (sem compactação) os coeficientes quantizados 209, parâmetros de predição inter, parâmetros de predição intra, parâmetros de filtro de laço e/ou outros elementos de sintaxe para obter os dados de imagem codificados 21 que podem ser enviados por meio da saída 272, por exemplo, na forma de um fluxo de bits codificados 21, de maneira que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros para decodificação. O fluxo de bits codificados 21 pode ser transmitido para o decodificador de vídeo 30, ou armazenado em uma memória para transmissão ou recuperação mais tarde pelo decodificador de vídeo 30.
[0100] Outras variações estruturais do codificador de vídeo 20 podem ser usadas para codificar o fluxo de vídeo. Por exemplo, um codificador não baseado em transformada 20 pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada 206 para certos blocos ou quadros. Em outra implementação, um codificador 20 pode ter a unidade de quantização 208 e a unidade de quantização inversa 210 combinadas em uma única unidade. Decodificador e Método de Decodificação
[0101] A figura 3 mostra um exemplo de um decodificador de vídeo 30 que é configurado para implementar as técnicas do presente pedido. O decodificador de vídeo 30 é configurado para receber os dados de imagem codificados 21 (por exemplo, o fluxo de bits codificados 21), por exemplo, codificados pelo codificador 20, para obter uma imagem decodificada 331. O fluxo de bits codificados ou os dados de imagem codificados compreendem informação para decodificar os dados de imagem codificados, por exemplo, dados que representam blocos de imagem de uma fatia de vídeo codificada e elementos de sintaxe associados.
[0102] No exemplo da figura 3, o decodificador 30 compreende uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um somador 314), um filtro de laço 320, um armazenamento temporário (buffer) de imagens decodificadas (DBP) 330, uma unidade de predição inter 344 e uma unidade de predição intra 354. A unidade de predição inter 344 pode ser ou incluir uma unidade de compensação de movimento. O decodificador de vídeo 30, em alguns exemplos, pode realizar uma passagem de decodificação de uma maneira geral recíproca à passagem de codificação descrita em relação ao codificador de vídeo 100 da figura 2.
[0103] Tal como explicado com relação ao codificador 20, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro de laço 220, o armazenamento temporário de imagens decodificadas (DPB) 230, a unidade de predição inter 344 e a unidade de predição intra 354 são também referidas como formando o “decodificador incorporado” do codificador de vídeo 20. Portanto, a unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada inversa 212, a unidade de reconstrução 314 pode ser idêntica em função à unidade de reconstrução 214, o filtro de laço 320 pode ser idêntico em função ao filtro de laço 220, e o armazenamento temporário de imagens decodificadas 330 pode ser idêntico em função ao armazenamento temporário de imagens decodificadas 230. Portanto, as explicações fornecidas para as respectivas unidades e funções do codificador de vídeo 20 se aplicam correspondentemente às respectivas unidades e funções do decodificador de vídeo 30. Decodificação de Entropia
[0104] A unidade de decodificação de entropia 304 é configurada para analisar sintaticamente o fluxo de bits 21 (ou de uma maneira geral os dados de imagem codificados 21) e realizar, por exemplo, decodificação de entropia para os dados de imagem codificados 21 para obter, por exemplo, os coeficientes quantizados 309 e/ou parâmetros de codificação decodificados (não mostrados na figura 3), por exemplo, alguns ou todos de os parâmetros de predição inter (por exemplo, índice de imagem de referência e vetor de movimento), parâmetro de predição intra (por exemplo, modo ou índice de predição intra), parâmetros de transformada, parâmetros de quantização, parâmetros de filtro de laço e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 pode ser configurada para aplicar os algoritmos ou esquemas de decodificação correspondendo aos esquemas de codificação tais como descritos com relação à unidade de codificação de entropia 270 do codificador 20. A unidade de decodificação de entropia 304 pode ser configurada adicionalmente para fornecer parâmetros de predição inter, parâmetros de predição intra e/ou outros elementos de sintaxe para a unidade de seleção de modo 360 e outros parâmetros para outras unidades do decodificador 30. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo. Quantização Inversa
[0105] A unidade de quantização inversa 310 pode ser configurada para receber parâmetros de quantização (QP) (ou de uma maneira geral informação relacionada com a quantização inversa) e coeficientes quantizados dos dados de imagem codificados 21 (por exemplo, ao analisar sintaticamente e/ou decodificar, por exemplo, pela unidade de decodificação de entropia 304) e para aplicar com base nos parâmetros de quantização uma quantização inversa nos coeficientes quantizados decodificados 309 para obter os coeficientes desquantizados 311, os quais também podem ser referidos como os coeficientes de transformada 311. O processo de quantização inversa pode incluir uso de um parâmetro de quantização determinado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, igualmente, um grau de quantização inversa que deve ser aplicado. Transformada Inversa
[0106] A unidade de processamento de transformada inversa 312 pode ser configurada para receber os coeficientes desquantizados 311, também referidos como os coeficientes de transformada 311, e para aplicar uma transformada aos coeficientes desquantizados 311 a fim de obter os blocos residuais reconstruídos 213 no domínio da amostra. Os blocos residuais reconstruídos 213 também podem ser referidos como os blocos de transformada 313. A transformada pode ser uma transformada inversa, por exemplo, uma DCT inversa, uma DST inversa, uma transformada inteira inversa ou um processo de transformada inversa similar conceitualmente. A unidade de processamento de transformada inversa 312 pode ser configurada adicionalmente para receber parâmetros de transformada ou informação correspondente dos dados de imagem codificados 21 (por exemplo, ao analisar sintaticamente e/ou decodificar, por exemplo, pela unidade de decodificação de entropia 304) para determinar a transformada a ser aplicada aos coeficientes desquantizados 311. Reconstrução
[0107] A unidade de reconstrução 314 (por exemplo, o adicionador ou somador 314) pode ser configurada para adicionar o bloco residual reconstruído 313 ao bloco de predição 365 para obter um bloco reconstruído 315 no domínio da amostra, por exemplo, ao somar os valores de amostras do bloco residual reconstruído 313 e os valores de amostras do bloco de predição 365. Filtragem
[0108] A unidade de filtro de laço 320 (no laço de codificação ou após o laço de codificação) é configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, por exemplo, para suavizar transições de pixels, ou melhorar de outro modo a qualidade de vídeo. A unidade de filtro de laço 320 pode compreender um ou mais filtros de laço tais como um filtro de desblocagem, um filtro de deslocamento adaptativo de amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro bilateral, um filtro de laço adaptativo (ALF), um filtro de nitidez, um filtro de suavização ou um filtro colaborativo ou qualquer combinação dos mesmos. Embora a unidade de filtro de laço 320 esteja mostrada na figura 3 como sendo um filtro em laço, em outras configurações a unidade de filtro de laço 320 pode ser implementada como um filtro pós-laço. Armazenamento Temporário de Imagens Decodificadas
[0109] Os blocos de vídeo decodificados 321 de uma imagem são então armazenados no armazenamento temporário de imagens decodificadas 330, o qual armazena as imagens decodificadas 331 como imagens de referência para subsequente compensação de movimento para outras imagens e/ou para produzir exibição correspondentemente.
[0110] O decodificador 30 é configurado para enviar a imagem decodificada 311, por exemplo, por meio da saída
312, para apresentação ou visualização por um usuário. Predição
[0111] A unidade de predição inter 344 pode ser idêntica à unidade de predição inter 244 (em particular à unidade de compensação de movimento) e a unidade de predição intra 354 pode ser idêntica à unidade de predição inter 254 em função, e toma decisões de divisão ou particionamento e realiza predição com base nos parâmetros de particionamento e/ou de predição ou em respectiva informação recebida dos dados de imagem codificados 21 (por exemplo, ao analisar sintaticamente e/ou decodificar, por exemplo, pela unidade de decodificação de entropia 304). A unidade de seleção de modo 360 pode ser configurada para realizar a predição (predição intra ou inter) por bloco com base em blocos reconstruídos, imagens ou respectivas amostras reconstruídas (filtrados ou não filtrados) para obter o bloco de predição 365.
[0112] Quando a fatia de vídeo é codificada como uma fatia codificada de modo intra (I), a unidade de predição intra 354 da unidade de seleção de modo 360 é configurada para gerar o bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de predição intra sinalizado e em dados de blocos decodificados anteriormente da imagem atual. Quando a imagem de vídeo é codificada como uma fatia inter codificada (isto é, B ou P), a unidade de predição inter 344 (por exemplo, a unidade de compensação de movimento) da unidade de seleção de modo 360 é configurada para produzir os blocos de predição 365 para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe recebidos da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, usando técnicas de construção padrões com base em imagens de referência armazenadas no DPB 330.
[0113] A unidade de seleção de modo 360 é configurada para determinar a informação de predição para um bloco de vídeo da fatia de vídeo atual ao analisar sintaticamente os vetores de movimento e outros elementos de sintaxe, e usa a informação de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de seleção de modo 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P ou fatia GPB), informação de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado de modo inter da fatia, status de predição inter para cada bloco de vídeo codificado de modo inter da fatia e outra informação para decodificar os blocos de vídeo na fatia de vídeo atual.
[0114] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar os dados de imagem codificados 21. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem laço 320. Por exemplo, um decodificador não baseado em transformada 30 pode quantizar de modo inverso o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para certos blocos ou quadros. Em outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inverso 312 combinadas em uma única unidade.
[0115] A figura 4 é um diagrama esquemático de um dispositivo de codificação de vídeo 400 de acordo com uma modalidade da divulgação. O dispositivo de codificação de vídeo 400 é adequado para implementar as modalidades divulgadas tais como descritas neste documento. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um decodificador tal como o decodificador de vídeo 30 da figura 1A ou um codificador tal como o codificador de vídeo 20 da figura 1A.
[0116] O dispositivo de codificação de vídeo 400 compreende as portas de admissão 410 (ou as portas de entrada 410) e as unidades receptoras (Rx) 420 para receber dados; um processador, unidade lógica ou unidade central de processamento (CPU) 430 para processar os dados; as unidades transmissoras (Tx) 440 e as portas de egresso 450 (ou as portas de saída 450) para transmitir os dados; e uma memória 460 para armazenar os dados. O dispositivo de codificação de vídeo 400 também pode compreender componentes óticos para elétricos (OE) e componentes elétricos para óticos (EO) acoplados às portas de entrada 410, às unidades receptoras 420, às unidades transmissoras 440 e às portas de egresso 450 para saída ou entrada de sinais óticos ou elétricos.
[0117] O processador 430 é implementado por meio de hardware e software. O processador 430 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador de múltiplos núcleos), FPGAs, ASICs e DSPs. O processador 430 está em comunicação com as portas de entrada 410, as unidades receptoras 420, as unidades transmissoras 440, as portas de egresso 450 e com a memória 460. O processador 430 compreende um módulo de codificação 470. O módulo de codificação 470 implementa as modalidades divulgadas descritas acima. Por exemplo, o módulo de codificação 470 implementa, processa, prepara ou fornece as várias operações de codificação. A inclusão do módulo de codificação 470, portanto, fornece um melhoramento substancial para a funcionalidade do dispositivo de codificação de vídeo 400 e efetua uma transformação do dispositivo de codificação de vídeo 400 para um estado diferente. Alternativamente, o módulo de codificação 470 é implementado como instruções armazenadas na memória 460 e executadas pelo processador 430.
[0118] A memória 460 pode compreender um ou mais discos, unidades de fita e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de sobrecarga, para armazenar programas quando tais programas são selecionados para execução, e para armazenar instruções e dados que são lidos durante execução de programa. A memória 460 pode ser, por exemplo, volátil e/ou não volátil e pode ser uma memória somente de leitura (ROM), memória de acesso aleatório (RAM), memória endereçável de conteúdo ternário (TCAM) e/ou memória estática de acesso aleatório
(SRAM).
[0119] A figura 5 é um diagrama de blocos simplificado de um aparelho 500 que pode ser usado como um ou outro ou ambos do dispositivo de origem 12 e o dispositivo de destino 14 da figura 1A de acordo com uma modalidade exemplar. O aparelho 500 pode implementar técnicas do presente pedido descritas acima. O aparelho 500 pode ser na forma de um sistema de computação incluindo múltiplos dispositivos de computação, ou na forma de um único dispositivo de computação, por exemplo, um telefone móvel, um tablet, um laptop, um notebook, um computador de mesa e outros mais.
[0120] Um processador 502 no aparelho 500 pode ser uma unidade central de processamento. Alternativamente, o processador 502 pode ser qualquer outro tipo de dispositivo, ou de múltiplos dispositivos, capaz de manipular ou processar informação existindo agora ou desenvolvida futuramente. Embora as implementações divulgadas possam ser praticadas com um único processador tal como mostrado, por exemplo, o processador 502, vantagens em velocidade e eficiência podem ser alcançadas usando mais de um processador.
[0121] Uma memória 504 no aparelho 500 pode ser um dispositivo de memória somente de leitura (ROM) ou um dispositivo de memória de acesso aleatório (RAM) em uma implementação. Qualquer outro tipo adequado de dispositivo de armazenamento pode ser usado como a memória 504. A memória 504 pode incluir os códigos e dados 506 que são acessados pelo processador 502 usando um barramento 512. A memória 504 pode incluir adicionalmente um sistema operacional 508 e os programas de aplicação 510, os programas de aplicação 510 incluindo pelo menos um programa que permite ao processador 502 realizar os métodos descritos aqui. Por exemplo, os programas de aplicação 510 podem incluir as aplicações 1 a N, as quais incluem adicionalmente uma aplicação de codificação de vídeo que realiza os métodos descritos aqui. O aparelho 500 também pode incluir memória adicional na forma de um armazenamento secundário 514, o qual, por exemplo, pode ser um cartão de memória usado com um dispositivo de computação móvel. Porque as sessões de comunicação de vídeo podem conter uma quantidade significativa de informação, elas podem ser armazenadas totalmente ou em parte no armazenamento secundário 514 e carregadas na memória 504 tal como necessário para processamento.
[0122] O aparelho 500 também pode incluir um ou mais dispositivos de saída, tal como uma tela 518. A tela 518 pode ser, em um exemplo, uma tela sensível ao toque que combina uma tela com um elemento sensível ao toque que é operável para detectar entradas de toque. A tela 518 pode ser acoplada ao processador 502 por meio do barramento 512. Outros dispositivos de saída que permitem a um usuário programar ou usar de outro modo o aparelho 500 podem ser fornecidos além da tela 518 ou como uma alternativa para ela. Quando o dispositivo de saída é ou inclui uma tela, a tela pode ser implementada em vários modos, incluindo uma tela de cristal líquido (LCD), uma tela de tubo de raios catódicos (CRT), uma tela de plasma ou tela de diodo emissor de luz (LED), tal como uma tela de LED orgânico (OLED).
[0123] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de detecção de imagem 520, por exemplo, uma câmera, ou qualquer outro dispositivo de detecção de imagem 520 existindo agora ou desenvolvido futuramente que possa detectar uma imagem tal como a imagem de um usuário operando o aparelho 500. O dispositivo de detecção de imagem 520 pode ser posicionado de tal maneira que ele fica direcionado para o usuário operando o aparelho
500. Em um exemplo, a posição e eixo ótico do dispositivo de detecção de imagem 520 podem ser configurados de tal maneira que o campo de visão inclui uma área que é imediatamente adjacente à tela 518 e a partir da qual a tela 518 é visível.
[0124] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de detecção de som 522, por exemplo, um microfone, ou qualquer outro dispositivo de detecção de som existindo agora ou desenvolvido futuramente que possa detectar sons perto do aparelho 500. O dispositivo de detecção de som 522 pode ser posicionado de tal maneira que ele fica direcionado para o usuário operando o aparelho 500 e pode ser configurado para receber sons, por exemplo, fala ou outras declarações, emitidos pelo usuário enquanto o usuário opera o aparelho 500.
[0125] Embora a figura 5 represente o processador 502 e a memória 504 do aparelho 500 como estando integrados em uma única unidade, outras configurações podem ser utilizadas. As operações do processador 502 podem ser distribuídas através de múltiplas máquinas (cada máquina tendo um ou mais de processadores) que podem ser acopladas diretamente ou através de uma rede de área local ou de outra rede. A memória 504 pode ser distribuída através de múltiplas máquinas tal como uma memória baseada em rede ou memória em múltiplas máquinas realizando as operações do aparelho 500. Embora representado aqui como um único barramento, o barramento 512 do aparelho 500 pode ser composto de múltiplos barramentos. Adicionalmente, o armazenamento secundário 514 pode ser acoplado diretamente aos outros componentes do aparelho 500 ou pode ser acessado por meio de uma rede e pode compreender uma única unidade integrada tal como um cartão de memória ou múltiplas unidades tais como múltiplos cartões de memória. O aparelho 500 assim pode ser implementado em uma grande variedade de configurações.
[0126] Esquemas de codificação de vídeo tais como H.264/AVC e HEVC são projetados junto com o princípio bem sucedido de codificação de vídeo híbrida baseada em blocos. Usando este princípio uma imagem é primeiro particionada em blocos e então cada bloco é predito ao usar predição intra de imagem ou inter de imagem.
[0127] Tal como usado neste documento, o termo “bloco” pode uma parte de uma imagem ou um quadro. Por conveniência de descrição, modalidades da invenção são descritas neste documento com referência para Codificação de Vídeo de Alta Eficiência (HEVC) ou com referência para software de Codificação de Vídeo Versátil (VVC), desenvolvida 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) ITU-T e do Grupo de Especialistas de Imagens em Movimento (MPEG) ISO/IEC. Uma pessoa de conhecimento comum na técnica entenderá que modalidades da invenção não estão limitadas a HEVC ou VVC.
Ela pode se referir a uma CU, PU e TU.
Em HEVC, uma CTU é dividida em CUs ao usar uma estrutura de árvore quaternária denotada como árvore de codificação.
A decisão se é para codificar uma área de imagem usando predição inter imagem (temporal) ou intra imagem (espacial) é tomada no nível de CU.
Cada CU pode ser dividida adicionalmente em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU.
Dentro de uma PU, o mesmo processo de predição é aplicado e a informação pertinente é transmitida para o decodificador em uma base de PU.
Após obter o bloco residual ao aplicar o processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs) de acordo com outra estrutura de árvore quaternária similar à árvore de codificação para a CU.
No desenvolvimento mais novo da técnica de compactação de vídeo, particionamento de árvore quaternária e árvore binária (QTBT) é usado para particionar um bloco de codificação.
Na estrutura de blocos de QTBT, uma CU pode ter uma forma quadrada ou retangular.
Por exemplo, uma unidade de árvore de codificação (CTU) é primeiro particionada por uma estrutura de árvore quaternária.
Os nós folhas de árvore quaternária são particionados adicionalmente por uma estrutura de árvore binária.
Os nós folhas de árvore binária são chamados de unidades de codificação (CUs), e essa segmentação é usada para processamento de predição e transformada sem qualquer particionamento adicional.
Isto significa que a CU, PU e a TU têm o mesmo tamanho de bloco na estrutura de blocos de codificação de QTBT.
Em paralelo, múltiplos particionamentos, por exemplo, particionamento de árvore tripla, foram também propostos para serem usados juntamente com a estrutura de blocos de QTBT.
[0128] ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) estão estudando a potencial necessidade de padronização de tecnologia de codificação de vídeo futura com uma capacidade de compactação que excede significativamente aquela do padrão HEVC atual (incluindo suas extensões atuais e extensões de curto prazo para codificação de conteúdo de tela e codificação de faixa dinâmica alta). Os grupos estão trabalhando conjuntamente nesta atividade de exploração em um esforço de colaboração conjunta conhecido como a Equipe Conjunta de Exploração de Vídeo (JVET) para avaliar projetos de tecnologia de compactação propostos por seus especialistas nesta área.
[0129] Para predição intra direcional, modos de predição intra estão disponíveis representando ângulos de predição diferentes de diagonal para cima para diagonal para baixo. Para definição dos ângulos de predição, um valor de deslocamento pang em uma grade de 32 amostras é definido. A associação de pang ao modo correspondente de predição intra é visualizada na figura 6 para os modos de predição vertical. Para os modos de predição horizontal o esquema é virado para a direção vertical e os valores de pang são designados de modo correspondente. Tal como exposto anteriormente, todos os modos de predição angular estão disponíveis para todos os tamanhos aplicáveis de blocos de predição intra. Todos eles usam a mesma grade de 32 amostras para a definição dos ângulos de predição. A distribuição dos valores de pang na grade de 32 amostras na figura 6 revela uma resolução aumentada dos ângulos de predição junto à direção vertical e uma resolução mais grosseira dos ângulos de predição para as direções diagonais. O mesmo se aplica para as direções horizontais. Este projeto se origina da observação de que, em lotes de conteúdo de vídeo, estruturas aproximadamente horizontais e verticais reproduzem uma função importante quando comparadas às estruturas diagonais.
[0130] Enquanto que para as direções de predição horizontal e vertical a seleção de amostras a ser usadas para predição é direta, esta tarefa exige mais esforço no caso de predição angular. Para os modos 11-25, ao predizer o bloco atual Bc do conjunto de amostras de predição pref (também conhecido como lado de referência principal) em uma direção angular, amostras de ambas de a parte vertical e a horizontal de pref podem ser envolvidas. Uma vez que a determinação da localização das respectivas amostras em um e outro dos ramos de pref exige algum esforço computacional, uma referência de predição unidimensional unificada tem sido projetada para predição intra de HEVC. O esquema está mostrado na figura 7. Antes de realizar a operação de predição real, o conjunto de amostras de referência pref é mapeado para um vetor unidimensional p1,ref. A projeção que é usada para o mapeamento depende da direção indicada pelo ângulo de predição intra do respectivo modo de predição intra. Somente amostras de referência da parte de pref que é para ser usada para predição são mapeadas para p1,ref. O mapeamento real das amostras de referência para p1,ref para cada modo de predição angular está representado nas figuras 8 e 9 para as direções de predição angular horizontal e vertical, respectivamente. O conjunto de amostras de referência p1,ref é construído uma vez para o bloco predito. A predição é então derivada de duas amostras de referência vizinhas no conjunto tal como detalhado a seguir. Tal como pode ser visto nas figuras 8 e 9 o conjunto de amostras referência unidimensional não é preenchido completamente para todos os modos de predição intra. Somente as localizações que estão na faixa de projeção para a direção de predição intra correspondente são incluídas no conjunto.
[0131] A predição para ambos os modos de predição horizontal e vertical é realizada no mesmo modo somente com troca das coordenadas x e y do bloco. A predição de p1,ref é realizada com precisão de 1/32 de pixel. Dependendo do valor do parâmetro de ângulo pang, um deslocamento de amostra iidx em p1,ref e um fator de ponderação ifat para uma amostra na posição (x, y) são determinados. Aqui, a derivação para os modos verticais é fornecida. A derivação para os modos horizontais se segue de modo correspondente, trocando x e y; 𝑝 𝑖 = (𝑦 + 1) ∙ , 𝑖 = (𝑦 + 1) ∙ 𝑝 𝑚𝑜𝑑32 32 se ifat não for igual a 0, isto é, a predição não cai exatamente em uma localização de amostra completa em p1,ref, uma ponderação linear entre as duas localizações de amostras vizinhas em p1,ref é realizada como 32 − 𝑖 𝑖 𝑩 (𝑥, 𝑦) = ∙ 𝑝 , (𝑥 + 𝑖 + 1) + ∙ 𝑝 , (𝑥 + 𝑖 + 2), 32 32 com 0 ≤ x, y < Nc. Deve ser notado que os valores de iidx e de ifat dependem somente de y e por esta razão somente precisam ser calculados uma vez por linha (para modos de predição vertical).
[0132] O VTM-1.0 (Modelo de Teste Versátil) usa 35 modos intra enquanto que o BMS (Conjunto de Referências)
usa 67 modos intra. Predição intra é um mecanismo usado em muitas estruturas de codificação de vídeo para aumentar eficiência de compactação nos casos onde somente um determinado quadro pode ser envolvido.
[0133] A figura 10A mostra um exemplo de 67 modos de predição intra, por exemplo, tal como proposto para VVC, a pluralidade de modos de predição intra de 67 modos de predição intra compreendendo: modo planar (índice 0), modo DC (índice 1) e modos angulares com os índices 2 a 66, em que o modo angular inferior esquerdo na figura 10A se refere ao índice 2 e a numeração dos índices sendo incrementada até o índice 66 sendo o modo angular superior mais à direita da figura 10A.
[0134] Tal como mostrado nas figuras 10B-10C, a versão mais recente de JEM tem alguns modos correspondendo a direções de predição intra inclinadas para o lado. Para qualquer um destes modos, predizer amostras dentro de uma interpolação de bloco de um conjunto de amostras de referência vizinhas deve ser realizado, se uma posição correspondente dentro de um lado de bloco for fracionária. HEVC e VVC usam interpolação linear entre duas amostras de referência adjacentes. JEM usa filtros de interpolação de 4 derivações mais sofisticados. Coeficientes de filtro são selecionados para serem coeficientes gaussianos ou cúbicos dependendo da largura ou do valor de altura. Decisão a respeito de se é para usar largura ou altura é conciliada com a decisão a respeito de seleção de lado de referência principal: quando modo de predição intra é maior ou igual ao modo diagonal, lado superior de amostras de referência é selecionado para ser o lado de referência principal e valor de largura é selecionado para determinar filtro de interpolação em uso. De outro modo, lado de referência principal é selecionado do lado esquerdo do bloco e altura controla o processo de seleção de filtro. Especificamente, se comprimento de lado selecionado for igual ou menor que 8 amostras, interpolação cúbica de 4 derivações é aplicada. De outro modo, filtro de interpolação é um filtro gaussiano de 4 derivações.
[0135] Coeficientes de filtro específicos usados em JEM são dados na Tabela 1. Amostra predita é calculada por meio de convolução com coeficientes selecionados da Tabela 1 de acordo com deslocamento de subpixel e tipo de filtro como a seguir: 𝑠(𝑥) = (∑ (ref ∙ 𝑐 ) + 128) ≫ 8 .
[0136] Nesta equação, “>>” indica uma operação de deslocamento para a direita bit a bit.
[0137] Se filtro Cúbico for selecionado, amostra predita é recortada adicionalmente para a faixa permitida de valores, que é definida em SPS ou derivada da profundidade de bits do componente selecionado. Tabela 1: Filtros de Interpolação de Predição Intra Usados em JEM Deslocamento de Filtro cúbico Filtro de Gauss subpixel c0 c1 c2 c3 c0 c1 c2 c3 0 (inteiro) 0 256 0 0 47 161 47 1 1 -3 252 8 -1 43 161 51 1 2 -5 247 17 -3 40 160 54 2 3 -7 242 25 -4 37 159 58 2 4 -9 236 34 -5 34 158 62 2 5 -10 230 43 -7 31 156 67 2
6 -12 224 52 -8 28 154 71 3 7 -13 217 61 -9 26 151 76 3 8 -14 210 70 -10 23 149 80 4 9 -15 203 79 -11 21 146 85 4 10 -16 195 89 -12 19 142 90 5 11 -16 187 98 -13 17 139 94 6 12 -16 179 107 -14 16 135 99 6 13 -16 170 116 -14 14 131 104 7 14 -17 162 126 -15 13 127 108 8 15 -16 153 135 -16 11 123 113 9 16 (meio pixel) -16 144 144 -16 10 118 118 10 17 -16 135 153 -16 9 113 123 11 18 -15 126 162 -17 8 108 127 13 19 -14 116 170 -16 7 104 131 14 20 -14 107 179 -16 6 99 135 16 21 -13 98 187 -16 6 94 139 17 22 -12 89 195 -16 5 90 142 19 23 -11 79 203 -15 4 85 146 21 24 -10 70 210 -14 4 80 149 23 25 -9 61 217 -13 3 76 151 26 26 -8 52 224 -12 3 71 154 28 27 -7 43 230 -10 2 67 156 31 28 -5 34 236 -9 2 62 158 34 29 -4 25 242 -7 2 58 159 37 30 -3 17 247 -5 2 54 160 40 31 -1 8 252 -3 1 51 161 43
[0138] Outro conjunto de filtros de interpolação que têm precisão de 6 bits é apresentado na Tabela 2. Tabela 2: Um Conjunto de Filtros de Interpolação Com
Precisão de 6 Bits Deslocamento Filtro intra/inter Filtro gaussiano de subpixel unificado c0 c1 c2 c3 c0 c1 c2 c3 0 (inteiro) 0 64 0 0 16 32 16 0 1 -1 63 2 0 15 29 17 3 2 -2 62 4 0 14 29 18 3 3 -2 60 7 -1 14 29 18 3 4 -2 58 10 -2 14 28 18 4 5 -3 57 12 -2 13 28 19 4 6 -4 56 14 -2 12 28 20 4 7 -4 55 15 -2 12 27 20 5 8 -4 54 16 -2 11 27 21 5 9 -5 53 18 -2 11 27 21 5 10 -6 52 20 -2 10 26 22 6 11 -6 49 24 -3 10 26 22 6 12 -6 46 28 -4 9 26 23 6 13 -5 44 29 -4 9 26 23 6 14 -4 42 30 -4 8 25 24 7 15 -4 39 33 -4 8 25 24 7 16 (meio -4 36 36 -4 7 25 25 7 pixel) 17 -4 33 39 -4 7 24 25 8 18 -4 30 42 -4 7 24 25 8 19 -4 29 44 -5 6 23 26 9 20 -4 28 46 -6 6 23 26 9 21 -3 24 49 -6 6 22 26 10 22 -2 20 52 -6 6 22 26 10 23 -2 18 53 -5 5 21 27 11
24 -2 16 54 -4 5 21 27 11 25 -2 15 55 -4 5 20 27 12 26 -2 14 56 -4 4 20 28 12 27 -2 12 57 -3 4 19 28 13 28 -2 10 58 -2 4 18 28 14 29 -1 7 60 -2 3 18 29 14 30 0 4 62 -2 3 18 29 14 31 0 2 63 -1 3 17 29 15
[0139] Amostra predita de modo intra é calculada por meio de convolução com coeficientes selecionados da Tabela 2 de acordo com deslocamento de subpixel e tipo de filtro como a seguir: 𝑠(𝑥) = (∑ (ref ∙ 𝑐 ) + 32) ≫ 6 .
[0140] Nesta equação, “>>” indica uma operação de deslocamento para a direita bit a bit.
[0141] Outro conjunto de filtros de interpolação que têm precisão de 6 bits é apresentado na Tabela 3. Tabela 3: Um Conjunto de Filtros de Interpolação Com Precisão de 6 bits Deslocamento Filtro DCT-IF de Filtro Gaussiano de subpixel croma c0 c1 c2 c3 c0 c1 c2 c3 0 (inteiro) 0 64 0 0 16 32 16 0 1 -1 63 2 0 15 29 17 3 2 -2 62 4 0 15 29 17 3 3 -2 60 7 -1 14 29 18 3 4 -2 58 10 -2 13 29 18 4 5 -3 57 12 -2 13 28 19 4 6 -4 56 14 -2 13 28 19 4 7 -4 55 15 -2 12 28 20 4
8 -4 54 16 -2 11 28 20 5 9 -5 53 18 -2 11 27 21 5 10 -6 52 20 -2 10 27 22 5 11 -6 49 24 -3 9 27 22 6 12 -6 46 28 -4 9 26 23 6 13 -5 44 29 -4 9 26 23 6 14 -4 42 30 -4 8 25 24 7 15 -4 39 33 -4 8 25 24 7 16 (meio -4 36 36 -4 8 24 24 8 pixel) 17 -4 33 39 -4 7 24 25 8 18 -4 30 42 -4 7 24 25 8 19 -4 29 44 -5 6 23 26 9 20 -4 28 46 -6 6 23 26 9 21 -3 24 49 -6 6 22 27 9 22 -2 20 52 -6 5 22 27 10 23 -2 18 53 -5 5 21 27 11 24 -2 16 54 -4 5 20 28 11 25 -2 15 55 -4 4 20 28 12 26 -2 14 56 -4 4 19 28 13 27 -2 12 57 -3 4 19 28 13 28 -2 10 58 -2 4 18 29 13 29 -1 7 60 -2 3 18 29 14 30 0 4 62 -2 3 17 29 15 31 0 2 63 -1 3 17 29 15
[0142] A figura 11 ilustra um diagrama esquemático de uma pluralidade de modos de predição intra usados no esquema HEVC UIP. Para os blocos de luminância, os modos de predição intra podem compreender até 36 modos de predição intra, os quais podem incluir três modos não direcionais e 33 modos direcionais. Os modos não direcionais podem compreender um modo de predição planar, um modo de predição médio (DC) e um modo de predição de croma a partir de luma (LM). O modo de predição planar pode realizar predições ao assumir uma superfície de amplitude de bloco com uma inclinação horizontal e vertical derivada do limite do bloco. O modo de predição DC pode realizar predições ao assumir uma superfície de bloco plana com um valor casando com o valor médio do limite de bloco. O modo de predição LM pode realizar predições ao assumir um valor de croma para o bloco que casa com o valor de luminância para o bloco. Os modos direcionais podem realizar predições com base em blocos adjacentes tal como mostrado na figura 11.
[0143] H.264/AVC e HEVC especificam que um filtro passa-baixa pode ser aplicado para ter como referência amostras anteriores sendo usadas em processo de predição intra. Uma decisão sobre se é para usar ou não filtro de amostra de referência é determinada por meio de modo de predição intra e tamanho de bloco. Este mecanismo pode ser referido como Suavização Intra Dependente de Modo (MDIS). Também existe uma pluralidade de métodos relacionados com MDIS. Por exemplo, o método de Suavização de Amostra de Referência Adaptativa (ARSS) pode sinalizar explicitamente (isto é, uma sinalização é incluída em um fluxo de bits) ou implicitamente (isto é, por exemplo, ocultação de dados é usada para evitar colocar uma sinalização em um fluxo de bits para reduzir sobrecarga de sinalização) se as amostras de predição forem filtradas. Neste caso, o codificador pode tomar a decisão a respeito de suavização ao testar o custo de Distorção de Taxa (RD) para todos os potenciais modos de predição intra.
[0144] Em VVC, um mecanismo de particionamento baseado em ambas de árvore quaternária e árvore binária e conhecido como QTBT é usado. Tal como representado na figura 12, particionamento de QTBT pode fornecer não somente blocos quadrados, mas também retangulares. Certamente, alguma sobrecarga de sinalização e complexidade computacional aumentada no lado de codificador é o preço do particionamento de QTBT quando comparado ao particionamento convencional baseado em árvore quaternária usado no padrão HEVC/H.265. Apesar disso, o particionamento baseado em QTBT é dotado com melhores propriedades de segmentação e, consequentemente, demonstra significativamente maior eficiência de codificação do que a árvore quaternária convencional.
[0145] Folhas das árvores usadas para particionamento estão sendo processadas em uma ordem de varredura Z, de maneira que o bloco atual correspondendo à folha atual terá blocos vizinhos à esquerda e acima que já foram reconstruídos durante processos de codificação ou de decodificação, a não ser que o bloco atual esteja localizado no limite da fatia. Isto também está ilustrado na figura 12. Varredura da esquerda para a direita das folhas da árvore mostrada na parte direita da figura 12 corresponde à ordem de varredura Z espacial dos blocos mostrados na parte esquerda desta figura. A mesma varredura é aplicada no caso de árvore quaternária ou de árvores de múltiplos tipos.
[0146] Para predição intra direcional, amostras de referência são obtidas das amostras dos blocos vizinhos reconstruídos anteriormente. Dependendo do tamanho do bloco e do modo de predição intra, um filtro pode ser aplicado às amostras de referência antes de serem usadas para obter valores de amostras preditas.
[0147] Em caso de suavização de limite e PDPC, várias primeiras colunas ou várias primeiras linhas de bloco predito são combinadas com o sinal de predição adicional gerado das amostras vizinhas.
[0148] Quando predição intra é realizada usando modo de predição intra horizontal (por exemplo, tal como ilustrado na figura 10C como o modo 18), amostras de referência do lado esquerdo do bloco predito são reproduzidas no sentido de coluna, de maneira que todas as amostras dentro de uma linha são estabelecidas iguais às amostras de referência localizadas nesta linha no lado esquerdo do bloco predito.
[0149] Quando predição intra é realizada usando modo de predição intra vertical (por exemplo, tal como ilustrado na figura 10C como o modo 50), amostras de referência do lado superior do bloco predito são reproduzidas no sentido de linha, de maneira que todas as amostras dentro de uma coluna são estabelecidas iguais às amostras de referência localizadas nesta coluna no lado superior do bloco predito.
[0150] Em [A. Minezawa, K. Sugimoto, e S. Sekiguchi, “An improved intra vertical and horizontal prediction”, contribuição JCTVC-F172 para o sexto encontro JCT-VC, Torino, Itália, julho de 2011], o processo de derivação para modos de predição intra vertical e horizontal é especificado como a seguir: Predição vertical: S ( x , y )  S ( x ,  1)  ( S (  1, y )  S (  1,  1)) / 2 x 1 Predição horizontal: S ( x , y )  S (  1, y )  ( S ( x ,  1)  S (  1,  1)) / 2 y 1 onde (x,y) indicam a posição de amostra de predição em um bloco de predição de luma tal como mostrado na figura 13A, S ( x, y ) denota amostras preditas e S ( x, y ) denota as amostras de referência para serem usadas para predição convencional.
[0151] Uma vez que o valor de S ( x, y ) pode estar fora da faixa dos valores mínimos 𝑝 Í e dos máximos 𝑝 Á de uma amostra predita, uma função de recorte deve ser aplicada, por exemplo, tal como a seguir: 𝑆 (𝑥, 𝑦) = 𝐶𝑙𝑖𝑝3 𝑝 Í ,𝑝 Á , 𝑆′(𝑥, 𝑦) , onde Clip3() é uma função de recorte. Definição exemplar desta função é dada adicionalmente.
[0152] Para uma amostra predita S ( x, y ) uma amostra de referência mais próxima localizada acima da amostra predita pode ser especificada como S ( x,1) . Esta amostra de referência mais próxima está localizada na mesma coluna com a amostra predita.
[0153] De modo similar, amostra de referência mais próxima localizada à esquerda da amostra predita pode ser especificada como S (1, y) . Esta amostra de referência mais próxima está localizada na mesma linha com a amostra predita.
[0154] Implementação particular de PDPC simplificada pode ser realizada de modo diferente, dependendo do modo de predição intra:
para os modos de predição intra planar, DC e HOR/VER (denotados como 0, 1, 18, 50 respectivamente na figura 10B e na figura 10C), as etapas seguintes são realizadas: a amostra predita P(x,y) localizada em (x, y) é calculada como a seguir: 𝑃(𝑥, 𝑦) = Clip1Cmp 𝑤𝐿 × 𝑅 , + 𝑤𝑇 × 𝑅 , − 𝑤𝑇𝐿 × 𝑅 , + (64 − 𝑤𝑙 − 𝑤𝑇 ∓ 𝑤𝑇𝐿) × 𝑃(𝑥, 𝑦) + 32) ≫ 6 (1) onde Rx,-1, R-1,y representam as amostras de referência localizadas acima e à esquerda da amostra atual (x,y), e R-1,-1 representa a amostra esquerda superior, isto é, uma amostra de referência localizada no canto esquerdo superior do bloco atual, a função clip1Cmp é estabelecida como segue: - se cIdx for igual a 0, clip1Cmp é estabelecido igual a Clip1Y; - de outro modo, clip1Cmp é estabelecido igual a Clip1C Clip1Y( x ) = Clip3( 0, ( 1 << BitDepthY ) - 1, x ) Clip1C( x ) = Clip3( 0, ( 1 << BitDepthC ) - 1, x ) x ; z < x Clip3( x, y, z ) = y ; z > y . z ; de outro modo
[0155] BitDepthY é a profundidade de bits de amostras de luma.
[0156] BitDepthC é a profundidade de bits de amostras de croma.
[0157] BitDepthY e BitDepthC podem ser sinalizados em conjunto de parâmetros de sequência (SPS) de um fluxo de bits.
[0158] Definições alternativas de Clip1Y( x ) e de Clip1C( x ) são possíveis. Em particular, tal como descrito por F. Galpin, P. Bordes e F. Le Léannec na contribuição
JVET-C0040 “Adaptive Clipping em JEM2.0”, Clip1Cmp(x) = Clip3( mínc, máxc,x ), onde mínc é o limite de recorte inferior usado em fatia atual para o ID de componente C, máxc é o limite de recorte superior usado em fatia atual para o ID de componente C, C é um componente de cor (por exemplo, Y para luma, Cb e Cr para croma), “x >> y” é um deslocamento aritmético para a direita de uma representação inteira de complemento dos dois de x por y dígitos binários. Esta função é definida somente para valores inteiros não negativos de y. Bits deslocados para os bits mais significativos (MSBs) como um resultado do deslocamento para a direita têm um valor igual ao MSB de x antes da operação de deslocamento.
[0159] Os pesos de modo DC são calculados como a seguir: 𝑤𝑇 = 32 ≫ (𝑦 ≪ 1) ≫ 𝑑𝑒𝑠𝑙𝑜𝑐𝑎𝑚𝑒𝑛𝑡𝑜 , 𝑤𝐿 = 32 ≫ (𝑥 ≪ 1) ≫ 𝑑𝑒𝑠𝑙𝑜𝑐𝑎𝑚𝑒𝑛𝑡𝑜 , 𝑤𝑇𝐿 = −(𝑤𝐿 ≫ 4) − (𝑤𝑇 ≫ 4), onde 𝑑𝑒𝑠𝑙𝑜𝑐𝑎𝑚𝑒𝑛𝑡𝑜 = (𝑙𝑜𝑔 (𝑙𝑎𝑟𝑔𝑢𝑟𝑎) + 𝑙𝑜𝑔 (𝑎𝑙𝑡𝑢𝑟𝑎) + 2) ≫ 2.
[0160] Para o modo planar, wTL = 0, enquanto que para o modo horizontal wTL = wT e para o modo vertical wTL = wL. Pesos de PDPC de modo DC (wL, wT, wTL) para as posições (0, 0) e (1, 0) dentro de um bloco 4x4 estão mostrados na figura 13B. Desta figura resulta que operação de recorte em (1) é obrigatória e a implementação de PDPC de estado da técnica tem uma potencial falha. O exemplo seguinte ilustra o caso em que o resultado pode ficar fora da faixa determinada por BitDepthY ou BitDepthC.
[0161] Dado 𝑅 , = 0, 𝑅 , = 0, 𝑅 , = 100, 𝑃(𝑥, 𝑦) = 0, de
(1) resulta que para a posição (0,0) de um bloco predito de 4x4 𝑃(𝑥, 𝑦) = Clip1Cmp 𝑤𝐿 × 𝑅 , + 𝑤𝑇 × 𝑅 , ± 𝑤𝑇𝐿 × 𝑅 , + (64 − 𝑤𝑙 − 𝑤𝑇 ∓ 𝑤𝑇𝐿) × 𝑃(𝑥, 𝑦) + 32) ≫ 6 = Clip1Cmp 𝑤𝑇𝐿 × 𝑅 , + 32 ≫ 6 = Clip1Cmp( (−4 × 100 + 32) ≫ 6)), wTL=4 tal como mostrado na figura 13B.
[0162] Tal como visto a partir do exemplo acima, um valor negativo “-4×100+32=-368” está sendo deslocado para a direita usando deslocamento aritmético de bits. Dependendo da implementação, deslocamento aritmético de bits para a direita de valor negativo pode resultar em saída diferente (por exemplo, no caso da linguagem de programação C/C++) e assim não pode ser garantido que a saída Clip1Cmp() será sempre 0, uma vez que o resultado de deslocar um valor negativo para a direita pode ter sinal positivo e magnitude diferente de zero em implementações específicas.
[0163] Para modos diagonais (denotados como 2 e 66 na figura 10B e na figura 10C) e adjacentes (modos direcionais não menores que 58 e não maiores que 10 na figura 10B ou na figura 10C) processamento é realizado tal como descrito a seguir usando a mesma fórmula (1).
[0164] A figura 14A ilustra a definição das amostras de referência Rx,-1, R-1,y e R-1,-1 para a extensão de PDPC para o modo diagonal superior direito. A amostra de predição pred(x’, y’) está localizada em (x’, y’) dentro do bloco de predição. A coordenada x da amostra de referência Rx,-1 é dada por: x = x’ + y’ + 1, e a coordenada y da amostra de referência R-1,y é dada de modo similar por: y = x’ + y’ + 1.
[0165] Os pesos de PDPC para o modo diagonal superior direito são:
wT = 16 >> ( ( y’<<1 ) >> deslocamento ), wL = 16 >> ( ( x’<<1 ) >> deslocamento ), wTL = 0.
[0166] De modo similar, a figura 14B ilustra a definição das amostras de referência Rx,-1, R-1,y e R-1,-1 para a extensão de PDPC para o modo diagonal inferior esquerdo. A coordenada x da amostra de referência Rx,-1 é dada por: x = x’ + y’ + 1, e a coordenada y da amostra de referência R- 1,y é: y = x’ + y’ + 1. Os pesos de PDPC para o modo diagonal superior direito são: wT = 16 >> ( ( y’<<1 ) >> deslocamento ), wL = 16 >> ( ( x’<<1 ) >> deslocamento ), wTL = 0. O caso de um modo diagonal superior direito adjacente está ilustrado na figura 14C. Os pesos de PDPC para um modo diagonal superior direito adjacente são: wT = 32 >> ( ( y’<<1 ) >> deslocamento ), wL = 0, wTL = 0. De modo similar, o caso de um modo diagonal inferior esquerdo adjacente está ilustrado na figura 14D. Os pesos de PDPC para um modo diagonal inferior esquerdo adjacente são: wL = 32 >> ( ( x’<<1 ) >> deslocamento ), wT =0, wTL = 0. As coordenadas de amostras de referência para os últimos dois casos são computadas usando as tabelas que já são usadas para predição intra de modo angular. Interpolação linear das amostras de referência é usada se coordenadas de amostras de referência fracionárias forem calculadas.
[0167] PDPC simplificada pode ser realizada tal como especificado na especificação de VVC. Adicionalmente, as seguintes definições são usadas: ∗ invAngle = Round intraPredAngle , é o valor de ângulo inverso, Round( x ) = Sign( x ) * Floor( Abs( x ) + 0,5 ),
1 ; x > 0 Sign( x ) = 0 ; x = = 0 −1 ; x < 0 Floor( x ) é o maior número inteiro igual ou menor que x, Log2( x ) é o logaritmo de base 2 de x, intraPredAngle é o parâmetro de ângulo especificado na Tabela 6, A = C ? B : D é uma operação de designação ternária, onde A é estabelecido igual a B se a condição C for verdadeira. De outro modo, se a condição C for falsa, A é estabelecido igual a D; INTRA_PLANAR é um modo de predição intra planar (), INTRA_DC é um modo de predição intra DC, INTRA_ANGULARXX é um modo dos modos de predição intra direcional, onde XX denota seu número e direção correspondente mostrada na figura 14B.
[0168] Se um termo não estiver explicado neste documento, é entendido que sua definição pode ser encontrada na especificação de VVC ou na especificação padrão de HEVC/H.265.
[0169] Dadas as definições acima, as etapas de PDPC simplificada podem ser definidas como a seguir: entradas para este processo são: - o modo de predição intra predModeIntra, - uma variável nTbW especificando a largura de bloco de transformada, - uma variável nTbH especificando a altura de bloco de transformada, - uma variável refW especificando a largura de amostra de referência,
- uma variável refH especificando a altura de amostra de referência, - as amostras preditas predSamples[ x ][ y ], com x =
0..nTbW - 1, y = 0..nTbH - 1, - as amostras vizinhas p[ x ][ y ], com x = −1, y = −1..refH − 1 e x = 0..refW − 1, y = −1, - uma variável cIdx especificando o componente de cor do bloco atual.
[0170] Saídas deste processo são as amostras preditas modificadas predSamples[ x ][ y ] com x = 0..nTbW - 1, y = 0..nTbH - 1.
[0171] Dependendo do valor de cIdx, a função clip1Cmp é estabelecida como a seguir: - se cIdx for igual a 0, clip1Cmp é estabelecida igual a Clip1Y; - de outro modo, clip1Cmp é estabelecida igual a Clip1C.
[0172] A variável nScale é estabelecida para ( ( Log2( nTbW ) + Log2( nTbH ) - 2 ) >> 2 ).
[0173] Os conjuntos de amostras de referência mainRef[ x ] e sideRef[ y ], com x = 0..refW - 1 e y =
0..refH - 1 são derivados como a seguir: mainRef[ x ] = p[ x ][ -1 ] sideRef[ y ] = p[ -1 ][ y ] as variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] com x = 0..nTbW - 1, y =0..nTbH - 1 são derivadas como a seguir: - se predModeIntra for igual a INTRA_PLANAR, INTRA_DC, INTRA_ANGULAR18 ou INTRA_ANGULAR50, o seguinte se aplica: refL[ x ][ y ] = p[ -1 ][ y ]
refT[ x ][ y ] = p[ x ][ -1 ] wT[ y ] = 32 >> ( ( y << 1 ) >> nScale ) wL[ x ] = 32 >> ( ( x << 1 ) >> nScale ) wTL[ x ][ y ] = ( predModeIntra = = INTRA_DC ) ? ( ( wL[ x ] >> 4 ) + ( wT[ y ] >> 4 ) ) : 0 {x,y} definem posição de uma amostra predita, wT, wL e wTL são pesos associados com amostras de referência de acordo com a posição definida, nScale é um parâmetro de escala que controla distância de propagação (decaimento dos pesos wT e wL); - de outro modo, se predModeIntra for igual a INTRA_ANGULAR2 ou INTRA_ANGULAR66, o seguinte se aplica: refL[ x ][ y ] = p[ -1 ][ x + y + 1 ] refT[ x ][ y ] = p[ x + y + 1 ][ -1 ] wT[ y ] = ( 32 >> 1 ) >> ( ( y << 1 ) >> nScale ) wL[ x ] = ( 32 >> 1 ) >> ( ( x << 1 ) >> nScale ) wTL[ x ][ y ] = 0 - de outro modo, se predModeIntra for igual ou menor que INTRA_ANGULAR10, as etapas ordenadas a seguir se aplicam:
1. As variáveis dXPos[ y ], dXFrac[ y ], dXInt[ y ] e dX[ x ][ y ] são derivadas como se segue usando invAngle: dXPos[ y ] = ( ( y + 1 ) * invAngle + 2 ) >> 2 dXFrac[ y ] = dXPos[ y ] & 63 dXInt[ y ] = dXPos [ y ] >> 6 dX[ x ][ y ] = x + dXInt[ y ]
2. As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] são derivadas como a seguir:
refL[ x ][ y ] = 0 refT[ x ][ y ] = ( dX[ x ][ y ] < refW - 1 ) ? ( ( 64 - dXFrac[ y ] ) * mainRef[ dX[ x ][ y ] ] + dXFrac[ y ] * mainRef[ dX[ x ][ y ] + 1 ] + 32 ) >> 6 : 0 (Equação 1) wT[ y ] = ( dX[ x ][ y ] < refW - 1 ) + 32 >> ( ( y << 1 ) >> nScale ) : 0 wL[ x ] = 0 wTL[ x ][ y ] = 0 - de outro modo, se predModeIntra for igual ou maior que INTRA_ANGULAR58 (ver a figura 14B), as etapas ordenadas a seguir se aplicam:
1. As variáveis dYPos[ x ], dYFrac[ x ], dYInt[ x ] e dY[ x ][ y ] são derivadas como se segue usando invAngle tal como especificado a seguir dependendo de intraPredMode: dYPos[ x ] = ( ( x + 1 ) * invAngle + 2 ) >> 2 dYFrac[ x ] = dYPos[ x ] & 63 dYInt[ x ] = dYPos[ x ] >> 6 dY[ x ][ y ] = y + dYInt[ x ]
2. As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] são derivadas como a seguir: refL[ x ][ y ] = ( dY[ x ][ y ] < refH - 1 ) ? ( ( 64 - dYFrac[ x ] ) * sideRef[ dY[ x ][ y ] ] + dYFrac[ x ] * sideRef[ dY[ x ][ y ] + 1 ] + 32 ) >> 6 : 0 (Equação 2) refT[ x ][ y ] = 0 wT[ y ] = 0 wL[ x ] = ( dY[ x ][ y ] < refH - 1 ) ? 32 >> ( ( x << 1 ) >> nScale ) : 0 wTL[ x ][ y ] = 0
- De outro modo, refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] são todos estabelecidos iguais a
0.
[0174] Os valores das amostras preditas modificadas predSamples[ x ][ y ], com x = 0..nTbW - 1, y =0..nTbH - 1 são derivados como a seguir: predSamples[ x ][ y ] = clip1Cmp( ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] - p[ -1 ][ -1 ] * wTL[ x ][ y ] + ( 64 - wL[ x ] - wT[ y ] + wTL[ x ][ y ] ) * predSamples[ x ][ y ] + 32 ) >> 6 ).
[0175] Na designação da Equação 1 acima PDPC simplificada pode usar interpolação de vizinho mais próximo em vez de interpolação linear: refT[ x ][ y ] = ( dX[ x ][ y ] < refW - 1 ) ? mainRef[ dX[ x ][ y ] ] : 0 de modo similar, designação da Equação 2 também pode usar interpolação de vizinho mais próximo: refL[ x ][ y ] = ( dY[ x ][ y ] < refH - 1 ) ? sideRef[ dY[ x ][ y ] ] : 0.
[0176] Recorte pode ser removido exatamente para vários modos. Especificamente para o modo de predição intra DC, wTL pode ser estabelecido para zero. Consequentemente, operação de clip1Cmp() não será exigida para PDPC se modo de predição intra for DC. As regras ou métodos seguintes podem ser aplicados: - PDPC para DC não usa amostra esquerda superior (TL); - operação de recorte em PDPC não é realizada para nenhum modo de predição intra exceto para os modos HOR e VER;
- PDPC para modos HOR e VER usa operação de recorte e não usa limiarização descrita neste pedido.
[0177] De acordo com a descrição acima, a especificação pode ser modificada no seguinte modo: - se predModeIntra for igual a INTRA_PLANAR ou INTRA_DC, o seguinte se aplica: refL[ x ][ y ] = p[ -1 ][ y ] (8-227) refT[ x ][ y ] = p[ x ][ -1 ] (8-228) wT[ y ] = 32 >> ( ( y << 1 ) >> nScale ) (8- 229) wL[ x ] = 32 >> ( ( x << 1 ) >> nScale ) (8- 230) wTL[ x ][ y ] = 0 (8-231) - de outro modo, se predModeIntra for igual a INTRA_ANGULAR18 ou INTRA_ANGULAR50, o seguinte se aplica: refL[ x ][ y ] = p[ -1 ][ y ] (8-232) refT[ x ][ y ] = p[ x ][ -1 ] (8-233) wT[ y ] = ( predModeIntra = = INTRA_ANGULAR18 ) ? 32 >> ( ( y << 1 ) >> nScale ) : 0 (8-234) wL[ x ] = ( predModeIntra = = INTRA_ANGULAR50 ) ? 32 >> ( ( x << 1 ) >> nScale ) : 0 (8-235) wTL[ x ][ y ] = ( predModeIntra = = INTRA_ANGULAR18 ) ? wT[ y ] : wL[ x ] (8-236) - de outro modo, se predModeIntra for igual a INTRA_ANGULAR2 ou INTRA_ANGULAR66, o seguinte se aplica: refL[ x ][ y ] = p[ -1 ][ x + y + 1 ] (8-237) refT[ x ][ y ] = p[ x + y + 1 ][ -1 ] (8-238) wT[ y ] = ( 32 >> 1 ) >> ( ( y << 1 ) >> nScale ) (8-239) wL[ x ] = ( 32 >> 1 ) >> ( ( x << 1 ) >> nScale
) (8-240) wTL[ x ][ y ] = 0 (8-241) - de outro modo, se predModeIntra for igual ou menor que INTRA_ANGULAR10, as etapas seguintes se aplicam:
1. As variáveis dXPos[ y ], dXFrac[ y ], dXInt[ y ] e dX[ x ][ y ] são derivadas como se segue usando invAngle tal como especificado em esboço de especificação de VVC dependendo de intraPredMode: dXPos[ y ] = ( ( y + 1 ) * invAngle + 2 ) >> 2 dXFrac[ y ] = dXPos[ y ] & 63 (8-242) dXInt[ y ] = dXPos [ y ] >> 6 dX[ x ][ y ] = x + dXInt[ y ]
2. As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] são derivadas como a seguir: refL[ x ][ y ] = 0 (8-243) refT[ x ][ y ] = ( dX[ x ][ y ] < refW - 1 ) ? mainRef[ dX[ x ][ y ] + ( dXFrac[ y ] >> 5 ) ] : 0 (8- 244) wT[ y ] = ( dX[ x ][ y ] < refW - 1 ) ? 32 >> ( ( y << 1 ) >> nScale ) : 0 (8-245) wL[ x ] = 0 (8-246) wTL[ x ][ y ] = 0 (8-247) - de outro modo, se predModeIntra for igual ou maior que INTRA_ANGULAR58, as etapas ordenadas a seguir se aplicam:
1. As variáveis dYPos[ x ], dYFrac[ x ], dYInt[ x ] e dY[ x ][ y ] são derivadas como se segue usando invAngle tal como especificado em esboço de especificação de VVC dependendo de intraPredMode: dYPos[ x ] = ( ( x + 1 ) * invAngle + 2 ) >> 2 dYFrac[ x ] = dYPos[ x ] & 63 (8-248) dYInt[ x ] = dYPos[ x ] >> 6 dY[ x ][ y ] = y + dYInt[ x ]
2. As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] são derivadas como a seguir: refL[ x ][ y ] = ( dY[ x ][ y ] < refH - 1 ) ? sideRef[ dY[ x ][ y ] + ( dYFrac[ x ] >> 5 ) ] : 0 (8- 249) refT[ x ][ y ] = 0 (8-250) wT[ y ] = 0 (8-251) wL[ x ] = ( dY[ x ][ y ] < refH - 1 ) ? 32 >> ( ( x << 1 ) >> nScale ) : 0 (8-252) wTL[ x ][ y ] = 0 (8-253) - de outro modo, refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] e wTL[ x ][ y ] são todos estabelecidos iguais a
0.
[0178] Os valores das amostras preditas modificadas predSamples[ x ][ y ], com x = 0..nTbW - 1, y =0..nTbH - 1 são derivados como a seguir: - se predModeIntra for igual a INTRA_ANGULAR18 ou INTRA_ANGULAR50,: predSamples[ x ][ y ] = clip1Cmp( ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] - p[ -1 ][ -1 ] * wTL[ x ][ y ] + ( 64 - wL[ x ] - wT[ y ] + wTL[ x ][ y ] ) * predSamples[ x ][ y ] + 32 ) >> 6 ) (1*) - de outro modo, o seguinte se aplica: predSamples[ x ][ y ] = ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] + ( 64 - wL[ x ] - wT[ y ] ) * predSamples[ x ][ y ] + 32 ) >> 6.
[0179] De acordo com o texto de especificação acima, as modificações seguintes foram introduzidas para o método de PDPC: - ao realizar PDPC para DC, amostra esquerda superior não é considerada; - recorte é aplicado ao valor de saída de PDPC de amostras preditas somente para os modos de predição intra horizontal e vertical. Para todos os outros modos de predição intra recorte não é realizado.
[0180] Tanto no lado de codificador quanto no de decodificador, método proposto usa o seguinte como os dados de entrada: • modo de predição direcional intra (denotado também como predModeIntra, o qual está mostrado na figura 10B e a figura 10C); • parâmetro de tamanho de bloco nTbS, o qual é estabelecido igual a (log2( nTbW) + Log2(nTbH) ) >> 1, onde nTbW e nTbH denotam largura e altura do bloco predito, respectivamente, e “>>” denota uma operação de deslocamento para a direita.
[0181] A modificação da especificação de VVC que capacita uso do método proposto pode compreender substituir “as amostras vizinhas p[ x ][ y ]” por “as amostras de referência p[ x ][ y ]” na seção descrevendo PDPC simplificada.
[0182] O parâmetro de ângulo intraPredAngle denota o deslocamento de subpixel entre duas linhas adjacentes de amostras preditas em representação de ponto fixo tendo comprimento de parte fracionária igual a 5 bits. Este parâmetro pode ser derivado do modo de predição intra e é derivado de predModeIntra.
Uma derivação exemplar de intraPredAngle de predModeIntra pode ser definida com uma LUT, por exemplo, tal como está mostrado na Tabela 6. Tabela 6: Uma LUT Exemplar Para Derivar intraPredAngle de predModeIntra. predModeIn - - - -
tra 14 13 1 1
2 1 intraPredA 51 34 2 1 ngle 2 1 5 7
6 1 predModeIn - -9 -8 -7 - - - - - - 2 3 4 5 6 7 8 tra 10 6 5 4 3 2 1 intraPredA 12 10 86 73 6 5 5 4 3 3 3 2 2 23 20 1 1 ngle 8 2 4 7 1 5 9 5 2 9 6 8 6 predModeIn 9 10 11 12 1 1 1 1 1 1 1 2 2 22 23 2 2 tra 3 4 5 6 7 8 9 0 1 4 5 intraPredA 14 12 10 8 6 4 3 2 1 0 - - - -4 -6 - -
ngle 1 2 3 8 1
0 predModeIn 26 27 28 29 3 3 3 3 3 3 3 3 3 39 40 4 4 tra 0 1 2 3 4 5 6 7 8 1 2 intraPredA - - - - - - - - - - - - - - - - -
ngle 12 14 16 18 2 2 2 2 3 2 2 2 2 18 16 1 1
0 3 6 9 2 9 6 3 0 4 2 predModeIn 43 44 45 46 4 4 4 5 5 5 5 5 5 56 57 5 5 tra 7 8 9 0 1 2 3 4 5 8 9 intraPredA - -8 -6 -4 - - - 0 1 2 3 4 6 8 10 1 1 ngle 10 3 2 1 2 4 predModeIn 60 61 62 63 6 6 6 6 6 6 7 7 7 73 74 7 7 tra 4 5 6 7 8 9 0 1 2 5 6 intraPredA 16 18 20 23 2 2 3 3 3 4 5 5 6 73 86 1 1 ngle 6 9 2 5 9 5 1 7 4 0 2 2 8 predModeIn 77 78 79 80 tra intraPredA 17 25 34 51 ngle 1 6 1 2
[0183] A partir da especificação de esboço atual de HEVC e de VVC, método de predição intra planar é usado. A parte do esboço de VVC 3 é incorporada a seguir para referência:
8.2.4.2.5. Especificação de modo de predição intra INTRA_PLANAR entradas para este processo são: - uma variável nTbW especificando a largura de bloco de transformada, - uma variável nTbH especificando a altura de bloco de transformada, - as amostras vizinhas p[ x ][ y ], com x = -1, y = -
1..nTbH e x = 0..nTbW, y = -1.
[0184] Saídas deste processo são as amostras preditas predSamples[ x ][ y ], com x = 0..nTbW - 1, y =
0..nTbH - 1.
[0185] Os valores das amostras de predição predSamples[ x ][ y ], com x = 0..nTbW - 1 e y = 0..nTbH - 1, são derivados como a seguir: predV[ x ][ y ] = ( ( nTbH - 1 - y ) * p[ x ][ -1 ] + ( y + 1 ) * p[ -1 ][ nTbH ] ) << Log2 ( nTbW ) (8-82) predH[ x ][ y ] = ( ( nTbW - 1 - x ) * p[ -1 ][ y ] + (
x + 1 ) * p[ nTbW ][ -1 ] ) << Log2( nTbH ) (8-83) predSamples[ x ][ y ] = ( predV[ x ][ y ] + predH[ x ][ y ] + nTbW * nTbH ) >> (Log2 ( nTbW ) + Log2 ( nTbH ) + 1 ) (8-84).
[0186] A solução proposta é um método de PDPC alternativo que não tem a falha da equação (1*). Especificamente, o método pode compreender as seguintes etapas: a amostra predita P(x,y) localizada em (x, y) é calculada como a seguir: 𝑃(𝑥, 𝑦) = 𝑤𝐿 × 𝑅 , + 𝑤𝑇 × 𝑅 , + (64 − 𝑤𝐿 − 𝑤𝑇) × 𝑃(𝑥, 𝑦) + 32) ≫ 6 (2) onde Rx,-1, R-1,y representam as amostras de referência localizadas acima e à esquerda da amostra atual (x, y). É importante observar que a função clip1Cmp não está em uso na equação (2) uma vez que os valores da amostra predita P(x,y) estão sempre na faixa de valores válidos, isto é, entre os valores mínimo e máximo de pixels; “x >> y” é um deslocamento aritmético para a direita de uma representação inteira complementar dos dois de x por y dígitos binários. Esta função é definida somente para valores inteiros não negativos de y. Bits deslocados para os bits mais significativos (MSBs) como um resultado do deslocamento para a direita têm um valor igual ao MSB de x antes da operação de deslocamento.
[0187] Os pesos de modo DC são calculados como a seguir: 𝑤𝑇 = 32 ≫ (𝑦 ≪ 1) ≫ 𝑑𝑒𝑠𝑙𝑜𝑐𝑎𝑚𝑒𝑛𝑡𝑜 , 𝑤𝐿 = 32 ≫ (𝑥 ≪ 1) ≫ 𝑑𝑒𝑠𝑙𝑜𝑐𝑎𝑚𝑒𝑛𝑡𝑜 , onde 𝑑𝑒𝑠𝑙𝑜𝑐𝑎𝑚𝑒𝑛𝑡𝑜 = (log (𝑙𝑎𝑟𝑔𝑢𝑟𝑎) + log (𝑎𝑙𝑡𝑢𝑟𝑎) + 2) ≫ 2.
[0188] Pesos de PDPC de modo DC (wL, wT) para as posições (0, 0) e (1, 0) dentro de um bloco 4x4 estão mostrados na figura 15. Pode ser notado que, em comparação com a figura 13B, amostra de referência esquerda superior não é usada e peso para esta amostra não é especificado.
[0189] Este método alternativo pode ser representado na forma de uma parte de especificação de VVC: Processo de Filtragem de Amostra de Predição Intra Dependente de Posição entradas para este processo são: - o modo de predição intra predModeIntra, - uma variável nTbW especificando a largura de bloco de transformada, - uma variável nTbH especificando a altura de bloco de transformada, - uma variável refW especificando a largura de amostra de referência, - uma variável refH especificando a altura de amostra de referência, - as amostras preditas predSamples[ x ][ y ], com x =
0..nTbW - 1, y = 0..nTbH - 1, - as amostras vizinhas p[ x ][ y ], com x = -1, y = -
1..refH - 1 e x = 0..refW - 1, y = -1, - uma variável cIdx especificando o componente de cor do bloco atual.
[0190] Saídas deste processo são as amostras preditas modificadas predSamples[ x ][ y ] com x = 0..nTbW - 1, y = 0..nTbH - 1.
[0191] Dependendo do valor de cIdx, a função clip1Cmp é estabelecida como a seguir: - se cIdx for igual a 0, clip1Cmp é estabelecida igual a Clip1Y;
- de outro modo, clip1Cmp é estabelecida igual a Clip1C.
[0192] A variável nScale é estabelecida para ( ( Log2( nTbW ) + Log2( nTbH ) - 2 ) >> 2 ).
[0193] Os conjuntos amostras de referência mainRef[ x ] e sideRef[ y ], com x = 0..refW - 1 e y = 0..refH - 1 são derivados como a seguir: mainRef[ x ] = p[ x ][ -1 ] sideRef[ y ] = p[ -1 ][ y ] As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ] e wL[ x ] com x = 0..nTbW - 1, y =0..nTbH - 1 são derivadas como a seguir: - se predModeIntra for igual a INTRA_PLANAR, INTRA_DC, INTRA_ANGULAR18 ou INTRA_ANGULAR50, o seguinte se aplica: refL[ x ][ y ] = p[ -1 ][ y ] refT[ x ][ y ] = p[ x ][ -1 ] wT[ y ] = 32 >> ( ( y << 1 ) >> nScale ) wL[ x ] = 32 >> ( ( x << 1 ) >> nScale ) - de outro modo, se predModeIntra for igual a INTRA_ANGULAR2 ou INTRA_ANGULAR66, o seguinte se aplica: refL[ x ][ y ] = p[ -1 ][ x + y + 1 ] refT[ x ][ y ] = p[ x + y + 1 ][ -1 ] wT[ y ] = ( 32 >> 1 ) >> ( ( y << 1 ) >> nScale ) wL[ x ] = ( 32 >> 1 ) >> ( ( x << 1 ) >> nScale ) - de outro modo, se predModeIntra for igual ou menor que INTRA_ANGULAR10, as etapas ordenadas a seguir se aplicam:
1. As variáveis dXPos[ y ], dXFrac[ y ], dXInt[ y ] e dX[ x ][ y ] são derivadas como se segue usando invAngle dependendo de intraPredMode: dXPos[ y ] = ( ( y + 1 ) * invAngle + 2 ) >> 2 dXFrac[ y ] = dXPos[ y ] & 63 dXInt[ y ] = dXPos [ y ] >> 6 dX[ x ][ y ] = x + dXInt[ y ] invAngle pode ser especificado em esboço de especificação de VVC
2. As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] são derivadas como a seguir: refL[ x ][ y ] = 0 refT[ x ][ y ] = ( dX[ x ][ y ] < refW - 1 ) ? ( ( 64 - dXFrac[ y ] ) * mainRef[ dX[ x ][ y ] ] + dXFrac[ y ] * mainRef[ dX[ x ][ y ] + 1 ] + 32 ) >> 6 : 0 wT[ y ] = ( dX[ x ][ y ] < refW - 1 ) ? 32 >> ( ( y << 1 ) >> nScale ) : 0 wL[ x ] = 0 - de outro modo, se predModeIntra for igual ou maior que INTRA_ANGULAR58, as etapas ordenadas a seguir se aplicam:
1. As variáveis dYPos[ x ], dYFrac[ x ], dYInt[ x ] e dY[ x ][ y ] são derivadas como se segue usando invAngle dependendo de intraPredMode: dYPos[ x ] = ( ( x + 1 ) * invAngle + 2 ) >> 2 dYFrac[ x ] = dYPos[ x ] & 63 dYInt[ x ] = dYPos[ x ] >> 6 dY[ x ][ y ] = y + dYInt[ x ] invAngle pode ser especificado em esboço de especificação de VVC
2. As variáveis refL[ x ][ y ], refT[ x ][ y ], wT[ y ]
e wL[ x ] são derivadas como a seguir: refL[ x ][ y ] = ( dY[ x ][ y ] < refH - 1 ) ? ( ( 64 - dYFrac[ x ] ) * sideRef[ dY[ x ][ y ] ] + dYFrac[ x ] * sideRef[ dY[ x ][ y ] + 1 ] + 32 ) >> 6 : 0 refT[ x ][ y ] = 0 wT[ y ] = 0 wL[ x ] = ( dY[ x ][ y ] < refH - 1 ) ? 32 >> ( ( x << 1 ) >> nScale ) : 0 - de outro modo, refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] são todos estabelecidos iguais a 0. Os valores das amostras preditas modificadas predSamples[ x ][ y ], com x = 0..nTbW - 1, y =0..nTbH - 1 são derivados como a seguir: predSamples[ x ][ y ] = ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] + ( 64 - wL[ x ] - wT[ y ]) * predSamples[ x ][ y ] + 32 ) >> 6 ) aqui “( 64 - wL[ x ] - wT[ y ])” representa fator de ponderação de amostra.
[0194] A figura 16 ilustra o método descrito acima. Por meio de linha tracejada a etapa de recorte está mostrada, a qual é realizada na PDPC de estado da técnica, mas não é realizada no método proposto, uma vez que ela não é exigida, porque o único coeficiente negativo wTL não é usado.
[0195] Na figura 17, amostras de referência são usadas pelo processo de predição intra para produzir amostras preditas. Cada amostra predita é ponderada adicionalmente usando um fator de ponderação de amostra. O fator de ponderação de amostra, por exemplo, pode ser igual a ( 64 - wL[ x ] - wT[ y ]). As mesmas amostras de referência são usadas para calcular valores adicionais para cada uma das amostras preditas dependendo de x e y, onde x e y definem a posição de uma amostra predita dentro de um bloco predito. Estes valores adicionais são acrescentados às amostras preditas ponderadas correspondentes. Cada amostra resultando desta operação é então normalizada ao deslocar a mesma para a direita de acordo com a precisão predeterminada do fator de ponderação de amostra. Por exemplo, se o fator de ponderação de amostra for definido como ( 64 - wL[ x ] - wT[ y ]) ) a precisão é de 6 bits. Portanto, nesta etapa um deslocamento para a direita por 6 é realizado a fim de assegurar que possíveis valores mínimos e máximos dos valores de saída são os mesmos que os possíveis valores mínimos e máximos das amostras de referência.
[0196] Um dos efeitos benéficos da solução proposta é que o mecanismo de predição intra PLANAR pode ser reutilizado para calcular os valores adicionais. Especificamente, predição intra PLANAR usa a equação seguinte para derivar valores de amostras preditas horizontais e verticais: predV[ x ][ y ] = ( ( nTbH - 1 - y ) * p[ x ][ -1 ] + + ( y + 1 ) * p[ -1 ][ nTbH ] ) << Log2 ( nTbW ) (8- 82) predH[ x ][ y ] = ( ( nTbW - 1 - x ) * p[ -1 ][ y ] + + ( x + 1 ) * p[ nTbW ][ -1 ] ) << Log2 ( nTbH ) (8- 83).
[0197] A partir das duas equações acima pode ser visto que predV[ x ][ y ] usa a amostra de referência p[x][-1] localizada na mesma coluna de predV[ x ][ y ] e predH[x][y] usa a amostra de referência p[-1][y] localizada na mesma linha com predH[x][y]. Além disso, operações de deslocamento para a esquerda são realizadas como a etapa final e assim podem ser omitidas uma vez que elas não afetam cálculos intermediários que estão sendo reutilizados. As variáveis nTbW, nTbH, x e y são entradas de método de predição intra PLANAR e assim podem ser ajustadas de modo correspondente. Por causa disso é possível substituir ( nTbW - 1 - x ) por Dx e ( nTbH - 1 - y ) por variáveis de entrada Dy. Amostras de referência inferior esquerda e superior direita podem ser estabelecidas para 0 uma vez que estas não são um parâmetro sendo usado.
[0198] Considerando as observações descritas anteriormente, equações mostradas acima podem ser regravadas de acordo com suas entradas sendo predeterminadas: Vy = Dy * p[ x ][ -1 ] Vx = Dx * p[ -1 ][ y ].
[0199] Assim, as seguintes unificações podem ser realizadas: - um valor adicional no caso de modo horizontal (modo 18) pode ser calculado como Vy = Dy * p[ x ][ -1 ], em que Dy é estabelecido igual a wT[ y ]; - um valor adicional no caso de modo vertical (modo 50) pode ser calculado como Vx = Dx * p[ -1 ][ y ], em que Dx é estabelecido igual a wL[ y ]; - um valor adicional no caso de modo DC (modo 1) pode ser calculado como Vy+Vx, em que Dx e Dy são estabelecidos como nos dois casos anteriores.
[0200] Por meio de alternação de seleção de amostra de referência pode ser mostrado que unificação pode ser realizada para todos os modos de predição intra que são especificados para processo de PDPC.
[0201] Quando modo de predição intra é especificado para ser igual aos modos de predição intra DC, horizontal ou vertical, a amostra predita atualizada resultante deve ser recortada, por exemplo, tal como está mostrado na figura 16 por meio de um bloco com bordas tracejadas.
[0202] Em caso de modo de predição intra horizontal ou vertical é mais benéfico reposicionar a operação de recorte antes da última etapa de PDPC simplificada quando amostra predita ponderada está sendo somada com um valor adicional. Este valor adicional é obtido de modo diferente para modos diferentes tal como descrito acima.
[0203] Modalidades da invenção propõem limitar resultados de cálculos intermediários que são realizados para obter o valor adicional para os casos de modos de predição intra vertical ou horizontal sendo usados em predição intra. Para estes casos um valor adicional pode ser calculado de tal maneira que ser adicionado à amostra predita ponderada não exigirá operação de recorte.
[0204] Os métodos de PDPC de estado da técnica aplicam recorte na amostra predita atualizada (mesmo para modos horizontal e vertical). Especificamente: predSamples[ x ][ y ] = clip1Cmp( ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] - p[ -1 ][ -1 ] * wTL[ x ][ y ] + ( 64 - wL[ x ] - wT[ y ] + wTL[ x ][ y ] ) * predSamples[ x ][ y ] + 32 ) >> 6 ).
[0205] Para o modo de predição intra horizontal wTL[ x ][ y ] é estabelecido igual a wT[ y ], resultando assim na expressão simplificada: predSamples[ x ][ y ] = clip1Cmp( ( (refT[ x ][ y ] - p[ -1 ][ -1 ] ) * wT[ y ] + 64 * predSamples[ x ][ y ] + 32 ) >> 6 ).
[0206] Nesta expressão, “refT[ x ][ y ] - p[ -1 ][ -1 ]” é de fato o valor de amostra de referência adicional. Isto é, para os casos em que o modo de predição intra é horizontal, valor de amostra de referência adicional é estabelecido igual à diferença entre o valor da amostra de referência mais próxima (refT[ x ][ y ]) localizada acima da amostra predita e o valor da amostra de referência esquerda superior (p[ -1 ][ -1 ] ).
[0207] Para os casos em que o modo de predição intra é vertical, valor de amostra de referência adicional é estabelecido igual à diferença entre o valor da amostra de referência mais próxima (refL[ x ][ y ]) localizada à esquerda da amostra predita e o valor da amostra de referência esquerda superior (p[ -1 ][ -1 ] ), isto é, para “refL[ x ][ y ] - p[ -1 ][ -1 ]”.
[0208] Consequentemente, é possível substituir a função clipCmp por operações de limiarização no valor de amostra de referência adicional, isto é, “refT[ x ][ y ] - p[ -1 ][ -1 ]”.
[0209] Para um modo de predição intra horizontal: predSamples[ x ][ y ] = ( T(refT[ x ][ y ] - p[ -1 ][ -1 ] ) * wT[ y ] + 64 * predSamples[ x ][ y ] + 32 ) >> 6, onde T() é uma operação de limiarização.
[0210] Para um modo de predição intra vertical: predSamples[ x ][ y ] = ( T(refL[ x ][ y ] - p[ -1 ][
-1 ] ) * wT[ y ] + 64 * predSamples[ x ][ y ] + 32 ) >> 6, onde T() é uma operação de limiarização.
[0211] Implementação exemplar de T() é dada na figura 17. Operação de limiarização T() de valor de amostra de referência adicional é de fato atualizar o valor de amostra de referência adicional de acordo com se valor de amostra de referência esquerda superior é maior que valor de amostra predita. Especificamente: - quando o valor de amostra de referência esquerda superior é maior que o valor de amostra predita, o limite inferior é obtido ao subtrair valor de amostra predita do valor máximo da amostra predita, o valor de amostra de referência adicional atualizado é estabelecido igual ao máximo de dois valores,  o primeiro valor é o valor de amostra de referência adicional, e  o segundo valor é o limite inferior, - de outro modo, o limite superior é obtido ao subtrair valor de amostra predita do valor mínimo da amostra predita, o valor de amostra de referência adicional atualizado é estabelecido igual ao mínimo de dois valores,  o primeiro valor é o valor de amostra de referência adicional, e  o segundo valor é o limite superior.
[0212] Na figura 17, a amostra de referência mais perto é uma amostra de referência mais próxima localizada à esquerda da amostra predita quando predição intra é horizontal. Quando predição intra é vertical, a amostra de referência mais perto é uma amostra de referência mais próxima localizada acima da amostra predita. A partir desta figura pode ser percebido que resultado de comparação é usado para comutar ambos de - resultados de funções de limiarização, isto é, mínimo e máximo, e - um dos argumentos da função de limiarização.
[0213] É digno de nota que a função Clip3() fornece duas operações de limiarização. Um limiar é o valor mínimo da amostra predita e o outro limiar é o valor máximo da amostra predita. Em comparação com a função Clip3() aplicada à amostra predita atualizada (figura 16), a limiarização proposta (figura 17) aplica somente um limiar: o valor mínimo da amostra predita ou o valor máximo da amostra predita.
[0214] Também pode ser notado que a reposição de limiarização descrita acima capacita uso da mesma equação sem recorte para todos os modos de predição intra, onde PDPC é aplicável.
[0215] A figura 18 é um diagrama de blocos mostrando uma estrutura de exemplo de um aparelho 1800 para predição intra de um bloco de uma imagem. O aparelho 1800 é configurado para executar os métodos mencionados anteriormente, e pode incluir: uma unidade de obtenção 1810, configurada para obter um valor de amostra predita de um ou mais valores de amostras de referência por meio de predição intra usando um modo de predição intra, obter pelo menos um valor de amostra de referência adicional de acordo com o modo de predição intra e obter um valor de amostra de referência adicional limiarizado com base no valor de amostra de referência adicional;
uma unidade de cálculo 1820, configurada para calcular um valor adicional do valor de amostra de referência adicional limiarizado, multiplicar o valor de amostra predita por um fator de ponderação de amostra, resultando em um valor de amostra predita ponderada, acrescentar o valor adicional ao valor de amostra predita ponderada, resultando em um valor de amostra predita não normalizada, e normalizar o valor de amostra predita não normalizada, resultando em um valor de amostra predita normalizada.
[0216] Quando o modo de predição intra é modo de predição intra vertical, o valor de amostra de referência adicional pode ser estabelecido igual à diferença entre o valor da amostra de referência mais próxima localizada acima da amostra predita e o valor da amostra de referência esquerda superior.
[0217] Quando o modo de predição intra é modo de predição intra horizontal, o valor de amostra de referência adicional pode ser estabelecido igual à diferença entre o valor da amostra de referência mais próxima localizada à esquerda da amostra predita e o valor da amostra de referência esquerda superior.
[0218] Quando o modo de predição intra é modo de predição intra DC, o pelo menos um valor de amostra de referência adicional inclui um primeiro valor de amostra de referência adicional e um segundo valor de amostra de referência adicional, e o primeiro valor de amostra de referência adicional e o segundo valor de amostra de referência adicional podem ser obtidos por meio de: estabelecer o primeiro valor de amostra de referência adicional igual ao valor da amostra de referência mais próxima localizada à esquerda da amostra predita, e estabelecer o segundo valor de amostra de referência adicional igual ao valor da amostra de referência mais próxima localizada acima da amostra predita.
[0219] Quando um valor de amostra de referência esquerda superior é igual ou maior que o valor de amostra predita, um limite superior é obtido ao subtrair o valor de amostra predita do valor máximo da amostra predita, o valor de amostra de referência adicional limiarizado é estabelecido igual ao máximo de um primeiro valor e um segundo valor:  o primeiro valor é o valor de amostra de referência adicional, e  o segundo valor é o limite superior.
[0220] Quando um valor de amostra de referência esquerda superior é menor que o valor de amostra predita, um limite inferior é obtido ao subtrair valor de amostra predita do valor mínimo da amostra predita, o valor de amostra de referência adicional limiarizado é estabelecido igual ao mínimo de um primeiro valor e um segundo valor:  o primeiro valor é o valor de amostra de referência adicional, e  o segundo valor é o limite inferior.
[0221] A seguir é dada uma explicação das aplicações do método de codificação assim como do método de decodificação tais como mostrados nas modalidades mencionadas anteriormente, e um sistema usando as mesmas.
[0222] A figura 19 é um diagrama de blocos mostrando um sistema de fornecimento de conteúdo 3100 para realizar serviço de distribuição de conteúdo. Este sistema de fornecimento de conteúdo 3100 inclui o dispositivo de captura 3102, o dispositivo terminal 3106 e inclui opcionalmente a tela 3126. O dispositivo de captura 3102 se comunica com o dispositivo terminal 3106 por meio do enlace de comunicação 3104. O enlace de comunicação pode incluir o canal de comunicação 13 descrito acima. O enlace de comunicação 3104 inclui, mas não limitado a isto, WIFI, Ethernet, Cabo, sem fio (3G/4G/5G), USB ou qualquer tipo de combinação dos mesmos ou algo semelhante.
[0223] O dispositivo de captura 3102 gera dados e pode codificar os dados por meio do método de codificação tal como mostrado nas modalidades expostas anteriormente. Alternativamente, o dispositivo de captura 3102 pode distribuir os dados para um servidor de fluxo contínuo (não mostrado nas figuras), e o servidor codifica os dados e transmite os dados codificados para o dispositivo terminal
3106. O dispositivo de captura 3102 inclui, mas não limitado a isto câmera, telefone ou Pad inteligente, computador ou laptop, sistema de videoconferência, PDA, dispositivo montado em veículo, ou uma combinação dos mesmos ou algo semelhante. Por exemplo, o dispositivo de captura 3102 pode incluir o dispositivo de origem 12 tal como descrito acima. Quando os dados incluem vídeo, o codificador de vídeo 20 incluído no dispositivo de captura 3102 pode realmente realizar processamento de codificação de vídeo. Quando os dados incluem áudio (isto é, voz), um codificador de áudio incluído no dispositivo de captura 3102 pode realmente realizar processamento de codificação de áudio. Para alguns cenários práticos, o dispositivo de captura 3102 distribui os dados de vídeo e de áudio codificados ao multiplexar os mesmos conjuntamente. Para outros cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. O dispositivo de captura 3102 distribui os dados de áudio codificados e os dados de vídeo codificados para o dispositivo terminal 3106 separadamente.
[0224] No sistema de fornecimento de conteúdo 3100, o dispositivo terminal 3106 recebe e reproduz os dados codificados. O dispositivo terminal 3106 pode ser um dispositivo com capacidade de recebimento e recuperação de dados, tal como o telefone ou Pad inteligente 3108, o computador ou laptop 3110, o gravador de vídeo de rede (NVR) / gravador de vídeo digital (DVR) 3112, a TV 3114, o conversor de sinais (STB) 3116, o sistema de videoconferência 3118, o sistema de vigilância de vídeo 3120, o assistente digital pessoal (PDA) 3122, o dispositivo montado em veículo 3124 ou uma combinação de qualquer um destes, ou algo semelhante capaz de decodificar os dados codificados mencionados anteriormente. Por exemplo, o dispositivo terminal 3106 pode incluir o dispositivo de destino 14 tal como descrito acima. Quando os dados codificados incluem vídeo, o decodificador de vídeo 30 incluído no dispositivo terminal é priorizado para realizar decodificação de vídeo. Quando os dados codificados incluem áudio, um decodificador de áudio incluído no dispositivo terminal é priorizado para realizar processamento de decodificação de áudio.
[0225] Para um dispositivo terminal com sua tela, por exemplo, o telefone ou Pad inteligente 3108, o computador ou laptop 3110, o gravador de vídeo de rede (NVR) / gravador de vídeo digital (DVR) 3112, a TV 3114, o assistente digital pessoal (PDA) 3122 ou o dispositivo montado em veículo 3124, o dispositivo terminal pode fornecer os dados decodificados para a sua tela. Para um dispositivo terminal sem tela, por exemplo, o STB 3116, o sistema de videoconferência 3118 ou o sistema de vigilância de vídeo 3120, uma tela externa 3126 é contactada a isto para receber e mostrar os dados decodificados.
[0226] Quando cada dispositivo neste sistema executa codificação ou decodificação, o dispositivo de codificação de imagem ou o dispositivo de decodificação imagem, tal como mostrado nas modalidades mencionadas anteriormente, pode ser usado.
[0227] A figura 20 é um diagrama mostrando uma estrutura de um exemplo do dispositivo terminal 3106. Após o dispositivo terminal 3106 receber fluxo do dispositivo de captura 3102, a unidade de procedimento de protocolo 3202 analisa o protocolo de transmissão do fluxo. O protocolo inclui, mas não limitado a isto, Protocolo de Transmissão em Tempo Real (RTSP), Protocolo de Transferência de Hipertexto (HTTP), protocolo de transmissão Ao Vivo HTTP (HLS), MPEG-DASH, protocolo de Transporte em Tempo Real (RTP), Protocolo de Mensagens em Tempo Real (RTMP), ou qualquer tipo de combinação dos mesmos ou algo semelhante.
[0228] Após a unidade de procedimento de protocolo 3202 processar o fluxo, arquivo de fluxo é gerado. O arquivo é enviado para uma unidade de demultiplexação 3204. A unidade de demultiplexação 3204 pode separar os dados multiplexados em dados de áudio codificados e dados de vídeo codificados. Tal como descrito acima, para alguns cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. Nesta situação, os dados codificados são transmitidos para o decodificador de vídeo 3206 e para o decodificador de áudio 3208 sem passar pela unidade de demultiplexação 3204.
[0229] Por meio do processamento de demultiplexação, fluxo elementar de vídeo (ES), ES de áudio e opcionalmente legenda são gerados. O decodificador de vídeo 3206, o qual inclui o decodificador de vídeo 30 tal como explicado nas modalidades mencionadas anteriormente, decodifica o ES de vídeo pelo método de decodificação tal como mostrado nas modalidades mencionadas anteriormente para gerar quadro de vídeo, e fornece estes dados para a unidade síncrona 3212. O decodificador de áudio 3208 decodifica o ES de áudio para gerar quadro de áudio, e fornece estes dados para a unidade síncrona 3212. Alternativamente, o quadro de vídeo pode ser armazenado em um armazenamento temporário (não mostrado na figura 20) antes de ser fornecido para a unidade síncrona 3212. De modo similar, o quadro de áudio pode ser armazenado em um armazenamento temporário (não mostrado na figura 20) antes de ser fornecido para a unidade síncrona 3212.
[0230] A unidade síncrona 3212 sincroniza o quadro de vídeo e o quadro de áudio, e fornece o vídeo/áudio para uma tela de vídeo/áudio 3214. Por exemplo, a unidade síncrona 3212 sincroniza a apresentação da informação de vídeo e áudio. Informação pode ser codificada na sintaxe usando etiquetas de tempo se relacionando com a apresentação de dados de áudio e visuais codificados e etiquetas de tempo se relacionando com a entrega do fluxo de dados propriamente dito.
[0231] Se legenda estiver incluída no fluxo, o decodificador de legenda 3210 decodifica a legenda, e sincroniza a mesma com o quadro de vídeo e o quadro de áudio, e fornece o vídeo/áudio/legenda para uma tela de vídeo/áudio/legenda 3216.
[0232] A presente invenção não está limitada ao sistema mencionado anteriormente, e o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem nas modalidades mencionadas anteriormente pode ser incorporado em outro sistema, por exemplo, em um sistema de carro.
[0233] Embora modalidades da invenção tenham sido descritas principalmente com base em codificação de vídeo, deve ser notado que modalidades do sistema de codificação 10, do codificador 20 e do decodificador 30 (e correspondentemente do sistema 10) e as outras modalidades descritas neste documento também podem ser configuradas para processamento ou codificação de imagem estática, isto é, o processamento ou codificação de uma imagem individual independente de qualquer imagem precedente ou consecutiva tal como em codificação de vídeo. De uma maneira geral somente as unidades de predição inter 244 (codificador) e 344 (decodificador) não precisam estar disponíveis no caso em que a codificação de processamento de imagem é limitada a uma única imagem 17. Todas as outras funcionalidades (também referidas como ferramentas ou tecnologias) do codificador de vídeo 20 e do decodificador de vídeo 30 podem ser usadas igualmente para processamento de imagem estática, por exemplo, o cálculo de residual 204/304, a transformada 206, a quantização 208, a quantização inversa 210/310, a transformada (inversa) 212/312, o particionamento 262/362, a predição intra 254/354 e/ou a filtragem de laço 220, 320, e a codificação de entropia 270 e a decodificação de entropia 304.
[0234] Embora modalidades da invenção tenham sido descrita principalmente com base em codificação de vídeo, deve ser notado que modalidades do sistema de codificação 10, do codificador 20 e do decodificador 30 (e correspondentemente do sistema 10) e as outras modalidades descritas neste documento também podem ser configuradas para processamento ou codificação de imagem estática, isto é, o processamento ou codificação de uma imagem individual independente de qualquer imagem precedente ou consecutiva tal como em codificação de vídeo. De uma maneira geral somente as unidades de predição inter 244 (codificador) e 344 (decodificador) não precisam estar disponíveis no caso em que a codificação de processamento de imagem é limitada a uma única imagem 17. Todas as outras funcionalidades (também referidas como ferramentas ou tecnologias) do codificador de vídeo 20 e do decodificador de vídeo 30 podem ser usadas igualmente para processamento de imagem estática, por exemplo, o cálculo de residual 204/304, transformada 206, a quantização 208, a quantização inversa 210/310, a transformada (inversa) 212/312, o particionamento 262/362, a predição intra 254/354 e/ou a filtragem de laço 220, 320, e a codificação de entropia 270 e a decodificação de entropia 304.
[0235] Modalidades, por exemplo, do codificador 20 e do decodificador 30, e funções descritas neste documento, por exemplo, com referência para o codificador 20 e o decodificador 30, podem ser implementadas em hardware, software, firmware ou em qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em um meio legível por computador ou transmitidas por meio de mídias de comunicação como uma ou mais instruções ou código e executadas por uma unidade de processamento baseada em hardware. Meio legível por computador pode incluir meio de armazenamento legível por computador, o qual corresponde a um meio tangível tal como meio de armazenamento de dados, ou meio de comunicação incluindo qualquer meio que facilite transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Neste modo, meio legível por computador de uma maneira geral pode corresponder a (1) meio de armazenamento tangível legível por computador que não é transitório ou (2) um meio de comunicação tal como um sinal ou onda portadora. Meio de armazenamento de dados pode ser qualquer meio disponível que possa ser acessado por um ou mais computadores ou por um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nesta divulgação. Um produto de programa de computador pode incluir um meio legível por computador.
[0236] A título de exemplo e não de limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco ótico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que possa ser usado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Também, qualquer conexão é denominada de modo apropriado como um meio legível por computador. Por exemplo, se instruções forem transmitidas de um sítio de rede, servidor ou de outra fonte remota usando um cabo coaxial, cabo de fibras óticas, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio tais como infravermelho, rádio e micro-onda, então o cabo coaxial, cabo de fibras óticas, par trançado, DSL ou tecnologias sem fio tais como infravermelho, rádio e micro-onda são incluídos na definição de meio. Deve ser entendido, entretanto, que meios de armazenamento legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transitórios, mas em vez disso são direcionados para meios de armazenamento tangíveis não transitórios. Disco, tal como usado neste documento, inclui disco compacto (CD), disco laser, disco ótico, disco versátil digital (DVD), disco flexível e disco Blue-ray, onde alguns discos usualmente reproduzem dados magneticamente, enquanto que outros discos reproduzem dados oticamente com lasers. Combinações dos indicados acima também devem ser incluídas no escopo de meios legíveis por computador.
[0237] Instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASICs),
matrizes lógicas programáveis em campo (FPGAs) ou outro conjunto de circuitos lógicos integrados ou distintos equivalentes. Portanto, o termo “processador”, tal como usado neste documento, pode se referir a qualquer uma das estruturas indicadas anteriormente ou a qualquer outra estrutura adequada para implementação das técnicas descritas neste documento. Além disso, em alguns aspectos, a funcionalidade descrita neste documento pode ser fornecida dentro de módulos de hardware e/ou de software dedicados configurados para codificação e decodificação, ou incorporada em um codec combinado. Também, as técnicas podem ser implementadas totalmente em um ou mais circuitos ou elementos lógicos. O conjunto de circuitos de processamento mencionado nesta divulgação pode compreender hardware e software.
[0238] As técnicas desta divulgação podem ser implementadas em uma grande variedade de dispositivos ou aparelhos, incluindo um aparelho de telefone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta divulgação para enfatizar aspectos funcionais de dispositivos configurados para realizar as técnicas divulgadas, mas não exigem necessariamente realização por meio de unidades de hardware diferentes. Particularmente, tal como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por meio de uma coleção de unidades de hardware interoperativas, incluindo um ou mais processadores tais como descritos acima, em combinação com software e/ou firmware adequado.

Claims (28)

REIVINDICAÇÕES EMENDADAS
1. Método de predição intra de um bloco de uma imagem, caracterizado pelo fato de que compreende: obter um modo de predição intra de um bloco atual; operação de recorte em combinação de predição dependente de posição (PDPC) é realizada quando o modo de predição intra é modo de predição intra horizontal ou modo de predição intra vertical, e não é realizada quando o modo de predição intra é modo DC ou modo planar.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a operação de recorte em PDPC é realizada somente quando o modo de predição intra é o modo de predição intra horizontal ou o modo de predição intra vertical.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que quando predModeIntra é igual a INTRA_ANGULAR18 ou INTRA_ANGULAR50: predSamples[ x ][ y ] = clip1Cmp( ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] − p[ −1 ][ −1 ] * wTL[ x ][ y ] + ( 64 − wL[ x ] − wT[ y ] + wTL[ x ][ y ] ) * predSamples[ x ][ y ] + 32 ) >> 6 ); em que predModeIntra é usado para indicar o modo de predição intra, {x,y} definem posição de uma amostra predita, wT, wL e wTL são pesos associados com amostras de referência de acordo com a posição definida.
4. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que quando predModeIntra não é igual a INTRA_ANGULAR18 ou INTRA_ANGULAR50 o seguinte se aplica:
predSamples[ x ][ y ] = ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] + ( 64 − wL[ x ] − wT[ y ] ) * predSamples[ x ][ y ] + 32 ) >> 6; em que predModeIntra é usado para indicar o modo de predição intra, {x,y} definem posição de uma amostra predita, wT e wL são pesos associados com amostras de referência de acordo com a posição definida.
5. Método de predição intra de um bloco de uma imagem, caracterizado pelo fato de que compreende: obter um modo de predição intra de um bloco atual; realizar combinação de predição dependente de posição (PDPC) com base na amostra superior ou amostra esquerda quando o modo de predição intra é modo DC ou modo planar, amostra esquerda superior não é usada para combinação de predição dependente de posição (PDPC).
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que quando predModeIntra é igual a INTRA_PLANAR ou INTRA_DC o seguinte se aplica: wT[ y ] = 32 >> ( ( y << 1 ) >> nScale ); wL[ x ] = 32 >> ( ( x << 1 ) >> nScale ); wTL[ x ][ y ] = 0; em que predModeIntra é usado para indicar o modo de predição intra, {x,y} definem posição de uma amostra predita, wT, wL e wTL são pesos associados com amostras de referência de acordo com a posição definida, nScale é um parâmetro de escala.
7. Método de predição intra de um bloco de uma imagem, caracterizado pelo fato de que compreende: obter um valor de amostra predita de um ou mais valores de amostras de referência por meio de predição intra usando um modo de predição intra; obter valores das amostras de referência mais próximas localizadas acima e à esquerda da amostra predita; obter pelo menos um valor de amostra de referência adicional de acordo com o modo de predição intra; obter um valor de amostra de referência adicional limiarizado com base no valor de amostra de referência adicional; calcular um valor adicional do valor de amostra de referência adicional limiarizado; multiplicar o valor de amostra predita por um fator de ponderação de amostra, resultando em um valor de amostra predita ponderada; acrescentar o valor adicional ao valor de amostra predita ponderada, resultando em um valor de amostra predita não normalizada; e normalizar o valor de amostra predita não normalizada, resultando em um valor de amostra predita normalizada.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o modo de predição intra é modo de predição intra vertical, e em que o valor de amostra de referência adicional é estabelecido igual à diferença entre o valor da amostra de referência mais próxima localizada acima da amostra predita e o valor da amostra de referência esquerda superior.
9. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o modo de predição intra é modo de predição intra horizontal, e em que o valor de amostra de referência adicional é estabelecido igual à diferença entre o valor da amostra de referência mais próxima localizada à esquerda da amostra predita e o valor da amostra de referência esquerda superior.
10. Método, de acordo com qualquer uma das reivindicações 7 a 9, caracterizado pelo fato de que obter um valor de amostra de referência adicional limiarizado compreende: limiarizar o valor de amostra de referência adicional quando o modo de predição intra é modo de predição intra horizontal ou modo de predição intra vertical para obter o valor de amostra de referência adicional limiarizado.
11. Método, de acordo com qualquer uma das reivindicações 7 a 9, caracterizado pelo fato de que obter um valor de amostra de referência adicional limiarizado compreende: obter valor de amostra de referência esquerda superior; e atualizar o valor de amostra de referência adicional para obter o valor de amostra de referência adicional limiarizado ao verificar se o valor de amostra de referência adicional é maior que um limite superior ou menor que um limite inferior, em que seleção entre limite superior e limite inferior é realizada de acordo com se o valor de amostra de referência esquerda superior é maior que o valor de amostra predita.
12. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que compreende adicionalmente: derivação dos valores mínimo e máximo da amostra predita.
13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que, quando o valor de amostra de referência esquerda superior é igual ou maior que o valor de amostra predita, o limite superior é obtido ao subtrair valor de amostra predita do valor máximo da amostra predita, o valor de amostra de referência adicional limiarizado é estabelecido igual ao máximo de um primeiro valor e um segundo valor:  o primeiro valor é o valor de amostra de referência adicional, e  o segundo valor é o limite superior.
14. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que, quando o valor de amostra de referência esquerda superior é menor que o valor de amostra predita, o limite inferior é obtido ao subtrair valor de amostra predita do valor mínimo da amostra predita, o valor de amostra de referência adicional limiarizado é estabelecido igual ao mínimo de um primeiro valor e um segundo valor:  o primeiro valor é o valor de amostra de referência adicional, e  o segundo valor é o limite inferior.
15. Método, de acordo com qualquer uma das reivindicações 12 a 14, caracterizado pelo fato de que os valores máximo e mínimo da amostra predita são derivados de valores de conjunto de parâmetros de imagem (PPS), ou indicados em um cabeçalho de fatia.
16. Método, de acordo com qualquer uma das reivindicações 7 a 15, caracterizado pelo fato de que calcular um valor adicional do valor de amostra de referência adicional limiarizado compreende: calcular o valor adicional ao multiplicar um fator de ponderação pelo valor de amostra de referência adicional limiarizado quando o modo de predição intra é horizontal ou vertical.
17. Método, de acordo com qualquer uma das reivindicações 7 a 16, caracterizado pelo fato de que o fator de ponderação de amostra é estabelecido igual a um quando o modo de predição intra é modo de predição intra horizontal ou modo de predição intra vertical.
18. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o modo de predição intra é modo de predição intra DC, e o pelo menos um valor de amostra de referência adicional inclui um primeiro valor de amostra de referência adicional e um segundo valor de amostra de referência adicional, e em que o primeiro valor de amostra de referência adicional e o segundo valor de amostra de referência adicional são obtidos por meio de:  estabelecer o primeiro valor de amostra de referência adicional igual ao valor da amostra de referência mais próxima localizada à esquerda da amostra predita, e estabelecer o segundo valor de amostra de referência adicional igual ao valor da amostra de referência mais próxima localizada acima da amostra predita; em que calcular um valor adicional compreende: calcular uma soma ponderada do primeiro valor de amostra de referência adicional e o segundo valor de amostra de referência adicional quando o modo de predição intra é modo de predição intra DC, em que a soma ponderada é estabelecida como o valor adicional.
19. Aparelho de predição intra de um bloco de uma imagem, caracterizado pelo fato de que compreende: uma unidade de obtenção, configurada para obter um valor de amostra predita de um ou mais valores de amostras de referência por meio de predição intra usando um modo de predição intra, obter pelo menos um valor de amostra de referência adicional de acordo com o modo de predição intra e obter um valor de amostra de referência adicional limiarizado com base no valor de amostra de referência adicional; uma unidade de cálculo, configurada para calcular um valor adicional do valor de amostra de referência adicional limiarizado, multiplicar o valor de amostra predita por um fator de ponderação de amostra, resultando em um valor de amostra predita ponderada, acrescentar o valor adicional ao valor de amostra predita ponderada, resultando em um valor de amostra predita não normalizada, e normalizar o valor de amostra predita não normalizada, resultando em um valor de amostra predita normalizada.
20. Dispositivo para codificar ou decodificar uma imagem, caracterizado pelo fato de que compreende um conjunto de circuitos de processamento configurado para realizar o método conforme definido em qualquer uma das reivindicações 1 a 4.
21. Dispositivo para codificar ou decodificar uma imagem, caracterizado pelo fato de que compreende um conjunto de circuitos de processamento configurado para realizar o método conforme definido na reivindicação 5 ou
6.
22. Dispositivo para codificar ou decodificar uma imagem, caracterizado pelo fato de que compreende um conjunto de circuitos de processamento configurado para realizar o método conforme definido em qualquer uma das reivindicações 7 a 18.
23. Dispositivo para codificar ou decodificar uma imagem, caracterizado pelo fato de que compreende: um ou mais processadores; e um meio de armazenamento não transitório legível por computador acoplado aos processadores e armazenando instruções para execução pelos processadores, em que as instruções, quando executadas pelos processadores, configuram o dispositivo para executar o método conforme definido em qualquer uma das reivindicações 1 a 4, em que o dispositivo é um codificador ou um decodificador.
24. Dispositivo para codificar ou decodificar uma imagem, caracterizado pelo fato de que compreende: um ou mais processadores; e um meio de armazenamento não transitório legível por computador acoplado aos processadores e armazenando instruções para execução pelos processadores, em que as instruções, quando executadas pelos processadores, configuram o dispositivo para executar o método conforme definido na reivindicação 5 ou 6, em que o dispositivo é um codificador ou um decodificador.
25. Dispositivo para codificar ou decodificar uma imagem, caracterizado pelo fato de que compreende: um ou mais processadores; e um meio de armazenamento não transitório legível por computador acoplado aos processadores e armazenando instruções para execução pelos processadores, em que as instruções, quando executadas pelos processadores, configuram o dispositivo para executar o método conforme definido em qualquer uma das reivindicações 7 a 18, em que o dispositivo é um codificador ou um decodificador.
26. Meio de gravação não transitória, caracterizado pelo fato de que inclui um fluxo de bits codificados preditivos decodificados por um aparelho, o fluxo de bits sendo gerado conforme definido em qualquer uma das reivindicações 1 a 4.
27. Meio de gravação não transitória, caracterizado pelo fato de que inclui um fluxo de bits codificados preditivos decodificados por um aparelho, o fluxo de bits sendo gerado conforme definido na reivindicação 5 ou 6.
28. Meio de gravação não transitória, caracterizado pelo fato de que inclui um fluxo de bits codificados preditivos decodificados por um aparelho, o fluxo de bits sendo gerado conforme definido em qualquer uma das reivindicações 7 a 18.
Dispositivo de origem Dispositivo de destino 12 14
Fonte de imagem Dispositivo de exibição 16 34 dados de imagem 17 dados de imagem pós-processados 33 Pré-processador Pós-processador 18 32 dados de imagem 1/24 pré-processados 19 dados de imagem decodificados 31 Codificador Decodificador 20 30
Petição 870210058938, de 29/06/2021, pág. 156/189 dados de imagem dados de imagem canal de codificados 21 codificados 21 comunicação Interface de 13 Interface de comunicação comunicação 22 28
10 FIGURA 1A
Dispositivo(s) de Antena Imageamento 41 42
Unidade(s) de Processamento 46 Conjunto de Circuitos Lógicos 47
Codificador de Decodificador Vídeo 20 de Vídeo 30 2/24
Processador(s) 43
Petição 870210058938, de 29/06/2021, pág. 157/189 Armazenamento(s) Dispositivo de de Memória 44 Exibição 45
Sistema de Codificação de Vídeo 40
FIGURA 1B
BR112021012949-9A 2018-12-29 2019-12-30 Aparelho, método de predição intra de bloco de imagem, dispositivo para codificar ou decodificar imagem e gravação não transitória BR112021012949A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862786349P 2018-12-29 2018-12-29
US62/786,349 2018-12-29
US201962821422P 2019-03-20 2019-03-20
US62/821,422 2019-03-20
PCT/RU2019/050262 WO2020139173A1 (en) 2018-12-29 2019-12-30 Method and apparatus for intra prediction

Publications (1)

Publication Number Publication Date
BR112021012949A2 true BR112021012949A2 (pt) 2021-09-14

Family

ID=71129644

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021012949-9A BR112021012949A2 (pt) 2018-12-29 2019-12-30 Aparelho, método de predição intra de bloco de imagem, dispositivo para codificar ou decodificar imagem e gravação não transitória

Country Status (7)

Country Link
US (2) US11601653B2 (pt)
EP (1) EP3891977A4 (pt)
KR (1) KR20210075201A (pt)
CN (2) CN113170100A (pt)
BR (1) BR112021012949A2 (pt)
MX (1) MX2021007841A (pt)
WO (1) WO2020139173A1 (pt)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11445174B2 (en) * 2019-05-06 2022-09-13 Tencent America LLC Method and apparatus for video coding
US11595665B2 (en) * 2021-02-11 2023-02-28 Qualcomm Incorporated Upsampling reference pixels for intra-prediction in video coding
KR102582419B1 (ko) * 2021-08-04 2023-09-26 한국과학기술원 인 메모리 컴퓨팅을 통해 컨벌루션 뉴럴 네트워크 연산을 수행하는 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2375749B1 (en) * 2005-10-11 2016-11-23 Nokia Technologies Oy System and method for efficient scalable stream adaptation
EP4325865A3 (en) * 2011-11-11 2024-05-29 GE Video Compression, LLC Effective partition coding with high degree of partitioning freedom
US9161039B2 (en) * 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
ES2907602T3 (es) * 2014-12-31 2022-04-25 Nokia Technologies Oy Predicción entre capas para la codificación y decodificación de vídeo escalable
CN107071417B (zh) * 2017-04-10 2019-07-02 电子科技大学 一种用于视频编码的帧内预测方法
US10638126B2 (en) * 2017-05-05 2020-04-28 Qualcomm Incorporated Intra reference filter for video coding
US10911765B2 (en) * 2018-08-01 2021-02-02 Tencent America LLC Method and apparatus for video coding
US10491893B1 (en) * 2018-08-29 2019-11-26 Tencent America LLC Method and apparatus for multi-line intra prediction
US11509908B2 (en) * 2018-09-11 2022-11-22 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
US11652984B2 (en) * 2018-11-16 2023-05-16 Qualcomm Incorporated Position-dependent intra-inter prediction combination in video coding

Also Published As

Publication number Publication date
EP3891977A1 (en) 2021-10-13
KR20210075201A (ko) 2021-06-22
US11601653B2 (en) 2023-03-07
WO2020139173A1 (en) 2020-07-02
CN113170100A (zh) 2021-07-23
CN116567207A (zh) 2023-08-08
CN116567207B (zh) 2024-02-13
US20210314576A1 (en) 2021-10-07
MX2021007841A (es) 2021-10-26
EP3891977A4 (en) 2022-06-22
US20240015304A1 (en) 2024-01-11

Similar Documents

Publication Publication Date Title
ES2966479T3 (es) Un codificador, un decodificador y métodos correspondientes para la intrapredicción
BR112021004984A2 (pt) aparelho e método para quantização inversa
BR122023024004A2 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR112021010123A2 (pt) Método de predição intra de um bloco de uma imagem
BR112021016677A2 (pt) Método e aparelho para predição inter baseada em afim de sub-blocos de croma
BR112021013163A2 (pt) Método e aparelho de predição de bloco de croma
BR112020026818A2 (pt) codificador, decodificador e métodos correspondentes de derivação de resistência de limite de filtro de desbloqueio
BR112021016560A2 (pt) Método e aparelho para predição intra usando modelo linear
BR112021003999A2 (pt) relação entre elementos de restrição de partição
BR112021012949A2 (pt) Aparelho, método de predição intra de bloco de imagem, dispositivo para codificar ou decodificar imagem e gravação não transitória
BR122023020161A2 (pt) Processo de codificação para modo de partição geométrica
BR112021016270A2 (pt) Método de codificação de vídeo e codificador, decodificador, meio legível por computador
BR112021010286A2 (pt) codificador, decodificador e métodos correspondentes de construção de lista de modos mais prováveis para blocos com predição de múltiplas hipóteses
BR112021011723A2 (pt) Método e aparelho de predição intra e codificador, decodificador, programa de computador, mídia de armazenamento não transitória, e fluxo de bits
BR112021009911A2 (pt) codificador, decodificador e métodos correspondentes usando armazenamento de mv compacto
BR112021009922A2 (pt) Método de construir uma lista de mesclagens candidata para modo de cópia de intrabloco, codificador, decodificador, produto de programa de computador e dispositivo de decodificação de dados de vídeo
BR112021006909A2 (pt) aparelho e método para filtro de desblocagem em codificação de vídeo
BR112021013565A2 (pt) Codificador, decodificador, meio legível por computador não transitório e método de codificação de vídeo de um bloco de uma imagem
BR112021009099A2 (pt) codificador de vídeo, decodificador de vídeo e métodos de codificação ou decodificação de uma imagem
BR112021003946A2 (pt) codificador de vídeo, decodificador de vídeo e métodos correspondentes
BR112020025155A2 (pt) método e aparelho para predição intra
US11438629B2 (en) Method and apparatus for hierarchical signaling of enabling and disabling prediction mechanisms for video coding
WO2021054868A1 (en) Method and apparatus for intra prediction

Legal Events

Date Code Title Description
B154 Notification of filing of divisional application [chapter 15.50 patent gazette]

Free format text: O PEDIDO FOI DIVIDIDO NO BR122022026814-5 PROTOCOLO 870220122810 EM 28/12/2022 10:16.