BR112021014202A2 - Sinalização de informações de reformulação em malha usando conjuntos de parâmetros - Google Patents

Sinalização de informações de reformulação em malha usando conjuntos de parâmetros Download PDF

Info

Publication number
BR112021014202A2
BR112021014202A2 BR112021014202-9A BR112021014202A BR112021014202A2 BR 112021014202 A2 BR112021014202 A2 BR 112021014202A2 BR 112021014202 A BR112021014202 A BR 112021014202A BR 112021014202 A2 BR112021014202 A2 BR 112021014202A2
Authority
BR
Brazil
Prior art keywords
video
block
conversion
video block
domain
Prior art date
Application number
BR112021014202-9A
Other languages
English (en)
Inventor
Li Zhang
Kai Zhang
Hongbin Liu
Jizheng Xu
Yue Wang
Original Assignee
Beijing Bytedance Network Technology Co., Ltd.
Bytedance Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Bytedance Network Technology Co., Ltd., Bytedance Inc. filed Critical Beijing Bytedance Network Technology Co., Ltd.
Priority claimed from PCT/CN2020/074139 external-priority patent/WO2020156529A1/en
Publication of BR112021014202A2 publication Critical patent/BR112021014202A2/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)

Abstract

sinalização de informações de reformulação em malha usando conjuntos de parâmetros. um método para processamento de vídeo é provido incluindo desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que um conjunto de parâmetros na representação codificada compreende informações de parâmetro para o modo de codificação.

Description

SINALIZAÇÃO DE INFORMAÇÕES DE REFORMULAÇÃO EM MALHA USANDO CONJUNTOS DE PARÂMETROS REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[0001] Este pedido é baseado no Pedido de Patente Internacional Nº PCT/CN2020/074139, depositado em 1 de fevereiro de 2020, o qual reivindica a prioridade e benefícios do Pedido de Patente Internacional Nº PCT/CN2019/074437, depositado em 1 de fevereiro de 2019. Todos os pedidos de patente mencionados acima são incorporados no presente pedido de patente por referência em sua totalidade.
CAMPO TÉCNICO
[0002] Este documento de patente se refere a sistemas, dispositivos e técnicas de processamento de vídeo.
ANTECEDENTES
[0003] A despeito dos avanços em compressão de vídeo, o vídeo digital ainda contabiliza pelo maior uso de largura de banda na Internet e em outras redes de comunicação digital. À medida que aumenta o número de dispositivos de usuário conectados capazes de receber e exibir vídeo, espera-se que a demanda de largura de banda para uso de vídeo digital continue a crescer.
SUMÁRIO
[0004] Dispositivos, sistemas e métodos relacionados ao processamento de vídeo digital e, especificamente, a reformulação em malha (ILR) para processamento de vídeo são descritos. Os métodos descritos podem ser aplicados a ambos os padrões de processamento de vídeo existentes (por exemplo, codificação de vídeo de alta eficiência (HEVC)) e aos padrões de processamento de vídeo ou processadores de vídeo futuros, incluindo codecs de vídeo.
[0005] Em um aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Esse método inclui desempenhar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, um processo de refinamento de informações de movimento com base em amostras em um primeiro domínio ou um segundo domínio; e desempenhar a conversão com base em um resultado do processo de refinamento de informações de movimento, em que, durante a conversão, as amostras são obtidas para o bloco de vídeo atual a partir de um primeiro bloco de predição no primeiro domínio usando informações de movimento não refinadas, pelo menos um segundo bloco de predição é gerado no segundo domínio usando informações de movimento refinadas usadas para determinar um bloco de reconstrução e as amostras reconstruídas do bloco de vídeo atual são geradas com base em pelo menos o segundo bloco de predição.
[0006] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que, durante a conversão, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, em que uma ferramenta de codificação é aplicada durante a conversão usando parâmetros que são derivados pelo menos com base no primeiro conjunto de amostras em uma região de vídeo do vídeo e no segundo conjunto de amostras em uma imagem de referência do bloco de vídeo atual, e em que um domínio para as primeiras amostras e um domínio para as segundas amostras estão alinhados.
[0007] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui determinar, para um bloco de vídeo atual de uma região de vídeo atual de um vídeo, um parâmetro para um modo de codificação do bloco de vídeo atual com base em um ou mais parâmetros para um modo de codificação de uma região de vídeo anterior; e desempenhar uma codificação para o bloco de vídeo atual para gerar uma representação codificada do vídeo com base na determinação, e em que o parâmetro para o modo de codificação está incluído em um conjunto de parâmetros na representação codificada do vídeo, e em que o desempenho da codificação compreende transformar uma representação do bloco de vídeo atual em um primeiro domínio para uma representação do bloco de vídeo atual em um segundo domínio, e em que, durante o desempenho da codificação usando o modo de codificação, o bloco de vídeo atual é construído com base no primeiro domínio e o segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0008] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui receber uma representação codificada de um vídeo, incluindo um conjunto de parâmetros incluindo informações de parâmetros para um modo de codificação; e desempenhar uma decodificação da representação codificada usando as informações de parâmetros para gerar um bloco de vídeo atual de uma região de vídeo atual do vídeo a partir da representação codificada, e em que as informações de parâmetros para o modo de codificação são com base em um ou mais parâmetros para o modo de codificação de uma região de vídeo anterior, em que, no modo de codificação, o bloco de vídeo atual é construído com base no primeiro domínio e o segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0009] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, e em que a conversão inclui aplicar uma operação de filtragem a um bloco de predição em um primeiro domínio ou em um segundo domínio diferente a partir do primeiro domínio.
[0010] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que, durante a conversão, um bloco de reconstrução final é determinado para o bloco de vídeo atual e em que o bloco de reconstrução temporário é gerado usando um método de predição e representado no segundo domínio.
[0011] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que um conjunto de parâmetros na representação codificada compreende informações de parâmetros para o modo de codificação
[0012] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, em que, durante a conversão, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio, e em que a conversão inclui adicionalmente aplicar um processo de reformulação direta e/ou um processo de reformulação inversa a um ou mais componentes de croma do bloco de vídeo atual.
[0013] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um bloco de croma de vídeo atual de um vídeo e uma representação codificada do vídeo, em que o desempenho da conversão inclui: determinar se escalamento de resíduo de croma dependente de luma (LCRS) está habilitado ou desabilitado com base em uma regra, e reconstruir o bloco de croma de vídeo atual com base na determinação.
[0014] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui determinar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, se deve desabilitar uso de um modo de codificação com base em um ou mais valores de coeficiente do bloco de vídeo atual; e desempenhar a conversão com base na determinação, em que, durante a conversão usando o modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0015] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui dividir, para uma conversão entre um bloco de vídeo atual de um vídeo que excede uma unidade de pipeline de dados virtual (VPDU) do vídeo, o bloco de vídeo atual em regiões; e desempenhar a conversão ao aplicar um modo de codificação separadamente a cada região, em que, durante a conversão ao aplicar o modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0016] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui determinar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, se deve desabilitar o uso de um modo de codificação com base em um tamanho ou um formato de cor do bloco de vídeo atual; e desempenhar a conversão com base na determinação, em que, durante a conversão usando o modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0017] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que pelo menos um elemento de sintaxe na representação codificada provê uma indicação de um uso do modo codificado e uma indicação de um modelo de reformulação.
[0018] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui determinar que um modo de codificação está desabilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e saltar condicionalmente uma reformulação direta e/ou reformulação inversa com base na determinação, em que, no modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0019] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que a reformulação direta múltipla e/ou a reformulação inversa múltipla são aplicadas no modo de reformulação para a região de vídeo.
[0020] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo de paleta em que pelo menos uma paleta de valores de amostra representativos é usada para o bloco de vídeo atual, e em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou o resíduo de croma é escalado em uma maneira dependente de luma.
[0021] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de paleta em que pelo menos uma paleta de valores de amostra representativos é usada para codificação do bloco de vídeo atual; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que, quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base no resíduo de croma que é escalado em uma maneira dependente de luma.
[0022] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um primeiro modo de codificação e um modo de codificação de paleta em que pelo menos uma paleta de valores de pixel representativos é usada para codificar o bloco de vídeo atual; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo que é codificado sem usar o modo de codificação de paleta e uma representação codificada do vídeo, e em que a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e segundo bloco de vídeo.
[0023] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, e desempenhar a conversão usando um modo de cópia de bloco intra que gera um bloco de predição usando pelo menos um vetor de bloco apontando para uma imagem que inclui o bloco de vídeo atual, e em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0024] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de cópia de bloco intra (IBC) que gera um bloco de predição usando pelo menos um vetor de bloco apontando para um quadro de vídeo contendo o bloco de vídeo atual para codificar o bloco de vídeo atual; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0025] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de cópia de bloco intra que gera um bloco de predição usando pelo menos um vetor de bloco apontando para um quadro de vídeo contendo o atual bloco de vídeo e um primeiro modo de codificação; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo que é codificado sem usar o modo de cópia de bloco intra e uma representação codificada do vídeo, em que a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0026] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo de modulação por código de pulso delta baseada em bloco (BDPCM), em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0027] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado usando um modo de modulação por código de pulso delta baseada em bloco (BDPCM); e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0028] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de modulação por código de pulso delta baseada em bloco (BDPCM); e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma apresentação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo de BDPCM e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0029] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo de salto de transformada no qual uma transformada em uma predição residual é saltada na codificação do bloco de vídeo atual, em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou o resíduo de croma é escalado em uma maneira dependente de luma.
[0030] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de salto de transformada no qual uma transformada em uma predição residual é saltada na codificação do bloco de vídeo atual; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0031] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de salto de transformada no qual uma transformada em uma predição residual é saltada na codificação do bloco de vídeo atual; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma representação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo de salto de transformada e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0032] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo de modulação por código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização de domínio de transformada, em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou o resíduo de croma é escalado em uma maneira dependente de luma.
[0033] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de modulação por código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização no domínio da transformada; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0034] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de modulação por código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização de domínio de transformada; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma apresentação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo de modulação por código intrapulso e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0035] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo transquant- bypass modificado no qual o bloco de vídeo atual é codificado de maneira sem perdas sem uma transformada e uma quantização, em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou o resíduo de croma é escalado em uma maneira dependente de luma.
[0036] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo transquant-bypass no qual o bloco de vídeo atual é codificado de maneira sem perdas sem uma transformada e uma quantização; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0037] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Este método inclui desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo transquant-bypass no qual o bloco de vídeo atual é codificado de maneira sem perdas sem uma transformada e uma quantização; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma apresentação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo transquant-bypass e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação,
em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0038] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Esse método inclui desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um o segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um conjunto de parâmetros que é diferente de um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de imagem (PPS) ou um conjunto de parâmetros de adaptação (APS) usado para portar parâmetros de filtragem adaptativa de malha (ALF).
[0039] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Esse método inclui desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um conjunto de parâmetros de adaptação (APS) juntamente com informações de filtragem adaptativa de malha (ALF), em que as informações usadas para o modo de codificação e as informações ALF estão incluídas em uma unidade NAL.
[0040] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Esse método inclui desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um primeiro tipo de conjunto de parâmetros de adaptação (APS) que é diferente de um segundo tipo de APS usado para sinalizar informações de filtragem adaptativa de malha (ALF).
[0041] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Esse método inclui desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que a região de vídeo não é permitida a se referir a um conjunto de parâmetros de adaptação ou um conjunto de parâmetros que é sinalizado antes de um tipo especificado de estrutura de dados usada para processar o vídeo, e em que o tipo especificado da estrutura de dados é sinalizado antes da região de vídeo.
[0042] Em outro aspecto representativo, a tecnologia divulgada pode ser usada para prover um método para processamento de vídeo. Esse método inclui desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que um elemento de sintaxe de um conjunto de parâmetros incluindo parâmetros usados para processar o vídeo tem valores predefinidos em um bitstream de conformidade.
[0043] Em outro aspecto representativo, o método acima descrito é incorporado na forma de código executável por processador e armazenado em um meio de programa legível por computador.
[0044] Em outro aspecto representativo, é divulgado um dispositivo que está configurado ou operável para desempenhar o método descrito acima. O dispositivo pode incluir um processador que está programado para implementar este método.
[0045] Em outro aspecto representativo, um aparelho decodificador de vídeo pode implementar um método como descrito na presente invenção.
[0046] O acima e outros aspectos e características da tecnologia divulgada são descritos em mais detalhes nos desenhos, na descrição e nas reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0047] A figura 1 mostra um exemplo de construção de uma lista de candidatos de mesclagem.
[0048] A figura 2 mostra um exemplo de posições de candidatos espaciais.
[0049] A figura 3 mostra um exemplo de pares de candidatos sujeitos a uma verificação de redundância de candidatos de mesclagem espacial.
[0050] As figuras 4A e 4B mostram exemplos da posição de uma segunda unidade de predição (PU) com base no tamanho e na forma do bloco atual.
[0051] A figura 5 mostra um exemplo de escalamento de vetor de movimento para candidatos de mesclagem temporal.
[0052] A figura 6 mostra um exemplo de posições candidatas para candidatos de mesclagem temporal.
[0053] A figura 7 mostra um exemplo de gerar um candidato de mesclagem bipreditiva combinada.
[0054] A figura 8 mostra um exemplo de construir candidatos de predição de vetor de movimento.
[0055] A figura 9 mostra um exemplo de escalamento de vetor de movimento para candidatos de vetor de movimento espacial.
[0056] A figura 10 mostra um exemplo de predição de movimento usando o algoritmo de predição de vetor de movimento temporal alternativo (ATMVP) para uma unidade de codificação (CU).
[0057] A figura 11 mostra um exemplo de uma unidade de codificação (CU) com sub-blocos e blocos vizinhos usados pelo algoritmo de predição de vetor de movimento espaço-temporal (STMVP).
[0058] A figura 12 mostra um exemplo de amostras vizinhas para derivar parâmetros de compensação de iluminação (IC).
[0059] As figuras 13A e 13B mostram exemplos do modelo afim de 4 parâmetros simplificado e do modelo afim de 6 parâmetros simplificado, respectivamente.
[0060] A figura 14 mostra um exemplo de um campo de vetor de movimento afim (MVF) por sub-bloco.
[0061] As figuras 15A e 15B mostram exemplos dos modelos afins de 4 parâmetros e 6 parâmetros, respectivamente.
[0062] A figura 16 mostra um exemplo de predição de vetor de movimento para AF_INTER para candidatos afins herdados.
[0063] A figura 17 mostra um exemplo de predição de vetor de movimento para AF_INTER para candidatos afins construídos.
[0064] As figuras 18A e 18B mostram blocos candidatos exemplares e a derivação de preditor de CPMV, respectivamente, para o modo AF_MERGE.
[0065] A figura 19 mostra um exemplo de posições candidatas para o modo de mesclagem afim.
[0066] A figura 20 mostra um exemplo de um processo de busca de UMVE.
[0067] A figura 21 mostra um exemplo de um ponto de busca de UMVE.
[0068] A figura 22 mostra um exemplo de refinamento de vetor de movimento no lado do decodificador (DMVR) com base em correspondência de template bilateral.
[0069] A figura 23 mostra um fluxograma exemplar de um fluxo de decodificação com reformulação.
[0070] A figura 24 mostra um exemplo de amostras vizinhas utilizadas em um filtro bilateral.
[0071] A figura 25 mostra um exemplo de janelas cobrindo duas amostras utilizadas em cálculos de peso.
[0072] A figura 26 mostra um exemplo de um padrão de varredura.
[0073] A figura 27 mostra um exemplo de um processo de decodificação de modo inter.
[0074] A figura 28 mostra outro exemplo de um processo de decodificação de modo inter.
[0075] A figura 29 mostra um exemplo de um processo de decodificação de modo inter com filtros de pós-reconstrução.
[0076] A figura 30 mostra outro exemplo de um processo de decodificação de modo inter com filtros de pós-reconstrução.
[0077] As figuras 31A e 31B mostram fluxogramas de métodos exemplares para processamento de vídeo.
[0078] As figuras 32A a 32D mostram fluxogramas de métodos exemplares para processamento de vídeo.
[0079] A figura 33 mostra um fluxograma de um método exemplar para processamento de vídeo.
[0080] As figuras 34A e 34B mostram fluxogramas de métodos exemplares para processamento de vídeo.
[0081] As figuras 35A a 35F mostram fluxogramas de métodos exemplares para processamento de vídeo.
[0082] As figuras 36A a 36C mostram fluxogramas de métodos exemplares para processamento de vídeo.
[0083] As figuras 37A a 37C mostram fluxogramas de métodos exemplares para processamento de vídeo.
[0084] As figuras 38A a 38L mostram fluxogramas de métodos exemplares para processamento de vídeo.
[0085] As figuras 39A a 39E mostram fluxogramas de métodos exemplares para processamento de vídeo.
[0086] As figuras 40A e 40B mostram exemplos de plataformas de hardware para implementar uma técnica de decodificação de mídia visual ou uma codificação de mídia visual descrita no presente documento.
DESCRIÇÃO DETALHADA
[0087] Devido à crescente demanda por vídeo de alta resolução, métodos e técnicas de processamento de vídeo são onipresentes na tecnologia moderna. Os codecs de vídeo tipicamente incluem um circuito eletrônico ou software que comprime ou descomprime o vídeo digital e estão sendo continuamente aprimorados para prover eficiência de codificação superior. Um codec de vídeo converte o vídeo não comprimido para um formato comprimido ou vice-versa. Existem relações complexas entre a qualidade de vídeo, a quantidade de dados usados para representar o vídeo (determinado pela taxa de bits), a complexidade dos algoritmos de codificação e decodificação, sensibilidade a erros e perdas de dados, facilidade de edição, acesso aleatório e atraso de ponta a ponta (latência).
O formato comprimido usualmente está em conformidade com um padrão de especificação de compressão de vídeo, por exemplo, o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) (também conhecido como H.265 ou MPEG-H Parte 2), o padrão de Codificação de Vídeo Versátil a ser finalizado, ou outros padrões de codificação de vídeo atuais e/ou futuros.
[0088] As modalidades da tecnologia divulgada podem ser aplicadas aos padrões de codificação de vídeo existentes (por exemplo, HEVC, H.265) e aos padrões futuros para aprimorar o desempenho de compressão. Os títulos das seções são usados no presente documento para aprimorar a legibilidade da descrição e não limitam de forma alguma a discussão ou as modalidades (e/ou implementações) a apenas as respectivas seções. 1 Exemplos de interpredição em HEVC/H.265
[0089] Os padrões de codificação de vídeo foram aprimorados significativamente ao longo dos anos, e agora proveem, em parte, alta eficiência de codificação e suporte para resoluções superiores. Padrões recentes tais como HEVC e H.265 são baseados na estrutura de codificação de vídeo híbrida em que a predição temporal mais a codificação de transformada são utilizadas.
1.1 Exemplos de modos de predição
[0090] Cada PU (unidade de predição) interpredita tem parâmetros de movimento para uma ou duas listas de imagens de referência. Em algumas modalidades, os parâmetros de movimento incluem um vetor de movimento e um índice de imagens de referência. Em outras modalidades, uso de uma das duas listas de imagens de referência também pode ser sinalizado usando inter_pred_idc. Em ainda outras modalidades, os vetores de movimento podem ser explicitamente codificados como deltas relativos aos preditores.
[0091] Quando uma CU é codificada com o modo de salto, uma PU é associada à CU e não há coeficientes residuais significativos, nenhum delta de vetor de movimento codificado ou índice de imagens de referência. Um modo de mesclagem é especificado por meio do qual os parâmetros de movimento para a PU atual são obtidos a partir de PUs vizinhas, incluindo candidatos espaciais e temporais. O modo de mesclagem pode ser aplicado a qualquer PU interpredita, não apenas para o modo de salto. A alternativa ao modo de mesclagem é a transmissão explícita de parâmetros de movimento, em que os vetores de movimento (para ser mais preciso, diferenças do vetor de movimento (MVD) comparadas a um preditor de vetor de movimento), índice de imagens de referência correspondente para cada lista de imagens de referência e uso da lista de imagens de referência são sinalizados explicitamente por cada PU. Este tipo de modo é denominado predição de vetor de movimento avançada (AMVP) neste documento.
[0092] Quando a sinalização indica que uma das duas listas de imagens de referência deve ser usada, a PU é produzida a partir de um bloco de amostras. Isso é referido como “unipredição”. A unipredição está disponível para ambas as fatias P e fatias B.
[0093] Quando a sinalização indica que ambas das listas de imagens de referência devem ser usadas, a PU é produzida a partir de dois blocos de amostras. Isso é referido como “bipredição”. A bipredição está disponível apenas para fatias B. Lista de imagens de referência
[0094] Em HEVC, o termo interpredição é usado para denotar predição derivada a partir de elementos de dados (por exemplo, valores de amostra ou vetores de movimento) de imagens de referência diferentes da imagem decodificada atual. Como em H.264/AVC, uma imagem pode ser predita a partir de múltiplas imagens de referência. As imagens de referência que são usadas para interpredição são organizadas em uma ou mais listas de imagens de referência. O índice de referência identifica qual das imagens de referência na lista deve ser usada para criar o sinal de predição.
[0095] Uma única lista de imagens de referência, Lista 0, é usada para uma fatia P e duas listas de imagens de referência, Lista 0 e Lista 1 são usadas para fatias B. Deve-se notar que as imagens de referência incluídas na Lista 0/1 podem ser de imagens passadas e futuras em termos de ordem de captura/exibição.
1.1.1 Modalidades de construção de candidatos para modo de mesclagem
[0096] Quando uma PU é predita usando modo de mesclagem, um índice apontando para um lançamento na lista de candidatos de mesclagem é analisado a partir do bitstream e usado para recuperar as informações de movimento. A construção desta lista pode ser sumarizada de acordo com a seguinte sequência de etapas: Etapa 1: Derivação de candidatos iniciais Etapa 1.1: Derivação de candidatos espaciais Etapa 1.2: Verificação de redundância para candidatos espaciais Etapa 1.3: Derivação de candidatos temporais Etapa 2: Inserção de candidatos adicionais Etapa 2.1: Criação de candidatos bipreditivos Etapa 2.2: Inserção de candidatos de movimento zero
[0097] A figura 1 mostra um exemplo de construção de uma lista de candidatos de mesclagem com base na sequência de etapas sumarizada acima. Para derivação de candidato de mesclagem espacial, um máximo de quatro candidatos de mesclagem são selecionados dentre os candidatos que estão localizados em cinco posições diferentes. Para derivação de candidato de mesclagem temporal, um máximo de um candidato de mesclagem é selecionado dentre dois candidatos. Uma vez que número constante de candidatos para cada PU é assumido no decodificador, candidatos adicionais são gerados quando o número de candidatos não atinge o número máximo de candidatos de mesclagem (MaxNumMergeCand) o qual é sinalizado no cabeçalho da fatia. Uma vez que o número de candidatos é constante, o índice de melhores candidatos de mesclagem é codificado usando a binarização unária truncada (TU). Se o tamanho da CU for igual a 8, todas as PUs da CU atual compartilham uma única lista de candidatos de mesclagem, a qual é idêntica à lista de candidatos de mesclagem da unidade de predição 2N×2N.
1.1.2 Construindo candidatos de mesclagem espacial
[0098] Na derivação de candidatos de mesclagem espacial, um máximo de quatro candidatos de mesclagem são selecionados dentre candidatos localizados nas posições retratadas na figura 2. A ordem de derivação é A1, B1, B0, A0 e B2. A posição B2 é considerada apenas quando qualquer PU de posição A1, B1, B0, A0 não está disponível (por exemplo, porque pertence a outra fatia ou ladrilho) ou é intracodificada. Depois do candidato na posição A1 ser adicionado, a adição dos candidatos remanescentes está sujeita a uma verificação de redundância a qual garante que os candidatos com as mesmas informações de movimento sejam excluídos a partir da lista para que a eficiência da codificação seja aprimorada.
[0099] Para reduzir a complexidade computacional, nem todos os pares de candidatos possíveis são considerados na verificação de redundância mencionada. Em vez disso, apenas os pares ligados com uma seta na figura 3 são considerados e um candidato só é adicionado à lista se o candidato correspondente usado para verificação de redundância não tiver as mesmas informações de movimento. Outra fonte de informações de movimento duplicadas é a “segunda PU” associada com partições diferentes a partir de 2Nx2N. Como um exemplo, a figura 4A e 4B retratam a segunda PU para o caso de N×2N e 2N×N, respectivamente. Quando a PU atual é particionada como N×2N, o candidato na posição A1 não é considerado para construção de lista. Em algumas modalidades, adicionar este candidato pode levar a duas unidades de predição tendo as mesmas informações de movimento, o que é redundante para ter apenas uma PU em uma unidade de codificação. De maneira similar, a posição B1 não é considerada quando a PU atual é particionada como 2N×N.
1.1.3 Construindo candidatos de mesclagem temporal
[0100] Nesta etapa, apenas um candidato é adicionado à lista. Particularmente, na derivação deste candidato de mesclagem temporal, um vetor de movimento escalado é derivado com base na PU colocalizada pertencente à imagem a qual tenha a menor diferença de POC com a imagem atual dentro da lista de imagens de referência dada. A lista de imagens de referência a ser usada para derivação da PU colocalizada é explicitamente sinalizada no cabeçalho de fatia.
[0101] A figura 5 mostra um exemplo da derivação do vetor de movimento escalado para um candidato de mesclagem temporal (como a linha pontilhada), o qual é escalado a partir do vetor de movimento do PU colocalizada usando as distâncias de POC, tb e td, onde tb é definido para ser a diferença de POC entre a imagem de referência da imagem atual e a imagem atual e td é definido para ser a diferença de POC entre a imagem de referência da imagem colocalizada e a imagem colocalizada. O índice de imagens de referência de um candidato de mesclagem temporal é estabelecido igual a zero. Para uma fatia B, dois vetores de movimento, um é para a lista de imagens de referência 0 e o outro é para a lista de imagens de referência 1, são obtidos e combinados para fazer o candidato de mesclagem bipreditiva.
[0102] Na PU (Y) colocalizada pertencente ao quadro de referência, a posição para o candidato temporal é selecionada entre os candidatos C0 e C1, conforme retratado na figura 6. Se a PU na posição C0 não está disponível, é intracodificada, ou está fora da CTU atual, a posição C1 é usada. Caso contrário,
a posição C0 é usada na derivação do candidato de mesclagem temporal.
1.1.4 Construindo tipos adicionais de candidatos de mesclagem
[0103] Além dos candidatos de mesclagem espaço-temporal, há dois tipos adicionais de candidatos de mesclagem: candidato de mesclagem bipreditivo combinado e candidato de mesclagem zero. Candidatos de mesclagem bipreditivos combinados são gerados ao utilizar candidatos de mesclagem espaço-temporais. Um candidato de mesclagem bipreditivo combinado é usado apenas para fatia B. Os candidatos bipreditivos combinados são gerados ao combinar os parâmetros de movimento da primeira lista de imagens de referência de um candidato inicial com os parâmetros de movimento da segunda lista de imagens de referência de outro. Se essas duas tuplas proverem hipóteses de movimento diferentes, elas formarão um novo candidato bipreditivo.
[0104] A figura 7 mostra um exemplo desse processo, em que os dois candidatos na lista original (710, à esquerda), os quais têm mvL0 e refIdxL0 ou mvL1 e refIdxL1, são usados para criar um candidato de mesclagem bipreditivo combinado adicionado à lista final (720, à direita). Existem inúmeras regras relativas às combinações que são consideradas para gerar esses candidatos de mesclagem adicionais.
[0105] Candidatos de movimento zero são inseridos para preencher as entradas remanescentes na lista de candidatos de mesclagem e, portanto, atingir a capacidade MaxNumMergeCand. Esses candidatos têm deslocamento espacial zero e um índice de imagens de referência o qual começa a partir de zero e aumenta toda vez que um novo candidato de movimento zero é adicionado à lista. O número de quadros de referência usados por esses candidatos é um e dois para predição uni e bidirecional, respectivamente. Em algumas modalidades, nenhuma verificação de redundância é desempenhada nesses candidatos.
1.2 Modalidades de predição de vetor de movimento avançadas (AMVP)
[0106] A AMVP explora a correlação espaço-temporal do vetor de movimento com PUs vizinhas, a qual é usada para transmissão explícita de parâmetros de movimento. Ele constrói uma lista de candidatos de vetor de movimento ao verificar primeiro a disponibilidade da esquerda, acima temporariamente das posições de PU vizinhas, removendo candidatos redundantes e adicionando vetor zero para fazer com que a lista de candidatos tenha comprimento constante. Então, o codificador pode selecionar o melhor preditor a partir da lista de candidatos e transmitir o índice correspondente indicando o candidato escolhido. De maneira similar à sinalização de índice de mesclagem, o índice do melhor candidato de vetor de movimento é codificado usando um unário truncado. O valor máximo a ser codificado neste caso é 2 (ver figura 8). Nas seções a seguir, detalhes sobre o processo de derivação do candidato de predição de vetor de movimento são providos.
1.2.1 Exemplos de derivação de candidatos de AMVP
[0107] A figura 8 sumariza o processo de derivação para o candidato de predição de vetor de movimento e pode ser implementada para cada lista de imagens de referência com refidx como uma entrada.
[0108] Na predição de vetor de movimento, dois tipos de candidatos de vetor de movimento são considerados: candidato de vetor de movimento espacial e candidato de vetor de movimento temporal. Para a derivação de candidato de vetor de movimento espacial, dois candidatos de vetor de movimento são eventualmente derivados com base em vetores de movimento de cada PU localizados em cinco posições diferentes, como previamente mostrado na figura 2.
[0109] Para derivação de candidato de vetor de movimento temporal, um candidato de vetor de movimento é selecionado a partir de dois candidatos, os quais são derivados com base em duas posições diferentes colocalizadas. Após a primeira lista de candidatos espaço-temporais ser feita, os candidatos de vetor de movimento duplicados na lista são removidos. Se o número de candidatos potenciais for maior que dois, os candidatos de vetor de movimento cujo índice de imagens de referência dentro da lista de imagens de referência associada é maior que 1 são removidos da lista. Se o número de candidatos de vetor de movimento espaço-temporal for menor que dois, candidatos de vetor de movimento zero adicionais são adicionados à lista.
1.2.2 Construindo candidatos de vetor de movimento espacial
[0110] Na derivação de candidatos de vetor de movimento espacial, um máximo de dois candidatos são considerados entre cinco candidatos potenciais, os quais são derivados a partir de PUs localizadas em posições como previamente mostrado na figura 2, essas posições sendo as mesmas como aquelas da mesclagem de movimento. A ordem de derivação para o lado esquerdo da PU atual é definida como A0, A1, e A0 escalado, A1 escalado. A ordem de derivação para o lado acima da PU atual é definida como B0, B1, B2, B0 escalado, B1 escalado, B2 escalado. Para cada lado, há, portanto, quatro casos que podem ser usados como candidatos de vetor de movimento, com dois casos em que não é necessário usar escalamento espacial e dois casos em que escalamento espacial é usado. Os quatro diferentes casos são sumarizados conforme segue: -- Sem escalamento espacial (1) Mesma lista de imagens de referência e mesmo índice de imagens de referência (mesmo POC) (2) Lista de imagens de referência diferente, mas mesma imagem de referência (mesmo POC) -- Escalamento espacial
(3) Mesma lista de imagens de referência, mas diferentes imagens de referência (POC diferente) (4) Lista de imagens de referência diferente e imagens de referência diferente (POC diferente)
[0111] Os casos de escalamento não espacial são verificados primeiro, seguidos pelos casos que permitem escalamento espacial. O escalamento espacial é considerado quando o POC é diferente entre a imagem de referência da PU vizinha e aquela da PU atual, independentemente da lista de imagens de referência. Se todas as PUs dos candidatos à esquerda não estiverem disponíveis ou forem intracodificados, o escalamento para o vetor de movimento acima é permitido para ajudar a derivação paralela dos candidatos de MV à esquerda e acima. Caso contrário, o escalamento espacial não é permitido para o vetor de movimento acima.
[0112] Como mostrado no exemplo na figura 9, para o caso de escalamento espacial, o vetor de movimento da PU vizinha é escalado em uma maneira semelhante como para escalamento temporal. Uma diferença é que a lista de imagens de referência e o índice de PU atual são dados como entrada; o processo de escalamento real é o mesmo como aquele do escalamento temporal.
1.2.3 Construindo candidatos de vetor de movimento temporal
[0113] Exceto para a derivação do índice de imagens de referência, todos os processos para a derivação de candidatos de mesclagem temporal são os mesmos como para a derivação de candidatos de vetor de movimento espacial (como mostrado no exemplo da figura 6). Em algumas modalidades, o índice de imagens de referência é sinalizado ao decodificador.
2. Exemplo de métodos de interpredição no Modelo de Exploração Conjunta (JEM)
[0114] Em algumas modalidades, as futuras tecnologias de codificação de vídeo são exploradas usando um software de referência conhecido como o Modelo de Exploração Conjunta (JEM). No JEM, a predição com base em sub- bloco é adotada em diversas ferramentas de codificação, como predição afim, predição de vetor de movimento temporal alternativo (ATMVP), predição de vetor de movimento espaço-temporal (STMVP), fluxo óptico bidirecional (BIO), Conversão Ascendente de Taxa de Quadros (FRUC), Resolução de Vetor de Movimento Localmente Adaptativa (LAMVR), Compensação de Movimento de Bloco Sobreposto (OBMC), Compensação de Iluminação Local (LIC) e Refinamento de Vetor de Movimento no Lado do Decodificador (DMVR).
2.1 Exemplos de predição de vetor de movimento com base em Sub-CU
[0115] No JEM com quadtrees mais árvores binárias (QTBT), cada CU pode ter no máximo um conjunto de parâmetros de movimento para cada direção de predição. Em algumas modalidades, dois métodos de predição de vetor de movimento de nível de sub-CU são considerados no codificador ao separar uma grande CU em sub-CUs e derivando informações de movimento para todas as sub-CUs da grande CU. O método de predição de vetor de movimento temporal alternativo (ATMVP) permite que cada CU colete múltiplos conjuntos de informações de movimento a partir de múltiplos blocos menores que a CU atual na imagem de referência colocalizada. No método de predição de vetor de movimento espacial-temporal (STMVP) vetores de movimento das sub-CUs são derivados recursivamente usando o preditor de vetor de movimento temporal e vetor de movimento vizinho espacial. Em algumas modalidades, e para preservar o campo de movimento mais exato para predição de movimento de sub-CU, a compressão de movimento para os quadros de referência pode ser desabilitada.
2.1.1 Exemplos de predição de vetor de movimento temporal alternativo (ATMVP)
[0116] No método de ATMVP, o método de predição de vetor de movimento temporal (TMVP) é modificado ao coletar múltiplos conjuntos de informações de movimento (incluindo vetores de movimento e índices de referência) a partir de blocos menores que a CU atual.
[0117] A figura 10 mostra um exemplo de processo de predição de movimento de ATMVP para uma CU 1000. O método de ATMVP prediz os vetores de movimento das sub-CUs 1001 dentro de uma CU 1000 em duas etapas. A primeira etapa é identificar o bloco correspondente 1051 em uma imagem de referência 1050 com um vetor temporal. A imagem de referência 1050 também é referida como a imagem de fonte de movimento. A segunda etapa é separar a CU 1000 atual em sub-CUs 1001 e obter os vetores de movimento, bem como os índices de referência de cada sub-CU a partir do bloco correspondente a cada sub-CU.
[0118] Na primeira etapa, uma imagem de referência 1050 e o bloco correspondente são determinados pelas informações de movimento dos blocos vizinhos espaciais da CU 1000 atual. Para evitar o processo de varredura repetitivo de blocos vizinhos, o primeiro candidato de mesclagem na lista de candidatos de mesclagem da CU 1000 atual é usado. O primeiro vetor de movimento disponível, bem como seu índice de referência associado são estabelecidos para serem o vetor temporal e o índice para a imagem fonte de movimento. Desta forma, o bloco correspondente pode ser identificado com mais exatidão, em comparação com TMVP, em que o bloco correspondente (às vezes chamado de bloco colocalizado) está sempre em uma posição mais baixa direita ou central relativa à CU atual.
[0119] Na segunda etapa, um bloco correspondente da sub-CU 1051 é identificado pelo vetor temporal na imagem fonte de movimento 1050, ao adicionar à coordenada da CU atual o vetor temporal. Para cada sub-CU, as informações de movimento de seu bloco correspondente (por exemplo, a menor grade de movimento que cobre a amostra central) são usadas para derivar as informações de movimento para a sub-CU. Após as informações de movimento de um bloco N×N correspondente serem identificadas, são convertidas aos vetores de movimento e índices de referência da sub-CU atual, da mesma forma que TMVP de HEVC, em que o escalamento de movimento e outros procedimentos se aplicam. Por exemplo, o decodificador verifica se a condição de baixo atraso (por exemplo, os POCs de todas as imagens de referência da imagem atual são menores que o POC da imagem atual) é atendida e possivelmente usa o vetor de movimento MVx (por exemplo, o vetor de movimento correspondente à lista de imagens de referência X) para predizer o vetor de movimento MVy (por exemplo, com X sendo igual a 0 ou 1 e Y sendo igual a 1−X) para cada sub-CU.
2.1.2 Exemplos de predição de vetor de movimento espaço-temporal (STMVP)
[0120] No método de STMVP, os vetores de movimento das sub-CUs são derivados recursivamente, seguindo a ordem de varredura de raster. A figura 11 mostra um exemplo de uma CU com quatro sub-blocos e blocos vizinhos. Considere uma CU 1100 8×8 que inclui quatro sub-CUs 4×4 A (1101), B (1102), C (1103) e D (1104). Os blocos 4×4 vizinhos no quadro atual são rotulados como a (1111), b (1112), c (1113) e d (1114).
[0121] A derivação de movimento para sub-CU A começa identificando seus dois vizinhos espaciais. O primeiro vizinho é o bloco N×N acima da sub-CU A 1101 (bloco c 1113). Se este bloco c (1113) não estiver disponível ou for intracodificado, os outros blocos N×N acima da sub-CU A (1101) são verificados (da esquerda para a direita, começando no bloco c 1113). O segundo vizinho é um bloco à esquerda da sub-CU A 1101 (bloco b 1112). Se o bloco b (1112) não estiver disponível ou estiver intracodificado, outros blocos à esquerda da sub-CU
A 1101 são verificados (a partir do mais alto para mais baixo, começando no bloco b 1112). As informações de movimento obtidas a partir dos blocos vizinhos para cada lista são escaladas para o primeiro quadro de referência para uma dada lista. Em seguida, o preditor de vetor de movimento temporal (TMVP) do sub-bloco A 1101 é derivado seguindo o mesmo procedimento de derivação de TMVP como especificado em HEVC. As informações de movimento do bloco colocalizado no bloco D 1104 são coletadas e escaladas de acordo. Finalmente, após recuperar e escalar as informações de movimento, todos os vetores de movimento disponíveis são calculados separadamente para cada lista de referência. O vetor de movimento médio é atribuído como o vetor de movimento da sub-CU atual.
2.1.3 Exemplos de sinalização de modo de predição de movimento de sub-
CU
[0122] Em algumas modalidades, os modos de sub-CU são habilitados como candidatos de mesclagem adicionais e não há nenhum elemento de sintaxe adicional necessário para sinalizar os modos. Dois candidatos de mesclagem adicionais são adicionados à lista de candidatos de mesclagem de cada CU para representar o modo de ATMVP e o modo de STMVP. Em outras modalidades, podem ser usados até sete candidatos de mesclagem, se o conjunto de parâmetros de sequência indicar que ATMVP e STMVP estão habilitados. A lógica de codificação dos candidatos de mesclagem adicionais é a mesma que para os candidatos de mesclagem no HM, o que significa que, para cada CU na fatia P ou B, mais duas verificações de RD podem ser necessárias para os dois candidatos de mesclagem adicionais. Em algumas modalidades, por exemplo, JEM, todos os bins do índice de mesclagem são codificados por contexto por CABAC (Codificação Aritmética Binária Adaptativa Baseada em Contexto). Em outras modalidades, por exemplo, HEVC, apenas o primeiro bin é codificado por contexto e os bins remanescentes são codificados por by-pass de contexto.
2.2 Exemplo de compensação de iluminação local (LIC) em JEM
[0123] A Compensação de Iluminação Local (LIC) é baseada em um modelo linear para alterações de iluminação, usando um fator de escalamento a e um desvio b. E é habilitada ou desabilitada de maneira adaptativa para cada unidade de codificação (CU) codificada de modo inter.
[0124] Quando a LIC se aplica a uma CU, um método de erro dos mínimos quadrados é empregado para derivar os parâmetros a e b ao usar as amostras vizinhas da CU atual e suas amostras de referência correspondentes. Mais especificamente, como ilustrado na figura 12, as amostras vizinhas subamostradas (subamostragem 2:1) da CU e as amostras correspondentes (identificadas pelas informações de movimento da CU atual ou sub-CU) na imagem de referência são usadas.
2.2.1 Derivação de blocos de predição
[0125] Os parâmetros de IC são derivados e aplicados para cada direção de predição separadamente. Para cada direção de predição, um primeiro bloco de predição é gerado com as informações de movimento decodificadas, então um bloco de predição temporário é obtido via aplicação do modelo LIC. Posteriormente, os dois blocos de predição temporários são utilizados para derivar o bloco de predição final.
[0126] Quando uma CU é codificada com modo de mesclagem, a flag de LIC é copiada a partir dos blocos vizinhos, em uma forma semelhante à cópia de informações de movimento no modo de mesclagem; caso contrário, uma flag de LIC é sinalizada para a CU para indicar se LIC se aplica ou não.
[0127] Quando LIC está habilitada para uma imagem, verificação de RD de nível de CU adicional é necessária para determinar se a LIC é aplicada ou não para uma CU. Quando LIC está habilitada para uma CU, a média removida de soma de diferença absoluta (MR-SAD) e a média removida de soma de diferença de transformada de Hadamard absoluta (MR-SATD) são usadas, em vez de SAD e SATD, para busca de movimento de pel inteiro e busca de movimento de pel fracionário, respectivamente.
[0128] Para reduzir a complexidade de codificação, o seguinte esquema de codificação é aplicado no JEM: A LIC é desabilitada para a imagem inteira quando não há alterações de iluminação óbvia entre a imagem atual e suas imagens de referência. Para identificar esta situação, os histogramas de uma imagem atual e cada imagem de referência da imagem atual são calculados no codificador. Se a diferença de histograma entre a imagem atual e cada imagem de referência da imagem atual for menor que um dado limite, LIC é desabilitada para a imagem atual; caso contrário, LIC é habilitada para a imagem atual.
2.3 Exemplo de métodos de interpredição em VVC
[0129] Existem várias novas ferramentas de codificação para aprimoramento de interpredição, tais como Resolução de diferença de vetor de movimento adaptativa (AMVR) para sinalizar MVD, modo de predição afim, modo de predição triangular (TPM), ATMVP, Bipredição Generalizada (GBI), Fluxo Ótico Bidirecional (BIO).
2.3.1 Exemplos de estrutura de bloco de codificação em VVC
[0130] Em VVC, uma estrutura QuadTree/BinaryTree/MulitpleTree (QT/BT/TT) é adotada para dividir uma imagem em blocos quadrados ou retangulares. Além de QT/BT/TT, árvore separada (também conhecida como árvore de codificação dupla) também é adotada no VVC para quadros I. Com árvore separada, a estrutura de bloco de codificação é sinalizada separadamente para os componentes luma e croma.
2.3.2 Exemplos de resolução de diferença de vetor de movimento adaptativo
[0131] Em algumas modalidades, diferenças de vetor de movimento (MVDs) (entre o vetor de movimento e o vetor de movimento predito de uma PU) são sinalizadas em unidades de amostras de quarto de luma quando use_integer_mv_flag é igual a 0 no cabeçalho de fatia. No JEM, uma resolução de vetor de movimento localmente adaptativa (LAMVR) é introduzida. No JEM, MVD pode ser codificada em unidades de amostras de quarto de luma, amostras de inteiro de luma ou quatro amostras de luma. A resolução de MVD é controlada no nível da unidade de codificação (CU) e flags de resolução de MVD são sinalizadas condicionalmente para cada CU que tem pelo menos um componentes de MVD diferente de zero.
[0132] Para uma CU que tem pelo menos um componentes de MVD diferente de zero, uma primeira flag é sinalizada para indicar se a precisão de MV de amostra de quarto de luma é usada na CU. Quando a primeira flag (igual a 1) indica que a precisão de MV de amostra de quarto de luma não é usada, outra flag é sinalizada para indicar se a precisão de MV de amostra de inteiro de luma ou precisão de MV de quatro amostras de luma é usada.
[0133] Quando a primeira flag de resolução de MVD de uma CU é zero, ou não codificada para uma CU (significando que todas as MVDs na CU são zero), a resolução de MV de amostra de quarto de luma é usada para a CU. Quando uma CU usa precisão de MV de amostra de inteiro de luma ou precisão de MV de quatro amostras de luma, as MVPs na lista de candidatos de AMVP para a CU são arredondadas para a precisão correspondente.
2.3.3 Exemplos de predição de compensação de movimento afim
[0134] Em HEVC, apenas um modelo de movimento de translação é aplicado para predição de compensação de movimento (MCP). No entanto, a câmera e os objetos podem ter muitos tipos de movimento, por exemplo, zoom in/out, rotação, movimentos de perspectiva e/ou outros movimentos irregulares. Em VVC, uma predição de compensação de movimento de transformada afim simplificada é aplicada com o modelo afim de 4 parâmetros e modelo afim de 6 parâmetros. Como mostrado nas figuras 13A e 13B, o campo de movimento afim do bloco é descrito por dois (no modelo afim de 4 parâmetros que usa as variáveis a, b, e e f) ou três (no modelo afim de 6 parâmetros que usa as variáveis a, b, c, d, e e f) vetores de movimento de pontos de controle, respectivamente.
[0135] O campo de vetor de movimento (MVF) de um bloco é descrito pela seguinte equação com o modelo afim de 4 parâmetros e modelo afim de 6 parâmetros, respectivamente:  h (mv1h − mv0h ) (mv1v − mv0v )  mv ( x , y ) = ax − by + e = x − y + mv0h  w w  mv v ( x, y ) = bx + ay + f = (mv1 − mv0 ) x + (mv1 − mv0 ) y + mv v v v h h   w w 0 Eq. (1)  h (mv1h − mv0h ) (mv2h − mv0h )  mv ( x , y ) = ax + cy + e = x + y + mv0h  w h  mv v ( x, y ) = bx + dy + f = (mv1 − mv0 ) x + (mv2 − mv0 ) y + mv v v v v v   w h 0 Eq. (2)
[0136] Na presente invenção, (mvh0, mvh0) é o vetor de movimento do ponto de controle (CP) do canto mais alto esquerdo, e (mvh1, mvh1) é o vetor de movimento do ponto de controle do canto mais alto direito e (mvh2, mvh2) é o vetor de movimento do ponto de controle do canto mais baixo esquerdo, (x, y) representa a coordenada de um ponto representativo relativo à amostra mais alta esquerda dentro do bloco atual. Os vetores de movimento de CP podem ser sinalizados (como no modo AMVP afim) ou derivados instantaneamente (como no modo de mesclagem afim). O w e h são a largura e a altura do bloco atual. Na prática, a divisão é implementada por deslocamento para a direita com uma operação de arredondamento. Em VTM, o ponto representativo é definido como a posição central de um sub-bloco, por exemplo, quando a coordenada do canto mais alto esquerdo de um sub-bloco relativo à amostra mais alta esquerda dentro do bloco atual é (xs, ys), a coordenada do ponto representativo é definida para ser (xs+2, ys+2). Para cada sub-bloco (por exemplo, 4×4 em VTM), o ponto representativo é utilizado para derivar o vetor de movimento para todo o sub- bloco.
[0137] A figura 14 mostra um exemplo de MVF afim por sub-bloco para um bloco 1300, em que de forma a adicionalmente simplificar a predição de compensação de movimento, a predição de transformada afim com base em sub-bloco é aplicada. Para derivar o vetor de movimento de cada sub-bloco M×N, o vetor de movimento da amostra central de cada sub-bloco pode ser calculado de acordo com as Equações (1) e (2), e arredondado para a precisão da fração do vetor de movimento (por exemplo, 1/16 em JEM). Então, os filtros de interpolação de compensação de movimento podem ser aplicados para gerar a predição de cada sub-bloco com vetor de movimento derivado. Os filtros de interpolação para 1/16-pel são introduzidos pelo modo afim. Após o MCP, o vetor de movimento de alta precisão de cada sub-bloco é arredondado e salvo com a mesma precisão do vetor de movimento normal.
2.3.3.1 Exemplos para sinalização de predição afim
[0138] Semelhante ao modelo de movimento translacional, também existem dois modos para sinalizar as informações laterais devido à predição afim. Eles são os modos AFFINE_INTER e AFFINE_MERGE.
2.3.3.2 Exemplos de modo AF_INTER
[0139] Para CUs com ambos largura e altura maiores que 8, o modo AF_INTER pode ser aplicado. Uma flag afim em nível de CU é sinalizada no bitstream para indicar se o modo AF_INTER é usado.
[0140] Neste modo, para cada lista de imagens de referência (Lista 0 ou
Lista 1), uma lista de candidatos de AMVP afins é construída com três tipos de preditores de movimento afim na seguinte ordem, em que cada candidato inclui os CPMVs estimados do bloco atual. As diferenças dos melhores CPMVs encontrados no lado do codificador (tal como 𝑚𝑚𝑚𝑚0 𝑚𝑚𝑚𝑚1 𝑚𝑚𝑚𝑚2 na figura 17) e os CPMVs estimados são sinalizados. Além disso, o índice de candidatos de AMVP afim a partir do qual os CPMVs estimados são derivados é sinalizado adicionalmente. 1) Preditores de movimento afim herdados
[0141] A ordem de verificação é semelhante à dos MVPs espaciais na construção de listas de HEVC AMVP. Primeiro, um preditor de movimento afim herdado à esquerda é derivado a partir do primeiro bloco em {A1, A0} que é codificado por afinidade e tem a mesma imagem de referência como no bloco atual. Segundo, um preditor de movimento afim herdado acima é derivado a partir do primeiro bloco em {B1, B0, B2} que é codificado por afinidade e tem a mesma imagem de referência como no bloco atual. Os cinco blocos A1, A0, B1, B0, B2 são retratados na figura 16
[0142] Uma vez que um bloco vizinho é descoberto a ser codificado com modo afim, os CPMVs da unidade de codificação que cobre o bloco vizinho são usados para derivar preditores de CPMVs do bloco atual. Por exemplo, se A1 for codificado com o modo não afim e A0 for codificado com o modo afim de 4 parâmetros, o preditor de MV afim herdado esquerdo será derivado a partir de A0. Neste caso, os CPMVs de uma CU cobrindo A0, conforme denotado por 𝑀𝑀𝑀𝑀0𝑁𝑁 para o CPMV esquerdo mais alto e 𝑀𝑀𝑀𝑀1𝑁𝑁 para o CPMV direito mais alto na figura 18B são utilizados para derivar os CPMVs estimados do bloco atual, denotados por 𝑀𝑀𝑀𝑀0𝐶𝐶 , 𝑀𝑀𝑀𝑀1𝐶𝐶 , 𝑀𝑀𝑀𝑀2𝐶𝐶 para as posições esquerda mais alta (com coordenada (x0, y0)), direita mais alta (com coordenada (x1, y1)) e direita mais baixa (com coordenada (x2, y2)) do bloco atual.
2 ) Preditores de movimento afim construídos
[0143] Um preditor de movimento afim construído consiste de vetores de movimento de ponto de controle (CPMVs) que são derivados a partir de blocos intercodificados vizinhos, como mostrado na figura 17, que têm a mesma imagem de referência. Se o modelo de movimento afim atual é afim de 4 parâmetros, o número de CPMVs é 2, caso contrário, se o modelo de movimento afim atual é afim de 6 parâmetros, o número de CPMVs é 3. O CPMV mais alto �����0 é derivado pelo MV no primeiro bloco no grupo {A, B, C} que é esquerdo 𝒎𝒎𝒎𝒎 intercodificado e tem a mesma imagem de referência como no bloco atual. O 𝒎𝒎𝒎𝒎1 é derivado pelo MV no primeiro bloco no grupo {D, CPMV mais alto direito ����� E} que é intercodificado e tem a mesma imagem de referência como no bloco atual. O CPMV mais baixo esquerdo ����� 𝒎𝒎𝒎𝒎2 é derivado pelo MV no primeiro bloco no grupo {F, G} que é intercodificado e tem a mesma imagem de referência como no bloco atual. – Se o modelo de movimento afim atual é afim de 4 parâmetros, então um preditor de movimento afim construído será inserido na lista de candidatos apenas se ambos ����� 𝒎𝒎𝒎𝒎0 e 𝒎𝒎𝒎𝒎 �����1 são encontrados, isto é, ����� 𝒎𝒎𝒎𝒎0 e 𝒎𝒎𝒎𝒎 �����1 são usados como os CPMVs estimados para as posições esquerda mais alta (com coordenada (x0, y0)), direita mais alta (com coordenada (x1, y1)) do bloco atual. – Se o modelo de movimento afim atual é afim de 6 parâmetros, então um preditor de movimento afim construído é inserido na lista de candidatos �����0 , 𝒎𝒎𝒎𝒎 apenas se 𝒎𝒎𝒎𝒎 �����1 e ����� 𝒎𝒎𝒗𝒗2 são todos fundados, isto é, ����� 𝒎𝒎𝒎𝒎0 , ����� 𝒎𝒎𝒎𝒎1 e 𝒎𝒎𝒎𝒎 �����2 são usados como os CPMVs estimados para as posições esquerda mais alta (com coordenada (x0, y0)), direita mais alta (com coordenada (x1, y1)) e direita mais baixa (com coordenada (x2, y2)) do bloco atual.
[0144] Nenhum processo de poda é aplicado ao inserir um preditor de movimento afim construído na lista de candidatos.
3 ) Preditores de movimento AMVP normais
[0145] O seguinte se aplica até que o número de preditores de movimento afim alcance o máximo. 1) Derivar um preditor de movimento afim ao estabelecer todos os 𝒎𝒎𝒎𝒎2 se disponível. CPMVs iguais a ����� 2) Derivar um preditor de movimento afim ao estabelecer todos os 𝒎𝒎𝒎𝒎1 se disponível. CPMVs iguais a ����� 3) Derivar um preditor de movimento afim ao estabelecer todos os CPMVs iguais a ����� 𝒎𝒎𝒎𝒎0 se disponível. 4) Derivar um preditor de movimento afim ao estabelecer todos os CPMVs iguais a HEVC TMVP, se disponível. 5) Derivar um preditor de movimento afim ao estabelecer todos os CPMVs para zero MV.
[0146] Nota-se que 𝒎𝒎𝒎𝒎 �����𝑖𝑖 já é derivado no preditor de movimento afim construído.
[0147] No modo AF_INTER, quando o modo afim de 4/6 parâmetros é usado, 2/3 pontos de controle são necessários e, portanto, 2/3 MVD precisam ser codificados para esses pontos de controle, conforme mostrado nas figuras 15A e 15B. Em uma implementação existente, o MV pode ser derivado da conforme segue, por exemplo, prediz mvd1 e mvd2 a partir de mvd0.
[0148] �����0 + 𝒎𝒎𝒎𝒎𝒎𝒎0 𝒎𝒎𝒎𝒎0 = 𝒎𝒎𝒎𝒎
[0149] 𝒎𝒎𝒎𝒎1 = ����� 𝒎𝒎𝒎𝒎1 + 𝒎𝒎𝒎𝒎𝒎𝒎1 + 𝒎𝒎𝒎𝒎𝒎𝒎0
[0150] �����2 + 𝒎𝒎𝒎𝒎𝒎𝒎2 + 𝒎𝒎𝒎𝒎𝒎𝒎0 𝒎𝒎𝒎𝒎2 = 𝒎𝒎𝒎𝒎
[0151] Na presente invenção, 𝒎𝒎𝒎𝒎 �����𝑖𝑖 , mvdi e mv1 são o vetor de movimento predito, diferença de vetor de movimento e o vetor de movimento do pixel esquerdo mais alto (i = 0), pixel direito mais alto (i = 1) ou pixel esquerdo mais baixo (i = 2), respectivamente, como mostrado na figura 15B. Em algumas modalidades, a adição de dois vetores de movimento (por exemplo, mvA (xA, yA) e mvB (xB, yB)) é igual à soma de dois componentes separadamente. Por exemplo, newMV = mvA + mvB implica que os dois componentes de newMV são estabelecidos como (xA + xB) e (yA + yB), respectivamente.
2.3.3.3 Exemplos de modo AF_MERGE
[0152] Quando uma CU é aplicada no modo AF_MERGE, ele obtém o primeiro bloco codificado com um modo afim a partir dos blocos reconstruídos vizinhos válidos. E a ordem de seleção para o bloco candidato é a partir da esquerda, acima, direita acima, esquerda mais baixo para esquerda acima, conforme mostrado na figura 18A (denotado por A, B, C, D, E em ordem). Por exemplo, se o bloco mais baixo esquerdo vizinho é codificado no modo afim, conforme denotado por A0 na figura 18B, os vetores de movimento do Ponto de Controle (CP) mv0N, mv1N e mv2N do canto mais alto esquerdo, canto direito acima e canto mais baixo esquerdo da CU/PU vizinha a qual contém o bloco A são coletados. E o vetor de movimento mv0C, mv1C e mv2C (o qual é usado apenas para o modelo afim de 6 parâmetros) do canto mais alto esquerdo/mais alto direito/mais baixo esquerdo na CU/PU atual é calculado com base em mv0N, mv1N e mv2N. Deve-se notar que em VTM-2.0, o sub-bloco (por exemplo, bloco 4×4 em VTM) localizado no canto mais alto esquerdo armazena mv0, o sub-bloco localizado no canto mais alto direito armazena mv1 se o bloco atual for codificado afim. Se o bloco atual estiver codificado com o modelo afim de 6 parâmetros, o sub-bloco localizado no canto esquerdo mais baixo armazena mv2; caso contrário (com o modelo afim de 4 parâmetros), LB armazena mv2’. Outros sub-blocos armazenam os MVs usados para MC.
[0153] Depois que o CPMV da CU v0 e v1 atuais são computados de acordo com o modelo de movimento afim nas Equações (1) e (2), o MVF da CU atual pode ser gerado. A fim de identificar se a CU atual está codificada com modo
AF_MERGE, uma flag afim pode ser sinalizada no bitstream quando há pelo menos um bloco vizinho codificado no modo afim.
[0154] Em algumas modalidades (por exemplo, JVET-L0142 e JVET-L0632), uma lista de candidatos de mesclagem afim pode ser construída com as seguintes etapas: 1) Inserir candidatos afins herdados
[0155] Candidato afim herdado significa que o candidato é derivado do modelo de movimento afim de seu bloco codificado afim vizinho válido. O máximo de dois candidatos afim herdados são derivados do modelo de movimento afim dos blocos vizinhos e inseridos na lista de candidatos. Para o preditor esquerdo, a ordem de varredura é {A0, A1}; para o preditor acima, a ordem de varredura é {B0, B1, B2}. 2) Inserir candidatos afim construídos
[0156] Se o número de candidatos na lista de candidatos de mesclagem afim for menor que MaxNumAffineCand (estabelecido como 5 nesta contribuição), os candidatos afim construídos são inseridos na lista de candidatos. Candidato afim construído significa que o candidato é construído combinando as informações de movimento vizinho de cada ponto de controle. a) As informações de movimento para os pontos de controle são primeiramente derivadas a partir dos vizinhos espaciais e vizinhos temporais especificados mostrados na figura 19. CPk (k=1, 2, 3, 4) representa o k-ésimo ponto de controle. A0, A1, A2, B0, B1, B2 e B3 são posições espaciais para predizer CPk (k=1, 2, 3); T é a posição temporal para predizer CP4.
[0157] As coordenadas de CP1, CP2, CP3 e CP4 são (0, 0), (W, 0), (H, 0) e (W, H), respectivamente, onde W e H são a largura e a altura do bloco atual.
[0158] As informações de movimento de cada ponto de controle são obtidas de acordo com a seguinte ordem de prioridade:
[0159] Para CP1, a prioridade de verificação é B2  B3  A2. B2 é usado se estiver disponível. Caso contrário, se B2 estiver indisponível, B3 é usado. Se ambos B2 e B3 estiverem indisponíveis, A2 é usado. Se todos os três candidatos estiverem indisponíveis, as informações de movimento do CP1 não podem ser obtidas.
[0160] Para CP2, a prioridade de verificação é B1  B0.
[0161] Para CP3, a prioridade de verificação é A1  A0.
[0162] Para CP4, T é usado. b) Em segundo lugar, as combinações de pontos de controle são usadas para construir um candidato de mesclagem afim. I. Informações de movimento de três pontos de controle são necessárias para construir um candidato afim de 6 parâmetros. Os três pontos de controle podem ser selecionados a partir de uma das seguintes quatro combinações ({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}). As combinações {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4} serão convertidas a um modelo de movimento de 6 parâmetros representado por pontos de controle mais alto esquerdo, mais alto direito e mais baixo esquerdo. II. As informações de movimento de dois pontos de controle são necessárias para construir um candidato afim de 4 parâmetros. Os dois pontos de controle podem ser selecionados a partir de uma das seguintes seis combinações ({CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4}). As combinações {CP1, CP4}, {CP2, CP3}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4} serão convertidas a um modelo de movimento de 4 parâmetros representado por pontos de controle mais alto esquerdo e mais alto direito. III. As combinações de candidatos afim construídos são inseridas na lista de candidatos conforme a ordem a seguir:
{CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}, {CP2, CP3}, {CP1, CP4}, {CP2, CP4}, {CP3, CP4} i. Para a lista de referência X (X sendo 0 ou 1) de uma combinação, o índice de referência com a razão de uso mais alta nos pontos de controle é selecionado como o índice de referência da lista X, e os pontos de vetores de movimento para a imagem de referência de diferença será escalado.
[0163] Depois que um candidato é derivado, o processo de poda completo é desempenhado para verificar se o mesmo candidato foi inserido na lista. Se existir um mesmo candidato, o candidato derivado será descartado. 3) Preenchimento com vetores de movimento zero
[0164] Se o número de candidatos na lista de candidatos de mesclagem afim é inferior a 5, vetores de movimento zero com índices de referência zero são inseridos na lista de candidatos, até que a lista esteja cheia.
[0165] Mais especificamente, para a lista de candidatos de mesclagem de sub-bloco, um candidato de mesclagem de 4 parâmetros com MVs estabelecidos para (0, 0) e direção de predição estabelecida para unipredição a partir da lista 0 (para fatia P) e bipredição (para fatia B).
2.3.4 Exemplos de Mesclagem com Diferenças de Vetor de Movimento (MMVD)
[0166] Em JVET-L0054, a expressão do vetor de movimento final (UMVE, também conhecido como MMVD) é apresentada. UMVE é usado tanto para modos de salto ou mesclagem com um método de expressão de vetor de movimento proposto.
[0167] O UMVE reutiliza os candidatos de mesclagem como aqueles incluídos na lista de candidatos de mesclagem regular em VVC. Entre os candidatos de mesclagem, um candidato base pode ser selecionado e é adicionalmente expandido pelo método de expressão de vetor de movimento proposto.
[0168] O UMVE provê um novo método de representação de diferença de vetor de movimento (MVD), no qual um ponto de partida, uma magnitude de movimento e uma direção de movimento são usados para representar um MVD.
[0169] Esta técnica proposta usa uma lista de candidato de mesclagem como é. Mas apenas os candidatos os quais são do tipo de mesclagem padrão (MRG_TYPE_DEFAULT_N) são considerados para a expansão do UMVE.
[0170] O índice de candidatos base define o ponto de partida. O índice de candidatos base indica o melhor candidato entre os candidatos na lista conforme a seguir. Tabela 1: IDX de Candidato base IDX de 0 1 2 3 candidato base No MVP 1o MVP 2o MVP 3o MVP 4o MVP
[0171] Se o número de candidato base é igual a 1, o IDX de candidato base não é sinalizado.
[0172] O índice de distância são as informações da magnitude de movimento. O índice de distância indica a distância predefinida das informações a partir do ponto de partida. A distância pré-definida é a seguinte: Tabela 2: Distância IDX Distância 0 1 2 3 4 5 6 7
IDX Distância 1/4- 1/2- 16- 32- 1-pel 2-pel 4-pel 8-pel do pixel pel pel pel pel
[0173] O índice de direção representa a direção do MVD relativo ao ponto de partida. O índice de direção pode representar as quatro direções conforme mostrado abaixo. Tabela 3: IDX de Direção IDX de Direção 00 01 10 11 eixo x + – N/A N/A eixo y N/A N/A + –
[0174] Em algumas modalidades, a flag UMVE é sinalizada logo após enviar uma flag de salto ou flag de mesclagem. Se a flag de salto ou de mesclagem é verdadeira, a flag UMVE é analisada. Se a flag UMVE é igual a 1, as sintaxes de UMVE são analisadas. Mas, se não é 1, flag AFFINE é analisada. Se a flag AFFINE é igual a 1, esse é o modo AFFINE, mas, se não é 1, o índice de salto/mesclagem é analisado para o modo de salto/mesclagem do VTM.
[0175] O buffer de linha adicional devido a candidatos UMVE não é necessário. Porque um candidato de salto/mesclagem de software é usado diretamente como um candidato base. Usando o índice UMVE de entrada, o suplemento de MV é decidido logo antes da compensação de movimento. Não há necessidade de manter buffer de linha longo para isso.
[0176] Na condição de teste comum atual, tanto o primeiro ou o segundo candidato de mesclagem na lista de candidatos de mesclagem pode ser selecionado como o candidato base.
2.3.5 Exemplos de Refinamento de Vetores de Movimento no lado do Decodificador (DMVR)
[0177] Na operação de bipredição, para a predição de uma região de bloco, dois blocos de predição, formados usando um vetor de movimento (MV) de list0 e um MV de list1, respectivamente, são combinados para formar um único sinal de predição. No método de refinamento de vetor de movimento no lado do decodificador (DMVR), os dois vetores de movimento da bipredição são adicionalmente refinados.
[0178] No projeto JEM, os vetores de movimento são refinados por um processo de correspondência de template bilateral. A correspondência de template bilateral aplicada no decodificador para desempenhar uma busca com base em distorção entre um template bilateral e as amostras de reconstrução nas imagens de referência, de modo a obter um MV refinado sem transmissão de informações de movimento adicionais. Um exemplo é retratado na figura 22. O template bilateral é gerado como a combinação ponderada (isto é, média) dos dois blocos de predição, a partir do MV0 inicial de list0 e MV1 de list1, respectivamente, como mostrado na figura 22. A operação de correspondência de template consiste em calcular medidas de custo entre o template gerado e a região da amostra (em torno do bloco de predição inicial) na imagem de referência. Para cada das duas imagens de referência, o MV que rende o custo de template mínimo é considerado como o MV atualizado dessa lista para substituir o original. No JEM, nove candidatos de MV são buscados para cada lista. Os nove candidatos de MV incluem o MV original e 8 MVs circundantes com um desvio de amostra de luma para o MV original tanto na direção horizontal ou vertical, ou ambas. Finalmente, os dois novos MVs, isto é, MV0′ e MV1′, conforme mostrado na figura 22, são usados para gerar os resultados finais de bipredição. Uma soma de diferenças absolutas (SAD) é usada como medição de custo. Note que, ao calcular o custo de um bloco de predição gerado por um MV circundante, o MV arredondado (para inteiro pel) é realmente usado para obter o bloco de predição em vez do MV real.
[0179] Para simplificar adicionalmente o processo de DMVR, JVET-M0147 propôs várias alterações para o projeto em JEM. Mais especificamente, o projeto DMVR adotado para VTM-4.0 (a ser publicado em breve) tem as seguintes características principais: ○ Término antecipado com posição SAD (0,0) entre list0 e list1
○ Tamanhos de bloco para DMVR W*H>=64 && H>=8 ○ Separar a CU em múltiplos de sub-blocos de 16x16 para DMVR de tamanho de CU > 16*16 ○ Tamanho do bloco de referência (W+7)*(H+7) (para luma) ○ Busca de pel inteiro com base em SAD de 25 pontos (ou seja, (+-) 2 faixas de busca de refinamento, estágio único) ○ DMVR com base em interpolação bilinear ○ Espelhamento MVD entre list0 e list1 para permitir correspondência bilateral ○ Refinamento de sub-pel com base em “equação de superfície de erro paramétrica” ○ MC de luma/croma com preenchimento do bloco de referência (se necessário) ○ MVs refinados usados apenas para MC e TMVPs
2.3.6 Exemplos de intra e interpredição combinada (CIIR)
[0180] Em JVET-L0100, a predição de múltiplas hipóteses é proposta, em que intra e interpredição combinada é uma maneira para gerar múltiplas hipóteses.
[0181] Quando a predição de múltiplas hipóteses é aplicada para aprimorar o modo intra, a predição de múltiplas hipóteses combina uma intrapredição e uma predição indexada por mesclagem. Em uma CU de mesclagem, uma flag é sinalizada para o modo de mesclagem para selecionar um modo intra a partir de uma lista de intracandidatos quando a flag é verdadeira. Para o componente luma, a lista de intracandidatos é derivada a partir de 4 modos de intrapredição, incluindo modos DC, planar, horizontal e vertical, e o tamanho da lista de intracandidatos pode ser 3 ou 4, dependendo da forma do bloco. Quando a largura da CU é maior que o dobro da altura da CU, o modo horizontal é exclusivo da lista de modos intra e quando a altura da CU é maior que o dobro da largura da CU, o modo vertical é removido a partir da lista de modos intra. Um modo de intrapredição selecionado pelo índice de modos intra e uma predição indexada por mesclagem selecionada pelo índice de mesclagem são combinados usando a média ponderada. Para o componente de croma, o DM é sempre aplicado sem sinalização extra. Os pesos para combinar as predições são descritos a seguir. Quando o modo DC ou planar é selecionado, ou a largura ou altura do CB é menor que 4, pesos iguais são aplicados. Para aqueles CBs com largura e altura de CB maior ou igual a 4, quando o modo horizontal/vertical é selecionado, um CB é separado primeiro vertical/horizontalmente em quatro regiões de área iguais. Cada conjunto de peso, denotado como (w_intrai, w_interi), onde i é de 1 a 4 e (w_intra1, w_interi) = (6, 2), (w_intra2, w_inter2) = (5, 3), (w_intra3, w_inter3) = (3, 5) e (w_intra4, w_inter4) = (2, 6), será aplicado a uma região correspondente. O (w_intra1, w_inter1) é para a região mais próxima das amostras de referência e (w_intra4, w_inter4) é para a região mais distante das amostras de referência. Em seguida, a predição combinada pode ser calculada somando as duas predições ponderadas e deslocando para a direita 3 bits. Além disso, o modo de intrapredição para a intrahipótese de preditores pode ser salvo para referência das seguintes CUs vizinhas.
2.4 Reformulação em malha (ILR) em JVET-M0427
[0182] A ideia básica da reformulação em malha (ILR) é converter o sinal original (no primeiro domínio) (sinal de predição/reconstrução) para um segundo domínio (domínio reformulado).
[0183] O reformulador de luma em malha é implementado como um par de tabelas de consulta (LUTs), mas apenas uma das duas LUTs precisa ser sinalizada, pois o outro pode ser computada a partir da LUT sinalizada. Cada LUT é uma tabela de mapeamento unidimensional, de 10 bits e 1024 lançamentos
(1D-LUT). Uma LUT é uma LUT avançada, FwdLUT, que mapeia valores de código de luma de entrada 𝑌𝑌𝑖𝑖 para valores alterados 𝑌𝑌𝑟𝑟 : 𝑌𝑌𝑟𝑟 = 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹[𝑌𝑌𝑖𝑖 ]. A outra LUT é uma LUT inversa, InvLUT, que mapeia valores de código alterados 𝑌𝑌𝑟𝑟 para 𝑌𝑌�𝑖𝑖 : 𝑌𝑌�𝑖𝑖 = 𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼𝐼[𝑌𝑌𝑟𝑟 ]. (𝑌𝑌�𝑖𝑖 representa os valores de reconstrução de 𝑌𝑌𝑖𝑖 .).
2.4.1 Modelo linear por partes (PWL)
[0184] Em algumas modalidades, linear por partes (PWL) é implementado da seguinte maneira:
[0185] Considerar x1, x2 dois pontos de pivô de entrada e y1, y2 seus pontos de pivô de saída correspondentes para uma parte. O valor de saída y para qualquer valor de entrada x entre x1 e x2 pode ser interpolado pela seguinte equação: y = ((y2-y1)/(x2-x1)) * (x-x1) + y1
[0186] Na implementação de ponto fixo, a equação pode ser reescrita como: y = ((m * x + 2FP_PREC-1) >> FP_PREC) + c
[0187] onde m é escalar, c é um desvio e FP_PREC é um valor constante para especificar a precisão.
[0188] Nota-se que no software CE-12, o modelo PWL é usado para pré- computar as tabelas de mapeamento FwdLUT e InvLUT de 1024 lançamentos; mas o modelo PWL também permite implementações para calcular valores de mapeamento idênticos em tempo real, sem pré-calcular os LUTs.
2.4.2 Teste CE12-2
2.4.2.1 Reformulação de Luma
[0189] O teste 2 da reformulação de luma em malha (isto é, CE12-2 na proposta) provê um pipeline de complexidade mais baixa que também elimina a latência de decodificação para intrapredição por bloco na reconstrução fatias inter. A intrapredição é desempenhada no domínio reformulado para ambas as fatias inter e intra.
[0190] A intrapredição é sempre desempenhada no domínio reformulado, independentemente do tipo de fatia. Com tal arranjo, a intrapredição pode começar imediatamente após a reconstrução prévia da TU ser feita. Tal arranjo também pode prover um processo unificado para modo intra em vez de ser dependente de fatia. A figura 23 mostra o diagrama de blocos do processo de decodificação CE12-2 com base no modo.
[0191] O CE12-2 também testa modelos lineares por partes (PWL) de 16 partes para escalamento de resíduo de croma e luma, em vez dos modelos PWL de 32 partes do CE12-1.
[0192] Reconstrução de fatias inter com reformulador de luma em malha em CE12-2 (blocos sombreados em verde claro indicam sinal no domínio reformulado: resíduo de luma; predito intraluma; e reconstruído intraluma).
2.4.2.2 Escalamento de resíduo de croma dependente de luma (LCRS)
[0193] O escalamento de resíduo de croma dependente de luma é um processo multiplicativo implementado com operação de inteiro de ponto fixo. O escalamento de resíduo de croma compensa a interação do sinal de luma com o sinal de croma. O escalamento de resíduo de croma é aplicado no nível de TU. Mais especificamente, aplica-se o seguinte: ○ Para intra, o luma reconstruído é calculado a média. ○ Para inter, é calculada a média do luma de predição.
[0194] A média é usada para identificar um índice em um modelo PWL. O índice identifica um fator de escalamento cScaleInv. A croma residual é multiplicada por esse número.
[0195] Nota-se que o fator de escalamento de croma é calculado a partir de valores de luma preditos mapeados diretos, em vez de valores de luma reconstruídos.
2.4.2.3 Sinalização de informações do lado do ILR
[0196] Os parâmetros são (atualmente) enviados no cabeçalho do grupo de tile (semelhante ao ALF). Eles supostamente levam de 40 a 100 bits. Um grupo de tile pode ser outra maneira de representar uma imagem. A tabela a seguir é baseada na versão 9 do JVET-L1001. A sintaxe adicionada é destacada em itálico.
[0197] Em 7.3.2.1 Sintaxe de RBSP de conjunto de parâmetros de sequência seq_parameter_set_rbsp( ) { Descritor sps_seq_parameter_set_id ue(v) … sps_triangle_enabled_flag u(1) sps_ladf_enabled_flag u(1) if ( sps_ladf_enabled_flag ) { sps_num_ladf_intervals_minus2 u(2) sps_ladf_lowest_interval_qp_offset se(v) for( i = 0; i < sps_num_ladf_intervals_minus2 + 1; i++ ) { sps_ladf_qp_offset[ i ] se(v) sps_ladf_delta_threshold_minus1[ i ] ue(v) } } sps_reshaper_enabled_flag u(1) rbsp_trailing_bits( ) }
[0198] Em 7.3.3.1 Sintaxe de cabeçalho do grupo de tile geral tile_group_header () { Descritor … if( num_tiles_in_tile_group_minus1 > 0 ) {
offset_len_minus1 ue(v) for( i = 0; i < num_tiles_in_tile_group_minus1; i++ ) entry_point_offset_minus1[ i ] u(v) } if (sps_reshaper_enabled_flag) { tile_group_reshaper_model_present_flag u(1) if ( tile_group_reshaper_model_present_flag ) tile_group_reshaper_model ( ) tile_group_reshaper_enable_flag u(1) if ( tile_group_reshaper_enable_flag && (!( qtbtt_dual_tree_intra_flag && tile_group_type == I ) ) ) tile_group_reshaper_chroma_residual_scale_flag u(1) } byte_alignment () }
[0199] Adicionar um novo modelo de reformulação de grupo de tile da tabela de sintaxe: tile_group_reshaper_model () { Descritor reshaper_model_min_bin_idx ue(v) reshaper_model_delta_max_bin_idx ue(v) reshaper_model_bin_delta_abs_cw_prec_minus1 ue(v) for ( i = reshaper_model_min_bin_idx; i <= reshaper_model_max_bin_idx; i++ ) { reshape_model_bin_delta_abs_CW [ i ] u(v) if ( reshaper_model_bin_delta_abs_CW[ i ] ) > 0 ) reshaper_model_bin_delta_sign_CW_flag[ i ] u(1)
} }
[0200] Na Semântica de RBSP de conjunto de parâmetros de sequência geral, adicionar a seguinte semântica:
[0201] sps_reshaper_enabled_flag igual a 1 especifica que reformulador é usado na sequência de vídeo codificada (CVS). sps_reshaper_enabled_flag igual a 0 especifica que reformulador não é usado no CVS.
[0202] Na sintaxe do cabeçalho do grupo de tile, adicionar a seguinte semântica
[0203] tile_group_reshaper_model_present_flag igual a 1 especifica que tile_group_reshaper_model() está presente no cabeçalho do grupo de ladrilhos. tile_group_reshaper_model_present_flag igual a 0 especifica que tile_group_reshaper_model() não está presente no cabeçalho do grupo de ladrilhos. Quando tile_group_reshaper_model_present_flag não está presente, infere-se que é igual a 0.
[0204] tile_group_reshaper_enabled_flag igual a 1 especifica que reformulador está habilitado para o grupo de ladrilhos atual. tile_group_reshaper_enabled_flag igual a 0 especifica que reformulador não está habilitado para o grupo de ladrilhos atual. Quando tile_group_reshaper_enable_flag não está presente, infere-se que é igual a 0.
[0205] tile_group_reshaper_chroma_residual_scale_flag igual a 1 especifica que escalamento residual de croma está habilitado para o grupo de ladrilhos atual. tile_group_reshaper_chroma_residual_scale_flag igual a 0 especifica que escalamento residual de croma não está habilitado para o grupo de ladrilhos atual. Quando tile_group_reshaper_chroma_residual_scale_flag não está presente, infere-se que é igual a 0.
[0206] Adicionar sintaxe tile_group_reshaper_model()
[0207] reshape_model_min_bin_idx especifica o índice de bin (ou parte) mínimo a ser usado no processo de construção do reformulador. O valor de reshape_model_min_bin_idx deve estar na faixa de 0 a MaxBinIdx, inclusive. O valor de MaxBinIdx deve ser igual a 15.
[0208] reshape_model_delta_max_bin_idx especifica o índice de bin (ou parte) permitido máximo MaxBinIdx menos o índice de bin máximo a ser usado no processo de construção do reformulador. O valor de reshape_model_max_bin_idx é estabelecido igual a MaxBinIdx – reshape_model_delta_max_bin_idx.
[0209] reshaper_model_bin_delta_abs_cw_prec_minus1 mais 1 especifica o número de bits usados para a representação da sintaxe reshape_model_bin_delta_abs_CW[ i ].
[0210] reshape_model_bin_delta_abs_CW[ i ] especifica o valor da palavra-código delta absoluto para o i-ésimo bin.
[0211] reshaper_model_bin_delta_sign_CW_flag[ i ] especifica o sinal de reshape_model_bin_delta_abs_CW[ i ] conforme segue:
[0212] - Se reshape_model_bin_delta_sign_CW_flag[ i ] é igual a 0, a variável correspondente RspDeltaCW[ i ] é um valor positivo.
[0213] - Caso contrário (reshape_model_bin_delta_sign_CW_flag[ i ] não é igual a 0), a variável correspondente RspDeltaCW[ i ] é um valor negativo.
[0214] Quando reshape_model_bin_delta_sign_CW_flag[ i ] não está presente, infere-se que é igual a 0.
[0215] A variável RspDeltaCW[ i ] = (1 2*reshape_model_bin_delta_sign_CW[ i ]) * reshape_model_bin_delta_abs_CW [ i ];
[0216] A variável RspCW[ i ] é derivada das seguintes etapas:
[0217] A variável OrgCW é estabelecida igual a (1 << BitDepthY
)/(MaxBinIdx + 1).
[0218] - Se reshaper_model_min_bin_idx < = i <= reshaper_model_max_bin_idx
[0219] RspCW[ i ] = OrgCW + RspDeltaCW[ i ].
[0220] - Caso contrário, RspCW[ i ] = 0.
[0221] O valor de RspCW [ i ] deve estar na faixa de 32 a 2 * OrgCW - 1 se o valor de BitDepthY é igual a 10.
[0222] As variáveis InputPivot[ i ] com i na faixa de 0 a MaxBinIdx +1, inclusive são derivados conforme segue InputPivot[ i ] = i * OrgCW
[0223] A variável ReshapePivot[ i ] com i na faixa de 0 a MaxBinIdx + 1, inclusive, a variável ScaleCoef[ i ] e InvScaleCoeff[ i ] com i na faixa de 0 a MaxBinIdx, inclusive, são derivados conforme segue: shiftY = 14 ReshapePivot[ 0 ] = 0; for( i = 0; i <= MaxBinIdx; i) { ReshapePivot[ i + 1 ] = ReshapePivot[ i ] RspCW[ i ] ScaleCoef[ i ] = ( RspCW[ i ] * (1 << shiftY) + (1 << (Log2(OrgCW) - 1))) >> (Log2(OrgCW)) if ( RspCW[ i ] == 0 ) InvScaleCoeff[ i ] = 0 else InvScaleCoeff[ i ] = OrgCW * (1 << shiftY) / RspCW[ i ] }
[0224] As variáveis ChromaScaleCoef[ i ] com i na faixa de 0 a MaxBinIdx, inclusive, são derivadas da seguinte forma: ChromaResidualScaleLut[64] = {16384, 16384, 16384, 16384, 16384, 16384,
16384, 8192, 8192, 8192, 8192, 5461, 5461, 5461, 5461, 4096, 4096, 4096, 4096, 3277, 3277, 3277, 3277, 2731, 2731, 2731, 2731, 2341, 2341, 2341, 2048, 2048, 2048, 1820, 1820, 1820, 1638, 1638, 1638, 1638, 1489, 1489, 1489, 1489, 1365, 1365, 1365, 1365, 1260, 1260, 1260, 1260, 1170, 1170, 1170, 1170, 1092, 1092, 1092, 1092, 1024, 1024, 1024, 1024}; shiftC = 11 – se (RspCW[ i ] == 0) ChromaScaleCoef[ i ] = (1 << shiftC) – Caso contrário (RspCW[ i ] != 0), ChromaScaleCoef[ i ] = ChromaResidualScaleLut[RspCW[ i ] >> 1]
2.4.2.4 Uso de ILR
[0225] No lado do codificador, cada imagem (ou grupo de ladrilhos) é primeiramente convertido ao domínio reformulado. E todo o processo de codificação é desempenhado no domínio reformulado. Para intrapredição, o bloco vizinho está no domínio reformulado; para interpredição, os blocos de referência (gerados a partir do domínio original a partir do buffer de imagem decodificado) são primeiramente convertidos para o domínio reformulado. Em seguida, os residuais são gerados e codificados para o bitstream.
[0226] Depois que toda a imagem (ou grupo de ladrilhos) termina a codificação/decodificação, as amostras no domínio reformulado são convertidas ao domínio original e, em seguida, o filtro de deblocagem e outros filtros são aplicados.
[0227] A reformulação direta para o sinal de predição é desabilitada para os seguintes casos: ○ O bloco atual é intracodificado ○ O bloco atual é codificado como CPR (referência à imagem atual, também conhecida como cópia de bloco intra, IBC)
○ O bloco atual é codificado como modo inter-intra combinado (CIIP) e a reformulação direta é desabilitada para o bloco de intrapredição JVET-N0805
[0228] Para evitar sinalizar o lado das informações do ILR no cabeçalho do grupo de ladrilhos, em JVET-N0805, propõe-se sinalizá-los no APS. Incluindo as seguintes ideias principais:
[0229] - Opcionalmente, enviar parâmetros de LMCS no SPS. LMCS refere- se a umas técnicas de mapeamento de luma com escalamento de croma (LMCS) conforme definido em padrões de codificação de vídeo relevantes.
[0230] -Definir tipos de APS para parâmetros de ALF e LMCS. Cada APS possui apenas um tipo.
[0231] - Enviar parâmetros de LMCS em APS
[0232] - Se a ferramenta LMCS habilitada, tem uma flag no TGH para indicar que LMCS aps_id está presente ou não. Se não sinalizado, os parâmetros SPS são usados.
[0233] * Necessário adicionar restrição semântica para sempre ter algo válido que é referido quando a ferramenta está habilitada.
2.5.2.5.1 Implementação do projeto sugerido em cima do JVET-M1001 (esboço de trabalho de VVC 4)
[0234] Abaixo, as alterações sugeridas são mostradas em itálico. seq_parameter_set_rbsp( ) { Descritor … sps_lmcs_enabled_flag u(1) if(sps_lmcs_enabled_flag) { sps_lmcs_default_model_present_flag u(1) if(sps_lmcs_default_model_present_flag) lmcs_data( )
... } ...
[0235] sps_lmcs_enabled_flag igual a 1 especifica que mapeamento de luma com escalamento de croma é usado na sequência de vídeo codificado (CVS). sps_lmcs_enabled_flag igual a 0 especifica que mapeamento de luma com escalamento de croma não é usado no CVS.
[0236] sps_lmcs_default_model_present_flag igual a 1 especifica que dados lmcs padrão estão presentes neste SPS. sps_lmcs_default_model_flag igual a 0 especifica que dados lmcs padrão não estão presentes neste SPS. Quando não está presente, o valor de sps_lmcs_default_model_present_flag infere-se que é igual a 0. ... adaptation_parameter_set_rbsp( ) { Descritor adaptation_parameter_set_id u(5) aps_params_type u(3) if( aps_params_type = = ALF_APS ) // 0 alf_data( ) else if ( aps_params_type = = LMCS_APS ) // 1 lmcs_data( ) aps_extension_flag u(1) if( aps_extension_flag) while( more_rbsp_data( ) ) aps_extension_data_flag u(1) rbsp_trailing_bits( ) }
[0237] aps_params_type especifica o tipo de parâmetros de APS portados no APS conforme especificado na seguinte tabela: Tabela 7-x - códigos de tipo de parâmetros de APS e tipos de parâmetros de
APS aps_params_ Nome de Tipo de parâmetros de APS type aps_params_ type 0 ALF_APS Parâmetros ALF 1 LMCS_APS Parâmetros LMCS
2..7 Reservado Reservado tile_group_header( ) { Descritor ... if ( sps_alf_enabled_flag ) { tile_group_alf_enabled_flag u(1) if ( tile_group_alf_enabled_flag ) tile_group_alf_aps_id u(5) } ... if( sps_lmcs_enabled_flag) { tile_group_reshaper_model_present_flag u(1) if(tile_group_reshaper_model_present_flag ) tile_group_reshaper_model ( ) tile_group_lmcs_enable_flag u(1) if( tile_group_lmcs_enable_flag ) { if( sps_lmcs_default_model_present_flag ) tile_group_lmcs_use_default_model_flag u(1) if ( !tile_group_lmcs_use_default_model_flag )
tile_group_lmcs_aps_id u(5) if ( !( qtbtt_dual_tree_intra_flag && tile_group_type = = I ) ) if( tile_group_reshaper_enable_flag && ( ! (qtbtt_dual_tree_intra_flag && tile_group_type = = I)) tile_group_chroma_residual_scale_flag u(1) } } ... if( NumTilesInCurrTileGroup > 1 ) { offset_len_minus1 ue(v) for( i = 0; i < NumTilesInCurrTileGroup - 1; i++) entry_point_offset_minus1[ i ] u(v) } byte_alignment () }
[0238] Adicionando as seguintes definições à cláusula 3:
[0239] ALF APS: Um APS que possui aps_params_type igual a ALF_APS.
[0240] LMCS APS: Um APS que possui aps_params_type igual a LMCS_APS.
[0241] Fazer as seguintes alterações semânticas: ...
[0242] tile_group_alf_aps_id especifica o adaptation_parameter_set_id do ALF APS que o grupo de ladrilhos se refere. O TemporalId da unidade ALF APS NAL possuindo adaptation_parameter_set_id igual a tile_group_alf_aps_id deve ser menor ou igual ao TemporalId da unidade NAL do grupo de ladrilhos codificados.
[0243] Quando vários ALF APSs com o mesmo valor de adaptation_parameter_set_id são referidos por dois ou mais grupos de ladrilhos da mesma imagem, os vários ALF APSs com o mesmo valor de adaptation_parameter_set_id devem ter o mesmo conteúdo. ...
[0244] tile_group_reshaper_model_present_flag igual a 1 especifica que tile_group_reshaper_model() está presente no cabeçalho do grupo de ladrilhos. tile_group_reshaper_model_present_flag igual a 0 especifica que tile_group_reshaper_model() não está presente no cabeçalho do grupo de ladrilhos. Quando tile_group_reshaper_model_present_flag não está presente, infere-se que é igual a 0.
[0245] tile_group_lmcs_enabled_flag igual a 1 especifica que mapeamento de luma com escalamento de croma está habilitado para o grupo de ladrilhos atual. tile_group_lmcs_enabled_flag igual a 0 especifica que mapeamento de luma com escalamento de croma não está habilitado para o grupo de ladrilhos atual. Quando tile_group_lmcs_enable_flag não está presente, infere-se que é igual a 0.
[0246] tile_group_lmcs_use_default_model_flag igual a 1 especifica que mapeamento de luma com operação de escalamento de croma para o grupo de ladrilhos usa o modelo lmcs padrão. tile_group_lmcs_use_default_model_flag igual a 0 especifica que aquele mapeamento de luma com operação de escalamento de croma para o grupo de ladrilhos usa o modelo lmcs no LMCS APS referido por tile_group_lmcs_aps_id. Quando tile_group_reshaper_use_default_model_flag não está presente, infere-se que é igual a 0.
[0247] tile_group_lmcs_aps_id especifica o adaptation_parameter_set_id do LMCS APS que o grupo de ladrilhos se refere. O TemporalId da unidade de LMCS APS NAL possuindo adaptation_parameter_set_id igual a tile_group_lmcs_aps_id deve ser menor ou igual ao TemporalId da unidade NAL do grupo de ladrilhos codificados.
[0248] Quando múltiplos LMCS APSs com o mesmo valor de adaptation_parameter_set_id são referidos por dois ou mais grupos de ladrilhos da mesma imagem, os múltiplos LMCS APSs com o mesmo valor de adaptation_parameter_set_id devem ter o mesmo conteúdo.
[0249] tile_group_chroma_residual_scale_flag igual a 1 especifica que escalamento residual de croma está habilitado para o grupo de ladrilhos atual. tile_group_chroma_residual_scale_flag igual a 0 especifica que escalamento residual de croma não está habilitado para o grupo de ladrilhos atual. Quando tile_group_chroma_residual_scale_flag não está presente, infere-se que é igual a 0. ... ...
2.4.2.6 JVET-N0138
[0250] Esta contribuição propõe o uso estendido do conjunto de parâmetros de adaptação (APS) para o transporte de parâmetros do modelo de reformulação, bem como parâmetros de ALF. Na última reunião, é decidido que os parâmetros de ALF sejam portados pelo APS em vez do cabeçalho do grupo de ladrilhos para aprimoramento de eficiência da codificação, evitando sinalização redundante desnecessária de parâmetros em múltiplos grupos de blocos. Com base no mesmo motivo, propõe-se portar parâmetros do modelo de reformulação por APS em vez do cabeçalho do grupo de ladrilhos. Para identificar o tipo de parâmetros no APS (seja pelo menos ALF ou modelo de reformulação), as informações de tipo de APS são necessárias na sintaxe APS, bem como APS ID. Sintaxe e semântica do conjunto de parâmetros de adaptação
[0251] Abaixo, as alterações sugeridas são mostradas em itálico.
adaptation_parameter_set_rbsp( ) { Descritor adaptation_parameter_set_id u(5) adaptation_parameter_set_type u(1) if( adaptation_parameter_set_type == 0 ) alf_data( ) else reshaper_model( ) aps_extension_flag u(1) if( aps_extension_flag ) while( more_rbsp_data( ) ) aps_extension_data_flag u(1) rbsp_trailing_bits( ) }
[0252] adaptation_parameter_set_type identifica o tipo de parâmetros em APS. O valor de adaptation_parameter_set_type deve estar na faixa de 0 a 1, inclusive. Se adaptation_parameter_set_type é igual a 0, os parâmetros de ALF são sinalizados. Caso contrário, os parâmetros do modelo de reformulação são sinalizados. Sintaxe e semântica do cabeçalho do grupo de ladrilhos geral tile_group_header( ) { Descritor ... if ( sps_reshaper_enabled_flag ) { tile_group_reshaper_model_present_flag u(1) if ( tile_group_reshaper_model_present_flag ) tile_group_reshaper_model ( )tile_group_aps_id tile_group_reshaper_enable_flag u(1)
if ( tile_group_reshaper_enable_flag && (!( qtbtt_dual_tree_intra_flag && tile_group_type == I ) ) ) tile_group_reshaper_chroma_residual_scale_flag u(1) } ... }
2.5 Unidades de pipeline de dados virtual (VPDU)
[0253] As unidades de pipeline de dados virtuais (VPDUs) são definidas como unidades MxM-luma (L)/NxN-croma (C) não sobrepostas em uma imagem. Nos decodificadores de hardware, VPDUs sucessivos são processados por múltiplos estágios de pipeline ao mesmo tempo; diferentes estágios processam diferentes VPDUs simultaneamente. O tamanho do VPDU é aproximadamente proporcional ao tamanho do buffer na maioria dos estágios do pipeline, portanto, é considerado muito importante manter o tamanho do VPDU pequeno. Nos decodificadores de hardware HEVC, o tamanho do VPDU é estabelecido como o tamanho máximo do bloco de transformada (TB). Aumentar o tamanho máximo do TB a partir de 32x32-L/16x16-C (como no HEVC) para 64x64-L/32x32-C (como no VVC atual) pode trazer ganhos de codificação, o que resulta em 4X do tamanho do VPDU (64x64-L/32x32-C) como esperado em comparação com HEVC. No entanto, além do particionamento da unidade de codificação (CU) quadtree (QT), árvore ternária (TT) e árvore binária (BT) são adotadas no VVC para obter ganhos de codificação adicionais, e separações TT e BT podem ser aplicadas a 128x128-L/Blocos de árvore de codificação 64x64-C (CTUs) recursivamente, o que é dito para levar a 16X do tamanho de VPDU (128x128-L/64x64-C) em comparação com HEVC.
[0254] No projeto atual do VVC, o tamanho do VPDU é definido como 64x64-L/32x32-C.
2.6 Conjunto de Parâmetros de Adaptação
[0255] Um conjunto de parâmetros de adaptação (APS) é adotado no VVC para portar os parâmetros de ALF. O cabeçalho do grupo de ladrilhos contém um aps_id o qual está presente condicionalmente quando o ALF está habilitado. O APS contém um aps_id e os parâmetros de ALF. Um novo valor NUT (tipo de unidade NAL, como em AVC e HEVC) é atribuído para APS (a partir de JVET- M0132). Para as condições de teste comuns no VTM-4.0 (para aparecer), é sugerido apenas usar aps_id = 0 e enviar o APS com cada imagem. Por enquanto, a faixa de valores de APS ID será de 0 a 31 e APSs podem ser compartilhados entre as imagens (e podem ser diferentes em diferentes grupos de ladrilhos dentro de uma imagem). O valor de ID deve ser codificado por comprimento fixo, quando presente. Os valores de ID não podem ser reutilizados com conteúdo diferente na mesma imagem.
2.7 Ferramentas relacionadas
2.7.1 Filtro de difusão (DF)
[0256] Em JVET-L0157, o filtro de difusão é proposto, em que o sinal de intra/interpredição da CU pode ser modificado adicionalmente por filtros de difusão.
[0257] Filtro de difusão uniforme. O filtro de difusão uniforme é concretizado ao convoluir o sinal de predição com uma máscara fixa que é ou dada como ℎ𝐼𝐼 ou como ℎ𝐼𝐼𝐼𝐼 , definido abaixo. Além do sinal de predição em si, uma linha de amostras reconstruídas à esquerda e acima do bloco é usada como entrada para o sinal filtrado, onde o uso dessas amostras reconstruídas pode ser evitado em blocos inter.
[0258] Deixar 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 ser o sinal de predição em um dado bloco obtido por intrapredição ou compensada por movimento. A fim de manipular pontos de fronteira para os filtros, o sinal de predição precisa ser estendido para um sinal de predição 𝑝𝑝𝑝𝑝𝑝𝑝𝑑𝑑𝑒𝑒𝑒𝑒𝑒𝑒 . Essa predição estendida pode ser formada de duas maneiras:
[0259] Ou, como uma etapa intermediária, uma linha de amostras reconstruídas à esquerda e acima do bloco é adicionada ao sinal de predição e, em seguida, o sinal resultante é espelhado em todas as direções. Ou apenas o próprio sinal de predição é espelhado em todas as direções. A última extensão é usada para blocos inter. Neste caso, apenas o próprio sinal de predição compreende a entrada para o sinal de predição estendido 𝑝𝑝𝑝𝑝𝑝𝑝𝑑𝑑𝑒𝑒𝑒𝑒𝑒𝑒 .
[0260] Se o filtro ℎ𝐼𝐼 deve ser usado, propõe-se substituir o sinal de predição 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 por ℎ𝐼𝐼 ∗ 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝, usando a extensão de fronteira mencionada acima. Aqui, a máscara de filtro ℎ𝐼𝐼 é dada como 0 0 0 0 1 0 0 0 0 0 0 0 4 0 4 0 0 0 ⎛0 0 6 0 16 0 6 0 0⎞ ⎜ ⎟ 𝐼𝐼 4 ⎜0 4 0 24 0 24 0 4 0⎟ ℎ = (0.25) ⎜1 0 16 0 36 0 16 0 1⎟. ⎜0 4 0 24 0 24 0 4 0⎟ ⎜0 0 6 0 16 0 6 0 0⎟ 0 0 0 4 0 4 0 0 0 ⎝0 0 0 0 1 0 0 0 0⎠
[0261] Se o filtro ℎ𝐼𝐼𝐼𝐼 deve ser usado, propõe-se substituir o sinal de predição 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 por ℎ𝐼𝐼𝐼𝐼 ∗ 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝
[0262] Aqui, o filtro ℎ𝐼𝐼𝐼𝐼 é dado como ℎ𝐼𝐼𝐼𝐼 = ℎ𝐼𝐼 ∗ ℎ𝐼𝐼 ∗ ℎ𝐼𝐼 ∗ ℎ𝐼𝐼 .
[0263] Filtro de difusão direcional. Em vez de usar filtros de difusão adaptativos de sinal, filtros direcionais, um filtro horizontal ℎℎ𝑜𝑜𝑜𝑜 e um filtro vertical ℎ𝑣𝑣𝑣𝑣𝑣𝑣 , os quais ainda têm uma máscara fixa são usados. Mais precisamente, a filtragem de difusão uniforme correspondente à máscara ℎ𝐼𝐼 da seção anterior é simplesmente restrita a ser aplicada apenas ou ao longo da direção vertical ou ao longo da horizontal. O filtro vertical é concretizado ao aplicar a máscara de filtro fixo 1 0 ⎛4⎞ ⎜ ⎟ 0 (0.5) 4 ⎜ ⎟ ℎ𝑣𝑣𝑣𝑣𝑣𝑣 = ⎜6⎟ ⎜0⎟ ⎜4⎟ 0 ⎝1⎠ para o sinal de predição e o filtro horizontal é concretizado ao utilizar a máscara 𝑡𝑡 transposta ℎℎ𝑜𝑜𝑜𝑜 = ℎ𝑣𝑣𝑣𝑣𝑣𝑣 .
2.7.2 Filtro bilateral (BF)
[0264] O filtro bilateral é proposto em JVET-L0406, e é sempre aplicado a blocos luma com coeficientes de transformada diferentes de zero e parâmetro de quantização de fatia maior que 17. Portanto, não há necessidade de sinalizar o uso do filtro bilateral. O filtro bilateral, se aplicado, é desempenhado nas amostras decodificadas logo após a transformada inversa. Além disso, os parâmetros do filtro, ou seja, os pesos são explicitamente derivados das informações codificadas.
[0265] O processo de filtragem é definido como: ′ 𝑃𝑃0,0 = 𝑃𝑃0, 0 + ∑𝐾𝐾 𝑘𝑘=1 𝑊𝑊𝑘𝑘 �𝑎𝑎𝑎𝑎𝑎𝑎(𝑃𝑃𝑘𝑘, 0 − 𝑃𝑃0, 0 )� × �𝑃𝑃𝑘𝑘, 0 − 𝑃𝑃0, 0 �. (1)
[0266] Na presente invenção, 𝑃𝑃0,0 é a intensidade da amostra atual e 𝑃𝑃0,′ 0 é a intensidade modificada da amostra atual, 𝑃𝑃𝑘𝑘,0 e 𝑊𝑊𝑘𝑘 são a intensidade e o parâmetro de ponderação para a k-ésima amostra vizinha, respectivamente. Um exemplo de uma amostra atual e suas quatro amostras vizinhas (isto é, K=4) é retratado na figura 24.
[0267] Mais especificamente, o peso 𝑊𝑊𝑘𝑘 (𝑥𝑥) associado à k-ésima amostra vizinha é definido como segue: 𝑊𝑊𝑘𝑘 (𝑥𝑥) = 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷â𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑘𝑘 × 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝑘𝑘 (𝑥𝑥). (2)
[0268] Na presente invenção, �− 10000 � �− 10000 � 𝑥𝑥2 2𝜎𝜎2 2𝜎𝜎2 �– � 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷â𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑛𝑘𝑘 = 𝑒𝑒 𝑑𝑑 �1 + 4 ∗ 𝑒𝑒 𝑑𝑑 e 𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝑘𝑘 (𝑥𝑥) = 𝑒𝑒 8∗(QP – 17)∗(QP – 17) .
[0269] Na presente invenção, 𝜎𝜎𝑑𝑑 é dependente do modo codificado e dos tamanhos dos blocos de codificação. O processo de filtragem descrito é aplicado a blocos intracodificados e blocos intercodificados quando a TU é adicionalmente separada, para habilitar o processamento paralelo.
[0270] Para melhor capturar as propriedades estatísticas do sinal de vídeo e aprimorar o desempenho do filtro, a função de pesos resultante da Equação (2) está sendo ajustada pelo parâmetro 𝜎𝜎𝑑𝑑 , tabulado na Tabela 4 como sendo dependente do modo de codificação e dos parâmetros de particionamento do bloco (tamanho mínimo). Tabela 4: Valor de 𝝈𝝈𝒅𝒅 para diferentes tamanhos de bloco e modos de codificação Min (largura do bloco, modo intra modo inter altura do bloco) 4 82 62 8 72 52 Outro 52 32
[0271] Para aprimorar adicionalmente o desempenho de codificação, para blocos intercodificados quando a TU não é separada, a diferença de intensidade entre a amostra atual e uma de suas amostras vizinhas é substituída por uma diferença de intensidade representativa entre duas janelas cobrindo a amostra atual e a amostra vizinha. Portanto, a equação do processo de filtragem é revisada para: 𝑀𝑀/2 1 ′ 𝑃𝑃0,0 = 𝑃𝑃0, 0 + ∑𝑁𝑁 𝑘𝑘=1 𝑊𝑊𝑘𝑘 � ∑𝑚𝑚=−𝑀𝑀/2 𝑎𝑎𝑎𝑎𝑎𝑎(𝑃𝑃𝑘𝑘, 𝑚𝑚 − 𝑃𝑃0, 𝑚𝑚 )� × (𝑃𝑃𝑘𝑘, 0 − 𝑃𝑃0, 0 ) (4)
𝑀𝑀
[0272] Na presente invenção, 𝑃𝑃𝑘𝑘, 𝑚𝑚 e 𝑃𝑃0, 𝑚𝑚 representam o m-ésimo valor de amostra dentro das janelas centradas em 𝑃𝑃𝑘𝑘,0 e 𝑃𝑃0,0 , respectivamente. Nesta proposta, o tamanho da janela é estabelecido como 3×3. Um exemplo de duas janelas que cobrem 𝑃𝑃2,0 e 𝑃𝑃0,0 são retratados na figura 25.
2.7.3 Filtro de domínio de transformada de Hadamard (HF)
[0273] Em JVET-K0068, filtro em malha no domínio de transformada de Hadamard 1D o qual é aplicado no nível de CU após a reconstrução e tem implementação livre de multiplicação. O filtro proposto é aplicado a todos os blocos CU que cumprem a condição predefinida e os parâmetros do filtro são derivados a partir das informações codificadas.
[0274] A filtragem proposta é sempre aplicada a blocos reconstruídos de luma com coeficientes de transformada diferentes de zero, excluindo blocos 4x4 e se o parâmetro de quantização de fatia for maior que 17. Os parâmetros do filtro são explicitamente derivados a partir das informações codificadas. O filtro proposto, se aplicado, é desempenhado em amostras decodificadas logo após a transformada inversa.
[0275] Para cada pixel a partir do bloco reconstruído, o processamento do pixel compreende as seguintes etapas: ○ Varredura de 4 pixels vizinhos em torno do pixel de processamento, incluindo o atual de acordo com o padrão de varredura ○ Transformada Hadamard de 4 pontos de pixels de leitura ○ Filtragem de espectro com base na seguinte fórmula: 𝑅𝑅(𝑖𝑖)2 𝐹𝐹(𝑖𝑖, 𝜎𝜎) = ∗ 𝑅𝑅(𝑖𝑖) 𝑅𝑅(𝑖𝑖)2 +𝜎𝜎 2
[0276] Na presente invenção, (i) é o índice do componente do espectro no espectro de Hadamard, R (i) é o componente de espectro de pixels reconstruídos correspondendo ao índice, σ é o parâmetro de filtragem derivado a partir do parâmetro de quantização de codec QP usando a seguinte equação: 𝝈𝝈 = 𝟐𝟐(𝟏𝟏+𝟎𝟎.𝟏𝟏𝟏𝟏𝟏𝟏∗(𝑸𝑸𝑸𝑸−𝟐𝟐𝟐𝟐)) .
[0277] O exemplo de padrão de varredura é mostrado na figura 26, em que A é o pixel atual e {B, C, D} são pixels circundantes.
[0278] Para pixels colocados na fronteira da CU, o padrão de varredura é ajustado garantindo que todos os pixels necessários estejam dentro da CU atual. 3 Desvantagens das implementações existentes
[0279] Em implementações de ILR existentes, as seguintes desvantagens podem existir: 1) A sinalização de informações no lado de ILR no cabeçalho do grupo de ladrilhos não é adequada uma vez que requer muitos bits. Além disso, a predição entre diferentes imagens/grupos de ladrilhos não é permitida. Portanto, para cada grupo de ladrilhos, as informações do lado de ILR precisam ser transmitidas, o que pode causar perda de codificação em baixas taxas de bits, especialmente para baixa resolução. 2) A interação entre ILR e DMVR (ou outras ferramentas de codificação introduzidas recentemente) não é clara. Por exemplo, a ILR é aplicada ao sinal de interpredição para converter o sinal original ao domínio reformulado e residuais decodificados estão no domínio reformulado. Enquanto o DMVR também depende do sinal de predição para refinar os vetores de movimento para um bloco. Não está claro se deve ser aplicado DMVR no domínio original ou no domínio reformulado. 3) A interação entre ILR e ferramentas de codificação de conteúdo de tela, por exemplo, paleta, B-DPCM, IBC, salto de transformada transquant-bypass, modos I-PCM, não está clara.
4) O escalamento de resíduo de croma dependente de luma é usado no ILR. Portanto, um atraso adicional (devido à dependência entre luma e croma) é introduzido, o qual não é benéfico para o projeto de hardware. 5) O objetivo do VPDU é garantir a conclusão do processamento de uma região quadrada de 64x64 antes de começar o processamento de outras regiões quadradas de 64x64. No entanto, de acordo com o projeto do ILR, não há restrição ao uso do ILR, o que pode causar violação do VPDU, uma vez que o croma depende do sinal de predição do luma. 6) Quando todos os coeficientes zero acontecem para uma CU, o bloco de predição e o bloco de reconstrução ainda desempenham processos de reformulação direta e inversa, os quais desperdiçam complexidade computacional. 7) Em JVET-N0138, propõe-se sinalizar as informações de ILR em APS. Vários novos problemas podem ser causados por esta solução. Por exemplo, dois tipos de APS são projetados. Mas o adaptation_parameter_set_id sinalizado para ILR pode referir-se a um APS que não contém informações de ILR. De forma similar, adaptation_parameter_set_id sinalizado para filtragem adaptativa de malha (ALF) pode se referir a um APS que não contém informações de ALF. 4 Métodos exemplares para reformulação em malha para codificação de vídeo
[0280] As modalidades da tecnologia presentemente divulgada superam as desvantagens das implementações existentes, provendo, assim, codificação de vídeo com eficiências de codificação superiores. Os métodos de reformulação em malha, com base na tecnologia divulgada, podem aprimorar ambos os padrões de codificação de vídeo existentes e futuros, são elucidados nos exemplos a seguir descritos para várias implementações. Os exemplos da tecnologia divulgada providos abaixo explicam os conceitos gerais e não devem ser interpretados como limitantes. Em um exemplo, a menos que explicitamente indicado o contrário, as várias características descritas nestes exemplos podem ser combinadas. Deve-se notar que algumas das tecnologias propostas podem ser aplicadas ao processo de construção de listas de candidatos existentes.
[0281] Neste documento, a derivação de vetor de movimento no lado do decodificador (DMVD) inclui métodos como DMVR e FRUC, os quais desempenham estimativa de movimento para derivar ou refinar as informações de movimento de bloco/sub-bloco, e BIO, o qual desempenha refinamento de movimento por amostra. Vários exemplos (Exemplos 1 a 42) são providos em uma lista numerada abaixo.
1. O processo de refinamento de informações de movimento nas tecnologias de DMVD, tal como DMVR, pode depender das informações no domínio reformulado. a. Em um exemplo, os blocos de predição gerados a partir de imagens de referência no domínio original podem ser convertidos primeiramente ao domínio reformulado antes de serem usados para refinamento de informações de movimento. i. Alternativamente, adicionalmente, os cálculos de custo (por exemplo, SAD, MR-SAD)/cálculos de gradiente são desempenhados no domínio reformulado. ii. Alternativamente, adicionalmente, após as informações de movimento serem refinadas, o processo de reformulação é desabilitado para blocos de predição gerados com as informações de movimento refinadas. b. Alternativamente, o processo de refinamento de informações de movimento nas tecnologias de DMVD, tal como DMVR, pode depender das informações no domínio original.
i. Os processos de DMVD podem ser invocados com blocos de predição no domínio original. ii. Em um exemplo, após o refinamento das informações de movimento, os blocos de predição obtidos com as informações de movimento refinadas ou o bloco de predição final (por exemplo, a média ponderada de dois blocos de predição) podem ser convertidos adicionalmente ao domínio reformulado para gerar o bloco de reconstrução final. iii. Alternativamente, adicionalmente, após as informações de movimento serem refinadas, o processo de reformulação é desabilitado para blocos de predição gerados com as informações de movimento refinadas.
2. É proposto alinhar o domínio para amostras no ladrilho/grupo de ladrilhos/imagem atual e amostras derivadas a partir de imagens de referência (ou ambas no domínio original ou no domínio reformulado) utilizadas para derivar os parâmetros de compensação de iluminação local (LIC). a. Em um exemplo, o domínio reformulado é utilizado para derivar parâmetros de LIC. i. Alternativamente, adicionalmente, as amostras (por exemplo, amostras de referência em imagens de referência (via interpolação ou não), bem como amostras vizinhas/não adjacentes das amostras de referência (via interpolação ou não)) podem primeiramente convertidas ao domínio reformulado antes de serem usadas para derivar parâmetros LIC. b. Em um exemplo, o domínio original é utilizado para derivar parâmetros de LIC. i. Alternativamente, adicionalmente, as amostras espacialmente vizinhas/não adjacentes do bloco atual (por exemplo, no grupo de ladrilhos/imagem/ladrilho atual) podem ser convertidas primeiramente ao domínio original antes de serem usadas para derivar parâmetros LIC. c. É proposto que quando os parâmetros de LIC são derivados em um domínio, o mesmo domínio dos blocos de predição deve ser usado ao aplicar os parâmetros de LIC aos blocos de predição. i. Em um exemplo, quando o marcador a. é invocado, os blocos de referência podem ser convertidos ao domínio reformulado e o modelo LIC é aplicado aos blocos de referência reformulados. ii. Em um exemplo, quando o marcador b. é invocado, os blocos de referência são mantidos no domínio original e o modelo LIC é aplicado aos blocos de referência no domínio original. d. Em um exemplo, o modelo de LIC é aplicado aos blocos de predição no domínio reformulado (por exemplo, os blocos de predição são primeiramente convertidos ao domínio reformulado via reformulação direta). e. Em um exemplo, o modelo LIC é aplicado primeiramente aos blocos de predição no domínio original, posteriormente, o bloco de predição final dependente dos blocos de predição aplicados de LIC pode ser então convertido ao domínio reformulado (por exemplo, via reformulação direta) e utilizado para derivar o bloco de reconstrução. f. Os métodos acima podem ser estendidos a outras ferramentas de codificação as quais dependem ambas de amostras espacialmente vizinhas/não adjacentes e de amostras de referência em imagens de referência.
3. Para filtros aplicados ao sinal de predição (tal como o Filtro de
Difusão (DF)), o filtro é aplicado ao bloco de predição no domínio original. a. Alternativamente, adicionalmente, posteriormente, a reformulação é aplicada ao sinal de predição filtrado para gerar o bloco de reconstrução. b. Um exemplo do processo para intercodificar está retratado na figura 27. c. Alternativamente, os filtros são aplicados ao sinal de predição no domínio de reformulação. i. Alternativamente, adicionalmente, a reformulação é primeiramente aplicada ao bloco de predição; posteriormente, os métodos de filtragem podem ser aplicados adicionalmente ao bloco de predição reformulado para gerar o bloco de reconstrução. ii. Um exemplo do processo para intercodificar está retratado na figura 28. d. Os parâmetros do filtro podem depender se a ILR está habilitada ou não.
4. Para filtros aplicados a blocos de reconstrução (por exemplo, filtro bilateral (BF), filtro de domínio de transformada de Hadamard (HF)), os filtros são aplicados aos blocos de reconstrução no domínio original em vez do domínio reformulado. a. Alternativamente, adicionalmente, o bloco de reconstrução no domínio reformulado é primeiramente convertido ao domínio original, posteriormente os filtros podem ser aplicados e utilizados para gerar o bloco de reconstrução. b. Um exemplo do processo para intercodificar está retratado na figura 29. c. Alternativamente, os filtros podem ser aplicados ao bloco de reconstrução no domínio reformulado.
i. Alternativamente, adicionalmente, antes de aplicar a remodelação reversa, os filtros podem ser aplicados primeiramente. Posteriormente, o bloco de reconstrução filtrado pode ser então convertido ao domínio original. ii. Um exemplo do processo para intercodificar está retratado na figura 30. d. Os parâmetros do filtro podem depender se a ILR está habilitada ou não.
5. É proposto aplicar o processo de filtragem o qual pode ser aplicado aos blocos de reconstrução (por exemplo, após intra/inter ou outros tipos de métodos de predição) no domínio reformulado. a. Em um exemplo, o processo de Filtro de Deblocagem (DBF) é desempenhado no domínio reformulado. Nesse caso, a reformulação inversa não é aplicada antes do DBF. i. Nesse caso, os parâmetros de DBF podem ser diferentes dependendo se a reformulação é aplicada ou não. ii. Em um exemplo, o processo de DBF pode depender se a reformulação está habilitada ou não.
1. Em um exemplo, este método é aplicado quando o DBF é invocado no domínio original.
2. Alternativamente, este método é aplicado quando o DBF é invocado no domínio reformulado. b. Em um exemplo, o processo de filtragem de desvio adaptativo por amostra (SAO) é desempenhado no domínio reformulado. Nesse caso, a reformulação inversa não é aplicada antes do SAO. c. Em um exemplo, o processo de filtragem de filtro adaptativo de malha (ALF) é desempenhado no domínio reformulado. Nesse caso, a reformulação inversa não é aplicada antes do ALF. d. Alternativamente, adicionalmente, a reformulação inversa pode ser aplicada aos blocos após o DBF. e. Alternativamente, adicionalmente, a reformulação inversa pode ser aplicada aos blocos após o SAO. f. Alternativamente, adicionalmente, a reformulação inversa pode ser aplicada aos blocos após o ALF. g. O método de filtragem mencionado acima pode ser substituído por outros tipos de métodos de filtragem.
6. Propõe-se sinalizar os parâmetros ILR em um novo conjunto de parâmetros (tal como ILR APS) em vez de cabeçalhos de grupo de ladrilhos. a. Em um exemplo, o cabeçalho do grupo de ladrilhos pode conter um aps_id. Alternativamente, adicionalmente, aps_id está condicionalmente presente quando ILR está habilitado. b. Em um exemplo, o ILR APS contém um aps_id e os parâmetros ILR. c. Em um exemplo, um novo valor NUT (tipo de unidade NAL, como em AVC e HEVC) é atribuído ao ILR APS. d. Em um exemplo, a faixa de valores ILR APS ID será 0… M (por exemplo, M = 2K-1). e. Em um exemplo, ILR APSs podem ser compartilhados entre as imagens (e podem ser diferentes em grupos de ladrilhos diferentes dentro de uma imagem). f. Em um exemplo, o valor de ID pode ser codificado por comprimento fixo quando presente. Alternativamente, pode ser codificado com codificação Golomb exponencial (EG), unário truncado ou outros métodos de binarização. g. Em um exemplo, os valores de ID não podem ser reutilizados com conteúdo diferente dentro da mesma imagem. h. Em um exemplo, os parâmetros ILR APS e APS para ALF podem compartilhar o mesmo NUT. i. Alternativamente, os parâmetros ILR podem ser portados com os parâmetros APS atuais para ALF. Neste caso, os métodos acima os quais mencionam ILR APS podem ser substituídos pelo APS atual. j. Alternativamente, os parâmetros ILR podem ser portados no SPS/VPS/PPS/cabeçalho de sequência/cabeçalho de imagem. k. Em um exemplo, os parâmetros ILR podem incluir informações do modelo reformulador, uso do método ILR, fatores de escalamento residual de croma. l. Alternativamente, adicionalmente, os parâmetros ILR podem ser sinalizados em um nível (tal como em APS) e/ou o uso de ILR pode ser adicionalmente sinalizado em um segundo nível (tal como cabeçalho de grupo de ladrilhos). m. Alternativamente, adicionalmente, a codificação preditiva pode ser aplicada para codificar parâmetros ILR com diferentes índices APS.
7. Em vez de aplicar o escalamento de resíduo de croma dependente de luma (LCRS) aos blocos de croma, é proposto aplicar os processos de reformulação direta/inversa aos blocos de croma para remover a dependência entre luma e croma. a. Em um exemplo, um modelo linear por partes (PWL) de M partes e/ou tabela de consulta direta/reversa pode ser utilizado para um componente de croma. Alternativamente, dois modelos de modelos PWL e/ou tabelas de consulta direta/reversa podem ser utilizadas para codificar os dois componentes de croma, respectivamente. b. Em um exemplo, o modelo PWL de croma e/ou tabela de consulta direta/reversa pode ser derivado a partir do modelo do modelo PWL de luma e/ou tabelas de consulta direta/reversa. i. Em um exemplo, não há necessidade de sinalizar adicionalmente os modelos PWL de croma/tabelas de consulta. c. Em um exemplo, o modelo PWL de croma e/ou tabela de consulta direta/reversa pode ser sinalizado em SPS/VPS/APS/PPS/cabeçalho de sequência/cabeçalho de imagem/cabeçalho de grupo de ladrilhos/cabeçalho de ladrilhos/fileira de CTU/grupo de CTUs/regiões.
8. Em um exemplo, como sinalizar os parâmetros ILR de uma imagem/grupo de ladrilhos pode depender dos parâmetros ILR de imagens/grupos de ladrilhos previamente codificados. a. Por exemplo, os parâmetros ILR de uma imagem/grupo de ladrilhos podem ser preditos por parâmetros ILR de uma ou múltiplas imagens/grupos de ladrilhos previamente codificados.
9. É proposto desabilitar o escalamento de resíduo de croma dependente de Luma (LCRS) para certas dimensões de bloco/camadas temporais/tipos de grupos de ladrilhos/tipos de imagens/modos codificados/certos tipos de informações de movimento. a. Em um exemplo, mesmo quando o processo de reformulação direta/inversa é aplicado aos blocos de luma, o LCRS pode não ser aplicado aos blocos de croma correspondentes. b. Alternativamente, mesmo quando o processo de reformulação direta/inversa não é aplicado aos blocos de luma, o LCRS ainda pode ser aplicado aos blocos de croma correspondentes. c. Em um exemplo, LCRS não é usado quando os modos de modelo linear de componente cruzado (CCLM) são aplicados. Os modos CCLM incluem LM, LM-A e LM-L.
d. Em um exemplo, LCRS não é usado quando os modos de modelo linear de componente cruzado (CCLM) não são aplicados. Os modos CCLM incluem LM, LM-A e LM-L. e. Em um exemplo, quando o bloco de luma codificado excede um VPDU (por exemplo, 64x64). i. Em um exemplo, quando um tamanho de bloco de luma contém amostras menores que M*H, por exemplo, 16 ou 32 ou 64 amostras de luma, LCRS não é permitido. ii. Alternativamente, quando o tamanho mínimo da largura e/ou altura de um bloco de luma é menor ou não maior que X, LCRS não é permitido. Em um exemplo, X é estabelecido como 8. iii. Alternativamente, quando o tamanho mínimo da largura e/ou altura de um bloco de luma não é menor que X, LCRS não é permitido. Em um exemplo, X é estabelecido como 8. iv. Alternativamente, quando a largura de um bloco > th1 ou >=th1 e/ou a altura de um bloco de luma > th2 ou >=th2, LCRS não é permitido. Em um exemplo, th1 e/ou th2 é estabelecido como 8.
1. Em um exemplo, th1 e/ou th2 é estabelecido como 128.
2. Em um exemplo, th1 e/ou th2 é estabelecido como 64. v. Alternativamente, quando a largura de um bloco de luma < th1 ou <=th1 e/ou a altura de um bloco de luma < th2 ou <a=th2, LCRS não é permitido. Em um exemplo, th1 e/ou th2 é estabelecido como
8.
10. Quando desabilitar ILR (processo de reformulação direta e/ou processo de reformulação inversa) pode depender dos coeficientes. a. Em um exemplo, quando um bloco é codificado com todos os coeficientes zero, salta-se o processo de reformulação direta aplicada aos blocos de predição. b. Em um exemplo, quando um bloco é codificado com todos os coeficientes zero, salta-se o processo de reformulação inversa aplicado aos blocos de reconstrução. c. Em um exemplo, quando um bloco é codificado com apenas um coeficiente diferente de zero localizado em certas posições (por exemplo, coeficiente DC localizado na posição mais alta esquerda de um bloco, um coeficiente localizado no grupo de codificação mais alto esquerdo dentro de um bloco) salta-se o processo de reformulação direta aplicado aos blocos de predição e/ou reformulação inversa aplicada aos blocos de reconstrução. d. Em um exemplo, quando um bloco é codificado com apenas M (por exemplo, M=1) coeficientes diferentes de zero, salta-se o processo de reformulação direta aplicada a blocos de predição e/ou reformulação inversa aplicada a blocos de reconstrução.
11. É proposto separar a região de aplicação de ILR em unidades de pipeline de dados virtuais (VPDU) se o bloco codificado exceder um VPDU. Cada região de aplicação (por exemplo, com tamanho máximo de 64x64) é considerada como uma CU individual para operação ILR. a. Em um exemplo, quando a largura de um bloco > th1 ou >=th1 e/ou a altura de um bloco > th2 ou >=th2, ele pode ser separado em sub-blocos com largura < th1 ou <= th1 e/ou altura < th2 ou <= th2, e ILR pode ser desempenhado para cada sub-bloco. i. Em um exemplo, os sub-blocos podem ser com a mesma largura ou/e altura. ii. Em um exemplo, os sub-blocos excluindo aqueles que estão na fronteira direita ou/e a fronteira mais baixa podem ser com a mesma largura ou/e altura. iii.
Em um exemplo, os sub-blocos excluindo aqueles que estão na fronteira esquerda ou/e na fronteira mais alta podem ser com a mesma largura ou/e altura. b.
Em um exemplo, quando o tamanho de um bloco (ou seja, largura * altura) > th3 ou >= th3, ele pode ser separado em sub-blocos com tamanho < th3 ou <= th3, e ILR pode ser desempenhado para cada sub-bloco. i.
Em um exemplo, os sub-blocos podem ser com o mesmo tamanho. ii.
Em um exemplo, os sub-blocos excluindo aqueles que estão na fronteira direita ou/e a fronteira mais baixa podem ser com o mesmo tamanho. iii.
Em um exemplo, os sub-blocos excluindo aqueles que estão na fronteira esquerda ou/e na fronteira mais alta podem ser com o mesmo tamanho. c.
Alternativamente, o uso de ILR é restrito apenas a certas dimensões de bloco. i.
Em um exemplo, quando o bloco codificado excede um VPDU (por exemplo, 64x64), o ILR não é permitido. ii.
Em um exemplo, quando um tamanho de bloco contém amostras menores que M*H, por exemplo, 16 ou 32 ou 64 amostras de luma, o ILR não é permitido. iii.
Alternativamente, quando o tamanho mínimo da largura ou/e altura de um bloco é menor ou não maior que X, o ILR não é permitido.
Em um exemplo, X é estabelecido como 8. iv.
Alternativamente, quando o tamanho mínimo da largura e/ou altura de um bloco não é menor que X, o ILR não é permitido.
Em um exemplo, X é estabelecido como 8. v. Alternativamente, quando a largura de um bloco > th1 ou >=th1 e/ou a altura de um bloco > th2 ou >=th2, o ILR não é permitido. Em um exemplo, th1 e/ou th2 é estabelecido como 8.
1. Em um exemplo, th1 e/ou th2 é estabelecido como 128.
2. Em um exemplo, th1 e/ou th2 é estabelecido como 64. vi. Alternativamente, quando a largura de um bloco < th1 ou <=th1 e/ou a altura de um bloco < th2 ou <a=th2, ILR não é permitido. Em um exemplo, th1 e/ou th2 é estabelecido como 8.
12. Os métodos acima (por exemplo, se deve desabilitar ILR e/ou se deve desabilitar LCRS e/ou se deve sinalizar PWL/tabelas de consulta para codificação de croma) podem depender do formato de cor, tais como 4:4:4/4:2:0.
13. A indicação de habilitar ILR (por exemplo, tile_group_reshaper_enable_flag) pode ser codificada sob a condição de indicações do modelo reformulador apresentado (por exemplo, tile_group_reshaper_model_present_flag). a. Alternativamente, tile_group_reshaper_model_present_flag pode ser codificado sob a condição de tile_group_reshaper_enable_flag. b. Alternativamente, apenas um dos dois elementos de sintaxe, incluindo tile_group_reshaper_model_present_flag e tile_group_reshaper_enable_flag pode ser codificado. O valor do outro é estabelecido igual ao que pode ser sinalizado.
14. Diferentes métodos de recorte podem ser aplicados ao sinal de predição e ao processo de reconstrução. a. Em um exemplo, o método de recorte adaptativo pode ser aplicado e os valores máximo e mínimo a serem recortados podem ser definidos no domínio reformulado. b. Em um exemplo, o recorte adaptativo pode ser aplicado ao sinal de predição no domínio reformulado. c. Alternativamente, adicionalmente, o recorte fixo (por exemplo, de acordo com a profundidade de bits) pode ser aplicado ao bloco de reconstrução.
15. Os parâmetros do filtro (tais como o usado em DF, BF, HF) podem depender se o ILR está habilitado ou não.
16. Propõe-se que para blocos codificados no modo de Paleta, o ILR seja desabilitado ou aplicado de forma diferente. a. Em um exemplo, quando um bloco é codificado no modo de Paleta, salta-se a reformulação e a reformulação inversa. b. Alternativamente, quando um bloco é codificado no modo de Paleta, uma reformulação diferente e funções de reformulação inversa podem ser aplicadas.
17. Alternativamente, quando ILR é aplicado, o modo de Paleta pode ser codificado de forma diferente. a. Em um exemplo, quando ILR é aplicado, o modo de Paleta pode ser codificado no domínio original. b. Alternativamente, quando ILR é aplicado, o modo de Paleta pode ser codificado no domínio reformulado. c. Em um exemplo, quando o ILR é aplicado, os preditores de paleta podem ser sinalizados no domínio original. d. Alternativamente, os preditores de paleta podem ser sinalizados no domínio reformulado.
18. É proposto que para blocos codificados no modo IBC, o ILR seja desabilitado ou aplicado de forma diferente.
a. Em um exemplo, quando um bloco é codificado no modo IBC, salta- se a reformulação e a reformulação inversa. b. Alternativamente, quando um bloco é codificado no modo IBC, uma reformulação diferente e uma reformulação inversa são aplicadas.
19. Alternativamente, quando ILR é aplicado, o modo IBC pode ser codificado de forma diferente. a. Em um exemplo, quando ILR é aplicado, IBC pode ser desempenhado no domínio original. b. Alternativamente, quando ILR é aplicado, IBC pode ser desempenhado no domínio reformulado.
20. É proposto que para blocos codificados no modo B-DPCM, o ILR seja desabilitado ou aplicado de forma diferente. a. Em um exemplo, quando um bloco é codificado no modo B-DPCM, salta-se a reformulação e a reformulação inversa. b. Alternativamente, quando um bloco é codificado no modo B-DPCM, uma reformulação diferente e uma reformulação inversa são aplicadas.
21. Alternativamente, quando ILR é aplicado, o modo B-DPCM pode ser codificado de forma diferente. a. Em um exemplo, quando ILR é aplicado, B-DPCM pode ser desempenhado no domínio original. b. Alternativamente, quando ILR é aplicado, B-DPCM pode ser desempenhado no domínio reformulado.
22. É proposto que para blocos codificados no modo de salto de transformada, o ILR é desabilitado ou aplicado de forma diferente. a. Em um exemplo, quando um bloco é codificado no modo de salto de transformada, salta-se a reformulação e a reformulação inversa. b. Alternativamente, quando um bloco é codificado no modo de salto de transformada, uma reformulação diferente e uma reformulação inversa podem ser aplicadas.
23. Alternativamente, quando ILR é aplicado, o modo de salto de transformada pode ser codificado de forma diferente. a. Em um exemplo, quando o ILR é aplicado, o salto de transformada pode ser desempenhado no domínio original. b. Alternativamente, quando o ILR é aplicado, o salto de transformada pode ser desempenhado no domínio reformulado.
24. É proposto que para blocos codificados no modo I-PCM, o ILR seja desabilitado ou aplicado de forma diferente. a. Em um exemplo, quando um bloco é codificado no modo de Paleta, salta-se a reformulação e a reformulação inversa. b. Alternativamente, quando um bloco é codificado no modo de Paleta, uma reformulação diferente e funções de reformulação inversa podem ser aplicadas.
25. Alternativamente, quando ILR é aplicado, o modo I-PCM pode ser codificado de forma diferente. a. Em um exemplo, quando ILR é aplicado, o modo I-PCM pode ser codificado no domínio original. b. Alternativamente, quando ILR é aplicado, o modo I-PCM pode ser codificado no domínio reformulado.
26. É proposto que para blocos codificados no modo transquant- bypass, o ILR seja desabilitado ou aplicado de forma diferente. a. Em um exemplo, quando um bloco é codificado no modo transquant-bypass, salta-se a reformulação e a reformulação inversa.
27. Alternativamente, quando um bloco é codificado no modo transquant-bypass, uma reformulação diferente e funções de reformulação inversa são aplicadas.
28. Para os marcadores acima, quando o ILR está desabilitado, o processo de reformulação direta e/ou de reformulação inversa podem ser saltados. a. Alternativamente, a predição e/ou reconstrução e/ou sinal residual estão no domínio original. b. Alternativamente, a predição e/ou reconstrução e/ou sinal residual estão no domínio reformulado.
29. Múltiplas funções de reformulação/reformulação inversa (tal como múltiplos modelos PWL) podem ser permitidas para codificar uma imagem/um grupo de ladrilhos/um VPDU/uma região/uma fileira de CTU/múltiplos CUs. a. Como selecionar a partir de múltiplas funções pode depender da dimensão do bloco/modo codificado/tipo de imagem/flag de verificação de baixo atraso/informações de movimento/imagens de referência/conteúdo de vídeo, etc. b. Em um exemplo, múltiplos conjuntos de informações do lado de ILR (por exemplo, funções de reformulação/reformulação inversa) podem ser sinalizados por SPS/VPS/PPS/cabeçalho de sequência/cabeçalho de imagem/cabeçalho de grupo de ladrilhos/cabeçalho de ladrilhos/regiões/VPDU/etc. i. Alternativamente, adicionalmente, a codificação preditiva de informações do lado de ILR pode ser utilizada. c. Em um exemplo, mais de um aps_idx pode ser sinalizado em PPS/cabeçalho de imagem/cabeçalho de grupo de ladrilhos/cabeçalho de ladrilhos/regiões/VPDU/etc.
30. Em um exemplo, as informações de reformulação são sinalizadas em um novo conjunto de sintaxe diferente de VPS, SPS, PPS ou APS. Por exemplo,
as informações de reformulação são sinalizadas em um conjunto denotado como inloop_reshaping_parameter_set() (IRPS ou qualquer outro nome). a.
Um projeto de sintaxe exemplar é conforme abaixo.
A sintaxe adicionada é destacada em itálico. inloop_reshape_parameter_set_rbsp( ) { Descritor inloop_reshaping_parameter_set_id u(5) reshaper_model( ) irps_extension_flag u(1) if(irps_extension_flag) while( more_rbsp_data( ) ) irps_extension_data_flag u(1) rbsp_trailing_bits( ) } inloop_reshaping_parameter_set_id provê um identificador para o IRPS para referência por outros elementos de sintaxe.
NOTA – Os IRPSs podem ser compartilhados entre as imagens e podem ser diferentes em grupos de ladrilhos diferentes dentro de uma imagem. irps_extension_flag igual a 0 especifica que nenhum elemento de sintaxe irps_extension_data_flag está presente na estrutura de sintaxe de IRPS RBSP. irps_extension_flag igual a 1 especifica que existem elementos de sintaxe irps_extension_data_flag presentes na estrutura de sintaxe IRPS RBSP. irps_extension_data_flag pode ter qualquer valor.
Sua presença e valor não afetam a conformidade do decodificador com os perfis especificados nesta versão desta Especificação.
Os decodificadores em conformidade com esta versão desta Especificação devem ignorar todos os elementos de sintaxe irps_extension_data_flag.
b. Um projeto de sintaxe exemplar é conforme abaixo. A sintaxe adicionada é destacada em itálico. Sintaxe e semântica geral do cabeçalho do grupo de ladrilhos tile_group_header( ) { Descritor ... if( sps_reshaper_enabled_flag ) { tile_group_reshaper_model_present_flag u(1) if( tile_group_reshaper_model_present_flag ) tile_group_reshaper_model ( )tile_group_irps_id tile_group_reshaper_enable_flag u(1) if( tile_group_reshaper_enable_flag && (! ( qtbtt_dual_tree_intra_flag && tile_group_type == I ) ) ) tile_group_reshaper_chroma_residual_scale_flag u(1) } ... } tile_group_irps_id especifica o inloop_reshaping_parameter_set_id do IRPS que o grupo de ladrilhos se refere. O TemporalId da unidade IRPS NAL tendo inloop_reshaping_parameter_set_id igual a tile_group_irps_id deve ser menor ou igual ao TemporalId da unidade NAL do grupo de ladrilhos codificados.
31. Em um exemplo, as informações IRL são sinalizadas junto com as informações ALF em APS. a. Um projeto de sintaxe exemplar é conforme abaixo. A sintaxe adicionada é destacada em itálico. Sintaxe e semântica do conjunto de parâmetros de adaptação adaptation_parameter_set_rbsp( ) { Descritor adaptation_parameter_set_id u(5) alf_data( ) reshaper_model( ) aps_extension_flag u(1) if( aps_extension_flag ) while( more_rbsp_data( ) ) aps_extension_data_flag u(1) rbsp_trailing_bits( ) } b. Em um exemplo, um tile_group_aps_id é sinalizado no cabeçalho do grupo de ladrilhos para especificar o adaptation_parameter_set_id do APS que o grupo de ladrilhos se refere. Ambas as informações ALF e informações ILR para o grupo de ladrilhos atual são sinalizadas no APS especificado. i. Um projeto de sintaxe exemplar é conforme abaixo. A sintaxe adicionada é destacada em itálico. if ( tile_group_reshaper_model_present_flag || tile_group_alf_enabled_flag) tile_group_aps_id
32. Em um exemplo, informações de ILR e informações de ALF sinalizadas em diferentes APSs. a. um primeiro ID (pode ser denominado como tile_group_aps_id_alf) é sinalizado no cabeçalho do grupo de ladrilhos para especificar um primeiro adaptation_parameter_set_id de um primeiro APS que o grupo de ladrilhos se refere. As informações de ALF para o grupo de ladrilhos atual são sinalizadas no primeiro APS especificado. b. um segundo ID (pode ser denominado como tile_group_aps_id_irps) é sinalizado no cabeçalho do grupo de ladrilhos para especificar um segundo adaptation_parameter_set_id de um segundo APS que o grupo de ladrilhos se refere.
As informações de ILR para o grupo de ladrilhos atual são sinalizadas no segundo APS especificado. c.
Em um exemplo, o primeiro APS deve ter informações ALF em um bitstream de conformidade; d.
Em um exemplo, o segundo APS deve ter informações de ILR em um bitstream de conformidade; e.
Um projeto de sintaxe exemplar é conforme abaixo.
A sintaxe adicionada é destacada em itálico. if( sps_alf_enabled_flag ) { tile_group_alf_enabled_flag u(1) if( tile_group_alf_enabled_flag ) tile_group_aps_id_alf u(5) }
tile_group_header( ) { Descritor … if( sps_alf_enabled_flag ) { tile_group_alf_enabled_flag u(1) if( tile_group_alf_enabled_flag ) tile_group_aps_id_alf u(5) } ... If ( sps_reshaper_enabled_flag ) { tile_group_reshaper_model_present_flag u(1) If ( tile_group_reshaper_model_present_flag )
tile_group_aps_id_irps tile_group_reshaper_enable_flag u(1) If ( tile_group_reshaper_enable_flag && (!( qtbtt_dual_tree_intra_flag && tile_group_type == I ) ) ) tile_group_reshaper_chroma_residual_scale_flag u(1) } ... }
33. Em um exemplo, alguns APSs com adaptation_parameter_set_id especificado devem ter informações ALF. Para outro exemplo, alguns APSs com adaptation_parameter_set_id especificado devem ter informações de ILR. a. Por exemplo, APSs com adaptation_parameter_set_id igual a 2N devem ter informações ALF. N é qualquer número inteiro; b. Por exemplo, APSs com adaptation_parameter_set_id igual a 2N+1 devem ter informações de ILR. N é qualquer número inteiro; c. Um projeto de sintaxe exemplar é conforme abaixo. A sintaxe adicionada é destacada em itálico. adaptation_parameter_set_rbsp( ) { Descritor adaptation_parameter_set_id u(5) if(adaptation_parameter_set_id %2== 0 ) alf_data( ) else reshaper_model( ) aps_extension_flag u(1) if( aps_extension_flag ) while( more_rbsp_data( ) )
aps_extension_data_flag u(1) rbsp_trailing_bits( ) }
tile_group_header( ) { Descritor … if( sps_alf_enabled_flag ) { tile_group_alf_enabled_flag u(1) if( tile_group_alf_enabled_flag ) tile_group_aps_id_alf u(5) } ... if( sps_reshaper_enabled_flag ) { tile_group_reshaper_model_present_flag u(1) If ( tile_group_reshaper_model_present_flag ) tile_group_aps_id_irps tile_group_reshaper_enable_flag u(1) If ( tile_group_reshaper_enable_flag && (!( qtbtt_dual_tree_intra_flag && tile_group_type == I ) ) ) tile_group_reshaper_chroma_residual_scale_flag u(1) } ... } i.
Por exemplo, 2* tile_group_aps_id_alf especifica um primeiro adaptation_parameter_set_id de um primeiro APS que o grupo de ladrilhos se refere.
As informações de ALF para o grupo de ladrilhos atual são sinalizadas no primeiro APS especificado.
ii. Por exemplo, 2* tile_group_aps_id_irps+1 especifica um segundo adaptation_parameter_set_id de um segundo APS que o grupo de ladrilhos se refere. As informações de ILR para o grupo de ladrilhos atual são sinalizadas no segundo APS especificado.
34. Em um exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um tipo especificado de unidade de camada de abstração de rede (NAL), o qual é sinalizado antes do grupo de ladrilhos atual. a. Em um exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um tipo específico de grupo de ladrilhos, o qual é sinalizado antes do grupo de ladrilhos atual. b. Por exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um SPS, o qual é sinalizado antes do grupo de ladrilhos atual. c. Por exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um PPS, o qual é sinalizado antes do grupo de ladrilhos atual. d. Por exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um NAL Delimitador de Unidade de Acesso (AUD), o qual é sinalizado antes do grupo de ladrilhos atual. e. Por exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um NAL de Fim de Bitstream (EoB), o qual é sinalizado antes do grupo de ladrilhos atual. f. Por exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um NAL de Fim de Sequência (EoS), o qual é sinalizado antes do grupo de ladrilhos atual. g. Por exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um NAL de atualização de decodificação instantânea (IDR), o qual é sinalizado antes do grupo de ladrilhos atual. h. Por exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um NAL de acesso aleatório limpo (CRA), o qual é sinalizado antes do grupo de ladrilhos atual. i. Por exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de uma unidade de acesso de ponto de acesso - aleatório intra (IRAP), a qual é sinalizada antes do grupo de ladrilhos atual. j. Por exemplo, um grupo de ladrilhos não pode se referir a um APS (ou IRPS) sinalizado antes de um grupo de ladrilhos I (ou imagem ou fatia), o qual é sinalizado antes do grupo de ladrilhos atual. k. Os métodos divulgados em IDF-P1903237401H e IDF- P1903234501H também podem ser aplicados quando informações de ILR são portadas em APS ou IRPS.
35. Um bitstream de conformidade deve satisfazer que, quando o método de reformulação em malha é habilitado para uma unidade de dados de vídeo (tal como sequência), os parâmetros ILR padrão, tal como um modelo padrão, devem ser definidos. a. O sps_lmcs_default_model_present_flag deve ser estabelecido para 1 quando sps_lmcs_enabled_flag é estabelecido para 1. b. Os parâmetros padrão podem ser sinalizados sob a condição da flag de habilitação de ILR em vez da flag de modelo padrão presente (tal como sps_lmcs_default_model_present_flag). c. Para cada grupo de ladrilhos, uma flag de uso do modelo padrão (tal como tile_group_lmcs_use_default_model_flag) pode ser sinalizada sem referência à flag de uso do modelo padrão SPS. d. Um bitstream de conformidade deve satisfazer que, quando não houver informações de ILR nos tipos APS correspondentes para ILR, e uma unidade de dados de vídeo (tal como grupo de ladrilhos) é forçada a usar a tecnologia ILR, o modelo padrão deve ser utilizado. e. Alternativamente, um bitstream de conformidade deve satisfazer que, quando não houver informações de ILR nos tipos APS correspondentes para ILR, e uma unidade de dados de vídeo (tal como grupo de ladrilhos) é forçada a usar a tecnologia ILR (tal como tile_group_lmcs_enable_flag é igual a 1), a indicação do uso do modelo padrão deve ser verdadeira, por exemplo, tile_group_lmcs_use_default_model_flag deve ser 1. f. Condiciona-se que os parâmetros ILR padrão (tal como o modelo padrão) devem ser enviados em uma unidade de dados de vídeo (tal como SPS). i. Alternativamente, adicionalmente, os parâmetros ILR padrão devem ser enviados quando a flag SPS a qual indica o uso de ILR for verdadeira. g. Condiciona-se que haja pelo menos um ILR APS enviado em uma unidade de dados de vídeo (tal como SPS). i. Em um exemplo, pelo menos um ILR APS contém os parâmetros ILR padrão (tal como modelo padrão).
36. Os parâmetros ILR padrão podem ser indicados por uma flag. Quando essa flag diz que que os parâmetros ILR padrão são utilizados, não há necessidade de continuar sinalizando os dados ILR.
37. Os parâmetros ILR padrão podem ser predefinidos quando não são sinalizados. Por exemplo, os parâmetros ILR padrão podem corresponder a um mapeamento de identidade.
38. As informações da camada temporal podem ser sinalizadas junto com os parâmetros ILR, tal como em um ILR APS. a. Em um exemplo, o índice da camada temporal pode ser sinalizado no lmcs_data(). b. Em um exemplo, o índice da camada temporal menos 1 pode ser sinalizado no lmcs_data(). c. Alternativamente, adicionalmente, ao codificar/decodificar um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ILR APSs os quais estão associados com índice de camada temporal menor ou igual. d. Alternativamente, ao codificar/decodificar um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ILR APSs os quais estão associados com um índice de camada temporal menor. e. Alternativamente, ao codificar/decodificar um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ILR APSs os quais estão associados com um índice de camada temporal maior. f. Alternativamente, ao codificar/decodificar um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ILR APSs os quais estão associados com um índice de camada temporal maior ou igual. g. Alternativamente, ao codificar/decodificar um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ILR APSs os quais estão associados com um índice de camada temporal igual. h. Em um exemplo, quando as restrições acima são aplicadas pode depender de uma parte de informações, a qual pode ser sinalizada ao decodificador ou inferida pelo decodificador.
39. As informações da camada temporal podem ser sinalizadas junto com os parâmetros de ALF, tal como em um ALF APS. a. Em um exemplo, o índice da camada temporal pode ser sinalizado no alf_data(). b. Em um exemplo, o índice da camada temporal menos 1 pode ser sinalizado no alf_data().
c. Alternativamente, adicionalmente, ao codificar/decodificar um grupo de ladrilhos/ladrilho ou uma CTU dentro de um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ALF APSs os quais estão associados com um índice de camada temporal menor ou igual. d. Alternativamente, ao codificar/decodificar um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ALF APSs os quais estão associados com um índice de camada temporal menor. e. Alternativamente, ao codificar/decodificar um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ALF APSs os quais estão associados com um índice de camada temporal maior. f. Alternativamente, ao codificar/decodificar um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ALF APSs os quais estão associados com um índice de camada temporal maior ou igual. g. Alternativamente, ao codificar/decodificar um grupo de ladrilhos/ladrilho, restringe-se a referir-se àqueles ALF APSs os quais estão associados com um índice de camada temporal igual. h. Em um exemplo, quando as restrições acima são aplicadas pode depender de uma parte de informações, a qual pode ser sinalizada ao decodificador ou inferida pelo decodificador.
40. Em um exemplo, o mapeamento de reformulação entre as amostras originais e as amostras reformuladas pode não ser uma relação positiva, ou seja, um valor maior não é permitido a ser mapeado para um valor menor. a. Por exemplo, o mapeamento de reformulação entre as amostras originais e as amostras reformuladas pode ser uma relação negativa, em que para dois valores, o maior no domínio original pode ser mapeado para um valor menor no domínio reformulado.
41. Em um bitstream de conformidade, o elemento de sintaxe aps_params_type só é permitido a ser vários valores predefinidos, tais como 0 e
1. a. Em outro exemplo, só é permitido ser 0 e 7.
42. Em um exemplo, as informações de ILR padrão devem ser sinalizadas se o ILR puder ser aplicado (por exemplo, sps_lmcs_enabled_flag é verdadeiro). 5 Implementações exemplares da tecnologia divulgada
[0282] Em algumas modalidades, tile_group_reshaper_enable_flag está condicionalmente presente quando tile_group_reshaper_model_present_flag está habilitado. A sintaxe adicionada é destacada em itálico.
[0283] Em 7.3.3.1 Sintaxe de cabeçalho do grupo de ladrilhos geral tile_group_header( ) { Descritor … if( num_tiles_in_tile_group_minus1 > 0 ) { offset_len_minus1 ue(v) for( i = 0; i < num_tiles_in_tile_group_minus1; i++ ) entry_point_offset_minus1[ i ] u(v) } if ( sps_reshaper_enabled_flag ) { tile_group_reshaper_model_present_flag u(1) If ( tile_group_reshaper_model_present_flag ) { tile_group_reshaper_model ( ) tile_group_reshaper_enable_flag u(1) } if ( tile_group_reshaper_enable_flag && (!( qtbtt_dual_tree_intra_flag && tile_group_type == I ) ) ) tile_group_reshaper_chroma_residual_scale_flag u(1)
} byte_alignment( ) }
[0284] Alternativamente, tile_group_reshaper_model_present_flag está condicionalmente presente quando tile_group_reshaper_enable_flag está habilitado. tile_group_header( ) { Descritor … if( num_tiles_in_tile_group_minus1 > 0 ) { offset_len_minus1 ue(v) for( i = 0; i < num_tiles_in_tile_group_minus1; i++ ) entry_point_offset_minus1[ i ] u(v) } if ( sps_reshaper_enabled_flag ) { tile_group_reshaper_enable_flag u(1) if (tile_group_reshaper_enable_flag) { tile_group_reshaper_model_present_flag u(1) if ( tile_group_reshaper_model_present_flag ) tile_group_reshaper_model ( ) } tile_group_reshaper_enable_flag u(1) if ( tile_group_reshaper_enable_flag && (!( qtbtt_dual_tree_intra_flag && tile_group_type == I ) ) ) tile_group_reshaper_chroma_residual_scale_flag u(1) } byte_alignment( )
}
[0285] Alternativamente, apenas um dos dois elementos de sintaxe tile_group_reshaper_model_present_flag ou tile_group_reshaper_enable_flag pode ser sinalizado. Aquele que não está sinalizado é inferido ser igual àquele pode ser sinalizado. Nesse caso, o único elemento de sintaxe controla o uso de ILR.
[0286] Alternativamente, o bitstream de conformidade requer que tile_group_reshaper_model_present_flag deva ser igual a tile_group_reshaper_enable_flag.
[0287] Alternativamente, tile_group_reshaper_model_present_flag e/ou tile_group_reshaper_enable_flag e/ou tile_group_reshaper_model ( ), e/ou tile_group_reshaper_chroma_residual_scale_flag podem ser sinalizados em APS em vez do cabeçalho do grupo de ladrilhos.
[0288] Modalidade nº 2 no topo de JVET-N0805. A sintaxe adicionada é destacada em itálico. seq_parameter_set_rbsp( ) { Descritor … sps_lmcs_enabled_flag u(1) if( sps_lmcs_enabled_flag ) { sps_lmcs_default_model_present_flag u(1) if( sps_lmcs_default_model_present_flag ) lmcs_data( ) ... } ...
[0289] sps_lmcs_enabled_flag igual a 1 especifica que mapeamento de luma com escalamento de croma é usado na sequência de vídeo codificado
(CVS). sps_lmcs_enabled_flag igual a 0 especifica que mapeamento de luma com escalamento de croma não é usado no CVS.
[0290] sps_lmcs_default_model_present_flag igual a 1 especifica que dados lmcs padrão estão presentes neste SPS. sps_lmcs_default_model_flag igual a 0 especifica que dados lmcs padrão não estão presentes neste SPS. Quando não está presente, o valor de sps_lmcs_default_model_present_flag é considerado igual a 0. ... adaptation_parameter_set_rbsp( ) { Descritor adaptation_parameter_set_id u(5) aps_params_type u(3) if( aps_params_type = = ALF_APS ) // 0 alf_data( ) else if ( aps_params_type = = LMCS_APS ) // 1 lmcs_data( ) aps_extension_flag u(1) if( aps_extension_flag ) while( more_rbsp_data( ) ) aps_extension_data_flag u(1) rbsp_trailing_bits( ) }
[0291] aps_params_type especifica o tipo de parâmetros de APS portadas no APS conforme especificado na seguinte tabela: Tabela 7-x - códigos de tipo de parâmetros de APS e tipos de parâmetros de APS aps_params_ Nome de Tipo de parâmetros de APS type aps_params_
type 0 ALF_APS Parâmetros de ALF 1 LMCS_APS Parâmetros de LMCS
2..7 Reservado Reservado tile_group_header( ) { Descritor ... if( sps_alf_enabled_flag ) { tile_group_alf_enabled_flag u(1) if( tile_group_alf_enabled_flag ) tile_group_alf_aps_id u(5) } ... if( sps_lmcs_enabled_flag) { tile_group_lmcs_enable_flag u(1) if( tile_group_lmcs_enable_flag ) { if( sps_lmcs_default_model_present_flag ) tile_group_lmcs_use_default_model_flag u(1) if( !tile_group_lmcs_use_default_model_flag ) tile_group_lmcs_aps_id u(5) if( !( qtbtt_dual_tree_intra_flag && tile_group_type = = I ) ) tile_group_chroma_residual_scale_flag u(1) } } ... if( NumTilesInCurrTileGroup > 1 ) { offset_len_minus1 ue(v)
for( i = 0; i < NumTilesInCurrTileGroup − 1; i++ ) entry_point_offset_minus1[ i ] u(v) } byte_alignment( ) }
[0292] ALF APS: Um APS que tem aps_params_type igual a ALF_APS.
[0293] LMCS APS: Um APS que tem aps_params_type igual a LMCS_APS.
[0294] Fazer as seguintes alterações semânticas: ...
[0295] tile_group_alf_aps_id especifica o adaptation_parameter_set_id do ALF APS que o grupo de ladrilhos se refere. O TemporalId da unidade ALF APS NAL tendo adaptation_parameter_set_id igual a tile_group_alf_aps_id deve ser menor ou igual ao TemporalId da unidade NAL do grupo de ladrilhos codificados.
[0296] Quando múltiplos ALF APSs com o mesmo valor de adaptation_parameter_set_id são referidos por dois ou mais grupos de ladrilhos da mesma imagem, os múltiplos ALF APSs com o mesmo valor de adaptation_parameter_set_id devem ter o mesmo conteúdo. ...
[0297] tile_group_lmcs_enabled_flag igual a 1 especifica que mapeamento de luma com escalamento de croma está habilitado para o grupo de ladrilhos atual. tile_group_lmcs_enabled_flag igual a 0 especifica que mapeamento de luma com escalamento de croma não está habilitado para o grupo de ladrilhos atual. Quando tile_group_lmcs_enable_flag não está presente, infere-se que é igual a 0.
[0298] tile_group_lmcs_use_default_model_flag igual a 1 especifica que mapeamento de luma com operação de escalamento de croma para o grupo de ladrilhos usa o modelo lmcs padrão. tile_group_lmcs_use_default_model_flag igual a 0 especifica que aquele mapeamento de luma com operação de escalamento de croma para o grupo de ladrilhos usa o modelo lmcs no LMCS APS referido por tile_group_lmcs_aps_id. Quando tile_group_reshaper_use_default_model_flag não está presente, infere-se que é igual a 0.
[0299] tile_group_lmcs_aps_id especifica o adaptation_parameter_set_id do LMCS APS que o grupo de ladrilhos se refere. O TemporalId da unidade LMCS APS NAL tendo adaptation_parameter_set_id igual a tile_group_lmcs_aps_id deve ser menor ou igual ao TemporalId da unidade NAL do grupo de ladrilhos codificados.
[0300] Quando múltiplos LMCS APSs com o mesmo valor de adaptation_parameter_set_id são referidos por dois ou mais grupos de ladrilhos da mesma imagem, os múltiplos LMCS APSs com o mesmo valor de adaptation_parameter_set_id devem ter o mesmo conteúdo.
[0301] tile_group_chroma_residual_scale_flag igual a 1 especifica que escalamento residual de croma está habilitado para o grupo de ladrilhos atual. tile_group_chroma_residual_scale_flag igual a 0 especifica que escalamento residual de croma não está habilitado para o grupo de ladrilhos atual. Quando tile_group_chroma_residual_scale_flag não está presente, infere-se que é igual a 0. ... ...
[0302] Mapeamento de luma com sintaxe de dados de escalamento de croma lmcs_data () { Descritor temporal_id u(3) lmcs_min_bin_idx ue(v)
lmcs_delta_max_bin_idx ue(v) lmcs_delta_cw_prec_minus1 ue(v) for ( i = lmcs_min_bin_idx; i <= LmcsMaxBinIdx; i++ ) { lmcs_delta_abs_cw[ i ] u(v) if ( lmcs_delta_abs_cw[ i ] ) > 0 ) lmcs_delta_sign_cw_flag[ i ] u(1) } }
[0303] Os exemplos descritos acima podem ser incorporados no contexto do método descrito abaixo, por exemplo, métodos como mostrados nas figuras 31A a 39E, que podem ser implementados em um decodificador de vídeo ou um codificador de vídeo.
[0304] A figura 31A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3100 inclui, na etapa 3110, desempenhar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, um processo de refinamento de informações de movimento com base em amostras em um primeiro domínio ou um segundo domínio. O método 3100 inclui, na etapa 3120, desempenhar a conversão com base em um resultado do processo de refinamento de informações de movimento. Em algumas implementações, durante a conversão, as amostras são obtidas para o bloco de vídeo atual a partir de um primeiro bloco de predição no primeiro domínio usando informações de movimento não refinadas, pelo menos um segundo bloco de predição é gerado no segundo domínio usando informações de movimento refinadas usadas para determinar um bloco de reconstrução, e as amostras reconstruídas do bloco de vídeo atual são geradas com base em pelo menos o segundo bloco de predição
[0305] A figura 31B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3120 inclui, na etapa 3122, reconstruir, com base em pelo menos um bloco de predição no segundo domínio, o bloco de vídeo atual. Em algumas implementações, durante a conversão, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma. Em algumas implementações, uma ferramenta de codificação é aplicada durante a conversão usando parâmetros que são derivados pelo menos com base no primeiro conjunto de amostras em uma região de vídeo do vídeo e no segundo conjunto de amostras em uma imagem de referência do bloco de vídeo atual. Em algumas implementações, um domínio para as primeiras amostras e um domínio para as segundas amostras são alinhados.
[0306] A figura 32A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3210 inclui, na etapa 3212, determinar, para um bloco de vídeo atual de uma região de vídeo atual de um vídeo, um parâmetro para um modo de codificação do bloco de vídeo atual com base em um ou mais parâmetros para um modo de codificação de uma região de vídeo anterior. O método 3210 inclui adicionalmente, na etapa 3214, desempenhar uma codificação para o bloco de vídeo atual para gerar uma representação codificada do vídeo com base na determinação. Em algumas implementações, o parâmetro para o modo de codificação é incluído em um conjunto de parâmetros na representação codificada do vídeo. Em algumas implementações, o desempenho da codificação compreende transformar uma representação do bloco de vídeo atual em um primeiro domínio para uma representação do bloco de vídeo atual em um segundo domínio. Em algumas implementações, durante o desempenho da codificação usando o modo de codificação, o bloco de vídeo atual é construído com base no primeiro domínio e o segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0307] A figura 32B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3220 inclui, na etapa 3222, receber uma representação codificada de um vídeo incluindo um conjunto de parâmetros incluindo informações de parâmetros para um modo de codificação. O método 3220 inclui adicionalmente, na etapa 3224, desempenhar uma decodificação da representação codificada usando as informações de parâmetros para gerar um bloco de vídeo atual de uma região de vídeo atual do vídeo a partir da representação codificada. Em algumas implementações, as informações de parâmetros para o modo de codificação se baseiam em um ou mais parâmetros para o modo de codificação de uma região de vídeo anterior. Em algumas implementações, no modo de codificação, o bloco de vídeo atual é construído com base no primeiro domínio e o segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0308] A figura 32C mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3230 inclui, na etapa 3232, desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo. Em algumas implementações, a conversão inclui aplicar uma operação de filtragem a um bloco de predição em um primeiro domínio ou em um segundo domínio diferente a partir do primeiro domínio.
[0309] A figura 32D mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3240 inclui, na etapa 3242, desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo. Em algumas implementações, durante a conversão, um bloco de reconstrução final é determinado para o bloco de vídeo atual. Em algumas implementações, o bloco de reconstrução temporário é gerado usando um método de predição e representado no segundo domínio.
[0310] A figura 33 mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3300 inclui, na etapa 3302: desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que um conjunto de parâmetros na representação codificada compreende informações de parâmetros para o modo de codificação.
[0311] A figura 34A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3410 inclui, na etapa 3412, desempenhar uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, em que, durante a conversão, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio, e em que a conversão inclui adicionalmente aplicar um processo de reformulação direta e/ou um processo de reformulação inversa a um ou mais componentes de croma do bloco de vídeo atual.
[0312] A figura 34B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3420 inclui, na etapa 3422, desempenhar uma conversão entre um bloco de croma de vídeo atual de um vídeo e uma representação codificada do vídeo, em que o desempenho da conversão inclui: determinar se o escalamento de resíduo de croma dependente de luma (LCRS) está habilitado ou desabilitado com base em uma regra, e reconstruir o bloco de croma do vídeo atual com base na determinação.
[0313] A figura 35A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3510 inclui, na etapa 3512, determinar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, se deve desabilitar o uso de um modo de codificação com base em um ou mais valores de coeficiente do bloco de vídeo atual. O método 3510 inclui adicionalmente, na etapa 3514, desempenhar a conversão com base na determinação. Em algumas implementações, durante a conversão usando o modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0314] A figura 35B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3520 inclui, na etapa 3522, dividir, para uma conversão entre um bloco de vídeo atual de um vídeo que excede uma unidade de pipeline de dados virtual (VPDU) do vídeo, o bloco de vídeo atual em regiões. O método 3520 inclui adicionalmente, na etapa 3524, desempenhar a conversão ao aplicar um modo de codificação separadamente para cada região. Em algumas implementações, durante a conversão ao aplicar o modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0315] A figura 35C mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3530 inclui, na etapa 3532, determinar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, se deve desabilitar o uso de um modo de codificação com base em um tamanho ou um formato de cor do bloco de vídeo atual. O método 3530 inclui adicionalmente, na etapa 3534, desempenhar a conversão com base na determinação. Em algumas implementações, durante a conversão usando o modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0316] A figura 35D mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3540 inclui, na etapa 3542, desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que pelo menos um elemento de sintaxe na representação codificada provê uma indicação de um uso do modo codificado e uma indicação de um modelo de reformulação.
[0317] A figura 35E mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3550 inclui, na etapa 3552, determinar que um modo de codificação está desabilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo. O método 3550 inclui adicionalmente, na etapa 3554, saltar condicionalmente uma reformulação direta e/ou reformulação inversa com base na determinação. Em algumas implementações, no modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0318] A figura 35F mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3560 inclui, na etapa 3562, desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que a reformulação direta múltipla e/ou a reformulação inversa múltipla são aplicadas no modo de reformulação para a região de vídeo.
[0319] A figura 36A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3610 inclui, na etapa 3612, fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo. O método 3610 inclui adicionalmente, na etapa 3614, desempenhar a conversão usando um modo de paleta em que pelo menos uma paleta de valores de amostra representativos é usada para o bloco de vídeo atual. Em algumas implementações, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0320] A figura 36B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3620 inclui, na etapa 3622, fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de paleta no qual pelo menos uma paleta de valores de amostra representativos é usada para codificar o bloco de vídeo atual. O método 3620 inclui adicionalmente, na etapa 3624, desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação. Em algumas implementações, quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um resíduo de croma que é escalado em uma maneira dependente de luma.
[0321] A figura 36C mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3630 inclui, na etapa 3632, desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um primeiro modo de codificação e um modo de codificação de paleta no qual pelo menos uma paleta de valores de pixel representativos é usada para codificar o bloco de vídeo atual. O método 3630 inclui adicionalmente, na etapa 3634, desempenhar uma conversão entre um segundo bloco de vídeo do vídeo que é codificado sem usar o modo de codificação de paleta e uma representação codificada do vídeo, em que a conversão do segundo bloco de vídeo usa o primeiro modo de codificação. Quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma. Em algumas implementações, o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0322] A figura 37A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3710 inclui, na etapa 3712, fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo. O método 3710 inclui adicionalmente, na etapa 3714, desempenhar a conversão usando um modo de cópia de bloco intra o qual gera um bloco de predição usando pelo menos um vetor de bloco apontando para uma imagem que inclui o bloco de vídeo atual. No modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0323] A figura 37B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3720 inclui, na etapa 3722, fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de cópia de bloco intra (IBC) que gera um bloco de predição usando pelo menos um vetor de bloco apontando para um quadro de vídeo contendo o bloco de vídeo atual para codificar o bloco de vídeo atual. O método 3720 inclui adicionalmente, na etapa 3724, desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação. Quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0324] A figura 37C mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3730 inclui, na etapa 3732, desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de cópia de bloco intra que gera um bloco de predição usando pelo menos um vetor de bloco apontando para um quadro de vídeo contendo o bloco de vídeo atual e um primeiro modo de codificação. O método 3730 inclui adicionalmente, na etapa 3734, desempenhar uma conversão entre um segundo bloco de vídeo do vídeo que é codificado sem usar o modo de cópia de bloco intra e uma representação codificada do vídeo, em que a conversão do segundo bloco de vídeo usa o primeiro modo de codificação. Quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0325] A figura 38A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3810 inclui, na etapa 3812, fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo. O método 3810 inclui adicionalmente, na etapa 3814, desempenhar a conversão usando um modo de modulação por código de pulso delta baseada em bloco (BDPCM). No modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0326] A figura 38B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3820 inclui, na etapa 3822, fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado usando um modo de modulação por código de pulso delta baseada em bloco (BDPCM). O método 3820 inclui adicionalmente, na etapa 3824, desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação. Quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0327] A figura 38C mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3830 inclui, na etapa 3832, desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de modulação por código de pulso delta baseada em bloco (BDPCM). O método 3830 inclui adicionalmente, na etapa 3834, desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma apresentação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo BDPCM e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação. Quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0328] A figura 38D mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3840 inclui, na etapa 3842, fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo. O método inclui adicionalmente, na etapa 3844, desempenhar a conversão usando um modo de salto de transformada no qual uma transformada em uma predição residual é saltada na codificação do bloco de vídeo atual. No modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0329] A figura 38E mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3850 inclui, na etapa 3852, fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de salto de transformada no qual uma transformada em uma predição residual é saltada na codificação do bloco de vídeo atual. O método 3850 inclui adicionalmente, na etapa 3854, desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação. Quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0330] A figura 38F mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3860 inclui, na etapa 3862, desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de salto de transformada no qual uma transformada em uma predição residual é saltada na codificação do bloco de vídeo atual. O método 3860 inclui adicionalmente, na etapa 3864, desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma representação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo de salto de transformada e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação. Quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0331] A figura 38G mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3870 inclui, na etapa 3872, fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo. O método 3870 inclui adicionalmente, na etapa 3874, desempenhar a conversão usando um modo de modulação por código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização no domínio da transformada. No modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0332] A figura 38H mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3880 inclui, na etapa 3882, fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de modulação por código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização no domínio da transformada. O método 3880 inclui adicionalmente, na etapa 3884, desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação. Quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0333] A figura 38I mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3890 inclui, na etapa 3892, desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de modulação por código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização no domínio da transformada. O método 3890 inclui adicionalmente, na etapa 3894, desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma apresentação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo de modulação por código intrapulso e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação. Quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0334] A figura 38J mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3910 inclui, na etapa 3912, fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo. O método 3910 inclui adicionalmente, na etapa 3914, desempenhar a conversão usando um modo transquant-bypass modificado no qual o bloco de vídeo atual é codificado de maneira sem perdas sem uma transformada e uma quantização. No modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0335] A figura 38K mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3920 inclui, na etapa 3922, fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo transquant-bypass no qual o bloco de vídeo atual é codificado de maneira sem perdas sem uma transformada e uma quantização. O método 3920 inclui adicionalmente, na etapa 3924, desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação. Quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0336] A figura 38L mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3930 inclui, na etapa 3932, desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo transquant-bypass no qual o bloco de vídeo atual é codificado de maneira sem perdas, sem uma transformada e uma quantização. O método 3930 inclui adicionalmente, na etapa 3934, desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma apresentação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo transquant-bypass e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação. Quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0337] A figura 39A mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3940 inclui, na etapa 3942, desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um conjunto de parâmetros que é diferente de um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de imagem (PPS) ou um conjunto de parâmetros de adaptação (APS) usado para portar parâmetros de filtragem adaptativa de malha (ALF).
[0338] A figura 39B mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3950 inclui, na etapa 3952, desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um conjunto de parâmetros de adaptação (APS) junto com informações de filtragem adaptativa de malha (ALF), em que as informações usadas para o modo de codificação e as informações ALF estão incluídas em uma unidade NAL.
[0339] A figura 39C mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3960 inclui, na etapa 3962, desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um primeiro tipo de conjunto de parâmetros de adaptação (APS) que é diferente de um segundo tipo de APS usado para sinalizar informações de filtragem adaptativa de malha (ALF).
[0340] A figura 39D mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3970 inclui, na etapa 3972, desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que a região de vídeo não é permitida a se referir a um conjunto de parâmetros de adaptação ou um conjunto de parâmetros que é sinalizado antes de um tipo especificado de estrutura de dados usada processar o vídeo, e em que o tipo especificado da estrutura de dados é sinalizado antes da região de vídeo.
[0341] A figura 39E mostra um fluxograma de um método exemplar para processamento de vídeo. O método 3980 inclui, na etapa 3982, desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que um elemento de sintaxe de um conjunto de parâmetros incluindo parâmetros usados para processar o vídeo tem valores predefinidos em um bitstream de conformidade.
[0342] A FIG 40A é um diagrama de blocos de um aparelho de processamento de vídeo 4000. O aparelho 4000 pode ser usado para implementar um ou mais dos métodos descritos na presente invenção. O aparelho 4000 pode ser incorporado em um smartphone, tablet, computador, receptor de Internet das Coisas (IoT) e assim por diante. O aparelho 4000 pode incluir um ou mais processadores 4002, uma ou mais memórias 4004 e hardware de processamento de vídeo 4006. O(s) processador(es) 4002 podem ser configurados para implementar um ou mais métodos (incluindo, mas não se limitando a, métodos como mostrados nas figuras 31A a 39E) descritos no presente documento. A(s) memória(s) (memórias) 4004 pode(m) ser usada(s) para armazenar dados e códigos usados para implementar os métodos e técnicas descritos na presente invenção. O hardware de processamento de vídeo 4006 pode ser usado para implementar, em circuitos de hardware, algumas técnicas descritas no presente documento.
[0343] A figura 40B é outro exemplo de um diagrama de blocos de um sistema de processamento de vídeo no qual as técnicas divulgadas podem ser implementadas. A figura 40B é um diagrama de blocos mostrando um sistema de processamento de vídeo exemplar 4100 no qual várias técnicas divulgadas na presente invenção podem ser implementadas. Várias implementações podem incluir alguns ou todos os componentes do sistema 4100. O sistema 4100 pode incluir entrada 4102 para recebimento do conteúdo de vídeo. O conteúdo de vídeo pode ser recebido em um formato bruto ou não comprimido, por exemplo, valores de pixel multicomponente de 8 ou 10 bits, ou pode estar em um formato comprimido ou codificado. A entrada 4102 pode representar uma interface de rede, uma interface de barramento periférico ou uma interface de armazenamento. Os exemplos de interface de rede incluem interfaces com fio, como Ethernet, rede óptica passiva (PON), etc., e interfaces sem fio, como Wi-Fi ou interfaces de celular.
[0344] O sistema 4100 pode incluir um componente de codificação 4104 que pode implementar os vários métodos de codificação ou decodificação descritos no presente documento. O componente de codificação 4104 pode reduzir a taxa de bits média de vídeo da entrada 4102 para a saída do componente de codificação 4104 para produzir uma representação codificada do vídeo. As técnicas de codificação são, portanto, às vezes chamadas de compressão de vídeo ou técnicas de transcodificação de vídeo. A saída do componente de codificação 4104 pode ser armazenada ou transmitida via uma comunicação conectada, como representado pelo componente 4106. A representação de bitstream (ou codificada) armazenada ou comunicada do vídeo recebido na entrada 4102 pode ser usada pelo componente 4108 para gerar valores de pixel ou vídeo exibível que é enviado para uma interface de display 4110. O processo de geração de vídeo visualizável pelo usuário a partir da representação de bitstream às vezes é chamado de descompressão de vídeo. Além disso, embora certas operações de processamento de vídeo sejam referidas como operações ou ferramentas de "codificação", será apreciado que as ferramentas ou operações de codificação sejam usadas em um codificador e as ferramentas ou operações de decodificação correspondentes que invertem os resultados da codificação serão desempenhadas por um decodificador.
[0345] Exemplos de uma interface de barramento periférico ou uma interface de exibição podem incluir barramento serial universal (USB) ou interface multimídia de alta definição (HDMI) ou Displayport e assim por diante. Exemplos de interfaces de armazenamento incluem SATA (conexão de tecnologia avançada serial), PCI, interface IDE e afins. As técnicas descritas no presente documento podem ser incorporadas em vários dispositivos eletrônicos, tais como telefones celulares, laptops, smartphones ou outros dispositivos que são capazes de desempenhar processamento de dados digitais e/ou exibir vídeo.
[0346] Em algumas modalidades, os métodos de codificação de vídeo podem ser implementados usando um aparelho que é implementado em uma plataforma de hardware, conforme descrito em relação à figura 40A ou 40B.
[0347] Várias técnicas e modalidades podem ser descritas usando o seguinte formato baseado em cláusula.
[0348] O primeiro conjunto de cláusulas descreve certas características e aspectos das técnicas divulgadas listadas na seção anterior, incluindo, por exemplo, os Exemplos 1 e 2.
[0349] 1. Um método para processamento de vídeo, compreendendo: desempenhar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, um processo de refinamento de informações de movimento com base em amostras em um primeiro domínio ou um segundo domínio; e desempenhar a conversão com base em um resultado do processo de refinamento de informações de movimento, em que, durante a conversão, as amostras são obtidas para o bloco de vídeo atual a partir de um primeiro bloco de predição no primeiro domínio usando informações de movimento não refinadas, pelo menos um segundo bloco de predição é gerado no segundo domínio usando informações de movimento refinadas usadas para determinar um bloco de reconstrução, e amostras reconstruídas do bloco de vídeo atual são geradas com base em pelo menos o segundo bloco de predição.
[0350] 2. O método da cláusula 1, em que o pelo menos segundo bloco de predição é gerado a partir de amostras em imagens de referência no primeiro domínio usando as informações de movimento refinadas e um processo de reformulação para converter o primeiro domínio ao segundo domínio é adicionalmente aplicado a pelo menos o segundo bloco de predição.
[0351] 3. O método da cláusula 2, após o processo de reformulação, o segundo bloco de predição é convertido na representação no segundo domínio antes de ser usado para gerar as amostras reconstruídas do bloco de vídeo atual.
[0352] 4. O método da cláusula 1, em que desempenhar o processo de refinamento de informações de movimento se baseia em um método de derivação de vetor de movimento no lado do decodificador (DMVD).
[0353] 5. O método da cláusula 4, em que o método DMVD compreende refinamento de vetor de movimento no lado no decodificador (DMVR) ou conversão ascendente de taxa de quadros (FRUC) ou Fluxo Ótico Bidirecional (BIO).
[0354] 6. O método da cláusula 4, em que um cálculo de custo ou um cálculo de gradiente no processo de DMVD é desempenhado com base em amostras no primeiro domínio.
[0355] 7. O método da cláusula 6, em que o cálculo de custo compreende uma soma de diferenças absolutas (SAD) ou uma média removida de soma de diferenças absolutas (MR-SAD).
[0356] 8. O método da cláusula 1, em que o processo de refinamento de informações de movimento é desempenhado com base em amostras que são convertidas das amostras em pelo menos o primeiro bloco de predição no primeiro domínio para o segundo domínio, e em que, após as informações de movimento refinadas serem obtidas, um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma é desabilitado para pelo menos o segundo bloco de predição.
[0357] 9. O método da cláusula 4, em que o processo de refinamento de informações de movimento é desempenhado com base em pelo menos o primeiro bloco de predição no primeiro domínio, e em que o processo de refinamento de informações de movimento é invocado com o primeiro bloco de predição no primeiro domínio.
[0358] 10. O método da cláusula 1, em que um bloco de predição final é gerado como uma média ponderada de dois segundos blocos de predição e as amostras reconstruídas do bloco de vídeo atual são geradas com base no bloco de predição final.
[0359] 11. O método da cláusula 1, em que o processo de refinamento de informações de movimento é desempenhado com base no bloco de predição no primeiro domínio, e em que, após desempenhar o processo de refinamento de informações de movimento, um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma e é desabilitado para os pelo menos segundos blocos de predição.
[0360] 12. Um método para processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que, durante a conversão, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, em que uma ferramenta de codificação é aplicada durante a conversão usando parâmetros que são derivados pelo menos com base no primeiro conjunto de amostras em uma região de vídeo do vídeo e no segundo conjunto de amostras em uma imagem de referência do bloco de vídeo atual, e em que um domínio para as primeiras amostras e um domínio para as segundas amostras estão alinhados.
[0361] 13. O método da cláusula 12, em que a ferramenta de codificação inclui um modelo de compensação de iluminação local (LIC) que usa um modelo linear de mudanças de iluminação no bloco de vídeo atual durante a conversão e o modelo LIC é aplicado com base nos parâmetros.
[0362] 14. O método da cláusula 12, em que a região de vídeo inclui um bloco atual, um grupo de ladrilhos ou uma imagem.
[0363] 15. O método da cláusula 13, em que o modelo LIC é aplicado a um bloco de predição no segundo domínio e em que o primeiro conjunto de amostras e o segundo conjunto de amostras estão no segundo domínio.
[0364] 16. O método da cláusula 13, em que um bloco de referência é convertido ao segundo domínio e o modelo LIC é aplicado a um bloco de predição no segundo domínio.
[0365] 17. O método da cláusula 15, em que o primeiro conjunto de amostras e o segundo conjunto de amostras são convertidos ao segundo domínio antes de serem usados para derivar os parâmetros.
[0366] 18. O método da cláusula 17, em que o segundo conjunto de amostras inclui amostras de referência em imagens de referência e amostras vizinhas e/ou não adjacentes das amostras de referência.
[0367] 19. O método da cláusula 13, em que o modelo LIC é aplicado a um bloco de predição no primeiro domínio e em que o primeiro conjunto de amostras e o segundo conjunto de amostras estão no primeiro domínio.
[0368] 20. O método da cláusula 13, em que um bloco de referência é mantido no primeiro domínio e o modelo LIC é aplicado a um bloco de predição no primeiro domínio.
[0369] 21. O método da cláusula 19, em que o primeiro conjunto de amostras é convertido ao primeiro domínio antes de ser usado para derivar os parâmetros.
[0370] 22. O método da cláusula 21, em que o primeiro conjunto de amostras inclui amostras espacialmente vizinhas e/ou não adjacentes do bloco de vídeo atual.
[0371] 23. O método da cláusula 12, em que um domínio usado para derivar os parâmetros é usado para aplicar os parâmetros a um bloco de predição.
[0372] 24. O método da cláusula 13, em que o modelo LIC é aplicado a um bloco de predição no segundo domínio.
[0373] 25. O método da cláusula 20 ou 21, em que após o modelo LIC ser aplicado ao bloco de predição no primeiro domínio, um bloco de predição final que é dependente do bloco de predição é convertido ao segundo domínio.
[0374] 26. O método de qualquer uma das cláusulas 1 a 25, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) que mapeia amostras de luma para valores particulares.
[0375] 27. O método da cláusula 26, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0376] 28. O método de qualquer uma das cláusulas 1 a 27, em que o desempenho da conversão inclui gerar a representação codificada a partir do bloco atual.
[0377] 29. O método de qualquer uma das cláusulas 1 a 27, em que o desempenho da conversão inclui gerar o bloco atual a partir da representação codificada.
[0378] 30. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 29.
[0379] 31. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 29.
[0380] O segundo conjunto de cláusulas descreve certas características e aspectos das técnicas divulgadas listadas na seção anterior, incluindo, por exemplo, os Exemplos 3 a 5, 8 e 15.
[0381] 1. Um método para processamento de vídeo, compreendendo: determinar, para um bloco de vídeo atual de uma região de vídeo atual de um vídeo, um parâmetro para um modo de codificação do bloco de vídeo atual com base em um ou mais parâmetros para um modo de codificação de uma região de vídeo anterior; e desempenhar uma codificação para o bloco de vídeo atual para gerar uma representação codificada do vídeo com base na determinação, e em que o parâmetro para o modo de codificação está incluído em um conjunto de parâmetros na representação codificada do vídeo, e em que o desempenho da codificação compreende transformar uma representação do bloco de vídeo atual em um primeiro domínio para uma representação do bloco de vídeo atual em um segundo domínio, e em que, durante a execução da codificação usando o modo de codificação, o bloco de vídeo atual é construído com base no o primeiro domínio e o segundo domínio e/ou resíduo de croma são escalados de uma maneira dependente de luma.
[0382] 2. Um método para processamento de vídeo, compreendendo: receber uma representação codificada de um vídeo, incluindo um conjunto de parâmetros, incluindo informações de parâmetros para um modo de codificação; e desempenhar uma decodificação da representação codificada usando as informações de parâmetros para gerar um bloco de vídeo atual de uma região de vídeo atual do vídeo a partir da representação codificada, e em que as informações de parâmetros para o modo de codificação são baseadas em um ou mais parâmetros para o modo de codificação de uma região de vídeo anterior, em que, no modo de codificação, o bloco de vídeo atual é construído com base no primeiro domínio e o segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0383] 3. O método da cláusula 1 ou 2, em que o conjunto de parâmetros é diferente de um cabeçalho de grupo de tiles.
[0384] 4. O método da cláusula 1 ou 2, em que o conjunto de parâmetros é um conjunto de parâmetros de adaptação (APS).
[0385] 5. O método da cláusula 1 ou 2, em que a região de vídeo atual compreende um ladrilho de uma imagem de vídeo do vídeo ou uma imagem de vídeo do vídeo;
[0386] 6. O método da cláusula 1 ou 2, em que a região de vídeo anterior compreende um ou mais ladrilhos da imagem.
[0387] 7. O método da cláusula 1 ou 2, em que a região de vídeo anterior compreende uma ou mais imagens de vídeo do vídeo.
[0388] 8. Um método para processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, e em que a conversão inclui aplicar uma operação de filtragem a um bloco de predição em um primeiro domínio ou em um segundo domínio diferente do primeiro domínio.
[0389] 9. O método da cláusula 8, em que a operação de filtragem é desempenhada no bloco de predição no primeiro domínio para gerar um sinal de predição filtrado, um modo de codificação é aplicado ao sinal de predição filtrado para gerar um sinal de predição reformulado que está no segundo domínio, e o bloco de vídeo atual é construído usando o sinal de predição reformulado.
[0390] 10. O método da cláusula 8, em que um modo de codificação é aplicado ao bloco de predição antes da aplicação da operação de filtragem para gerar um sinal de predição reformulado que está no segundo domínio, e a operação de filtragem é desempenhada usando o sinal de predição reformulado para gerar um sinal de predição filtrado, e o bloco de vídeo atual é construído usando o sinal de predição filtrado.
[0391] 11. O método da cláusula 9 ou 10, em que, no modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e o segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0392] 12. O método de qualquer uma das cláusulas 8 a 11, em que a operação de filtragem compreende um filtro de difusão.
[0393] 13. O método de qualquer uma das cláusulas 8 a 11, em que os parâmetros associados à operação de filtragem dependem se a operação de filtragem é aplicada a um bloco no primeiro domínio ou no segundo domínio.
[0394] 14. O método da cláusula 8, em que a conversão inclui adicionalmente: aplicar, antes da aplicação da operação de filtragem, uma predição de compensação de movimento ao bloco de vídeo atual para obter um sinal de predição; aplicar, após a aplicação da operação de filtragem, um modo de codificação a um sinal de predição filtrado para gerar um sinal de predição reformulado, o sinal de predição filtrado gerado pela aplicação da operação de filtragem ao sinal de predição; e construir o bloco de vídeo atual usando o sinal de predição reformulado.
[0395] 15. O método da cláusula 8, em que a conversão inclui adicionalmente: aplicar, antes da aplicação da operação de filtragem, uma predição de compensação de movimento ao bloco de vídeo atual para obter um sinal de predição; aplicar um modo de codificação ao sinal de predição para gerar um sinal de predição reformulado; e construir, após a aplicação da operação de filtragem, o bloco de vídeo atual usando um sinal de predição reformulado filtrado, em que o sinal de predição reformulado filtrado gerado pela aplicação da operação de filtragem ao sinal de predição reformulado.
[0396] 16. Um método para processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que, durante a conversão, um bloco de reconstrução final é determinado para o bloco de vídeo atual, e em que o bloco de reconstrução temporário é gerado usando um método de predição e representado no segundo domínio.
[0397] 17. O método da cláusula 16, em que a conversão inclui adicionalmente: aplicar uma predição de compensação de movimento ao bloco de vídeo atual para obter um sinal de predição; aplicar uma reformulação direta ao sinal de predição para gerar um sinal de predição reformulado que é usado para gerar o bloco de reconstrução temporário; e aplicar uma reformulação inversa ao bloco de reconstrução temporário para obter um bloco de reconstrução inversa, e em que a filtragem é aplicada ao bloco de reconstrução inversa para gerar um bloco de reconstrução final.
[0398] 18. O método da cláusula 16, em que a conversão inclui adicionalmente: aplicar uma predição de compensação de movimento ao bloco de vídeo atual para obter um sinal de predição; aplicar uma reformulação direta ao sinal de predição para gerar um sinal de predição reformulado que é usado para gerar o bloco de reconstrução temporário; aplicar uma reformulação inversa a um bloco de reconstrução filtrado para obter um bloco de reconstrução final, e em que o bloco de reconstrução filtrado é gerado pela aplicação da filtragem ao bloco de reconstrução temporário.
[0399] 19. O método de qualquer uma das cláusulas 16 a 18, em que a conversão inclui adicionalmente aplicar um processo de escalamento residual de croma dependente de luma (LMCS) que mapeia as amostras de luma para valores particulares.
[0400] 20. O método da cláusula 16, em que o filtro é aplicado ao bloco de reconstrução temporário no primeiro domínio, o bloco de reconstrução temporário no segundo domínio é convertido em primeiro lugar ao primeiro domínio usando um processo de reformulação inversa antes da aplicação do filtro, e o bloco de reconstrução final depende do bloco de reconstrução temporário filtrado.
[0401] 21. O método da cláusula 16, em que o filtro é aplicado diretamente ao bloco de reconstrução temporário no segundo domínio e, posteriormente, uma operação de reformulação inversa é aplicada para gerar o bloco de reconstrução final.
[0402] 22. O método da cláusula 16, em que o filtro compreende um Filtro Bilateral (BF) ou um filtro de domínio de Transformada de Hadamard (HF).
[0403] 23. O método da cláusula 16, em que o filtro compreende um processo de Filtro de Deblocagem (DBF), um processo de filtragem de desvio adaptativo por amostra (SAO) ou um processo de filtragem de filtro adaptativo de malha (ALF).
[0404] 24. O método de qualquer uma das cláusulas 1 a 23, em que os parâmetros de filtro usados para a operação de filtragem ou o filtro dependem se um modo de codificação está habilitado ou não para o bloco de vídeo atual, em que, no modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0405] 25. O método de qualquer uma das cláusulas 1 a 25, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) que mapeia amostras de luma para valores particulares.
[0406] 26. O método da cláusula 25, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0407] 27. O método de qualquer uma das cláusulas 8 a 26, em que o desempenho da conversão inclui gerar a representação codificada a partir do bloco atual.
[0408] 28. O método de qualquer uma das cláusulas 8 a 26, em que o desempenho da conversão inclui gerar o bloco atual a partir da representação codificada.
[0409] 29. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 28.
[0410] 30. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 28.
[0411] O terceiro conjunto de cláusulas descreve certas características e aspectos das técnicas divulgadas listadas na seção anterior, incluindo, por exemplo, o Exemplo 6.
[0412] 1. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que um conjunto de parâmetros na representação codificada compreende informações de parâmetros para o modo de codificação.
[0413] 2. O método da cláusula 1, em que o conjunto de parâmetros é diferente de um cabeçalho de grupo de ladrilhos.
[0414] 3. O método da cláusula 2, em que o conjunto de parâmetros é um conjunto de parâmetros de adaptação (APS).
[0415] 4. O método da cláusula 3, em que o APS para informações de modo de codificação é denominado como APS de mapeamento de luma com escalamento de croma (LMCS).
[0416] 5. O método da cláusula 3, em que um identificador para o APS a ser utilizado para o bloco de vídeo atual está contido na representação codificada do vídeo.
[0417] 6. O método da cláusula 5, em que o fato de o identificador estar presente na representação codificada do vídeo depende de se o modo de codificação está habilitado para a região de vídeo.
[0418] 7. O método da cláusula 3, em que o conjunto de parâmetros contém um identificador do APS.
[0419] 8. O método da cláusula 1, em que um valor de tipo de unidade NAL é atribuído para o conjunto de parâmetros.
[0420] 9. O método da cláusula 1, em que um identificador do conjunto de parâmetros tem um intervalo entre 0 a M, em que M é 2K-1.
[0421] 10. O método da cláusula 1, em que o conjunto de parâmetros é compartilhado entre as imagens do vídeo.
[0422] 11. O método da cláusula 1, em que um identificador do conjunto de parâmetros tem um valor que é codificado por comprimento fixo.
[0423] 12. O método da cláusula 1, em que um identificador do conjunto de parâmetros é codificado com um código de Golomb Exponencial (EG), um código unário truncado ou um código de binarização.
[0424] 13. O método da cláusula 1, em que, para duas sub-regiões dentro de uma mesma imagem, o conjunto de parâmetros tem identificadores com dois valores diferentes.
[0425] 14. O método da cláusula 3, em que o conjunto de parâmetros e o APS para as informações do filtro adaptativo de malha (ALF) compartilham um mesmo Tipo de Unidade (NUT) de Camada de Abstração de Rede (NAL).
[0426] 15. O método da cláusula 1, em que a informações de parâmetros são portadas com um APS atual para informações de filtro adaptativo de malha (ALF).
[0427] 16. O método da cláusula 1, em que as informação de parâmetro é portada em um conjunto de parâmetro de sequência (SPS), um conjunto de parâmetro de vídeo (VPS), um conjunto de parâmetro de imagem (PPS), uma sequência, um cabeçalho ou um cabeçalho de imagem.
[0428] 17. O método da cláusula 1, em que as informações de parâmetros incluem pelo menos um dentre uma indicação de informações de modelo de reformulação, um uso do modo de codificação ou fatores de escalamento de croma residual.
[0429] 18. O método da cláusula 1, em que as informação de parâmetro é sinalizada em um nível.
[0430] 19. O método da cláusula 1, em que a informação de parâmetro incluem um uso do modo de codificação que é sinalizado em um segundo nível.
[0431] 20. O método da cláusula 18 e 19, em que a informação de parâmetro é sinalizada em um APS e um uso do modo de codificação é sinalizado no nível da região de vídeo.
[0432] 21. O método da cláusula 1, em que a informação de parâmetro é analisadas em um nível.
[0433] 22. O método da cláusula 1, em que a informação de parâmetro inclui um uso do modo de codificação que é analisado em um segundo nível.
[0434] 23. O método da cláusula 21 ou 22, em que as informações de parâmetros são analisadas em um APS e um uso do modo de codificação é analisado no nível da região de vídeo.
[0435] 24. O método da cláusula 1, em que uma codificação preditiva é aplicada para codificar as informações de parâmetros com diferentes índices APS.
[0436] 25. O método de qualquer uma das cláusulas 1 a 24, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) que mapeia amostras de luma para valores particulares.
[0437] 26. O método da cláusula 25, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0438] 27. O método de qualquer uma das cláusulas 1 a 26, em que a região de vídeo é uma imagem ou um grupo de ladrilhos.
[0439] 28. O método de qualquer uma das cláusulas 1 a 26, em que o nível da região de vídeo é um cabeçalho de imagem ou um cabeçalho de grupo de tiles.
[0440] 29. O método de qualquer uma das cláusulas 1 a 28, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) que mapeia amostras de luma para valores particulares de acordo com modelos de reformulação.
[0441] 30. O método da cláusula 29, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0442] 31. O método de qualquer uma das cláusulas 1 a 30, em que o desempenho da conversão inclui gerar a representação codificada a partir do bloco atual.
[0443] 32. O método de qualquer uma das cláusulas 1 a 30, em que o desempenho da conversão inclui gerar o bloco atual a partir da representação codificada.
[0444] 33. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 32.
[0445] 34. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 33.
[0446] O quarto conjunto de cláusulas descreve certas características e aspectos das técnicas divulgadas listadas na seção anterior, incluindo, por exemplo, os Exemplos 7 e 9.
[0447] 1. Um método para processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, em que, durante a conversão, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio, e em que a conversão inclui adicionalmente aplicar um processo de reformulação direta e/ou um processo de reformulação inversa a um ou mais componentes de croma do bloco de vídeo atual.
[0448] 2. O método da cláusula 1, em que o método inclui adicionalmente abster-se de aplicar um escalamento de resíduo de croma dependente de luma (LCRS) a um ou mais componentes de croma do bloco de vídeo atual.
[0449] 3. O método da cláusula 1, em que pelo menos um dentre um modelo linear por partes (PWL), uma tabela de consulta direta ou uma tabela de consulta reversa é utilizado para um componente de croma.
[0450] 4. O método da cláusula 3, em que o modelo PWL, a tabela de consulta direta e a tabela de consulta reversa para o componente croma são derivados de um modelo PWL, uma tabela de consulta direta, uma tabela de consulta reversa de um componente luma correspondente, respectivamente.
[0451] 5. O método da cláusula 3, em que o modelo PWL é sinalizado em um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de imagem (PPS), um cabeçalho de sequência, um cabeçalho de imagem, um cabeçalho de grupo de ladrilhos, um cabeçalho de ladrilho, uma fileira de unidade de árvore de codificação (CTU), um grupo de CTUs ou regiões.
[0452] 6. O método da cláusula 3, em que a tabela de direta e a tabela de consulta reversa são sinalizadas em um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de imagem (PPS), um cabeçalho de sequência, um cabeçalho de imagem, um cabeçalho de grupo de ladrilhos, um cabeçalho de ladrilho, uma fileira de unidade de árvore de codificação (CTU), um grupo de CTUs ou regiões.
[0453] 7. Um método para processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de croma de vídeo atual de um vídeo e uma representação codificada do vídeo, em que o desempenho da conversão inclui: determinar se o escalamento de resíduo de croma dependente de luma (LCRS) está habilitado ou desabilitado com base em uma regra, e reconstruir o bloco de croma de vídeo atual com base na determinação.
[0454] 8. O método da cláusula 7, em que a regra especifica que LCRS está desabilitado para certas dimensões de bloco, camadas temporais, tipos de grupo de ladrilhos, tipos de imagens, modos codificados, certos tipos de informações de movimento.
[0455] 9. O método da cláusula 7, em que a regra especifica que LCRS está desabilitado para blocos de croma e um processo de reformulação direta e/ou inversa é aplicado aos blocos de luma correspondentes.
[0456] 10. O método da cláusula 7, em que a regra especifica que LCRS é aplicado a blocos de croma e um processo de reformulação direta e/ou inversa não é aplicado aos blocos de luma correspondentes.
[0457] 11. O método da cláusula 7, em que a regra especifica que LCRS está desabilitado para o bloco de croma de vídeo atual codificado usando um modelo linear de componente cruzado (CCLM).
[0458] 12. O método da cláusula 7, em que a regra especifica que LCRS está desabilitado para o bloco de croma de vídeo atual não codificado usando um modelo linear de componente cruzado (CCLM).
[0459] 13. O método da cláusula 7, em que a regra especifica que a desabilitação do LCRS se baseia em um tamanho de um bloco de vídeo que excede uma unidade de pipeline de dados virtual (VPDU).
[0460] 14. O método da cláusula 13, em que o LCRS não é permitido em um caso em que o bloco de vídeo contém amostras de vídeo que são maiores que amostras M*H.
[0461] 15. O método da cláusula 13, em que o LCRS não é permitido em um caso em que um tamanho mínimo de uma largura e/ou altura do bloco de vídeo é menor ou igual a um certo valor.
[0462] 16. O método da cláusula 13, em que o LCRS não é permitido em um caso em que um tamanho mínimo de uma largura e/ou uma altura do bloco de vídeo não é menor que um certo valor.
[0463] 17. O método da cláusula 15 ou 16, em que o certo valor é 8.
[0464] 18. O método da cláusula 13, em que o LCRS não é permitido em um caso em que uma largura do bloco de vídeo é igual ou maior que um primeiro valor e/ou em que uma altura do bloco de vídeo é igual ou maior que um segundo valor.
[0465] 19. O método da cláusula 13, em que o LCRS não é permitido em um caso em que uma largura do bloco de vídeo é igual ou menor que um primeiro valor e/ou em que uma altura do bloco de vídeo é igual ou menor que um segundo valor.
[0466] 20. O método da cláusula 18 ou 19, em que pelo menos um dentre o primeiro valor ou o segundo valor é 8, 64 ou 128.
[0467] 21. O método de qualquer uma das cláusulas 13 a 20, em que o bloco de vídeo é um bloco de luma ou um bloco de croma.
[0468] 22. O método de qualquer uma das cláusulas 1 a 21, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) que mapeia amostras de luma para valores particulares de acordo com modelos de reformulação.
[0469] 23. O método da cláusula 22, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0470] 24. O método de qualquer uma das cláusulas 1 a 23, em que o resíduo de croma é escalado em uma maneira dependente de luma ao desempenhar uma operação de escalamento de croma residual dependente de luma que compreende o escalamento de resíduos de croma antes de serem usados para derivar a reconstrução de um bloco de croma de vídeo, e os parâmetros de escalamento são derivados de amostras de luma.
[0471] 25. O método de qualquer uma das cláusulas 1 a 24, em que o desempenho da conversão inclui gerar a representação codificada a partir do bloco atual.
[0472] 26. O método de qualquer uma das cláusulas 1 a 24, em que o desempenho da conversão inclui gerar o bloco atual a partir da representação codificada.
[0473] 27. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 26.
[0474] 28. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 26.
[0475] O quinto conjunto de cláusulas descreve certas características e aspectos das técnicas divulgadas listadas na seção anterior, incluindo, por exemplo, os Exemplos 10 a 14, 28, 29 e 40.
[0476] 1. Um método para processamento de vídeo, compreendendo: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, se deve desabilitar o uso de um modo de codificação com base em um ou mais valores de coeficiente do bloco de vídeo atual; e desempenhar a conversão com base na determinação, em que, durante a conversão usando o modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0477] 2. O método da cláusula 1, em que o processo de reformulação compreende: aplicar seletivamente pelo menos um dentre um processo de reformulação direta a amostras no primeiro domínio que são então convertidas em amostras no segundo domínio; e aplicar seletivamente um processo de reformulação inversa às amostras no segundo domínio que são então convertidas em uma representação nos primeiros domínios.
[0478] 3. O método da cláusula 1 ou 2, em que o processo de reformulação compreende adicionalmente: aplicar seletivamente um processo de escalamento de croma residual dependente de luma.
[0479] 4. O método de qualquer uma das cláusulas 1 a 3, em que a determinação se baseia em se o bloco de vídeo atual é codificado com todos os coeficientes zero.
[0480] 5. O método da cláusula 2, em que o processo de reformulação direta é saltado com base em se o bloco de vídeo atual é codificado com todos os coeficientes zero.
[0481] 6. O método da cláusula 2, em que o bloco de vídeo atual é codificado com todos os coeficientes zero, e em que o processo de reformulação inversa é saltado.
[0482] 7. O método da cláusula 2, em que o bloco de vídeo atual é codificado com todos os coeficientes zero e em que o processo de escalamento de croma residual dependente de luma é saltado.
[0483] 8. O método da cláusula 2, em que a determinação se baseia em se o bloco de vídeo atual é codificado com apenas um coeficiente diferente de zero localizado em certas posições.
[0484] 9. O método da cláusula 2, em que o bloco de vídeo atual é codificado com apenas um coeficiente diferente de zero localizado em certas posições e pelo menos um dentre o processo de reformulação direta, o processo de reformulação inversa ou o processo de escalamento de croma residual dependente de luma é saltado.
[0485] 10. O método da cláusula 2, em que a determinação se baseia em se o bloco de vídeo atual é codificado com M coeficientes diferentes de zero.
[0486] 11. O método da cláusula 2, em que o bloco de vídeo atual é codificado com coeficientes M diferentes de zero e pelo menos um dentre o processo de reformulação direta, o processo de reformulação inversa ou o processo de escalamento de croma residual dependente de luma é saltado.
[0487] 12. O método da cláusula 11, em que K é 1.
[0488] 13. Um método de processamento de vídeo, compreendendo: dividir, para uma conversão entre um bloco de vídeo atual de um vídeo que excede uma unidade de pipeline de dados virtual (VPDU) do vídeo, o bloco de vídeo atual em regiões; e desempenhar a conversão ao aplicar um modo de codificação separadamente a cada região, em que, durante a conversão ao aplicar o modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0489] 14. O método da cláusula 13, em que cada região corresponde a uma unidade de codificação individual (CU) do modo de codificação.
[0490] 15. O método da cláusula 13, em que uma largura do bloco de vídeo atual é igual ou maior que um primeiro valor, o bloco de vídeo atual é separado em sub-blocos tendo uma ou mais larguras que são iguais ou menores que o primeiro valor, e o modo de codificação é habilitado para cada sub-bloco.
[0491] 16. O método da cláusula 13, em que uma altura do bloco de vídeo atual é igual ou maior que um segundo valor, o bloco de vídeo atual é separado em sub-blocos tendo uma ou mais alturas que são iguais ou menores que o segundo valor, e o modo de codificação é habilitado para cada sub-bloco.
[0492] 17. O método da cláusula 13, em que um tamanho do bloco de vídeo atual é igual ou maior que um terceiro valor, o bloco de vídeo atual é separado em sub-blocos tendo um ou mais tamanhos que são iguais ou menores que o terceiro valor, e o modo de codificação é habilitado para cada sub-bloco.
[0493] 18. O método de qualquer uma das cláusulas 15 a 17, em que os sub-blocos têm a mesma largura ou a mesma altura.
[0494] 19. Um método para processamento de vídeo, compreendendo: determinar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, parasse deve desabilitar o uso de um modo de codificação com base em um tamanho ou formato de cor do bloco de vídeo atual; e desempenhar a conversão com base na determinação, em que, durante a conversão usando o modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0495] 20. O método da cláusula 19, em que a determinação determina desabilitar o modo de codificação para o bloco de vídeo atual que excede uma unidade de pipeline de dados virtual (VPDU).
[0496] 21. O método da cláusula 19, em que a determinação determina desabilitar o modo de codificação para o bloco de vídeo atual tendo o tamanho que contém amostras cujo número é menor que M*H.
[0497] 22. O método da cláusula 19, em que a determinação determina desabilitar o modo de codificação para o bloco de vídeo atual no caso em que um tamanho mínimo de uma largura e/ou uma altura do bloco de vídeo atual é igual ou menor que X que é um número inteiro.
[0498] 23. O método da cláusula 19, em que a determinação determina desabilitar o modo de codificação para o bloco de vídeo atual em um caso em que um tamanho mínimo de uma largura e/ou uma altura do bloco de vídeo atual não é menor que X que é um número inteiro.
[0499] 24. O método da cláusula 22 ou 23, em que X é 8.
[0500] 25. O método da cláusula 19, em que a determinação determina desabilitar o modo de codificação para o bloco de vídeo atual no caso em que o bloco de vídeo atual tem uma largura e/ou uma altura, a largura sendo igual ou maior que um primeiro valor e a altura sendo igual ou maior que um segundo valor.
[0501] 26. O método da cláusula 19, em que a determinação determina desabilitar o modo de codificação para o bloco de vídeo atual no caso em que o bloco de vídeo atual tem uma largura e/ou uma altura, a largura sendo igual ou menor que um primeiro valor e a altura sendo igual ou menor que um segundo valor.
[0502] 27. O método da cláusula 25 ou 26, em que pelo menos um dentre o primeiro valor ou o segundo valor é 8.
[0503] 28. O método de qualquer uma das cláusulas 19 a 27, em que a desabilitação do modo de codificação compreende desabilitar pelo menos um dentre: 1) reformulação direta para converter amostras no primeiro domínio ao segundo domínio; 2) reformulação reversa para converter amostras no segundo domínio ao primeiro domínio; 3) escalamento de croma residual dependente de luma.
[0504] 29. Um método para processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que pelo menos um elemento de sintaxe na representação codificada provê uma indicação de um uso do modo codificado e uma indicação de um modelo de reformulação.
[0505] 30. O método da cláusula 29, em que a indicação do uso do modo de codificação é codificada com base na indicação do modelo de reformulação.
[0506] 31. O método da cláusula 29, em que a indicação do modelo de reformulação é codificada com base na indicação do modo de codificação.
[0507] 32. O método da cláusula 29, em que apenas um dos elementos de sintaxe é codificado.
[0508] 33. O método de qualquer uma das cláusulas 1 a 32, em que diferentes métodos de recorte são aplicados a um sinal de predição e um sinal de reconstrução.
[0509] 34. O método da cláusula 33, em que um recorte adaptativo que permite diferentes parâmetros de recorte dentro do vídeo é aplicado ao sinal de predição.
[0510] 35. O método da cláusula 34, em que um valor máximo e um valor mínimo para o recorte adaptativo são definidos no segundo domínio.
[0511] 36. O método da cláusula 33, em que um recorte fixo é aplicado ao sinal de reconstrução.
[0512] 37. Um método para processamento de vídeo, compreendendo: fazer uma determinação de que um modo de codificação está desabilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e saltar condicionalmente uma reformulação direta e/ou reformulação inversa com base na determinação, em que, no modo de codificação, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0513] 38. O método da cláusula 37, em que pelo menos um dentre um sinal de predição, um sinal de reconstrução ou um sinal residual está no primeiro domínio.
[0514] 39. O método da cláusula 37, em que pelo menos um dentre um sinal de predição, um sinal de reconstrução ou um sinal residual está no segundo domínio.
[0515] 40. Um método para processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que a reformulação direta múltipla e/ou a reformulação inversa múltipla são aplicadas no modo de reformulação para a região de vídeo.
[0516] 41. O método da cláusula 40, em que a região de vídeo inclui uma imagem, um grupo de ladrilhos, uma unidade de pipeline de dados virtual (VPDU), uma unidade de árvore de codificação (CTU), uma fileira ou unidades de codificação múltiplas.
[0517] 42. O método da cláusula 40 ou 41, em que como selecionar a reformulação direta múltipla e/ou a reformulação inversa múltipla depende de pelo menos um dentre i) uma dimensão de bloco ou uma dimensão de região de vídeo, ii) um modo codificado do bloco de vídeo atual ou da região de vídeo, iii) um tipo de imagem do bloco de vídeo atual ou da região de vídeo, iv) uma flag de verificação de baixo atraso do bloco de vídeo atual ou da região de vídeo, v) informações de movimento do bloco de vídeo atual ou da região de vídeo, vi) imagens de referência do bloco de vídeo atual ou da região de vídeo, ou vii) conteúdo de vídeo do bloco de vídeo atual ou da região de vídeo.
[0518] 43. O método de qualquer uma das cláusulas 1 a 42, em que, durante a conversão, uma amostra no primeiro domínio é mapeada para uma amostra no segundo domínio que tem um valor menor que aquele da amostra no primeiro domínio.
[0519] 44. O método de qualquer uma das cláusulas 1 a 43, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) para mapear amostras de luma para valores particulares.
[0520] 45. O método da cláusula 44, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0521] 46. O método de qualquer uma das cláusulas 1 a 45, em que o desempenho da conversão inclui gerar a representação codificada a partir do bloco atual.
[0522] 47. O método de qualquer uma das cláusulas 1 a 45, em que o desempenho da conversão inclui gerar o bloco atual a partir da representação codificada.
[0523] 48. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 47.
[0524] 49. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 47.
[0525] O sexto conjunto de cláusulas descreve certas características e aspectos das técnicas divulgadas listadas na seção anterior, incluindo, por exemplo, os Exemplos 16 e 17.
[0526] 1. Um método de processamento de vídeo, compreendendo: fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo de paleta em que pelo menos uma paleta de valores de amostra representativos é usada para o bloco de vídeo atual, e em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou o resíduo de croma é escalado em uma maneira dependente de luma.
[0527] 2. O método da cláusula 1, em que a paleta de valores de amostra representativos compreende pelo menos um dentre 1) preditores de paleta ou 2) amostras de escape.
[0528] 3. O método da cláusula 1, em que os valores da amostra representativos representam valores no primeiro domínio.
[0529] 4. O método da cláusula 1, em que os valores da amostra representativos representam valores no segundo domínio.
[0530] 5. O método da cláusula 1 ou 2, em que os preditores de paleta usados no modo de paleta e incluídos na representação codificada estão no primeiro domínio ou no segundo domínio.
[0531] 6. O método da cláusula 1 ou 2, em que as amostras de escape usadas no modo de paleta e incluídas na representação codificada estão no primeiro domínio ou no segundo domínio.
[0532] 7. O método da cláusula 1 ou 2, em que quando os preditores de paleta e/ou amostras de escape usados no modo de paleta e incluídos na representação codificada estão no segundo domínio, um primeiro bloco de reconstrução no segundo domínio é gerado e utilizado para codificar blocos subsequentes.
[0533] 8. O método da cláusula 7, em que quando os preditores de paleta e/ou amostras de escape usados no modo de paleta modificada e incluídos na representação codificada estão no segundo domínio, um bloco de reconstrução final no primeiro domínio é gerado usando o primeiro bloco de reconstrução e um processo de reformulação inversa.
[0534] 9. O método da cláusula 8, em que o processo de reformulação inversa é invocado logo antes do processo de filtro de deblocagem.
[0535] 10. O método de qualquer uma das cláusulas 1 a 9, em que a conversão é desempenhada com base em um componente de cor do bloco de vídeo atual.
[0536] 11. O método da cláusula 10, em que o componente de cor é o componente luma.
[0537] 12. Um método de processamento de vídeo, compreendendo: fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de paleta em que pelo menos uma paleta de valores de amostra representativos é usada para codificar o bloco de vídeo atual; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que, quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base no resíduo de croma que é escalado em uma maneira dependente de luma.
[0538] 13. O método da cláusula 12, em que quando o bloco de vídeo atual é codificado no modo de paleta, o modo de codificação é desabilitado.
[0539] 14. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um primeiro modo de codificação e um modo de codificação de paleta em que pelo menos uma paleta de valores de pixel representativos é usada para codificar o bloco de vídeo atual; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo que é codificado sem usar o modo de codificação de paleta e uma representação codificada do vídeo, e em que a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e segundo bloco de vídeo.
[0540] 15. O método da cláusula 14, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido à desabilitação do uso de uma reformulação direta e uma reformulação inversa que é usada para converter amostras entre o primeiro domínio e o segundo domínio.
[0541] 16. O método da cláusula 14, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido ao uso de uma reformulação diferente e/ou uma função de reformulação inversa diferente que é usada para converter amostras entre o primeiro domínio e o segundo domínio.
[0542] 17. O método de qualquer uma das cláusulas 1 a 11 e 14 a 16, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) que mapeia amostras de luma para valores particulares.
[0543] 18. O método da cláusula 17, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0544] 19. O método de qualquer uma das cláusulas 1 a 18, em que o desempenho da conversão inclui gerar a representação codificada a partir do bloco atual.
[0545] 20. O método de qualquer uma das cláusulas 1 a 18, em que o desempenho da conversão inclui gerar o bloco atual a partir da representação codificada.
[0546] 21. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 21.
[0547] 22. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 21.
[0548] O sétimo conjunto de cláusulas descreve certas características e aspectos das técnicas divulgadas listadas na seção anterior, incluindo, por exemplo, os Exemplos 18 e 19.
[0549] 1. Um método de processamento de vídeo, compreendendo: fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo de cópia de bloco intra que gera um bloco de predição usando pelo menos um vetor de bloco apontando para uma imagem que inclui o bloco de vídeo atual, e em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0550] 2. O método da cláusula 1, em que o bloco de predição é gerado no primeiro domínio.
[0551] 3. O método da cláusula 1, em que um bloco residual é representado na representação codificada no primeiro domínio.
[0552] 4. O método da cláusula 1, em que o bloco de predição é gerado no segundo domínio.
[0553] 5. O método da cláusula 1, em que um bloco residual é representado na representação codificada no segundo domínio.
[0554] 6. O método da cláusula 4 ou 5, em que um primeiro bloco de construção do bloco de vídeo atual é obtido com base na soma do bloco residual e do bloco de predição no segundo domínio e o primeiro bloco de construção é utilizado para as conversões entre um bloco de vídeo subsequente e a representação codificada do vídeo.
[0555] 7. O método da cláusula 4 ou 5, em que um bloco de construção final do bloco de vídeo atual é obtido com base em uma reformulação inversa que é aplicada a um primeiro bloco de construção para converter o primeiro bloco de construção do segundo domínio para o primeiro domínio.
[0556] 8. O método de qualquer uma das cláusulas 1 a 7, em que a conversão é desempenhada com base em um componente de cor do bloco de vídeo atual.
[0557] 9. O método da cláusula 8, em que o componente de cor é o componente luma.
[0558] 10. Um método para processamento de vídeo, compreendendo: fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de cópia de bloco intra (IBC) que gera um bloco de predição usando pelo menos um vetor de bloco apontando para um quadro de vídeo contendo o bloco de vídeo atual para codificar o bloco de vídeo atual; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0559] 11. O método da cláusula 10, em que quando o bloco de vídeo atual é codificado no modo IBC, o modo de codificação é desabilitado.
[0560] 12. Um método para processamento de vídeo, compreendendo: desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de cópia de bloco intra que gera um bloco de predição usando pelo menos um vetor de bloco apontando para um quadro de vídeo contendo o bloco de vídeo atual e um primeiro modo de codificação; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo que é codificado sem usar o modo de cópia de bloco intra e uma representação codificada do vídeo, em que a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0561] 13. O método da cláusula 12, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido à desabilitação do uso de uma reformulação direta e uma reformulação inversa que são usadas para converter amostras entre o primeiro domínio e o segundo domínio.
[0562] 14. O método da cláusula 12, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido ao uso de uma reformulação direta diferente e/ou uma reformulação inversa diferente que é usada para converter amostras entre o primeiro domínio e o segundo domínio.
[0563] 15. O método de qualquer uma das cláusulas 1 a 14, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) que mapeia amostras de luma para valores particulares.
[0564] 16. O método da cláusula 15, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0565] 17. O método de qualquer uma das cláusulas 1 a 16, em que o desempenho da conversão inclui gerar a representação codificada a partir do bloco atual.
[0566] 18. O método de qualquer uma das cláusulas 1 a 16, em que o desempenho da conversão inclui gerar o bloco atual a partir da representação codificada.
[0567] 19. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 18.
[0568] 20. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 18.
[0569] O oitavo conjunto de cláusulas descreve certas características e aspectos das técnicas divulgadas listadas na seção anterior, incluindo, por exemplo, os Exemplos 20 a 27.
[0570] 1. Um método de processamento de vídeo, compreendendo: fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo de modulação por código de pulso delta baseada em bloco (BDPCM), em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0571] 2. O método da cláusula 1, em que um bloco de predição do bloco de vídeo atual é gerado no primeiro domínio.
[0572] 3. O método da cláusula 1, em que um bloco residual do bloco de vídeo atual é representado na representação codificada no primeiro domínio.
[0573] 4. O método da cláusula 1, em que um bloco de predição do bloco de vídeo atual é gerado no segundo domínio.
[0574] 5. O método da cláusula 1, em que um bloco residual do bloco de vídeo atual é representado na representação codificada no segundo domínio.
[0575] 6. O método da cláusula 4 ou 5, em que um primeiro bloco de construção do bloco de vídeo atual é obtido com base na soma do bloco residual e do bloco de predição no segundo domínio e o primeiro bloco de construção é utilizado para as conversões entre um bloco de vídeo subsequente e a representação codificada do vídeo.
[0576] 7. O método da cláusula 4 ou 5, em que um bloco de construção final do bloco de vídeo atual é obtido com base em uma reformulação inversa que é aplicada a um primeiro bloco de construção para converter o primeiro bloco de construção do segundo domínio para o primeiro domínio.
[0577] 8. Um método de processamento de vídeo, compreendendo: fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado usando um modo de modulação por código de pulso delta baseada em bloco (BDPCM); e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0578] 9. O método da cláusula 8, em que quando o bloco de vídeo atual é codificado no modo BDPCM, o modo de codificação é desabilitado.
[0579] 10. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de modulação por código de pulso delta baseada em bloco (BDPCM); e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma apresentação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo BDPCM e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0580] 11. O método da cláusula 10, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido à desabilitação do uso de uma reformulação direta e uma reformulação inversa que são usadas para converter amostras entre o primeiro domínio e o segundo domínio.
[0581] 12. O método da cláusula 10, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido ao uso de uma reformulação direta diferente e/ou uma reformulação inversa diferente que é usada para converter amostras entre o primeiro domínio e o segundo domínio.
[0582] 13. Um método de processamento de vídeo, compreendendo: fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo de salto de transformada em que uma transformada em uma predição residual é saltada na codificação do bloco de vídeo atual, em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou o resíduo de croma é escalado em uma maneira dependente de luma.
[0583] 14. O método da cláusula 13, em que um bloco de predição do bloco de vídeo atual é gerado no primeiro domínio.
[0584] 15. O método da cláusula 13, em que um bloco residual do bloco de vídeo atual é representado na representação codificada no primeiro domínio.
[0585] 16. O método da cláusula 13, em que um bloco de predição do bloco de vídeo atual é gerado no segundo domínio.
[0586] 17. O método da cláusula 13, em que um bloco residual é representado na representação codificada no segundo domínio.
[0587] 18. O método da cláusula 16 ou 17, em que um primeiro bloco de construção do bloco de vídeo atual é obtido com base em uma soma do bloco residual e do bloco de predição no segundo domínio e o primeiro bloco de construção é utilizado para as conversões entre um bloco de vídeo subsequente e a representação codificada do vídeo.
[0588] 19. O método da cláusula 16 ou 17, em que um bloco de construção final do bloco de vídeo atual é obtido com base em uma reformulação inversa que é aplicada a um primeiro bloco de construção para converter o primeiro bloco de construção do segundo domínio para o primeiro domínio.
[0589] 20. Um método de processamento de vídeo, compreendendo: fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de salto de transformada em que uma transformada em uma predição residual é saltada na codificação do bloco de vídeo atual; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0590] 21. O método da cláusula 20, em que quando o bloco de vídeo atual é codificado no modo de salto de transformada, o modo de codificação é desabilitado.
[0591] 22. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de salto de transformada em que uma transformada em uma predição residual é saltada na codificação do bloco de vídeo atual; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma representação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo de salto de transformada e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0592] 23. O método da cláusula 22, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido à desabilitação do uso de uma reformulação direta e uma reformulação inversa que são usadas para converter amostras entre o primeiro domínio e o segundo domínio.
[0593] 24. O método da cláusula 22, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido ao uso de uma reformulação direta diferente e/ou uma reformulação inversa diferente que é usada para converter amostras entre o primeiro domínio e o segundo domínio.
[0594] 25. Um método de processamento de vídeo, compreendendo: fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo de modulação por código intrapulso em que o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização no domínio da transformada, em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0595] 26. O método da cláusula 25, em que um bloco de predição do bloco de vídeo atual é gerado no primeiro domínio.
[0596] 27. O método da cláusula 25, em que um bloco residual do bloco de vídeo atual é representado na representação codificada no primeiro domínio.
[0597] 28. O método da cláusula 25, em que um bloco de predição do bloco de vídeo atual é gerado no segundo domínio.
[0598] 29. O método da cláusula 25, em que um bloco residual é representado na representação codificada no segundo domínio.
[0599] 30. O método da cláusula 28 ou 29, em que um primeiro bloco de construção do bloco de vídeo atual é obtido com base na soma do bloco residual e do bloco de predição no segundo domínio e o primeiro bloco de construção é utilizado para as conversões entre um bloco de vídeo subsequente e a representação codificada do vídeo.
[0600] 31. O método da cláusula 28 ou 29, em que um bloco de construção final do bloco de vídeo atual é obtido com base em uma reformulação inversa que é aplicada a um primeiro bloco de construção para converter o primeiro bloco de construção do segundo domínio para o primeiro domínio.
[0601] 32. Um método de processamento de vídeo, compreendendo: fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de modulação por código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização do domínio da transformada; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0602] 33. O método da cláusula 32, em que quando o bloco de vídeo atual é codificado no modo de modulação por código intrapulso, o modo de codificação é desabilitado.
[0603] 34. Um método de processamento de vídeo, compreendendo:
desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de modulação por código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização no domínio da transformada; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma apresentação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo de modulação por código intrapulso e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0604] 35. O método da cláusula 34, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido à desabilitação do uso de uma reformulação direta e uma reformulação inversa que são usadas para converter amostras entre o primeiro domínio e o segundo domínio.
[0605] 36. O método da cláusula 34, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido ao uso de uma reformulação direta diferente e/ou uma reformulação inversa diferente que é usada para converter amostras entre o primeiro domínio e o segundo domínio.
[0606] 37. Um método de processamento de vídeo, compreendendo: fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo; e desempenhar a conversão usando um modo transquant- bypass modificado no qual o bloco de vídeo atual é codificado de maneira sem perdas sem uma transformada e uma quantização, em que, no modo de codificação, o bloco de vídeo atual é construído com base em amostras em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0607] 38. O método da cláusula 37, em que um bloco de predição do bloco de vídeo atual é gerado no primeiro domínio.
[0608] 39. O método da cláusula 37, em que um bloco residual do bloco de vídeo atual é representado na representação codificada no primeiro domínio.
[0609] 40. O método da cláusula 37, em que um bloco de predição do bloco de vídeo atual é gerado no segundo domínio.
[0610] 41. O método da cláusula 37, em que um bloco residual é representado na representação codificada no segundo domínio.
[0611] 42. O método da cláusula 40 ou 41, em que um primeiro bloco de construção do bloco de vídeo atual é obtido com base na soma do bloco residual e do bloco de predição no segundo domínio e o primeiro bloco de construção é utilizado para as conversões entre um bloco de vídeo subsequente e a representação codificada do vídeo.
[0612] 43. O método da cláusula 40 ou 41, em que um bloco de construção final do bloco de vídeo atual é obtido com base em uma reformulação inversa que é aplicada a um primeiro bloco de construção para converter o primeiro bloco de construção do segundo domínio para o primeiro domínio.
[0613] 44. Um método de processamento de vídeo, compreendendo: fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo transquant-bypass no qual o bloco de vídeo atual é codificado de maneira sem perdas sem uma transformada e uma quantização; e desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação, em que quando o modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma.
[0614] 45. O método da cláusula 44, em que quando o bloco de vídeo atual é codificado no modo de modulação por código intrapulso, o modo de codificação é desabilitado.
[0615] 46. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo transquant-bypass em que a bloco de vídeo atual é codificado de maneira sem perdas, sem uma transformada e quantização; e desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma apresentação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo transquant-bypass e a conversão do segundo bloco de vídeo usa o primeiro modo de codificação, em que quando o primeiro modo de codificação é aplicado a um bloco de vídeo, o bloco de vídeo é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que o primeiro modo de codificação é aplicado em maneiras diferentes ao primeiro bloco de vídeo e ao segundo bloco de vídeo.
[0616] 47. O método da cláusula 46, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido à desabilitação do uso de uma reformulação direta e uma reformulação inversa que são usadas para converter amostras entre o primeiro domínio e o segundo domínio.
[0617] 48. O método da cláusula 46, em que o primeiro modo de codificação aplicado ao primeiro bloco de vídeo é diferente do primeiro modo de codificação aplicado ao segundo bloco de vídeo devido ao uso de uma reformulação direta diferente e/ou uma reformulação inversa diferente que é usada para converter amostras entre o primeiro domínio e o segundo domínio.
[0618] 49. O método de qualquer uma das cláusulas 1 a 48, em que a conversão é desempenhada com base em um componente de cor do bloco de vídeo atual.
[0619] 50. O método da cláusula 49, em que o componente de cor é o componente luma.
[0620] 51. O método de qualquer uma das cláusulas 1 a 50, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) que mapeia amostras de luma para valores particulares.
[0621] 52. O método da cláusula 51, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0622] 53. O método de qualquer uma das cláusulas 1 a 52, em que o desempenho da conversão inclui gerar a representação codificada a partir do bloco atual.
[0623] 54. O método de qualquer uma das cláusulas 1 a 52, em que o desempenho da conversão inclui gerar o bloco atual a partir da representação codificada.
[0624] 55. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 54.
[0625] 56. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 54.
[0626] O nono conjunto de cláusulas descreve certas características e aspectos das técnicas divulgadas listadas na seção anterior, incluindo, por exemplo, os Exemplos 30 a 34 e 41.
[0627] 1. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um conjunto de parâmetros que é diferente de um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de imagem (PPS) ou um conjunto de parâmetros de adaptação (APS) usado para portar parâmetros de filtragem adaptativa de malha (ALF).
[0628] 2. O método da cláusula 1, em que o conjunto de parâmetros é compartilhado entre as imagens.
[0629] 3. O método da cláusula 1, em que o conjunto de parâmetros inclui um ou mais elementos de sintaxe, incluindo pelo menos um dentre um identificador do conjunto de parâmetros ou uma flag que indica a presença de dados de extensão do conjunto de parâmetros.
[0630] 4. O método da cláusula 1, em que o conjunto de parâmetros é específico para um grupo de ladrilhos dentro de uma imagem.
[0631] 5. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um conjunto de parâmetros de adaptação (APS) juntamente com informações de filtragem adaptativa de malha (ALF), em que as informações usadas para o modo de codificação e as informações ALF estão incluídas em uma unidade NAL.
[0632] 6. O método da cláusula 5, em que um identificador do APS é sinalizado em um cabeçalho de grupo de ladrilhos.
[0633] 7. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um primeiro tipo de conjunto de parâmetros de adaptação (APS) que é diferente de um segundo tipo de APS usado para sinalizar informações de filtragem adaptativa de malha (ALF).
[0634] 8. O método da cláusula 7, em que um identificador do segundo tipo de APS é sinalizado no nível da região de vídeo.
[0635] 9. O método da cláusula 7, em que um identificador do primeiro tipo de APS é sinalizado no nível da região de vídeo.
[0636] 10. O método da cláusula 7, em que o primeiro tipo de APS contido na representação codificada contém o segundo tipo de APS que inclui as informações ALF em um bitstream de conformidade.
[0637] 11. O método da cláusula 7, em que o segundo tipo de APS contido na representação codificada contém o primeiro tipo de APS que inclui as informações usadas para o modo de codificação em um bitstream de conformidade.
[0638] 12. O método da cláusula 7, em que o primeiro tipo de APS e o segundo tipo de APS são associados a identificadores diferentes.
[0639] 13. O método da cláusula 12, em que o segundo tipo de APS tem um identificador que é igual a 2N, N sendo um número inteiro.
[0640] 14. O método da cláusula 13, em que o primeiro tipo de APS tem um identificador que é igual a 2N+1, N sendo um número inteiro.
[0641] 15. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que a região de vídeo não é permitida a se referir a um conjunto de parâmetros de adaptação ou um conjunto de parâmetros que é sinalizado antes de um tipo especificado de estrutura de dados usada para processar o vídeo, e em que o tipo especificado da estrutura de dados é sinalizado antes da região de vídeo.
[0642] 16. O método da cláusula 15, em que a estrutura de dados inclui pelo menos um dentre uma unidade de camada de abstração de rede (NAL), um grupo de ladrilhos, um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de imagem (PPS), um NAL delimitador de unidade de acesso (AUD), um NAL de fim de bitstream (EoB), um NAL de fim de sequência (NAL), um NAL de atualização de decodificação instantânea (IDR), um NAL de acesso aleatório limpo (CRA), uma unidade de acesso de ponto de acesso aleatório intra (IRAP) um grupo de ladrilhos, uma imagem ou uma fatia.
[0643] 17. Um método de processamento de vídeo, compreendendo: desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que um elemento de sintaxe de um conjunto de parâmetros incluindo parâmetros usados para processar o vídeo tem valores predefinidos em um bitstream de conformidade.
[0644] 18. O método da cláusula 17, em que os valores predefinidos são 0 e 1.
[0645] 19. O método da cláusula 17, em que os valores predefinidos são 0 e 7.
[0646] 20. O método de qualquer uma das cláusulas 1 a 19, em que a região de vídeo compreende pelo menos um dentre um grupo de ladrilhos, uma imagem, uma fatia ou um ladrilho.
[0647] 21. O método de qualquer uma das cláusulas 1 a 20, em que o primeiro domínio é um domínio original e o segundo domínio é um domínio reformulado usando um método de mapeamento de luma com escalamento de croma (LMCS) que mapeia amostras de luma para valores particulares.
[0648] 22. O método da cláusula 21, em que o LMCS usa modelo linear por partes para mapear as amostras de luma para os valores particulares.
[0649] 23. O método de qualquer uma das cláusulas 1 a 22, em que o desempenho da conversão inclui gerar a representação codificada a partir do bloco atual.
[0650] 24. O método de qualquer uma das cláusulas 1 a 22, em que o desempenho da conversão inclui gerar o bloco atual a partir da representação codificada.
[0651] 25. Um aparelho em um sistema de vídeo compreendendo um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem com que o processador implemente o método em qualquer uma das cláusulas 1 a 24.
[0652] 26. Um produto de programa de computador armazenado em uma mídia legível por computador não transitória, o produto de programa de computador incluindo código de programa para realizar o método em qualquer uma das cláusulas 1 a 24.
[0653] A partir do exposto, será apreciado que modalidades específicas da tecnologia presentemente divulgada foram descritas na presente invenção para fins de ilustração, mas que várias modificações podem ser feitas sem se desviar do escopo da invenção. Consequentemente, a tecnologia presentemente divulgada não é limitada, exceto pelas reivindicações anexas.
[0654] Implementações da matéria e as operações funcionais descritas neste documento de patente podem ser implementadas em vários sistemas, conjuntos de circuitos eletrônicos digitais, ou em software, firmware ou hardware de computador, incluindo as estruturas divulgadas neste relatório descritivo e seus equivalentes estruturais, ou em combinações de um ou mais deles. Implementações da matéria e as operações funcionais descritas neste relatório descritivo podem ser implementadas como um ou mais produtos de programa de computador, ou seja, um ou mais módulos de instruções de programa de computador codificados em um meio legível por computador não transitório para execução por, ou para controlar a operação de, aparelho de processamento de dados. O meio legível por computador pode ser um dispositivo de armazenamento legível por máquina, um substrato de armazenamento legível por máquina, um dispositivo de memória, uma composição de matéria efetuando um sinal propagado legível por máquina ou uma combinação de um ou mais deles. O termo "aparelho de processamento de dados" abrange todos os aparelhos, dispositivos e máquinas para processamento de dados, incluindo, a título de exemplo, um processador programável, um computador ou múltiplos processadores ou computadores. O aparelho pode incluir, além do hardware, o código que cria um ambiente de execução para o programa de computador em questão, por exemplo, o código que constitui o firmware do processador, uma pilha de protocolo, um sistema de gerenciamento de banco de dados, um sistema operacional ou uma combinação de um ou mais deles.
[0655] Um programa de computador (também conhecido como programa, software, aplicação de software, script ou código) pode ser escrito em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, e pode ser implantado em qualquer forma, incluindo como um programa autônomo ou como um módulo, componente, sub-rotina ou outra unidade adequada para uso em um ambiente de computação. Um programa de computador não corresponde necessariamente a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma porção de um arquivo que contém outros programas ou dados (por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação), em um único arquivo dedicado ao programa em questão ou em múltiplos arquivos coordenados (por exemplo, arquivos que armazenam um ou mais módulos, subprogramas ou porções de código). Um programa de computador pode ser implantado para ser executado em um computador ou em múltiplos computadores que são localizados em um local ou distribuídos em múltiplos locais e interconectados por uma rede de comunicação.
[0656] Os processos e fluxos lógicos descritos neste relatório descritivo podem ser desempenhados por um ou mais processadores programáveis executando um ou mais programas de computador para desempenhar funções operando em dados de entrada e gerando saída. Os processos e fluxos lógicos também podem ser desempenhados por, e os aparelhos também podem ser implementados como, conjuntos de circuitos lógicos para fins especiais, por exemplo, um FPGA (arranjo de porta programável em campo) ou um ASIC (circuito integrado de aplicação específica).
[0657] Os processadores adequados para a execução de um programa de computador incluem, a título de exemplo, microprocessadores de uso geral e para fins especiais e qualquer um ou mais processadores de qualquer tipo de computador digital. Geralmente, um processador receberá instruções e dados a partir de uma memória somente de leitura ou de uma memória de acesso aleatório ou de ambas. Os elementos essenciais de um computador são um processador para desempenhar instruções e um ou mais dispositivos de memória para armazenar instruções e dados. Geralmente, um computador também incluirá, ou será operativamente acoplado para receber dados de ou transferir dados para, ou ambos, um ou mais dispositivos de armazenamento em massa para armazenar dados, por exemplo, discos magnéticos, magneto-ópticos ou discos ópticos. No entanto, um computador não precisa ter tais dispositivos. A mídia legível por computador adequada para armazenar instruções e dados de programa de computador inclui todas as formas de memória não volátil, mídia e dispositivos de memória, incluindo, a título de exemplo, dispositivos de memória semicondutores, por exemplo, EPROM, EEPROM e dispositivos de memória flash. O processador e a memória podem ser complementados por, ou incorporados em, conjuntos de circuitos lógicos para fins especiais.
[0658] Pretende-se que o relatório descritivo, juntamente com os desenhos, seja considerado apenas exemplar, onde exemplar significa um exemplo. Conforme usado na presente invenção, o uso de "ou" se destina a incluir "e/ou", salvo indicação em contrário pelo contexto.
[0659] Embora este documento de patente contenha muitas especificidades, estas não devem ser interpretadas como limitações no escopo de qualquer invenção ou do que pode ser reivindicado, mas sim como descrições de características que podem ser específicas para modalidades particulares de invenções particulares. Certas características que são descritas neste documento de patente no contexto de modalidades separadas também podem ser implementados em combinação em uma única modalidade. Por outro lado, várias características que são descritas no contexto de uma única modalidade também podem ser implementadas em várias modalidades separadamente ou em qualquer subcombinação adequada. Além disso, embora as características possam ser descritas acima como agindo em certas combinações e mesmo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada podem, em alguns casos, ser excisados da combinação e a combinação reivindicada pode ser direcionada a uma subcombinação ou variação de uma subcombinação.
[0660] De maneira similar, embora as operações sejam representadas nas figuras em uma ordem particular, isso não deve ser entendido como exigindo que tais operações sejam desempenhadas na ordem particular mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam desempenhadas, para atingir os resultados desejáveis. Além disso, a separação de vários componentes de sistema nas modalidades descritas neste documento de patente não deve ser entendida como requerendo tal separação em todas as modalidades.
[0661] Apenas algumas implementações e exemplos são descritos e outras implementações, melhorias e variações podem ser feitas com base no que é descrito e ilustrado neste documento de patente.

Claims (20)

REIVINDICAÇÕES
1. Método de processamento de dados de vídeo, caracterizado pelo fato de que compreende: desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e um bitstream do vídeo; em que a conversão usa uma ferramenta de codificação na qual o bloco de vídeo atual é construído com base em pelo menos um de 1) um processo de mapeamento direto para um componente de luma do bloco de vídeo atual, no qual amostras do componente de luma são convertidas a partir de um domínio original para um domínio reformulado, 2) um processo de mapeamento inverso, o qual é uma operação inversa do processo de mapeamento direto para converter as amostras do componente de luma no domínio reformulado para o domínio original, ou 3) um processo de escalamento, no qual amostras residuais de um componente de croma do bloco de vídeo atual são escaladas antes de serem usadas para reconstruir o componente de croma do bloco de vídeo atual; e em que um conjunto de parâmetros de adaptação é incluído no bitstream o qual compreende informações de parâmetros para a ferramenta de codificação e um primeiro identificador do conjunto de parâmetros de adaptação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um segundo identificador para o conjunto de parâmetros de adaptação a ser utilizado para o bloco de vídeo atual é condicionalmente incluído em um cabeçalho da região de vídeo.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que se o segundo identificador estar presente no cabeçalho da região de vídeo depende se a ferramenta de codificação está habilitada para a região de vídeo.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o primeiro identificador do conjunto de parâmetros de adaptação tem uma faixa entre 0 a M, em que M é 2K-1.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que o conjunto de parâmetros de adaptação é compartilhado entre as imagens do vídeo.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que o primeiro identificador do conjunto de parâmetros de adaptação tem um valor que é codificado por comprimento fixo.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o conjunto de parâmetros de adaptação para a ferramenta de codificação e outro conjunto de parâmetros de adaptação para informações de filtro de malha adaptativa compartilham um mesmo tipo de unidade de camada de abstração de rede.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que as informações de parâmetro incluem pelo menos um de uma indicação de informações de modelo de reformulação a qual é usada no processo de mapeamento direto para mapear as amostras do componente de luma em valores particulares ou fatores de escalamento residual de croma o qual é usado no processo de escalamento para derivar as amostras residuais escaladas do componente de croma.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que o modelo de reformulação é um modelo linear por partes.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que os coeficientes de escala do modelo linear por partes são determinados com base nas primeiras variáveis as quais são determinadas com base nas informações de parâmetro incluídas no conjunto de parâmetros de adaptação e uma segunda variável as quais são determinadas com base na profundidade de bits.
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que os parâmetros de escalamento do processo de escalamento são derivados com base em amostras de luma reconstruídas no domínio reformulado de uma imagem à qual o bloco de vídeo atual pertence e os fatores de escalamento residual de croma.
12. Método, de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que as informações de parâmetro são incluídas no conjunto de parâmetros de adaptação e um flag de uso da ferramenta de codificação é incluído no nível da região de vídeo.
13. Método, de acordo com qualquer uma das reivindicações 1 a 12, caracterizado pelo fato de que as informações de parâmetro da região de vídeo são previstas por informações de parâmetro de uma ou múltiplas regiões de vídeo previamente codificadas.
14. Método, de acordo com a reivindicação 13, caracterizado pelo fato de que as regiões de vídeo previamente codificadas compreendem uma ou múltiplas imagens do vídeo.
15. Método, de acordo com qualquer uma das reivindicações 1 a 14, caracterizado pelo fato de que a região de vídeo é uma imagem ou um grupo de ladrilhos.
16. Método, de acordo com qualquer uma das reivindicações 1 a 15, caracterizado pelo fato de que a conversão inclui codificar o bloco de vídeo atual para dentro do bitstream.
17. Método, de acordo com qualquer uma das reivindicações 1 a 15, caracterizado pelo fato de que a conversão inclui decodificar o bloco de vídeo atual a partir do bitstream.
18. Aparelho para processar dados de vídeo, caracterizado pelo fato de que compreende um processador e uma memória não transitória com instruções na mesma, em que as instruções após a execução pelo processador, fazem o processador: desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e um bitstream do vídeo; em que a conversão usa uma ferramenta de codificação na qual o bloco de vídeo atual é construído com base em pelo menos um de 1) um processo de mapeamento direto para um componente de luma do bloco de vídeo atual, no qual amostras do componente de luma são convertidas a partir de um domínio original para um domínio reformulado, 2) um processo de mapeamento inverso, o qual é uma operação inversa do processo de mapeamento direto para converter as amostras do componente de luma no domínio reformulado para o domínio original, ou 3) um processo de escalamento, no qual amostras residuais de um componente de croma do bloco de vídeo atual são escaladas antes de serem usadas para reconstruir o componente de croma do bloco de vídeo atual; e em que um conjunto de parâmetros de adaptação é incluído no bitstream o qual compreende informações de parâmetros para a ferramenta de codificação e um primeiro identificador do conjunto de parâmetros de adaptação.
19. Meio de armazenamento não transitório legível por computador caracterizado pelo fato que armazena instruções que fazem um processador: desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e um bitstream do vídeo; em que a conversão usa uma ferramenta de codificação na qual o bloco de vídeo atual é construído com base em pelo menos um de 1) um processo de mapeamento direto para um componente de luma do bloco de vídeo atual, no qual amostras do componente de luma são convertidas a partir de um domínio original para um domínio reformulado, 2) um processo de mapeamento inverso, o qual é uma operação inversa do processo de mapeamento direto para converter as amostras do componente de luma no domínio reformulado para o domínio original, ou 3) um processo de escalamento, no qual amostras residuais de um componente de croma do bloco de vídeo atual são escaladas antes de serem usadas para reconstruir o componente de croma do bloco de vídeo atual; e em que um conjunto de parâmetros de adaptação é incluído no bitstream o qual compreende informações de parâmetros para a ferramenta de codificação e um primeiro identificador do conjunto de parâmetros de adaptação.
20. Meio de gravação não transitório legível por computador caracterizado pelo fato de que armazena um bitstream de um vídeo o qual é gerado por um método desempenhado por um aparelho de processamento de vídeo, em que o método compreende: gerar o bitstream com base em um bloco de vídeo atual de uma região de vídeo do vídeo; em que a conversão usa uma ferramenta de codificação na qual o bloco de vídeo atual é construído com base em pelo menos um de 1) um processo de mapeamento direto para um componente de luma do bloco de vídeo atual, no qual amostras do componente de luma são convertidas a partir de um domínio original para um domínio reformulado, 2) um processo de mapeamento inverso, o qual é uma operação inversa do processo de mapeamento direto para converter as amostras do componente de luma no domínio reformulado para o domínio original, ou 3) um processo de escalamento, no qual amostras residuais de um componente de croma do bloco de vídeo atual são escaladas antes de serem usadas para reconstruir o componente de croma do bloco de vídeo atual; e em que um conjunto de parâmetros de adaptação é incluído no bitstream o qual compreende informações de parâmetros para a ferramenta de codificação e um primeiro identificador do conjunto de parâmetros de adaptação.
Derivação de candidatos iniciais
Derivação de candidatos espaciais Derivação de candidatos temporais
Verificação de redundância para candidatos espaciais 1/67
Inserção de candidatos adicionais
Criação de candidatos bipreditivos
Inserção de candidatos de movimento zero
Petição 870210065599, de 20/07/2021, pág. 497/747 Lista final de candidatos de mesclagem
PU atual PU atual col_PU col_pic curr_PU curr_pic curr_ref col_ref
Lista de candidatos de mesclagem Lista de candidatos de mesclagem após adicionar candidatos original combinados Merge_idx Merge_idx mvL0_A, ref0 mvL0_A, ref0 combinar mvL1_B, ref0 mvL1_B, ref0 combinar mvL0_A, ref0 mvL1_B, ref0 6/67
Posições de candidato espacial (5) Posições de candidato temporal (2)
Selecionar 2 candidatos Selecionar 1 candidato
Remover candidatos de MV duplicados 7/67
Adicionar zero candidatos de MV
Remover os candidatos de MV cujo índice é maior que 1
Petição 870210065599, de 20/07/2021, pág. 503/747 Candidatos de vetor de movimento final (2)
neighbor_PU curr_PU curr_pic curr_ref neigh_ref
CU atual Bloco de referência 11/67
Amostras vizinhas de CU atual
Petição 870210065599, de 20/07/2021, pág. 507/747 Amostras vizinhas de bloco de referência
Imagem Atual Imagem de Referência
Imagem Atual Imagem de Referência
Bloco Atual
Cur
Bloco Atual Codificado por afinidade
Bloco Atual
Referência L1 Quadro atual
Bloco Atual Referência L0
Referência L1 Referência L0
Bipredição como template bilateral • Etapa 1: Gerar template bilateral a partir dos blocos de predição referidos pelos MV0 e MV1 iniciais • Etapa 2: Correspondência de template bilateral para encontrar os blocos com melhor correspondência referidos pelos MV0 'e MV1' atualizados
Etapa 1 Etapa 2 Etapa 1
Etapa 2 23/67
Bloco de referência em list0 Bloco Atual Bloco de referência em list1
Reconstrução Reformulação inversa: Yres Yr = Yres + Y’pred
Y’pred Y’pred = Ypred Modo intra 𝑌𝑌�i = InvLUT[Yr]
Intrapredição Ypred
Reformulação Direta: Ypred Compensação de Modo inter Y’pred =FwdLUT[Ypred] Movimento 24/67
Janela associada à amostra P0,0
Janela associada à
Petição 870210065599, de 20/07/2021, pág. 521/747 amostra P2,0
Y’pred YFinalPred Reconstrução Compensação de Ypred Reformulação Reconstrução Final Temporária YFinalr=reformulação Movimento Direta inversa (Yr) Yr = YFinalPred + Yresi
Yresi 26/67
Y’pred YFinalPred Reconstrução Ypred Reconstrução Final Compensação de Reformulação Temporária YFinalr=reformulação Movimento Direta Yr = YFinalPred + Yresi inversa (Yr)
Yresi
YFinalPred Métodos de filtragem Ypred Reformulação Reconstrução Yr Reconstrução antes YrNoFilter para derivar a Compensação de da filtragem reconstrução final Direta Temporária Movimento YrNoFilter= YFinalr a partir de YrNoFilter Yr = YFinalPred + Yresi reformulação inversa (Y 'r) Yresi 27/67
YFinalPred Reconstrução Yr Y’r Reconstrução Final Compensação de Ypred Reformulação Métodos de Temporária YFinalr=reformulação Movimento Direta filtragem inversa (Yr) Yr = YFinalPred + Yresi
Petição 870210065599, de 20/07/2021, pág. 523/747 Yresi
Desempenhar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, um processo de refinamento de informações de movimento com base em amostras em um primeiro domínio ou um segundo domínio 28/67
Desempenhar a conversão com base em um resultado do processo de refinamento de informações de movimento
Desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e a representação codificada do vídeo 29/67
Determinar, para um bloco de vídeo atual de uma região de vídeo atual de um vídeo, um parâmetro para um modo de codificação do bloco de vídeo atual com base em um ou mais parâmetros para um modo de codificação de uma região de vídeo anterior 30/67
Desempenhar uma codificação para o bloco de vídeo atual para gerar uma representação codificada do vídeo com base na determinação
Receber uma representação codificada de um vídeo, incluindo um conjunto de parâmetros, incluindo informações de parâmetros para um modo de codificação 31/67
Desempenhar uma decodificação da representação codificada usando as informações de parâmetro para gerar um bloco de vídeo atual de uma região de vídeo atual do vídeo a partir da representação codificada
Desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão inclui a aplicação de uma operação de filtragem a um bloco de predição em um primeiro domínio ou em um segundo domínio 32/67 diferente do primeiro domínio
Desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que, durante a conversão, um bloco de reconstrução final é determinado para o bloco de vídeo atual e em que o bloco de reconstrução temporário é 33/67 gerado usando um método de predição e representado no segundo domínio
Desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação em que o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira 34/67 dependente de luma, e em que um conjunto de parâmetro na representação codificada compreende informações de parâmetro para o modo de codificação
Desempenhar uma conversão entre um bloco de vídeo atual de um vídeo que é um bloco de croma e uma representação codificada do vídeo, em que, durante a conversão, o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio, e em que a conversão inclui adicionalmente a 35/67 aplicação de um processo de reformulação direta e/ou um processo de reformulação inversa a um ou mais componentes de croma do bloco de vídeo atual
Desempenhar uma conversão entre um bloco de croma de vídeo atual de um vídeo e uma representação codificada do vídeo, em que o desempenho da conversão inclui: determinar se o Escalamento de Resíduo de Croma Dependente de Luma (LCRS) está habilitado ou desabilitado com base em uma regra e 36/67 reconstruir o bloco de croma de vídeo atual com base na determinação.
Determinar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, se desabilitar o uso de um modo de codificação com base em um ou mais valores de coeficiente do bloco de vídeo atual 37/67
Desempenhar a conversão com base na determinação
Dividir, para uma conversão entre um bloco de vídeo atual de um vídeo que excede uma Unidade de Dados de Pipeline Virtual (VPDU) do vídeo, o bloco de vídeo atual em regiões 38/67
Desempenhar a conversão aplicando um modo de codificação separadamente para cada região
Determinar, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, se desabilitar o uso de um modo de codificação com base em um tamanho ou cor de formato do bloco de vídeo atual 39/67
Desempenhar a conversão com base na determinação
Desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação em que o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que pelo menos um elemento 40/67 de sintaxe na representação codificada provê uma indicação de um uso do modo codificado e uma indicação de um modelo reformulador
Determinar que um modo de codificação está desabilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo 41/67
Saltar condicionalmente uma reformulação direta e/ou reformulação inversa com base na determinação
Desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação em que o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado 42/67 em uma maneira dependente de luma, e em que a reformulação direta múltipla e/ou a reformulação inversa múltipla são aplicadas no modo de reformulação para a região de vídeo
Fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo 43/67
Desempenhar a conversão usando um modo de paleta em que pelo menos uma paleta de valores de amostra representativos é usada para o bloco de vídeo atual
Fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de paleta em que pelo menos uma paleta de valores de amostra representativos é usada para codificar o bloco de vídeo atual 44/67
Desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação
Desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um primeiro modo de codificação e um modo de codificação de paleta em que pelo menos uma paleta de valores de pixel representativos é usada para codificar o bloco de vídeo atual 45/67
Desempenhar uma conversão entre um segundo bloco de vídeo do vídeo que é codificado sem usar o modo de codificação de paleta e uma representação codificada do vídeo, em que a conversão do segundo bloco de vídeo usa o primeiro modo de codificação
Fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo 46/67
Desempenhar a conversão usando um modo de cópia bloco intra que gera um bloco de predição usando pelo menos um vetor de bloco apontando para uma imagem que inclui o bloco de vídeo atual
Fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de Cópia Bloco Intra (IBC) que gera um bloco de predição usando pelo menos um vetor de bloco apontando para um quadro de vídeo contendo o bloco de vídeo atual para codificar o bloco de vídeo atual 47/67
Desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação
Desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de cópia bloco intra que gera um bloco de predição usando pelo menos um vetor de bloco apontando para um quadro de vídeo contendo o bloco de vídeo atual e um primeiro modo de codificação 48/67
Desempenhar uma conversão entre um segundo bloco de vídeo do vídeo que é codificado sem usar o modo de cópia blocos intra e uma representação codificada do vídeo, em que a conversão do segundo bloco de vídeo usa o primeiro modo de codificação
Fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo 49/67
Desempenhar a conversão usando um modo de Modulação por Código de Pulso Delta Baseada em Bloco (BDPCM)
Fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado usando um modo de Modulação por Código de Pulso Delta Baseada em Bloco (BDPCM) 50/67
Desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação
Desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de Modulação por Código de Pulso Delta Baseada em Bloco (BDPCM) 51/67
Desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma representação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo BDPCM e a
Petição 870210065599, de 20/07/2021, pág. 547/747 conversão do segundo bloco de vídeo usa o primeiro modo de codificação
Fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo 52/67
Desempenhar a conversão usando um modo de salto de transformada em que uma transformada em um residual de predição é saltada na codificação do bloco de vídeo atual
Fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de salto de transformada em que uma transformada em um residual de predição é saltada na codificação do bloco de vídeo atual 53/67
Desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação
Desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de salto de transformada em que uma transformada em um resíduo de predição é saltada na codificação do bloco de vídeo atual 54/67
Desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma representação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo de salto de transformada e a conversão do
Petição 870210065599, de 20/07/2021, pág. 550/747 segundo bloco de vídeo usa o primeiro modo de codificação
Fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo 55/67
Desempenhar a conversão usando um modo de modulação de código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização no domínio da transformada
Fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo de modulação de código intrapulso em que o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização no domínio da transformada 56/67
Desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação
Desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo de modulação de código intrapulso no qual o bloco de vídeo atual é codificado sem aplicar uma transformada e uma quantização no domínio da transformada 57/67
Desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma representação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo de modulação de código intrapulso e a conversão do segundo bloco
Petição 870210065599, de 20/07/2021, pág. 553/747 de vídeo usa o primeiro modo de codificação
Fazer uma determinação de que um modo de codificação está habilitado para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo 58/67
Desempenhar a conversão usando um modo transquant-bypass no qual o bloco de vídeo atual é codificado de maneira sem perdas sem uma transformada e uma quantização
Fazer uma determinação, para uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, de que o bloco de vídeo atual é codificado em um modo transquant-bypass em que o bloco de vídeo atual é codificado de maneira sem perdas sem uma transformada e uma quantização 59/67
Desempenhar, devido à determinação, a conversão ao desabilitar um modo de codificação
Desempenhar uma conversão entre um primeiro bloco de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão do primeiro bloco de vídeo usa um primeiro modo de codificação e um modo transquant-bypass em que o bloco de vídeo atual é codificado de maneira sem perdas, sem uma transformada e uma quantização 60/67
Desempenhar uma conversão entre um segundo bloco de vídeo do vídeo e uma representação codificada do vídeo, em que o segundo bloco de vídeo é codificado sem usar o modo transquant-bypass e a conversão do
Petição 870210065599, de 20/07/2021, pág. 556/747 segundo bloco de vídeo usa o primeiro modo de codificação
Desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação em que o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um conjunto de 61/67 parâmetros que é diferente de um Conjunto de Parâmetros de Sequência (SPS), um Conjunto de Parâmetros de Vídeo (VPS), um Conjunto de Parâmetros de Imagem (PPS) ou um Conjunto de Parâmetros de Adaptação (APS) usado para portar parâmetros de Filtragem Adaptativa de Malha (ALF).
Desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação em que o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que as informações usadas para o modo 62/67 de codificação são sinalizadas em um Conjunto de Parâmetros de Adaptação (APS) juntamente com informações de Filtragem Adaptativa de Malha (ALF), em que as informações usadas para o modo de codificação e as informações ALF estão incluídas em uma unidade NAL.
Desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma 63/67 maneira dependente de luma, e em que as informações usadas para o modo de codificação são sinalizadas em um primeiro tipo de Conjunto de Parâmetros de Adaptação (APS) que é diferente de um segundo tipo de APS usado para sinalizar informações de Filtragem Adaptativa de Malha (ALF).
Desempenhar uma conversão entre um bloco de vídeo atual de uma região de vídeo de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação no qual o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que a região de vídeo não é 64/67 permitida para se referir a um conjunto de parâmetros de adaptação ou um conjunto de parâmetros que é sinalizado antes de um tipo especificado de estrutura de dados usada para processar o vídeo, e em que o tipo especificado da estrutura de dados é sinalizado antes da região de vídeo
Desempenhar uma conversão entre um bloco de vídeo atual de um vídeo e uma representação codificada do vídeo, em que a conversão usa um modo de codificação em que o bloco de vídeo atual é construído com base em um primeiro domínio e um segundo 65/67 domínio e/ou resíduo de croma é escalado em uma maneira dependente de luma, e em que um elemento de sintaxe de um conjunto de parâmetros incluindo parâmetros usados para processar o vídeo tem valores predefinidos em um bitstream de conformidade
Processador
Conjunto de circuitos de processamento de vídeo Memória 66/67
BR112021014202-9A 2019-02-01 2020-02-01 Sinalização de informações de reformulação em malha usando conjuntos de parâmetros BR112021014202A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019074437 2019-02-01
CNPCT/CN2019/074437 2019-02-01
PCT/CN2020/074139 WO2020156529A1 (en) 2019-02-01 2020-02-01 Signaling of in-loop reshaping information using parameter sets

Publications (1)

Publication Number Publication Date
BR112021014202A2 true BR112021014202A2 (pt) 2021-09-21

Family

ID=77271633

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112021014620-2A BR112021014620A2 (pt) 2019-02-01 2020-02-01 Interações entre as ferramentas de intercodificação e de reformulação em malha
BR112021014202-9A BR112021014202A2 (pt) 2019-02-01 2020-02-01 Sinalização de informações de reformulação em malha usando conjuntos de parâmetros

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR112021014620-2A BR112021014620A2 (pt) 2019-02-01 2020-02-01 Interações entre as ferramentas de intercodificação e de reformulação em malha

Country Status (11)

Country Link
US (4) US11343505B2 (pt)
EP (3) EP3906681A4 (pt)
JP (4) JP7199552B2 (pt)
KR (4) KR20210118400A (pt)
CN (5) CN117768642A (pt)
AU (1) AU2020214946B2 (pt)
BR (2) BR112021014620A2 (pt)
CA (2) CA3127136A1 (pt)
MX (2) MX2021008911A (pt)
SG (2) SG11202107760PA (pt)
ZA (2) ZA202105195B (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11632546B2 (en) * 2018-07-18 2023-04-18 Electronics And Telecommunications Research Institute Method and device for effective video encoding/decoding via local lighting compensation
CN113475079A (zh) 2019-02-01 2021-10-01 北京字节跳动网络技术有限公司 环路整形和帧内块复制之间的相互作用
KR20210118400A (ko) 2019-02-01 2021-09-30 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩을 위한 루마 종속적 크로마 잔차 스케일링의 구성
MX2021010337A (es) * 2019-02-27 2021-09-28 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes.
CN117499644A (zh) 2019-03-14 2024-02-02 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
WO2020192614A1 (en) 2019-03-23 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Restrictions on adaptive-loop filtering parameter sets
EP3959886A4 (en) * 2019-04-25 2022-06-22 OP Solutions, LLC SIGNALING A GLOBAL MOTION VECTOR IN AN IMAGE HEAD
WO2020256391A1 (ko) * 2019-06-18 2020-12-24 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
CN114175651A (zh) * 2019-06-20 2022-03-11 Lg电子株式会社 基于亮度映射和色度缩放的视频或图像编码
JP7391203B2 (ja) 2019-10-12 2023-12-04 北京字節跳動網絡技術有限公司 ビデオコーディングツールを洗練する使用およびシグナリング
WO2022228430A1 (en) * 2021-04-27 2022-11-03 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing
US11622106B2 (en) * 2021-05-17 2023-04-04 Meta Platforms, Inc. Supporting multiple partition sizes using a unified pixel input data interface for fetching reference pixels in video encoders
US20230090025A1 (en) * 2021-09-22 2023-03-23 Alibaba Singapore Holding Private Limited Methods and systems for performing combined inter and intra prediction
US11968356B2 (en) 2022-03-16 2024-04-23 Qualcomm Incorporated Decoder-side motion vector refinement (DMVR) inter prediction using shared interpolation filters and reference pixels
US20240022732A1 (en) * 2022-07-13 2024-01-18 Tencent America LLC Weight derivation of multiple reference line for intra prediction fusion
WO2024037638A1 (en) * 2022-08-18 2024-02-22 Douyin Vision Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544284A (en) 1992-02-11 1996-08-06 Eastman Kodak Company Sequential product code quantization of digital color image
US20020145610A1 (en) 1999-07-16 2002-10-10 Steve Barilovits Video processing engine overlay filter scaler
US7412003B2 (en) 2003-09-17 2008-08-12 Texas Instruments Incorporated Transcoders and methods
KR101841783B1 (ko) * 2009-12-04 2018-03-23 톰슨 라이센싱 비디오 인코딩 및 디코딩에서 인터 프레임을 위한 개선된 색차 변환을 위한 방법 및 장치
US9100661B2 (en) 2010-04-05 2015-08-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
US9094658B2 (en) 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US8630356B2 (en) 2011-01-04 2014-01-14 The Chinese University Of Hong Kong High performance loop filters in video compression
US9001883B2 (en) * 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
WO2012138032A1 (ko) * 2011-04-07 2012-10-11 엘지전자 주식회사 영상 정보 부호화 방법 및 복호화 방법
DK2882190T3 (en) * 2011-04-21 2019-02-18 Hfi Innovation Inc Method and apparatus for improved ring-structured filtration
US9277228B2 (en) 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US9948938B2 (en) 2011-07-21 2018-04-17 Texas Instruments Incorporated Methods and systems for chroma residual data prediction
US9083983B2 (en) 2011-10-04 2015-07-14 Qualcomm Incorporated Motion vector predictor candidate clipping removal for video coding
KR20130053645A (ko) 2011-11-15 2013-05-24 한국전자통신연구원 적응적 루프 필터를 이용한 비디오 부호화/복호화 방법 및 장치
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
WO2013109505A2 (en) * 2012-01-19 2013-07-25 Vid Scale, Inc. Methods, apparatus and systems for signaling video coding adaptation parameters
CN104205819B (zh) 2012-02-01 2017-06-30 诺基亚技术有限公司 用于视频编码的方法和装置
US9438905B2 (en) * 2012-04-12 2016-09-06 Futurewei Technologies, Inc. LM mode with uniform bit-width multipliers
GB2501125B (en) * 2012-04-13 2015-08-19 Canon Kk Method and device for providing adaptation parameters to a decoder
US9300984B1 (en) 2012-04-18 2016-03-29 Matrox Graphics Inc. Independent processing of data streams in codec
WO2013162454A1 (en) * 2012-04-24 2013-10-31 Telefonaktiebolaget L M Ericsson (Publ) Identifying a parameter set for decoding a multi-layer video representation
FI2869557T3 (fi) * 2012-06-29 2023-11-02 Electronics & Telecommunications Res Inst Menetelmä ja laite kuvien koodaamiseksi/dekoodaamiseksi
KR102257542B1 (ko) 2012-10-01 2021-05-31 지이 비디오 컴프레션, 엘엘씨 향상 레이어에서 변환 계수 블록들의 서브블록-기반 코딩을 이용한 스케일러블 비디오 코딩
CA2897152C (en) * 2013-01-07 2019-03-05 Kemal Ugur Inter-layer video encoding and decoding with adaptive resolution change at indicated switching points
US9491460B2 (en) 2013-03-29 2016-11-08 Qualcomm Incorporated Bandwidth reduction for video coding prediction
US10440365B2 (en) * 2013-06-28 2019-10-08 Velos Media, Llc Methods and devices for emulating low-fidelity coding in a high-fidelity coder
US9762909B2 (en) 2013-07-30 2017-09-12 Kt Corporation Image encoding and decoding method supporting plurality of layers and apparatus using same
EP3629582A1 (en) 2013-10-07 2020-04-01 Vid Scale, Inc. Combined scalability processing for multi-layer video coding
US10397607B2 (en) 2013-11-01 2019-08-27 Qualcomm Incorporated Color residual prediction for video coding
US10148895B2 (en) 2013-12-19 2018-12-04 Flir Systems Ab Generating a combined infrared/visible light image having an enhanced transition between different types of image information
TWI536811B (zh) 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
WO2015100522A1 (en) 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
US9948933B2 (en) 2014-03-14 2018-04-17 Qualcomm Incorporated Block adaptive color-space conversion coding
PL3117617T3 (pl) 2014-03-14 2022-08-22 Vid Scale, Inc. Kodowanie palety przeznaczone do kodowania zawartości ekranu
RU2667034C2 (ru) 2014-05-28 2018-09-13 Конинклейке Филипс Н.В. Способы и устройства для кодирования hdr-изображений и способы и устройства для использования таких кодированных изображений
AU2014202921B2 (en) * 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
US9948949B2 (en) 2014-06-20 2018-04-17 Qualcomm Incorporated Intra block copy block vector signaling for video coding
US9667829B2 (en) 2014-08-12 2017-05-30 Digimarc Corporation System and methods for encoding information for printed articles
WO2016057323A1 (en) 2014-10-06 2016-04-14 Huawei Technologies Co., Ltd. Improved palette mode in high efficiency video coding (hevc) screen content coding (scc)
GB2531005A (en) 2014-10-06 2016-04-13 Canon Kk Improved encoding process using a palette mode
CN104320671A (zh) 2014-11-13 2015-01-28 山东财经大学 一种基于h.264标准的在线视频转码方法
KR102150979B1 (ko) * 2014-12-19 2020-09-03 에이치에프아이 이노베이션 인크. 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법
KR20170103924A (ko) 2015-01-14 2017-09-13 브이아이디 스케일, 인크. 비-4:4:4 화면 콘텐츠 영상의 팔레트 코딩
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
US9998742B2 (en) 2015-01-27 2018-06-12 Qualcomm Incorporated Adaptive cross component residual prediction
US20160234498A1 (en) * 2015-02-05 2016-08-11 Sharp Laboratories Of America, Inc. Methods and systems for palette table coding
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
WO2016164235A1 (en) 2015-04-06 2016-10-13 Dolby Laboratories Licensing Corporation In-loop block-based image reshaping in high dynamic range video coding
EP3298785A4 (en) 2015-06-03 2019-02-13 MediaTek Inc. METHOD AND APPARATUS FOR RESOURCE SHARING BETWEEN INTRA BLOCK COPY MODE AND INTER-PREDICTION MODE IN VIDEO CODING SYSTEMS
GB2539211A (en) 2015-06-08 2016-12-14 Canon Kk Enhanced coding and decoding using intra block copy mode
CN106664405B (zh) * 2015-06-09 2020-06-09 微软技术许可有限责任公司 用调色板模式对经逸出编码的像素的稳健编码/解码
WO2017019818A1 (en) * 2015-07-28 2017-02-02 Vid Scale, Inc. High dynamic range video coding architectures with multiple operating modes
US10652588B2 (en) 2015-09-21 2020-05-12 Vid Scale, Inc. Inverse reshaping for high dynamic range video coding
US20170105014A1 (en) 2015-10-08 2017-04-13 Qualcomm Incorporated Luma-driven chroma scaling for high dynamic range and wide color gamut contents
KR20180058224A (ko) 2015-10-22 2018-05-31 엘지전자 주식회사 영상 코딩 시스템에서 모델링 기반 영상 디코딩 방법 및 장치
CN106937121B (zh) 2015-12-31 2021-12-10 中兴通讯股份有限公司 图像解码和编码方法、解码和编码装置、解码器及编码器
US20190045224A1 (en) 2016-02-04 2019-02-07 Mediatek Inc. Method and apparatus of non-local adaptive in-loop filters in video coding
US11032550B2 (en) 2016-02-25 2021-06-08 Mediatek Inc. Method and apparatus of video coding
WO2017165494A2 (en) * 2016-03-23 2017-09-28 Dolby Laboratories Licensing Corporation Encoding and decoding reversible production-quality single-layer video signals
US20170310969A1 (en) 2016-04-20 2017-10-26 Mediatek Inc. Image encoding method and apparatus with color space transform performed upon predictor and associated image decoding method and apparatus
EP3244616A1 (en) 2016-05-13 2017-11-15 Thomson Licensing A method for encoding an input video comprising a luma component and two chroma components, the method comprising reshaping of said input video based on reshaping functions
CN109076219A (zh) * 2016-05-13 2018-12-21 夏普株式会社 图像解码装置以及图像编码装置
EP3459248A1 (en) 2016-05-19 2019-03-27 Dolby Laboratories Licensing Corporation Chroma reshaping for high dynamic range images
US10645403B2 (en) * 2016-05-19 2020-05-05 Dolby Laboratories Licensing Corporation Chroma reshaping for high dynamic range images
WO2017206805A1 (en) * 2016-05-28 2017-12-07 Mediatek Inc. Method and apparatus of palette mode coding for colour video data
CN113411576B (zh) 2016-07-22 2024-01-12 夏普株式会社 使用自适应分量缩放对视频数据进行编码的系统和方法
WO2018044803A1 (en) 2016-08-30 2018-03-08 Dolby Laboratories Licensing Corporation Real-time reshaping of single-layer backwards-compatible codec
EP3510772B1 (en) * 2016-09-09 2020-12-09 Dolby Laboratories Licensing Corporation Coding of high dynamic range video using segment-based reshaping
US10652575B2 (en) 2016-09-15 2020-05-12 Qualcomm Incorporated Linear model chroma intra prediction for video coding
WO2018062921A1 (ko) 2016-09-30 2018-04-05 엘지전자 주식회사 영상 코딩 시스템에서 블록 분할 및 인트라 예측 방법 및 장치
WO2018117896A1 (en) 2016-12-23 2018-06-28 Huawei Technologies Co., Ltd Low complexity mixed domain collaborative in-loop filter for lossy video coding
US10506230B2 (en) 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
US11025903B2 (en) 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
US10694181B2 (en) 2017-01-27 2020-06-23 Qualcomm Incorporated Bilateral filters in video coding with reduced complexity
US11310532B2 (en) * 2017-02-24 2022-04-19 Interdigital Vc Holdings, Inc. Method and device for reconstructing image data from decoded image data
US10735761B2 (en) 2017-05-19 2020-08-04 Mediatek Inc Method and apparatus of video coding
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US20190007699A1 (en) 2017-06-28 2019-01-03 Futurewei Technologies, Inc. Decoder Side Motion Vector Derivation in Video Coding
EP4064701A1 (en) * 2017-06-29 2022-09-28 Dolby Laboratories Licensing Corporation Integrated image reshaping and video decoding
US10757442B2 (en) 2017-07-05 2020-08-25 Qualcomm Incorporated Partial reconstruction based template matching for motion vector derivation
CN107360433B (zh) 2017-07-20 2020-06-19 北京奇艺世纪科技有限公司 一种帧间预测编码方法和装置
WO2019082770A1 (en) 2017-10-24 2019-05-02 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR DETERMINING PREDICTIVE QUANTIFICATION PARAMETER VALUES
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
KR102625573B1 (ko) 2018-02-14 2024-01-16 돌비 레버러토리즈 라이쎈싱 코오포레이션 레이트 왜곡 최적화를 이용한 비디오 코딩에서의 이미지 재성형
US10757428B2 (en) 2018-10-10 2020-08-25 Apple Inc. Luma and chroma reshaping of HDR video encoding
WO2020085235A1 (ja) 2018-10-22 2020-04-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2020086421A1 (en) 2018-10-25 2020-04-30 Interdigital Vc Holdings, Inc. Video encoding and decoding using block-based in-loop reshaping
US11122264B2 (en) 2018-12-06 2021-09-14 Qualcomm Incorporated Adaptive loop filter (ALF) coefficients in video coding
CN113273215A (zh) 2019-01-04 2021-08-17 交互数字Vc控股公司 逆映射简化
KR20210118400A (ko) 2019-02-01 2021-09-30 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩을 위한 루마 종속적 크로마 잔차 스케일링의 구성
CN113475079A (zh) 2019-02-01 2021-10-01 北京字节跳动网络技术有限公司 环路整形和帧内块复制之间的相互作用
KR20210134375A (ko) * 2019-03-04 2021-11-09 알리바바 그룹 홀딩 리미티드 비디오 콘텐츠를 처리하기 위한 방법 및 시스템
US10742972B1 (en) 2019-03-08 2020-08-11 Tencent America LLC Merge list construction in triangular prediction
CN117499644A (zh) 2019-03-14 2024-02-02 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
WO2020192614A1 (en) 2019-03-23 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Restrictions on adaptive-loop filtering parameter sets
US11388406B2 (en) * 2019-05-20 2022-07-12 Dolby Laboratories Licensing Corporation Piece-wise-linear mapping for in-loop reshaping in image coding
US11509938B2 (en) 2019-11-05 2022-11-22 Hfi Innovation Inc. Method and apparatus of signaling subpicture information in video coding
US20210168406A1 (en) 2019-11-29 2021-06-03 Tencent America LLC Signaling of video coding tools supporting various chroma formats
US11303914B2 (en) 2020-01-08 2022-04-12 Tencent America LLC Method and apparatus for video coding

Also Published As

Publication number Publication date
JP2022518848A (ja) 2022-03-16
EP3906681A1 (en) 2021-11-10
CN113366841A (zh) 2021-09-07
CN113396582B (zh) 2024-03-08
JP2022517683A (ja) 2022-03-09
US20230048864A1 (en) 2023-02-16
US20210281876A1 (en) 2021-09-09
CN113424543B (zh) 2024-03-15
KR20240005124A (ko) 2024-01-11
US11394995B2 (en) 2022-07-19
JP7199550B2 (ja) 2023-01-05
US20220030267A1 (en) 2022-01-27
AU2020214946B2 (en) 2023-06-08
US11558636B2 (en) 2023-01-17
EP3906681A4 (en) 2022-06-01
JP2022518909A (ja) 2022-03-17
EP3900362A1 (en) 2021-10-27
JP7199552B2 (ja) 2023-01-05
SG11202108207SA (en) 2021-08-30
SG11202107760PA (en) 2021-08-30
CA3127136A1 (en) 2020-08-06
EP3900344A1 (en) 2021-10-27
KR102617221B1 (ko) 2023-12-27
AU2020214946A1 (en) 2021-08-26
MX2021008911A (es) 2021-08-24
ZA202105195B (en) 2023-01-25
JP7279172B2 (ja) 2023-05-22
ZA202105404B (en) 2023-01-25
CN113396582A (zh) 2021-09-14
CN117768642A (zh) 2024-03-26
CA3128424A1 (en) 2020-08-06
CN113424543A (zh) 2021-09-21
KR20210118400A (ko) 2021-09-30
US11343505B2 (en) 2022-05-24
KR20210118401A (ko) 2021-09-30
CA3128424C (en) 2024-04-16
BR112021014620A2 (pt) 2021-10-05
JP2023095995A (ja) 2023-07-06
KR20210118399A (ko) 2021-09-30
EP3900362A4 (en) 2022-03-02
EP3900344A4 (en) 2022-04-06
CN113383547A (zh) 2021-09-10
US20210314572A1 (en) 2021-10-07
MX2021008916A (es) 2021-08-24

Similar Documents

Publication Publication Date Title
BR112021014202A2 (pt) Sinalização de informações de reformulação em malha usando conjuntos de parâmetros
US20210321121A1 (en) Signaling and syntax for in-loop reshaping information
US20210297669A1 (en) Interactions between in-loop reshaping and palette mode
CN113906738B (zh) 仿射模式的自适应运动矢量差分辨率
BR112021016689A2 (pt) Método de processamento de vídeo, aparelho em um sistema de vídeo, e, produto de programa de computador armazenado em uma mídia legível por computador não transitória
US20220303571A1 (en) Merge with motion vector differencing in affine mode
KR20210139272A (ko) 적응적 루프 필터링 파라미터 세트들에 대한 제한들
RU2808682C2 (ru) Передача сигнализации с информацией о внутриконтурном переформировании с использованием набора параметров

Legal Events

Date Code Title Description
B06A Patent application procedure suspended [chapter 6.1 patent gazette]